{"version":3,"file":"main.js","mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA","sources":["./src/app/acts-of-acceptance/acts-of-acceptance.module.ts","./src/app/acts-of-acceptance/card/act-card.component.ts","./src/app/acts-of-acceptance/card/act-card.component.html","./src/app/acts-of-acceptance/card/act-card.service.ts","./src/app/acts-of-acceptance/card/act-task-cell/act-task-cell.component.ts","./src/app/acts-of-acceptance/card/act-task-cell/act-task-cell.component.html","./src/app/acts-of-acceptance/creation/act-creation.component.ts","./src/app/acts-of-acceptance/creation/act-creation.component.html","./src/app/acts-of-acceptance/list/act-list.component.ts","./src/app/acts-of-acceptance/list/acts-filter/acts-filter.component.ts","./src/app/acts-of-acceptance/list/acts-filter/acts-filter.component.html","./src/app/acts-of-acceptance/list/acts-filter/acts-filter.service.ts","./src/app/analytics/analytics.module.ts","./src/app/analytics/calculated-fields/calculated-fields.module.ts","./src/app/analytics/calculated-fields/card/calculated-field-card.component.ts","./src/app/analytics/calculated-fields/card/calculated-field-card.component.html","./src/app/analytics/calculated-fields/creation/calculated-field-creation.component.ts","./src/app/analytics/calculated-fields/creation/calculated-field-creation.component.html","./src/app/analytics/calculated-fields/list/calculated-field-filter/calculated-field-filter.component.ts","./src/app/analytics/calculated-fields/list/calculated-field-filter/calculated-field-filter.component.html","./src/app/analytics/calculated-fields/list/calculated-field-filter/calculated-field-filter.service.ts","./src/app/analytics/calculated-fields/list/calculated-field-list.component.ts","./src/app/analytics/dashboards/dashboard/copy-dashboard-modal/copy-dashboard-modal.component.ts","./src/app/analytics/dashboards/dashboard/copy-dashboard-modal/copy-dashboard-modal.component.html","./src/app/analytics/dashboards/dashboards.module.ts","./src/app/analytics/dashboards/list/dashboard-filter/dashboard-filter.service.ts","./src/app/analytics/dashboards/list/dashboard-list.component.ts","./src/app/analytics/dashboards/settings/dashboard-properties/dashboard-properties.component.ts","./src/app/analytics/dashboards/settings/dashboard-properties/dashboard-properties.component.html","./src/app/analytics/dashboards/settings/dashboard-settings.component.ts","./src/app/analytics/dashboards/settings/dashboard-settings.component.html","./src/app/analytics/dashboards/settings/dashboard-settings.service.ts","./src/app/analytics/reports/card/modals/report-save-as/report-save-as.component.ts","./src/app/analytics/reports/card/modals/report-save-as/report-save-as.component.html","./src/app/analytics/reports/card/modals/report-settings/report-properties/report-properties.component.ts","./src/app/analytics/reports/card/modals/report-settings/report-properties/report-properties.component.html","./src/app/analytics/reports/card/modals/report-settings/report-settings.component.ts","./src/app/analytics/reports/card/modals/report-settings/report-settings.component.html","./src/app/analytics/reports/card/report-card.component.ts","./src/app/analytics/reports/card/report-card.component.html","./src/app/analytics/reports/card/report-card.service.ts","./src/app/analytics/reports/card/report-user-settings/report-user-settings.component.ts","./src/app/analytics/reports/card/report-user-settings/report-user-settings.component.html","./src/app/analytics/reports/card/report-user-settings/report-user-settings.service.ts","./src/app/analytics/reports/list/report-filter/report-filter.component.ts","./src/app/analytics/reports/list/report-filter/report-filter.component.html","./src/app/analytics/reports/list/report-filter/report-filter.service.ts","./src/app/analytics/reports/list/report-list.component.ts","./src/app/analytics/reports/reports.module.ts","./src/app/analytics/shared/analytics-shared.module.ts","./src/app/analytics/shared/filters/report-filter-criterion/report-filter-criterion.component.ts","./src/app/analytics/shared/filters/report-filter-criterion/report-filter-criterion.component.html","./src/app/analytics/shared/filters/report-filters/report-filters.component.ts","./src/app/analytics/shared/filters/report-filters/report-filters.component.html","./src/app/analytics/shared/models/filter/filter-operator.enum.ts","./src/app/analytics/shared/models/report-field-type.enum.ts","./src/app/analytics/shared/models/total-function.enum.ts","./src/app/analytics/shared/models/user-settings.model.ts","./src/app/analytics/shared/pivot-table/pivot-data.service.ts","./src/app/analytics/shared/pivot-table/pivot-render.service.ts","./src/app/analytics/shared/pivot-table/pivot-table.component.ts","./src/app/analytics/shared/pivot-table/pivot-table.component.html","./src/app/analytics/shared/pivot-table/pivot-table.service.ts","./src/app/analytics/shared/report-period/report-period.component.ts","./src/app/analytics/shared/report-period/report-period.component.html","./src/app/analytics/shared/report-period/report-period.service.ts","./src/app/analytics/shared/report-view-settings/field-properties-modal/field-properties-modal.component.ts","./src/app/analytics/shared/report-view-settings/field-properties-modal/field-properties-modal.component.html","./src/app/analytics/shared/report-view-settings/report-view-settings.component.ts","./src/app/analytics/shared/report-view-settings/report-view-settings.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.states.ts","./src/app/billing/billing-summary/billing-summary-filter/billing-summary-filter.component.ts","./src/app/billing/billing-summary/billing-summary-filter/billing-summary-filter.component.html","./src/app/billing/billing-summary/billing-summary-filter/billing-summary-filter.service.ts","./src/app/billing/billing-summary/billing-summary.component.ts","./src/app/billing/billing-summary/billing-summary.component.html","./src/app/billing/billing-summary/billing-summary.module.ts","./src/app/billing/billing.module.ts","./src/app/billing/invoices/card/adding-lines-modal/adding-lines-modal.component.ts","./src/app/billing/invoices/card/adding-lines-modal/adding-lines-modal.component.html","./src/app/billing/invoices/card/adding-lines-modal/grouping-settings/grouping-settings.component.ts","./src/app/billing/invoices/card/adding-lines-modal/grouping-settings/grouping-settings.component.html","./src/app/billing/invoices/card/invoice-card.component.ts","./src/app/billing/invoices/card/invoice-card.component.html","./src/app/billing/invoices/card/invoice-card.service.ts","./src/app/billing/invoices/card/invoice-custom-lines/invoice-custom-lines.component.ts","./src/app/billing/invoices/card/invoice-custom-lines/invoice-custom-lines.component.html","./src/app/billing/invoices/card/invoice-expense-lines/invoice-expense-lines.component.ts","./src/app/billing/invoices/card/invoice-expense-lines/invoice-expense-lines.component.html","./src/app/billing/invoices/card/invoice-time-lines/invoice-time-lines.component.ts","./src/app/billing/invoices/card/invoice-time-lines/invoice-time-lines.component.html","./src/app/billing/invoices/card/shared/grouping-field.enum.ts","./src/app/billing/invoices/card/shared/invoice-amount-cell/invoice-amount-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-amount-cell/invoice-amount-cell.component.html","./src/app/billing/invoices/card/shared/invoice-description-cell/invoice-description-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-description-cell/invoice-description-cell.component.html","./src/app/billing/invoices/card/shared/invoice-description-cell/invoice-description-readonly-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-description-cell/invoice-description-readonly-cell.component.html","./src/app/billing/invoices/card/shared/invoice-task-cell/invoice-task-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-task-cell/invoice-task-cell.component.html","./src/app/billing/invoices/card/shared/invoice-value-cell/invoice-value-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-value-cell/invoice-value-cell.component.html","./src/app/billing/invoices/card/shared/invoice-value-cell/invoice-value-readonly-cell.component.ts","./src/app/billing/invoices/card/shared/invoice-value-cell/invoice-value-readonly-cell.component.html","./src/app/billing/invoices/card/shared/invoice.settings.ts","./src/app/billing/invoices/creation/invoice-creation.component.ts","./src/app/billing/invoices/creation/invoice-creation.component.html","./src/app/billing/invoices/invoices.module.ts","./src/app/billing/invoices/list/invoice-filter/invoice-filter.component.ts","./src/app/billing/invoices/list/invoice-filter/invoice-filter.component.html","./src/app/billing/invoices/list/invoice-filter/invoice-filter.service.ts","./src/app/billing/invoices/list/invoice-list.component.ts","./src/app/boards/boards.module.ts","./src/app/boards/components/board/board.component.ts","./src/app/boards/components/board/board.component.html","./src/app/boards/components/board/column-header-form/board-column-header-form.component.ts","./src/app/boards/components/board/column-header-form/board-column-header-form.component.html","./src/app/boards/components/board/column-header/board-column-header.component.ts","./src/app/boards/components/board/column-header/board-column-header.component.html","./src/app/boards/components/board/filter/board-filter.component.ts","./src/app/boards/components/board/filter/board-filter.component.html","./src/app/boards/components/board/mini-card-builder-modal/board-mini-card-builder-modal.component.ts","./src/app/boards/components/board/mini-card-builder-modal/board-mini-card-builder-modal.component.html","./src/app/boards/components/board/mini-card-builder/board-mini-card-builder.component.ts","./src/app/boards/components/board/mini-card-builder/board-mini-card-builder.component.html","./src/app/boards/components/board/mini-card/board-mini-card.component.ts","./src/app/boards/components/board/mini-card/board-mini-card.component.html","./src/app/boards/components/board/sort-button/board-sort-button.component.ts","./src/app/boards/components/board/sort-button/board-sort-button.component.html","./src/app/boards/components/board/track/board-track.component.ts","./src/app/boards/components/board/track/board-track.component.html","./src/app/boards/models/board-config.interface.ts","./src/app/boards/models/board.config.ts","./src/app/boards/models/board.interface.ts","./src/app/boards/models/index.ts","./src/app/boards/models/paging.interface.ts","./src/app/boards/services/board-data.service.ts","./src/app/boards/services/board-filter.service.ts","./src/app/boards/services/board.service.ts","./src/app/booking/booking-assistant/booking-assistant.component.ts","./src/app/booking/booking-assistant/booking-assistant.component.html","./src/app/booking/booking-assistant/directives/area-resizing.directive.ts","./src/app/booking/booking-assistant/models/booking-assistant-settings.model.ts","./src/app/booking/booking-schedule/booking-schedule.component.ts","./src/app/booking/booking-schedule/booking-schedule.component.html","./src/app/booking/booking-schedule/booking-schedule.module.ts","./src/app/booking/booking/booking.component.ts","./src/app/booking/booking/booking.component.html","./src/app/booking/booking/booking.module.ts","./src/app/booking/booking/core/booking-data.service.ts","./src/app/booking/booking/core/booking-manage.service.ts","./src/app/booking/booking/core/booking-rendering.service.ts","./src/app/booking/booking/core/booking.service.ts","./src/app/booking/booking/models/booking-view.settings.ts","./src/app/booking/booking/models/booking.settings.ts","./src/app/booking/booking/models/drag-handler.model.ts","./src/app/booking/booking/shared/booking-basic/booking-basic-line/booking-basic-line.component.ts","./src/app/booking/booking/shared/booking-basic/booking-basic-line/booking-basic-line.component.html","./src/app/booking/booking/shared/booking-basic/booking-basic.component.ts","./src/app/booking/booking/shared/booking-basic/booking-basic.component.html","./src/app/booking/booking/shared/booking-detailed/booking-detailed-line-left/booking-detailed-line-left.component.ts","./src/app/booking/booking/shared/booking-detailed/booking-detailed-line-left/booking-detailed-line-left.component.html","./src/app/booking/booking/shared/booking-detailed/booking-detailed-line-right/booking-detailed-line-right.component.ts","./src/app/booking/booking/shared/booking-detailed/booking-detailed-line-right/booking-detailed-line-right.component.html","./src/app/booking/booking/shared/booking-detailed/booking-detailed.component.ts","./src/app/booking/booking/shared/booking-detailed/booking-detailed.component.html","./src/app/booking/booking/shared/booking-entry-form/booking-entry-form-details/booking-entry-form-details.component.ts","./src/app/booking/booking/shared/booking-entry-form/booking-entry-form-details/booking-entry-form-details.component.html","./src/app/booking/booking/shared/booking-entry-form/booking-entry-form.component.ts","./src/app/booking/booking/shared/booking-entry-form/booking-entry-form.component.html","./src/app/booking/booking/shared/booking-entry-form/booking-entry-form.service.ts","./src/app/booking/booking/shared/booking-entry-info/booking-entry-info.component.ts","./src/app/booking/booking/shared/booking-entry-info/booking-entry-info.component.html","./src/app/booking/booking/shared/booking-entry/booking-entry.component.ts","./src/app/booking/booking/shared/booking-entry/booking-entry.component.html","./src/app/booking/booking/shared/booking-filter/booking-filter.component.ts","./src/app/booking/booking/shared/booking-filter/booking-filter.component.html","./src/app/booking/booking/shared/booking-filter/booking-filter.module.ts","./src/app/booking/booking/shared/booking-filter/booking-filter.service.ts","./src/app/booking/booking/shared/booking-left-group/booking-left-group.component.ts","./src/app/booking/booking/shared/booking-left-group/booking-left-group.component.html","./src/app/booking/booking/shared/booking-notify/booking-notify.component.ts","./src/app/booking/booking/shared/booking-notify/booking-notify.component.html","./src/app/booking/booking/shared/booking-project-add/booking-project-add.component.ts","./src/app/booking/booking/shared/booking-project-add/booking-project-add.component.html","./src/app/booking/booking/shared/booking-right-group/booking-right-group.component.ts","./src/app/booking/booking/shared/booking-right-group/booking-right-group.component.html","./src/app/booking/booking/shared/booking-slot-info/booking-slot-info.component.ts","./src/app/booking/booking/shared/booking-slot-info/booking-slot-info.component.html","./src/app/booking/booking/shared/booking-table-header/booking-header-left/booking-header-left.component.ts","./src/app/booking/booking/shared/booking-table-header/booking-header-left/booking-header-left.component.html","./src/app/booking/booking/shared/booking-table-header/booking-header-right/booking-header-right.component.ts","./src/app/booking/booking/shared/booking-table-header/booking-header-right/booking-header-right.component.html","./src/app/booking/booking/shared/booking-toolbar/booking-toolbar.component.ts","./src/app/booking/booking/shared/booking-toolbar/booking-toolbar.component.html","./src/app/booking/booking/shared/booking-view-settings/booking-view-settings.component.ts","./src/app/booking/booking/shared/booking-view-settings/booking-view-settings.component.html","./src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service.ts","./src/app/certificates/card/certificate-card.component.ts","./src/app/certificates/card/certificate-card.component.html","./src/app/certificates/certificates.module.ts","./src/app/certificates/creation/certificate-creation.component.ts","./src/app/certificates/creation/certificate-creation.component.html","./src/app/certificates/list/certificate-list.component.ts","./src/app/certificates/list/certificates-filter/certificates-filter.component.ts","./src/app/certificates/list/certificates-filter/certificates-filter.component.html","./src/app/certificates/list/certificates-filter/certificates-filter.service.ts","./src/app/clients/card/client-card.component.ts","./src/app/clients/card/client-card.component.html","./src/app/clients/card/client-card.service.ts","./src/app/clients/card/client-contact/client-contacts-settings.ts","./src/app/clients/card/client-contact/client-contacts.component.ts","./src/app/clients/card/client-contact/client-contacts.component.html","./src/app/clients/card/client-contact/core/client-contacts.service.ts","./src/app/clients/card/client-contact/model/client-contacts.list.ts","./src/app/clients/card/client-contact/toolbar/client-contacts-toolbar.component.ts","./src/app/clients/card/client-contact/toolbar/client-contacts-toolbar.component.html","./src/app/clients/card/client-deals/client-deals-settings.ts","./src/app/clients/card/client-deals/client-deals.component.ts","./src/app/clients/card/client-deals/client-deals.component.html","./src/app/clients/card/client-deals/core/client-deals.service.ts","./src/app/clients/card/client-deals/toolbar/client-deals-toolbar.component.ts","./src/app/clients/card/client-deals/toolbar/client-deals-toolbar.component.html","./src/app/clients/card/client-legal/client-legal.component.ts","./src/app/clients/card/client-legal/client-legal.component.html","./src/app/clients/card/client-overview/client-overview-analysis/client-overview-analysis.component.ts","./src/app/clients/card/client-overview/client-overview-analysis/client-overview-analysis.component.html","./src/app/clients/card/client-overview/client-overview-analysis/client-overview-analysis.module.ts","./src/app/clients/card/client-overview/client-overview-kpi/client-overview-kpi.component.ts","./src/app/clients/card/client-overview/client-overview-kpi/client-overview-kpi.component.html","./src/app/clients/card/client-overview/client-overview-kpi/client-overview-kpi.module.ts","./src/app/clients/card/client-overview/client-overview.component.ts","./src/app/clients/card/client-overview/client-overview.component.html","./src/app/clients/card/client-overview/client-overview.module.ts","./src/app/clients/card/client-pnl/client-pnl.component.ts","./src/app/clients/card/client-pnl/client-pnl.component.html","./src/app/clients/card/client-projects/client-projects.component.ts","./src/app/clients/card/client-projects/client-projects.component.html","./src/app/clients/card/client-settings/client-settings-modal/client-settings-modal.component.ts","./src/app/clients/card/client-settings/client-settings-modal/client-settings-modal.component.html","./src/app/clients/card/client-settings/client-settings.component.ts","./src/app/clients/card/client-settings/client-settings.component.html","./src/app/clients/card/client-settings/client-settings.service.ts","./src/app/clients/card/client-tariffs/client-tariff-modal/client-tariff-modal.component.ts","./src/app/clients/card/client-tariffs/client-tariff-modal/client-tariff-modal.component.html","./src/app/clients/card/client-tariffs/client-tariff.service.ts","./src/app/clients/card/client-tariffs/client-tariffs-toolbar/client-tariffs-toolbar.component.ts","./src/app/clients/card/client-tariffs/client-tariffs-toolbar/client-tariffs-toolbar.component.html","./src/app/clients/card/client-tariffs/client-tariffs.component.ts","./src/app/clients/card/client-tariffs/client-tariffs.component.html","./src/app/clients/card/client-tariffs/models/client-tariff.list.ts","./src/app/clients/clients.module.ts","./src/app/clients/list/client-filter/client-filter.component.ts","./src/app/clients/list/client-filter/client-filter.component.html","./src/app/clients/list/client-filter/client-filter.service.ts","./src/app/clients/list/client-list.component.ts","./src/app/clients/shared/client-tariff.settings.ts","./src/app/contacts/card/contact-card.component.ts","./src/app/contacts/card/contact-card.component.html","./src/app/contacts/card/contact-card.service.ts","./src/app/contacts/card/contact-profile/contact-profile.component.ts","./src/app/contacts/card/contact-profile/contact-profile.component.html","./src/app/contacts/card/contact-profile/contact-profile.service.ts","./src/app/contacts/contact-create/contact-create.component.ts","./src/app/contacts/contact-create/contact-create.component.html","./src/app/contacts/contacts.module.ts","./src/app/contacts/list/contact-list-filter/contact-list-filter.component.ts","./src/app/contacts/list/contact-list-filter/contact-list-filter.component.html","./src/app/contacts/list/contact-list-filter/contact-list-filter.service.ts","./src/app/contacts/list/contact-list.component.ts","./src/app/contacts/model/contacts.list.ts","./src/app/core/action-panel.service.ts","./src/app/core/analytics.service.ts","./src/app/core/app-config.service.ts","./src/app/core/app.service.ts","./src/app/core/auth.service.ts","./src/app/core/block-ui.service.ts","./src/app/core/chrome.service.ts","./src/app/core/create-menu.service.ts","./src/app/core/data.service.ts","./src/app/core/date.service.ts","./src/app/core/financial-accounts.service.ts","./src/app/core/fte-schedule.service.ts","./src/app/core/highcharts.service.ts","./src/app/core/history.service.ts","./src/app/core/hot-changes/data-hot.service.ts","./src/app/core/hot-changes/hot-changes.model.ts","./src/app/core/hot-changes/index.ts","./src/app/core/hot-changes/websocket-hot-changes.service.ts","./src/app/core/interceptors/api-auth.interceptor.ts","./src/app/core/interceptors/api-response.interceptor.ts","./src/app/core/lifecycle-list.service.ts","./src/app/core/lifecycle.service.ts","./src/app/core/local-config.service.ts","./src/app/core/log.service.ts","./src/app/core/menu.service.ts","./src/app/core/message.service.ts","./src/app/core/navigation.service.ts","./src/app/core/notification.service.ts","./src/app/core/off-canvas.service.ts","./src/app/core/schedule.service.ts","./src/app/core/state-builder.service.ts","./src/app/core/stopwatch.service.ts","./src/app/core/template.service.ts","./src/app/core/update.service.ts","./src/app/core/user-notification.service.ts","./src/app/core/validation.service.ts","./src/app/core/web-sockets.service.ts","./src/app/deals/card/deal-card.component.ts","./src/app/deals/card/deal-card.component.html","./src/app/deals/card/deal-card.service.ts","./src/app/deals/card/deal-contacts/core/deal-contacts.service.ts","./src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal-toolbar/deal-add-contacts-modal-toolbar.component.ts","./src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal-toolbar/deal-add-contacts-modal-toolbar.component.html","./src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal.component.ts","./src/app/shared/components/add-entities-modal/add-entities-modal.component.html","./src/app/deals/card/deal-contacts/deal-contacts-settings.ts","./src/app/deals/card/deal-contacts/deal-contacts.component.ts","./src/app/deals/card/deal-contacts/deal-contacts.component.html","./src/app/deals/card/deal-contacts/model/deal-contacts.list.ts","./src/app/deals/card/deal-contacts/toolbar/deal-contacts-toolbar.component.ts","./src/app/deals/card/deal-contacts/toolbar/deal-contacts-toolbar.component.html","./src/app/deals/card/deal-profile/deal-profile.component.ts","./src/app/deals/card/deal-profile/deal-profile.component.html","./src/app/deals/card/deal-profile/deal-profile.service.ts","./src/app/deals/creation/deal-create-modal.component.ts","./src/app/deals/creation/deal-create-modal.component.html","./src/app/deals/deal.module.ts","./src/app/deals/list/deal-list-filter/deal-list-filter.component.ts","./src/app/deals/list/deal-list-filter/deal-list-filter.component.html","./src/app/deals/list/deal-list-filter/deal-list-filter.service.ts","./src/app/deals/list/deal-list.component.ts","./src/app/deals/model/deal.list.ts","./src/app/debug-app/checkbox-test/checkbox-test.component.ts","./src/app/debug-app/checkbox-test/checkbox-test.component.html","./src/app/debug-app/currency-box-test/currency-box-test.component.ts","./src/app/debug-app/currency-box-test/currency-box-test.component.html","./src/app/debug-app/date-box-test/date-box-test.component.ts","./src/app/debug-app/date-box-test/date-box-test.component.html","./src/app/debug-app/date-period-box-test/date-period-box-test.component.ts","./src/app/debug-app/date-period-box-test/date-period-box-test.component.html","./src/app/debug-app/debug-app.component.ts","./src/app/debug-app/debug-app.module.ts","./src/app/debug-app/debug-app.navigation.ts","./src/app/debug-app/debug-app.states.ts","./src/app/debug-app/duration-box-test/duration-box-test.component.ts","./src/app/debug-app/duration-box-test/duration-box-test.component.html","./src/app/debug-app/form-helper-test/form-helper-test.component.ts","./src/app/debug-app/form-helper-test/form-helper-test.component.html","./src/app/debug-app/grid-test/core/grid-data.service.ts","./src/app/debug-app/grid-test/grid-test-right-side-table/grid-test-right-side-table.component.ts","./src/app/debug-app/grid-test/grid-test-right-side-table/grid-test-right-side-table.component.html","./src/app/debug-app/grid-test/grid-test-toolbar/grid-test-toolbar.component.ts","./src/app/debug-app/grid-test/grid-test-toolbar/grid-test-toolbar.component.html","./src/app/debug-app/grid-test/grid-test.component.ts","./src/app/debug-app/grid-test/grid-test.component.html","./src/app/debug-app/grid-test/model/grid-test.list.ts","./src/app/debug-app/hierarchical-box-test/hierarchical-box-test.component.ts","./src/app/debug-app/hierarchical-box-test/hierarchical-box-test.component.html","./src/app/debug-app/multiline-text-box-test/multiline-text-box-test.component.ts","./src/app/debug-app/multiline-text-box-test/multiline-text-box-test.component.html","./src/app/debug-app/number-box-test/number-box-test.component.ts","./src/app/debug-app/number-box-test/number-box-test.component.html","./src/app/debug-app/predecessor-box-test/mock-data.ts","./src/app/debug-app/predecessor-box-test/predecessor-box-test.component.ts","./src/app/debug-app/predecessor-box-test/predecessor-box-test.component.html","./src/app/debug-app/rich-editor-box-test/rich-editor-box-test.component.ts","./src/app/debug-app/rich-editor-box-test/rich-editor-box-test.component.html","./src/app/debug-app/select-box-test/select-box-test.component.ts","./src/app/debug-app/select-box-test/select-box-test.component.html","./src/app/debug-app/status-page/status-page.component.ts","./src/app/debug-app/status-page/status-page.component.html","./src/app/debug-app/task-box-test/task-box-test.component.ts","./src/app/debug-app/task-box-test/task-box-test.component.html","./src/app/debug-app/text-box-test/text-box-test.component.ts","./src/app/debug-app/text-box-test/text-box-test.component.html","./src/app/debug-app/time-tracker-box-test/time-tracker-box-test.component.ts","./src/app/debug-app/time-tracker-box-test/time-tracker-box-test.component.html","./src/app/debug-app/tree-list-test/tree-list-test.component.ts","./src/app/debug-app/tree-list-test/tree-list.mock.ts","./src/app/debug-app/user-box-test/user-box-test.component.ts","./src/app/debug-app/user-box-test/user-box-test.component.html","./src/app/employees/card/employee-card.component.ts","./src/app/employees/card/employee-card.component.html","./src/app/employees/card/employee-card.module.ts","./src/app/employees/card/employee-card.service.ts","./src/app/employees/card/employee-experience-overview/employee-experience-overview.component.ts","./src/app/employees/card/employee-experience-overview/employee-experience-overview.component.html","./src/app/employees/card/employee-experience-overview/employee-experience-overview.module.ts","./src/app/employees/card/employee-experience-overview/employee-experience-overview.service.ts","./src/app/employees/card/employee-experience-overview/models/employee-experience-overview.list.ts","./src/app/employees/card/employee-main/adding-skills-modal/adding-skills-modal.component.ts","./src/app/employees/card/employee-main/adding-skills-modal/adding-skills-modal.component.html","./src/app/employees/card/employee-main/employee-main.component.ts","./src/app/employees/card/employee-main/employee-main.component.html","./src/app/employees/card/employee-main/employee-main.module.ts","./src/app/employees/card/employee-main/employee-main.service.ts","./src/app/employees/card/employee-main/skill-estimation-cell/skill-estimation-cell.component.ts","./src/app/employees/card/employee-main/skill-estimation-cell/skill-estimation-cell.component.html","./src/app/employees/card/employee-main/user-certificates/user-certificates.component.ts","./src/app/employees/card/employee-main/user-certificates/user-certificates.component.html","./src/app/employees/card/employee-main/user-certificates/user-certificates.service.ts","./src/app/employees/card/employee-time-off-balance/employee-time-off-balance.component.ts","./src/app/employees/card/employee-time-off-balance/employee-time-off-balance.component.html","./src/app/employees/card/employee-time-off-balance/employee-time-off-balance.module.ts","./src/app/employees/card/employee-time-off-balance/employee-time-off-balance.service.ts","./src/app/employees/card/employee-work-overview/employee-work-overview.component.ts","./src/app/employees/card/employee-work-overview/employee-work-overview.component.html","./src/app/employees/employees.module.ts","./src/app/employees/list/employee-filter/employee-filter.component.ts","./src/app/employees/list/employee-filter/employee-filter.component.html","./src/app/employees/list/employee-filter/employee-filter.service.ts","./src/app/employees/list/employee-list.component.ts","./src/app/expenses-requests/card/details/expense-task-cell/expense-task-cell.component.ts","./src/app/expenses-requests/card/details/expense-task-cell/expense-task-cell.component.html","./src/app/expenses-requests/card/details/expense-task-cell/expense-task-readonly-cell.component.ts","./src/app/expenses-requests/card/details/expense-task-cell/expense-task-readonly-cell.component.html","./src/app/expenses-requests/card/details/expenses-request-details.component.ts","./src/app/expenses-requests/card/details/expenses-request-details.component.html","./src/app/expenses-requests/card/details/line-modal/line-modal.component.ts","./src/app/expenses-requests/card/details/line-modal/line-modal.component.html","./src/app/expenses-requests/card/details/toolbar/expenses-request-details-toolbar.component.ts","./src/app/expenses-requests/card/details/toolbar/expenses-request-details-toolbar.component.html","./src/app/expenses-requests/card/expenses-request-card.component.ts","./src/app/expenses-requests/card/expenses-request-card.component.html","./src/app/expenses-requests/card/expenses-request-card.service.ts","./src/app/expenses-requests/card/set-project/expenses-request-set-project.component.ts","./src/app/expenses-requests/card/set-project/expenses-request-set-project.component.html","./src/app/expenses-requests/creation/expenses-request-creation.component.ts","./src/app/expenses-requests/creation/expenses-request-creation.component.html","./src/app/expenses-requests/expenses-request.service.ts","./src/app/expenses-requests/expenses-requests.module.ts","./src/app/expenses-requests/list/expenses-request-list.component.ts","./src/app/expenses-requests/list/filter/expenses-request-filter.component.ts","./src/app/expenses-requests/list/filter/expenses-request-filter.component.html","./src/app/expenses-requests/list/filter/expenses-request-filter.service.ts","./src/app/finance/accounting-entries/accounting-entries.module.ts","./src/app/finance/accounting-entries/card/accounting-entry-card.component.ts","./src/app/finance/accounting-entries/card/accounting-entry-card.component.html","./src/app/finance/accounting-entries/core/accounting-entry.service.ts","./src/app/finance/accounting-entries/creation/accounting-entry-creation.component.ts","./src/app/finance/accounting-entries/creation/accounting-entry-creation.component.html","./src/app/finance/accounting-entries/list/accounting-entry-list.component.ts","./src/app/finance/accounting-entries/list/filter/accounting-entry-filter.component.ts","./src/app/finance/accounting-entries/list/filter/accounting-entry-filter.component.html","./src/app/finance/accounting-entries/list/filter/accounting-entry-filter.service.ts","./src/app/finance/accounting-entries/shared/accounting-entry-body/accounting-entry-body.component.ts","./src/app/finance/accounting-entries/shared/accounting-entry-body/accounting-entry-body.component.html","./src/app/finance/accounting-periods/accounting-period.module.ts","./src/app/finance/accounting-periods/card/accounting-period-card.component.ts","./src/app/finance/accounting-periods/card/accounting-period-card.component.html","./src/app/finance/accounting-periods/creation/accounting-period-creation.component.ts","./src/app/finance/accounting-periods/creation/accounting-period-creation.component.html","./src/app/finance/accounting-periods/list/accounting-period-list.component.ts","./src/app/finance/finance.module.ts","./src/app/general-pnl/general-pnl.component.ts","./src/app/general-pnl/general-pnl.component.html","./src/app/general-pnl/general-pnl.module.ts","./src/app/interactions/interactions.module.ts","./src/app/interactions/list/interaction-list-filter/interaction-list-filter.component.ts","./src/app/interactions/list/interaction-list-filter/interaction-list-filter.component.html","./src/app/interactions/list/interaction-list-filter/interaction-list-filter.service.ts","./src/app/interactions/list/interaction-list.component.ts","./src/app/issues/card/changing-issue-type-modal/changing-issue-type-modal.component.ts","./src/app/issues/card/changing-issue-type-modal/changing-issue-type-modal.component.html","./src/app/issues/card/issue-card.component.ts","./src/app/issues/card/issue-card.component.html","./src/app/issues/card/issue-card.service.ts","./src/app/issues/creation/issue-creation.component.ts","./src/app/issues/creation/issue-creation.component.html","./src/app/issues/issues.module.ts","./src/app/issues/list/filter/issue-filter.component.ts","./src/app/issues/list/filter/issue-filter.component.html","./src/app/issues/list/filter/issue-filter.service.ts","./src/app/issues/list/issue-list.component.ts","./src/app/issues/models/issue.list.ts","./src/app/issues/models/issue.settings.ts","./src/app/programs/card/program-card.component.ts","./src/app/programs/card/program-card.component.html","./src/app/programs/card/program-card.service.ts","./src/app/programs/card/program-overview/program-overview-analysis/program-overview-analysis.component.ts","./src/app/programs/card/program-overview/program-overview-analysis/program-overview-analysis.component.html","./src/app/programs/card/program-overview/program-overview-analysis/program-overview-analysis.module.ts","./src/app/programs/card/program-overview/program-overview-kpi/program-overview-kpi.component.ts","./src/app/programs/card/program-overview/program-overview-kpi/program-overview-kpi.component.html","./src/app/programs/card/program-overview/program-overview-kpi/program-overview-kpi.module.ts","./src/app/programs/card/program-overview/program-overview.component.ts","./src/app/programs/card/program-overview/program-overview.component.html","./src/app/programs/card/program-overview/program-overview.module.ts","./src/app/programs/card/program-pnl/program-pnl.component.ts","./src/app/programs/card/program-pnl/program-pnl.component.html","./src/app/programs/card/program-projects/including-project-modal/including-project-modal.component.ts","./src/app/programs/card/program-projects/including-project-modal/including-project-modal.component.html","./src/app/programs/card/program-projects/program-projects.component.ts","./src/app/programs/card/program-projects/program-projects.component.html","./src/app/programs/list/program-filter/program-filter.component.ts","./src/app/programs/list/program-filter/program-filter.component.html","./src/app/programs/list/program-filter/program-filter.service.ts","./src/app/programs/list/program-list.component.ts","./src/app/programs/programs.module.ts","./src/app/programs/settings/program-settings.component.ts","./src/app/programs/settings/program-settings.component.html","./src/app/project-summary/core/project-summary-data.service.ts","./src/app/project-summary/core/project-summary.service.ts","./src/app/project-summary/models/project-summary-view.settings.ts","./src/app/project-summary/project-summary.component.ts","./src/app/project-summary/project-summary.component.html","./src/app/project-summary/project-summary.module.ts","./src/app/project-summary/shared/pipes/project-summary-total.pipe.ts","./src/app/project-summary/shared/project-summary-filter/core/project-summary-filter.service.ts","./src/app/project-summary/shared/project-summary-filter/models/project-summary-filter.settings.ts","./src/app/project-summary/shared/project-summary-filter/project-summary-filter-modal/project-summary-filter-modal.component.ts","./src/app/project-summary/shared/project-summary-filter/project-summary-filter-modal/project-summary-filter-modal.component.html","./src/app/project-summary/shared/project-summary-filter/project-summary-filter.component.ts","./src/app/project-summary/shared/project-summary-filter/project-summary-filter.component.html","./src/app/project-summary/shared/project-summary-filter/project-summary-filter.module.ts","./src/app/project-summary/shared/project-summary-left-group/project-summary-left-group.component.ts","./src/app/project-summary/shared/project-summary-left-group/project-summary-left-group.component.html","./src/app/project-summary/shared/project-summary-right-group/project-summary-right-group.component.ts","./src/app/project-summary/shared/project-summary-right-group/project-summary-right-group.component.html","./src/app/project-summary/shared/project-summary-toolbar/project-summary-toolbar.component.ts","./src/app/project-summary/shared/project-summary-toolbar/project-summary-toolbar.component.html","./src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service.ts","./src/app/project-summary/shared/project-summary-view-settings/models/project-summary-resource-plan-view-settings.settings.ts","./src/app/project-summary/shared/project-summary-view-settings/project-summary-view-settings.component.ts","./src/app/project-summary/shared/project-summary-view-settings/project-summary-view-settings.component.html","./src/app/projects/card/core/project-card.service.ts","./src/app/projects/card/core/project-tasks-categories.service.ts","./src/app/projects/card/core/project-version-card.service.ts","./src/app/projects/card/project-card.component.ts","./src/app/projects/card/project-card.component.html","./src/app/projects/card/project-card.module.ts","./src/app/projects/card/project-cost-centers/core/project-cost-centers.service.ts","./src/app/projects/card/project-cost-centers/project-cost-center-modal/project-cost-center-modal.component.ts","./src/app/projects/card/project-cost-centers/project-cost-center-modal/project-cost-center-modal.component.html","./src/app/projects/card/project-cost-centers/project-cost-centers-toolbar/project-cost-centers-toolbar.component.ts","./src/app/projects/card/project-cost-centers/project-cost-centers-toolbar/project-cost-centers-toolbar.component.html","./src/app/projects/card/project-cost-centers/project-cost-centers.component.ts","./src/app/projects/card/project-cost-centers/project-cost-centers.component.html","./src/app/projects/card/project-cost-centers/project-cost-centers.module.ts","./src/app/projects/card/project-expenses/models/expenses-account-filter.settings.ts","./src/app/projects/card/project-expenses/models/expenses-calendar.settings.ts","./src/app/projects/card/project-expenses/models/expenses-view.model.ts","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates-toolbar/project-expense-estimates-toolbar.component.ts","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates-toolbar/project-expense-estimates-toolbar.component.html","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates.component.ts","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates.component.html","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates.module.ts","./src/app/projects/card/project-expenses/project-expense-estimates/project-expense-estimates.service.ts","./src/app/projects/card/project-expenses/project-expense-estimates/shared/expense-estimate-modal/expense-estimate-modal.component.ts","./src/app/projects/card/project-expenses/project-expense-estimates/shared/expense-estimate-modal/expense-estimate-modal.component.html","./src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-cell.component.ts","./src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-cell.component.html","./src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-readonly-cell.component.ts","./src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-readonly-cell.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/core/project-expenses-calendar-data.service.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/core/project-expenses-calendar-group-filter.service.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/core/project-expenses-calendar-slot-info.service.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/core/project-expenses-calendar.service.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/project-expenses-calendar.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/project-expenses-calendar.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/project-expenses-calendar.module.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-group-filter/project-expenses-calendar-group-filter.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-group-filter/project-expenses-calendar-group-filter.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-left-group/project-expenses-calendar-left-group.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-left-group/project-expenses-calendar-left-group.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-right-group/project-expenses-calendar-right-group.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-right-group/project-expenses-calendar-right-group.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-slot-info/project-expenses-calendar-slot-info.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-slot-info/project-expenses-calendar-slot-info.component.html","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-toolbar/project-expenses-calendar-toolbar.component.ts","./src/app/projects/card/project-expenses/project-expenses-calendar/shared/project-expenses-calendar-toolbar/project-expenses-calendar-toolbar.component.html","./src/app/projects/card/project-expenses/project-expenses.component.ts","./src/app/projects/card/project-expenses/project-expenses.component.html","./src/app/projects/card/project-expenses/project-expenses.module.ts","./src/app/projects/card/project-expenses/project-expenses.service.ts","./src/app/projects/card/project-expenses/recurring-expense-rule-modal/enums/rule-modal-saving-state.enum.ts","./src/app/projects/card/project-expenses/recurring-expense-rule-modal/recurring-expense-rule-modal.component.ts","./src/app/projects/card/project-expenses/recurring-expense-rule-modal/recurring-expense-rule-modal.component.html","./src/app/projects/card/project-expenses/shared/core/expenses-account-filter.service.ts","./src/app/projects/card/project-expenses/shared/expenses-account-filter/expenses-account-filter.component.ts","./src/app/projects/card/project-expenses/shared/expenses-account-filter/expenses-account-filter.component.html","./src/app/projects/card/project-expenses/shared/expenses-view-switcher/expenses-view-switcher.component.ts","./src/app/projects/card/project-expenses/shared/expenses-view-switcher/expenses-view-switcher.component.html","./src/app/projects/card/project-expenses/shared/project-expenses-shared.module.ts","./src/app/projects/card/project-overview/project-overview-analysis/project-overview-analysis.component.ts","./src/app/projects/card/project-overview/project-overview-analysis/project-overview-analysis.component.html","./src/app/projects/card/project-overview/project-overview-analysis/project-overview-analysis.module.ts","./src/app/projects/card/project-overview/project-overview-kpi/project-overview-kpi.component.ts","./src/app/projects/card/project-overview/project-overview-kpi/project-overview-kpi.component.html","./src/app/projects/card/project-overview/project-overview-kpi/project-overview-kpi.module.ts","./src/app/projects/card/project-overview/project-overview.component.ts","./src/app/projects/card/project-overview/project-overview.component.html","./src/app/projects/card/project-overview/project-overview.module.ts","./src/app/projects/card/project-pnl/project-pnl.component.ts","./src/app/projects/card/project-pnl/project-pnl.component.html","./src/app/projects/card/project-pnl/project-pnl.module.ts","./src/app/projects/card/project-rbc/models/rbc-view.model.ts","./src/app/projects/card/project-rbc/models/rbc.settings.ts","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing-toolbar/project-billing-toolbar.component.ts","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing-toolbar/project-billing-toolbar.component.html","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing.component.ts","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing.component.html","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing.module.ts","./src/app/projects/card/project-rbc/project-billing-estimates/project-billing.service.ts","./src/app/projects/card/project-rbc/project-billing-estimates/shared/model/project-billing-settings.model.ts","./src/app/projects/card/project-rbc/project-billing-estimates/shared/project-billing-modal/project-billing-modal.component.ts","./src/app/projects/card/project-rbc/project-billing-estimates/shared/project-billing-modal/project-billing-modal.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/core/project-rbc-calendar-data.service.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/core/project-rbc-calendar-group-filter.service.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/core/project-rbc-calendar-slot-info.service.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/core/project-rbc-calendar.service.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/project-rbc-calendar.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/project-rbc-calendar.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/project-rbc-calendar.module.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/revenue-estimates-modal/revenue-estimates-modal.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/revenue-estimates-modal/revenue-estimates-modal.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-group-filter/project-rbc-group-filter.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-group-filter/project-rbc-group-filter.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-left-group/project-rbc-calendar-left-group.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-left-group/project-rbc-calendar-left-group.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-right-group/project-rbc-calendar-right-group.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-right-group/project-rbc-calendar-right-group.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-slot-info/project-rbc-calendar-slot-info.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-slot-info/project-rbc-calendar-slot-info.component.html","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-toolbar/project-rbc-calendar-toolbar.component.ts","./src/app/projects/card/project-rbc/project-rbc-calendar/shared/project-rbc-calendar-toolbar/project-rbc-calendar-toolbar.component.html","./src/app/projects/card/project-rbc/project-rbc.component.ts","./src/app/projects/card/project-rbc/project-rbc.component.html","./src/app/projects/card/project-rbc/project-rbc.module.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-estimates.component.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-estimates.component.html","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-estimates.module.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-estimates.service.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-toolbar/project-revenue-toolbar.component.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/project-revenue-toolbar/project-revenue-toolbar.component.html","./src/app/projects/card/project-rbc/project-revenue-estimates/shared/project-revenue-modal/project-revenue-modal.component.ts","./src/app/projects/card/project-rbc/project-revenue-estimates/shared/project-revenue-modal/project-revenue-modal.component.html","./src/app/projects/card/project-rbc/shared/project-rbc-shared.module.ts","./src/app/projects/card/project-rbc/shared/rbc-view-switcher/rbc-view-switcher.component.ts","./src/app/projects/card/project-rbc/shared/rbc-view-switcher/rbc-view-switcher.component.html","./src/app/projects/card/project-resource-requirements/core/resource-requirements-data.service.ts","./src/app/projects/card/project-resource-requirements/core/resource-requirements.service.ts","./src/app/projects/card/project-resource-requirements/models/resource-requirements-settings.model.ts","./src/app/projects/card/project-resource-requirements/project-resource-requirements.component.ts","./src/app/projects/card/project-resource-requirements/project-resource-requirements.component.html","./src/app/projects/card/project-resource-requirements/project-resource-requirements.module.ts","./src/app/projects/card/project-resource-requirements/resource-requirements-left-group/request-cell/request-cell.component.ts","./src/app/projects/card/project-resource-requirements/resource-requirements-left-group/request-cell/request-cell.component.html","./src/app/projects/card/project-resource-requirements/resource-requirements-left-group/resource-requirements-left-group.component.ts","./src/app/projects/card/project-resource-requirements/resource-requirements-left-group/resource-requirements-left-group.component.html","./src/app/projects/card/project-resource-requirements/resource-requirements-right-group/resource-requirements-right-group.component.ts","./src/app/projects/card/project-resource-requirements/resource-requirements-right-group/resource-requirements-right-group.component.html","./src/app/projects/card/project-resources/core/project-resources-calendar-command.service.ts","./src/app/projects/card/project-resources/core/project-resources-data.service.ts","./src/app/projects/card/project-resources/core/project-resources-grid-data.service.ts","./src/app/projects/card/project-resources/core/project-resources.helper.ts","./src/app/projects/card/project-resources/core/project-resources.service.ts","./src/app/projects/card/project-resources/models/project-resource-settings.model.ts","./src/app/projects/card/project-resources/models/project-resources.list.ts","./src/app/projects/card/project-resources/models/resource-forecast-calendar-settings.model.ts","./src/app/projects/card/project-resources/models/resource-planner-settings.model.ts","./src/app/projects/card/project-resources/move-plan-form/move-plan-form.component.ts","./src/app/projects/card/project-resources/move-plan-form/move-plan-form.component.html","./src/app/projects/card/project-resources/project-resource-right-side/project-resource-right-side.component.ts","./src/app/projects/card/project-resources/project-resource-right-side/project-resource-right-side.component.html","./src/app/projects/card/project-resources/project-resource-right-side/project-resources-calendar-right-group/project-resources-calendar-right-group.component.ts","./src/app/projects/card/project-resources/project-resource-right-side/project-resources-calendar-right-group/project-resources-calendar-right-group.component.html","./src/app/projects/card/project-resources/project-resource-toolbar/project-resource-toolbar.component.ts","./src/app/projects/card/project-resources/project-resource-toolbar/project-resource-toolbar.component.html","./src/app/projects/card/project-resources/project-resources-calendar-toggler/project-resources-calendar-toggler.component.ts","./src/app/projects/card/project-resources/project-resources-calendar-toggler/project-resources-calendar-toggler.component.html","./src/app/projects/card/project-resources/project-resources.component.ts","./src/app/projects/card/project-resources/project-resources.component.html","./src/app/projects/card/project-resources/project-resources.module.ts","./src/app/projects/card/project-resources/resource-general-cell/resource-general-cell.component.ts","./src/app/projects/card/project-resources/resource-general-cell/resource-general-cell.component.html","./src/app/projects/card/project-resources/resource-total-cell/resource-total-cell.component.ts","./src/app/projects/card/project-resources/resource-total-cell/resource-total-cell.component.html","./src/app/projects/card/project-resources/resource-total-hours-cell/resource-total-hours-cell.component.ts","./src/app/projects/card/project-resources/resource-total-hours-cell/resource-total-hours-cell.component.html","./src/app/projects/card/project-resources/resources-view-form/resources-view-form.component.ts","./src/app/projects/card/project-resources/resources-view-form/resources-view-form.component.html","./src/app/projects/card/project-tariffs/models/project-tariff.list.ts","./src/app/projects/card/project-tariffs/models/project-tariffs.settings.ts","./src/app/projects/card/project-tariffs/project-tariffs-client-tariff-modal/filter/project-tariffs-client-tariff-filter.component.ts","./src/app/projects/card/project-tariffs/project-tariffs-client-tariff-modal/filter/project-tariffs-client-tariff-filter.service.ts","./src/app/projects/card/project-tariffs/project-tariffs-client-tariff-modal/project-tariffs-client-tariff-modal.component.ts","./src/app/projects/card/project-tariffs/project-tariffs-client-tariff-modal/project-tariffs-client-tariff-modal.component.html","./src/app/projects/card/project-tariffs/project-tariffs-modal/project-tariff-modal.component.ts","./src/app/projects/card/project-tariffs/project-tariffs-modal/project-tariff-modal.component.html","./src/app/projects/card/project-tariffs/project-tariffs-rate-matrices-modal/project-tariffs-rate-matrices-modal.component.ts","./src/app/projects/card/project-tariffs/project-tariffs-rate-matrices-modal/project-tariffs-rate-matrices-modal.component.html","./src/app/projects/card/project-tariffs/project-tariffs-toolbar/project-tariffs-toolbar.component.ts","./src/app/projects/card/project-tariffs/project-tariffs-toolbar/project-tariffs-toolbar.component.html","./src/app/projects/card/project-tariffs/project-tariffs.component.ts","./src/app/projects/card/project-tariffs/project-tariffs.module.ts","./src/app/projects/card/project-tariffs/services/project-tariffs.service.ts","./src/app/projects/card/project-tasks/core/project-task-dependencies.service.ts","./src/app/projects/card/project-tasks/core/project-tasks-data.service.ts","./src/app/projects/card/project-tasks/core/tasks-grid-actions.service.ts","./src/app/projects/card/project-tasks/project-tasks-timeline.module.ts","./src/app/projects/card/project-tasks/project-tasks.component.ts","./src/app/projects/card/project-tasks/project-tasks.component.html","./src/app/projects/card/project-tasks/project-tasks.module.ts","./src/app/projects/card/project-tasks/shared/models/project-task-constants.ts","./src/app/projects/card/project-tasks/shared/models/project-task-view.enum.ts","./src/app/projects/card/project-tasks/shared/models/timeline-graph.model.ts","./src/app/projects/card/project-tasks/shared/project-tasks-shared.module.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignment-tariff-cell/assignment-tariff-cell.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignment-tariff-cell/assignment-tariff-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignments-table.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignments-table.component.html","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignments-toolbar/assignments-toolbar.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignments-toolbar/assignments-toolbar.component.html","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/model/task-assignments-view.enum.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/model/task-assignments.list.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-assignments.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-assignments.component.html","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-assignments.service.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-dependencies-toolbar/task-dependencies-toolbar.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-dependencies-toolbar/task-dependencies-toolbar.component.html","./src/app/projects/card/project-tasks/shared/task-card-modal/task-card-modal.component.ts","./src/app/projects/card/project-tasks/shared/task-card-modal/task-card-modal.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-commands.service.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-list.service.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-readonly-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-readonly-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-readonly-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-readonly-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-readonly-cell.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-readonly-cell.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-grid.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-grid.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-report-modal/tasks-report-modal.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-report-modal/tasks-report-modal.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-report-modal/tasks-report-modal.settings.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-toolbar/tasks-toolbar.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/tasks-toolbar/tasks-toolbar.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/project-task-timeline.service.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-position.service.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-rendering.service.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/dependency-coordinates.interface.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/project-task-settings.model.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline.settings.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/task-timeline-right-group.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/task-timeline-right-group.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/timeline-entry/timeline-entry.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/timeline-entry/timeline-entry.component.html","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/timeline-right-side.component.ts","./src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/timeline-right-side.component.html","./src/app/projects/card/project-tasks/shared/tasks-view-form/tasks-view-form.component.ts","./src/app/projects/card/project-tasks/shared/tasks-view-form/tasks-view-form.component.html","./src/app/projects/card/project-tasks/shared/tasks-view-switcher/tasks-view-switcher.component.ts","./src/app/projects/card/project-tasks/shared/tasks-view-switcher/tasks-view-switcher.component.html","./src/app/projects/card/project-tasks/tasks-main.module.ts","./src/app/projects/card/project-team/add-resources-modal/add-resources-modal-toolbar/add-resources-modal-toolbar.component.ts","./src/app/projects/card/project-team/add-resources-modal/add-resources-modal-toolbar/add-resources-modal-toolbar.component.html","./src/app/projects/card/project-team/add-resources-modal/add-resources-modal.component.ts","./src/app/projects/card/project-team/add-resources-modal/models/filter-resource-types.ts","./src/app/projects/card/project-team/assessment-cell/assessment-cell.component.ts","./src/app/projects/card/project-team/assessment-cell/assessment-cell.component.html","./src/app/projects/card/project-team/generic-assignment-modal/generic-assignment-modal.component.ts","./src/app/projects/card/project-team/generic-assignment-modal/generic-assignment-modal.component.html","./src/app/projects/card/project-team/generic-modal/generic-modal.component.ts","./src/app/projects/card/project-team/generic-modal/generic-modal.component.html","./src/app/projects/card/project-team/generic-modal/model/generic-setting.model.ts","./src/app/projects/card/project-team/member-modal/member-modal-cost-toolbar/member-modal-cost-toolbar.component.ts","./src/app/projects/card/project-team/member-modal/member-modal-cost-toolbar/member-modal-cost-toolbar.component.html","./src/app/projects/card/project-team/member-modal/member-modal.component.ts","./src/app/projects/card/project-team/member-modal/member-modal.component.html","./src/app/projects/card/project-team/member-resource-cell/member-resource-cell.component.ts","./src/app/projects/card/project-team/member-resource-cell/member-resource-cell.component.html","./src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell-readonly.component.ts","./src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell.component.ts","./src/app/projects/card/project-team/project-team.component.ts","./src/app/projects/card/project-team/project-team.component.html","./src/app/projects/card/project-team/project-team.module.ts","./src/app/projects/card/project-team/project-team.service.ts","./src/app/projects/card/project-team/team-settings.model.ts","./src/app/projects/card/project-team/team-toolbar/team-toolbar.component.ts","./src/app/projects/card/project-team/team-toolbar/team-toolbar.component.html","./src/app/projects/card/project-team/user-assessment-modal/user-assessment-modal.component.ts","./src/app/projects/card/project-team/user-assessment-modal/user-assessment-modal.component.html","./src/app/projects/card/shared/financial-amount-cell/financial-amount-cell.component.ts","./src/app/projects/card/shared/financial-amount-cell/financial-amount-cell.component.html","./src/app/projects/card/shared/financial-amount-cell/financial-amount-readonly-cell.component.ts","./src/app/projects/card/shared/financial-amount-cell/financial-amount-readonly-cell.component.html","./src/app/projects/card/shared/financial-amount-cell/financial-non-nullable-amount-cell.component.ts","./src/app/projects/card/shared/financial-amount-cell/financial-non-nullable-amount-cell.component.html","./src/app/projects/card/shared/financial-date-cell/financial-date-cell.component.ts","./src/app/projects/card/shared/financial-date-cell/financial-date-cell.component.html","./src/app/projects/card/shared/financial-date-cell/financial-date-readonly-cell.component.ts","./src/app/projects/card/shared/financial-date-cell/financial-date-readonly-cell.component.html","./src/app/projects/card/shared/financial-date-cell/financial-non-nullable-date-cell.component.ts","./src/app/projects/card/shared/financial-date-cell/financial-non-nullable-date-cell.component.html","./src/app/projects/card/shared/financial-description-cell/financial-description-cell.component.ts","./src/app/projects/card/shared/financial-description-cell/financial-description-cell.component.html","./src/app/projects/card/shared/financial-description-cell/financial-description-readonly-cell.component.ts","./src/app/projects/card/shared/financial-description-cell/financial-description-readonly-cell.component.html","./src/app/projects/card/shared/financial-task-cell/financial-task-cell.component.ts","./src/app/projects/card/shared/financial-task-cell/financial-task-cell.component.html","./src/app/projects/card/shared/financial-task-cell/financial-task-cell.service.ts","./src/app/projects/card/shared/flag-box/flag-box.component.ts","./src/app/projects/card/shared/flag-box/flag-box.component.html","./src/app/projects/card/shared/members-box/members-box.component.ts","./src/app/projects/card/shared/members-box/members-box.component.html","./src/app/projects/card/shared/members-cell/members-cell.component.ts","./src/app/projects/card/shared/members-cell/members-cell.component.html","./src/app/projects/card/shared/members-cell/members-readonly-cell.component.ts","./src/app/projects/card/shared/predecessor-box/predecessor-box.component.ts","./src/app/projects/card/shared/predecessor-box/predecessor-box.component.html","./src/app/projects/card/shared/project-card-shared.module.ts","./src/app/projects/card/shared/recurring-expense-rule-cell/recurring-expense-rule-cell.component.ts","./src/app/projects/card/shared/recurring-expense-rule-cell/recurring-expense-rule-cell.component.html","./src/app/projects/card/shared/roles-cell/roles-cell.component.ts","./src/app/projects/card/shared/roles-cell/roles-cell.component.html","./src/app/projects/card/shared/roles-cell/roles-readonly-cell.component.ts","./src/app/projects/card/shared/roles-cell/roles-readonly-cell.component.html","./src/app/projects/copying-project-modal/copying-project-modal.component.ts","./src/app/projects/copying-project-modal/copying-project-modal.component.html","./src/app/projects/list/project-filter/project-filter.component.ts","./src/app/projects/list/project-filter/project-filter.component.html","./src/app/projects/list/project-filter/project-filter.service.ts","./src/app/projects/list/project-list.component.ts","./src/app/projects/project-versions/card/project-version-card.component.ts","./src/app/projects/project-versions/card/project-version-card.component.html","./src/app/projects/project-versions/card/project-version-card.service.ts","./src/app/projects/project-versions/create-project-version-modal/create-project-version-modal.component.ts","./src/app/projects/project-versions/create-project-version-modal/create-project-version-modal.component.html","./src/app/projects/project-versions/list/project-version-list.component.ts","./src/app/projects/project-versions/list/project-version-list.component.html","./src/app/projects/project-versions/project-version-data.service.ts","./src/app/projects/project-versions/project-version-util.ts","./src/app/projects/project-versions/project-versions-merge-modal/core/project-versions-merge-modal.service.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/get-proj-version-merge-details.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-detail-entity-type.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-detail-type.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-kpi-kind.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-mode.enum.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-option.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-type.model.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-kpi/project-version-merge-details-kpi.component.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-kpi/project-version-merge-details-kpi.component.html","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-updates/project-version-merge-details-updates.component.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-updates/project-version-merge-details-updates.component.html","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-versions-merge-details.component.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-versions-merge-details.component.html","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-modal.component.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-modal.component.html","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-modal.module.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-param-selection/project-versions-merge-param-selection.component.ts","./src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-param-selection/project-versions-merge-param-selection.component.html","./src/app/projects/project-versions/project-versions.module.ts","./src/app/projects/project-versions/project-versions.service.ts","./src/app/projects/project-versions/shared/project-version-card-shared.module.ts","./src/app/projects/project-versions/shared/source-project-version-cell/source-project-version-readonly-cell.component.ts","./src/app/projects/project-versions/shared/source-project-version-cell/source-project-version-readonly-cell.component.html","./src/app/projects/projects.module.ts","./src/app/projects/settings/changing-billing-type-modal/changing-billing-type-modal.component.ts","./src/app/projects/settings/changing-billing-type-modal/changing-billing-type-modal.component.html","./src/app/projects/settings/changing-program-modal/changing-program-modal.component.ts","./src/app/projects/settings/changing-program-modal/changing-program-modal.component.html","./src/app/projects/settings/project-settings.component.ts","./src/app/projects/settings/project-settings.component.html","./src/app/resource-requests/card/resource-request-card-main/resource-request-card-main.component.ts","./src/app/resource-requests/card/resource-request-card-main/resource-request-card-main.component.html","./src/app/resource-requests/card/resource-request-card.component.ts","./src/app/resource-requests/card/resource-request-card.component.html","./src/app/resource-requests/list/request-filter/request-filter.component.ts","./src/app/resource-requests/list/request-filter/request-filter.component.html","./src/app/resource-requests/list/request-filter/request-filter.service.ts","./src/app/resource-requests/list/resource-request-list.component.ts","./src/app/resource-requests/resource-requests.module.ts","./src/app/resource-requests/shared/calendar/resource-request-calendar.component.ts","./src/app/resource-requests/shared/calendar/resource-request-calendar.component.html","./src/app/resource-requests/shared/calendar/resource-request-calendar.service.ts","./src/app/resource-requests/shared/form-advanced/resource-request-form-advanced.component.ts","./src/app/resource-requests/shared/form-advanced/resource-request-form-advanced.component.html","./src/app/resource-requests/shared/form-main/resource-request-form-main.component.ts","./src/app/resource-requests/shared/form-main/resource-request-form-main.component.html","./src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component.ts","./src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component.html","./src/app/resource-requests/shared/resource-request/preferred-resources/preferred-resources-toolbar/preferred-resources-toolbar.component.ts","./src/app/resource-requests/shared/resource-request/preferred-resources/preferred-resources-toolbar/preferred-resources-toolbar.component.html","./src/app/resource-requests/shared/resource-request/preferred-resources/preferred-resources.component.ts","./src/app/resource-requests/shared/resource-request/preferred-resources/preferred-resources.component.html","./src/app/resource-requests/shared/resource-request/resource-request.interface.ts","./src/app/resource-requests/shared/resource-request/resource-request.module.ts","./src/app/resource-requests/shared/resource-request/resource-request.service.ts","./src/app/resource-summary/core/resource-summary-data.service.ts","./src/app/resource-summary/core/resource-summary.service.ts","./src/app/resource-summary/models/resource-summary-view.settings.ts","./src/app/resource-summary/resource-summary.component.ts","./src/app/resource-summary/resource-summary.component.html","./src/app/resource-summary/resource-summary.module.ts","./src/app/resource-summary/shared/pipes/resource-summary-entry.pipe.ts","./src/app/resource-summary/shared/pipes/resource-summary-total.pipe.ts","./src/app/resource-summary/shared/resource-summary-filter/core/resource-summary-filter.service.ts","./src/app/resource-summary/shared/resource-summary-filter/models/resource-summary-filter-settings.ts","./src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter-modal/resource-summary-filter-modal.component.ts","./src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter-modal/resource-summary-filter-modal.component.html","./src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter.component.ts","./src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter.component.html","./src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter.module.ts","./src/app/resource-summary/shared/resource-summary-left-group/resource-summary-left-group.component.ts","./src/app/resource-summary/shared/resource-summary-left-group/resource-summary-left-group.component.html","./src/app/resource-summary/shared/resource-summary-representation-settings/core/resource-summary-representation.service.ts","./src/app/resource-summary/shared/resource-summary-representation-settings/models/representation-type.enum.ts","./src/app/resource-summary/shared/resource-summary-representation-settings/models/resource-summary-representation-settings.settings.ts","./src/app/resource-summary/shared/resource-summary-representation-settings/resource-summary-representation-settings.component.ts","./src/app/resource-summary/shared/resource-summary-representation-settings/resource-summary-representation-settings.component.html","./src/app/resource-summary/shared/resource-summary-right-group/resource-summary-right-group.component.ts","./src/app/resource-summary/shared/resource-summary-right-group/resource-summary-right-group.component.html","./src/app/resource-summary/shared/resource-summary-toolbar/resource-summary-toolbar.component.ts","./src/app/resource-summary/shared/resource-summary-toolbar/resource-summary-toolbar.component.html","./src/app/resource-summary/shared/resource-summary-view-settings/core/resource-summary-view-settings.service.ts","./src/app/resource-summary/shared/resource-summary-view-settings/models/resource-summary-resource-view-settings.settings.ts","./src/app/resource-summary/shared/resource-summary-view-settings/resource-summary-view-settings.component.ts","./src/app/resource-summary/shared/resource-summary-view-settings/resource-summary-view-settings.component.html","./src/app/resources/list/resource-list.component.ts","./src/app/resources/resources.list.ts","./src/app/resources/resources.module.ts","./src/app/router.config.ts","./src/app/selecting-of-substitute-modal/selecting-of-substitute-modal.component.ts","./src/app/selecting-of-substitute-modal/selecting-of-substitute-modal.component.html","./src/app/settings-app/account/account-documents/account-document-link/account-document-link.component.ts","./src/app/settings-app/account/account-documents/account-document-link/account-document-link.component.html","./src/app/settings-app/account/account-documents/account-documents.component.ts","./src/app/settings-app/account/account-documents/account-documents.component.html","./src/app/settings-app/account/account.component.ts","./src/app/settings-app/account/account.component.html","./src/app/settings-app/account/account.module.ts","./src/app/settings-app/account/buy-subscription-modal/billing-info/billing-info.component.ts","./src/app/settings-app/account/buy-subscription-modal/billing-info/billing-info.component.html","./src/app/settings-app/account/buy-subscription-modal/buy-subscription-modal.component.ts","./src/app/settings-app/account/buy-subscription-modal/buy-subscription-modal.component.html","./src/app/settings-app/account/buy-subscription-modal/shared/license-order-calculation.model.ts","./src/app/settings-app/activities/activities.module.ts","./src/app/settings-app/activities/card/activity-card.component.ts","./src/app/settings-app/activities/card/activity-card.component.html","./src/app/settings-app/activities/creation/activity-creation.component.ts","./src/app/settings-app/activities/creation/activity-creation.component.html","./src/app/settings-app/activities/list/activity-list.component.ts","./src/app/settings-app/bill-codes/bill-codes.module.ts","./src/app/settings-app/bill-codes/card/bill-code-card.component.ts","./src/app/settings-app/bill-codes/card/bill-code-card.component.html","./src/app/settings-app/bill-codes/card/bill-code.service.ts","./src/app/settings-app/bill-codes/creation/bill-code-creation.component.ts","./src/app/settings-app/bill-codes/creation/bill-code-creation.component.html","./src/app/settings-app/bill-codes/list/bill-codes-list.component.ts","./src/app/settings-app/bill-codes/model/bill-code.list.ts","./src/app/settings-app/boards/boards.module.ts","./src/app/settings-app/boards/card/board-card-filter/board-card-filter.component.ts","./src/app/settings-app/boards/card/board-card-filter/board-card-filter.component.html","./src/app/settings-app/boards/card/board-card-main/board-card-main.component.ts","./src/app/settings-app/boards/card/board-card-main/board-card-main.component.html","./src/app/settings-app/boards/card/board-card.component.ts","./src/app/settings-app/boards/card/board-card.component.html","./src/app/settings-app/boards/card/board-card.service.ts","./src/app/settings-app/boards/creation/board-creation.component.ts","./src/app/settings-app/boards/creation/board-creation.component.html","./src/app/settings-app/boards/list/boards-list.component.ts","./src/app/settings-app/boards/model/boards.list.ts","./src/app/settings-app/competences/card/competence-card.component.ts","./src/app/settings-app/competences/card/competence-card.component.html","./src/app/settings-app/competences/competences.module.ts","./src/app/settings-app/competences/creation/competence-creation.component.ts","./src/app/settings-app/competences/creation/competence-creation.component.html","./src/app/settings-app/competences/list/competences-list.component.ts","./src/app/settings-app/cost-normalization-rules/card/cost-normalization-rule-card.component.ts","./src/app/settings-app/cost-normalization-rules/card/cost-normalization-rule-card.component.html","./src/app/settings-app/cost-normalization-rules/card/normalization-rule-time-off-toolbar/normalization-rule-time-off-toolbar.component.ts","./src/app/settings-app/cost-normalization-rules/card/normalization-rule-time-off-toolbar/normalization-rule-time-off-toolbar.component.html","./src/app/settings-app/cost-normalization-rules/cost-normalization-rules.module.ts","./src/app/settings-app/cost-normalization-rules/creation/cost-normalization-rule-creation.component.ts","./src/app/settings-app/cost-normalization-rules/creation/cost-normalization-rule-creation.component.html","./src/app/settings-app/cost-normalization-rules/list/cost-normalization-rule-list.component.ts","./src/app/settings-app/currencies/card/currency-card.component.ts","./src/app/settings-app/currencies/card/currency-card.component.html","./src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rate-setting/currency-exchange-rate-setting.component.ts","./src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rate-setting/currency-exchange-rate-setting.component.html","./src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rates.component.ts","./src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rates.component.html","./src/app/settings-app/currencies/card/currency-main/currency-main.component.ts","./src/app/settings-app/currencies/card/currency-main/currency-main.component.html","./src/app/settings-app/currencies/card/currency.service.ts","./src/app/settings-app/currencies/creation/currency-creation.component.ts","./src/app/settings-app/currencies/creation/currency-creation.component.html","./src/app/settings-app/currencies/currencies.module.ts","./src/app/settings-app/currencies/list/currency-list.component.ts","./src/app/settings-app/custom-fields/card/custom-field-card.component.ts","./src/app/settings-app/custom-fields/card/custom-field-card.component.html","./src/app/settings-app/custom-fields/card/custom-field-card.service.ts","./src/app/settings-app/custom-fields/card/field-configuration/field-configuration.component.ts","./src/app/settings-app/custom-fields/card/field-configuration/field-configuration.component.html","./src/app/settings-app/custom-fields/card/field-localization/field-localization.component.ts","./src/app/settings-app/custom-fields/card/field-localization/field-localization.component.html","./src/app/settings-app/custom-fields/creation/custom-field-creation.component.ts","./src/app/settings-app/custom-fields/creation/custom-field-creation.component.html","./src/app/settings-app/custom-fields/custom-fields.module.ts","./src/app/settings-app/custom-fields/list/custom-field-list.component.ts","./src/app/settings-app/departments/card/department-card.component.ts","./src/app/settings-app/departments/card/department-card.component.html","./src/app/settings-app/departments/creation/department-creation.component.ts","./src/app/settings-app/departments/creation/department-creation.component.html","./src/app/settings-app/departments/departments.module.ts","./src/app/settings-app/departments/list/department-list.component.ts","./src/app/settings-app/directories/card/directory-card.component.ts","./src/app/settings-app/directories/card/directory-card.component.html","./src/app/settings-app/directories/card/directory-card.service.ts","./src/app/settings-app/directories/card/entries/modal/directory-entry-modal.component.ts","./src/app/settings-app/directories/card/entries/modal/directory-entry-modal.component.html","./src/app/settings-app/directories/card/entries/model/directory-entries.list.ts","./src/app/settings-app/directories/card/entries/toolbar/directory-entries-toolbar.component.ts","./src/app/settings-app/directories/card/entries/toolbar/directory-entries-toolbar.component.html","./src/app/settings-app/directories/card/properties-modal/directory-properties-modal.component.ts","./src/app/settings-app/directories/card/properties-modal/directory-properties-modal.component.html","./src/app/settings-app/directories/directories.module.ts","./src/app/settings-app/directories/list/directories-list.component.ts","./src/app/settings-app/directories/model/directories.list.ts","./src/app/settings-app/financial-accounts/card/financial-account-card.component.ts","./src/app/settings-app/financial-accounts/card/financial-account-card.component.html","./src/app/settings-app/financial-accounts/creation/financial-account-creation.component.ts","./src/app/settings-app/financial-accounts/creation/financial-account-creation.component.html","./src/app/settings-app/financial-accounts/financial-accounts.module.ts","./src/app/settings-app/financial-accounts/list/financial-account-list.component.ts","./src/app/settings-app/grades/card/grade-card.component.ts","./src/app/settings-app/grades/card/grade-card.component.html","./src/app/settings-app/grades/card/grade-card.service.ts","./src/app/settings-app/grades/creation/grade-creation.component.ts","./src/app/settings-app/grades/creation/grade-creation.component.html","./src/app/settings-app/grades/grades.module.ts","./src/app/settings-app/grades/list/grades-list.component.ts","./src/app/settings-app/groups/card/group-card.component.ts","./src/app/settings-app/groups/card/group-card.component.html","./src/app/settings-app/groups/card/group-card.service.ts","./src/app/settings-app/groups/card/group-permissions/group-permissions.component.ts","./src/app/settings-app/groups/card/group-permissions/group-permissions.component.html","./src/app/settings-app/groups/card/group-properties/group-properties.component.ts","./src/app/settings-app/groups/card/group-properties/group-properties.component.html","./src/app/settings-app/groups/card/group-users/add-user-to-group-modal/add-user-to-group-modal.component.ts","./src/app/settings-app/groups/card/group-users/add-user-to-group-modal/add-user-to-group-modal.component.html","./src/app/settings-app/groups/card/group-users/group-users.component.ts","./src/app/settings-app/groups/card/group-users/group-users.component.html","./src/app/settings-app/groups/creation/group-creation.component.ts","./src/app/settings-app/groups/creation/group-creation.component.html","./src/app/settings-app/groups/groups.module.ts","./src/app/settings-app/groups/list/group-list.component.ts","./src/app/settings-app/history-log/card/history-log-card.component.ts","./src/app/settings-app/history-log/card/history-log-card.component.html","./src/app/settings-app/history-log/history-log.module.ts","./src/app/settings-app/history-log/list/history-log-filter/history-log-filter.component.ts","./src/app/settings-app/history-log/list/history-log-filter/history-log-filter.component.html","./src/app/settings-app/history-log/list/history-log-filter/history-log-filter.service.ts","./src/app/settings-app/history-log/list/history-log-list.component.ts","./src/app/settings-app/import/card/import-card.component.ts","./src/app/settings-app/import/card/import-card.component.html","./src/app/settings-app/import/card/import-filter.service.ts","./src/app/settings-app/import/creation/import-creation.component.ts","./src/app/settings-app/import/creation/import-creation.component.html","./src/app/settings-app/import/import.module.ts","./src/app/settings-app/import/list/import-list.component.ts","./src/app/settings-app/import/list/import-state-cell/import-state-cell.component.ts","./src/app/settings-app/import/list/import-state-cell/import-state-cell.component.html","./src/app/settings-app/invoice-templates/card/invoice-template-card.component.ts","./src/app/settings-app/invoice-templates/card/invoice-template-card.component.html","./src/app/settings-app/invoice-templates/creation/invoice-template-creation.component.ts","./src/app/settings-app/invoice-templates/creation/invoice-template-creation.component.html","./src/app/settings-app/invoice-templates/invoice-templates.module.ts","./src/app/settings-app/invoice-templates/list/invoice-template-list.component.ts","./src/app/settings-app/issue-resolutions/card/issue-resolution-card.component.ts","./src/app/settings-app/issue-resolutions/card/issue-resolution-card.component.html","./src/app/settings-app/issue-resolutions/card/issue-resolution-card.service.ts","./src/app/settings-app/issue-resolutions/creation/issue-resolution-creation.component.ts","./src/app/settings-app/issue-resolutions/creation/issue-resolution-creation.component.html","./src/app/settings-app/issue-resolutions/issue-resolutions.module.ts","./src/app/settings-app/issue-resolutions/list/issue-resolution-list.component.ts","./src/app/settings-app/issue-resolutions/model/issue-resolution.list.ts","./src/app/settings-app/issue-types/card/issue-type-card.component.ts","./src/app/settings-app/issue-types/card/issue-type-card.component.html","./src/app/settings-app/issue-types/card/issue-type-card.service.ts","./src/app/settings-app/issue-types/card/permissions/issue-type-permissions.component.ts","./src/app/settings-app/issue-types/card/permissions/issue-type-permissions.component.html","./src/app/settings-app/issue-types/card/permissions/performers/performers.component.ts","./src/app/settings-app/issue-types/card/permissions/performers/performers.component.html","./src/app/settings-app/issue-types/creation/issue-type-creation.component.ts","./src/app/settings-app/issue-types/creation/issue-type-creation.component.html","./src/app/settings-app/issue-types/issue-types.module.ts","./src/app/settings-app/issue-types/list/issue-type-list.component.ts","./src/app/settings-app/issue-types/model/issue-type-member.model.ts","./src/app/settings-app/issue-types/model/issue-type.list.ts","./src/app/settings-app/legal-entity/card/legal-entity-card.component.ts","./src/app/settings-app/legal-entity/card/legal-entity-card.component.html","./src/app/settings-app/legal-entity/creation/legal-entity-creation.component.ts","./src/app/settings-app/legal-entity/creation/legal-entity-creation.component.html","./src/app/settings-app/legal-entity/legal-entity.module.ts","./src/app/settings-app/legal-entity/list/legal-entity-list.component.ts","./src/app/settings-app/levels/card/level-card.component.ts","./src/app/settings-app/levels/card/level-card.component.html","./src/app/settings-app/levels/card/level-card.service.ts","./src/app/settings-app/levels/creation/level-creation.component.ts","./src/app/settings-app/levels/creation/level-creation.component.html","./src/app/settings-app/levels/levels.module.ts","./src/app/settings-app/levels/list/level-list.component.ts","./src/app/settings-app/lifecycle/card/kind-settings/kind-settings.component.ts","./src/app/settings-app/lifecycle/card/kind-settings/kind-settings.component.html","./src/app/settings-app/lifecycle/card/kind-settings/kind-state-modal/kind-state-modal.component.ts","./src/app/settings-app/lifecycle/card/kind-settings/kind-state-modal/kind-state-modal.component.html","./src/app/settings-app/lifecycle/card/kind-settings/kind-toolbar/kind-toolbar.component.ts","./src/app/settings-app/lifecycle/card/kind-settings/kind-toolbar/kind-toolbar.component.html","./src/app/settings-app/lifecycle/card/lifecycle-card.component.ts","./src/app/settings-app/lifecycle/card/lifecycle-card.component.html","./src/app/settings-app/lifecycle/card/lifecycle-card.service.ts","./src/app/settings-app/lifecycle/card/lifecycle-toolbar/lifecycle-toolbar.component.ts","./src/app/settings-app/lifecycle/card/lifecycle-toolbar/lifecycle-toolbar.component.html","./src/app/settings-app/lifecycle/card/state-modal/state-modal.component.ts","./src/app/settings-app/lifecycle/card/state-modal/state-modal.component.html","./src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.component.ts","./src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.component.html","./src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.service.ts","./src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-modal.component.ts","./src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-modal.component.html","./src/app/settings-app/lifecycle/card/state-modal/transitions-toolbar/transitions-toolbar.component.ts","./src/app/settings-app/lifecycle/card/state-modal/transitions-toolbar/transitions-toolbar.component.html","./src/app/settings-app/lifecycle/card/transitions-cell/transitions-cell.component.ts","./src/app/settings-app/lifecycle/card/transitions-cell/transitions-cell.component.html","./src/app/settings-app/lifecycle/card/transitions.service.ts","./src/app/settings-app/lifecycle/lifecycles.module.ts","./src/app/settings-app/lifecycle/list/lifecycle-list.component.ts","./src/app/settings-app/locations/card/location-card.component.ts","./src/app/settings-app/locations/card/location-card.component.html","./src/app/settings-app/locations/creation/location-creation.component.ts","./src/app/settings-app/locations/creation/location-creation.component.html","./src/app/settings-app/locations/list/location-list.component.ts","./src/app/settings-app/locations/locations.module.ts","./src/app/settings-app/login-log/card/login-log-card.component.ts","./src/app/settings-app/login-log/card/login-log-card.component.html","./src/app/settings-app/login-log/list/login-log-filter.service.ts","./src/app/settings-app/login-log/list/login-log-list.component.ts","./src/app/settings-app/login-log/login-log.module.ts","./src/app/settings-app/metamodel/card/handler/metamodel-handler.component.ts","./src/app/settings-app/metamodel/card/handler/metamodel-handler.component.html","./src/app/settings-app/metamodel/card/metamodel-card.component.ts","./src/app/settings-app/metamodel/card/metamodel-card.component.html","./src/app/settings-app/metamodel/card/metamodel-card.service.ts","./src/app/settings-app/metamodel/card/properties/metamodel-properties.component.ts","./src/app/settings-app/metamodel/card/properties/metamodel-properties.component.html","./src/app/settings-app/metamodel/list/filter/metamodel-list-filter.component.ts","./src/app/settings-app/metamodel/list/filter/metamodel-list-filter.service.ts","./src/app/settings-app/metamodel/list/metamodel-list.component.ts","./src/app/settings-app/metamodel/list/metamodel-list.component.html","./src/app/settings-app/metamodel/metamodel.module.ts","./src/app/settings-app/permission-sets/card/permission-set-administrator/permission-set-administrator.component.ts","./src/app/settings-app/permission-sets/card/permission-set-administrator/permission-set-administrator.component.html","./src/app/settings-app/permission-sets/card/permission-set-billing-manager/permission-set-billing-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-billing-manager/permission-set-billing-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-card.component.ts","./src/app/settings-app/permission-sets/card/permission-set-card.component.html","./src/app/settings-app/permission-sets/card/permission-set-client-manager/permission-set-client-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-client-manager/permission-set-client-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-finance-manager/permission-set-finance-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-finance-manager/permission-set-finance-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-project-manager/permission-set-project-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-project-manager/permission-set-project-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-resource-manager/permission-set-resource-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-resource-manager/permission-set-resource-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-team-manager/permission-set-team-manager.component.ts","./src/app/settings-app/permission-sets/card/permission-set-team-manager/permission-set-team-manager.component.html","./src/app/settings-app/permission-sets/card/permission-set-user/permission-set-user.component.ts","./src/app/settings-app/permission-sets/card/permission-set-user/permission-set-user.component.html","./src/app/settings-app/permission-sets/creation/permission-set-creation.component.ts","./src/app/settings-app/permission-sets/creation/permission-set-creation.component.html","./src/app/settings-app/permission-sets/list/permission-set-list.component.ts","./src/app/settings-app/permission-sets/permission-sets.module.ts","./src/app/settings-app/rate-matrix/card/main-matrix/main-matrix.component.ts","./src/app/settings-app/rate-matrix/card/main-matrix/main-matrix.component.html","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-lines/matrix-rate-lines.component.ts","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-lines/matrix-rate-lines.component.html","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-toolbar/matrix-rate-toolbar.component.ts","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-toolbar/matrix-rate-toolbar.component.html","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate.component.ts","./src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate.component.html","./src/app/settings-app/rate-matrix/card/rate-matrix-card.component.ts","./src/app/settings-app/rate-matrix/card/rate-matrix-card.component.html","./src/app/settings-app/rate-matrix/card/rate-matrix.service.ts","./src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure-change-modal.component.ts","./src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure-change-modal.component.html","./src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model.ts","./src/app/settings-app/rate-matrix/copy-matrix-modal/copy-matrix-modal.component.ts","./src/app/settings-app/rate-matrix/copy-matrix-modal/copy-matrix-modal.component.html","./src/app/settings-app/rate-matrix/creation-modal/rate-matrix-creation-modal.component.ts","./src/app/settings-app/rate-matrix/creation-modal/rate-matrix-creation-modal.component.html","./src/app/settings-app/rate-matrix/list/rate-matrix-list.component.ts","./src/app/settings-app/rate-matrix/model/rate-matrix-line.list.ts","./src/app/settings-app/rate-matrix/model/rate-matrix-structure.enum.ts","./src/app/settings-app/rate-matrix/model/rate-matrix.model.ts","./src/app/settings-app/rate-matrix/rate-matrix.list.ts","./src/app/settings-app/rate-matrix/rate-matrix.module.ts","./src/app/settings-app/resource-pools/card/resource-pool-card.component.ts","./src/app/settings-app/resource-pools/card/resource-pool-card.component.html","./src/app/settings-app/resource-pools/creation/resource-pool-creation.component.ts","./src/app/settings-app/resource-pools/creation/resource-pool-creation.component.html","./src/app/settings-app/resource-pools/list/resource-pool-list.component.ts","./src/app/settings-app/resource-pools/resource-pools.module.ts","./src/app/settings-app/roles/card/role-card.component.ts","./src/app/settings-app/roles/card/role-card.component.html","./src/app/settings-app/roles/card/role-card.service.ts","./src/app/settings-app/roles/creation/role-creation.component.ts","./src/app/settings-app/roles/creation/role-creation.component.html","./src/app/settings-app/roles/list/role-list.component.ts","./src/app/settings-app/roles/roles.module.ts","./src/app/settings-app/schedule-exceptions/card/exceptions-toolbar/schedule-exceptions-toolbar.component.ts","./src/app/settings-app/schedule-exceptions/card/exceptions-toolbar/schedule-exceptions-toolbar.component.html","./src/app/settings-app/schedule-exceptions/card/schedule-exception-card.component.ts","./src/app/settings-app/schedule-exceptions/card/schedule-exception-card.component.html","./src/app/settings-app/schedule-exceptions/creation/schedule-exception-creation.component.ts","./src/app/settings-app/schedule-exceptions/creation/schedule-exception-creation.component.html","./src/app/settings-app/schedule-exceptions/list/schedule-exception-list.component.ts","./src/app/settings-app/schedule-exceptions/schedule-exceptions.module.ts","./src/app/settings-app/schedules/card/schedule-card.component.ts","./src/app/settings-app/schedules/card/schedule-card.component.html","./src/app/settings-app/schedules/card/schedule-card.service.ts","./src/app/settings-app/schedules/creation/schedule-creation.component.ts","./src/app/settings-app/schedules/creation/schedule-creation.component.html","./src/app/settings-app/schedules/list/schedule-list.component.ts","./src/app/settings-app/schedules/schedules.module.ts","./src/app/settings-app/settings-app.component.ts","./src/app/settings-app/settings-app.module.ts","./src/app/settings-app/settings-app.states.ts","./src/app/settings-app/settings/settings-applications/booking-mode-change-dialog/booking-mode-change-dialog.component.ts","./src/app/settings-app/settings/settings-applications/booking-mode-change-dialog/booking-mode-change-dialog.component.html","./src/app/settings-app/settings/settings-applications/capital-charges-toolbar/capital-charges-toolbar.component.ts","./src/app/settings-app/settings/settings-applications/capital-charges-toolbar/capital-charges-toolbar.component.html","./src/app/settings-app/settings/settings-applications/settings-applications.component.ts","./src/app/settings-app/settings/settings-applications/settings-applications.component.html","./src/app/settings-app/settings/settings-billing/settings-billing.component.ts","./src/app/settings-app/settings/settings-billing/settings-billing.component.html","./src/app/settings-app/settings/settings-card.service.ts","./src/app/settings-app/settings/settings-data-deletion/settings-data-deletion.component.ts","./src/app/settings-app/settings/settings-data-deletion/settings-data-deletion.component.html","./src/app/settings-app/settings/settings-domains/domain-adding/domain-adding.component.ts","./src/app/settings-app/settings/settings-domains/domain-adding/domain-adding.component.html","./src/app/settings-app/settings/settings-domains/domain-confirmation/domain-confirmation.component.ts","./src/app/settings-app/settings/settings-domains/domain-confirmation/domain-confirmation.component.html","./src/app/settings-app/settings/settings-domains/settings-domains.component.ts","./src/app/settings-app/settings/settings-domains/settings-domains.component.html","./src/app/settings-app/settings/settings-main/settings-main.component.ts","./src/app/settings-app/settings/settings-main/settings-main.component.html","./src/app/settings-app/settings/settings-security/settings-auth-create-provider-modal/settings-auth-create-provider-modal.component.ts","./src/app/settings-app/settings/settings-security/settings-auth-create-provider-modal/settings-auth-create-provider-modal.component.html","./src/app/settings-app/settings/settings-security/settings-auth-providers/setting-auth-providers-toolbar/setting-auth-providers-toolbar.component.ts","./src/app/settings-app/settings/settings-security/settings-auth-providers/setting-auth-providers-toolbar/setting-auth-providers-toolbar.component.html","./src/app/settings-app/settings/settings-security/settings-auth-providers/settings-auth-providers.component.ts","./src/app/settings-app/settings/settings-security/settings-auth-providers/settings-auth-providers.component.html","./src/app/settings-app/settings/settings-system/settings-system.component.ts","./src/app/settings-app/settings/settings-system/settings-system.component.html","./src/app/settings-app/settings/settings.component.ts","./src/app/settings-app/settings/settings.component.html","./src/app/settings-app/settings/settings.module.ts","./src/app/settings-app/shared/default-filter/default-filter-details/default-filter-details.component.ts","./src/app/settings-app/shared/default-filter/default-filter-details/default-filter-details.component.html","./src/app/settings-app/shared/default-filter/default-filter.service.ts","./src/app/settings-app/shared/naming-localization/naming-localization-modal/naming-localization-modal.component.ts","./src/app/settings-app/shared/naming-localization/naming-localization-modal/naming-localization-modal.component.html","./src/app/settings-app/shared/naming-localization/naming-localization.component.ts","./src/app/settings-app/shared/naming-localization/naming-localization.component.html","./src/app/settings-app/shared/naming-localization/naming-localization.module.ts","./src/app/settings-app/shared/performers/model/allPerformerTypes.const.ts","./src/app/settings-app/shared/performers/performer-box/performer-box.component.ts","./src/app/settings-app/shared/performers/performer-box/performer-box.component.html","./src/app/settings-app/shared/performers/performer-cell/performer-cell.component.ts","./src/app/settings-app/shared/performers/performer-cell/performer-readonly-cell.component.ts","./src/app/settings-app/shared/performers/performers.module.ts","./src/app/settings-app/shared/performers/performers.service.ts","./src/app/settings-app/shared/performers/performers/performers.component.ts","./src/app/settings-app/shared/performers/performers/performers.component.html","./src/app/settings-app/skills/card/skill-card.component.ts","./src/app/settings-app/skills/card/skill-card.component.html","./src/app/settings-app/skills/creation/skill-creation.component.ts","./src/app/settings-app/skills/creation/skill-creation.component.html","./src/app/settings-app/skills/list/skill-list.component.ts","./src/app/settings-app/skills/skills.module.ts","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-modal/accrual-policy-modal.component.ts","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-modal/accrual-policy-modal.component.html","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-modal/accrual-policy-time-off-toolbar/accrual-policy-time-off-toolbar.component.ts","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-modal/accrual-policy-time-off-toolbar/accrual-policy-time-off-toolbar.component.html","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-section/accrual-policy-section.component.ts","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy-section/accrual-policy-section.component.html","./src/app/settings-app/time-off-types/card/accrual-policy/accrual-policy.service.ts","./src/app/settings-app/time-off-types/card/time-off-type-card.component.ts","./src/app/settings-app/time-off-types/card/time-off-type-card.component.html","./src/app/settings-app/time-off-types/card/time-off-type-card.service.ts","./src/app/settings-app/time-off-types/card/using-policy/using-policy-modal/using-policy-modal.component.ts","./src/app/settings-app/time-off-types/card/using-policy/using-policy-modal/using-policy-modal.component.html","./src/app/settings-app/time-off-types/card/using-policy/using-policy-section/using-policy-section.component.ts","./src/app/settings-app/time-off-types/card/using-policy/using-policy-section/using-policy-section.component.html","./src/app/settings-app/time-off-types/card/using-policy/using-policy.service.ts","./src/app/settings-app/time-off-types/creation/time-off-type-creation.component.ts","./src/app/settings-app/time-off-types/creation/time-off-type-creation.component.html","./src/app/settings-app/time-off-types/list/time-off-type-list.component.ts","./src/app/settings-app/time-off-types/time-off-types.module.ts","./src/app/settings-app/timesheet-periods/card/timesheet-period-card.component.ts","./src/app/settings-app/timesheet-periods/card/timesheet-period-card.component.html","./src/app/settings-app/timesheet-periods/creation/timesheet-period-creation.component.ts","./src/app/settings-app/timesheet-periods/creation/timesheet-period-creation.component.html","./src/app/settings-app/timesheet-periods/list/timesheet-period-list.component.ts","./src/app/settings-app/timesheet-periods/list/timesheet-periods-filter.service.ts","./src/app/settings-app/timesheet-periods/timesheet-periods.module.ts","./src/app/settings-app/timesheet-templates/card/custom-fields-section/custom-fields-section.component.ts","./src/app/settings-app/timesheet-templates/card/custom-fields-section/custom-fields-section.component.html","./src/app/settings-app/timesheet-templates/card/project-states-section/project-states-section.component.ts","./src/app/settings-app/timesheet-templates/card/project-states-section/project-states-section.component.html","./src/app/settings-app/timesheet-templates/card/timesheet-template-card.component.ts","./src/app/settings-app/timesheet-templates/card/timesheet-template-card.component.html","./src/app/settings-app/timesheet-templates/card/validation-rules-section/validation-rules-section.component.ts","./src/app/settings-app/timesheet-templates/card/validation-rules-section/validation-rules-section.component.html","./src/app/settings-app/timesheet-templates/creation/timesheet-template-creation.component.ts","./src/app/settings-app/timesheet-templates/creation/timesheet-template-creation.component.html","./src/app/settings-app/timesheet-templates/list/timesheet-template-list.component.ts","./src/app/settings-app/timesheet-templates/timesheet-templates.module.ts","./src/app/settings-app/users/card/user-access/user-access.component.ts","./src/app/settings-app/users/card/user-access/user-access.component.html","./src/app/settings-app/users/card/user-card.component.ts","./src/app/settings-app/users/card/user-card.component.html","./src/app/settings-app/users/card/user-card.service.ts","./src/app/settings-app/users/card/user-cost/user-cost-rates/user-cost-rates-toolbar/user-cost-rates-toolbar.component.ts","./src/app/settings-app/users/card/user-cost/user-cost-rates/user-cost-rates-toolbar/user-cost-rates-toolbar.component.html","./src/app/settings-app/users/card/user-cost/user-cost-rates/user-cost-rates.component.ts","./src/app/settings-app/users/card/user-cost/user-cost-rates/user-cost-rates.component.html","./src/app/settings-app/users/card/user-cost/user-cost-rates/user-cost-rates.service.ts","./src/app/settings-app/users/card/user-cost/user-cost.component.ts","./src/app/settings-app/users/card/user-cost/user-cost.component.html","./src/app/settings-app/users/card/user-notifications/user-notifications.component.ts","./src/app/settings-app/users/card/user-notifications/user-notifications.component.html","./src/app/settings-app/users/card/user-products/user-products-toolbar/user-products-toolbar.component.ts","./src/app/settings-app/users/card/user-products/user-products-toolbar/user-products-toolbar.component.html","./src/app/settings-app/users/card/user-products/user-products.component.ts","./src/app/settings-app/users/card/user-products/user-products.component.html","./src/app/settings-app/users/card/user-products/user-products.service.ts","./src/app/settings-app/users/card/user-profile/password-reset-modal/password-reset-modal.component.ts","./src/app/settings-app/users/card/user-profile/password-reset-modal/password-reset-modal.component.html","./src/app/settings-app/users/card/user-profile/user-profile.component.ts","./src/app/settings-app/users/card/user-profile/user-profile.component.html","./src/app/settings-app/users/card/user-roles/user-roles.component.ts","./src/app/settings-app/users/card/user-roles/user-roles.component.html","./src/app/settings-app/users/card/user-schedule/user-personal-schedule-modal/user-personal-schedule-modal.component.ts","./src/app/settings-app/users/card/user-schedule/user-personal-schedule-modal/user-personal-schedule-modal.component.html","./src/app/settings-app/users/card/user-schedule/user-personal-schedule/user-personal-schedule.component.ts","./src/app/settings-app/users/card/user-schedule/user-personal-schedule/user-personal-schedule.component.html","./src/app/settings-app/users/card/user-schedule/user-schedule-toolbar/user-schedule-toolbar.component.ts","./src/app/settings-app/users/card/user-schedule/user-schedule-toolbar/user-schedule-toolbar.component.html","./src/app/settings-app/users/card/user-schedule/user-schedule.component.ts","./src/app/settings-app/users/card/user-schedule/user-schedule.component.html","./src/app/settings-app/users/card/user-settings/user-settings.component.ts","./src/app/settings-app/users/card/user-settings/user-settings.component.html","./src/app/settings-app/users/card/user-substitutes/user-substitutes-toolbar/user-substitutes-toolbar.component.ts","./src/app/settings-app/users/card/user-substitutes/user-substitutes-toolbar/user-substitutes-toolbar.component.html","./src/app/settings-app/users/card/user-substitutes/user-substitutes.component.ts","./src/app/settings-app/users/card/user-substitutes/user-substitutes.component.html","./src/app/settings-app/users/card/user-timesheets/user-activity-toolbar/user-activity-toolbar.component.ts","./src/app/settings-app/users/card/user-timesheets/user-activity-toolbar/user-activity-toolbar.component.html","./src/app/settings-app/users/card/user-timesheets/user-timesheets.component.ts","./src/app/settings-app/users/card/user-timesheets/user-timesheets.component.html","./src/app/settings-app/users/card/users-groups/adding-resource-group-modal/adding-resource-group-modal.component.ts","./src/app/settings-app/users/card/users-groups/adding-resource-group-modal/adding-resource-group-modal.component.html","./src/app/settings-app/users/card/users-groups/resource-groups/core/resource-groups.service.ts","./src/app/settings-app/users/card/users-groups/resource-groups/resource-groups.component.ts","./src/app/settings-app/users/card/users-groups/resource-groups/resource-groups.component.html","./src/app/settings-app/users/card/users-groups/users-groups.component.ts","./src/app/settings-app/users/card/users-groups/users-groups.component.html","./src/app/settings-app/users/creation/user-creation.component.ts","./src/app/settings-app/users/creation/user-creation.component.html","./src/app/settings-app/users/list/user-filter/user-filter.component.ts","./src/app/settings-app/users/list/user-filter/user-filter.component.html","./src/app/settings-app/users/list/user-filter/user-filter.service.ts","./src/app/settings-app/users/list/user-list.component.ts","./src/app/settings-app/users/list/users-editing/users-editing.component.ts","./src/app/settings-app/users/list/users-editing/users-editing.component.html","./src/app/settings-app/users/users.module.ts","./src/app/settings-app/validation-rules/card/model/limitation-type.enum.ts","./src/app/settings-app/validation-rules/card/rule-empty-lines/rule-empty-lines.component.ts","./src/app/settings-app/validation-rules/card/rule-lines-count/rule-lines-count.component.ts","./src/app/settings-app/validation-rules/card/rule-lines-count/rule-lines-count.component.html","./src/app/settings-app/validation-rules/card/rule-project-planned-hours/rule-project-planned-hours.component.ts","./src/app/settings-app/validation-rules/card/rule-project-planned-hours/rule-project-planned-hours.component.html","./src/app/settings-app/validation-rules/card/rule-required-fields/rule-required-fields.component.ts","./src/app/settings-app/validation-rules/card/rule-required-fields/rule-required-fields.component.html","./src/app/settings-app/validation-rules/card/rule-schedule-work-day-duration/rule-schedule-work-day-duration.component.ts","./src/app/settings-app/validation-rules/card/rule-schedule-work-day-duration/rule-schedule-work-day-duration.component.html","./src/app/settings-app/validation-rules/card/rule-schedule-work-day-percentage/rule-schedule-work-day-percentage.component.ts","./src/app/settings-app/validation-rules/card/rule-schedule-work-day-percentage/rule-schedule-work-day-percentage.component.html","./src/app/settings-app/validation-rules/card/rule-submit-date/rule-submit-date.component.ts","./src/app/settings-app/validation-rules/card/rule-submit-date/rule-submit-date.component.html","./src/app/settings-app/validation-rules/card/rule-work-day-duration/rule-work-day-duration.component.ts","./src/app/settings-app/validation-rules/card/rule-work-day-duration/rule-work-day-duration.component.html","./src/app/settings-app/validation-rules/card/validation-rule-card.component.ts","./src/app/settings-app/validation-rules/card/validation-rule-card.component.html","./src/app/settings-app/validation-rules/creation/validation-rule-creation.component.ts","./src/app/settings-app/validation-rules/creation/validation-rule-creation.component.html","./src/app/settings-app/validation-rules/list/validation-rule-list.component.ts","./src/app/settings-app/validation-rules/validation-rules.module.ts","./src/app/settings-app/workflows/card/workflow-card.component.ts","./src/app/settings-app/workflows/card/workflow-card.component.html","./src/app/settings-app/workflows/card/workflow-card.service.ts","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition-modal/workflow-conditon-modal.component.ts","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition-modal/workflow-condition-modal.component.html","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition-toolbar/workflow-condition-toolbar.component.ts","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition-toolbar/workflow-condition-toolbar.component.html","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition.component.ts","./src/app/settings-app/workflows/card/workflow-condition/workflow-condition.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-action-modal/workflow-action-modal.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-action-modal/workflow-action-modal.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-actions/workflow-actions.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-actions/workflow-actions.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-function.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-function.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-next-function/workflow-next-function.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-next-function/workflow-next-function.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-transition-modal/transition-conditions/transition-conditions.components.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-transition-modal/transition-conditions/transition-conditions.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-transition-modal/workflow-transition-modal.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-transition-modal/workflow-transition-modal.component.html","./src/app/settings-app/workflows/card/workflow-function/workflow-transitions/workflow-transitions.component.ts","./src/app/settings-app/workflows/card/workflow-function/workflow-transitions/workflow-transitions.component.html","./src/app/settings-app/workflows/card/workflow-notification/workflow-notification.component.ts","./src/app/settings-app/workflows/card/workflow-notification/workflow-notification.component.html","./src/app/settings-app/workflows/card/workflow-toolbar/workflow-toolbar.component.ts","./src/app/settings-app/workflows/card/workflow-toolbar/workflow-toolbar.component.html","./src/app/settings-app/workflows/creation/workflow-creation.component.ts","./src/app/settings-app/workflows/creation/workflow-creation.component.html","./src/app/settings-app/workflows/list/workflow-list.component.ts","./src/app/settings-app/workflows/model/workflow.enum.ts","./src/app/settings-app/workflows/workflows.module.ts","./src/app/shared-features/comments/comments.module.ts","./src/app/shared-features/comments/core/comments-data.service.ts","./src/app/shared-features/comments/core/comments-save.service.ts","./src/app/shared-features/comments/core/comments.service.ts","./src/app/shared-features/comments/core/comments.settings.ts","./src/app/shared-features/comments/model/sort-direction.enum.ts","./src/app/shared-features/comments/shared/comment/comment.component.ts","./src/app/shared-features/comments/shared/comment/comment.component.html","./src/app/shared-features/comments/shared/comments-input/comments-input.component.ts","./src/app/shared-features/comments/shared/comments-input/comments-input.component.html","./src/app/shared-features/comments/shared/tabs/attachments-tab/attachments-tab.component.ts","./src/app/shared-features/comments/shared/tabs/attachments-tab/attachments-tab.component.html","./src/app/shared-features/comments/shared/tabs/comments-tab/comments-tab.component.ts","./src/app/shared-features/comments/shared/tabs/comments-tab/comments-tab.component.html","./src/app/shared-features/grid/abstract-right-side.directive.ts","./src/app/shared-features/grid/abstract-toolbar.directive.ts","./src/app/shared-features/grid/core/column-default-value.service.ts","./src/app/shared-features/grid/core/custom-actions.service.ts","./src/app/shared-features/grid/core/grid-keyboard-events.service.ts","./src/app/shared-features/grid/core/grid-orchestrator.service.ts","./src/app/shared-features/grid/core/grid.service.ts","./src/app/shared-features/grid/core/text-to-control-value-parser.helper.ts","./src/app/shared-features/grid/grid-cell/abstract-total-cell.directive.ts","./src/app/shared-features/grid/grid-cell/boolean-cell/boolean-cell.component.ts","./src/app/shared-features/grid/grid-cell/command-cell/command-cell.component.ts","./src/app/shared-features/grid/grid-cell/command-cell/command-cell.component.html","./src/app/shared-features/grid/grid-cell/grid-cell.component.ts","./src/app/shared-features/grid/grid-cell/grid-selection-cell.directive.ts","./src/app/shared-features/grid/grid-cell/grid-total-cell/grid-total-cell.component.ts","./src/app/shared-features/grid/grid-cell/grid-total-cell/grid-total-cell.component.html","./src/app/shared-features/grid/grid-cell/navigation-cell/navigation-cell.component.ts","./src/app/shared-features/grid/grid-cell/navigation-cell/navigation-cell.component.html","./src/app/shared-features/grid/grid-cell/resource-navigation-cell/resource-navigation-cell.component.ts","./src/app/shared-features/grid/grid-cell/resource-navigation-cell/resource-navigation-cell.component.html","./src/app/shared-features/grid/grid-cell/state-cell/state-cell.component.ts","./src/app/shared-features/grid/grid-cell/state-cell/state-cell.component.html","./src/app/shared-features/grid/grid-cell/user-cell/user-cell.component.ts","./src/app/shared-features/grid/grid-cell/user-cell/user-cell.component.html","./src/app/shared-features/grid/grid.component.ts","./src/app/shared-features/grid/grid.component.html","./src/app/shared-features/grid/grid.module.ts","./src/app/shared-features/grid/models/grid-column.interface.ts","./src/app/shared-features/grid/models/grid-constants.ts","./src/app/shared-features/grid/models/grid-options.model.ts","./src/app/shared-features/mermaid-schema/mermaid-schema.service.ts","./src/app/shared-features/planner/core/planner-command.service.ts","./src/app/shared-features/planner/core/planner-format.pipe.ts","./src/app/shared-features/planner/core/planner-period.service.ts","./src/app/shared-features/planner/core/planner-view.service.ts","./src/app/shared-features/planner/models/value-mode.enum.ts","./src/app/shared-features/planner/planner-cell/planner-cell.component.ts","./src/app/shared-features/planner/planner-cell/planner-cell.component.html","./src/app/shared-features/planner/planner-period/planner-period.component.ts","./src/app/shared-features/planner/planner-period/planner-period.component.html","./src/app/shared-features/planner/planner-row-commands/planner-row-commands.component.ts","./src/app/shared-features/planner/planner-row-commands/planner-row-commands.component.html","./src/app/shared-features/planner/planner.module.ts","./src/app/shared-features/pnl/pnl.module.ts","./src/app/shared-features/pnl/pnl.service.ts","./src/app/shared-features/pnl/pnl/core/pnl-drill-down.service.ts","./src/app/shared-features/pnl/pnl/models/pnl-row.model.ts","./src/app/shared-features/pnl/pnl/pnl-filter/pnl-filter-modal/pnl-filter-modal.component.ts","./src/app/shared-features/pnl/pnl/pnl-filter/pnl-filter-modal/pnl-filter-modal.component.html","./src/app/shared-features/pnl/pnl/pnl-filter/pnl-filter.component.ts","./src/app/shared-features/pnl/pnl/pnl-filter/pnl-filter.component.html","./src/app/shared-features/pnl/pnl/pnl.component.ts","./src/app/shared-features/pnl/pnl/pnl.component.html","./src/app/shared-features/pnl/shared/pnl-currency-mode.enum.ts","./src/app/shared-features/pnl/shared/pnl-settings.model.ts","./src/app/shared-features/pnl/shared/pnl-statement-entry-kind.enum.ts","./src/app/shared-features/pnl/shared/pnl-statement-group-type.enum.ts","./src/app/shared-features/pnl/shared/pnl-statement-type.enum.ts","./src/app/shared-features/quick-start/quick-start.component.ts","./src/app/shared-features/quick-start/quick-start.component.html","./src/app/shared-features/resource-roles/adding-resource-roles-modal/adding-resource-roles-modal.component.ts","./src/app/shared-features/resource-roles/adding-resource-roles-modal/adding-resource-roles-modal.component.html","./src/app/shared-features/resource-roles/resource-roles.module.ts","./src/app/shared-features/resource-roles/resource-roles.service.ts","./src/app/shared-features/resource-roles/resource-roles/competences-cell/competences-cell-readonly.component.ts","./src/app/shared-features/resource-roles/resource-roles/competences-cell/competences-cell-readonly.component.html","./src/app/shared-features/resource-roles/resource-roles/competences-cell/competences-cell.component.ts","./src/app/shared-features/resource-roles/resource-roles/competences-cell/competences-cell.component.html","./src/app/shared-features/resource-roles/resource-roles/resource-roles.component.ts","./src/app/shared-features/resource-roles/resource-roles/resource-roles.component.html","./src/app/shared-features/schedule-navigation/core/schedule-navigation.service.ts","./src/app/shared-features/schedule-navigation/index.ts","./src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum.ts","./src/app/shared-features/schedule-navigation/models/schedule-navigation-parts.enum.ts","./src/app/shared-features/schedule-navigation/models/slot.model.ts","./src/app/shared-features/schedule-navigation/schedule-navigation.component/schedule-navigation.component.ts","./src/app/shared-features/schedule-navigation/schedule-navigation.component/schedule-navigation.component.html","./src/app/shared-features/schedule-navigation/schedule-navigation.module.ts","./src/app/shared-features/shared-features.module.ts","./src/app/shared-features/shared/base-shared.module.ts","./src/app/shared-features/shared/entity-workflow-tasks/entity-workflow-tasks.component.ts","./src/app/shared-features/shared/entity-workflow-tasks/entity-workflow-tasks.component.html","./src/app/shared-features/shared/state-history/state-history.component.ts","./src/app/shared-features/shared/state-history/state-history.component.html","./src/app/shared/animations.ts","./src/app/shared/components/add-entities-modal/add-entities-modal.component.ts","./src/app/shared/components/chrome/action-panel/action-panel.component.ts","./src/app/shared/components/chrome/action-panel/action-panel.component.html","./src/app/shared/components/chrome/app-menu/app-menu.component.ts","./src/app/shared/components/chrome/app-menu/app-menu.component.html","./src/app/shared/components/chrome/block-ui/block-ui.component.ts","./src/app/shared/components/chrome/block-ui/block-ui.component.html","./src/app/shared/components/chrome/form-header/form-header.component.ts","./src/app/shared/components/chrome/form-header/form-header.component.html","./src/app/shared/components/chrome/form-header2/form-header.service.ts","./src/app/shared/components/chrome/form-header2/form-header2.component.ts","./src/app/shared/components/chrome/form-header2/form-header2.component.html","./src/app/shared/components/chrome/message/message.component.ts","./src/app/shared/components/chrome/message/message.component.html","./src/app/shared/components/chrome/navigation-panel/navigation-panel.component.ts","./src/app/shared/components/chrome/navigation-panel/navigation-panel.component.html","./src/app/shared/components/chrome/not-found/not-found.component.ts","./src/app/shared/components/chrome/not-found/not-found.component.html","./src/app/shared/components/chrome/notification/notification.component.ts","./src/app/shared/components/chrome/notification/notification.component.html","./src/app/shared/components/chrome/route-navigator/route-navigator.component.ts","./src/app/shared/components/chrome/route-navigator/route-navigator.component.html","./src/app/shared/components/co-managers-modal/co-managers-modal.component.ts","./src/app/shared/components/co-managers-modal/co-managers-modal.component.html","./src/app/shared/components/controls/abstract-box/abstract-box.ts","./src/app/shared/components/controls/checkbox/checkbox.component.ts","./src/app/shared/components/controls/checkbox/checkbox.component.html","./src/app/shared/components/controls/code-editor-box/code-editor-box.component.ts","./src/app/shared/components/controls/code-editor-box/code-editor-box.component.html","./src/app/shared/components/controls/currency-box/currency-box.component.ts","./src/app/shared/components/controls/currency-box/currency-box.component.html","./src/app/shared/components/controls/date-box/customNgbCalendar.service.ts","./src/app/shared/components/controls/date-box/date-box.component.ts","./src/app/shared/components/controls/date-box/date-box.component.html","./src/app/shared/components/controls/date-box/wp-parser-formatter.ts","./src/app/shared/components/controls/date-period-box/date-period-box.component.ts","./src/app/shared/components/controls/date-period-box/date-period-box.component.html","./src/app/shared/components/controls/doc-modal/doc-modal.component.ts","./src/app/shared/components/controls/doc-modal/doc-modal.component.html","./src/app/shared/components/controls/duration-box/duration-box.component.ts","./src/app/shared/components/controls/duration-box/duration-box.component.html","./src/app/shared/components/controls/email-box/email-box.component.ts","./src/app/shared/components/controls/email-box/email-box.component.html","./src/app/shared/components/controls/file-box/file-box-button-add/file-box-button-add.component.ts","./src/app/shared/components/controls/file-box/file-box-button-add/file-box-button-add.component.html","./src/app/shared/components/controls/file-box/file-box-cell/file-box-cell.component.ts","./src/app/shared/components/controls/file-box/file-box-cell/file-box-cell.component.html","./src/app/shared/components/controls/file-box/file-box-dnd-zone/dnd-zone.directive.ts","./src/app/shared/components/controls/file-box/file-box.component.ts","./src/app/shared/components/controls/file-box/file-box.component.html","./src/app/shared/components/controls/file-box/file-box.model.ts","./src/app/shared/components/controls/file-box/files.service.ts","./src/app/shared/components/controls/file-box/index.ts","./src/app/shared/components/controls/hierarchical-box/abstract-hierarchical-box.component.ts","./src/app/shared/components/controls/hierarchical-box/hierarchical-box.component.ts","./src/app/shared/components/controls/hierarchical-box/hierarchical-box.component.html","./src/app/shared/components/controls/multiline-text-box/multiline-text-box.component.ts","./src/app/shared/components/controls/multiline-text-box/multiline-text-box.component.html","./src/app/shared/components/controls/multiselect-box/abstract-multiselect-box.component.ts","./src/app/shared/components/controls/multiselect-box/multiselect-box.component.ts","./src/app/shared/components/controls/multiselect-box/multiselect-box.component.html","./src/app/shared/components/controls/number-box/number-box.component.ts","./src/app/shared/components/controls/number-box/number-box.component.html","./src/app/shared/components/controls/project-versions-box/project-versions-box.component.ts","./src/app/shared/components/controls/project-versions-box/project-versions-box.component.html","./src/app/shared/components/controls/rich-editor-box/commands/join.ts","./src/app/shared/components/controls/rich-editor-box/markdown/additional/horizontal-rule/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/additional/horizontal-rule/consts.ts","./src/app/shared/components/controls/rich-editor-box/markdown/blockquote/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/blockquote/consts.ts","./src/app/shared/components/controls/rich-editor-box/markdown/custom-rules.ts","./src/app/shared/components/controls/rich-editor-box/markdown/heading/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/heading/consts.ts","./src/app/shared/components/controls/rich-editor-box/markdown/keymap.ts","./src/app/shared/components/controls/rich-editor-box/markdown/links/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/links/popup-plugin.ts","./src/app/shared/components/controls/rich-editor-box/markdown/links/ruler.ts","./src/app/shared/components/controls/rich-editor-box/markdown/lists/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/lists/consts.ts","./src/app/shared/components/controls/rich-editor-box/markdown/lists/inputrules.ts","./src/app/shared/components/controls/rich-editor-box/markdown/lists/merge-plugin.ts","./src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers.ts","./src/app/shared/components/controls/rich-editor-box/markdown/magic-link/paste-plugin.ts","./src/app/shared/components/controls/rich-editor-box/markdown/magic-link/serializer.ts","./src/app/shared/components/controls/rich-editor-box/markdown/magic-link/spec.ts","./src/app/shared/components/controls/rich-editor-box/markdown/magic-link/view.ts","./src/app/shared/components/controls/rich-editor-box/markdown/markdown.ts","./src/app/shared/components/controls/rich-editor-box/markdown/marks/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/marks/consts.ts","./src/app/shared/components/controls/rich-editor-box/markdown/mention/commands.ts","./src/app/shared/components/controls/rich-editor-box/markdown/mention/spec.ts","./src/app/shared/components/controls/rich-editor-box/markdown/mention/view.ts","./src/app/shared/components/controls/rich-editor-box/markdown/schema.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/index.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/link-popup/link-popup.component.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/link-popup/link-popup.component.html","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/consts.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/rich-editor-box-menu.component.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/rich-editor-box-menu.component.html","./src/app/shared/components/controls/rich-editor-box/rich-editor-box.component.ts","./src/app/shared/components/controls/rich-editor-box/rich-editor-box.component.html","./src/app/shared/components/controls/rich-editor-box/utils/nodes.ts","./src/app/shared/components/controls/rich-editor-box/utils/selection.ts","./src/app/shared/components/controls/select-box/select-box.component.ts","./src/app/shared/components/controls/select-box/select-box.component.html","./src/app/shared/components/controls/task-box/task-box.component.ts","./src/app/shared/components/controls/task-box/task-box.component.html","./src/app/shared/components/controls/text-box/text-box.component.ts","./src/app/shared/components/controls/text-box/text-box.component.html","./src/app/shared/components/controls/time-tracker-box/time-tracker-box.component.ts","./src/app/shared/components/controls/time-tracker-box/time-tracker-box.component.html","./src/app/shared/components/controls/timesheet-task/timesheet-task.component.ts","./src/app/shared/components/controls/timesheet-task/timesheet-task.component.html","./src/app/shared/components/controls/user-box/user-box.component.ts","./src/app/shared/components/controls/user-box/user-box.component.html","./src/app/shared/components/entity-list/entity-list.component.ts","./src/app/shared/components/entity-list/entity-list.component.html","./src/app/shared/components/entity-list/entity-list.service.ts","./src/app/shared/components/features/custom-fields/custom-field.service.ts","./src/app/shared/components/features/custom-fields/custom-field/custom-field.component.ts","./src/app/shared/components/features/custom-fields/custom-fields.component.ts","./src/app/shared/components/features/custom-fields/custom-fields.component.html","./src/app/shared/components/features/custom-fields/wrappers/currency-box-wrapper.component.ts","./src/app/shared/components/features/custom-fields/wrappers/custom-field-host.directive.ts","./src/app/shared/components/features/custom-fields/wrappers/date-box-wrapper.component.ts","./src/app/shared/components/features/custom-fields/wrappers/number-box-wrapper.component.ts","./src/app/shared/components/features/custom-fields/wrappers/select-box-wrapper.component.ts","./src/app/shared/components/features/custom-fields/wrappers/text-box-wrapper.component.ts","./src/app/shared/components/features/custom-fields/wrappers/user-box-wrapper.component.ts","./src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.component.ts","./src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.component.html","./src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.service.ts","./src/app/shared/components/features/filter/filter-details-host.directive.ts","./src/app/shared/components/features/filter/filter.component.ts","./src/app/shared/components/features/filter/filter.component.html","./src/app/shared/components/features/filter/filter.service.ts","./src/app/shared/components/features/financial-type-cell/financial-type-cell.component.ts","./src/app/shared/components/features/financial-type-cell/financial-type-cell.component.html","./src/app/shared/components/features/garland/garland.component.ts","./src/app/shared/components/features/info-popup/info-popup-item/info-popup-item.component.ts","./src/app/shared/components/features/info-popup/info-popup-item/info-popup-item.component.html","./src/app/shared/components/features/info-popup/info-popup.component.ts","./src/app/shared/components/features/info-popup/info-popup.component.html","./src/app/shared/components/features/info-popup/info-popup.service.ts","./src/app/shared/components/features/loading-indicator/loading-indicator.component.ts","./src/app/shared/components/features/loading-indicator/loading-indicator.component.html","./src/app/shared/components/features/menu/menu.component.ts","./src/app/shared/components/features/menu/menu.component.html","./src/app/shared/components/features/off-canvas/off-canvas.component.ts","./src/app/shared/components/features/off-canvas/off-canvas.component.html","./src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service.ts","./src/app/shared/components/features/overview/overview-kpi/kpi-card/kpi-card.component.ts","./src/app/shared/components/features/overview/overview-kpi/kpi-card/kpi-card.component.html","./src/app/shared/components/features/overview/overview-kpi/overview-kpi.component.ts","./src/app/shared/components/features/overview/overview-kpi/overview-kpi.component.html","./src/app/shared/components/features/overview/overview-kpi/overview-kpi.module.ts","./src/app/shared/components/features/overview/overview-kpi/shared/overview-kpi.settings.ts","./src/app/shared/components/features/overview/overview-switcher/overview-switcher.component.ts","./src/app/shared/components/features/overview/overview-switcher/overview-switcher.component.html","./src/app/shared/components/features/overview/overview-switcher/overview-switcher.module.ts","./src/app/shared/components/features/overview/overview.module.ts","./src/app/shared/components/features/overview/trends-kpi/core/trends-kpi.service.ts","./src/app/shared/components/features/overview/trends-kpi/shared/trends-kpi.settings.ts","./src/app/shared/components/features/overview/trends-kpi/trends-kpi.component.ts","./src/app/shared/components/features/overview/trends-kpi/trends-kpi.component.html","./src/app/shared/components/features/overview/trends-kpi/trends-kpi.module.ts","./src/app/shared/components/features/product-selector-modal/product-selector-modal.component.ts","./src/app/shared/components/features/product-selector-modal/product-selector-modal.component.html","./src/app/shared/components/features/profile-resource-controls/profile-resource-controls.component.ts","./src/app/shared/components/features/profile-resource-controls/profile-resource-controls.component.html","./src/app/shared/components/features/project-info/project-info.component.ts","./src/app/shared/components/features/project-info/project-info.component.html","./src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.component.ts","./src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.component.html","./src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.service.ts","./src/app/shared/components/features/sort/core/sort.service.ts","./src/app/shared/components/features/sort/sort.component.ts","./src/app/shared/components/features/sort/sort.component.html","./src/app/shared/components/features/state-badge/state-badge.component.ts","./src/app/shared/components/features/state-badge/state-badge.component.html","./src/app/shared/components/features/state-changing-cell/state-changing-cell.component.ts","./src/app/shared/components/features/state-changing-cell/state-changing-cell.component.html","./src/app/shared/components/features/state-filter/state-select.component.ts","./src/app/shared/components/features/state-filter/state-select.component.html","./src/app/shared/components/features/state-indicator/state-indicator.component.ts","./src/app/shared/components/features/state-indicator/state-indicator.component.html","./src/app/shared/components/features/stopwatch-indicator/stopwatch-indicator.component.ts","./src/app/shared/components/features/stopwatch-indicator/stopwatch-indicator.component.html","./src/app/shared/components/features/stopwatch-indicator/stopwatch-popup/stopwatch-popup.component.ts","./src/app/shared/components/features/stopwatch-indicator/stopwatch-popup/stopwatch-popup.component.html","./src/app/shared/components/features/substitution-user-cell/substitution-user-cell.component.ts","./src/app/shared/components/features/substitution-user-cell/substitution-user-cell.component.html","./src/app/shared/components/features/task-info/task-info.component.ts","./src/app/shared/components/features/task-info/task-info.component.html","./src/app/shared/components/features/time-off-balance-entries-type-cell/time-off-balance-entries-type-cell.component.ts","./src/app/shared/components/features/time-off-balance-entries-type-cell/time-off-balance-entries-type-cell.component.html","./src/app/shared/components/features/transition-form-modal/transition-form-modal.component.ts","./src/app/shared/components/features/transition-form-modal/transition-form-modal.component.html","./src/app/shared/components/features/tree-list/index.ts","./src/app/shared/components/features/tree-list/tree-list.component.ts","./src/app/shared/components/features/tree-list/tree-list.component.html","./src/app/shared/components/features/tree-list/tree-list.interface.ts","./src/app/shared/components/features/user-info/index.ts","./src/app/shared/components/features/user-info/user-info.component.ts","./src/app/shared/components/features/user-info/user-info.component.html","./src/app/shared/components/features/user-info/user-info.interface.ts","./src/app/shared/components/features/user-info/user-info.settings.ts","./src/app/shared/components/features/user-notification-indicator/user-notification-indicator.component.ts","./src/app/shared/components/features/user-notification-indicator/user-notification-indicator.component.html","./src/app/shared/components/features/user-notification-indicator/user-notification-popup/user-notification-popup.component.ts","./src/app/shared/components/features/user-notification-indicator/user-notification-popup/user-notification-popup.component.html","./src/app/shared/components/features/view-settings-modal/view-settings-modal.component.ts","./src/app/shared/components/features/view-settings-modal/view-settings-modal.component.html","./src/app/shared/components/features/viewer/viewer.component.ts","./src/app/shared/components/features/viewer/viewer.component.html","./src/app/shared/components/features/workflow-action-comment-form/workflow-action-comment-form.component.ts","./src/app/shared/components/features/workflow-action-comment-form/workflow-action-comment-form.component.html","./src/app/shared/components/features/workflow-indicator/workflow-indicator-popup/workflow-indicator-popup.component.ts","./src/app/shared/components/features/workflow-indicator/workflow-indicator-popup/workflow-indicator-popup.component.html","./src/app/shared/components/features/workflow-indicator/workflow-indicator.component.ts","./src/app/shared/components/features/workflow-indicator/workflow-indicator.component.html","./src/app/shared/components/filter-conditions-builder/filter-condition/filter-condition.component.ts","./src/app/shared/components/filter-conditions-builder/filter-condition/filter-condition.component.html","./src/app/shared/components/filter-conditions-builder/filter-conditions-builder.component.ts","./src/app/shared/components/filter-conditions-builder/filter-conditions-builder.component.html","./src/app/shared/components/filter-conditions-builder/filter-conditions-builder.model.ts","./src/app/shared/components/icon-picker/icon-picker.component.ts","./src/app/shared/components/icon-picker/icon-picker.component.html","./src/app/shared/components/mass-operation/mass-operation.component.ts","./src/app/shared/components/mass-operation/mass-operation.component.html","./src/app/shared/components/mass-operation/model/mass-operation-parameters.model.ts","./src/app/shared/components/navigations/navigation-items.component.ts","./src/app/shared/components/navigations/navigation-items.component.html","./src/app/shared/directives/accordion-state/accordion-state.directive.ts","./src/app/shared/directives/accordion-state/accordion-state.settings.ts","./src/app/shared/directives/angular-draggable/angular-draggable.directive.ts","./src/app/shared/directives/angular-draggable/helper-block.ts","./src/app/shared/directives/angular-draggable/position.ts","./src/app/shared/directives/autofocus/autofocus.directive.ts","./src/app/shared/directives/button-spinner.directive.ts","./src/app/shared/directives/click-outside.directive.ts","./src/app/shared/directives/docs-article.directive.ts","./src/app/shared/directives/drag-and-drop/drag-and-drop.directive.ts","./src/app/shared/directives/form-control.directive.ts","./src/app/shared/directives/freeze-table/freeze-table.directive.ts","./src/app/shared/directives/freeze-table/freeze-table.service.ts","./src/app/shared/directives/image-zoom/image-zoom.directive.ts","./src/app/shared/directives/intersectable.directive.ts","./src/app/shared/directives/label-indicator.directive.ts","./src/app/shared/directives/loading-value.directive.ts","./src/app/shared/directives/off-canvas-resize.directive.ts","./src/app/shared/directives/radio-group/radio-button.directive.ts","./src/app/shared/directives/radio-group/radio-group.directive.ts","./src/app/shared/directives/radio-group/radio-group.module.ts","./src/app/shared/directives/radio-group/radio-label.directive.ts","./src/app/shared/directives/resizing.directive.ts","./src/app/shared/directives/truncate/truncate.directive.ts","./src/app/shared/globals/app-name.ts","./src/app/shared/globals/constants.ts","./src/app/shared/globals/firework.ts","./src/app/shared/globals/hightstock.cfg.ts","./src/app/shared/helpers/form-helper/form-helper.interface.ts","./src/app/shared/helpers/form-helper/form-helper.ts","./src/app/shared/helpers/form-helper/index.ts","./src/app/shared/helpers/globalization.helper.ts","./src/app/shared/helpers/guid.ts","./src/app/shared/helpers/image-export/image-export.helper.ts","./src/app/shared/helpers/list.helper.ts","./src/app/shared/helpers/mass-operation.helper.ts","./src/app/shared/helpers/modern-grid.helper.ts","./src/app/shared/helpers/natural-sort.helper.ts","./src/app/shared/helpers/state.helper.ts","./src/app/shared/helpers/string-helper.ts","./src/app/shared/lists/accounting-entry.list.ts","./src/app/shared/lists/accounting-period.list.ts","./src/app/shared/lists/act-line.list.ts","./src/app/shared/lists/act.list.ts","./src/app/shared/lists/activity.list.ts","./src/app/shared/lists/billing-summary.list.ts","./src/app/shared/lists/calculated-field.list.ts","./src/app/shared/lists/certificates.list.ts","./src/app/shared/lists/client.list.ts","./src/app/shared/lists/competences.list.ts","./src/app/shared/lists/cost-normalization-rule.list.ts","./src/app/shared/lists/currency-exchange-rates.list.ts","./src/app/shared/lists/currency.list.ts","./src/app/shared/lists/custom-field.list.ts","./src/app/shared/lists/dashboard.list.ts","./src/app/shared/lists/department.list.ts","./src/app/shared/lists/employee.list.ts","./src/app/shared/lists/expenses-request-line.list.ts","./src/app/shared/lists/expenses.list.ts","./src/app/shared/lists/finance-account.list.ts","./src/app/shared/lists/grade.list.ts","./src/app/shared/lists/group.list.ts","./src/app/shared/lists/history-log.list.ts","./src/app/shared/lists/import-entities.list.ts","./src/app/shared/lists/import.list.ts","./src/app/shared/lists/interactions.list.ts","./src/app/shared/lists/invoice-template.list.ts","./src/app/shared/lists/invoice.list.ts","./src/app/shared/lists/legal-entity.list.ts","./src/app/shared/lists/level.list.ts","./src/app/shared/lists/lifecycle.list.ts","./src/app/shared/lists/location.list.ts","./src/app/shared/lists/login-log.list.ts","./src/app/shared/lists/metamodel.list.ts","./src/app/shared/lists/navigation.helpers.ts","./src/app/shared/lists/permission-set.list.ts","./src/app/shared/lists/program.list.ts","./src/app/shared/lists/project-billing.list.ts","./src/app/shared/lists/project-cost-center.list.ts","./src/app/shared/lists/project-expense-estimates.list.ts","./src/app/shared/lists/project-revenue-estimates.list.ts","./src/app/shared/lists/project-task.list.ts","./src/app/shared/lists/project-team-member.list.ts","./src/app/shared/lists/project-version.list.ts","./src/app/shared/lists/project.list.ts","./src/app/shared/lists/report-template.list.ts","./src/app/shared/lists/report.list.ts","./src/app/shared/lists/resource-pool.list.ts","./src/app/shared/lists/resource-request.list.ts","./src/app/shared/lists/role.list.ts","./src/app/shared/lists/schedule-exception.list.ts","./src/app/shared/lists/schedule.list.ts","./src/app/shared/lists/skill.list.ts","./src/app/shared/lists/time-off-balance-entries.list.ts","./src/app/shared/lists/time-off-type.list.ts","./src/app/shared/lists/time-off.list.ts","./src/app/shared/lists/timesheet-period.list.ts","./src/app/shared/lists/timesheet-template.list.ts","./src/app/shared/lists/timesheet.list.ts","./src/app/shared/lists/user.list.ts","./src/app/shared/lists/validation-rule.list.ts","./src/app/shared/lists/workflow-instance.list.ts","./src/app/shared/lists/workflow-task-timesheet.list.ts","./src/app/shared/lists/workflow-task.list.ts","./src/app/shared/lists/workflow.list.ts","./src/app/shared/models/entities/attachments/attachment.helper.ts","./src/app/shared/models/entities/attachments/file-extension.config.ts","./src/app/shared/models/entities/attachments/restricted-formats.config.ts","./src/app/shared/models/entities/base/stopwatch.model.ts","./src/app/shared/models/entities/billing/invoice-line-type.enum.ts","./src/app/shared/models/entities/billing/invoice.model.ts","./src/app/shared/models/entities/billing/vat-rate.model.ts","./src/app/shared/models/entities/coded-entity.model.ts","./src/app/shared/models/entities/entity-type-description.model.ts","./src/app/shared/models/entities/entity.model.ts","./src/app/shared/models/entities/finance/accounting-entry-mode.enum.ts","./src/app/shared/models/entities/finance/financial-account-type.enum.ts","./src/app/shared/models/entities/finance/financial-account.model.ts","./src/app/shared/models/entities/named-entity.model.ts","./src/app/shared/models/entities/projects/project-task.model.ts","./src/app/shared/models/entities/resources/booking-entry.model.ts","./src/app/shared/models/entities/resources/resource-request.model.ts","./src/app/shared/models/entities/settings/import.model.ts","./src/app/shared/models/entities/settings/invoice-template.model.ts","./src/app/shared/models/entities/settings/metamodel.model.ts","./src/app/shared/models/entities/settings/multitenant/tenant-overview.model.ts","./src/app/shared/models/entities/settings/resource-pool.model.ts","./src/app/shared/models/entities/state.model.ts","./src/app/shared/models/entities/team/time-off-balance-entry-mode.enum.ts","./src/app/shared/models/entities/team/time-off-balance-entry-type.enum.ts","./src/app/shared/models/enums/account-document-status.ts","./src/app/shared/models/enums/accrual-policy-period.enum.ts","./src/app/shared/models/enums/accrual-policy-type.enum.ts","./src/app/shared/models/enums/auth-provider-type.enum.ts","./src/app/shared/models/enums/booking-mode.enum.ts","./src/app/shared/models/enums/booking-type.enum.ts","./src/app/shared/models/enums/commented-entity-collection-type.enum.ts","./src/app/shared/models/enums/control-propagation-mode.enum.ts","./src/app/shared/models/enums/cost-normalization-method.enum.ts","./src/app/shared/models/enums/create-project-version-mode.enum.ts","./src/app/shared/models/enums/date-period-type.enum.ts","./src/app/shared/models/enums/day-of-week.enum.ts","./src/app/shared/models/enums/day-part.enum.ts","./src/app/shared/models/enums/dimension-item.enum.ts","./src/app/shared/models/enums/duration-mode.enum.ts","./src/app/shared/models/enums/enum-entity.ts","./src/app/shared/models/enums/feature.enum.ts","./src/app/shared/models/enums/forecast-period.enum.ts","./src/app/shared/models/enums/kpi-kind.model.ts","./src/app/shared/models/enums/kpi-type.enum.ts","./src/app/shared/models/enums/language.enum.ts","./src/app/shared/models/enums/planning-method.enum.ts","./src/app/shared/models/enums/planning-scale.enum.ts","./src/app/shared/models/enums/project-billing-mode.enum.ts","./src/app/shared/models/enums/project-billing-type.ts","./src/app/shared/models/enums/project-version-state.enum.ts","./src/app/shared/models/enums/recurring-expense-frequency.enum.ts","./src/app/shared/models/enums/resource-type.enum.ts","./src/app/shared/models/enums/revenue-estimate-calculation-method.enum.ts","./src/app/shared/models/enums/revenue-estimate-frequency.enum.ts","./src/app/shared/models/enums/role-name.enum.ts","./src/app/shared/models/enums/rule-calculation-base.enum.ts","./src/app/shared/models/enums/rule-calculation-method.enum.ts","./src/app/shared/models/enums/time-input-type.ts","./src/app/shared/models/enums/time-off-type-unit.enum.ts","./src/app/shared/models/exception.ts","./src/app/shared/models/inner/card-state.enum.ts","./src/app/shared/models/inner/list.ts","./src/app/shared/models/inner/permission-type.enum.ts","./src/app/shared/models/inner/route-mode.enum.ts","./src/app/shared/models/inner/total-type.ts","./src/app/shared/models/off-canvas/off-canvas.settings.ts","./src/app/shared/models/session/client-profile.model.ts","./src/app/shared/models/session/client-session.model.ts","./src/app/shared/modules/interactions/interaction-card/interaction-card.component.ts","./src/app/shared/modules/interactions/interaction-card/interaction-card.component.html","./src/app/shared/modules/interactions/interaction-form/interaction-form.component.ts","./src/app/shared/modules/interactions/interaction-form/interaction-form.component.html","./src/app/shared/modules/interactions/interaction-item/interaction-item.component.ts","./src/app/shared/modules/interactions/interaction-item/interaction-item.component.html","./src/app/shared/modules/interactions/interaction-modal/interaction-modal.component.ts","./src/app/shared/modules/interactions/interaction-modal/interaction-modal.component.html","./src/app/shared/modules/interactions/interactions-filter/interactions-filter.component.ts","./src/app/shared/modules/interactions/interactions-filter/interactions-filter.service.ts","./src/app/shared/modules/interactions/interactions.component.ts","./src/app/shared/modules/interactions/interactions.component.html","./src/app/shared/modules/interactions/interactions.module.ts","./src/app/shared/modules/interactions/interactions.service.ts","./src/app/shared/modules/interactions/models/interactions-filter.settings.ts","./src/app/shared/modules/resources-filter/resources-filter.component.ts","./src/app/shared/modules/resources-filter/resources-filter.component.html","./src/app/shared/modules/resources-filter/resources-filter.module.ts","./src/app/shared/modules/resources-filter/resources-filter.service.ts","./src/app/shared/modules/tariff-rates/helpers/tariff-rates.helper.ts","./src/app/shared/modules/tariff-rates/tariff-rates-toolbar/tariff-rates-toolbar.component.ts","./src/app/shared/modules/tariff-rates/tariff-rates-toolbar/tariff-rates-toolbar.component.html","./src/app/shared/modules/tariff-rates/tariff-rates.component.ts","./src/app/shared/modules/tariff-rates/tariff-rates.component.html","./src/app/shared/modules/tariff-rates/tariff-rates.module.ts","./src/app/shared/modules/user-settings-modal/user-settings-modal.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-modal.component.html","./src/app/shared/modules/user-settings-modal/user-settings-modal.module.ts","./src/app/shared/modules/user-settings-modal/user-settings-modal.service.ts","./src/app/shared/modules/user-settings-modal/user-settings-notifications/user-settings-notifications-forms/user-settings-notifications-form.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-notifications/user-settings-notifications-forms/user-settings-notifications-form.component.html","./src/app/shared/modules/user-settings-modal/user-settings-notifications/user-settings-notifications.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-notifications/user-settings-notifications.component.html","./src/app/shared/modules/user-settings-modal/user-settings-profile/user-settings-profile.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-profile/user-settings-profile.component.html","./src/app/shared/modules/user-settings-modal/user-settings-properties/user-settings-properties.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-properties/user-settings-properties.component.html","./src/app/shared/modules/user-settings-modal/user-settings-security/user-settings-security.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-security/user-settings-security.component.html","./src/app/shared/modules/user-settings-modal/user-settings-substitutes/user-settings-substitutes.component.ts","./src/app/shared/modules/user-settings-modal/user-settings-substitutes/user-settings-substitutes.component.html","./src/app/shared/navigations/analytics-app.navigation.ts","./src/app/shared/navigations/billing-app.navigation.ts","./src/app/shared/navigations/clients-app.navigation.ts","./src/app/shared/navigations/finance-app.navigation.ts","./src/app/shared/navigations/help-desk-app.navigation.ts","./src/app/shared/navigations/my-app.navigation.ts","./src/app/shared/navigations/projects-app.navigation.ts","./src/app/shared/navigations/resources-app.navigation.ts","./src/app/shared/navigations/settings-app.navigation.ts","./src/app/shared/navigations/team-app.navigation.ts","./src/app/shared/pipes/avatar.pipe.ts","./src/app/shared/pipes/boolean.pipe.ts","./src/app/shared/pipes/currency.pipe.ts","./src/app/shared/pipes/custom-field-value.pipe.ts","./src/app/shared/pipes/duration.pipe.ts","./src/app/shared/pipes/finance.pipe.ts","./src/app/shared/pipes/hotkey/hotkey.pipe.ts","./src/app/shared/pipes/hotkey/hotkey.ts","./src/app/shared/pipes/path.pipe.ts","./src/app/shared/pipes/percent-point.pipe.ts","./src/app/shared/pipes/phone.pipe.ts","./src/app/shared/pipes/safe-value.pipe.ts","./src/app/shared/pipes/time-duration.pipe.ts","./src/app/shared/pipes/translate-cut.pipe.ts","./src/app/shared/pipes/truncate.pipe.ts","./src/app/shared/pipes/unsigned-pipe.ts","./src/app/shared/pipes/work.pipe.ts","./src/app/shared/pipes/zero-to-null.pipe.ts","./src/app/shared/services/autosave-state.service.ts","./src/app/shared/services/autosave.service.ts","./src/app/shared/services/browser-notification/browser-notification.service.ts","./src/app/shared/services/cell-orhestrator/cells-orchestrator.service.ts","./src/app/shared/services/currencies.service.ts","./src/app/shared/services/directories.service.ts","./src/app/shared/services/drag-drop/drag-drop.service.ts","./src/app/shared/services/drag-drop/drag-events.interface.ts","./src/app/shared/services/drag-drop/index.ts","./src/app/shared/services/drag-drop/local-drag-drop.service.ts","./src/app/shared/services/entity-types.service.ts","./src/app/shared/services/form-group.service.ts","./src/app/shared/services/list.service.ts","./src/app/shared/services/phone.service.ts","./src/app/shared/services/project-tasks-info.service.ts","./src/app/shared/services/project-tasks.service.ts","./src/app/shared/services/project-team.service.ts","./src/app/shared/services/saving-queue.service.ts","./src/app/shared/services/scroll-to.service.ts","./src/app/shared/services/tenant-setting.service.ts","./src/app/shared/services/undo-redo/undo-redo-buttons/undo-redo-buttons.component.ts","./src/app/shared/services/undo-redo/undo-redo-buttons/undo-redo-buttons.component.html","./src/app/shared/services/undo-redo/undo-redo.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/tokens.ts","./src/app/shared/validators/currency-value-required.ts","./src/app/shared/validators/email.ts","./src/app/shared/validators/uniq-by-key.ts","./src/app/shared/validators/url.ts","./src/app/testing/translate-stub.module.ts","./src/app/time-off-balance-entries/card/time-off-balance-entry-card.component.ts","./src/app/time-off-balance-entries/card/time-off-balance-entry-card.component.html","./src/app/time-off-balance-entries/core/time-off-balance-entry.service.ts","./src/app/time-off-balance-entries/creation/time-off-balance-entry-creation.component.ts","./src/app/time-off-balance-entries/creation/time-off-balance-entry-creation.component.html","./src/app/time-off-balance-entries/list/filter/time-off-balance-entry-filter.component.ts","./src/app/time-off-balance-entries/list/filter/time-off-balance-entry-filter.component.html","./src/app/time-off-balance-entries/list/filter/time-off-balance-entry-filter.service.ts","./src/app/time-off-balance-entries/list/time-off-balance-entries-list.component.ts","./src/app/time-off-balance-entries/shared/time-off-balance-entry-body/time-off-balance-entry-body.component.ts","./src/app/time-off-balance-entries/shared/time-off-balance-entry-body/time-off-balance-entry-body.component.html","./src/app/time-off-balance-entries/time-off-balance-entries.module.ts","./src/app/time-off-requests/card/time-off-period-modal/time-off-period-modal.component.ts","./src/app/time-off-requests/card/time-off-period-modal/time-off-period-modal.component.html","./src/app/time-off-requests/card/time-off-request-card.component.ts","./src/app/time-off-requests/card/time-off-request-card.component.html","./src/app/time-off-requests/creation/time-off-creation.component.ts","./src/app/time-off-requests/creation/time-off-creation.component.html","./src/app/time-off-requests/list/filter/time-off-request-filter.component.ts","./src/app/time-off-requests/list/filter/time-off-request-filter.component.html","./src/app/time-off-requests/list/filter/time-off-request-filter.service.ts","./src/app/time-off-requests/list/time-off-request-list.component.ts","./src/app/time-off-requests/shared/intersected-timesheets-modal/intersected-timesheets-modal.component.ts","./src/app/time-off-requests/shared/intersected-timesheets-modal/intersected-timesheets-modal.component.html","./src/app/time-off-requests/shared/time-off-period/time-off-period.component.ts","./src/app/time-off-requests/shared/time-off-period/time-off-period.component.html","./src/app/time-off-requests/shared/time-off-request.service.ts","./src/app/time-off-requests/time-off-request-info/time-off-request-info.component.ts","./src/app/time-off-requests/time-off-request-info/time-off-request-info.component.html","./src/app/time-off-requests/time-off-requests.module.ts","./src/app/time-off-schedule/shared/time-off-schedule-settings.ts","./src/app/time-off-schedule/time-off-info/time-off-info.component.ts","./src/app/time-off-schedule/time-off-info/time-off-info.component.html","./src/app/time-off-schedule/time-off-info/time-off-info.service.ts","./src/app/time-off-schedule/time-off-schedule-data.service.ts","./src/app/time-off-schedule/time-off-schedule-filters/time-off-schedule-filters.component.ts","./src/app/time-off-schedule/time-off-schedule-filters/time-off-schedule-filters.component.html","./src/app/time-off-schedule/time-off-schedule-filters/time-off-schedule-filters.service.ts","./src/app/time-off-schedule/time-off-schedule.component.ts","./src/app/time-off-schedule/time-off-schedule.component.html","./src/app/time-off-schedule/time-off-schedule.module.ts","./src/app/timesheets/card/core/timesheet-cache.service.ts","./src/app/timesheets/card/core/timesheet-card.service.ts","./src/app/timesheets/card/core/timesheet-lifecycle.service.ts","./src/app/timesheets/card/shared/timesheet-analytic-box/timesheet-analytic-box.component.ts","./src/app/timesheets/card/shared/timesheet-analytic-box/timesheet-analytic-box.component.html","./src/app/timesheets/card/shared/timesheet-cell/timesheet-cell.component.ts","./src/app/timesheets/card/shared/timesheet-cell/timesheet-cell.component.html","./src/app/timesheets/card/shared/validation-modal/validation-modal.component.ts","./src/app/timesheets/card/shared/validation-modal/validation-modal.component.html","./src/app/timesheets/card/table-view/allocation-info/allocation-info.component.ts","./src/app/timesheets/card/table-view/allocation-info/allocation-info.component.html","./src/app/timesheets/card/table-view/allocation-issue-info/allocation-issue-info.component.ts","./src/app/timesheets/card/table-view/allocation-issue-info/allocation-issue-info.component.html","./src/app/timesheets/card/table-view/table-view.component.ts","./src/app/timesheets/card/table-view/table-view.component.html","./src/app/timesheets/card/table-view/timesheet-details/timesheet-details.component.ts","./src/app/timesheets/card/table-view/timesheet-details/timesheet-details.component.html","./src/app/timesheets/card/timesheet-card.component.ts","./src/app/timesheets/card/timesheet-card.component.html","./src/app/timesheets/card/timesheet-header/timesheet-header.component.ts","./src/app/timesheets/card/timesheet-header/timesheet-header.component.html","./src/app/timesheets/list/filter/timesheet-filter.component.ts","./src/app/timesheets/list/filter/timesheet-filter.component.html","./src/app/timesheets/list/filter/timesheet-filter.service.ts","./src/app/timesheets/list/timesheet-list.component.ts","./src/app/timesheets/timesheets.module.ts","./src/app/work-log/card/work-log-card.component.ts","./src/app/work-log/card/work-log-card.component.html","./src/app/work-log/item/work-log-item.component.ts","./src/app/work-log/item/work-log-item.component.html","./src/app/work-log/work-log-filter.service.ts","./src/app/work-log/work-log.component.ts","./src/app/work-log/work-log.component.html","./src/app/work-log/work-log.service.ts","./src/app/workflow-instances/list/entity-cell/workflow-instance-entity-cell.component.ts","./src/app/workflow-instances/list/entity-cell/workflow-instance-entity-cell.component.html","./src/app/workflow-instances/list/filter/workflow-instance-filter.service.ts","./src/app/workflow-instances/list/workflow-instance-list.component.ts","./src/app/workflow-instances/workflow-instances.module.ts","./src/app/workflow-tasks/card/workflow-task-card.component.ts","./src/app/workflow-tasks/card/workflow-task-card.component.html","./src/app/workflow-tasks/card/workflow-task-card.service.ts","./src/app/workflow-tasks/list/filter/workflow-task-filter.component.ts","./src/app/workflow-tasks/list/filter/workflow-task-filter.component.html","./src/app/workflow-tasks/list/filter/workflow-task-filter.service.ts","./src/app/workflow-tasks/list/workflow-task-list.component.ts","./src/app/workflow-tasks/workflow-tasks.module.ts","./src/environments/environment.onprem-dev.ts","./src/main.ts","./node_modules/@angular/common/locales/ lazy ^\\.\\/.*\\.mjs$ include: (az%7Cbe%7Cbg%7Cbs%7Cbs-Latn%7Cca%7Cca-ES-VALENCIA%7Cca-FR%7Cca-IT%7Ccs%7Ccy%7Cda%7Cde%7Cde-AT%7Cde-BE%7Cde-CH%7Cde-LI%7Cde-LU%7Cel%7Cel-CY%7Cen%7Cen-001%7Cen-150%7Cen-AT%7Cen-AU%7Cen-BE%7Cen-CA%7Cen-CH%7Cen-CY%7Cen-DE%7Cen-DK%7Cen-FI%7Cen-FK%7Cen-GB%7Cen-GI%7Cen-HK%7Cen-IE%7Cen-IL%7Cen-MT%7Cen-MY%7Cen-NL%7Cen-NZ%7Cen-SE%7Cen-SG%7Cen-SI%7Ces%7Cet%7Ceu%7Cfi%7Cfr%7Cfr-BE%7Cfr-CA%7Cfr-LU%7Cfr-MC%7Cfr-MF%7Cga%7Cgl%7Chr%7Chr-BA%7Chu%7Chy%7Cid%7Cis%7Cit%7Cit-CH%7Cit-SM%7Ckk%7Cky%7Clt%7Clv%7Cmk%7Cnb%7Cnb-SJ%7Cnl%7Cnl-BE%7Cnn%7Cno%7Cpl%7Cpt%7Cro%7Cro-MD%7Cru%7Cru-BY%7Cru-KG%7Cru-KZ%7Cru-MD%7Cru-UA%7Csk%7Csl%7Csq%7Csq-MK%7Csq-XK%7Csr%7Csr-Cyrl%7Csr-Cyrl-BA%7Csr-Cyrl-ME%7Csr-Cyrl-XK%7Csr-Latn%7Csr-Latn-BA%7Csr-Latn-ME%7Csr-Latn-XK%7Csv%7Csv-AX%7Csv-FI%7Cuk%7Cuz)\\.mjs$ exclude: extra%7Cglobal namespace object"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { ActListComponent } from './list/act-list.component';\nimport { ACT_OF_ACCEPTANCE_LIST } from 'src/app/shared/lists/act.list';\nimport { ActsFilterComponent } from './list/acts-filter/acts-filter.component';\nimport { ActCreationComponent } from './creation/act-creation.component';\nimport { ActCardComponent } from './card/act-card.component';\nimport { ActTaskCellComponent } from './card/act-task-cell/act-task-cell.component';\nimport { ACT_LINE_LIST } from 'src/app/shared/lists/act-line.list';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { SharedFeaturesModule } from 'src/app/shared-features/shared-features.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ActListComponent,\n ActsFilterComponent,\n ActCreationComponent,\n ActCardComponent,\n ActTaskCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PnlModule,\n ResourceRolesModule,\n SharedFeaturesModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'actsOfAcceptance',\n url: '/acts-of-acceptance/{view:viewName}?{navigation}&{route}',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n routerHeader: 'acts.list.header',\n view: 'all',\n },\n component: ActListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'ActOfAcceptance' },\n { provide: LIST, useValue: ACT_OF_ACCEPTANCE_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'actOfAcceptance',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'actOfAcceptance',\n url: '/acts-of-acceptance/{entityId:guid}?{navigation}&{route}',\n component: ActCardComponent,\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ACT_LINE_LIST },\n ],\n },\n ],\n }),\n BaseSharedModule,\n ],\n})\nexport class ActsOfAcceptanceModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ActOfAcceptance } from 'src/app/shared/models/entities/projects/act-of-acceptance.model';\nimport {\n AbstractControl,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ActCardService } from './act-card.service';\nimport { Subject } from 'rxjs';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AppService } from 'src/app/core/app.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { ActOfAcceptanceLine } from 'src/app/shared/models/entities/projects/act-of-acceptance-line.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridCurrencyColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/**\n * Represents Act Card content.\n * */\n@Component({\n selector: 'wp-act-card',\n templateUrl: './act-card.component.html',\n styleUrls: ['./act-card.component.scss'],\n providers: [\n SavingQueueService,\n GridService,\n ProjectTasksService,\n { provide: META_ENTITY_TYPE, useValue: 'ActOfAcceptance' },\n LifecycleService,\n ActCardService,\n ListService,\n FormHeaderService,\n ],\n standalone: false,\n})\nexport class ActCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public actEntity: ActOfAcceptance;\n public readonly = false;\n\n public activeTab: string;\n\n /** Act lines. */\n get lines(): UntypedFormArray {\n return this.form.controls.lines as UntypedFormArray;\n }\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteLine(formGroup.value.id),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n public form = this.fb.group({\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n number: ['', Validators.maxLength(50)],\n date: [null, Validators.required],\n dateOfAcceptance: null,\n amount: null,\n lines: this.fb.array([]),\n });\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n private _currencyCode: string;\n private _projectCurrency: Currency;\n private _baseCurrencyCode: string;\n private _isCustomCurrency = false;\n private _isProgramValueChange = false;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n private actReloaded$ = new Subject();\n\n constructor(\n private app: AppService,\n public service: ActCardService,\n public gridService: GridService,\n private fb: UntypedFormBuilder,\n public savingQueueService: SavingQueueService,\n private actionPanelService: ActionPanelService,\n private projectTasksService: ProjectTasksService,\n private translate: TranslateService,\n private notification: NotificationService,\n private listService: ListService,\n private customFieldService: CustomFieldService,\n private formHeaderService: FormHeaderService,\n private wpCurrency: WpCurrencyPipe,\n private currenciesService: CurrenciesService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'ActOfAcceptance');\n }\n\n ngOnInit(): void {\n this._baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n this._currencyCode = this._baseCurrencyCode;\n\n this.initMainMenu();\n this.initCardSubscriptions();\n this.service.load();\n this.setAdditionalButton();\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n this.destroyed$.next();\n this.actReloaded$.next();\n }\n\n public setUserView() {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.service.reload();\n },\n () => null,\n );\n }\n\n public addLine() {\n this.projectTasksService\n .getProjectTasks(this.actEntity.project.id)\n .subscribe((tasks) => {\n const mainTask = tasks.filter((t) => !t.leadTaskId)[0];\n const group = this.getLineGroup();\n group.controls.projectTask.setValue(mainTask);\n this.lines.push(group);\n\n this.gridService.selectGroup(group);\n if (this._isCustomCurrency) {\n this.refreshXr(group);\n }\n });\n }\n\n public deleteLine(id: string) {\n const index = (this.lines.value as any[]).findIndex((l) => l.id === id);\n this.lines.removeAt(index);\n this.lines.markAsDirty();\n this.calculateTotals();\n }\n\n /**\n * Inits Main menu.\n * */\n private initMainMenu() {\n this.actionPanelService.set([\n {\n name: 'delete',\n title: 'acts.card.actions.delete.label',\n hint: 'acts.card.actions.delete.hint',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.service.deleteAct(),\n },\n ]);\n\n this.actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.reload();\n });\n\n this.actionPanelService.setHasAutosave(true);\n }\n\n /**\n * Inits Card level subscriptions.\n * */\n private initCardSubscriptions() {\n this.service.act$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((act) => this.onActLoaded(act));\n }\n\n /**\n * Act load event handler.\n *\n * @param act Act.\n * */\n private onActLoaded(act: ActOfAcceptance) {\n this.actReloaded$.next();\n this.actEntity = act;\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.form.patchValue(act);\n\n this.readonly = !act.editAllowed;\n\n if (!act.editAllowed) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n\n this.lines.clear();\n\n this._projectCurrency = this.actEntity.project?.currency;\n this._currencyCode =\n this._projectCurrency?.alpha3Code ?? this._baseCurrencyCode;\n this._isCustomCurrency = this._currencyCode !== this._baseCurrencyCode;\n\n act.lines.sort(naturalSort('name')).forEach((line) => {\n const group = this.getLineGroup(line);\n this.lines.push(group);\n\n if (!act.editAllowed) {\n this.lines.disable();\n }\n });\n\n if (this._isCustomCurrency) {\n const amountColumn = this.gridOptions.view.columns.find(\n (column) => column.name === 'amount',\n ) as GridCurrencyColumn;\n if (amountColumn) {\n amountColumn.currencyCode = this._currencyCode;\n }\n\n this.form.controls.date.valueChanges\n .pipe(takeUntil(this.actReloaded$))\n .subscribe(() => {\n this.refreshXr();\n });\n }\n\n this.form.valueChanges\n .pipe(takeUntil(this.actReloaded$))\n .subscribe(() => this.saveAct());\n\n this.form.controls.number.valueChanges\n .pipe(takeUntil(this.actReloaded$))\n .subscribe(() => {\n this.actEntity.name = this.translate.instant('acts.card.nameTemplate', {\n number: this.form.controls.number.value,\n project: this.actEntity.project?.name,\n });\n });\n\n this.toggleActions();\n this.calculateTotals();\n }\n\n private saveAct(): void {\n const formValue = this.form.getRawValue() as ActOfAcceptance;\n\n const act = {\n id: this.entityId,\n name: '',\n projectId: this.actEntity.project.id,\n date: this.form.value.date,\n dateOfAcceptance: this.form.value.dateOfAcceptance,\n number: this.form.value.number,\n description: this.form.value.description,\n lines: [] as any[],\n };\n\n const getLine = (formLine: any): any => ({\n actOfAcceptanceId: this.actEntity.id,\n id: formLine.id,\n projectTaskId: formLine.projectTask.id,\n amount: formLine.amount.value,\n description: formLine.description,\n exchangeRate: formLine.exchangeRate,\n amountBC: formLine.amountBC.value,\n });\n\n this.lines.getRawValue().forEach((formLine) => {\n const line = getLine(formLine);\n act.lines.push(line);\n });\n\n this.customFieldService.assignValues(act, formValue, 'ActOfAcceptance');\n\n this.savingQueueService.addToQueue(\n this.entityId,\n this.service.collection.entity(this.entityId).update(act),\n );\n }\n\n /**\n * Gets Act line form group for Act lines.\n *\n * @param line Act line.\n * @returns Act line form group.\n * */\n private getLineGroup(line?: ActOfAcceptanceLine): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n projectTask: null,\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n amount: {\n value: 0,\n currencyCode: this._currencyCode,\n },\n exchangeRate: [1, Validators.required],\n amountBC: [\n {\n value: 0,\n currencyCode: this._baseCurrencyCode,\n },\n { disabled: true },\n ],\n });\n\n group.controls.amountBC.disable();\n\n if (line) {\n group.patchValue(line);\n\n group.controls.amount.setValue({\n value: line.amount,\n currencyCode: this._currencyCode,\n });\n\n group.controls.amountBC.setValue({\n value: line.amountBC,\n currencyCode: this._baseCurrencyCode,\n });\n }\n\n group.controls.amount.valueChanges\n .pipe(takeUntil(this.actReloaded$))\n .subscribe(() => {\n this.setAmounts(group);\n this.calculateTotals();\n });\n\n if (this._isCustomCurrency) {\n group.controls.exchangeRate.enable();\n group.controls.exchangeRate.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntil(this.actReloaded$),\n )\n .subscribe(() => {\n this.setAmounts(group);\n });\n } else {\n group.controls.exchangeRate.disable();\n }\n\n return group;\n }\n\n /**\n * Updates Actions visibility state.\n * */\n private toggleActions() {\n this.actionPanelService.action('openEntries').isShown =\n this.app.checkAppAccess(AppName.Finance);\n\n this.actionPanelService.action('delete').isShown =\n this.actEntity.editAllowed;\n }\n\n /**\n * Calculates Act total sum values.\n * */\n private calculateTotals() {\n this.actEntity.amount = this.lines.value.reduce(\n (total, line) => total + line.amount.value,\n 0,\n );\n\n this.formHeaderService.updateIndicators([\n {\n description: 'acts.card.mainProps.amount',\n value: this.wpCurrency.transform(\n this.actEntity?.amount,\n this._currencyCode,\n ),\n },\n ]);\n }\n\n /**\n * Refreshes Act lines with Currency Exchange rate by Act date.\n *\n * @param lineGroup Act line to update. If not passed, all the lines will be updated.\n * */\n private refreshXr(lineGroup?: UntypedFormGroup) {\n if (!this.form.controls.date.value) {\n return;\n }\n if (!this._projectCurrency) {\n console.warn('Project Currency is not defined.');\n return;\n }\n const lines = lineGroup\n ? [lineGroup]\n : (this.lines.controls as Array);\n this.currenciesService\n .getExchangeRate(this._projectCurrency.id, this.form.controls.date.value)\n .subscribe({\n next: (xr) => {\n this.setXR(lines, xr);\n },\n error: (error: Exception) => {\n this.setXR(lines, 1);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Sets Act lines Exchange rate.\n *\n * @param lines Act lines to update.\n * @param xr New Exchange rate.\n * */\n private setXR(lines: Array, xr: number) {\n lines.forEach((line) => {\n this.setValueProgrammatically(line.controls.exchangeRate, xr);\n this.setAmounts(line);\n });\n }\n\n private setAmounts(lineGroup: UntypedFormGroup) {\n lineGroup.controls.amountBC.setValue({\n value:\n lineGroup.controls.exchangeRate.value *\n lineGroup.controls.amount.value.value,\n currencyCode: this._baseCurrencyCode,\n });\n }\n\n // TODO: move to separate service and provide at component level.\n private setValueProgrammatically(ctrl: AbstractControl, value: any) {\n this._isProgramValueChange = true;\n ctrl.setValue(value);\n this._isProgramValueChange = false;\n }\n\n private setAdditionalButton(): void {\n this.actionPanelService.setAdditional([\n {\n title: 'finance.entries.actions.openEntries.title',\n hint: 'finance.entries.actions.openEntries.hint',\n name: 'openEntries',\n isBusy: false,\n isVisible: false,\n handler: () => this.service.goToAccountingEntry(),\n },\n ]);\n }\n}\n","\n\n\n\n\n
\n
\n
\n \n
\n\n
\n \n {{ 'billing.invoices.card.mainProps.client' | translate }}:\n \n \n {{ actEntity?.project?.organization?.name }}\n \n
\n\n
\n \n {{ 'billing.invoices.card.mainProps.project' | translate }}:\n \n {{ actEntity?.project?.name }}\n \n
\n\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n
\n {{ actEntity.project.currency.name }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n\n
\n
\n \n \n \n \n
\n
\n \n \n \n
\n
\n \n\n \n\n
\n
\n","import { Inject, Injectable } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActOfAcceptance } from 'src/app/shared/models/entities/projects/act-of-acceptance.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { StateService } from '@uirouter/angular';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Injectable()\nexport class ActCardService {\n public collection = this.data.collection('ActsOfAcceptance');\n public state$ = new ReplaySubject();\n\n private actSubject = new ReplaySubject();\n public act$ = this.actSubject.asObservable();\n\n private act: ActOfAcceptance;\n\n private actQuery = {\n select: [\n 'id',\n 'name',\n 'date',\n 'dateOfAcceptance',\n 'description',\n 'number',\n 'editAllowed',\n ],\n expand: [\n {\n lines: {\n expand: {\n projectTask: {\n select: [\n 'id',\n 'created',\n 'name',\n 'indent',\n 'leadTaskId',\n 'structNumber',\n ],\n },\n },\n },\n },\n {\n project: {\n select: ['id', 'name'],\n expand: {\n organization: { select: ['id', 'name'] },\n currency: { select: ['id', 'name', 'alpha3Code'] },\n },\n },\n },\n { state: { select: ['id', 'name', 'code', 'style'] } },\n { createdBy: { select: ['id', 'name'] } },\n ],\n };\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') public actId: string,\n private data: DataService,\n public autosave: SavingQueueService,\n private notification: NotificationService,\n private navigation: NavigationService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private state: StateService,\n private customFieldService: CustomFieldService,\n private lifecycleService: LifecycleService,\n ) {\n lifecycleService.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.reload();\n });\n this.customFieldService.enrichQuery(this.actQuery, 'ActOfAcceptance');\n }\n\n /**\n * Reloads Card.\n * */\n public reload() {\n this.autosave.save().then(\n () => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n /**\n * Loads Act.\n * */\n public load() {\n this.state$.next(CardState.Loading);\n this.actionService.resetLifecycle();\n\n this.collection\n .entity(this.actId)\n .get(this.actQuery)\n .subscribe({\n next: (act: ActOfAcceptance) => {\n this.act = act;\n this.navigation.addRouteSegment({\n id: act.id,\n title: act.name,\n });\n this.actSubject.next(act);\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Deletes Act.\n * */\n public deleteAct() {\n this.message.confirmLocal('acts.card.messages.deleteConfirmation').then(\n () => {\n this.collection\n .entity(this.actId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem();\n },\n error: (error: Exception) => {\n this.message.error(error.message).then(this.load, this.load);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Navigates to Act Accounting entries.\n * */\n public goToAccountingEntry() {\n this.state.go(`accountingEntries`, {\n navigation: this.navigation.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.act.name,\n filter: [{ documentId: { type: 'guid', value: this.act.id } }],\n }),\n });\n }\n\n /**\n * Disposes service active resources.\n * */\n public dispose() {\n this.destroyed$.next();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewRef,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { ActCardService } from '../act-card.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-act-task-cell',\n templateUrl: './act-task-cell.component.html',\n styleUrls: ['./act-task-cell.component.scss'],\n standalone: false,\n})\nexport class ActTaskCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public projectId: string;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n private actCardService: ActCardService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n ngOnInit(): void {\n this.actCardService.act$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((act) => {\n this.projectId = act.project?.id;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { ActOfAcceptance } from 'src/app/shared/models/entities/projects/act-of-acceptance.model';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-act-creation',\n templateUrl: './act-creation.component.html',\n styleUrls: ['./act-creation.component.scss'],\n standalone: false,\n})\nexport class ActCreationComponent implements OnInit, OnDestroy {\n @Input() client: NamedEntity;\n @Input() project: NamedEntity;\n\n public isSaving = false;\n\n public projectsQuery = {\n filter: {\n billingTypeId: {\n ne: { type: 'guid', value: ProjectBillingType.nonBillable.id },\n },\n isActive: true,\n },\n };\n\n form = this.fb.group({\n project: [null, Validators.required],\n assignAutoNumber: true,\n number: ['', [Validators.maxLength(50), Validators.required]],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'ActOfAcceptance', true);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'ActOfAcceptance',\n );\n }\n\n ngOnInit(): void {\n this.form.controls.number.disable();\n this.form.controls.assignAutoNumber.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.form.controls.assignAutoNumber.value) {\n this.form.controls.number.disable();\n } else {\n this.form.controls.number.enable();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.isSaving = true;\n\n const actOfAcceptance = this.form.getRawValue() as ActOfAcceptance;\n\n const data = {\n projectId: this.form.value.project.id,\n number: this.form.value.assignAutoNumber ? '' : this.form.value.number,\n };\n\n this.customFieldService.assignValues(\n data,\n actOfAcceptance,\n 'ActOfAcceptance',\n );\n\n this.data\n .collection('ActsOfAcceptance')\n .insert(data)\n .subscribe({\n next: (response: Entity) => {\n this.notification.successLocal('acts.creation.messages.created');\n\n this.state.go(`actOfAcceptance`, {\n entityId: response.id,\n });\n\n this.isSaving = false;\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
\n
\n

\n {{ 'acts.creation.header' | translate }}\n

\n \n
\n
\n
\n \n \n
\n\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n {{ 'shared.actions.create' | translate }}\n \n \n
\n
\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subject } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ActsFilterService } from './acts-filter/acts-filter.service';\nimport { ActCreationComponent } from '../creation/act-creation.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-act-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ActsFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class ActListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private injector: Injector,\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modal: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'acts.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'ActOfAcceptance',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('actOfAcceptance', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: UntypedFormGroup[]) => {\n this.actions.action('card').isShown = rows?.length === 1;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create() {\n this.modal.open(ActCreationComponent, {\n injector: this.injector,\n });\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-acts-filter',\n templateUrl: './acts-filter.component.html',\n standalone: false,\n})\nexport class ActsFilterComponent implements OnInit, OnDestroy, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: [null],\n client: [null],\n project: [null],\n states: [null],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n \n
\n
\n
\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ActsFilterComponent } from './acts-filter.component';\n\n@Injectable()\nexport class ActsFilterService extends FilterService {\n public override component: Type = ActsFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'projects.clients.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n period: null,\n project: null,\n client: null,\n states: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n { 'tolower(name)': { contains: text } },\n { 'tolower(number)': { contains: text } },\n { 'tolower(description)': { contains: text } },\n { project: { 'tolower(name)': { contains: text } } },\n {\n project: { organization: { 'tolower(name)': { contains: text } } },\n },\n ],\n });\n }\n\n if (this.values.client) {\n result.push({\n project: {\n organizationId: { type: 'guid', value: this.values.client.id },\n },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n date: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n date: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { CalculatedFieldsModule } from './calculated-fields/calculated-fields.module';\nimport { DashboardsModule } from './dashboards/dashboards.module';\nimport { ReportsModule } from './reports/reports.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n/** Модуль приложения Аналитика. */\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n ReportsModule,\n CalculatedFieldsModule,\n DashboardsModule,\n EntityListComponent,\n ],\n})\nexport class AnalyticsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { CalculatedFieldCardComponent } from './card/calculated-field-card.component';\nimport { CalculatedFieldFilterComponent } from './list/calculated-field-filter/calculated-field-filter.component';\nimport { CALCULATED_FIELD_LIST } from 'src/app/shared/lists/calculated-field.list';\nimport { CalculatedFieldListComponent } from './list/calculated-field-list.component';\nimport { AnalyticsSharedModule } from '../shared/analytics-shared.module';\nimport { CalculatedFieldCreationComponent } from './creation/calculated-field-creation.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n/** Вычисляемые поля. */\n@NgModule({\n declarations: [\n CalculatedFieldCardComponent,\n CalculatedFieldListComponent,\n CalculatedFieldFilterComponent,\n CalculatedFieldCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n AnalyticsSharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'calculatedFields',\n params: {\n navigation: 'analytics.calculatedFields',\n },\n url: '/calculated-fields',\n component: CalculatedFieldListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CALCULATED_FIELD_LIST },\n ],\n },\n {\n name: 'calculatedField',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'analytics.calculatedFields',\n routeMode: null,\n },\n url: '/calculated-fields/{entityId:guid}?{navigation}&{route}',\n component: CalculatedFieldCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class CalculatedFieldsModule {}\n","import {\n Component,\n OnInit,\n Input,\n ViewChild,\n ElementRef,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormArray,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CalculatedField } from 'src/app/shared/models/entities/analytics/calculated-field.model';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { ReportField } from '../../shared/models/source-description/report-field.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { CalculatedFieldTypes } from '../../shared/models/report-field-type.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { uniq } from 'lodash';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-calculated-field-card',\n templateUrl: './calculated-field-card.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class CalculatedFieldCardComponent implements OnInit {\n @Input() entityId: string;\n\n @ViewChild('editor') editor: ElementRef;\n\n public state: CardState;\n public isSaving = false;\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: [false],\n fieldType: [null, Validators.required],\n reportType: [null],\n localStrings: this.fb.array([]),\n expression: '',\n sourceField: null,\n });\n\n public readonly: boolean;\n public sourceFields: ReportField[];\n public fieldTypes: NamedEntity[];\n public languages: NamedEntity[];\n\n public get localStrings(): UntypedFormArray {\n return this.form.controls['localStrings'] as UntypedFormArray;\n }\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.localStrings.removeAt(index);\n this.localStrings.markAsDirty();\n },\n },\n ],\n view: {\n name: 'strings',\n columns: [\n {\n name: 'language',\n header: 'analytics.calculatedFields.card.properties.language.label',\n hint: 'analytics.calculatedFields.card.properties.language.label',\n type: GridColumnType.SelectControl,\n placeholder:\n 'analytics.calculatedFields.card.properties.language.label',\n values: () => this.languages,\n width: '250px',\n },\n {\n name: 'label',\n header: 'analytics.calculatedFields.card.properties.title.label',\n hint: 'analytics.calculatedFields.card.properties.title.label',\n type: GridColumnType.StringControl,\n placeholder:\n 'analytics.calculatedFields.card.properties.title.placeholder',\n width: '100%',\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private analyticsService: AnalyticsService,\n private gridService: GridService,\n ) {}\n\n public addString() {\n const group = this.fb.group({\n id: Guid.generate(),\n label: [\n null,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n language: ['', Validators.required],\n });\n this.localStrings.push(group);\n this.gridService.selectGroup(group);\n }\n\n // Загрузка данных.\n private load = () => {\n this.form.reset();\n this.state = CardState.Loading;\n this.actionService.action('save').hide();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n expand: { reportType: { select: ['id', 'name', 'code'] } },\n };\n\n // Загрузка данных.\n this.data\n .collection('CalculatedFields')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (field) => {\n this.form.patchValue(field);\n this.readonly = !field.editAllowed;\n this.readonly ? this.form.disable() : this.form.enable();\n\n this.analyticsService\n .getSourceDescription(field.reportType.code)\n .subscribe((sourceDescription) => {\n this.sourceFields = [];\n sourceDescription.allFields.forEach((reportField) => {\n if (reportField.isCalculated) {\n return;\n }\n this.sourceFields.push(reportField);\n });\n });\n\n if (field.fieldType) {\n const filedType = this.fieldTypes.find(\n (f) => f.id === field.fieldType,\n );\n this.form.controls['fieldType'].setValue(filedType);\n }\n\n const titleLocalization = JSON.parse(\n field.titleLocalization,\n ) as Dictionary;\n\n // Загрузка языков\n this.data.model\n .function('GetLanguages')\n .query()\n .subscribe((languages) => {\n this.languages = languages;\n this.localStrings.clear();\n\n for (const culture in titleLocalization) {\n if (\n Object.prototype.hasOwnProperty.call(\n titleLocalization,\n culture,\n )\n ) {\n const lang = languages.find((l) => l.id === culture);\n\n this.localStrings.push(\n this.fb.group({\n id: Guid.generate(),\n label: [\n titleLocalization[culture],\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n language: [lang, Validators.required],\n }),\n );\n }\n }\n this.state = CardState.Ready;\n this.actionService.action('save').isShown = !this.readonly;\n });\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n // Сохранение данных.\n public save = (): void => {\n this.form.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const formData = this.form.value;\n\n // Проверить уникальность строк локализации.\n const localStrings = formData.localStrings as any[];\n if (\n uniq(localStrings.map((ls) => ls.language.id)).length !==\n localStrings.length\n ) {\n this.notification.warningLocal(\n 'analytics.calculatedFields.card.messages.singleTitlePerLanguageIsAllowed',\n );\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const titleLocalization: Dictionary = {};\n\n (formData.localStrings).forEach((localString) => {\n titleLocalization[localString.language.id] = localString.label;\n });\n\n const data: any = {\n id: this.entityId,\n name: formData.name,\n description: formData.description,\n isActive: formData.isActive,\n fieldType: formData.fieldType.id,\n expression: formData.expression,\n titleLocalization: JSON.stringify(titleLocalization),\n };\n\n this.data\n .collection('CalculatedFields')\n .entity(this.entityId)\n .update(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'analytics.calculatedFields.card.messages.fieldIsSaved',\n );\n },\n error: (error: any) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n // Добавить имя поля в редактор.\n public addField(fieldName: string): void {\n fieldName = `[${fieldName}]`;\n\n const domElement = this.editor.nativeElement as HTMLTextAreaElement;\n if (domElement.selectionStart || domElement.selectionStart === 0) {\n const startPos = domElement.selectionStart;\n const endPos = domElement.selectionEnd;\n const scrollTop = domElement.scrollTop;\n domElement.value =\n domElement.value.substring(0, startPos) +\n fieldName +\n domElement.value.substring(endPos, domElement.value.length);\n domElement.focus();\n domElement.selectionStart = startPos + fieldName.length;\n domElement.selectionEnd = startPos + fieldName.length;\n domElement.scrollTop = scrollTop;\n } else {\n domElement.value += fieldName;\n domElement.focus();\n }\n\n this.form.patchValue({ sourceField: null, expression: domElement.value });\n this.form.markAsDirty();\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.fieldTypes = [];\n\n for (const reportFieldType of CalculatedFieldTypes) {\n this.fieldTypes.push({\n id: reportFieldType,\n name: this.translate.instant(`enums.fieldType.${reportFieldType}`),\n });\n }\n this.load();\n\n this.form\n .get('sourceField')\n .valueChanges.pipe(\n filter((v) => v),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value: ReportField) => {\n this.addField(value.name);\n });\n }\n}\n","\n\n\n\n\n\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n

\n {{ form.getRawValue().reportType?.name }}\n

\n
\n\n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n {{ 'shared.actions.add' | translate }}\n \n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n
\n @if (!readonly) {\n
\n \n
\n }\n
\n \n
\n\n \n {{ 'analytics.calculatedFields.card.properties.expression.help' | translate }}\n \n \n
\n
\n\n
\n \n {{ 'shared.actions.save' | translate }}\n \n
\n
\n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-calculated-field-creation',\n templateUrl: './calculated-field-creation.component.html',\n standalone: false,\n})\nexport class CalculatedFieldCreationComponent {\n isSaving = false;\n form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n reportType: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = {\n name: this.form.value.name,\n reportTypeId: this.form.value.reportType.id,\n };\n\n this.data\n .collection('CalculatedFields')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'analytics.calculatedFields.creation.messages.fieldIsCreated',\n );\n this.state.go('calculatedField', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
\n
\n

\n {{ 'analytics.calculatedFields.creation.header' | translate }}\n

\n \n
\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n
\n
\n \n {{ 'shared.actions.create' | translate }}\n \n \n
\n
\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-calculated-field-filter',\n templateUrl: './calculated-field-filter.component.html',\n standalone: false,\n})\nexport class CalculatedFieldFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n reportType: [null],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n private service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { CalculatedFieldFilterComponent } from './calculated-field-filter.component';\n\n@Injectable()\nexport class CalculatedFieldFilterService extends FilterService {\n public override component: Type =\n CalculatedFieldFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = true;\n public override hasAllowInactive = false;\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override placeholder = 'analytics.calculatedFields.list.filter.ph';\n public override customCriteriaCount: Record number> = {\n view: () => 0,\n };\n\n protected override getDefaultValues = (): any => ({\n reportType: null,\n view: this.views[0],\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n });\n }\n\n if (this.values.reportType) {\n result.push({\n reportTypeId: {\n type: 'guid',\n value: this.values.reportType.id,\n },\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { CalculatedFieldFilterService } from './calculated-field-filter/calculated-field-filter.service';\nimport { CalculatedFieldCreationComponent } from '../creation/calculated-field-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-calculated-field-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: CalculatedFieldFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class CalculatedFieldListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'analytics.calculatedFields.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'CalculatedField',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('calculatedField', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'CalculatedField',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n this.modalService.open(CalculatedFieldCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, DestroyRef, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-copy-dashboard-modal',\n templateUrl: './copy-dashboard-modal.component.html',\n standalone: false,\n})\nexport class CopyDashboardModalComponent {\n @Input() dashboardId: string;\n\n public form = this.fb.group({\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n public isSaving: boolean;\n\n private createdId: string;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private state: StateService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private navigationService: NavigationService,\n ) {}\n\n /** Copies dashboard. */\n public copy(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n this.data\n .collection('Dashboards')\n .entity(this.dashboardId)\n .action('WP.Copy')\n .execute(this.form.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: async (createdId: string) => {\n this.createdId = createdId;\n\n await this.navigationService.reloadCustomNavigationItems();\n\n this.notification.successLocal(\n 'analytics.dashboards.copyingDashboard.messages.wasCopied',\n );\n this.isSaving = false;\n this.activeModal.close();\n this.state.go('dashboard', {\n entityId: this.createdId,\n navigation: `analytics.${this.createdId}`,\n });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
\n
\n

\n {{ 'analytics.dashboards.copyingDashboard.header' | translate }}\n

\n \n
\n\n
\n
\n \n \n
\n
\n\n
\n \n {{ 'shared.actions.copy' | translate }}\n \n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { DashboardListComponent } from './list/dashboard-list.component';\nimport { DashboardList } from 'src/app/shared/lists/dashboard.list';\nimport { DashboardSettingsComponent } from './settings/dashboard-settings.component';\nimport { GridsterModule } from 'angular2gridster';\nimport { DashboardPropertiesComponent } from './settings/dashboard-properties/dashboard-properties.component';\nimport { AnalyticsSharedModule } from '../shared/analytics-shared.module';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { PerformersModule } from 'src/app/settings-app/shared/performers/performers.module';\nimport { NavigationItemsComponent } from 'src/app/shared/components/navigations/navigation-items.component';\n\n@NgModule({\n declarations: [\n DashboardListComponent,\n DashboardSettingsComponent,\n DashboardPropertiesComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ColorPickerModule,\n AnalyticsSharedModule,\n EntityListComponent,\n GridsterModule.forRoot(),\n UIRouterModule.forChild({\n states: [\n {\n name: 'dashboards',\n url: '/dashboards?{navigation}&{route}',\n component: DashboardListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'all' },\n { provide: LIST, useValue: DashboardList },\n ],\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'analytics.dashboards',\n routeMode: null,\n view: null,\n },\n },\n\n {\n name: 'dashboard.**',\n url: '/dashboards/{entityId:guid}?{navigation}&{route}',\n loadChildren: () =>\n import('./dashboard/dashboard.module').then(\n (m) => m.DashboardModule,\n ),\n },\n ],\n }),\n PerformersModule,\n NavigationItemsComponent,\n ],\n})\nexport class DashboardsModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class DashboardFilterService extends FilterService {\n public override component: Type = null;\n public override hasDetails = false;\n public override hasViewSelector = false;\n public override placeholder = 'analytics.dashboards.list.filter.ph';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n period: null,\n manager: null,\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n { 'tolower(name)': { contains: text } },\n { 'tolower(description)': { contains: text } },\n ],\n });\n }\n return result;\n }\n\n public override getCriteriaCount(): number {\n return 0;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { DashboardFilterService } from './dashboard-filter/dashboard-filter.service';\nimport { Subscription, first } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { StateService } from '@uirouter/core';\nimport { DashboardSettingsComponent } from '../settings/dashboard-settings.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { CopyDashboardModalComponent } from '../dashboard/copy-dashboard-modal/copy-dashboard-modal.component';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-dashboard-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DashboardFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class DashboardListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private app: AppService,\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private navigationService: NavigationService,\n private entityListService: EntityListService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'analytics.dashboards.list.actions.create.title',\n isVisible: this.app.checkPermission(\n 'Dashboard',\n 'My',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('dashboard', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: () => {\n this.entityListService.delete();\n this.gridService.loading$\n .pipe(\n first((v) => v),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.navigationService.reloadCustomNavigationItems();\n });\n },\n }),\n {\n name: 'copy',\n title: 'analytics.dashboards.list.actions.copy.title',\n hint: 'analytics.dashboards.list.actions.copy.title',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.openCopyModal(),\n },\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('copy').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkPermission('Dashboard', 'My', PermissionType.Delete) &&\n this.gridService.selectedGroupValue?.owner.id ===\n this.app.session.user.id;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(DashboardSettingsComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n\n /** Opens copy dashboard modal. */\n private openCopyModal(): void {\n const ref = this.modalService.open(CopyDashboardModalComponent);\n (ref.componentInstance as CopyDashboardModalComponent).dashboardId =\n this.gridService.selectedGroupValue.id;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormArray, UntypedFormGroup } from '@angular/forms';\nimport { EntityNavigation } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'wp-dashboard-properties',\n templateUrl: './dashboard-properties.component.html',\n standalone: false,\n})\nexport class DashboardPropertiesComponent {\n @Input() form: UntypedFormGroup;\n @Input() navigationResponse: EntityNavigation[];\n @Input() navigations: FormArray;\n}\n","
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n
\n\n
\n
\n \n \n
\n\n
\n \n \n
\n\n \n\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { Validators, UntypedFormBuilder, FormArray } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Dashboard } from 'src/app/shared/models/entities/analytics/dashboard.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DashboardConfig } from '../shared/dashboard-config.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { DateService } from 'src/app/core/date.service';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { DashboardSettingsService } from 'src/app/analytics/dashboards/settings/dashboard-settings.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { EntityNavigation } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'wp-dashboard-settings',\n templateUrl: './dashboard-settings.component.html',\n styleUrls: ['./dashboard-settings.component.scss'],\n providers: [DashboardSettingsService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DashboardSettingsComponent implements OnInit {\n @Input() dashboard: Dashboard;\n\n public grantsAreAllowed: boolean;\n\n public isSaving$ = new BehaviorSubject(false);\n public isLoading$ = new BehaviorSubject(false);\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n isActive: false,\n showInAnalytics: false,\n changeViewPeriodAllowed: false,\n defaultViewPeriod: null,\n grants: new FormArray([]),\n navigations: new FormArray([]),\n });\n\n public okTitle: string;\n public headerTitle: string;\n public isCreationMode: boolean;\n public configuration: DashboardConfig;\n public navigationResponse: EntityNavigation[];\n\n public get permissions(): FormArray {\n return this.form.get('grants') as FormArray;\n }\n\n public get navigations(): FormArray {\n return this.form.get('navigations') as FormArray;\n }\n\n constructor(\n private app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n private dateService: DateService,\n private navigationService: NavigationService,\n private dashboardSettingsService: DashboardSettingsService,\n ) {\n this.grantsAreAllowed = this.app.checkPermission(\n 'DashboardPublish',\n 'My',\n PermissionType.Execute,\n );\n }\n\n ngOnInit(): void {\n if (!this.dashboard) {\n const defaultConfiguration: DashboardConfig = {\n widgets: [],\n defaultViewPeriod: null,\n changeViewPeriodAllowed: false,\n };\n\n this.configuration = defaultConfiguration;\n this.isCreationMode = true;\n this.navigationResponse = [];\n } else {\n this.isCreationMode = false;\n this.load();\n }\n\n this.okTitle = this.translate.instant(\n this.isCreationMode ? 'shared.actions.create' : 'shared.actions.save',\n );\n this.headerTitle = this.translate.instant(\n this.isCreationMode\n ? 'analytics.dashboards.settings.headerCreation'\n : 'analytics.dashboards.settings.headerUpdating',\n );\n }\n\n /** Confirm modal. */\n public ok = (): void => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving$.next(true);\n\n this.configuration.changeViewPeriodAllowed =\n this.form.value.changeViewPeriodAllowed;\n\n // TODO Совместимость\n this.configuration.defaultViewPeriod = this.form.value.defaultViewPeriod\n ? {\n From: this.form.value.defaultViewPeriod.from,\n To: this.form.value.defaultViewPeriod.to,\n PeriodType: this.form.value.defaultViewPeriod.periodType,\n }\n : null;\n\n const dashboard = {\n id: this.isCreationMode ? Guid.generate() : this.dashboard.id,\n ownerId: this.isCreationMode\n ? this.app.session.user.id\n : this.dashboard.owner.id,\n grants: this.dashboardSettingsService.getPermissionsSavingArray(\n this.permissions.value,\n ),\n configuration: JSON.stringify(this.configuration),\n name: this.form.value.name,\n description: this.form.value.description,\n isActive: this.form.value.isActive,\n showInAnalytics: this.form.value.showInAnalytics,\n navigations: this.navigations.value.map((navigationItem) => ({\n area: navigationItem.area.key,\n group: navigationItem.group.key,\n })),\n };\n\n const observable = this.isCreationMode\n ? this.data.collection('Dashboards').insert(dashboard)\n : this.data\n .collection('Dashboards')\n .entity(this.dashboard.id)\n .update(dashboard);\n\n observable.subscribe({\n next: async (data: Dashboard) => {\n if (this.isCreationMode) {\n this.notification.successLocal(\n 'analytics.dashboards.settings.messages.dashboardHasBeenCreated',\n );\n\n await this.navigationService.reloadCustomNavigationItems();\n\n this.state.go('dashboard', {\n entityId: data.id,\n navigation: `analytics.${data.id}`,\n });\n } else {\n this.notification.successLocal(\n 'analytics.dashboards.settings.messages.dashboardHasBeenSaved',\n );\n }\n\n this.isSaving$.next(false);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving$.next(false);\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n private load() {\n this.isLoading$.next(true);\n\n const query = {\n expand: {\n owner: { select: ['id', 'name'] },\n grants: {\n select: [\n 'id',\n 'dashboardId',\n 'userId',\n 'groupId',\n 'permissionSetId',\n 'role',\n ],\n expand: {\n user: { select: ['id', 'name'] },\n group: { select: ['id', 'name'] },\n permissionSet: { select: ['id', 'name'] },\n },\n },\n },\n };\n\n this.data\n .collection('Dashboards')\n .entity(this.dashboard.id)\n .get(query)\n .subscribe({\n next: (data) => {\n this.dashboard = data;\n\n this.configuration = JSON.parse(this.dashboard.configuration);\n\n if (this.configuration.defaultViewPeriod?.PeriodType) {\n // TODO Совместимость\n this.configuration.defaultViewPeriod = {\n from: this.configuration.defaultViewPeriod.From,\n to: this.configuration.defaultViewPeriod.To,\n periodType: this.configuration.defaultViewPeriod.PeriodType,\n };\n\n if (\n this.configuration.defaultViewPeriod.periodType !==\n DatePeriodType.Custom\n ) {\n const pair = this.dateService.getDatePair(\n this.configuration.defaultViewPeriod.periodType,\n );\n this.configuration.defaultViewPeriod.from = pair.from;\n this.configuration.defaultViewPeriod.to = pair.to;\n }\n }\n this.navigationResponse = this.dashboard.navigations.sort(\n naturalSort('area'),\n );\n this.form.patchValue(this.dashboard);\n this.form.patchValue(this.configuration);\n\n this.dashboard.grants.forEach((grant) => {\n const group =\n this.dashboardSettingsService.getPerformerFormGroup(grant);\n this.permissions.push(group);\n });\n\n this.isLoading$.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading$.next(false);\n },\n });\n }\n}\n","\n@if (!(isLoading$ | async)) {\n
\n
\n

{{ headerTitle }}

\n \n
\n \n
\n \n {{ okTitle }}\n \n \n {{ 'shared.actions.cancel' | translate }}\n \n
\n
\n}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Performer } from 'src/app/shared/models/entities/state.model';\nimport { DashboardGrant } from 'src/app/shared/models/entities/analytics/dashboard.model';\n\n@Injectable()\nexport class DashboardSettingsService {\n constructor(\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n ) {}\n\n /** Returns performer form group.\n *\n * @returns grant form group\n */\n public getPerformerFormGroup(grant: DashboardGrant): UntypedFormGroup {\n return this.fb.group({\n id: grant.id,\n performer: {\n id:\n grant.userId || grant.groupId || grant.permissionSetId || grant.role,\n type: grant.userId\n ? 'user'\n : grant.groupId\n ? 'group'\n : grant.permissionSetId\n ? 'permissionSet'\n : 'role',\n name:\n grant.user?.name ??\n grant.group?.name ??\n grant.permissionSet?.name ??\n this.getRoleName(grant.role),\n },\n });\n }\n\n /**\n * Returns DashboardGrant array for saving.\n * @param formData\n */\n public getPermissionsSavingArray(\n formData: { id: string; performer: Performer }[],\n ): Partial[] {\n const grants = formData.map((data) => {\n const performer = data.performer;\n const grant: Partial = { isActive: true };\n\n switch (performer.type) {\n case 'group':\n grant.groupId = performer.id;\n break;\n case 'user':\n grant.userId = performer.id;\n break;\n case 'permissionSet':\n grant.permissionSetId = performer.id;\n break;\n case 'role':\n grant.role = performer.id;\n break;\n }\n\n return grant;\n });\n\n return grants;\n }\n\n /** Returns localized role name. */\n public getRoleName(role: string): string {\n return this.translate.instant(`shared2.props.role${role}`);\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Report } from 'src/app/shared/models/entities/analytics/report.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { StateService } from '@uirouter/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\n\n/** Диалог сохранения отчета. */\n@Component({\n selector: 'wp-report-save-as',\n templateUrl: './report-save-as.component.html',\n styleUrls: ['./report-save-as.component.scss'],\n standalone: false,\n})\nexport class ReportSaveAsComponent implements OnInit {\n /** Сущность отчета. */\n @Input() report: Report;\n\n /** Признак режима Нового отчета. */\n @Input() buildMode: boolean;\n\n public isSaving: boolean;\n public typesIsAllowed: boolean;\n public templatesIsAllowed: boolean;\n public commonReportsIsAllowed: boolean;\n\n public form = this.fb.group({\n name: new UntypedFormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]),\n type: 'my',\n });\n\n constructor(\n private app: AppService,\n private fb: UntypedFormBuilder,\n private stateService: StateService,\n private data: DataService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Выполнить сохранение. */\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.isSaving = true;\n\n const postUpdate = (id) => {\n this.notification.successLocal(\n 'analytics.reports.reportSettings.messages.reportSaved',\n );\n\n if (this.form.value.type === 'template') {\n this.stateService.go('analytics.reportTemplate', { entityId: id });\n } else {\n this.stateService.go('report', { entityId: id });\n }\n this.isSaving = false;\n this.activeModal.close();\n };\n\n if (this.buildMode) {\n this.data\n .collection('Reports')\n .entity(this.report.id)\n .patch({\n isNew: false,\n isTemplate: this.form.value.type === 'template',\n isCommon: this.form.value.type === 'common',\n name: this.form.value.name,\n })\n .subscribe({\n next: () => {\n postUpdate(this.report.id);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n } else {\n const report: any = {\n viewSettings: this.report.viewSettings,\n reportTypeId: this.report.reportType.id,\n isTemplate: this.form.value.type === 'template',\n isCommon: this.form.value.type === 'common',\n name: this.form.value.name,\n };\n\n this.data\n .collection('Reports')\n .insert(report)\n .subscribe({\n next: (data) => {\n // Получить настройки пользователя для их создания\n this.data\n .collection('Reports')\n .entity(data.id)\n .function('WP.GetUserSettings')\n .get()\n .subscribe({\n next: (userSettings: any) => {\n this.data\n .collection('Reports')\n .entity(data.id)\n .action('WP.UpdateUserSettings')\n .execute({ userSettings })\n .subscribe({\n next: () => {\n postUpdate(data.id);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n this.templatesIsAllowed = this.app.checkPermission(\n 'Report',\n 'Templates',\n PermissionType.Modify,\n );\n this.commonReportsIsAllowed = this.app.checkPermission(\n 'Report',\n 'Common',\n PermissionType.Modify,\n );\n this.typesIsAllowed =\n this.templatesIsAllowed || this.commonReportsIsAllowed;\n }\n}\n","
\n
\n

\n {{ 'analytics.reports.reportSaveAs.header' | translate }}\n

\n \n
\n
\n
\n \n
\n\n
\n \n\n \n\n \n
\n
\n
\n \n \n \n
\n
\n
\n \n {{ 'shared.actions.save' | translate }}\n \n \n
\n
\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-report-properties',\n templateUrl: './report-properties.component.html',\n standalone: false,\n})\nexport class ReportPropertiesComponent {\n @Input() form: UntypedFormGroup;\n}\n","
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Report } from 'src/app/shared/models/entities/analytics/report.model';\nimport { ViewSettings } from 'src/app/analytics/shared/models/view-settings/view-settings.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Filter } from 'src/app/analytics/shared/models/filter/filter-model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { cloneDeep } from 'lodash';\n\n@Component({\n selector: 'wp-report-settings',\n templateUrl: './report-settings.component.html',\n styleUrls: ['./report-settings.component.scss'],\n standalone: false,\n})\nexport class ReportSettingsComponent implements OnInit {\n @Input('report') set inputReport(report: Report) {\n this.report = cloneDeep(report);\n }\n report: Report;\n\n public viewSettings: ViewSettings;\n public filters: Filter[];\n\n public form = this.fb.group({\n name: new UntypedFormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]),\n description: new UntypedFormControl(\n '',\n Validators.maxLength(Constants.formTextMaxLength),\n ),\n isActive: new UntypedFormControl(false),\n });\n\n public isSaving: boolean;\n public hasTabs = true;\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public onChanges(data: [ViewSettings, any]) {\n this.viewSettings = data[0];\n }\n\n public onFiltersChanged(filters: Filter[]) {\n this.filters = filters;\n }\n\n public onReportTypeChanged(reportType) {\n this.report.reportType = reportType;\n this.filters = [];\n }\n\n public ok() {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.report.viewSettings = JSON.stringify(this.viewSettings);\n this.report.filters = this.filters ? JSON.stringify(this.filters) : null;\n this.report.name = this.form.value.name;\n this.report.description = this.form.value.description;\n this.report.isActive = this.form.value.isActive;\n\n const report = this.report as any;\n report.reportTypeId = report.reportType.id;\n\n this.isSaving = true;\n this.data\n .collection('Reports')\n .entity(this.report.id)\n .update(this.report)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'analytics.reports.reportSettings.messages.reportSaved',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n this.viewSettings = JSON.parse(this.report.viewSettings);\n this.filters = JSON.parse(this.report.filters);\n this.hasTabs = this.report.isCommon || this.report.isTemplate;\n this.form.patchValue(this.report);\n }\n}\n","
\n
\n

\n {{ 'analytics.reports.reportSettings.header' | translate }}\n

\n \n
\n
\n \n\n
\n
\n
\n \n {{ 'shared.actions.save' | translate }}\n \n \n
\n
\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ViewSettings } from '../../shared/models/view-settings/view-settings.model';\nimport { ReportUserSettingsService } from './report-user-settings/report-user-settings.service';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { ReportCardService } from './report-card.service';\nimport { PivotTableService } from '../../shared/pivot-table/pivot-table.service';\nimport { PivotRenderService } from '../../shared/pivot-table/pivot-render.service';\nimport { PivotDataService } from '../../shared/pivot-table/pivot-data.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ReportPeriodService } from '../../shared/report-period/report-period.service';\nimport { filter, fromEvent } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-report-card',\n templateUrl: './report-card.component.html',\n providers: [\n FreezeTableService,\n AutosaveService,\n ReportPeriodService,\n ReportUserSettingsService,\n ReportCardService,\n PivotRenderService,\n PivotDataService,\n PivotTableService,\n ],\n standalone: false,\n})\nexport class ReportCardComponent implements OnInit {\n public buildMode: boolean;\n public readonly: boolean;\n public isRunShown: boolean;\n\n public readyToRun: boolean;\n public hasNotColumns: boolean;\n public periodIsRequired: boolean;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject('entityId') public entityId: string,\n public service: ReportCardService,\n public reportUserSettingsService: ReportUserSettingsService,\n private app: AppService,\n private data: DataService,\n private actionService: ActionPanelService,\n public autosave: AutosaveService,\n public pivotTableService: PivotTableService,\n ) {\n fromEvent(this.document, 'keydown')\n .pipe(\n filter(\n (event: KeyboardEvent) =>\n event.key === 'F8' && !event.repeat && this.isRunShown,\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.reRun();\n });\n }\n\n public saveName = (name: string) =>\n this.data\n .collection('Reports')\n .entity(this.service.reportId)\n .patch({ name });\n\n public reRun() {\n this.reportUserSettingsService.save().then(\n () => {\n this.isRunShown = false;\n this.pivotTableService.run();\n },\n () => null,\n );\n }\n\n public reload() {\n this.reportUserSettingsService.save().then(\n () => {\n this.service.load(this.entityId);\n },\n () => null,\n );\n }\n\n private updateUI(viewSettings: ViewSettings) {\n this.periodIsRequired =\n this.service.sourceDescription &&\n this.service.sourceDescription.isTimeLine &&\n this.service.sourceDescription.hasPeriod &&\n !this.reportUserSettingsService.userSettings.period &&\n this.reportUserSettingsService.userSettings.filters?.length === 0;\n\n this.readyToRun =\n !!this.service.report.reportType &&\n (!this.periodIsRequired ||\n this.reportUserSettingsService.userSettings.period);\n\n this.hasNotColumns =\n !viewSettings ||\n ((viewSettings.columnFields?.length ?? 0) === 0 &&\n (viewSettings.valueFields?.length ?? 0) === 0 &&\n (viewSettings.columnGroupFields?.length ?? 0) === 0 &&\n (viewSettings.rowGroupFields?.length ?? 0) === 0);\n\n this.actionService.action('settings').isShown =\n this.service.report.editAllowed;\n\n this.actionService.action('saveAs').isShown =\n this.readyToRun &&\n this.app.checkPermission('Report', 'My', PermissionType.Modify);\n\n this.actionService.action('downloads').isShown =\n !this.buildMode || this.readyToRun;\n this.actionService.action('delete').isShown =\n !this.buildMode && this.service.report.deleteAllowed;\n }\n\n ngOnInit() {\n this.buildMode = !this.entityId;\n\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'analytics.reports.card.actions.settings.title',\n hint: 'analytics.reports.card.actions.settings.hint',\n name: 'settings',\n iconClass: 'bi bi-table',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.service.openSettings(),\n },\n {\n name: 'downloads',\n title: null,\n hint: null,\n iconClass: 'bi bi-download',\n isDropDown: true,\n isBusy: false,\n isVisible: false,\n actions: [\n {\n name: 'downloadExcelReport',\n title: 'analytics.reports.card.actions.downloadExcelReport.title',\n hint: 'analytics.reports.card.actions.downloadExcelReport.title',\n isVisible: true,\n isBusy: false,\n handler: () => this.service.downloadExcelPivot(),\n },\n {\n name: 'downloadExcelSource',\n title: 'analytics.reports.card.actions.downloadExcelSource.title',\n hint: 'analytics.reports.card.actions.downloadExcelSource.title',\n isBusy: false,\n isVisible: true,\n handler: () => this.service.downloadExcelSource(),\n },\n ],\n },\n {\n name: 'saveAs',\n title: 'analytics.reports.card.actions.saveAs.title',\n hint: 'analytics.reports.card.actions.saveAs.hint',\n isDropDown: false,\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.service.saveAs(),\n },\n {\n name: 'delete',\n title: 'analytics.reports.card.actions.delete.title',\n hint: 'analytics.reports.card.actions.delete.title',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.service.delete(),\n },\n ]);\n\n this.service.load(this.entityId);\n\n this.service.report$.subscribe((report) => {\n this.isRunShown = false;\n const viewSettings = JSON.parse(report.viewSettings);\n\n if (report.reportType) {\n this.reportUserSettingsService.init(\n report.id,\n JSON.parse(report.userSettings),\n );\n\n this.pivotTableService.initForReport(\n report.id,\n viewSettings,\n this.reportUserSettingsService.userSettings,\n );\n } else {\n this.service.openSettings();\n }\n\n this.updateUI(viewSettings);\n\n if (this.readyToRun) {\n this.pivotTableService.run();\n }\n\n this.reportUserSettingsService.changes$.subscribe(() => {\n this.updateUI(viewSettings);\n this.isRunShown = true;\n });\n });\n\n this.pivotTableService.sorting$.subscribe((sorting) => {\n this.reportUserSettingsService.saveSorting(sorting);\n });\n\n this.pivotTableService.resizing$.subscribe((param) => {\n this.reportUserSettingsService.resizeColumn(param[0], param[1]);\n });\n }\n}\n","\n\n\n\n\n\n
\n
\n \n
\n\n
\n \n  {{\n 'analytics.pivotTable.run.label' | translate\n }}\n \n \n \n
\n\n
\n \n {{ 'analytics.reports.card.labels.selectPeriod' | translate }}\n \n
\n\n
\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Report } from 'src/app/shared/models/entities/analytics/report.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { filter } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ReportSettingsComponent } from './modals/report-settings/report-settings.component';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { StateService } from '@uirouter/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ReportSaveAsComponent } from './modals/report-save-as/report-save-as.component';\nimport { ReportUserSettingsService } from './report-user-settings/report-user-settings.service';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { saveAs } from 'file-saver';\nimport { HttpClient } from '@angular/common/http';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { ReportSourceDescription } from '../../shared/models/source-description/report-source-description.model';\n\n@Injectable()\nexport class ReportCardService {\n public reportId: string;\n public report: Report;\n\n public state$ = new BehaviorSubject(CardState.Loading);\n private loadingSubscription: Subscription;\n\n private reportSubject = new BehaviorSubject(null);\n public report$ = this.reportSubject.asObservable().pipe(filter((p) => !!p));\n\n public cardName$ = new BehaviorSubject('');\n public reportUrl: string;\n public sourceDescription: ReportSourceDescription;\n\n constructor(\n private httpClient: HttpClient,\n private blockUI: BlockUIService,\n private actionService: ActionPanelService,\n private notification: NotificationService,\n private analyticsService: AnalyticsService,\n private log: LogService,\n private modal: NgbModal,\n private message: MessageService,\n private data: DataService,\n private autosave: AutosaveService,\n private stateService: StateService,\n private translate: TranslateService,\n private reportUserSettings: ReportUserSettingsService,\n ) {}\n\n /** Загрузка отчёта. */\n public load(reportId: string) {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.reportId = reportId;\n\n const reload = () => {\n this.log.debug('Report is loading...');\n this.state$.next(CardState.Loading);\n\n const query = {\n expand: { reportType: { select: ['id', 'name', 'code'] } },\n };\n\n const observable = !reportId\n ? this.data\n .collection('Reports')\n .function('GetNewReport')\n .get(null, query)\n : this.data.collection('Reports').entity(reportId).get(query);\n\n this.loadingSubscription = observable.subscribe({\n next: (report: Report) => {\n this.report = report;\n const cardName = !reportId\n ? this.translate.instant('analytics.reports.card.header')\n : report.name;\n\n this.cardName$.next(cardName);\n\n const propagateReport = () => {\n this.reportSubject.next(report);\n this.state$.next(CardState.Ready);\n };\n\n if (report.reportType) {\n this.analyticsService\n .getSourceDescription(report.reportType.code)\n .subscribe((description) => {\n this.sourceDescription = description;\n propagateReport();\n });\n } else {\n propagateReport();\n }\n },\n error: (error: Exception) => {\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.state$.next(CardState.Error);\n return;\n }\n this.message.error(error.message);\n },\n });\n };\n\n this.autosave.save().then(\n () => reload(),\n () => null,\n );\n }\n\n /** Открыть свойства отчета. */\n public openSettings() {\n const ref = this.modal.open(ReportSettingsComponent, { size: 'xxl' });\n (ref.componentInstance as ReportSettingsComponent).report = this.report;\n ref.result.then(\n () => {\n this.load(this.reportId);\n },\n () => null,\n );\n }\n\n /** Удалить отчет. */\n public delete() {\n this.message.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.actionService.action('delete').isBusy = true;\n this.data\n .collection('Reports')\n .entity(this.report.id)\n .delete()\n .subscribe({\n next: () => {\n this.actionService.action('delete').isBusy = false;\n if (this.report.isTemplate) {\n this.stateService.go('reportTemplates');\n } else {\n this.stateService.go('reports', { view: 'all' });\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.actionService.action('delete').isBusy = false;\n },\n });\n },\n () => null,\n );\n }\n\n /** Скачать отчет в Excel. */\n public downloadExcelPivot() {\n this.download('Pivot');\n }\n\n /** Скачать исходные данные отчета в Excel. */\n public downloadExcelSource() {\n this.download('Source');\n }\n\n private download(type: 'Source' | 'Pivot') {\n this.reportUserSettings.save().then(\n () => {\n const reportUrl = `${AppConfigService.config.api.url}/reportdownload/${this.report.id}/GetExcel${type}`;\n\n this.blockUI.start();\n this.httpClient.get(reportUrl, { responseType: 'blob' }).subscribe({\n next: (data) => {\n saveAs(data, `${this.report.name}.xlsx`);\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n }\n\n /** Сохранить отчет. */\n public saveAs() {\n const ref = this.modal.open(ReportSaveAsComponent);\n (ref.componentInstance as ReportSaveAsComponent).report = this.report;\n (ref.componentInstance as ReportSaveAsComponent).buildMode = !this.reportId;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Filter } from 'src/app/analytics/shared/models/filter/filter-model';\nimport { ReportSourceDescription } from 'src/app/analytics/shared/models/source-description/report-source-description.model';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { ReportUserSettingsService } from './report-user-settings.service';\nimport { UserSettings } from 'src/app/analytics/shared/models/user-settings.model';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { ReportCardService } from '../report-card.service';\nimport { ReportPeriodService } from 'src/app/analytics/shared/report-period/report-period.service';\n\n@Component({\n selector: 'wp-report-user-settings',\n templateUrl: './report-user-settings.component.html',\n styleUrls: ['./report-user-settings.component.scss'],\n standalone: false,\n})\nexport class ReportUserSettingsComponent implements OnInit {\n reportTypeCode: string;\n filters: Filter[];\n period: DatePeriod;\n\n public sourceDescription: ReportSourceDescription;\n public filterAreaExpanded: boolean;\n public periodAreaExpanded: boolean;\n\n public filterTitle = '';\n\n constructor(\n public reportPeriodService: ReportPeriodService,\n private analyticsService: AnalyticsService,\n private reportUserSettings: ReportUserSettingsService,\n private reportCardService: ReportCardService,\n ) {}\n\n private loadSourceDescription(reportTypeCode: string) {\n this.analyticsService\n .getSourceDescription(reportTypeCode)\n .subscribe((description) => (this.sourceDescription = description));\n }\n\n public toggleFilterArea() {\n this.filterAreaExpanded = !this.filterAreaExpanded;\n\n if (this.filterAreaExpanded) {\n this.periodAreaExpanded = false;\n }\n }\n\n public togglePeriodArea() {\n this.periodAreaExpanded = !this.periodAreaExpanded;\n if (this.periodAreaExpanded) {\n this.filterAreaExpanded = false;\n }\n }\n\n public openPeriodArea() {\n this.periodAreaExpanded = true;\n if (this.periodAreaExpanded) {\n this.filterAreaExpanded = false;\n }\n }\n\n public filtersChanged(filters: Filter[]) {\n this.reportUserSettings.saveFilters(filters);\n }\n\n // public periodChanged(period: DatePeriod) {\n // this.reportUserSettings.saveDatePeriod(period);\n // }\n\n public onFilterTitleChanged(title: string) {\n this.filterTitle = title;\n }\n\n ngOnInit(): void {\n this.reportUserSettings.openPeriodArea$.subscribe(() =>\n this.openPeriodArea(),\n );\n\n this.reportUserSettings.userSettings$.subscribe(\n (userSettings: UserSettings) => {\n this.period = userSettings.period as DatePeriod;\n this.filters = userSettings.filters;\n },\n );\n\n this.reportCardService.report$.subscribe((report) => {\n this.filterAreaExpanded = false;\n this.periodAreaExpanded = false;\n\n if (report.reportType) {\n this.reportTypeCode = report.reportType.code;\n this.loadSourceDescription(report.reportType.code);\n }\n });\n }\n}\n","
\n \n  {{ filterTitle }} \n \n \n\n \n  {{\n reportPeriodService.periodTitle$ | async\n }} \n \n \n
\n\n
\n \n
\n\n
\n \n
\n","import { Injectable } from '@angular/core';\nimport {\n UserSettings,\n SortOrder,\n} from 'src/app/analytics/shared/models/user-settings.model';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { Filter } from 'src/app/analytics/shared/models/filter/filter-model';\nimport { DataService } from 'src/app/core/data.service';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport _ from 'lodash';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { cloneDeep, isEqual } from 'lodash';\nimport { ReportPeriodService } from 'src/app/analytics/shared/report-period/report-period.service';\n\n@Injectable()\nexport class ReportUserSettingsService {\n public userSettings: UserSettings;\n reportId: string;\n\n private userSettingsSubject = new BehaviorSubject(null);\n public userSettings$ = this.userSettingsSubject\n .asObservable()\n .pipe(filter((p) => !!p));\n\n public changes$ = new Subject();\n public openPeriodArea$ = new Subject();\n periodSubscription: Subscription;\n\n constructor(\n private autosave: AutosaveService,\n private data: DataService,\n private reportPeriodService: ReportPeriodService,\n ) {\n this.autosave.delayForSave = 1000;\n\n this.autosave.builderFn = () => ({\n userSettings: JSON.stringify(this.userSettings),\n });\n\n this.autosave.savingFn = (obj: any) =>\n this.data\n .collection('Reports')\n .entity(this.reportId)\n .action('UpdateUserSettings')\n .execute(obj);\n }\n\n public save(): Promise {\n return this.autosave.save();\n }\n\n public init(reportId: string, userSettings: UserSettings) {\n this.userSettings = userSettings;\n\n if (!this.userSettings.filters) {\n this.userSettings.filters = [];\n }\n\n if (this.userSettings.period) {\n const camelCasePeriod = {};\n Object.keys(this.userSettings.period).forEach((key) => {\n camelCasePeriod[_.camelCase(key)] = this.userSettings.period[key];\n });\n this.userSettings.period = camelCasePeriod;\n } else {\n this.userSettings.period = null;\n }\n\n this.userSettingsSubject.next(userSettings);\n this.reportId = reportId;\n\n if (this.periodSubscription) {\n this.periodSubscription.unsubscribe();\n }\n\n this.reportPeriodService.setPeriod(this.userSettings.period);\n\n this.periodSubscription = this.reportPeriodService.period$.subscribe(\n (period) => {\n this.saveDatePeriod(period);\n },\n );\n }\n\n /** Сохранить новый период. */\n public saveDatePeriod(period: DatePeriod) {\n if (isEqual(period, this.userSettings.period)) {\n return;\n }\n\n this.userSettings.period = period\n ? {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n PeriodType: period.periodType,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n From: period.from,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n To: period.to,\n }\n : null;\n this.autosave.saveLazy();\n\n this.changes$.next();\n }\n\n /** Сохранить новый период. */\n public saveSorting(sorting: Dictionary) {\n this.userSettings.sorting = cloneDeep(sorting);\n this.autosave.saveLazy();\n }\n\n /** Сохранить новые фильтры. */\n public saveFilters(filters: Filter[]) {\n this.userSettings.filters = filters;\n this.autosave.saveLazy();\n this.changes$.next();\n }\n\n public resizeColumn(name: string, width: number) {\n if (!this.userSettings.columns) {\n this.userSettings.columns = {};\n }\n this.userSettings.columns[name] = width;\n this.autosave.saveLazy();\n }\n\n public openPeriodArea() {\n this.openPeriodArea$.next();\n }\n}\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-report-filter',\n templateUrl: './report-filter.component.html',\n standalone: false,\n})\nexport class ReportFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n type: [null],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n private service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ReportFilterComponent } from './report-filter.component';\n\n@Injectable()\nexport class ReportFilterService extends FilterService {\n public override component: Type = ReportFilterComponent;\n public override hasDetails = true;\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override hasViewSelector: boolean = this.viewName === 'templates';\n public override hasAllowInactive = false;\n public override placeholder = 'analytics.reports.list.filter.ph';\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n };\n\n protected override getDefaultValues = (): any => ({\n text: '',\n type: null,\n view: this.views[0],\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n if (this.values.type) {\n result.push({\n reportTypeId: { type: 'guid', value: this.values.type.id },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { ReportFilterService } from './report-filter/report-filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-report-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ReportFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ReportListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n @Inject(VIEW_NAME) private viewName: string,\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'analytics.reports.list.actions.create.title',\n isVisible: this.app.checkPermission(\n 'Report',\n 'My',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('report', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n\n if (this.viewName === 'templates') {\n this.actions.action('delete').isShown =\n row &&\n this.app.checkPermission(\n 'Report',\n 'Templates',\n PermissionType.Delete,\n );\n } else {\n this.actions.action('delete').isShown =\n row &&\n ((this.app.checkPermission(\n 'Report',\n 'Common',\n PermissionType.Delete,\n ) &&\n row.value.isCommon) ||\n (this.app.checkPermission(\n 'Report',\n 'My',\n PermissionType.Delete,\n ) &&\n !row.value.isCommon &&\n row.value.owner.id === this.app.session.user.id));\n }\n },\n );\n }\n\n private create = () => {\n this.state.go('reportBuilder');\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { ReportCardComponent } from './card/report-card.component';\nimport { ReportListComponent } from './list/report-list.component';\nimport { REPORT_LIST } from 'src/app/shared/lists/report.list';\nimport { ReportFilterComponent } from './list/report-filter/report-filter.component';\nimport { AnalyticsSharedModule } from '../shared/analytics-shared.module';\nimport { ReportSettingsComponent } from './card/modals/report-settings/report-settings.component';\nimport { ReportSaveAsComponent } from './card/modals/report-save-as/report-save-as.component';\nimport { ReportUserSettingsComponent } from './card/report-user-settings/report-user-settings.component';\nimport { REPORT_TEMPLATE_LIST } from 'src/app/shared/lists/report-template.list';\nimport { ReportPropertiesComponent } from './card/modals/report-settings/report-properties/report-properties.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ReportCardComponent,\n ReportListComponent,\n ReportFilterComponent,\n ReportSettingsComponent,\n ReportSaveAsComponent,\n ReportUserSettingsComponent,\n ReportPropertiesComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n AnalyticsSharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'reportBuilder',\n url: '/reports/new?{navigation}&{route}',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n navigation: 'analytics.reportBuilder',\n viewSettings: {\n type: 'json',\n value: null,\n },\n userSettings: {\n type: 'json',\n value: null,\n },\n },\n component: ReportCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n {\n token: 'viewSettings',\n deps: [Transition],\n resolveFn: StateHelper.resolveViewSettings,\n },\n {\n token: 'userSettings',\n deps: [Transition],\n resolveFn: StateHelper.resolveViewSettings,\n },\n ],\n },\n\n {\n name: 'reports',\n url: '/reports/{view:viewName}?{navigation}&{route}',\n component: ReportListComponent,\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n view: null,\n navigation: 'analytics.allReports',\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: REPORT_LIST },\n ],\n },\n\n {\n name: 'report',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n navigation: 'analytics.allReports',\n },\n url: '/reports/{entityId:guid}?{navigation}&{route}',\n component: ReportCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'reportTemplates',\n url: '/reports/templates?{navigation}&{route}',\n component: ReportListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'templates' },\n { provide: LIST, useValue: REPORT_TEMPLATE_LIST },\n ],\n },\n\n {\n name: 'reportTemplate',\n params: {\n navigation: 'analytics.reportTemplates',\n },\n url: '/reports/templates/{entityId:guid}?{navigation}&{route}',\n component: ReportCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ReportsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { PivotTableComponent } from './pivot-table/pivot-table.component';\nimport { ReportViewSettingsComponent } from './report-view-settings/report-view-settings.component';\nimport { FieldPropertiesModalComponent } from './report-view-settings/field-properties-modal/field-properties-modal.component';\nimport { ReportFiltersComponent } from './filters/report-filters/report-filters.component';\nimport { ReportFilterCriterionComponent } from './filters/report-filter-criterion/report-filter-criterion.component';\nimport { ReportPeriodComponent } from './report-period/report-period.component';\n\n@NgModule({\n declarations: [\n ReportViewSettingsComponent,\n ReportFiltersComponent,\n PivotTableComponent,\n ReportFilterCriterionComponent,\n FieldPropertiesModalComponent,\n ReportPeriodComponent,\n ],\n\n imports: [CommonModule, SharedModule],\n exports: [\n ReportViewSettingsComponent,\n ReportFiltersComponent,\n ReportPeriodComponent,\n PivotTableComponent,\n ],\n})\nexport class AnalyticsSharedModule {}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { FilterOperator } from '../../models/filter/filter-operator.enum';\nimport { Criterion } from '../report-filters/criterion.model';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { FilterCondition } from '../../models/filter/filter-condition.model';\nimport { ReportFieldType } from '../../models/report-field-type.enum';\nimport { DataService } from 'src/app/core/data.service';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { cloneDeep } from 'lodash';\nimport { LogService } from 'src/app/core/log.service';\nimport { ENTITY_TYPE_TO_COLLECTION } from 'src/app/shared/models/entities/entity-type-description.model';\n\n@Component({\n selector: 'wp-report-filter-criterion',\n templateUrl: './report-filter-criterion.component.html',\n styleUrls: ['./report-filter-criterion.component.scss'],\n standalone: false,\n})\nexport class ReportFilterCriterionComponent implements OnInit {\n @Input() allowInactive: boolean;\n\n private _criterion: Criterion;\n @Input() set criterion(value: Criterion) {\n this._criterion = cloneDeep(value);\n }\n get criterion(): Criterion {\n return this._criterion;\n }\n\n @Output() onRemove = new EventEmitter();\n @Output() onChange = new EventEmitter();\n\n public operators: FilterOperator[];\n public collectionName: string;\n\n public form = this.fb.array([]);\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private translate: TranslateService,\n private log: LogService,\n ) {}\n\n public getOperatorLocalTitle(operator: FilterOperator) {\n return this.translate.instant(`enums.filterOperator.${operator}`);\n }\n\n public remove() {\n this.onRemove.emit();\n }\n\n private propagateChange() {\n this._criterion.conditions = [];\n\n this.form.controls.forEach((group: UntypedFormGroup) => {\n const condition: FilterCondition = {\n operator: group.value.operator,\n value: group.value.value,\n };\n\n if (\n [\n ReportFieldType.EntityId,\n ReportFieldType.Enum,\n ReportFieldType.State,\n ReportFieldType.Directory,\n ].includes(this._criterion.field.type)\n ) {\n condition.value = group.value.entityValue?.id;\n }\n\n if (condition.operator === FilterOperator.Between) {\n condition.value = [group.value.valueLeft, group.value.valueRight];\n\n if (this.criterion.field.type === ReportFieldType.Percent) {\n condition.value = [\n group.value.valueLeft === null ? null : group.value.valueLeft / 100,\n group.value.valueRight === null\n ? null\n : group.value.valueRight / 100,\n ];\n }\n }\n\n if (\n this.criterion.field.type === ReportFieldType.Percent &&\n condition.operator !== FilterOperator.Between\n ) {\n condition.value =\n group.value.value === null ? null : group.value.value / 100;\n }\n\n if (\n condition.operator === FilterOperator.IsNotNull ||\n condition.operator === FilterOperator.IsNull\n ) {\n condition.value = undefined;\n }\n\n this._criterion.conditions.push(condition);\n });\n\n this.onChange.emit(this._criterion);\n }\n\n public addCondition() {\n this.log.debug(\n `Criterion ${this.criterion.name}. Condition has been added.`,\n );\n const group = this.createConditionGroup();\n group.controls['operator'].setValue(this.criterion.field.operators[0]);\n this.form.push(group);\n this.propagateChange();\n }\n\n public removeCondition(index: number) {\n this.log.debug(\n 'Criterion ' + this.criterion.name + '. Condition has removed.',\n );\n this.form.removeAt(index);\n this.propagateChange();\n }\n\n public setOperator(group: UntypedFormGroup, operator: FilterOperator) {\n this.log.debug(\n 'Criterion ' +\n this.criterion.name +\n '. Condition operator has been changed to ' +\n operator +\n '.',\n );\n\n if (\n (operator === FilterOperator.InPeriod &&\n group.value.operator !== FilterOperator.InPeriod) ||\n (operator !== FilterOperator.InPeriod &&\n group.value.operator === FilterOperator.InPeriod)\n ) {\n group.controls['value'].setValue(null);\n }\n\n group.controls['operator'].setValue(operator);\n group.controls['value'].setValue(null);\n }\n\n private createConditionGroup(): UntypedFormGroup {\n const group = this.fb.group({\n entityValue: null,\n value: null,\n percentValue: null,\n operator: null,\n valueLeft: null,\n valueRight: null,\n });\n return group;\n }\n\n ngOnInit(): void {\n this.criterion.conditions.forEach((condition) => {\n const group = this.createConditionGroup();\n group.controls['operator'].setValue(condition.operator);\n group.controls['value'].setValue(condition.value);\n\n this.form.push(group);\n\n // Разбор значений для оператора Between\n if (condition.operator === FilterOperator.Between && condition.value) {\n group.controls['valueLeft'].setValue(condition.value[0]);\n group.controls['valueRight'].setValue(condition.value[1]);\n\n // И типа поля Percent\n if (this.criterion.field.type === ReportFieldType.Percent) {\n if (condition.value[0] !== null) {\n group.controls['valueLeft'].setValue(condition.value[0] * 100);\n }\n\n if (condition.value[1] !== null) {\n group.controls['valueRight'].setValue(condition.value[1] * 100);\n }\n }\n }\n\n // Разбор значений для Percent - Value\n if (\n this.criterion.field.type === ReportFieldType.Percent &&\n condition.operator !== FilterOperator.Between\n ) {\n if (condition.value !== null) {\n group.controls['percentValue'].setValue(condition.value * 100);\n }\n }\n });\n\n if (this.criterion.conditions.length === 0) {\n this.addCondition();\n }\n\n // Загрузка сущностей.\n if (\n this.criterion.field.type === ReportFieldType.EntityId ||\n this.criterion.field.type === ReportFieldType.Directory\n ) {\n this.collectionName =\n this.criterion.field.type === ReportFieldType.EntityId\n ? ENTITY_TYPE_TO_COLLECTION.get(this.criterion.field.entityTypeName)\n : 'DirectoryEntries';\n\n this.criterion.conditions.forEach((condition, index) => {\n if (condition.value) {\n this.data\n .collection(this.collectionName)\n .entity(condition.value)\n .get()\n .subscribe({\n next: (data) => {\n (this.form.at(index) as UntypedFormGroup).controls[\n 'entityValue'\n ].setValue(data, { emitEvent: false });\n this.changeDetector.detectChanges();\n },\n error: (error: Exception) => {\n if (error.code === Exception.BtEntityNotFoundException.code) {\n (this.form.at(index) as UntypedFormGroup).controls[\n 'entityValue'\n ].setValue(\n {\n id: condition.value,\n name: this.translate.instant(\n 'shared.entityNotFound.title',\n ),\n },\n { emitEvent: false },\n );\n } else {\n this.notification.error(error.message);\n }\n this.changeDetector.detectChanges();\n },\n });\n }\n });\n }\n\n // Загрузить перечисления.\n if (\n this.criterion.field.type === ReportFieldType.Enum ||\n this.criterion.field.type === ReportFieldType.State\n ) {\n this.criterion.conditions.forEach((condition, index) => {\n if (condition.value) {\n const value = this.criterion.field.values.find(\n (v) => v.id === condition.value,\n );\n\n if (value) {\n (this.form.at(index) as UntypedFormGroup).controls[\n 'entityValue'\n ].setValue(value, { emitEvent: false });\n }\n }\n });\n }\n\n this.form.valueChanges.subscribe(() => {\n this.propagateChange();\n });\n }\n}\n","
\n
\n \n {{ criterion.field.title }}\n  \n ×\n \n \n
\n\n \n \n \n {{ getOperatorLocalTitle(group.value.operator) }}\n \n\n
\n \n {{ getOperatorLocalTitle(operator) }}\n \n
\n
\n\n \n
\n \n \n \n\n \n \n\n \n \n \n\n {{\n 'analytics.reportFilters.and' | translate\n }}\n \n
\n\n \n \n \n\n \n \n \n\n {{\n 'analytics.reportFilters.and' | translate\n }}\n \n \n\n \n \n\n \n \n\n \n
\n \n
\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n @if (\n criterion.field.type === 'EntityId' &&\n criterion.field.entityTypeName === 'Department' &&\n group.value.operator !== 'IsNull' &&\n group.value.operator !== 'IsNotNull'\n ) {\n \n }\n\n \n \n \n \n \n\n \n ×\n \n\n {{ 'analytics.reportFilters.or' | translate }}\n\n \n {{ 'analytics.reportFilters.actions.addCondition' | translate }}\n \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport {\n FormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { cloneDeep } from 'lodash';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Filter } from '../../models/filter/filter-model';\nimport { ReportField } from '../../models/source-description/report-field.model';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { ReportSourceDescription } from '../../models/source-description/report-source-description.model';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { Criterion } from './criterion.model';\nimport { filter } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Component({\n selector: 'wp-report-filters',\n templateUrl: './report-filters.component.html',\n styleUrls: ['./report-filters.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ReportFiltersComponent implements OnInit, OnChanges {\n @Input() reportTypeCode: string;\n @Input() filters: Filter[];\n @Output() onFiltersChanged = new EventEmitter();\n @Output() onTitleChanged = new EventEmitter();\n\n public criteria: Criterion[] = [];\n public fieldPickerIsVisible = false;\n\n public sourceFields: ReportField[];\n public sourceFieldsForPicker: Array;\n\n public indicatorTitle: string;\n sourceDescription: ReportSourceDescription;\n public allowInactiveControl = new UntypedFormControl(false);\n public sourceForm: UntypedFormGroup;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private translate: TranslateService,\n private analyticsService: AnalyticsService,\n private formBuilder: FormBuilder,\n ) {}\n\n public trackByName = (index: number, item: any) => item.name;\n\n public addCriterion(name: string) {\n const field = this.sourceFields.find((f) => f.name === name);\n this.fieldPickerIsVisible = false;\n this.criteria.push({\n name: field.name,\n field,\n conditions: [],\n });\n this.updateIndicator();\n this.propagateChanges();\n this.updateSourceFields();\n this.sourceForm.patchValue({ source: null });\n }\n\n public removeCriterion(criterion) {\n const index = this.criteria.indexOf(criterion);\n this.criteria.splice(index, 1);\n this.updateIndicator();\n this.propagateChanges();\n this.updateSourceFields();\n }\n\n private getUpdatedFilters(): Filter[] {\n const filters: Filter[] = [];\n\n this.criteria.forEach((criterion) => {\n // Saved criterion\n const sCriterion = { key: criterion.name, value: [] };\n\n criterion.conditions.forEach((condition) => {\n sCriterion.value.push({\n operator: condition.operator,\n value: condition.value,\n });\n });\n filters.push(sCriterion);\n });\n\n return filters;\n }\n\n public criterionChanged(criterion: Criterion, index: number) {\n this.criteria[index].conditions = criterion.conditions;\n this.propagateChanges();\n }\n\n public propagateChanges() {\n this.onFiltersChanged.emit(this.getUpdatedFilters());\n }\n\n private updateIndicator() {\n if (this.criteria.length === 0) {\n this.indicatorTitle = this.translate.instant(\n 'analytics.reportFilters.noFiltersDefined',\n );\n } else {\n const p = { count: this.criteria.length };\n this.indicatorTitle = StringHelper.declOfNum(this.criteria.length, [\n this.translate.instant(\n 'analytics.reportFilters.criteriaCountForms.v1',\n p,\n ),\n this.translate.instant(\n 'analytics.reportFilters.criteriaCountForms.v2',\n p,\n ),\n this.translate.instant(\n 'analytics.reportFilters.criteriaCountForms.v3',\n p,\n ),\n ]);\n }\n\n this.onTitleChanged.emit(this.indicatorTitle);\n }\n\n private updateSourceFields(): void {\n this.sourceFields = this.sourceDescription.allFields.filter(\n (field) => !field.isCalculated,\n );\n\n this.sourceFieldsForPicker = this.sourceDescription.allFields\n .filter(\n (field) =>\n !field.isCalculated &&\n (!this.sourceDescription.isTimeLine || !field.isTimeLineField),\n )\n .map((field) => ({ ...field, id: Guid.generate() }));\n }\n\n private loadSourceDescription() {\n if (!this.reportTypeCode) {\n return;\n }\n\n return this.analyticsService\n .getSourceDescription(this.reportTypeCode)\n .subscribe((description) => {\n this.sourceDescription = description;\n this.updateSourceFields();\n this.parseFilters();\n });\n }\n\n private parseFilters() {\n this.criteria = [];\n\n if (this.filters) {\n this.filters.forEach((filter: Filter) => {\n const sourceField = this.sourceFields.find(\n (f) => f.name === filter.key,\n );\n if (!sourceField) {\n return;\n }\n const criterion: Criterion = {\n name: filter.key,\n field: sourceField,\n conditions: cloneDeep(filter.value),\n };\n this.criteria.push(criterion);\n });\n }\n this.updateIndicator();\n }\n\n ngOnChanges(): void {\n this.loadSourceDescription();\n this.updateIndicator();\n }\n\n ngOnInit(): void {\n this.loadSourceDescription();\n this.updateIndicator();\n this.sourceForm = this.formBuilder.group({\n source: null,\n });\n this.sourceForm\n .get('source')\n .valueChanges.pipe(\n filter((v) => v),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value: ReportField) => {\n this.addCriterion(value.name);\n });\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n\n @if (fieldPickerIsVisible || !criteria.length) {\n
\n \n
\n }\n 0\"\n class=\"btn btn-link p-0\"\n (click)=\"fieldPickerIsVisible = true\"\n >\n {{ 'analytics.reportFilters.actions.addCriterion' | translate }}\n \n
\n
\n
\n \n
\n
\n
\n","// TODO: upgrade definition of filter-operators (single or multiple value)\nexport enum FilterOperator {\n Equal = 'Equal',\n NotEqual = 'NotEqual',\n Greater = 'Greater',\n Less = 'Less',\n GreaterOrEqual = 'GreaterOrEqual',\n LessOrEqual = 'LessOrEqual',\n Contains = 'Contains',\n DoesNotContain = 'DoesNotContain',\n Between = 'Between',\n InPeriod = 'InPeriod',\n InHierarchy = 'InHierarchy',\n IsNull = 'IsNull',\n IsNotNull = 'IsNotNull',\n StartsWith = 'StartsWith',\n EndsWith = 'EndsWith',\n}\n","export enum ReportFieldType {\n Undefined = 'Undefined',\n String = 'String',\n Integer = 'Integer',\n Decimal = 'Decimal',\n Date = 'Date',\n Bool = 'Bool',\n Percent = 'Percent',\n EntityId = 'EntityId',\n Enum = 'Enum',\n DateTimeOffset = 'DateTimeOffset',\n State = 'State',\n Directory = 'Directory',\n}\n\nexport const CalculatedFieldTypes: ReportFieldType[] = [\n ReportFieldType.String,\n ReportFieldType.Integer,\n ReportFieldType.Decimal,\n ReportFieldType.Date,\n ReportFieldType.Percent,\n ReportFieldType.Bool,\n];\n","/** Функция агрегации. */\nexport enum TotalFunction {\n None = 'None',\n Count = 'Count',\n Sum = 'Sum',\n Average = 'Average',\n Max = 'Max',\n Min = 'Min',\n Calculate = 'Calculate',\n CountAndSum = 'CountAndSum',\n All = 'All',\n}\n","import { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Filter } from './filter/filter-model';\n\n/** Пользовательские настройки отчета. */\nexport interface UserSettings {\n period?: any;\n filters?: Filter[];\n sorting?: Dictionary;\n columns?: Dictionary;\n}\n\nexport enum SortOrder {\n Asc = 'Asc',\n Desc = 'Desc',\n}\n","import { Injectable } from '@angular/core';\nimport { ViewSettings } from '../models/view-settings/view-settings.model';\nimport { UserSettings } from '../models/user-settings.model';\nimport { ReportSourceDescription } from '../models/source-description/report-source-description.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { Subscription, combineLatest } from 'rxjs';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ReportField } from '../models/source-description/report-field.model';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { PivotTable } from './model/pivot-table.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ReportFieldType } from '../models/report-field-type.enum';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\n\n/** Сервис работы с данными сводной таблицы. */\n@Injectable()\nexport class PivotDataService {\n private sourceDescription: ReportSourceDescription;\n private viewSettings: ViewSettings;\n private userSettings: UserSettings;\n private reportId: string;\n\n private loadingSubscription: Subscription;\n\n public pivotReport: PivotTable;\n private hasColumnGrouping: boolean;\n private hasRowGrouping: boolean;\n\n public fieldsDescriptions: ReportField[];\n public columnGroupFieldsDictionary: Dictionary;\n public viewFieldDescriptions: Dictionary;\n public valueFieldDescriptions: ReportField[];\n dashboardId: string;\n widgetId: string;\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private log: LogService,\n private analyticsService: AnalyticsService,\n ) {}\n\n public initForReport(\n reportId: string,\n viewSettings: ViewSettings,\n userSettings: UserSettings,\n ) {\n this.userSettings = userSettings;\n this.viewSettings = viewSettings;\n this.reportId = reportId;\n this.hasColumnGrouping = this.viewSettings.columnGroupFields?.length > 0;\n this.hasRowGrouping = this.viewSettings.rowGroupFields?.length > 0;\n }\n\n public initForWidget(\n widgetId: string,\n dashboardId: string,\n viewSettings: ViewSettings,\n userSettings: UserSettings,\n ) {\n this.userSettings = userSettings;\n this.viewSettings = viewSettings;\n this.widgetId = widgetId;\n this.dashboardId = dashboardId;\n this.hasColumnGrouping = this.viewSettings.columnGroupFields?.length > 0;\n this.hasRowGrouping = this.viewSettings.rowGroupFields?.length > 0;\n }\n\n /** Загрузка данных. */\n public loadData(\n forceRefresh?: boolean,\n period?: DatePeriod,\n ): Promise {\n return new Promise((resolve, reject) => {\n const start = new Date().getTime();\n this.log.debug('Pivot Report is loading...');\n\n const observables = [\n this.analyticsService.getSourceDescription(\n this.viewSettings.sourceName,\n ),\n ];\n\n if (this.reportId) {\n observables.push(\n this.data\n .collection('Reports')\n .entity(this.reportId)\n .function('WP.GetPivotData')\n .get(),\n );\n }\n\n if (this.widgetId) {\n const params: Dictionary = {\n datasetId: this.widgetId,\n forceRefresh: forceRefresh === true,\n viewPeriod: '@viewPeriod',\n };\n\n observables.push(\n this.data\n .collection('Dashboards')\n .entity(this.dashboardId)\n .function('WP.GetDataset')\n .query(params, null, { '@viewPeriod': JSON.stringify(period) }),\n );\n }\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = combineLatest(observables).subscribe({\n next: (value: [ReportSourceDescription, any]) => {\n this.log.debug(\n `Pivot Report has been loaded in ${\n new Date().getTime() - start\n } ms.`,\n );\n this.sourceDescription = value[0];\n this.pivotReport = value[1];\n\n this.transform(this.pivotReport);\n\n resolve(this.pivotReport);\n },\n error: (error: Exception) => {\n if (error.code !== Exception.UnexpectedError.code) {\n this.notification.error(error.message);\n }\n reject();\n },\n });\n });\n }\n\n /** Первичное преобразование данных. */\n private transform(pivotReport: any) {\n const start = new Date().getTime();\n this.log.debug('Pivot Report is transforming...');\n\n this.viewFieldDescriptions = {};\n\n this.separateFields();\n\n if (this.hasColumnGrouping) {\n const expandColumnGroups = (level: any[]) => {\n level.forEach((item) => {\n item.isExpanded = true;\n if (item.pivotColumns) {\n expandColumnGroups(item.pivotColumns);\n }\n });\n };\n expandColumnGroups(pivotReport.pivotColumns);\n }\n\n if (this.hasRowGrouping) {\n const expandRowGroups = (groups) => {\n groups.forEach((group) => {\n group.isExpanded = true;\n group.id = Guid.generate();\n\n if (group.isGroup && group.pivotRows[0].isGroup) {\n expandRowGroups(group.pivotRows);\n }\n });\n };\n expandRowGroups(pivotReport.pivotRows);\n }\n this.sort();\n this.log.debug(\n `Pivot Report has been transformed in ${new Date().getTime() - start} ms.`,\n );\n }\n\n /** Выделяем колонки значений и аналитик. */\n private separateFields() {\n this.fieldsDescriptions = this.sourceDescription.allFields;\n this.columnGroupFieldsDictionary = {};\n this.valueFieldDescriptions = [];\n\n const addCollection = (list, kind) => {\n list.forEach((field) => {\n const fieldDescription = this.fieldsDescriptions.find(\n (f) => f.name === field.name,\n );\n\n if (field.customTitle) {\n fieldDescription.title = field.customTitle;\n }\n\n this.viewFieldDescriptions[field.name] = fieldDescription;\n\n if (kind === 'rowGroup') {\n this.columnGroupFieldsDictionary[fieldDescription.name] =\n fieldDescription;\n }\n\n if (kind === 'value') {\n this.valueFieldDescriptions.push(fieldDescription);\n }\n });\n };\n\n addCollection(this.viewSettings.columnFields, 'column');\n addCollection(this.viewSettings.valueFields, 'value');\n addCollection(this.viewSettings.rowGroupFields, 'rowGroup');\n addCollection(this.viewSettings.columnGroupFields, 'columGroup');\n }\n\n /** Обработчик сортировки. */\n private sortHandler(\n columnName: string,\n containerName: string,\n type: ReportFieldType,\n ) {\n let a;\n let b;\n let a1;\n let b1;\n const rx = /(\\d+)|(\\D+)/g;\n const rd = /\\d+/;\n\n return (as, bs) => {\n if (containerName) {\n as = as[containerName];\n bs = bs[containerName];\n }\n\n if (\n type === ReportFieldType.Decimal ||\n type === ReportFieldType.Percent ||\n type === ReportFieldType.Integer\n ) {\n return as[columnName] - bs[columnName];\n }\n\n if (type === ReportFieldType.Date) {\n return (\n new Date(bs[columnName]).getTime() -\n new Date(as[columnName]).getTime()\n );\n }\n\n if (as[columnName] === '' || as[columnName] == null) {\n a = [];\n } else {\n a = String(as[columnName]).toLowerCase().match(rx);\n }\n\n if (bs[columnName] === '' || bs[columnName] == null) {\n b = [];\n } else {\n b = String(bs[columnName]).toLowerCase().match(rx);\n }\n\n while (a.length && b.length) {\n a1 = a.shift();\n b1 = b.shift();\n if (rd.test(a1) || rd.test(b1)) {\n if (!rd.test(a1)) {\n return 1;\n }\n if (!rd.test(b1)) {\n return -1;\n }\n if (a1 !== b1) {\n return a1 - b1;\n }\n } else if (a1 !== b1) {\n return a1 > b1 ? 1 : -1;\n }\n }\n return a.length - b.length;\n };\n }\n\n public sort() {\n let sortName: string;\n let sortDesc: boolean;\n\n if (\n this.userSettings.sorting &&\n Object.keys(this.userSettings.sorting).length > 0\n ) {\n sortName = Object.keys(this.userSettings.sorting)[0];\n sortDesc = this.userSettings.sorting[sortName] === 'Desc';\n } else {\n return;\n }\n\n // Колонки по которой идет сортировка нет в представлении.\n if (!this.viewFieldDescriptions[sortName]) {\n return;\n }\n\n const type = this.viewFieldDescriptions[sortName].type;\n\n if (this.hasRowGrouping) {\n const sortGroups = (groups, level) => {\n const groupFieldName = this.viewSettings.rowGroupFields[level].name;\n\n groups = groups.sort(\n this.sortHandler(\n 'value',\n null,\n this.viewFieldDescriptions[groupFieldName].type,\n ),\n );\n\n if (sortName === groupFieldName && sortDesc) {\n groups = groups.reverse();\n }\n\n if (sortName !== groupFieldName) {\n groups.forEach((group) => {\n if (group.isGroup && group.pivotRows[0].isGroup) {\n group.pivotRows = sortGroups(group.pivotRows, level + 1);\n } else {\n group.pivotRows = group.pivotRows.sort(\n this.sortHandler(sortName, 'values', type),\n );\n if (sortDesc) {\n group.pivotRows = group.pivotRows.reverse();\n }\n }\n });\n }\n return groups;\n };\n\n this.pivotReport.pivotRows = sortGroups(this.pivotReport.pivotRows, 0);\n } else {\n this.pivotReport.pivotRows = this.pivotReport.pivotRows.sort(\n this.sortHandler(sortName, 'values', type),\n );\n\n if (sortDesc) {\n this.pivotReport.pivotRows = this.pivotReport.pivotRows.reverse();\n }\n }\n }\n}\n","import { Injectable, Renderer2 } from '@angular/core';\nimport { ViewSettings } from '../models/view-settings/view-settings.model';\nimport { PivotDataService } from './pivot-data.service';\nimport { UserSettings, SortOrder } from '../models/user-settings.model';\nimport { ReportFieldType } from '../models/report-field-type.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DecimalPipe, DatePipe, PercentPipe } from '@angular/common';\nimport { TotalFunction } from '../models/total-function.enum';\nimport { LogService } from 'src/app/core/log.service';\nimport { PivotRow } from './model/pivot-row.model';\nimport { PivotGroupRow } from './model/pivot-group-row.model';\nimport { PivotColumn } from './model/pivot-column.model';\nimport { ReportField } from '../models/source-description/report-field.model';\nimport { Subject } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\n\n/** Сервис формирования тела сводной таблицы отчета. */\n@Injectable()\nexport class PivotRenderService {\n private addTotalColumn = true;\n\n private yesLabel = this.translate.instant('shared.yes');\n private noLabel = this.translate.instant('shared.no');\n\n totalWidth = 0;\n groupStep = 20;\n pageSize = 50;\n\n public sort$ = new Subject();\n public menu$ = new Subject<[string, any]>();\n\n private pageRenderingCycleIndex = 0;\n private displayRowsCount = 0;\n\n private alignRightTypes: ReportFieldType[] = [\n ReportFieldType.Decimal,\n ReportFieldType.Integer,\n ReportFieldType.Percent,\n ];\n private sortAscentClass = 'wp-sort-ascent';\n private sortDescentClass = 'wp-sort-descent';\n\n componentRef: HTMLElement;\n\n tableHeader: HTMLTableElement;\n tableBody: HTMLTableElement;\n tableFooter: HTMLTableElement;\n\n private viewSettings: ViewSettings;\n public userSettings: UserSettings;\n\n private hasValueGrouping: boolean;\n private hasRowGrouping: boolean;\n private flatColumnNames: string[];\n private emptyValueSpaceWasFilled = false;\n totalCols: number;\n\n constructor(\n private app: AppService,\n private log: LogService,\n private numberPipe: DecimalPipe,\n private datePipe: DatePipe,\n private percentPipe: PercentPipe,\n private renderer: Renderer2,\n private dataService: PivotDataService,\n private translate: TranslateService,\n ) {}\n\n /** Инициализировать сервис. */\n public init(viewSettings: ViewSettings, userSettings: UserSettings) {\n this.viewSettings = viewSettings;\n this.userSettings = userSettings;\n\n this.tableHeader = this.componentRef.querySelector('[name=header]');\n this.tableBody = this.componentRef.querySelector('[name=body]');\n this.tableFooter = this.componentRef.querySelector('[name=footer]');\n\n this.hasValueGrouping = this.viewSettings.columnGroupFields?.length > 0;\n this.hasRowGrouping = this.viewSettings.rowGroupFields?.length > 0;\n\n this.flatColumnNames = [];\n viewSettings.columnFields.forEach((field) => {\n this.flatColumnNames.push(field.name);\n });\n\n if (!this.hasValueGrouping) {\n viewSettings.valueFields.forEach((field) => {\n this.flatColumnNames.push(field.name);\n });\n }\n\n if (this.flatColumnNames.length === 0 && this.hasRowGrouping) {\n this.flatColumnNames.push(viewSettings.rowGroupFields[0].name);\n }\n }\n\n /** Перерисовать таблицу. */\n public redraw(onlySort?: boolean) {\n this.dataService.sort();\n if (onlySort) {\n this.renderBody();\n } else {\n this.renderHeader();\n this.renderBody();\n this.renderFooter();\n }\n this.updateSortIndicator();\n }\n\n /** Рендеринг THEAD. */\n public renderHeader() {\n const thead = this.tableHeader.querySelector('thead');\n\n this.clearNode(thead);\n this.renderColumnsDefinition(this.tableHeader);\n\n let line = this.renderer.createElement('tr');\n\n const groupsCount = this.viewSettings.columnGroupFields.length;\n\n let columnIndex = 0;\n this.getFlatColumnNamesForHeader().forEach((columnName) => {\n const fieldDescription = this.dataService.fieldsDescriptions.find(\n (f) => f.name === columnName,\n );\n\n const cell = this.renderer.createElement('th');\n if (this.hasValueGrouping) {\n this.renderer.setAttribute(\n cell,\n 'rowspan',\n (groupsCount + 1).toString(),\n );\n }\n this.renderer.setAttribute(cell, 'name', columnName);\n this.renderer.setAttribute(cell, 'index', columnIndex.toString());\n this.renderer.addClass(cell, 'analytic');\n this.renderer.addClass(cell, 'disable-user-select');\n columnIndex++;\n\n const title = this.renderer.createElement('div');\n this.renderer.setAttribute(cell, 'title', fieldDescription.title);\n\n this.renderer.appendChild(\n title,\n this.renderer.createText(fieldDescription.title),\n );\n\n const menu = this.renderer.createElement('i');\n this.renderer.addClass(menu, 'bi');\n this.renderer.addClass(menu, 'bi-list');\n\n this.renderer.listen(title, 'click', () =>\n this.sort$.next(fieldDescription.name),\n );\n this.renderer.listen(menu, 'click', (event) =>\n this.menu$.next([fieldDescription.name, event]),\n );\n\n this.renderer.appendChild(cell, title);\n this.renderer.appendChild(cell, menu);\n\n this.renderer.appendChild(line, cell);\n });\n\n // Дальше сводные колонки\n for (let i = 0; i <= groupsCount && this.hasValueGrouping; i++) {\n const columns = this.getColumnsLevel(i, 0, null);\n\n columns.forEach((column) => {\n if (i < groupsCount && column.isGroup) {\n const colspan = this.getColumnGroupCellsCount(column);\n\n const fieldDescription = this.dataService.fieldsDescriptions.find(\n (f) => f.name === column.groupFieldName,\n );\n\n let cellValue;\n if (column.value === null) {\n cellValue = this.translate.instant('analytics.pivotTable.empty');\n } else {\n cellValue = this.getFormattedValue(\n fieldDescription.type,\n column.value,\n );\n }\n\n const cell = this.renderer.createElement('th');\n this.renderer.addClass(cell, 'group');\n this.renderer.setAttribute(cell, 'title', cellValue);\n this.renderer.setAttribute(cell, 'colspan', colspan.toString());\n\n // Добавление коллапсера\n if (i < groupsCount - 1) {\n let hint = column.isExpanded\n ? 'analytics.pivotTable.collapse'\n : 'analytics.pivotTable.expand';\n hint = this.translate.instant(hint);\n\n const collapser = this.renderer.createElement('i');\n this.renderer.setAttribute(collapser, 'title', hint);\n this.renderer.addClass(collapser, 'bi');\n\n this.renderer.addClass(\n collapser,\n column.isExpanded ? 'bi-minus-square' : 'bi-plus-square',\n );\n this.renderer.listen(collapser, 'click', () =>\n this.valueGroupCollapserHandler(column),\n );\n this.renderer.appendChild(cell, collapser);\n }\n\n this.renderer.appendChild(cell, this.renderer.createText(cellValue));\n this.renderer.appendChild(line, cell);\n }\n\n if (i === groupsCount) {\n const cell = this.renderer.createElement('th');\n this.renderer.addClass(cell, 'value');\n this.renderer.setAttribute(cell, 'title', column.title);\n this.renderer.appendChild(\n cell,\n this.renderer.createText(column.title),\n );\n this.renderer.appendChild(line, cell);\n }\n\n if (column.isSummarize) {\n const cell = this.renderer.createElement('th');\n this.renderer.addClass(cell, 'group');\n this.renderer.setAttribute(\n cell,\n 'colspan',\n this.dataService.valueFieldDescriptions.length.toString(),\n );\n this.renderer.appendChild(cell, this.renderer.createText('Σ'));\n this.renderer.appendChild(line, cell);\n }\n });\n\n if (i === 0 && this.addTotalColumn) {\n const name = this.translate.instant('analytics.pivotTable.total');\n\n const cell = this.renderer.createElement('th');\n this.renderer.addClass(cell, 'group-total');\n this.renderer.setAttribute(\n cell,\n 'colspan',\n this.dataService.valueFieldDescriptions.length.toString(),\n );\n this.renderer.setAttribute(cell, 'rowspan', groupsCount.toString());\n this.renderer.setAttribute(cell, 'title', name);\n this.renderer.appendChild(cell, this.renderer.createText(name));\n this.renderer.appendChild(line, cell);\n }\n\n if (i === groupsCount && this.addTotalColumn) {\n this.dataService.valueFieldDescriptions.forEach((fieldDescription) => {\n const cell = this.renderer.createElement('th');\n this.renderer.addClass(cell, 'value');\n this.renderer.setAttribute(cell, 'title', fieldDescription.title);\n this.renderer.appendChild(\n cell,\n this.renderer.createText(fieldDescription.title),\n );\n this.renderer.appendChild(line, cell);\n });\n }\n\n this.renderer.appendChild(thead, line);\n line = this.renderer.createElement('tr');\n }\n\n this.renderer.appendChild(thead, line);\n }\n\n /** Рендеринг TBODY. */\n public renderBody() {\n const tbody = this.tableBody.querySelector('tbody');\n this.clearNode(tbody);\n this.renderColumnsDefinition(this.tableBody);\n\n this.displayRowsCount = 0;\n\n this.renderPage();\n\n if (this.dataService.pivotReport.sourceRecordCount === 0) {\n const row = this.renderer.createElement('tr');\n const cell = this.renderer.createElement('td');\n this.renderer.addClass(cell, 'text-body-secondary');\n this.renderer.addClass(cell, 'text-center');\n this.renderer.setAttribute(cell, 'colspan', this.totalCols.toString());\n this.renderer.appendChild(\n cell,\n this.renderer.createText(\n this.translate.instant('shared.noDisplayData'),\n ),\n );\n this.renderer.appendChild(row, cell);\n this.renderer.appendChild(tbody, row);\n }\n }\n\n /**\n * Рендеринг очередной страницы.\n * @returns - признак отображения всех данных.\n */\n public renderPage(): boolean {\n const tbody = this.tableBody.querySelector('tbody');\n\n const start = new Date().getTime();\n this.log.debug('Page rendering has been started...');\n\n this.displayRowsCount += this.pageSize;\n this.pageRenderingCycleIndex = 0;\n\n if (!this.hasRowGrouping) {\n this.renderRows(tbody, this.dataService.pivotReport.pivotRows, null);\n } else {\n this.renderGroups(\n tbody,\n this.dataService.pivotReport.pivotRows as PivotGroupRow[],\n null,\n false,\n );\n }\n\n const duration = new Date().getTime() - start;\n this.log.debug('Page rendering has been completed in ' + duration + 'ms.');\n\n return this.pageRenderingCycleIndex <= this.displayRowsCount;\n }\n\n /** Рендеринг строки итогов. */\n public renderFooter() {\n const tfoot = this.tableFooter.querySelector('tfoot');\n\n this.clearNode(tfoot);\n this.renderColumnsDefinition(this.tableFooter);\n\n const line = this.renderer.createElement('tr');\n\n this.flatColumnNames.forEach((columnName) => {\n const columnDescription =\n this.dataService.viewFieldDescriptions[columnName];\n this.renderCell(\n line,\n columnDescription,\n this.dataService.pivotReport.values[columnName],\n true,\n true,\n );\n });\n\n if (this.hasValueGrouping) {\n if (this.dataService.valueFieldDescriptions.length === 0) {\n this.renderEmptyValueSpace(line, true);\n } else {\n // Рендер сводных колонок\n const values = this.getPivotRowValues(\n this.dataService.pivotReport.pivotColumns,\n );\n values.forEach((value) => {\n this.renderCell(line, value.fieldDescription, value.value, true);\n });\n\n // Рендер итоговой сводной колонки\n if (this.addTotalColumn) {\n this.dataService.valueFieldDescriptions.forEach(\n (fieldDescription) => {\n this.renderCell(\n line,\n fieldDescription,\n this.dataService.pivotReport.values[fieldDescription.name],\n true,\n );\n },\n );\n }\n }\n }\n this.renderer.appendChild(tfoot, line);\n }\n\n /** Свернуть группы строк. */\n public collapseAllRowGroups(columnName: string) {\n this.collapseOrExpandAllRowGroups(columnName);\n }\n\n /** Развернуть группы строк. */\n public expandAllRowGroups(columnName: string) {\n this.collapseOrExpandAllRowGroups(columnName, true);\n }\n\n /** Обновить определения колонок. */\n public updateColumnsDefinition() {\n const update = (table: HTMLElement) => {\n this.totalWidth = 0;\n const columns = table.querySelector('colgroup').querySelectorAll('col');\n\n this.getFlatColumnNamesForHeader().forEach((columnName, index) => {\n const fieldDescription =\n this.dataService.viewFieldDescriptions[columnName];\n let width = 0;\n if (\n this.userSettings.columns &&\n this.userSettings.columns[columnName]\n ) {\n width = this.userSettings.columns[columnName];\n } else {\n width = this.getDefaultColumnWidth(fieldDescription.type);\n }\n const col = columns[index] as HTMLElement;\n // eslint-disable-next-line radix\n const currentWidth = parseInt(col.style.width);\n\n if (width !== currentWidth) {\n this.renderer.setStyle(col, 'width', width + 'px');\n }\n\n this.totalWidth += width;\n });\n };\n\n update(this.tableBody);\n update(this.tableFooter);\n }\n\n // Возвращает форматированное значение.\n public getFormattedValue(type: ReportFieldType, value: any, emptyValue = '') {\n // eslint-disable-next-line eqeqeq\n if (value == undefined || value === '' || value === null || value === 0) {\n return emptyValue;\n }\n\n switch (type) {\n case ReportFieldType.Date:\n return this.datePipe.transform(value, 'shortDate');\n case ReportFieldType.DateTimeOffset:\n return this.datePipe.transform(\n value,\n 'short',\n this.app.session.timeZoneOffset,\n );\n case ReportFieldType.Decimal:\n return this.numberPipe.transform(value, '1.2-2');\n case ReportFieldType.Integer:\n return this.numberPipe.transform(value, '1.0-0');\n case ReportFieldType.Percent:\n return this.percentPipe.transform(value, '1.0-0');\n case ReportFieldType.Bool:\n return value ? this.yesLabel : this.noLabel;\n\n default:\n return value;\n }\n }\n\n // Возвращает имена плоских (не сводных) колонок таблицы.\n private getFlatColumnNamesForHeader() {\n let columnNames: string[] = [];\n if (this.hasRowGrouping) {\n columnNames.push(this.viewSettings.rowGroupFields[0].name);\n for (let i = 1; i < this.flatColumnNames.length; i++) {\n columnNames.push(this.flatColumnNames[i]);\n }\n } else {\n columnNames = this.flatColumnNames;\n }\n\n return columnNames;\n }\n\n // Возвращает уровень сводных колонок.\n private getColumnsLevel(level, currentLevel, children: any[]) {\n const groupsCount = this.viewSettings.columnGroupFields.length;\n if (!children) {\n children = this.dataService.pivotReport.pivotColumns;\n }\n let columns = [];\n\n children.forEach((column) => {\n if (level === currentLevel) {\n columns.push(column);\n return;\n }\n\n if (\n column.isExpanded &&\n column.pivotColumns &&\n column.pivotColumns.length > 0\n ) {\n columns = columns.concat(\n this.getColumnsLevel(level, currentLevel + 1, column.pivotColumns),\n );\n return;\n }\n\n if (level === groupsCount) {\n this.dataService.valueFieldDescriptions.forEach((fieldDescription) => {\n columns.push(fieldDescription);\n });\n return;\n }\n\n if (!column.isExpanded && column.pivotColumns && level <= groupsCount) {\n columns.push({\n isSummarize: true,\n });\n return;\n }\n });\n\n return columns;\n }\n\n // Очищает DOM-элемент.\n private clearNode(e: HTMLElement) {\n let child = e.lastElementChild;\n while (child) {\n e.removeChild(child);\n child = e.lastElementChild;\n }\n }\n\n // Возвращает ширину колонок по умолчанию.\n private getDefaultColumnWidth(type: ReportFieldType): number {\n switch (type) {\n case ReportFieldType.Date:\n return 100;\n case ReportFieldType.DateTimeOffset:\n return 125;\n case ReportFieldType.Decimal:\n return 125;\n case ReportFieldType.Integer:\n return 125;\n case ReportFieldType.Percent:\n return 140;\n case ReportFieldType.Bool:\n return 100;\n default:\n return 250;\n }\n }\n\n // Возвращает число элементов нижнего уровня.\n private getColumnGroupCellsCount(topColumn) {\n const valuesCount =\n this.dataService.valueFieldDescriptions.length === 0\n ? 1\n : this.dataService.valueFieldDescriptions.length;\n\n let count = 0;\n\n if (!topColumn.isGroup) {\n return 1;\n }\n\n const loop = (column) => {\n if (!column.isExpanded) {\n count += valuesCount;\n return;\n }\n if (column.pivotColumns && column.pivotColumns.length > 0) {\n column.pivotColumns.forEach((iterateColumn) => {\n loop(iterateColumn);\n });\n } else {\n count += valuesCount;\n }\n };\n loop(topColumn);\n return count;\n }\n\n // Рендеринг пространства для индикации пустой таблицы.\n private renderEmptyValueSpace(line: HTMLElement, forFooter: boolean) {\n if (!this.emptyValueSpaceWasFilled || forFooter) {\n let rowCount = forFooter ? 1 : 0;\n let text = '';\n\n if (!forFooter) {\n const procLevel = (rows) => {\n rowCount += rows.length;\n if (!this.hasRowGrouping) {\n return;\n }\n rows.forEach((row) => {\n if (row.pivotRows) {\n procLevel(row.pivotRows);\n }\n });\n };\n\n text = this.translate.instant(\n 'analytics.pivotTable.valuesWereNotSelected',\n );\n }\n\n this.emptyValueSpaceWasFilled = true;\n\n const cell = this.renderer.createElement('td');\n this.renderer.addClass(cell, 'empty-space');\n this.renderer.setAttribute(cell, 'colspan', '500');\n this.renderer.setAttribute(cell, 'rowCount', rowCount.toString());\n this.renderer.appendChild(cell, this.renderer.createText(text));\n\n this.renderer.appendChild(line, cell);\n }\n }\n\n // Возвращает значения для сводной строки.\n private getPivotRowValues(\n pivotColumns: PivotColumn[],\n ): { fieldDescription: ReportField; value: any }[] {\n const values = [];\n\n const addValues = (rowPivotColumn) => {\n this.dataService.valueFieldDescriptions.forEach((fieldDescription) => {\n const value = rowPivotColumn\n ? rowPivotColumn.values[fieldDescription.name]\n : null;\n values.push({\n fieldDescription,\n value,\n });\n });\n };\n\n const process = (\n pivotColumn: PivotColumn,\n rowPivotColumns: PivotColumn[],\n ) => {\n const rowPivotColumn = rowPivotColumns\n ? rowPivotColumns.find((c) => c.value === pivotColumn.value)\n : null;\n\n if (\n !pivotColumn.isExpanded ||\n !pivotColumn.pivotColumns ||\n pivotColumn.pivotColumns.length === 0\n ) {\n addValues(rowPivotColumn);\n } else {\n pivotColumn.pivotColumns.forEach((iterateCurrentPivotColumn) => {\n process(\n iterateCurrentPivotColumn,\n rowPivotColumn ? rowPivotColumn.pivotColumns : null,\n );\n });\n }\n };\n\n this.dataService.pivotReport.pivotColumns.forEach((pivotColumn) => {\n process(pivotColumn, pivotColumns);\n });\n\n return values;\n }\n\n // Рендеринг COLGROUP\n private renderColumnsDefinition(table: HTMLTableElement) {\n this.totalCols = 0;\n this.totalWidth = 0;\n const tableColgroup = table.querySelector('colgroup');\n\n this.clearNode(tableColgroup);\n\n this.getFlatColumnNamesForHeader().forEach((columnName) => {\n this.totalCols++;\n const fieldDescription =\n this.dataService.viewFieldDescriptions[columnName];\n\n let width = 0;\n if (this.userSettings.columns && this.userSettings.columns[columnName]) {\n width = this.userSettings.columns[columnName];\n } else {\n width = this.getDefaultColumnWidth(fieldDescription.type);\n }\n\n const col = this.renderer.createElement('col');\n this.renderer.setStyle(col, 'width', width + 'px');\n this.renderer.appendChild(tableColgroup, col);\n\n this.totalWidth += width;\n });\n\n if (this.hasValueGrouping) {\n const groupsCount = this.viewSettings.columnGroupFields.length;\n let columnsCount = this.getColumnsLevel(groupsCount, 0, null).length;\n\n if (this.addTotalColumn) {\n columnsCount += this.viewSettings.valueFields.length;\n }\n\n for (let columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\n const col = this.renderer.createElement('col');\n this.totalCols++;\n this.renderer.setStyle(col, 'width', '110px');\n this.renderer.appendChild(tableColgroup, col);\n\n this.totalWidth += 110;\n }\n }\n }\n\n // Рендеринг итоговой ячейки в строке итогов.\n // private renderFooterTotalCell(\n // line: HTMLElement,\n // reportField: ReportField,\n // value: any\n // ) {\n // const toRight = this.alignRightTypes.indexOf(reportField.type) !== -1;\n\n // const cellValue = this.getFormattingCellValue(reportField.type, value);\n\n // const cell = this.renderer.createElement('td');\n // this.renderer.setAttribute(cell, 'title', cellValue);\n // if (toRight) {\n // this.renderer.addClass(cell, 'right');\n // }\n // this.renderer.appendChild(cell, this.renderer.createText(cellValue));\n // this.renderer.appendChild(line, cell);\n // }\n\n // Рендеринг ячейки.\n private renderCell(\n line: HTMLElement,\n reportField: ReportField,\n value: any,\n isTotal: boolean,\n isFooterTotal = false,\n ) {\n let type = reportField.type;\n\n const valueViewFiled = this.viewSettings.valueFields.find(\n (f) => f.name === reportField.name,\n );\n\n if (isTotal) {\n if (valueViewFiled?.totalFunction === TotalFunction.Count) {\n type = ReportFieldType.Integer;\n }\n } else {\n if (\n valueViewFiled &&\n reportField.type !== ReportFieldType.Decimal &&\n reportField.type !== ReportFieldType.Percent\n ) {\n type = ReportFieldType.Integer;\n }\n }\n\n const toRight = this.alignRightTypes.indexOf(type) !== -1;\n\n if (\n this.dataService.columnGroupFieldsDictionary[reportField.name] &&\n !isFooterTotal\n ) {\n value = '';\n } else {\n value = this.getFormattedValue(type, value);\n }\n\n const cell = this.renderer.createElement('td');\n this.renderer.setAttribute(cell, 'title', value);\n\n if (\n this.hasRowGrouping &&\n this.flatColumnNames.indexOf(reportField.name) === 0 &&\n !isFooterTotal\n ) {\n this.renderer.setStyle(\n cell,\n 'padding-left',\n this.viewSettings.rowGroupFields.length * this.groupStep + 5 + 'px',\n );\n }\n\n if (toRight) {\n this.renderer.addClass(cell, 'right');\n }\n\n this.renderer.appendChild(cell, this.renderer.createText(value));\n this.renderer.appendChild(line, cell);\n }\n\n /** Рендеринг строки-группы */\n private renderRowOfGroup(\n tbody: HTMLElement,\n group: PivotGroupRow,\n parentGroup: PivotGroupRow,\n ) {\n const line = this.renderer.createElement('tr');\n this.renderer.addClass(line, 'group');\n\n if (parentGroup) {\n this.renderer.setAttribute(line, 'data-group', parentGroup.id);\n }\n this.renderer.setAttribute(line, 'data-group-name', group.id);\n\n // Значение группы вывести в первую колонку.\n const groupInViewSettings = this.viewSettings.rowGroupFields.find(\n (f) => f.name === group.groupFieldName,\n );\n\n const groupIndex =\n this.viewSettings.rowGroupFields.indexOf(groupInViewSettings);\n\n const hint = this.translate.instant(\n group.isExpanded\n ? 'analytics.pivotTable.collapse'\n : 'analytics.pivotTable.expand',\n );\n\n const collapser = this.renderer.createElement('i');\n this.renderer.listen(collapser, 'click', () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n group.isExpanded\n ? this.collapseRowGroup(group)\n : this.expandRowGroup(group);\n });\n\n this.renderer.setAttribute(collapser, 'title', hint);\n this.renderer.addClass(collapser, 'bi');\n\n this.renderer.addClass(\n collapser,\n group.isExpanded ? 'bi-dash-square' : 'bi-plus-square',\n );\n\n let cellValue;\n const reportField =\n this.dataService.viewFieldDescriptions[group.groupFieldName];\n\n if (group.value === null) {\n cellValue = this.translate.instant('analytics.pivotTable.empty');\n } else {\n cellValue = this.getFormattedValue(reportField.type, group.value);\n }\n\n const toRight = this.alignRightTypes.indexOf(reportField.type) !== -1;\n const paddingValue = this.groupStep * groupIndex + 5;\n\n const cell = this.renderer.createElement('td');\n this.renderer.setStyle(cell, 'padding-left', paddingValue + 'px');\n this.renderer.setAttribute(cell, 'title', cellValue);\n\n if (toRight) {\n this.renderer.addClass(cell, 'right');\n }\n\n this.renderer.appendChild(cell, collapser);\n this.renderer.appendChild(cell, this.renderer.createText(cellValue));\n\n this.renderer.appendChild(line, cell);\n\n // Пропустить число полей-строк - 1.\n for (\n let index = this.viewSettings.columnFields.length - 1;\n index > 0;\n index--\n ) {\n this.renderer.appendChild(line, this.renderer.createElement('td'));\n }\n\n if (!this.hasValueGrouping) {\n // Добавить поля значения.\n this.viewSettings.valueFields.forEach((valueField) => {\n this.renderCell(\n line,\n this.dataService.viewFieldDescriptions[valueField.name],\n group.values[valueField.name],\n true,\n );\n });\n } else {\n if (this.viewSettings.valueFields.length === 0) {\n this.renderEmptyValueSpace(line, false);\n } else {\n // Рендер сводных колонок\n const values = this.getPivotRowValues(group.pivotColumns);\n values.forEach((value) => {\n this.renderCell(line, value.fieldDescription, value.value, true);\n });\n\n // Рендер итоговой сводной колонки\n if (this.addTotalColumn) {\n this.dataService.valueFieldDescriptions.forEach(\n (fieldDescription) => {\n this.renderCell(\n line,\n fieldDescription,\n group.values[fieldDescription.name],\n true,\n );\n },\n );\n }\n }\n }\n\n this.renderer.appendChild(tbody, line);\n }\n\n /** Рендеринг строк грида. */\n private renderRows(\n tbody: HTMLElement,\n rows: PivotRow[],\n group: PivotGroupRow,\n ) {\n let html = '';\n\n rows.forEach((row) => {\n if (\n !(\n this.pageRenderingCycleIndex >= this.displayRowsCount ||\n this.pageRenderingCycleIndex < this.displayRowsCount - this.pageSize\n )\n ) {\n const line = this.renderer.createElement('tr');\n\n this.flatColumnNames.forEach((columnName) => {\n this.renderCell(\n line,\n this.dataService.viewFieldDescriptions[columnName],\n row.values[columnName],\n false,\n );\n });\n\n if (this.hasValueGrouping) {\n if (this.dataService.valueFieldDescriptions.length === 0) {\n this.renderEmptyValueSpace(line, false);\n } else {\n // Рендер сводных колонок\n const values = this.getPivotRowValues(row.pivotColumns);\n values.forEach((value) => {\n this.renderCell(line, value.fieldDescription, value.value, false);\n });\n\n // Рендер итоговой сводной колонки\n if (this.addTotalColumn) {\n this.dataService.valueFieldDescriptions.forEach(\n (fieldDescription) => {\n this.renderCell(\n line,\n fieldDescription,\n row.values[fieldDescription.name],\n true,\n );\n },\n );\n }\n }\n }\n\n this.renderer.appendChild(tbody, line);\n html += line;\n }\n\n this.pageRenderingCycleIndex++;\n });\n\n return html;\n }\n\n /** Рендеринг группы строк. */\n private renderGroups(\n tbody: HTMLElement,\n rows: PivotGroupRow[],\n parentRow: PivotGroupRow,\n fromExpander: boolean,\n ) {\n let data = '';\n\n rows.forEach((row) => {\n if (!fromExpander) {\n if (\n !(\n this.pageRenderingCycleIndex >= this.displayRowsCount ||\n this.pageRenderingCycleIndex < this.displayRowsCount - this.pageSize\n )\n ) {\n data += this.renderRowOfGroup(tbody, row as PivotGroupRow, parentRow);\n }\n\n this.pageRenderingCycleIndex++;\n }\n\n if (!row.isExpanded) {\n return;\n }\n\n if (row.isGroup && row.pivotRows[0].isGroup) {\n data += this.renderGroups(\n tbody,\n row.pivotRows as PivotGroupRow[],\n row,\n false,\n );\n } else {\n data += this.renderRows(tbody, row.pivotRows, row);\n }\n });\n return data;\n }\n\n private updateCollapser(tbody: HTMLElement, group: PivotGroupRow) {\n const el = tbody\n .querySelector(`[data-group-name='${group.id}']`)\n .querySelector('.bi');\n\n this.renderer.removeClass(el, 'bi-dash-square');\n this.renderer.removeClass(el, 'bi-plus-square');\n\n const hint = this.translate.instant(\n group.isExpanded\n ? 'analytics.pivotTable.collapse'\n : 'analytics.pivotTable.expand',\n );\n this.renderer.setAttribute(el, 'title', hint);\n\n if (group.isExpanded) {\n this.renderer.addClass(el, 'bi-dash-square');\n } else {\n this.renderer.addClass(el, 'bi-plus-square');\n }\n }\n\n private valueGroupCollapserHandler(column: any) {\n if (column.isExpanded) {\n this.collapseColumnGroup(column);\n } else {\n this.expandColumnGroup(column);\n }\n }\n\n /** Обновление группы строк и данных после изменения состояния группировки. */\n private updatePageAfterRowGroupingChange(group: PivotGroupRow) {\n const tbody = this.tableBody.querySelector('tbody');\n this.updateCollapser(tbody, group);\n\n const groupEl = tbody.querySelector(`[data-group-name='${group.id}']`);\n\n let el = groupEl;\n let index = 0;\n // eslint-disable-next-line no-cond-assign\n while ((el = el.previousSibling as HTMLElement) != null) {\n index++;\n }\n\n this.displayRowsCount = index + 1;\n\n el = groupEl;\n // eslint-disable-next-line no-cond-assign\n while ((el = this.renderer.nextSibling(el)) != null) {\n this.renderer.removeChild(tbody, el);\n }\n\n this.renderPage();\n }\n\n /** Свертывание группы строк. */\n private collapseRowGroup(group: PivotGroupRow) {\n group.isExpanded = false;\n this.updatePageAfterRowGroupingChange(group);\n }\n\n /** Развертывание группы строк. */\n private expandRowGroup(group: PivotGroupRow) {\n group.isExpanded = true;\n this.updatePageAfterRowGroupingChange(group);\n }\n\n /** Свертывание группы колонок. */\n private collapseColumnGroup(group: PivotColumn) {\n if (!group.isExpanded) {\n return;\n }\n\n group.isExpanded = false;\n this.redraw();\n }\n\n /** Раскрытие группы колонок. */\n private expandColumnGroup(group: PivotColumn) {\n group.isExpanded = true;\n this.redraw();\n }\n\n private updateSortIndicator() {\n const thead = this.tableHeader.querySelector('thead');\n\n // Снимаем классы со всего.\n for (const name of Object.keys(this.dataService.viewFieldDescriptions)) {\n const el = thead.querySelector(`th[name='${name}'] > div`);\n if (el) {\n this.renderer.removeClass(el, this.sortAscentClass);\n this.renderer.removeClass(el, this.sortDescentClass);\n }\n }\n\n const sorting = this.userSettings.sorting;\n\n if (sorting && Object.keys(sorting).length > 0) {\n const fieldName = Object.keys(sorting)[0];\n const el = thead.querySelector(`th[name='${fieldName}'] > div`);\n this.renderer.addClass(\n el,\n sorting[fieldName] === SortOrder.Asc\n ? this.sortAscentClass\n : this.sortDescentClass,\n );\n }\n }\n\n private collapseOrExpandAllRowGroups(\n columnName: string,\n expandAll?: boolean,\n ) {\n const levelHandle = (groups: PivotGroupRow[]) => {\n groups.forEach((group) => {\n if (group.isGroup) {\n if (group.groupFieldName === columnName) {\n group.isExpanded = expandAll === true;\n }\n\n if (group.pivotRows) {\n levelHandle(group.pivotRows as PivotGroupRow[]);\n }\n }\n });\n };\n levelHandle(this.dataService.pivotReport.pivotRows as PivotGroupRow[]);\n\n this.renderBody();\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n ElementRef,\n ViewEncapsulation,\n Input,\n NgZone,\n} from '@angular/core';\nimport { PivotRenderService } from './pivot-render.service';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { LogService } from 'src/app/core/log.service';\nimport { auditTime } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PivotTableService } from './pivot-table.service';\nimport { SortOrder } from '../models/user-settings.model';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Сводная таблица. */\n@Component({\n selector: 'wp-pivot-table',\n templateUrl: './pivot-table.component.html',\n styleUrls: ['./pivot-table.component.scss'],\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class PivotTableComponent implements OnInit, OnDestroy {\n private defaultRootContainerId = Constants.defaultRootContainerId;\n\n @Input() inContainerMode: boolean;\n\n private _rootContainerId: string;\n @Input() get rootContainerId(): string {\n return this._rootContainerId ?? this.defaultRootContainerId;\n }\n set rootContainerId(value: string) {\n this._rootContainerId = value;\n }\n\n limitReachedWarn: any;\n scrollListener: Subscription;\n\n public menuId = Guid.generate();\n public headerMenuItems: any[] = [];\n public headerMenuStyles: Dictionary = {};\n\n constructor(\n private translate: TranslateService,\n private log: LogService,\n private elementRef: ElementRef,\n public service: PivotTableService,\n public renderService: PivotRenderService,\n private freezeTableService: FreezeTableService,\n private zone: NgZone,\n ) {\n this.renderService.menu$.subscribe((params) => {\n this.openHeaderMenu(params);\n });\n }\n\n public closeHeaderMenu() {\n this.headerMenuStyles['display'] = 'none';\n }\n\n public openHeaderMenu(param: [string, any]) {\n const columnName = param[0];\n const event = param[1];\n\n event.stopPropagation();\n const targetRect = event.target.getBoundingClientRect();\n this.headerMenuItems = [];\n\n this.headerMenuItems.push({\n name: 'sortAsc',\n icon: 'bi-sort-down',\n title: this.translate.instant('analytics.pivotTable.sortAscending'),\n column: columnName,\n });\n\n this.headerMenuItems.push({\n name: 'sortDesc',\n icon: 'bi-sort-up',\n title: this.translate.instant('analytics.pivotTable.sortDescending'),\n column: columnName,\n });\n\n // Есть группировка строк по колонке.\n if (\n this.service.viewSettings.rowGroupFields &&\n this.service.viewSettings.rowGroupFields.find(\n (f) => f.name === columnName,\n )\n ) {\n this.headerMenuItems.push({\n isDivider: true,\n });\n\n this.headerMenuItems.push({\n name: 'expand',\n title: this.translate.instant('analytics.pivotTable.expandAll'),\n column: columnName,\n });\n\n this.headerMenuItems.push({\n name: 'collapse',\n title: this.translate.instant('analytics.pivotTable.collapseAll'),\n column: columnName,\n });\n }\n\n const left = targetRect.right - 135;\n const top = targetRect.bottom + 2;\n\n this.headerMenuStyles['display'] = 'block';\n this.headerMenuStyles['position'] = 'fixed';\n this.headerMenuStyles['top'] = top + 'px';\n this.headerMenuStyles['left'] = left + 'px';\n }\n\n public onScroll() {\n this.closeHeaderMenu();\n }\n\n /** Событие изменения ширины колонки. */\n public onColumnResized(param: [string, number]) {\n this.service.resizing$.next(param);\n this.renderService.userSettings.columns[param[0]] = param[1];\n this.renderService.updateColumnsDefinition();\n this.freezeTableService.redraw();\n }\n\n public headerMenuClick(item: any) {\n switch (item.name) {\n case 'sortAsc':\n this.service.sort(item.column, SortOrder.Asc);\n break;\n case 'sortDesc':\n this.service.sort(item.column, SortOrder.Desc);\n break;\n case 'collapse':\n this.renderService.collapseAllRowGroups(item.column);\n break;\n case 'expand':\n this.renderService.expandAllRowGroups(item.column);\n break;\n }\n\n this.closeHeaderMenu();\n }\n\n // TODO: refactor this?\n public enableInfinityScroll() {\n const container = document.getElementById(this.rootContainerId);\n const lengthThreshold = 50;\n let lastRemaining = 9999;\n\n const handler = () => {\n const remaining =\n container.scrollHeight - (container.clientHeight + container.scrollTop);\n if (remaining < lengthThreshold && remaining - lastRemaining <= 0) {\n this.log.debug(\n `View port has been scrolled to the end and a new page must be rendered.`,\n );\n const allAreLoaded = this.renderService.renderPage();\n if (!allAreLoaded) {\n handler();\n }\n }\n lastRemaining = remaining;\n };\n\n this.zone.runOutsideAngular(() => {\n this.scrollListener = fromEvent(container, 'scroll')\n .pipe(auditTime(Constants.scrollThrottleTime))\n .subscribe(() => {\n if (this.renderService.tableBody) {\n handler();\n }\n });\n });\n }\n\n ngOnInit(): void {\n this.renderService.componentRef = this.elementRef\n .nativeElement as HTMLElement;\n this.enableInfinityScroll();\n }\n\n ngOnDestroy(): void {\n if (this.scrollListener) {\n this.scrollListener.unsubscribe();\n }\n }\n}\n","

\n {{\n 'analytics.pivotTable.hasMaxCount' | translate: { limit: service.pivotTable.sourceRecordCount }\n }}\n

\n\n

\n {{ 'analytics.pivotTable.error' | translate }}\n

\n\n\n \n
\n \n
\n\n\n\n
\n \n \n \n \n
\n\n
\n \n \n \n
\n
\n\n
\n \n \n \n
\n
\n\n","import { Injectable } from '@angular/core';\nimport { PivotDataService } from './pivot-data.service';\nimport { ViewSettings } from '../models/view-settings/view-settings.model';\nimport { UserSettings, SortOrder } from '../models/user-settings.model';\nimport { PivotRenderService } from './pivot-render.service';\nimport { PivotTable } from './model/pivot-table.model';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\n\n@Injectable()\nexport class PivotTableService {\n public loading$ = new BehaviorSubject(false);\n public isError$ = new BehaviorSubject(false);\n public sorting$ = new Subject>();\n public resizing$ = new Subject<[string, number]>();\n\n pivotTable: PivotTable;\n userSettings: UserSettings;\n viewSettings: ViewSettings;\n\n constructor(\n private dataService: PivotDataService,\n private renderService: PivotRenderService,\n ) {\n this.renderService.sort$.subscribe((columnName) => this.sort(columnName));\n }\n\n public initForReport(\n reportId: string,\n viewSettings: ViewSettings,\n userSettings: UserSettings,\n ) {\n this.dataService.initForReport(reportId, viewSettings, userSettings);\n this.renderService.init(viewSettings, userSettings);\n\n this.userSettings = userSettings;\n this.viewSettings = viewSettings;\n }\n\n public initForWidget(\n widgetId: string,\n dashboardId: string,\n viewSettings: ViewSettings,\n userSettings: UserSettings,\n ) {\n this.dataService.initForWidget(\n widgetId,\n dashboardId,\n viewSettings,\n userSettings,\n );\n this.renderService.init(viewSettings, userSettings);\n\n this.userSettings = userSettings;\n this.viewSettings = viewSettings;\n }\n\n public run(force = false, period: DatePeriod = null) {\n this.loading$.next(true);\n this.isError$.next(false);\n\n this.dataService.loadData(force, period).then(\n (pivotTable) => {\n this.loading$.next(false);\n this.pivotTable = pivotTable;\n this.renderService.redraw();\n },\n () => {\n this.isError$.next(true);\n this.loading$.next(false);\n },\n );\n }\n\n public sort(fieldName: string, sortOrder?: SortOrder) {\n const sorting = this.userSettings.sorting;\n\n let newSortOrder: SortOrder = SortOrder.Asc;\n if (sortOrder) {\n newSortOrder = sortOrder;\n } else {\n if (sorting && sorting[fieldName] !== undefined) {\n newSortOrder =\n sorting[fieldName] === SortOrder.Asc ? SortOrder.Desc : SortOrder.Asc;\n }\n }\n\n this.userSettings.sorting = {};\n this.userSettings.sorting[fieldName] = newSortOrder;\n this.sorting$.next(this.userSettings.sorting);\n this.renderService.userSettings = this.userSettings;\n this.renderService.redraw(true);\n }\n}\n","import { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { FormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ReportPeriodService } from './report-period.service';\nimport { filter } from 'rxjs';\n\n/** Компонента выбора периода отчета. */\n@Component({\n selector: 'wp-report-period',\n templateUrl: './report-period.component.html',\n standalone: false,\n})\nexport class ReportPeriodComponent implements OnInit {\n public form: UntypedFormGroup;\n public periodTitle: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private translate: TranslateService,\n private service: ReportPeriodService,\n private formBuilder: FormBuilder,\n ) {}\n\n public periodTitleChanged(title: string) {\n this.periodTitle = title;\n\n if (!this.periodTitle) {\n this.periodTitle = this.translate.instant(\n 'analytics.reportPeriod.periodSelector.periodIsNotSelected',\n );\n }\n this.service.setPeriodTitle(this.periodTitle);\n }\n\n ngOnInit(): void {\n this.form = this.formBuilder.group({\n period: null,\n });\n this.service.period$\n .pipe(\n filter((value) => value !== this.form.value.period),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((period) => {\n this.form.get('period').setValue(period, { emitEvent: false });\n });\n\n this.form\n .get('period')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.service.setPeriod(value);\n });\n }\n}\n","
\n \n \n

\n {{ 'analytics.reportPeriod.periodSelector.help' | translate }}\n

\n
\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\n\n@Injectable()\nexport class ReportPeriodService {\n private periodSubject = new BehaviorSubject(null);\n public period$ = this.periodSubject.asObservable();\n\n private periodTitleSubject = new BehaviorSubject(null);\n public periodTitle$ = this.periodTitleSubject.asObservable();\n\n public setPeriod(period: DatePeriod) {\n this.periodSubject.next(period);\n }\n\n public setPeriodTitle(title: string) {\n this.periodTitleSubject.next(title);\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { ReportField } from '../../models/source-description/report-field.model';\nimport { BaseViewField } from '../../models/view-settings/base-view-field.model';\nimport { NotificationService } from 'src/app/core/notification.service';\n\n/** Компонента редактирования поля (в представлении). */\n@Component({\n selector: 'wp-field-properties-modal',\n templateUrl: './field-properties-modal.component.html',\n styleUrls: ['./field-properties-modal.component.scss'],\n standalone: false,\n})\nexport class FieldPropertiesModalComponent implements OnInit {\n @Input() field: BaseViewField;\n @Input() sourceField: ReportField;\n\n public form = this.fb.group({\n title: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.activeModal.close(this.form.value.title);\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n const title = this.field.customTitle\n ? this.field.customTitle\n : this.sourceField.title;\n this.form.controls['title'].setValue(title);\n }\n}\n","
\n
\n

{{ form.value.title }}

\n \n
\n
\n
\n \n

{{ sourceField?.title }}

\n
\n\n
\n \n \n \n
\n
\n
\n \n \n
\n
\n","import {\n Component,\n OnInit,\n Input,\n OnChanges,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { ViewSettingsType } from './view-settings.type';\nimport { ViewSettings } from '../models/view-settings/view-settings.model';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n UntypedFormBuilder,\n UntypedFormArray,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { AnalyticsService } from 'src/app/core/analytics.service';\nimport { ReportSourceDescription } from '../models/source-description/report-source-description.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ReportField } from '../models/source-description/report-field.model';\nimport { TotalFunction } from '../models/total-function.enum';\nimport { auditTime } from 'rxjs/operators';\nimport { Options } from 'sortablejs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BaseViewField } from '../models/view-settings/base-view-field.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FieldPropertiesModalComponent } from './field-properties-modal/field-properties-modal.component';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Report } from 'src/app/shared/models/entities/analytics/report.model';\nimport { LogService } from 'src/app/core/log.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge } from 'rxjs';\n\n/** Компонента настройки представления отчета. */\n@Component({\n selector: 'wp-report-view-settings',\n templateUrl: './report-view-settings.component.html',\n styleUrls: ['./report-view-settings.component.scss'],\n standalone: false,\n})\nexport class ReportViewSettingsComponent implements OnInit, OnChanges {\n @Input() type: ViewSettingsType;\n @Input() viewSettings: ViewSettings;\n\n @Output() changes = new EventEmitter<[ViewSettings, any]>();\n @Output() typeChanges = new EventEmitter();\n\n // Имена контейнеров колонок представления, они же идентификаторы.\n public sourceFieldsContainer = 'source-fields-container';\n public rowFieldsContainer = 'row-fields-container';\n public valueFieldsContainer = 'value-fields-container';\n public valueGroupFieldsContainer = 'value-group-fields-container';\n public rowGroupFieldsContainer = 'row-group-fields-container';\n\n public isLoading = false;\n public isTemplatesLoading = false;\n public form: UntypedFormGroup;\n public sourceDescription: ReportSourceDescription;\n\n // Все поля, определенные схемой типа отчета.\n public sourceFields: ReportField[] = [];\n\n // Отфильтрованные колонки схемы.\n public sourceFieldsFiltered: ReportField[] = [];\n\n // Строки грида для отображения фильтрованных колонок схемы.\n public sourceFieldRows: UntypedFormArray = this.fb.array([]);\n\n public rowFields: UntypedFormArray = new UntypedFormArray([]);\n public valueFields: UntypedFormArray = new UntypedFormArray([]);\n public rowGroupFields: UntypedFormArray = new UntypedFormArray([]);\n public valueGroupFields: UntypedFormArray = new UntypedFormArray([]);\n\n public hasRows: boolean;\n hasValues: boolean;\n hasValueGroups: boolean;\n hasRowGroups: boolean;\n valuesContainerLabel: string;\n rowsContainerLabel: string;\n rowGroupsContainerLabel: string;\n valueGroupsContainerLabel: string;\n\n totalFunctionsAreAllowed: boolean;\n public templatesAreAllowed = true;\n\n public sourceSortableOptions: Options = {\n group: {\n name: 'source',\n pull: 'clone',\n put: false,\n },\n\n sort: false,\n handle: '.handle',\n animation: 0,\n\n onMove: (event: any) => this.onMoveHandler(event),\n };\n\n public fieldSortableOptions: Options = {\n group: {\n name: 'fields',\n pull: true,\n put: true,\n },\n handle: '.handle',\n ghostClass: 'fields-sortable-ghost',\n chosenClass: 'fields-sortable-chosen',\n dragClass: 'fields-sortable-drag',\n onAdd: (event: any) => {\n const fieldName = event.item.getAttribute('name');\n const toId = event.to.id;\n\n const remove = (containerId: string) => {\n if (toId !== containerId) {\n const formArray = this.getFormArrayById(containerId);\n const index = (formArray.value as BaseViewField[]).findIndex(\n (f) => f.name === fieldName,\n );\n if (index > -1) {\n formArray.removeAt(index);\n }\n }\n };\n\n remove(this.rowFieldsContainer);\n remove(this.valueFieldsContainer);\n remove(this.valueGroupFieldsContainer);\n remove(this.rowGroupFieldsContainer);\n\n // Установить состояние в списке полей источника.\n this.setSourceFieldSelected(fieldName, true);\n },\n onMove: (event: any) => this.onMoveHandler(event),\n };\n\n templates: NamedEntity[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private translate: TranslateService,\n private modal: NgbModal,\n private notification: NotificationService,\n private log: LogService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private changeDetector: ChangeDetectorRef,\n private analyticsService: AnalyticsService,\n ) {}\n\n rowGroupFieldsLimit: () => number = () => 0;\n valueFieldsLimit: () => number = () => 0;\n rowFieldsLimit: () => number = () => 0;\n valueGroupFieldsLimit: () => number = () => 0;\n\n public cloneFieldHandler = (\n sourceFieldRow: UntypedFormGroup,\n ): UntypedFormGroup => {\n const sourceField = sourceFieldRow.value.field as ReportField;\n const group = this.fb.group({\n name: sourceField.name,\n customTitle: null,\n sourceField,\n total: null,\n });\n\n return group;\n };\n\n public getViewFieldTitle(field: UntypedFormGroup): string {\n if (!field) {\n return null;\n }\n return field.value.customTitle ?? field.value.sourceField.title;\n }\n\n public getTotalOptions(fieldName: string): NamedEntity[] {\n const totalValues: NamedEntity[] = [];\n const sourceField = this.getSourceField(fieldName);\n\n sourceField.totals.forEach((total) => {\n totalValues.push({\n id: total,\n name: this.getTotalFnTitle(total),\n });\n });\n\n return totalValues;\n }\n\n public getSourceField(name: string) {\n return this.sourceFields.find((f) => f.name === name);\n }\n\n private setSourceFieldSelected(name: string, selected: boolean) {\n const index = (this.sourceFieldRows.value as any[]).findIndex(\n (f) => f.name === name,\n );\n if (index > -1) {\n (this.sourceFieldRows.at(index) as UntypedFormGroup).controls[\n 'selected'\n ].setValue(selected, { emitEvent: false });\n }\n }\n\n private parseViewSettings() {\n const createFormGroup = (field: BaseViewField): UntypedFormGroup => {\n const sourceField = this.getSourceField(field.name);\n if (!sourceField) {\n return null;\n }\n\n const group = this.fb.group({\n name: sourceField.name,\n customTitle: field.customTitle,\n sourceField,\n total: null,\n });\n\n return group;\n };\n\n this.rowFields.clear();\n this.valueFields.clear();\n this.rowGroupFields.clear();\n this.valueGroupFields.clear();\n\n if (this.type === 'Pivot' || this.type === 'Table') {\n this.viewSettings.columnFields.forEach((field) => {\n const group = createFormGroup(field);\n if (group) {\n this.rowFields.push(group);\n }\n });\n\n this.viewSettings.valueFields.forEach((field) => {\n const group = createFormGroup(field);\n if (group) {\n group.controls['total'].setValue(\n field.totalFunction\n ? this.getTotalOptions(field.name).find(\n (f) => f.id === field.totalFunction,\n )\n : null,\n );\n\n this.valueFields.push(group);\n }\n });\n\n this.viewSettings.rowGroupFields.forEach((field) => {\n const group = createFormGroup(field);\n if (group) {\n this.rowGroupFields.push(group);\n }\n });\n\n this.viewSettings.columnGroupFields.forEach((field) => {\n const group = createFormGroup(field);\n if (group) {\n this.valueGroupFields.push(group);\n }\n });\n }\n\n if (\n ['Column', 'StackedColumns', 'StackedPercentageColumns', 'Line'].includes(\n this.type,\n )\n ) {\n // Добавить поле-категорию.\n if (this.viewSettings.categoryField) {\n const column = createFormGroup(this.viewSettings.categoryField);\n if (column) {\n this.rowFields.push(column);\n }\n }\n\n // Добавить поле-легенду.\n if (this.viewSettings.legendField) {\n const column = createFormGroup(this.viewSettings.legendField);\n if (column) {\n this.valueGroupFields.push(column);\n }\n }\n\n // Добавить поля-значения.\n this.viewSettings.valueFields?.forEach((field) => {\n const column = createFormGroup(field);\n if (column) {\n this.valueFields.push(column);\n }\n });\n }\n\n if (this.type === 'Pie') {\n // Добавить поле-значение.\n if (this.viewSettings.valueField) {\n const column = createFormGroup(this.viewSettings.valueField);\n if (column) {\n this.valueFields.push(column);\n }\n }\n\n // Добавить поле-категорию.\n if (this.viewSettings.categoryField) {\n const column = createFormGroup(this.viewSettings.categoryField);\n if (column) {\n this.rowFields.push(column);\n }\n }\n }\n\n if (['Value', 'Speedometer'].indexOf(this.type) !== -1) {\n // Добавить поле-значение.\n if (this.viewSettings.valueField) {\n const column = createFormGroup(this.viewSettings.valueField);\n if (column) {\n this.valueFields.push(column);\n }\n }\n }\n\n if (this.type === 'DoubleValue') {\n // Добавить поля-значения.\n this.viewSettings.valueFields?.forEach((field) => {\n const column = createFormGroup(field);\n if (column) {\n this.valueFields.push(column);\n }\n });\n }\n\n if (this.type === 'Funnel') {\n this.viewSettings.valueFields?.forEach((field) => {\n const column = createFormGroup(field);\n if (column) {\n this.valueFields.push(column);\n }\n });\n\n if (this.viewSettings.categoryField) {\n const column = createFormGroup(this.viewSettings.categoryField);\n if (column) {\n this.rowFields.push(column);\n }\n }\n }\n\n this.updateSourceFieldRows();\n this.updateViewSettings();\n }\n\n private updateViewSettings() {\n this.log.debug('ViewSettings has been updated.');\n\n const viewSettings: ViewSettings = {\n sourceName: this.viewSettings.sourceName,\n };\n\n const datasetFields: any[] = [];\n\n const valueFields = this.valueFields.value as any[];\n const rowFields = this.rowFields.value as any[];\n const rowGroupFields = this.rowGroupFields.value as any[];\n const valueGroupFields = this.valueGroupFields.value as any[];\n\n if (this.type === 'Pivot' || this.type === 'Table') {\n viewSettings.columnFields = [];\n viewSettings.valueFields = [];\n viewSettings.rowGroupFields = [];\n viewSettings.columnGroupFields = [];\n\n rowFields.forEach((field) => {\n viewSettings.columnFields.push({\n name: field.name,\n customTitle: field.customTitle,\n });\n });\n\n valueFields.forEach((field) => {\n viewSettings.valueFields.push({\n name: field.name,\n customTitle: field.customTitle,\n totalFunction: field.total?.id,\n });\n });\n\n rowGroupFields.forEach((field) => {\n viewSettings.rowGroupFields.push({\n name: field.name,\n customTitle: field.customTitle,\n });\n });\n\n valueGroupFields.forEach((field) => {\n viewSettings.columnGroupFields.push({\n name: field.name,\n customTitle: field.customTitle,\n });\n });\n }\n\n if (\n ['Column', 'StackedColumns', 'StackedPercentageColumns', 'Line'].includes(\n this.type,\n )\n ) {\n viewSettings.categoryField = null;\n viewSettings.valueFields = [];\n viewSettings.legendField = null;\n\n if (rowFields[0]) {\n viewSettings.categoryField = {\n name: rowFields[0].name,\n customTitle: rowFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: rowFields[0].name,\n usedAsValue: false,\n });\n }\n\n valueFields.forEach((column) => {\n viewSettings.valueFields.push({\n name: column.name,\n customTitle: column.customTitle,\n });\n\n datasetFields.push({\n fieldName: column.name,\n usedAsValue: true,\n });\n });\n\n if (valueGroupFields[0]) {\n viewSettings.legendField = {\n name: valueGroupFields[0].name,\n customTitle: valueGroupFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: valueGroupFields[0].name,\n usedAsValue: false,\n });\n }\n }\n\n if (this.type === 'Pie') {\n if (rowFields[0]) {\n viewSettings.categoryField = {\n name: rowFields[0].name,\n customTitle: rowFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: rowFields[0].name,\n usedAsValue: false,\n });\n }\n\n if (valueFields[0]) {\n viewSettings.valueField = {\n name: valueFields[0].name,\n customTitle: valueFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: valueFields[0].name,\n usedAsValue: true,\n });\n }\n }\n\n if (['Value', 'Speedometer'].indexOf(this.type) !== -1) {\n viewSettings.valueField = null;\n\n if (valueFields[0]) {\n viewSettings.valueField = {\n name: valueFields[0].name,\n customTitle: valueFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: valueFields[0].name,\n usedAsValue: true,\n });\n }\n }\n\n if (this.type === 'DoubleValue') {\n viewSettings.valueFields = [];\n valueFields.forEach((column) => {\n viewSettings.valueFields.push({\n name: column.name,\n customTitle: column.customTitle,\n });\n\n datasetFields.push({\n fieldName: column.name,\n usedAsValue: true,\n });\n });\n }\n\n if (this.type === 'Funnel') {\n viewSettings.columnFields = [];\n viewSettings.valueFields = [];\n\n if (rowFields[0]) {\n viewSettings.categoryField = {\n name: rowFields[0].name,\n customTitle: rowFields[0].customTitle,\n };\n\n datasetFields.push({\n fieldName: rowFields[0].name,\n usedAsValue: false,\n });\n }\n\n valueFields.forEach((field) => {\n viewSettings.valueFields.push({\n name: field.name,\n customTitle: field.customTitle,\n totalFunction: field.total?.id,\n });\n\n datasetFields.push({\n fieldName: field.name,\n usedAsValue: true,\n });\n });\n }\n\n this.changes.emit([viewSettings, datasetFields]);\n }\n\n loadDescription() {\n this.isLoading = true;\n\n return this.analyticsService\n .getSourceDescription(this.viewSettings.sourceName)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((description) => {\n this.sourceDescription = description;\n this.sourceFields = [];\n\n this.sourceDescription.allFields.forEach((field) => {\n if (field.type === 'EntityId') {\n return;\n }\n this.sourceFields.push(field);\n });\n\n this.updateSourceFieldRows();\n this.parseViewSettings();\n this.isLoading = false;\n\n this.changeDetector.detectChanges();\n });\n }\n\n public removeRowField(index: number) {\n this.setSourceFieldSelected(this.rowFields.at(index).value.name, false);\n this.rowFields.removeAt(index);\n }\n\n public removeValueField(index: number) {\n this.setSourceFieldSelected(this.valueFields.at(index).value.name, false);\n this.valueFields.removeAt(index);\n }\n\n public removeValueGroupField(index: number) {\n this.setSourceFieldSelected(\n this.valueGroupFields.at(index).value.name,\n false,\n );\n this.valueGroupFields.removeAt(index);\n }\n\n public removeRowGroupField(index: number) {\n this.setSourceFieldSelected(\n this.rowGroupFields.at(index).value.name,\n false,\n );\n this.rowGroupFields.removeAt(index);\n }\n\n public editField(fieldGroup: UntypedFormGroup) {\n const ref = this.modal.open(FieldPropertiesModalComponent);\n const instance = ref.componentInstance as FieldPropertiesModalComponent;\n\n instance.field = fieldGroup.value as BaseViewField;\n instance.sourceField = instance.field.sourceField;\n\n ref.result.then(\n (title: string) => {\n fieldGroup.controls['customTitle'].setValue(title);\n\n // Сохранить изменение.\n this.updateViewSettings();\n },\n () => null,\n );\n }\n\n public trackByName = (index: number, item: any) => item.value.name;\n\n /** Проверка использования полья в настройках. */\n private checkSourceFieldSelected(name: string): boolean {\n if (\n (this.rowFields.value as BaseViewField[]).find((f) => f.name === name)\n ) {\n return true;\n }\n if (\n (this.valueFields.value as BaseViewField[]).find((f) => f.name === name)\n ) {\n return true;\n }\n if (\n (this.rowGroupFields.value as BaseViewField[]).find(\n (f) => f.name === name,\n )\n ) {\n return true;\n }\n if (\n (this.valueGroupFields.value as BaseViewField[]).find(\n (f) => f.name === name,\n )\n ) {\n return true;\n }\n\n return false;\n }\n\n // Обновление строк полей источника.\n private updateSourceFieldRows() {\n this.sourceFieldsFiltered = this.form.value.sourceFilter\n ? this.sourceFields.filter((sf: ReportField) =>\n sf.title\n .toLowerCase()\n .includes(this.form.value.sourceFilter.toLowerCase()),\n )\n : this.sourceFields;\n\n const groupBy = (xs, key) =>\n xs.reduce((rv, x) => {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n\n this.sourceFieldRows.clear();\n const groups = groupBy(this.sourceFieldsFiltered, 'groupTitle');\n\n for (const key of Object.keys(groups)) {\n const group = groups[key];\n\n // Добавить строку с заголовком группы полей.\n this.sourceFieldRows.push(\n this.fb.group({\n name: Guid.generate(),\n title: key,\n isGroup: true,\n selected: false,\n }),\n );\n\n // Добавить все поля из группы.\n group.forEach((field: ReportField) => {\n const formGroup = this.fb.group({\n name: field.name,\n selected: this.checkSourceFieldSelected(field.name),\n title: field.title,\n field,\n });\n this.sourceFieldRows.push(formGroup);\n\n formGroup.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const sourceField = formGroup.value.field as ReportField;\n const viewFieldFormGroup = this.cloneFieldHandler(formGroup);\n\n if (formGroup.controls['selected'].value as boolean) {\n if (sourceField.isValueField) {\n if (this.valueFields.length >= this.valueFieldsLimit()) {\n this.notification.warningLocal(\n 'analytics.reportViewSettings.messages.fieldsLimit',\n );\n formGroup.controls['selected'].setValue(false, {\n emitEvent: false,\n });\n return;\n } else {\n this.valueFields.push(viewFieldFormGroup);\n }\n } else {\n if (this.rowFields.length >= this.rowFieldsLimit()) {\n this.notification.warningLocal(\n 'analytics.reportViewSettings.messages.fieldsLimit',\n );\n formGroup.controls['selected'].setValue(false, {\n emitEvent: false,\n });\n return;\n } else {\n this.rowFields.push(viewFieldFormGroup);\n }\n }\n } else {\n this.removeFieldFromView(sourceField.name);\n }\n });\n });\n }\n }\n\n public getTotalFnTitle(totalFn: TotalFunction) {\n return this.translate.instant(`enums.totalFunction.${totalFn}`);\n }\n\n public loadTemplates(open: boolean) {\n if (!open) {\n return;\n }\n\n this.templates = [];\n this.isTemplatesLoading = true;\n\n this.data\n .collection('Reports')\n .query({\n select: ['id', 'name'],\n filter: {\n isTemplate: true,\n isActive: true,\n reportTypeId: {\n type: 'guid',\n value: this.form.value.reportType?.id,\n },\n },\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (data) => {\n this.templates = data;\n this.isTemplatesLoading = false;\n },\n error: (error: Exception) => {\n this.isTemplatesLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n public applyTemplate(templateId: string) {\n this.data\n .collection('Reports')\n .entity(templateId)\n .get()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (template) => {\n this.viewSettings = JSON.parse(template.viewSettings);\n this.parseViewSettings();\n this.updateSourceFieldRows();\n this.updateViewSettings();\n this.notification.successLocal(\n 'analytics.reportViewSettings.messages.templateHasBeenApplied',\n );\n },\n error: (error: Exception) => {\n this.isTemplatesLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n private getFormArrayById(id: string): UntypedFormArray {\n switch (id) {\n case this.rowFieldsContainer:\n return this.rowFields;\n case this.valueFieldsContainer:\n return this.valueFields;\n case this.valueGroupFieldsContainer:\n return this.valueGroupFields;\n case this.rowGroupFieldsContainer:\n return this.rowGroupFields;\n }\n }\n\n private onMoveHandler = (event: any) => {\n const columnName = event.dragged.getAttribute('name');\n const toId = event.to.id;\n const fromId = event.from.id;\n const formArray = this.getFormArrayById(toId);\n\n if (fromId === toId) {\n return true;\n }\n\n if (\n (formArray.value as BaseViewField[]).find((f) => f.name === columnName)\n ) {\n return false;\n }\n\n if (\n toId === this.rowFieldsContainer &&\n this.rowFields.length >= this.rowFieldsLimit()\n ) {\n return false;\n }\n\n if (\n toId === this.valueFieldsContainer &&\n this.valueFields.length >= this.valueFieldsLimit()\n ) {\n return false;\n }\n\n if (\n toId === this.rowGroupFieldsContainer &&\n this.rowGroupFields.length >= this.rowGroupFieldsLimit()\n ) {\n return false;\n }\n\n if (\n toId === this.valueGroupFieldsContainer &&\n this.valueGroupFields.length >= this.valueGroupFieldsLimit()\n ) {\n return false;\n }\n\n return true;\n };\n\n private removeFieldFromView(fieldName: string) {\n const remove = (formArray: UntypedFormArray) => {\n const index = (formArray.value as BaseViewField[]).findIndex(\n (f) => f.name === fieldName,\n );\n if (index > -1) {\n formArray.removeAt(index);\n }\n };\n\n remove(this.rowFields);\n remove(this.valueFields);\n remove(this.valueGroupFields);\n remove(this.rowGroupFields);\n }\n\n ngOnChanges() {\n if (this.type === 'Pivot' || this.type === 'Table') {\n this.rowsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.rows',\n );\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.values',\n );\n this.valueGroupsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.valueGroups',\n );\n this.rowGroupsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.rowGroups',\n );\n\n this.rowGroupFieldsLimit = () => 5;\n this.valueGroupFieldsLimit = () => 5;\n this.valueFieldsLimit = () => 10;\n this.rowFieldsLimit = () => 15;\n\n this.hasRows =\n this.hasValues =\n this.hasRowGroups =\n this.hasValueGroups =\n true;\n this.templatesAreAllowed = true;\n this.totalFunctionsAreAllowed = true;\n }\n\n if (\n ['Column', 'StackedColumns', 'StackedPercentageColumns', 'Line'].indexOf(\n this.type,\n ) !== -1\n ) {\n this.rowsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.category',\n );\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.value',\n );\n this.valueGroupsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.legend',\n );\n\n this.hasRows = this.hasValues = this.hasValueGroups = true;\n this.hasRowGroups = false;\n\n this.templatesAreAllowed = false;\n this.totalFunctionsAreAllowed = false;\n\n this.valueGroupFieldsLimit = function () {\n return this.valueFields && this.valueFields.length > 1 ? 0 : 1;\n };\n this.valueFieldsLimit = function () {\n return this.valueGroupFields && this.valueGroupFields.length > 0\n ? 1\n : 5;\n };\n this.rowFieldsLimit = () => 1;\n }\n\n if (this.type === 'Pie') {\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.value',\n );\n this.valueGroupsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.legend',\n );\n this.rowsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.category',\n );\n\n this.hasRows = this.hasValues = true;\n this.hasValueGroups = false;\n this.hasRowGroups = false;\n\n this.templatesAreAllowed = false;\n this.totalFunctionsAreAllowed = false;\n\n this.valueFieldsLimit = () => 1;\n this.valueGroupFieldsLimit = () => 0;\n this.rowFieldsLimit = () => 1;\n }\n\n if (['Value', 'Speedometer'].indexOf(this.type) !== -1) {\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.value',\n );\n\n this.hasValues = true;\n this.hasRows = this.hasRowGroups = this.hasValueGroups = false;\n\n this.templatesAreAllowed = false;\n this.totalFunctionsAreAllowed = false;\n\n this.valueFieldsLimit = () => 1;\n this.rowFieldsLimit = () => 0;\n }\n\n if (['DoubleValue'].indexOf(this.type) !== -1) {\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.values',\n );\n\n this.hasValues = true;\n this.hasRows = this.hasValueGroups = this.hasRowGroups = false;\n\n this.templatesAreAllowed = false;\n this.totalFunctionsAreAllowed = false;\n\n this.valueFieldsLimit = () => 2;\n }\n\n if (this.type === 'Funnel') {\n this.valuesContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.value',\n );\n this.rowsContainerLabel = this.translate.instant(\n 'analytics.reportViewSettings.labels.category',\n );\n\n this.hasRows = this.hasValues = true;\n\n this.valueFieldsLimit = () => 1;\n this.rowFieldsLimit = () => 1;\n }\n }\n\n ngOnInit(): void {\n this.form = this.fb.group({\n reportType: null,\n sourceFilter: '',\n });\n if (this.viewSettings?.sourceName) {\n this.loadDescription();\n\n this.data\n .collection('ReportTypes')\n .query({ filter: { code: this.viewSettings.sourceName } })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.form.get('reportType').setValue(data[0], { emitEvent: false });\n });\n }\n\n this.form\n .get('sourceFilter')\n .valueChanges.pipe(auditTime(250), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateSourceFieldRows();\n this.changeDetector.detectChanges();\n });\n\n merge(\n this.rowFields.valueChanges,\n this.rowGroupFields.valueChanges,\n this.valueFields.valueChanges,\n this.valueGroupFields.valueChanges,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateViewSettings());\n\n this.form\n .get('reportType')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.typeChanges.emit(value);\n\n this.viewSettings = {\n sourceName: value?.code,\n columnFields: [],\n columnGroupFields: [],\n valueFields: [],\n rowGroupFields: [],\n };\n\n this.loadDescription();\n });\n }\n}\n","\n
\n
\n
\n \n
\n
\n
\n
\n \n \n {{ 'analytics.reportViewSettings.actions.applyTemplate.label' | translate }}\n \n
\n \n \n {{ 'shared.noOptions' | translate }}\n
\n \n {{ template.name }}\n \n
\n
\n
\n \n\n\n
\n \n
\n \n\n \n\n
\n \n\n \n \n
\n \n
\n\n \n {{ row.value.title }}\n
\n
\n \n {{ 'shared.noOptions' | translate }}\n
\n \n \n \n\n \n
\n
\n
\n \n
\n \n \n  {{ getViewFieldTitle(field) }}\n\n \n \n \n\n \n ×\n \n
\n
\n\n rowFields.length && rowFields.length === 0\"\n >\n {{ 'analytics.reportViewSettings.labels.selectAvailableColumns' | translate }}\n
\n
\n \n\n
\n \n
\n \n \n  {{ getViewFieldTitle(field) }}\n \n \n \n \n ×\n \n
\n
\n rowGroupFields.length && rowGroupFields.length === 0\"\n >\n {{ 'analytics.reportViewSettings.labels.selectAvailableColumns' | translate }}\n \n \n \n\n
\n \n\n
\n \n \n
\n  {{ getViewFieldTitle(field) }}\n\n \n \n \n\n \n ×\n \n
\n
\n 0\"\n class=\"nested\"\n [fixedPosition]=\"true\"\n [values]=\"getTotalOptions(field.value.name)\"\n formControlName=\"total\"\n placeholder=\"{{ 'analytics.reportViewSettings.labels.total' | translate }}\"\n >\n \n
\n
\n
\n\n valueFields.length && valueFields.length === 0\"\n >\n {{ 'analytics.reportViewSettings.labels.selectAvailableColumns' | translate }}\n \n \n \n\n
\n \n
\n \n \n  {{ getViewFieldTitle(field) }}\n \n \n \n \n ×\n \n
\n
\n valueGroupFields.length && valueGroupFields.length === 0\n \"\n >\n {{ 'analytics.reportViewSettings.labels.selectAvailableColumns' | translate }}\n \n \n \n \n \n\n","import {\n Component,\n OnInit,\n ViewChild,\n ElementRef,\n Renderer2,\n NgZone,\n AfterViewInit,\n Inject,\n} from '@angular/core';\nimport { AppService } from './core/app.service';\nimport { AuthService } from './core/auth.service';\nimport { NavigationService } from './core/navigation.service';\nimport { Navigation } from './shared/models/navigation/navigation';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n NgbModalConfig,\n NgbModal,\n NgbModalRef,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { ChromeService } from './core/chrome.service';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { ClientSession } from './shared/models/session/client-session.model';\nimport { MessageService } from './core/message.service';\nimport { detectAnyAdblocker } from 'just-detect-adblock';\nimport { LogService } from './core/log.service';\nimport { UpdateService } from './core/update.service';\nimport { TransitionService } from '@uirouter/core';\nimport { ModalForm } from 'src/app/shared/models/inner/modal-form.interface';\nimport { CreateMenuService } from 'src/app/core/create-menu.service';\nimport _ from 'lodash';\nimport { DOCUMENT } from '@angular/common';\nimport { Position } from 'src/app/shared/models/inner/position.model';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { UserSettingsModalComponent } from './shared/modules/user-settings-modal/user-settings-modal.component';\nimport { SelectingOfSubstituteModalComponent } from './selecting-of-substitute-modal/selecting-of-substitute-modal.component';\nimport { FireWork } from 'src/app/shared/globals/firework';\nimport { WebSocketsService } from 'src/app/core/web-sockets.service';\n\n@Component({\n selector: 'wp-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n providers: [UpdateService, CreateMenuService, WebSocketsService],\n standalone: false,\n})\nexport class AppComponent implements OnInit, AfterViewInit {\n @ViewChild('appContent') appContent: ElementRef;\n\n public session: ClientSession;\n public moduleDisplayName: string;\n public isAppMenuVisible = false;\n public newYearForm: UntypedFormGroup = this.fb.group({\n background: false,\n snow: false,\n garland: false,\n firework: false,\n });\n public readonly appConfigService = AppConfigService;\n\n private modalInstances: NgbModalRef[] = [];\n private configKeyStorage = 'tmt_config_new_year';\n private mouseListener: () => void | null = null;\n private clickListener: () => void | null = null;\n\n constructor(\n public app: AppService,\n public log: LogService,\n public authService: AuthService,\n public createMenuService: CreateMenuService,\n public chromeService: ChromeService,\n private wpNavigationService: NavigationService,\n private translate: TranslateService,\n private messages: MessageService,\n private transitionService: TransitionService,\n ngbModalConfig: NgbModalConfig,\n private modal: NgbModal,\n private updateService: UpdateService,\n private renderer: Renderer2,\n private zone: NgZone,\n @Inject(DOCUMENT) private document: Document,\n private fb: UntypedFormBuilder,\n ) {\n ngbModalConfig.backdrop = false;\n this.session = app.session;\n\n // Comment it on New Year:\n localStorage.setItem(\n this.configKeyStorage,\n JSON.stringify(this.newYearForm.value),\n );\n\n // Uncomment it on New Year:\n // if (localStorage.getItem(this.configKeyStorage)) {\n // this.newYearForm.patchValue(\n // JSON.parse(localStorage.getItem(this.configKeyStorage)),\n // );\n // }\n }\n\n public showAppMenu(event: MouseEvent): void {\n event.stopPropagation();\n this.isAppMenuVisible = true;\n }\n\n onAppMenuClosed() {\n this.isAppMenuVisible = false;\n }\n\n openHelp() {\n const beacon = (window as any).Beacon;\n if (beacon) {\n beacon('open');\n } else {\n this.messages.errorLocal('scout.scoutWasBlocked');\n }\n }\n\n signOut() {\n this.authService.signOutWithSessionDestroy();\n }\n\n // TODO: why the event?\n onMainResized(event: ResizedEvent) {\n this.chromeService.setMainAreaDimension();\n }\n\n public loginAsSubstitute() {\n this.modal.open(SelectingOfSubstituteModalComponent, { size: 'md' });\n }\n\n public stopSubstituting() {\n this.authService.stopSubstituting();\n }\n\n public userSettings() {\n this.modal.open(UserSettingsModalComponent, { size: 'md' });\n }\n\n ngOnInit(): void {\n this.wpNavigationService.navigation$.subscribe((navigation: Navigation) => {\n if (navigation === null) {\n return;\n }\n this.moduleDisplayName = this.translate.instant(\n navigation.applicationTitle,\n );\n });\n\n if (this.app.session.configuration.tenantIsReadOnly) {\n this.messages.message(\n this.translate.instant(\n 'shared.suspendedAttention.suspendedModeWarning',\n ),\n this.translate.instant('shared.suspendedAttention.attention'),\n );\n }\n\n // Some routes are redirected in start, and it leads to close any modals.\n\n setTimeout(() => {\n detectAnyAdblocker().then((detected) => {\n if (detected) {\n this.messages.message(\n this.translate.instant('shared.messages.disablePopupBlocker'),\n );\n }\n });\n }, 100);\n\n this.modal.activeInstances.subscribe((value) => {\n this.modalInstances = value;\n });\n\n this.transitionService.onSuccess(null, () => {\n if (\n !this.modalInstances.length ||\n this.modalInstances.some(\n (instance) => (instance.componentInstance as ModalForm).isSharedModal,\n )\n ) {\n return;\n }\n this.modal.dismissAll('Dismiss on state changing.');\n });\n\n this.updateService.run();\n }\n\n public ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.renderer.listen(this.appContent.nativeElement, 'scroll', () => {\n this.chromeService.scrollMainArea();\n });\n });\n\n const loader = this.document.querySelector('#tmt-loader');\n const loaderContainer = this.document.querySelector(\n '#tmt-loader-container',\n );\n\n this.renderer.addClass(loader, 'water-animation');\n this.renderer.addClass(loaderContainer, 'fade-animation');\n\n const loaderContainerListener = this.renderer.listen(\n loaderContainer,\n 'animationend',\n () => {\n this.renderer.removeChild(this.document, loaderContainer);\n loaderContainerListener();\n },\n );\n\n this.chromeService.setMainAreaScrollWidth();\n\n // Uncomment it on New Year:\n // this.newYearForm.valueChanges\n // .pipe(startWith(this.newYearForm.value))\n // .subscribe((values) => {\n // localStorage.setItem(this.configKeyStorage, JSON.stringify(values));\n\n // if (values['snow']) {\n // this.zone.runOutsideAngular(() => {\n // this.makeMagic();\n // });\n // } else {\n // this.dispelMagic();\n // }\n\n // if (values['firework']) {\n // this.zone.runOutsideAngular(() => {\n // this.makeFirework();\n // });\n // } else {\n // this.dispelFirework();\n // }\n // });\n }\n\n public toggleTheme(): void {\n const html = this.document.querySelector('html');\n\n this.renderer.setAttribute(\n html,\n 'data-bs-theme',\n html.dataset['bsTheme'] === 'dark' ? 'light' : 'dark',\n );\n }\n\n private dispelFirework(): void {\n if (this.clickListener) {\n this.clickListener();\n this.clickListener = null;\n }\n }\n\n private makeFirework(): void {\n const fireWork = new FireWork();\n this.clickListener = this.renderer.listen(\n this.document.body,\n 'click',\n (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const targetRect = target.getBoundingClientRect();\n\n if (target.tagName === 'BUTTON' && targetRect.width > 50) {\n fireWork.run(targetRect);\n }\n },\n );\n }\n\n private dispelMagic(): void {\n if (this.mouseListener) {\n this.mouseListener();\n this.mouseListener = null;\n }\n }\n\n private makeMagic(): void {\n this.dispelMagic();\n\n const iconClassName = 'bi-asterisk';\n const diffLimit = 75;\n const colors = ['#428bca', '#6da5d6', '#6699cc'];\n const lastPosition: Position = {\n x: null,\n y: null,\n };\n\n this.mouseListener = this.renderer.listen(\n this.document.body,\n 'mousemove',\n (event: MouseEvent) => {\n if (this.document.querySelectorAll(`.${iconClassName}`).length > 50) {\n return;\n }\n\n if (\n Math.abs(event.clientX - lastPosition.x) < diffLimit &&\n Math.abs(event.clientY - lastPosition.y) < diffLimit &&\n lastPosition.y !== null\n ) {\n return;\n }\n\n const star: HTMLElement = this.renderer.createElement('i');\n const starColor = colors[_.random(0, colors.length - 1)];\n const starFallHeight =\n event.clientX - lastPosition.x < 0\n ? _.random(40, 80)\n : _.random(-80, -40);\n\n this.renderer.addClass(star, 'bi');\n this.renderer.addClass(star, iconClassName);\n this.renderer.addClass(star, 'magic-star');\n this.renderer.setProperty(\n star,\n 'style',\n `--height: ${starFallHeight}px`,\n );\n this.renderer.setStyle(star, 'top', `${event.clientY}px`);\n this.renderer.setStyle(star, 'left', `${event.clientX}px`);\n this.renderer.setStyle(star, 'font-size', `${_.random(7.5, 10)}px`);\n this.renderer.setStyle(star, 'color', starColor);\n this.renderer.setStyle(star, 'text-shadow', `0 0 4px ${starColor}cc`);\n this.renderer.setStyle(star, 'animation-name', 'magic');\n this.renderer.setStyle(star, 'animation-iteration', '1');\n this.renderer.setStyle(star, 'animation-fill-mode', 'forwards');\n this.renderer.setStyle(\n star,\n 'animation-duration',\n `${_.random(1.5, 2.5)}s`,\n );\n\n this.renderer.appendChild(this.document.body, star);\n\n lastPosition.x = event.clientX;\n lastPosition.y = event.clientY;\n\n const starListener = this.renderer.listen(star, 'animationend', () => {\n star.remove();\n starListener();\n });\n },\n );\n }\n}\n","\n
\n \n \n \n\n
\n \n {{ moduleDisplayName }}\n
\n
\n \n\n
    \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n {{ item.title }}\n \n
\n \n\n \n \n\n \n \n\n \n
  • \n \n \n \n \n {{\n 'shared.helpMenu.help' | translate\n }}\n\n @if (appConfigService.config.beacon) {\n \n }\n\n \n\n
    \n\n
    \n {{ 'shared.helpMenu.build' | translate }}: {{ appConfigService.config.version }}\n
    \n
  • \n \n\n \n
  • \n \n \n \n \n \n \n

    \n {{ session.configuration.displayName }}
    \n {{ session.user.name }}
    \n {{ session.user.email }}\n

    \n
    \n\n \n \n\n \n {{ 'shared.userMenu.stopSubstituting' | translate }}\n \n\n
    \n \n \n
  • \n \n \n\n \n \n\n
    \n \n \n
    \n \n \n
    \n
    \n \n \n \n
    \n","import { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport {\n CurrencyPipe,\n DatePipe,\n DecimalPipe,\n PercentPipe,\n} from '@angular/common';\nimport {\n DEFAULT_CURRENCY_CODE,\n LOCALE_ID,\n NgModule,\n NgZone,\n inject,\n provideAppInitializer,\n} from '@angular/core';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport {\n HTTP_INTERCEPTORS,\n HttpClient,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { UIRouterModule, UrlService } from '@uirouter/angular';\nimport { NgIdleModule } from '@ng-idle/core';\nimport { BlockUIModule } from 'ng-block-ui';\n\nimport { ApiAuthInterceptor } from './core/interceptors/api-auth.interceptor';\nimport { ApiResponseInterceptor } from './core/interceptors/api-response.interceptor';\nimport { AppService } from './core/app.service';\nimport { NavigationService } from './core/navigation.service';\nimport { NotificationService } from './core/notification.service';\nimport { APP_STATES } from './app.states';\n\nimport { SharedModule } from './shared/shared.module';\nimport { AppComponent } from './app.component';\nimport { AnalyticsModule } from './analytics/analytics.module';\nimport { SettingsAppModule } from './settings-app/settings-app.module';\n\nimport { BooleanPipe } from './shared/pipes/boolean.pipe';\nimport { WorkPipe } from './shared/pipes/work.pipe';\nimport { BlockUIComponent } from './shared/components/chrome/block-ui/block-ui.component';\nimport { DebugAppModule } from './debug-app/debug-app.module';\nimport { withLocalStorage, withSessionStorage } from 'ngx-webstorage';\nimport { TimeDurationPipe } from './shared/pipes/time-duration.pipe';\nimport { CustomFieldValuePipe } from './shared/pipes/custom-field-value.pipe';\nimport { StopwatchService } from './core/stopwatch.service';\nimport { environment } from 'src/environments/environment';\nimport { SharedFeaturesModule } from './shared-features/shared-features.module';\nimport { QuickStartComponent } from './shared-features/quick-start/quick-start.component';\nimport { CookieService } from 'ngx-cookie-service';\nimport configData from '../../config.json';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { FinancePipe } from './shared/pipes/finance.pipe';\nimport { WpCurrencyPipe } from './shared/pipes/currency.pipe';\nimport { DurationPipe } from './shared/pipes/duration.pipe';\nimport { ZeroToNullPipe } from './shared/pipes/zero-to-null.pipe';\nimport { UnsignedPipe } from './shared/pipes/unsigned-pipe';\nimport { PercentPointPipe } from 'src/app/shared/pipes/percent-point.pipe';\nimport { WorkflowTasksModule } from './workflow-tasks/workflow-tasks.module';\nimport { CertificatesModule } from 'src/app/certificates/certificates.module';\nimport { BookingScheduleModule } from 'src/app/booking/booking-schedule/booking-schedule.module';\nimport { ResourceRequestsModule } from 'src/app/resource-requests/resource-requests.module';\nimport { ProjectSummaryModule } from 'src/app/project-summary/project-summary.module';\nimport { ExpensesRequestsModule } from 'src/app/expenses-requests/expenses-requests.module';\nimport { TimesheetsModule } from 'src/app/timesheets/timesheets.module';\nimport { TimeOffRequestsModule } from 'src/app/time-off-requests/time-off-requests.module';\nimport { TimeOffScheduleModule } from 'src/app/time-off-schedule/time-off-schedule.module';\nimport { TimeOffBalanceEntriesModule } from 'src/app/time-off-balance-entries/time-off-balance-entries.module';\nimport { ActsOfAcceptanceModule } from 'src/app/acts-of-acceptance/acts-of-acceptance.module';\nimport { FinanceModule } from 'src/app/finance/finance.module';\nimport { BillingModule } from 'src/app/billing/billing.module';\nimport { ClientsModule } from 'src/app/clients/clients.module';\nimport { ProjectsModule } from 'src/app/projects/projects.module';\nimport { GeneralPnlModule } from 'src/app/general-pnl/general-pnl.module';\nimport { NgxNl2brPipe } from 'ngx-nl2br';\nimport { SortablejsModule } from 'nxt-sortablejs';\nimport { WorkflowInstancesModule } from 'src/app/workflow-instances/workflow-instances.module';\nimport { ResourceSummaryModule } from 'src/app/resource-summary/resource-summary.module';\nimport { ProgramsModule } from 'src/app/programs/programs.module';\nimport { ResourcesModule } from 'src/app/resources/resources.module';\nimport { EmployeesModule } from 'src/app/employees/employees.module';\nimport { BoardsModule } from 'src/app/boards/boards.module';\nimport { IssuesModule } from 'src/app/issues/issues.module';\nimport { ContactsModule } from 'src/app/contacts/contacts.module';\nimport { DealsModule } from './deals/deal.module';\nimport { PhonePipe } from 'src/app/shared/pipes/phone.pipe';\nimport { InteractionsModule } from 'src/app/interactions/interactions.module';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { provideNgxWebstorage, withNgxWebstorageConfig } from 'ngx-webstorage';\n\nexport function initializeApp(\n appService: AppService,\n urlService: UrlService,\n zone: NgZone,\n navigationService: NavigationService, // Must be here for correct initialization\n) {\n return () =>\n appService.start().then(() => {\n // Запустить маршрутизатор.\n\n zone.runOutsideAngular(() => {\n urlService.listen();\n });\n urlService.sync();\n });\n}\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(\n http,\n './assets/i18n/',\n `.json?v=${configData.version}`,\n );\n}\n\nexport function getLanguage(appService: AppService) {\n return appService.currentCulture;\n}\n\nexport function getDefaultCurrencyCode(appService: AppService) {\n return appService.session.configuration.baseCurrencyCode;\n}\n\n@NgModule({\n declarations: [AppComponent, BlockUIComponent, QuickStartComponent],\n bootstrap: [AppComponent],\n imports: [\n BrowserModule,\n NoopAnimationsModule,\n SortablejsModule.forRoot({ animation: 0 }),\n NgbModule,\n NgIdleModule.forRoot(),\n BlockUIModule.forRoot({\n template: BlockUIComponent,\n delayStart: 250,\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: createTranslateLoader,\n deps: [HttpClient],\n },\n }),\n UIRouterModule.forRoot({\n states: APP_STATES,\n useHash: false,\n deferIntercept: true,\n otherwise: { state: 'start' },\n }),\n SharedModule,\n SharedFeaturesModule,\n ProjectsModule,\n ProgramsModule,\n ClientsModule,\n ContactsModule,\n DealsModule,\n InteractionsModule,\n BillingModule,\n AnalyticsModule,\n SettingsAppModule,\n WorkflowTasksModule,\n IssuesModule,\n BoardsModule,\n CertificatesModule,\n EmployeesModule,\n ResourcesModule,\n BookingScheduleModule,\n ResourceRequestsModule,\n ResourceSummaryModule,\n ProjectSummaryModule,\n ExpensesRequestsModule,\n TimesheetsModule,\n TimeOffRequestsModule,\n TimeOffScheduleModule,\n TimeOffBalanceEntriesModule,\n ActsOfAcceptanceModule,\n FinanceModule,\n GeneralPnlModule,\n WorkflowInstancesModule,\n ...(environment.production ? [] : [DebugAppModule]),\n ServiceWorkerModule.register('service-worker.js', {\n registrationStrategy: 'registerImmediately',\n }),\n ],\n providers: [\n AppService,\n NotificationService,\n BooleanPipe,\n DatePipe,\n WorkPipe,\n PhonePipe,\n DurationPipe,\n WpCurrencyPipe,\n ZeroToNullPipe,\n UnsignedPipe,\n CustomFieldValuePipe,\n TimeDurationPipe,\n DecimalPipe,\n CurrencyPipe,\n FinancePipe,\n PercentPipe,\n PercentPointPipe,\n NgxNl2brPipe,\n StopwatchService,\n NavigationService,\n provideAppInitializer(() => {\n const initializerFn = initializeApp(\n inject(AppService),\n inject(UrlService),\n inject(NgZone),\n inject(NavigationService),\n );\n return initializerFn();\n }),\n provideNgxWebstorage(\n withNgxWebstorageConfig({\n prefix: 'wp',\n separator: '_',\n caseSensitive: true,\n }),\n withLocalStorage(),\n withSessionStorage(),\n ),\n {\n provide: LOCALE_ID,\n deps: [AppService],\n useFactory: getLanguage,\n },\n {\n provide: DEFAULT_CURRENCY_CODE,\n deps: [AppService],\n useFactory: getDefaultCurrencyCode,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiAuthInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiResponseInterceptor,\n multi: true,\n },\n CookieService,\n provideHttpClient(withInterceptorsFromDi()),\n ],\n})\nexport class AppModule {}\n","import { StateService, Transition } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateBuilderService } from 'src/app/core/state-builder.service';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\n\nexport const APP_STATES = [\n {\n name: 'start',\n url: '/',\n\n redirectTo: (trans) => {\n const app = trans.injector().get(AppService);\n if (\n app.checkPermission('TimeSheet', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.timesheets)\n ) {\n return {\n state: 'currentTimesheet',\n params: { navigation: 'my.currentTimesheet' },\n };\n } else {\n return {\n state: 'workflowTasks',\n params: { navigation: 'my.workflowTasksAll', view: 'my-all' },\n };\n }\n },\n },\n\n {\n name: 'my',\n url: '/my',\n redirectTo: 'start',\n },\n\n {\n name: 'team',\n url: '/team',\n redirectTo: (trans) => {\n const app = trans.injector().get(AppService);\n if (app.checkFeature(Feature.timesheets)) {\n return {\n state: 'timesheets',\n params: { navigation: 'team.timesheetsAll', view: 'team-all' },\n };\n } else {\n return {\n state: 'profiles',\n params: { navigation: 'team.profiles' },\n };\n }\n },\n },\n\n {\n name: 'notification',\n url: '/notification-url/{entityId:guid}',\n resolve: [\n {\n token: 'settingsAppInitializer',\n deps: [DataService, StateService, Transition, StateBuilderService],\n resolveFn: StateHelper.redirectToNotificationUrl,\n },\n ],\n },\n {\n name: 'finance',\n url: '/finance',\n redirectTo: {\n state: 'accountingEntries',\n params: { navigation: 'finance.accountingEntries' },\n },\n },\n\n {\n name: 'billing',\n url: '/billing',\n redirectTo: {\n state: 'billingSummary',\n params: { navigation: 'billing.summary' },\n },\n },\n\n {\n name: 'analytics',\n url: '/analytics',\n redirectTo: {\n state: 'reportBuilder',\n params: { navigation: 'analytics.reportBuilder' },\n },\n },\n];\n\nexport const ROUTE_DEFAULT_PARAMS: any = {\n type: 'json',\n dynamic: true,\n array: true,\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-billing-summary-filter',\n templateUrl: './billing-summary-filter.component.html',\n styleUrl: './billing-summary-filter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BillingSummaryFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n public detailsForm = this.fb.group({\n period: [null],\n states: [null],\n withoutInvoices: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.service.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { BillingSummaryFilterComponent } from './billing-summary-filter.component';\n\n@Injectable()\nexport class BillingSummaryFilterService extends FilterService {\n public override component: Type =\n BillingSummaryFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = false;\n public override placeholder = 'billing.summary.filter.placeholder';\n\n public override customCriteriaCount: Record number> = {\n withoutInvoices: () =>\n this.stateConditionExist() ? 0 : this.withoutInvoicesCount,\n states: () => (this.stateConditionExist() ? 1 : 0),\n };\n\n private get withoutInvoicesCount(): number {\n if (!this.values.states) {\n return +this.values.withoutInvoices;\n }\n const isAllStatesSelected =\n this.values.states[Object.keys(this.values.states)[0]]?.selected;\n return this.values.withoutInvoices\n ? +!isAllStatesSelected\n : +isAllStatesSelected;\n }\n}\n","import {\n Component,\n OnInit,\n AfterViewInit,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { InvoiceCreationComponent } from '../invoices/creation/invoice-creation.component';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NavigationItem } from 'src/app/shared/models/navigation/navigation';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UntypedFormArray } from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { BillingSummaryFilterService } from './billing-summary-filter/billing-summary-filter.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'wp-billing-summary',\n templateUrl: 'billing-summary.component.html',\n styleUrls: ['billing-summary.component.scss'],\n providers: [\n { provide: FilterService, useClass: BillingSummaryFilterService },\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class BillingSummaryComponent implements OnInit, AfterViewInit {\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n clientTotals: true,\n commands: [\n {\n name: 'reload',\n allowedFn: () => true,\n handlerFn: () => this.reload(),\n },\n {\n name: 'setUserView',\n allowedFn: () => true,\n handlerFn: () => this.setUserView(),\n },\n ],\n view: this.listService.getGridView(),\n };\n public header: string;\n public formArray = new UntypedFormArray([]);\n\n private filterValues: any;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n private app: AppService,\n private listService: ListService,\n private navigationService: NavigationService,\n private translate: TranslateService,\n private data: DataService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private notification: NotificationService,\n private filterService: FilterService,\n ) {\n this.navigationService.navigationItem$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((item: NavigationItem) => {\n this.header = this.translate.instant(item.header);\n });\n\n actions.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n public reload() {\n this.gridService.setLoadingState(true);\n\n const query = this.listService.getODataQuery(0, 500);\n query.orderBy = 'organization/name';\n query.filter = null;\n\n const states = [];\n for (const stateName in this.filterValues.states) {\n if (this.filterValues.states[stateName].selected) {\n states.push(this.filterValues.states[stateName].id);\n }\n }\n const filters = {\n withoutInvoices: this.filterValues.withoutInvoices ?? false,\n stateIds: JSON.stringify(states),\n from: this.filterValues?.period?.from ?? null,\n to: this.filterValues?.period?.to ?? null,\n searchTerm: `'${this.filterValues?.text.toLowerCase()}'`,\n };\n this.data\n .collection('Invoices')\n .function('GetBillingInfo')\n .query(filters, query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (rows: any[]) => {\n this.formArray.clear();\n rows.forEach((row) => {\n const group = this.listService.getFormGroupForRow(row);\n this.formArray.push(group);\n });\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n }\n\n public setUserView() {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.reload();\n },\n () => null,\n );\n }\n\n private create = () => {\n const ref = this.modalService.open(InvoiceCreationComponent);\n const instance = ref.componentInstance as InvoiceCreationComponent;\n instance.client = this.gridService.selectedGroupValue.organization;\n instance.project = this.gridService.selectedGroupValue.project;\n };\n\n ngOnInit() {\n this.filterService.values$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((values) => {\n this.filterValues = values;\n this.reload();\n });\n this.gridService.setLoadingState(true);\n\n this.actions.set([\n {\n title: 'billing.invoices.list.actions.create',\n hint: 'billing.invoices.list.actions.create',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'Invoice',\n PermissionType.Modify,\n ),\n handler: this.create,\n },\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Invoice', PermissionType.Modify);\n });\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row) => {\n this.actions.action('create').isShown = !!row;\n });\n }\n\n ngAfterViewInit(): void {\n this.filterValues = this.filterService.values;\n this.reload();\n }\n}\n","\n
    \n \n \n \n \n
    \n\n@if (!(gridService.loading$ | async)) {\n \n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BillingSummaryComponent } from './billing-summary.component';\nimport { BILLING_SUMMARY_LIST } from 'src/app/shared/lists/billing-summary.list';\nimport { BillingSummaryFilterComponent } from './billing-summary-filter/billing-summary-filter.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [BillingSummaryComponent, BillingSummaryFilterComponent],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'billingSummary',\n url: '/billing-summary?{navigation}',\n component: BillingSummaryComponent,\n params: {\n navigation: 'billing.summary',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: BILLING_SUMMARY_LIST },\n ],\n },\n ],\n }),\n ],\n})\nexport class BillingSummaryModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { InvoicesModule } from './invoices/invoices.module';\nimport { BillingSummaryModule } from './billing-summary/billing-summary.module';\n\n@NgModule({\n imports: [CommonModule, SharedModule, InvoicesModule, BillingSummaryModule],\n})\nexport class BillingModule {}\n","import {\n Component,\n OnInit,\n Input,\n ViewChild,\n ElementRef,\n OnDestroy,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { InvoiceCardService } from '../invoice-card.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { DatePipe } from '@angular/common';\nimport { DateService } from 'src/app/core/date.service';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { GroupingField } from '../shared/grouping-field.enum';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NonCustomInvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-card-types.type';\nimport { InvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-line-type.enum';\n\n/**\n * Represents the Add Invoice Time/Expense lines Modal window content.\n * */\n@Component({\n selector: 'wp-adding-lines-modal',\n templateUrl: './adding-lines-modal.component.html',\n styleUrls: ['./adding-lines-modal.component.scss'],\n standalone: false,\n})\nexport class AddingLinesModalComponent implements OnInit, OnDestroy {\n @ViewChild('tbl') tbl: ElementRef;\n @Input() type: NonCustomInvoiceLineType;\n @Input() grouping: string;\n @Input() organizationId: string;\n @Input() projectId: string;\n @Input() currencyCode: string;\n\n public isSaving: boolean;\n public isLoading: boolean;\n public header: string;\n public groupingMode: boolean;\n\n public lines: any[] = [];\n public allSelected: boolean;\n\n public scrollContainerStyle: Dictionary = {};\n public headerTableStyle: Dictionary = {\n display: 'none',\n };\n\n public filterForm = this.fb.group({ period: null });\n\n public get fields(): GroupingField[] {\n return (this.grouping ? this.grouping.split(',') : []) as GroupingField[];\n }\n\n public get hasSelectedLines(): boolean {\n return !this.lines.every((line) => !line.isSelected);\n }\n\n private _dataFunction: string;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public cardService: InvoiceCardService,\n private activeModal: NgbActiveModal,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private notification: NotificationService,\n private datePipe: DatePipe,\n private dateService: DateService,\n ) {}\n\n ngOnInit(): void {\n switch (this.type) {\n case InvoiceLineType.Time:\n this.header = 'billing.invoices.card.addingLinesModal.header.time';\n this._dataFunction = 'GetAvailableTimeLines';\n break;\n case InvoiceLineType.Expense:\n this.header = 'billing.invoices.card.addingLinesModal.header.expenses';\n this._dataFunction = 'GetAvailableExpenseLines';\n break;\n }\n\n const settings = this.cardService.getInvoiceSettings();\n this.filterForm.patchValue(settings);\n\n this.filterForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.loadLines());\n this.filterForm.controls.period.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() =>\n this.cardService.updateStoredPeriod(\n this.filterForm.controls.period.value,\n ),\n );\n this.loadLines();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public selectAll() {\n this.lines.forEach((line) => (line.isSelected = this.allSelected));\n }\n\n public setGroupingMode(groupingMode: boolean) {\n this.groupingMode = groupingMode;\n }\n\n public onSaveGrouping(grouping: string) {\n this.groupingMode = false;\n this.grouping = grouping;\n this.loadLines();\n }\n\n public resize(event: ResizedEvent) {\n this.scrollContainerStyle['height'] = event.newRect.height + 'px';\n\n this.headerTableStyle['display'] = 'table';\n this.headerTableStyle['width'] =\n (this.tbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n public getGroupingTitle() {\n if (!this.grouping) {\n return this.translate.instant(\n 'billing.invoices.card.addingLinesModal.settings.grouping',\n );\n }\n\n return this.grouping\n .split(',')\n .map((f) => this.cardService.getFieldLabel(f as GroupingField))\n .join(' > ');\n }\n\n public getFieldValue(line: any, field: GroupingField) {\n switch (field) {\n case GroupingField.date:\n return this.datePipe.transform(line.date, 'shortDate');\n\n case GroupingField.description:\n return line.description;\n\n case GroupingField.project:\n return line.project.name;\n\n case GroupingField.projectTask:\n return line.projectTask.name;\n\n case GroupingField.user:\n return line.user.name;\n\n case GroupingField.role:\n return line.role.name;\n\n case GroupingField.account:\n return line.account.name;\n\n case GroupingField.projectCostCenter:\n return line.projectCostCenter.name;\n\n case GroupingField.projectTariff:\n return line.projectTariff.name;\n\n default:\n return null;\n }\n }\n\n public getGridColumnsCount(): number {\n return this.fields.length === 0 ? 5 + 1 : 5 + this.fields.length;\n }\n\n public ok() {\n const lines = this.lines.filter((line) => line.isSelected);\n\n lines.forEach((line) => {\n line.id = Guid.generate();\n line.periodStart = this.filterForm.value.period?.from ?? null;\n line.periodFinish = this.filterForm.value.period?.to ?? null;\n });\n this.activeModal.close(lines);\n }\n\n public cancel() {\n this.activeModal.dismiss();\n }\n\n private loadLines() {\n this.lines = [];\n this.isLoading = true;\n\n const period = this.filterForm.value.period as DatePeriod;\n if (period && period.periodType !== DatePeriodType.Custom) {\n const datePair = this.dateService.getDatePair(period.periodType);\n period.to = datePair.to;\n period.from = datePair.from;\n }\n\n const params: Dictionary = {\n dateFrom: period?.from ?? null,\n dateTo: period?.to ?? null,\n organizationId: this.organizationId,\n projectId: this.projectId ?? null,\n grouping: `'${this.grouping}'`,\n };\n\n this.data\n .collection('Invoices')\n .function(this._dataFunction)\n .query(params)\n .subscribe({\n next: (data) => {\n this.lines = data;\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n}\n","
    \n
    \n

    \n {{ header | translate }}\n

    \n \n
    \n
    \n \n
    \n
    \n \n {{ getGroupingTitle() }}\n

    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n \n \n \n \n {{ cardService.getFieldLabel(field) }}\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {{ 'billing.invoices.card.columns.unit.header' | translate }}\n \n {{ 'billing.invoices.card.columns.rate.header' | translate }}\n \n {{ 'billing.invoices.card.columns.quantity.header' | translate }}\n \n {{ 'billing.invoices.card.columns.amount.header' | translate }}\n
    \n\n
    \n \n \n \n \n \n {{ cardService.getFieldLabel(field) }}\n \n \n \n \n \n \n \n \n \n \n \n \n {{ getFieldValue(line, field) }}\n \n \n \n {{ line.rate | wpCurrency: currencyCode }}\n \n \n \n {{ line.amount | wpCurrency: currencyCode }}\n \n \n \n \n \n \n \n
    \n {{ 'billing.invoices.card.columns.unit.header' | translate }}\n \n {{ 'billing.invoices.card.columns.rate.header' | translate }}\n \n {{ 'billing.invoices.card.columns.quantity.header' | translate }}\n \n {{ 'billing.invoices.card.columns.amount.header' | translate }}\n
    \n
    \n \n
    \n
    \n {{ line.unit }}\n \n {{ line.quantity | number: '1.0-2' }}\n
    \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n
    \n\n
    \n {{ 'billing.invoices.card.addingLinesModal.showFirst250' | translate }}\n
    \n\n \n
    \n
    \n
    \n\n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'billing.invoices.card.addingLinesModal.actions.addSelectedLines' | translate }}\n \n \n
    \n
    \n
    \n
    \n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { InvoiceCardService } from '../../invoice-card.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { GroupingField } from '../../shared/grouping-field.enum';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NonCustomInvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-card-types.type';\nimport { InvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-line-type.enum';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-grouping-settings',\n templateUrl: './grouping-settings.component.html',\n styleUrls: ['./grouping-settings.component.scss'],\n standalone: false,\n})\nexport class GroupingSettingsComponent implements OnInit, OnDestroy {\n @Input() grouping: string;\n @Input() type: NonCustomInvoiceLineType;\n\n @Output() canceled = new EventEmitter();\n @Output() saved = new EventEmitter();\n\n public get allFields(): GroupingField[] {\n switch (this.type) {\n case InvoiceLineType.Time:\n return this.cardService.allTimeFields;\n\n case InvoiceLineType.Expense:\n return this.cardService.allExpensesFields;\n }\n }\n\n public get hasAddButton(): boolean {\n return this.allFields.length > this.columns.length;\n }\n\n public columns = this.fb.array([]);\n\n public availableFields: any[];\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public cardService: InvoiceCardService,\n private message: MessageService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n const fields = (\n this.grouping ? this.grouping.split(',') : []\n ) as GroupingField[];\n\n fields.forEach((field) => {\n this.columns.push(this.fb.control(field));\n });\n\n this.updateControls();\n\n this.columns.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.updateControls());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public trackById = (index: number, row: any): string => row.id;\n\n private getAvailableFields(\n includeField?: GroupingField,\n ): { field: GroupingField; label: string }[] {\n return this.allFields\n .filter(\n (field) =>\n (this.columns.value as GroupingField[]).every(\n (selectedField) => selectedField !== field,\n ) || includeField === field,\n )\n .map((f) => ({\n field: f,\n label: this.cardService.getFieldLabel(f),\n }));\n }\n\n public updateControls() {\n this.availableFields = [];\n (this.columns.value as GroupingField[]).forEach((field, index) => {\n this.availableFields[index] = this.getAvailableFields(field);\n });\n }\n\n public remove(index: number) {\n this.columns.removeAt(index);\n }\n\n public add() {\n const availableField = this.getAvailableFields()[0];\n this.columns.push(this.fb.control(availableField.field));\n }\n\n public save() {\n this.message\n .confirmLocal(\n 'billing.invoices.card.addingLinesModal.setGroupingConfirmation',\n )\n .then(\n () => {\n this.grouping = this.columns.value.join(',');\n const resetGrouping = {\n grouping: this.grouping,\n type: this.type,\n };\n\n this.cardService.resetGrouping(resetGrouping).then(() => {\n this.saved.emit(this.grouping);\n });\n },\n () => null,\n );\n }\n\n public cancel() {\n this.canceled.emit();\n }\n}\n","

    \n {{ 'billing.invoices.card.addingLinesModal.grouping.header' | translate }}\n

    \n

    \n {{ 'billing.invoices.card.addingLinesModal.grouping.help' | translate }}\n

    \n\n
    \n
    \n \n\n \n
    \n\n \n
    \n\n
    \n \n \n
    \n","import { Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n AbstractControl,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Invoice } from 'src/app/shared/models/entities/billing/invoice.model';\nimport { InvoiceLine } from 'src/app/shared/models/entities/billing/invoice-line.model';\nimport { InvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-line-type.enum';\nimport { VatRate } from 'src/app/shared/models/entities/billing/vat-rate.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AddingLinesModalComponent } from './adding-lines-modal/adding-lines-modal.component';\nimport { InvoiceCardService } from './invoice-card.service';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { sortBy } from 'lodash';\nimport { GroupingField } from './shared/grouping-field.enum';\nimport { Subject } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NonCustomInvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-card-types.type';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\n\n/**\n * Represents Invoice Card content.\n * */\n@Component({\n selector: 'wp-invoice-card',\n templateUrl: './invoice-card.component.html',\n styleUrls: ['./invoice-card.component.scss'],\n providers: [\n AutosaveService,\n InvoiceCardService,\n FormHeaderService,\n { provide: META_ENTITY_TYPE, useValue: 'Invoice' },\n LifecycleService,\n ],\n standalone: false,\n})\nexport class InvoiceCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public activeTab: string;\n public isSaving = false;\n public readonly: boolean;\n public invoice: Invoice;\n public paidStateId = Invoice.paidStateId;\n\n public billingType = ProjectBillingType;\n\n public totalAmount: number;\n public vatLabel: string;\n public vatAmount: number;\n\n /** Invoice Line types. */\n public get invoiceLineTypes() {\n return {\n // Note: keep this type cast to use in HTML templates.\n time: InvoiceLineType.Time,\n expense: InvoiceLineType.Expense,\n custom: InvoiceLineType.Custom,\n };\n }\n\n /** Determines whether VAT is filled and not applied or not. */\n public get hasVat(): boolean {\n return (\n this.form.controls.invoiceTemplate.value?.vatRate &&\n this.form.controls.invoiceTemplate.value.vatRate.code !==\n VatRate.notApply.code\n );\n }\n\n /** Determines whether VAT is applied or not. */\n public get useVat(): boolean {\n return !!this.form.controls.invoiceTemplate.value?.vatRate;\n }\n\n /** Invoice Time lines. */\n public get timeLines(): UntypedFormArray {\n return this.form.controls.timeLines as UntypedFormArray;\n }\n\n /** Invoice Expense lines. */\n public get expenseLines(): UntypedFormArray {\n return this.form.controls.expenseLines as UntypedFormArray;\n }\n\n /** Invoice Custom lines. */\n public get customLines(): UntypedFormArray {\n return this.form.controls.customLines as UntypedFormArray;\n }\n\n /** Determines whether Invoice has lines or not. */\n public get hasLines(): boolean {\n return (\n this.timeLines.length > 0 ||\n this.customLines.length > 0 ||\n this.expenseLines.length > 0\n );\n }\n\n /** Invoice Template OData query. */\n public get templateQuery(): any {\n return {\n select: ['id', 'name'],\n expand: { vatRate: { select: ['id', 'code', 'name', 'rate'] } },\n };\n }\n\n /**\n * Currency code.\n * Can be the Base or the Project one.\n * */\n public get currencyCode(): string {\n return this._currencyCode;\n }\n\n public form = this.fb.group({\n invoiceTemplate: [null, Validators.required],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n billingAddress: ['', Validators.maxLength(Constants.formTextMaxLength)],\n number: ['', Validators.maxLength(50)],\n issueDate: null,\n paymentDueDate: null,\n paymentDate: null,\n outerNotes: ['', Validators.maxLength(Constants.formTextMaxLength)],\n innerNotes: ['', Validators.maxLength(Constants.formTextMaxLength)],\n timeLines: this.fb.array([]),\n customLines: this.fb.array([]),\n expenseLines: this.fb.array([]),\n });\n\n private _currencyCode: string;\n private _projectCurrency: Currency;\n private _baseCurrencyCode: string;\n private _isCustomCurrency = false;\n private _isProgramValueChange = false;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n private invoiceReloaded$ = new Subject();\n\n constructor(\n public service: InvoiceCardService,\n public translate: TranslateService,\n public autosave: AutosaveService,\n private app: AppService,\n private formHeaderService: FormHeaderService,\n private currenciesService: CurrenciesService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private actionService: ActionPanelService,\n private data: DataService,\n private modalService: NgbModal,\n private infoPopupService: InfoPopupService,\n private wpCurrency: WpCurrencyPipe,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n this._baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n this._currencyCode = this._baseCurrencyCode;\n\n this.initMainMenu();\n this.initCardSubscriptions();\n this.service.entityId = this.entityId;\n this.service.load();\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n this.destroyed$.next();\n this.invoiceReloaded$.next();\n }\n\n /**\n * Opens Invoice author properties popup.\n * */\n public openUserInfo() {\n const userId = this.invoice.user.id;\n const target = document.getElementById('author');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Opens Invoice project properties popup.\n * */\n public openProjectInfo() {\n const projectId = this.invoice.project.id;\n const target = document.getElementById('project');\n this.infoPopupService.open({\n target,\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Add Time/Expense lines button click event handler.\n * Opens Modal window to view and add Invoice Time/Expense lines.\n * */\n public addLines(lineType: NonCustomInvoiceLineType) {\n this.autosave.save().then(\n () => {\n const ref = this.modalService.open(AddingLinesModalComponent, {\n size: 'full',\n injector: this.injector,\n });\n const instance = ref.componentInstance as AddingLinesModalComponent;\n instance.type = lineType;\n switch (lineType) {\n case this.invoiceLineTypes.time:\n instance.grouping = this.invoice.timeLinesGrouping;\n break;\n case this.invoiceLineTypes.expense:\n instance.grouping = this.invoice.expenseLinesGrouping;\n break;\n }\n instance.organizationId = this.invoice.organization.id;\n instance.projectId = this.invoice.project?.id;\n instance.currencyCode = this._currencyCode;\n\n ref.result.then(\n (lines: []) => {\n lines.forEach((line) => {\n const group = this.getLineGroup(line);\n switch (lineType) {\n case this.invoiceLineTypes.time:\n this.timeLines.push(group);\n break;\n case this.invoiceLineTypes.expense:\n this.expenseLines.push(group);\n break;\n }\n });\n\n this.service.reload();\n },\n () => null,\n );\n },\n () => null,\n );\n }\n\n /**\n * Creates New Invoice custom line.\n * */\n public createCustomLine() {\n const group = this.getLineGroup();\n this.customLines.push(group);\n this.service.onCustomLineAdded(group);\n if (this._isCustomCurrency) {\n this.refreshXr(group);\n }\n }\n\n /**\n * Inits Main menu.\n * */\n private initMainMenu() {\n this.actionService.set([\n {\n name: 'view',\n title: 'billing.invoices.card.actions.view.label',\n hint: 'billing.invoices.card.actions.view.hint',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n iconClass: 'bi bi-file-pdf',\n handler: () => this.service.downloadInvoice(this.invoice),\n },\n {\n name: 'delete',\n title: 'billing.invoices.card.actions.delete.label',\n hint: 'billing.invoices.card.actions.delete.hint',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.service.deleteInvoice(),\n },\n ]);\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.reload();\n });\n this.actionService.setHasAutosave(true);\n }\n\n /**\n * Inits Card level subscriptions.\n * */\n private initCardSubscriptions() {\n this.service.invoice$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((invoice) => this.onInvoiceLoaded(invoice));\n\n this.autosave.builderFn = this.autoSaveBuilderFn;\n\n this.autosave.savingFn = (data: any) =>\n this.service.collection\n .entity(this.entityId)\n .update(data, { withResponse: true });\n\n this.autosave.onSave\n .pipe(takeUntil(this.destroyed$))\n .subscribe((data: any) => {\n this.invoice.rowVersion = data.rowVersion;\n });\n\n this.autosave.onError\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.service.load());\n\n this.service.resetGrouping$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((resetGrouping) => {\n switch (resetGrouping.type) {\n case this.invoiceLineTypes.time:\n this.invoice.timeLinesGrouping = resetGrouping.grouping;\n this.timeLines.clear();\n break;\n case this.invoiceLineTypes.expense:\n this.invoice.expenseLinesGrouping = resetGrouping.grouping;\n this.expenseLines.clear();\n break;\n }\n\n this.autosave.saveLazy();\n });\n\n this.service.calculateTotals$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.calculateTotals();\n });\n }\n\n /**\n * Builds entity for Auto Save service.\n *\n * @returns Entity to save.\n * */\n private autoSaveBuilderFn = () => {\n const formValue = this.form.getRawValue() as Invoice;\n const invoice = {\n id: this.invoice.id,\n rowVersion: this.invoice.rowVersion,\n name: this.invoice.name,\n organizationId: this.invoice.organization.id,\n projectId: this.invoice.project?.id,\n description: formValue.description,\n billingAddress: formValue.billingAddress,\n innerNotes: formValue.innerNotes,\n outerNotes: formValue.outerNotes,\n number: formValue.number,\n paymentDueDate: formValue.paymentDueDate,\n issueDate: formValue.issueDate,\n expenseLinesGrouping: this.invoice.expenseLinesGrouping,\n timeLinesGrouping: this.invoice.timeLinesGrouping,\n invoiceTemplateId: this.form.controls.invoiceTemplate.value.id,\n lines: [] as any[],\n };\n\n const getBaseLine = (formLine: any): any => ({\n id: formLine.id,\n invoiceId: this.invoice.id,\n description: formLine.description,\n projectId: formLine.project?.id ?? null,\n periodStart: formLine.periodStart,\n periodFinish: formLine.periodFinish,\n period: formLine.period,\n date: formLine.date,\n projectTaskId: formLine.projectTask?.id ?? null,\n projectCostCenterId: formLine.projectCostCenter?.id ?? null,\n projectTariffId: formLine.projectTariff?.id ?? null,\n roleId: formLine.role?.id ?? null,\n userId: formLine.user?.id ?? null,\n quantity: formLine.quantity,\n unit: formLine.unit,\n rate: formLine.rate.value,\n amount: formLine.amount.value,\n exchangeRate: formLine.exchangeRate,\n amountBC: formLine.amountBC.value,\n accountId: formLine.account?.id ?? null,\n });\n\n this.timeLines.getRawValue().forEach((formLine) => {\n const line = getBaseLine(formLine);\n line.lineType = this.invoiceLineTypes.time;\n invoice.lines.push(line);\n });\n\n this.expenseLines.getRawValue().forEach((formLine) => {\n const line = getBaseLine(formLine);\n line.lineType = this.invoiceLineTypes.expense;\n invoice.lines.push(line);\n });\n\n this.customLines.getRawValue().forEach((formLine) => {\n const line = getBaseLine(formLine);\n line.lineType = this.invoiceLineTypes.custom;\n invoice.lines.push(line);\n });\n\n return invoice;\n };\n\n /**\n * Invoice load event handler.\n *\n * @param invoice Invoice.\n * */\n private onInvoiceLoaded(invoice: Invoice) {\n this.invoiceReloaded$.next();\n this.invoice = invoice;\n\n this.autosave.disabled = true;\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.form.patchValue(invoice);\n\n this.readonly = !invoice.editAllowed;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n invoice.editAllowed\n ? this.form.enable({ emitEvent: false })\n : this.form.disable({ emitEvent: false });\n\n this.timeLines.clear();\n this.expenseLines.clear();\n this.customLines.clear();\n\n this._projectCurrency = this.invoice.project?.currency;\n this._currencyCode =\n this._projectCurrency?.alpha3Code ?? this._baseCurrencyCode;\n this._isCustomCurrency = this._currencyCode !== this._baseCurrencyCode;\n\n this.getSortedLines(\n invoice.timeLinesGrouping,\n invoice.lines,\n this.invoiceLineTypes.time,\n ).forEach((line) => {\n const group = this.getLineGroup(line);\n this.timeLines.push(group);\n });\n\n this.getSortedLines(\n invoice.expenseLinesGrouping,\n invoice.lines,\n this.invoiceLineTypes.expense,\n ).forEach((line) => {\n const group = this.getLineGroup(line);\n this.expenseLines.push(group);\n });\n\n this.getSortedLines(\n invoice.grouping,\n invoice.lines,\n this.invoiceLineTypes.custom,\n ).forEach((line) => {\n const group = this.getLineGroup(line);\n this.customLines.push(group);\n });\n\n if (this._isCustomCurrency) {\n this.form.controls.issueDate.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => {\n this.refreshXr();\n });\n }\n\n this.form.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => this.autosave.saveLazy());\n\n this.form.controls.number.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => {\n this.invoice.name = this.translate.instant(\n 'billing.invoices.card.nameTemplate',\n {\n number: this.form.controls.number.value,\n project:\n this.invoice.project?.name ?? this.invoice.organization?.name,\n },\n );\n });\n\n this.form.controls.invoiceTemplate.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => {\n this.calculateTotals();\n this.toggleActions();\n });\n\n this.autosave.disabled = false;\n this.toggleActions();\n this.calculateTotals();\n }\n\n /**\n * Gets Invoice line form group for Time/Expense lines.\n *\n * @param line Invoice line.\n * @returns Invoice line form group.\n * */\n private getLineGroup(line?: InvoiceLine): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n lineType: this.invoiceLineTypes.custom,\n amount: [\n {\n value: 0,\n currencyCode: this._currencyCode,\n },\n Validators.required,\n ],\n exchangeRate: [1, Validators.required],\n amountBC: [\n {\n value: 0,\n currencyCode: this._baseCurrencyCode,\n },\n ],\n rate: [\n {\n value: 0,\n currencyCode: this._currencyCode,\n },\n Validators.required,\n ],\n quantity: [0, Validators.required],\n originalAmount: [\n {\n value: 0,\n currencyCode: this._currencyCode,\n },\n ],\n originalRate: [\n {\n value: 0,\n currencyCode: this._currencyCode,\n },\n ],\n originalQuantity: 0,\n unit: [''],\n project: null,\n projectTask: null,\n projectCostCenter: null,\n projectTariff: null,\n user: null,\n role: null,\n account: null,\n description: '',\n originalDescription: '',\n date: null,\n periodStart: null,\n periodFinish: null,\n empty: '', // Dummy for filler cell.\n });\n\n group.controls.amount.disable();\n group.controls.amountBC.disable();\n\n if (line) {\n group.patchValue(line);\n group.controls.amount.setValue({\n value: line.amount,\n currencyCode: this._currencyCode,\n });\n group.controls.amountBC.setValue({\n value: line.amountBC,\n currencyCode: this._baseCurrencyCode,\n });\n group.controls.rate.setValue({\n value: line.rate,\n currencyCode: this._currencyCode,\n });\n group.controls.originalAmount.setValue({\n value: line.originalAmount,\n currencyCode: this._currencyCode,\n });\n group.controls.originalRate.setValue({\n value: line.originalRate,\n currencyCode: this._currencyCode,\n });\n }\n\n group.controls.rate.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => {\n this.setAmounts(group);\n this.calculateTotals();\n });\n\n group.controls.quantity.valueChanges\n .pipe(takeUntil(this.invoiceReloaded$))\n .subscribe(() => {\n this.setAmounts(group);\n this.calculateTotals();\n });\n\n if (this._isCustomCurrency) {\n group.controls.exchangeRate.enable();\n group.controls.exchangeRate.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntil(this.invoiceReloaded$),\n )\n .subscribe(() => this.setAmounts(group));\n } else {\n group.controls.exchangeRate.disable();\n }\n\n return group;\n }\n\n /**\n * Updates Actions visibility state.\n * */\n private toggleActions() {\n this.actionService.actions.forEach((a) =>\n this.actionService.action(a.name).hide(),\n );\n\n this.actionService.action('view').isShown =\n this.form.getRawValue().invoiceTemplate;\n }\n\n /**\n * Calculates Invoice total sum values.\n * */\n private calculateTotals() {\n const formValue = this.form.getRawValue();\n\n const timeLineTotal = this.timeLines\n .getRawValue()\n .reduce((acc, line) => (acc += line.amount.value), 0);\n\n const expenseLineTotal = this.expenseLines\n .getRawValue()\n .reduce((acc, line) => (acc += line.amount.value), 0);\n\n const customLineTotal = this.customLines\n .getRawValue()\n .reduce((acc, line) => (acc += line.amount.value), 0);\n\n this.totalAmount = timeLineTotal + expenseLineTotal + customLineTotal;\n this.invoice.totalAmount = this.totalAmount;\n\n if (this.hasVat) {\n const rate = formValue.invoiceTemplate.vatRate.rate;\n this.vatLabel = `${this.translate.instant(\n 'billing.invoices.card.props.vat',\n )} ${formValue.invoiceTemplate.vatRate.name}`;\n this.vatAmount = this.totalAmount * rate;\n this.totalAmount += this.vatAmount;\n } else {\n this.vatLabel = this.translate.instant(\n 'billing.invoices.card.props.withoutVat',\n );\n }\n\n this.formHeaderService.updateIndicators([\n {\n description: 'billing.invoices.card.mainProps.totalAmount',\n value: this.wpCurrency.transform(\n this.invoice.totalAmount,\n this._currencyCode,\n ),\n },\n ]);\n }\n\n /**\n * Gets Invoice lines of specific type sorted by grouping fields.\n *\n * @param grouping Grouping fields string.\n * @param lines Invoice lines.\n * @param lineType Invoice line type.\n * @returns Sorted Invoice lines.\n * */\n private getSortedLines(\n grouping: string,\n lines: InvoiceLine[],\n lineType: InvoiceLineType,\n ): InvoiceLine[] {\n const fields = (grouping ? grouping.split(',') : []) as GroupingField[];\n const sortExpression: string[] = [];\n\n fields.forEach((field) => {\n switch (field) {\n case GroupingField.role:\n sortExpression.push('role.name');\n break;\n case GroupingField.project:\n sortExpression.push('project.name');\n break;\n case GroupingField.projectTask:\n sortExpression.push('projectTask.name');\n break;\n case GroupingField.projectTariff:\n sortExpression.push('projectTariff.name');\n break;\n case GroupingField.user:\n sortExpression.push('user.name');\n break;\n case GroupingField.account:\n sortExpression.push('account.name');\n break;\n case GroupingField.date:\n sortExpression.push('date');\n break;\n case GroupingField.description:\n sortExpression.push('description');\n break;\n }\n });\n\n let result = lines.filter((line) => line.lineType === lineType);\n result = sortBy(result, sortExpression);\n return result;\n }\n\n /**\n * Refreshes Invoice lines with Currency Exchange rate by Invoice issue date.\n *\n * @param lineGroup Invoice line to update. If not passed, all the Custom lines will be updated.\n * */\n private refreshXr(lineGroup?: UntypedFormGroup) {\n if (!this._projectCurrency) {\n console.warn('Project Currency is not defined.');\n return;\n }\n const customLines = lineGroup\n ? [lineGroup]\n : (this.customLines.controls as Array);\n this.currenciesService\n .getExchangeRate(\n this._projectCurrency.id,\n this.form.controls.issueDate.value,\n )\n .subscribe({\n next: (xr) => {\n this.setXr(customLines, xr);\n },\n error: (error: Exception) => {\n this.setXr(customLines, 1);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Sets Invoice lines Exchange rate.\n *\n * @param lines Invoice lines to update.\n * @param xr New Exchange rate.\n * */\n private setXr(lines: Array, xr: number) {\n lines.forEach((line) => {\n this.setValueProgrammatically(line.controls.exchangeRate, xr);\n this.setAmounts(line);\n });\n }\n\n private setAmounts(lineGroup: UntypedFormGroup) {\n lineGroup.controls.amount.setValue({\n value:\n lineGroup.controls.rate.value.value * lineGroup.controls.quantity.value,\n currencyCode: this._currencyCode,\n });\n lineGroup.controls.amountBC.setValue({\n value:\n lineGroup.controls.exchangeRate.value *\n lineGroup.controls.amount.value.value,\n currencyCode: this._baseCurrencyCode,\n });\n }\n\n // TODO: move to separate service and provide at component level.\n private setValueProgrammatically(ctrl: AbstractControl, value: any) {\n this._isProgramValueChange = true;\n ctrl.setValue(value);\n this._isProgramValueChange = false;\n }\n\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n}\n","\n\n\n\n\n
    \n
    \n
    \n \n
    \n\n
    \n \n {{ 'billing.invoices.card.mainProps.client' | translate }}:\n \n \n {{ invoice?.organization?.name }}\n \n
    \n\n
    \n \n {{ 'billing.invoices.card.mainProps.project' | translate }}:\n \n \n \n {{ invoice?.project?.name }}\n \n \n
    \n\n
    \n \n {{ 'billing.invoices.card.mainProps.created' | translate }}:\n \n \n {{ invoice?.created | date: 'shortDate' }}\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n @if (invoice?.state.id === paidStateId) {\n
    \n \n \n
    \n }\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n \n  {{ 'billing.invoices.card.actions.addTimeLines' | translate }}\n \n \n \n  {{ 'billing.invoices.card.actions.addExpenseLines' | translate }}\n \n \n \n  {{ 'billing.invoices.card.actions.createCustomLine' | translate }}\n \n
    \n
    \n\n
    \n {{ 'billing.invoices.card.hasNoLines' | translate }}\n
    \n\n 0\"\n [lines]=\"timeLines\"\n [grouping]=\"invoice?.timeLinesGrouping\"\n [readonly]=\"readonly\"\n />\n\n 0\"\n [lines]=\"expenseLines\"\n [grouping]=\"invoice?.expenseLinesGrouping\"\n [readonly]=\"readonly\"\n />\n\n 0\"\n [lines]=\"customLines\"\n [readonly]=\"readonly\"\n />\n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'billing.invoices.card.props.totalAmount' | translate }}:\n {{ invoice?.totalAmount | wpCurrency: currencyCode }}\n
    {{ vatLabel }}:\n \n {{ vatAmount | wpCurrency: currencyCode }}\n \n -\n
    {{ 'billing.invoices.card.props.totalToPay' | translate }}:\n {{ totalAmount | wpCurrency: currencyCode }}\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n

    \n {{ 'billing.invoices.card.props.outerNotes.help' | translate }}\n

    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n\n
    \n \n
    \n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Invoice } from 'src/app/shared/models/entities/billing/invoice.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { GroupingField } from './shared/grouping-field.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { InvoiceValueCellComponent } from './shared/invoice-value-cell/invoice-value-cell.component';\nimport { InvoiceValueReadonlyCellComponent } from './shared/invoice-value-cell/invoice-value-readonly-cell.component';\nimport { InvoiceAmountCellComponent } from 'src/app/billing/invoices/card/shared/invoice-amount-cell/invoice-amount-cell.component';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { InvoiceDescriptionCellComponent } from './shared/invoice-description-cell/invoice-description-cell.component';\nimport { InvoiceDescriptionReadonlyCellComponent } from './shared/invoice-description-cell/invoice-description-readonly-cell.component';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { InvoiceSettings } from './shared/invoice.settings';\nimport { InvoiceLineType } from 'src/app/shared/models/entities/billing/invoice-line-type.enum';\nimport { ResetInvoiceGrouping } from 'src/app/shared/models/entities/billing/reset-invoice-grouping.model';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { saveAs } from 'file-saver';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport {\n GridColumn,\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Injectable()\nexport class InvoiceCardService {\n public collection = this.data.collection('Invoices');\n\n private invoiceQuery = {\n expand: {\n state: { select: ['id', 'name', 'code', 'style'] },\n invoiceTemplate: {\n select: ['id', 'name'],\n expand: { vatRate: { select: ['id', 'code', 'name', 'rate'] } },\n },\n project: {\n select: ['id', 'name', 'billingTypeId'],\n expand: {\n currency: { select: ['id', 'name', 'alpha3Code'] },\n },\n },\n organization: { select: ['id', 'name'] },\n user: { select: ['id', 'name'] },\n lines: {\n expand: {\n role: { select: ['id', 'name'] },\n project: { select: ['id', 'name'] },\n projectTask: { select: ['id', 'name'] },\n user: { select: ['id', 'name'] },\n account: { select: ['id', 'name'] },\n projectCostCenter: { select: ['id', 'name'] },\n projectTariff: { select: ['id', 'name'] },\n },\n },\n },\n };\n\n private _state = new BehaviorSubject(CardState.Loading);\n\n private _invoice = new BehaviorSubject(null);\n\n private _resetGrouping = new Subject();\n\n private _customLineAdded = new Subject();\n\n private _calculateTotals = new Subject();\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n public state$ = this._state.asObservable();\n\n public invoice$ = this._invoice.asObservable().pipe(filter((p) => !!p));\n\n public resetGrouping$ = this._resetGrouping.asObservable();\n\n public customLineAdded$ = this._customLineAdded.asObservable();\n\n public calculateTotals$ = this._calculateTotals.asObservable();\n\n public allTimeFields: GroupingField[] = [\n GroupingField.projectTariff,\n GroupingField.projectTask,\n GroupingField.user,\n GroupingField.role,\n GroupingField.date,\n GroupingField.description,\n GroupingField.projectCostCenter,\n ];\n\n public allExpensesFields: GroupingField[] = [\n GroupingField.date,\n GroupingField.account,\n GroupingField.user,\n GroupingField.description,\n GroupingField.projectCostCenter,\n ];\n\n get entityId(): string {\n return this._entityId;\n }\n\n set entityId(value: string) {\n this._entityId = value;\n }\n\n private _entityId: string;\n\n private baseColumns: GridColumn[] = [\n {\n name: 'unit',\n header: 'billing.invoices.card.columns.unit.header',\n hint: 'billing.invoices.card.columns.unit.hint',\n type: GridColumnType.String,\n width: '120px',\n },\n {\n name: 'rate',\n header: 'billing.invoices.card.columns.rate.header',\n hint: 'billing.invoices.card.columns.rate.hint',\n type: GridColumnType.Component,\n max: 9999999999,\n min: -9999999999,\n component: InvoiceValueCellComponent,\n readonlyComponent: InvoiceValueReadonlyCellComponent,\n width: '130px',\n },\n {\n name: 'quantity',\n header: 'billing.invoices.card.columns.quantity.header',\n hint: 'billing.invoices.card.columns.quantity.hint',\n type: GridColumnType.Component,\n max: 99999,\n component: InvoiceValueCellComponent,\n readonlyComponent: InvoiceValueReadonlyCellComponent,\n width: '110px',\n },\n {\n name: 'amount',\n header: 'billing.invoices.card.columns.amount.header',\n hint: 'billing.invoices.card.columns.amount.hint',\n type: GridColumnType.Component,\n component: InvoiceAmountCellComponent,\n width: '135px',\n },\n ];\n\n constructor(\n private translate: TranslateService,\n private autosave: AutosaveService,\n private configService: LocalConfigService,\n private blockUI: BlockUIService,\n private httpClient: HttpClient,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n private actionService: ActionPanelService,\n private navigation: NavigationService,\n private lifecycleService: LifecycleService,\n ) {\n lifecycleService.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.reload();\n });\n }\n\n /**\n * Loads Invoice.\n * */\n public load = () => {\n this._state.next(CardState.Loading);\n\n this.actionService.actions.forEach((a) =>\n this.actionService.action(a.name).hide(),\n );\n\n this.collection\n .entity(this.entityId)\n .get(this.invoiceQuery)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (invoice) => {\n this.navigation.addRouteSegment({\n id: invoice.id,\n title: invoice.name,\n });\n\n this._invoice.next(invoice);\n this._state.next(CardState.Ready);\n\n // Backward compatibility. Invoice before June 2022 upgrade, keep Project grouping.\n if (\n !invoice.project &&\n !this.allTimeFields.includes(GroupingField.project)\n ) {\n this.allTimeFields.push(GroupingField.project);\n this.allExpensesFields.push(GroupingField.project);\n }\n },\n error: (error: Exception) => {\n this._state.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n };\n\n /**\n * Reloads Card.\n * */\n public reload() {\n this.autosave.save().then(\n () => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n /**\n * Disposes service active resources.\n * */\n public dispose() {\n this.destroyed$.next();\n }\n\n /**\n * Gets Localized field label for grouping.\n *\n * @param field Field.\n * @returns Localized field label.\n * */\n public getFieldLabel(field: GroupingField): string {\n switch (field) {\n case GroupingField.user:\n return this.translate.instant(\n 'billing.invoices.card.columns.user.header',\n );\n case GroupingField.project:\n return this.translate.instant(\n 'billing.invoices.card.columns.project.header',\n );\n case GroupingField.projectTask:\n return this.translate.instant(\n 'billing.invoices.card.columns.task.header',\n );\n case GroupingField.date:\n return this.translate.instant(\n 'billing.invoices.card.columns.date.header',\n );\n case GroupingField.role:\n return this.translate.instant(\n 'billing.invoices.card.columns.role.header',\n );\n case GroupingField.account:\n return this.translate.instant('shared2.props.financialAccount');\n case GroupingField.description:\n return this.translate.instant(\n 'billing.invoices.card.columns.description.header',\n );\n case GroupingField.projectCostCenter:\n return this.translate.instant(\n 'billing.invoices.card.columns.projectCostCenter.header',\n );\n case GroupingField.projectTariff:\n return this.translate.instant(\n 'billing.invoices.card.columns.projectTariff.header',\n );\n }\n }\n\n /**\n * Builds Invoice lines grid view columns list by grouping fields string.\n *\n * @param grouping Grouping fields string.\n * @param gridOptions Grid options to update.\n * */\n public buildGridColumns(grouping: string, gridOptions: GridOptions) {\n const fields = (grouping ? grouping.split(',') : []) as GroupingField[];\n const columns: Array = [];\n\n if (fields.length === 0) {\n columns.push(this.getGridColumnDefinition(null));\n }\n\n fields.forEach((field) => {\n columns.push(this.getGridColumnDefinition(field));\n });\n\n gridOptions.view.columns = columns.concat(this.baseColumns.slice());\n }\n\n /**\n * Gets Invoice settings config.\n *\n * @returns Invoice settings config.\n * */\n public getInvoiceSettings(): InvoiceSettings {\n const settings = this.configService.getConfig(InvoiceSettings);\n\n const removeProject = (grouping: string) => {\n let items = grouping ? grouping.split(',') : [];\n items = items.filter((item) => item !== 'Project');\n return items.join(',');\n };\n\n settings.expenseLinesGrouping = removeProject(\n settings.expenseLinesGrouping,\n );\n\n settings.timeLinesGrouping = removeProject(settings.timeLinesGrouping);\n\n return settings;\n }\n\n /**\n * Updates Invoice settings period.\n *\n * @param period New period value.\n * */\n public updateStoredPeriod(period: DatePeriod) {\n const settings = this.getInvoiceSettings();\n settings.period = period;\n this.configService.setConfig(InvoiceSettings, settings);\n }\n\n /**\n * Updates Invoice settings.\n *\n * @param settings New settings value.\n * */\n public updateLocalSettings(settings: InvoiceSettings) {\n this.configService.setConfig(InvoiceSettings, settings);\n }\n\n /**\n * Resets Invoice Time/Expense line grouping. Removes all Time/Expense lines.\n * Saves entity changes.\n *\n * @param resetGrouping Reset grouping params.\n * @returns Promise.\n * */\n public resetGrouping(resetGrouping: ResetInvoiceGrouping): Promise {\n const settings = this.getInvoiceSettings();\n switch (resetGrouping.type) {\n case InvoiceLineType.Time:\n settings.timeLinesGrouping = resetGrouping.grouping;\n break;\n case InvoiceLineType.Expense:\n settings.expenseLinesGrouping = resetGrouping.grouping;\n break;\n }\n this.updateLocalSettings(settings);\n\n return new Promise((resolve, reject) => {\n this._resetGrouping.next(resetGrouping);\n this.autosave.save().then(\n () => {\n this.load();\n resolve();\n },\n () => reject(),\n );\n });\n }\n\n /**\n * Deletes Invoice.\n * */\n public deleteInvoice() {\n this.message\n .confirmLocal('billing.invoices.card.messages.deleteConfirmation')\n .then(\n () => {\n this.collection\n .entity(this.entityId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem();\n },\n error: (error: Exception) => {\n this.message.error(error.message).then(this.load, this.load);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Downloads Invoice print form.\n *\n * @param invoice Invoice.\n * */\n public downloadInvoice(invoice: Invoice) {\n this.autosave.save().then(() => {\n const url = `${AppConfigService.config.api.url}/InvoiceDownload/${this.entityId}`;\n\n this.blockUI.start();\n this.httpClient\n .get(url, { responseType: 'blob' })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (data) => {\n saveAs(data, `${invoice.name}.pdf`);\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.blockUI.stop();\n },\n });\n });\n }\n\n /**\n * Thr Invoice Custom line added event handler.\n * Selects newly added Custom line.\n *\n * @param group New line form group.\n * */\n public onCustomLineAdded(group: UntypedFormGroup) {\n this._customLineAdded.next(group);\n }\n\n /**\n * Calculates Invoice total sum values.\n * */\n public calculateTotals() {\n this._calculateTotals.next();\n }\n\n /**\n * Gets Grid column field definition.\n *\n * @param field Field.\n * @returns Grid column field definition.\n * */\n private getGridColumnDefinition(field: GroupingField): GridColumn {\n let column: GridColumn;\n\n switch (field) {\n case GroupingField.project:\n column = {\n name: 'project',\n header: 'billing.invoices.card.columns.project.header',\n hint: 'billing.invoices.card.columns.project.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.projectTask:\n column = {\n name: 'projectTask',\n header: 'billing.invoices.card.columns.task.header',\n hint: 'billing.invoices.card.columns.task.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.projectCostCenter:\n column = {\n name: 'projectCostCenter',\n header: 'billing.invoices.card.columns.projectCostCenter.header',\n hint: 'billing.invoices.card.columns.projectCostCenter.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.projectTariff:\n column = {\n name: 'projectTariff',\n header: 'billing.invoices.card.columns.projectTariff.header',\n hint: 'billing.invoices.card.columns.projectTariff.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.role:\n column = {\n name: 'role',\n header: 'billing.invoices.card.columns.role.header',\n hint: 'billing.invoices.card.columns.role.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.account:\n column = {\n name: 'account',\n header: 'shared2.props.financialAccount',\n hint: 'shared2.props.financialAccount',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.user:\n column = {\n name: 'user',\n header: 'billing.invoices.card.columns.user.header',\n hint: 'billing.invoices.card.columns.user.hint',\n type: GridColumnType.Entity,\n width: '250px',\n };\n break;\n case GroupingField.date:\n column = {\n name: 'date',\n header: 'billing.invoices.card.columns.date.header',\n hint: 'billing.invoices.card.columns.date.hint',\n type: GridColumnType.Date,\n width: '120px',\n };\n break;\n case GroupingField.description:\n column = {\n name: 'description',\n header: 'billing.invoices.card.columns.description.header',\n hint: 'billing.invoices.card.columns.description.hint',\n type: GridColumnType.Component,\n component: InvoiceDescriptionCellComponent,\n readonlyComponent: InvoiceDescriptionReadonlyCellComponent,\n width: '200px',\n };\n break;\n default:\n column = {\n name: 'empty',\n header: '',\n hint: '',\n type: GridColumnType.String,\n width: '250px',\n };\n break;\n }\n\n return column;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { InvoiceCardService } from '../invoice-card.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { InvoiceTaskCellComponent } from 'src/app/billing/invoices/card/shared/invoice-task-cell/invoice-task-cell.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyControlColumn,\n GridNumberControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/**\n * Represents the Invoice Custom lines content.\n * */\n@Component({\n selector: 'wp-invoice-custom-lines',\n templateUrl: './invoice-custom-lines.component.html',\n styleUrls: ['./invoice-custom-lines.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class InvoiceCustomLinesComponent implements OnInit, OnDestroy {\n @Input() lines: UntypedFormArray;\n @Input() readonly: boolean;\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.lines.removeAt(index);\n this.lines.markAsDirty();\n this.cardService.calculateTotals();\n },\n },\n ],\n view: {\n name: 'customLines',\n columns: [\n {\n name: 'projectTask',\n type: GridColumnType.Component,\n component: InvoiceTaskCellComponent,\n width: '400px',\n header: 'billing.invoices.card.columns.task.header',\n hint: 'billing.invoices.card.columns.task.hint',\n },\n {\n name: 'description',\n header: 'billing.invoices.card.columns.description.header',\n hint: 'billing.invoices.card.columns.description.hint',\n type: GridColumnType.StringControl,\n width: '400px',\n },\n {\n name: 'unit',\n header: 'billing.invoices.card.columns.unit.header',\n hint: 'billing.invoices.card.columns.unit.hint',\n type: GridColumnType.StringControl,\n width: '120px',\n },\n {\n name: 'rate',\n header: 'billing.invoices.card.columns.rate.header',\n hint: 'billing.invoices.card.columns.rate.hint',\n type: GridColumnType.CurrencyControl,\n max: 999999999,\n min: -999999999,\n allowNull: false,\n controlType: 'currency',\n width: '130px',\n isEditableCurrency: false,\n },\n {\n name: 'quantity',\n header: 'billing.invoices.card.columns.quantity.header',\n hint: 'billing.invoices.card.columns.quantity.hint',\n type: GridColumnType.NumberControl,\n max: 99999,\n allowNull: false,\n controlType: 'decimal',\n width: '110px',\n },\n {\n name: 'amount',\n header: 'billing.invoices.card.columns.amount.header',\n hint: 'billing.invoices.card.columns.amount.hint',\n type: GridColumnType.Currency,\n width: '135px',\n forceCellUpdating: true,\n },\n {\n name: 'exchangeRate',\n header: 'billing.invoices.card.columns.exchangeRate.header',\n hint: 'billing.invoices.card.columns.exchangeRate.hint',\n type: GridColumnType.NumberControl,\n width: '100px',\n allowNull: false,\n controlType: 'decimal',\n precision: 13,\n forceCellUpdating: true,\n },\n {\n name: 'amountBC',\n header: 'billing.invoices.card.columns.amountBC.header',\n hint: 'billing.invoices.card.columns.amountBC.hint',\n type: GridColumnType.Currency,\n width: '135px',\n forceCellUpdating: true,\n },\n ],\n },\n };\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private cardService: InvoiceCardService,\n private gridService: GridService,\n ) {}\n\n ngOnInit(): void {\n this.cardService.customLineAdded$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((group) => {\n this.gridService.selectGroup(group);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { InvoiceCardService } from '../invoice-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\n\n/**\n * Represents the Invoice Expense lines content.\n * */\n@Component({\n selector: 'wp-invoice-expense-lines',\n templateUrl: './invoice-expense-lines.component.html',\n styleUrls: ['./invoice-expense-lines.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class InvoiceExpenseLinesComponent implements OnInit {\n @Input() lines: UntypedFormArray;\n @Input() readonly: boolean;\n @Input() grouping: string;\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.lines.removeAt(index);\n this.lines.markAsDirty();\n this.cardService.calculateTotals();\n },\n },\n ],\n view: {\n name: 'expenseLines',\n columns: [],\n },\n };\n\n constructor(private cardService: InvoiceCardService) {}\n\n ngOnInit(): void {\n this.cardService.buildGridColumns(this.grouping, this.gridOptions);\n }\n}\n","\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { InvoiceCardService } from '../invoice-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\n\n/**\n * Represents the Invoice Time lines content.\n * */\n@Component({\n selector: 'wp-invoice-time-lines',\n templateUrl: './invoice-time-lines.component.html',\n styleUrls: ['./invoice-time-lines.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class InvoiceTimeLinesComponent implements OnInit {\n @Input() lines: UntypedFormArray;\n @Input() readonly: boolean;\n @Input() grouping: string;\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.lines.removeAt(index);\n this.lines.markAsDirty();\n this.cardService.calculateTotals();\n },\n },\n ],\n view: {\n name: 'timeLines',\n columns: [],\n },\n };\n\n constructor(private cardService: InvoiceCardService) {}\n\n ngOnInit(): void {\n this.cardService.buildGridColumns(this.grouping, this.gridOptions);\n }\n}\n","\n\n","export enum GroupingField {\n project = 'Project',\n user = 'User',\n projectTask = 'ProjectTask',\n role = 'Role',\n date = 'Date',\n description = 'Description',\n account = 'Account',\n projectCostCenter = 'ProjectCostCenter',\n projectTariff = 'ProjectTariff',\n}\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n OnInit,\n ViewRef,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-invoice-amount-cell',\n templateUrl: './invoice-amount-cell.component.html',\n styleUrls: ['./invoice-amount-cell.component.scss'],\n standalone: false,\n})\nexport class InvoiceAmountCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n @Input() currencyCode: string;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n get controlValue(): number {\n return this.control.value?.value ?? this.control.value;\n }\n\n get currencyCodeValue() {\n return this.control.value.currencyCode ?? this.currencyCode;\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n {{ controlValue | wpCurrency: currencyCodeValue }}\n
    \n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-description-value-cell',\n templateUrl: './invoice-description-cell.component.html',\n styleUrls: ['./invoice-description-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InvoiceDescriptionCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n private originalField = 'originalDescription';\n\n private originalValueString = this.translate.instant(\n 'billing.invoices.card.originalValue',\n );\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n public get hasInfo(): boolean {\n return (\n this.formGroup.controls[this.originalField].value !== this.control.value\n );\n }\n\n public get originalHint(): string {\n const value = this.formGroup.controls[this.originalField].value;\n return `${this.originalValueString}:\\n${value}`;\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private translate: TranslateService,\n public service: GridService,\n public ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n"," \n \n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-invoice-description-readonly-cell',\n templateUrl: './invoice-description-readonly-cell.component.html',\n styleUrls: ['./invoice-description-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class InvoiceDescriptionReadonlyCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n private originalField = 'originalDescription';\n\n private originalValueString = this.translate.instant(\n 'billing.invoices.card.originalValue',\n );\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n public get hasInfo(): boolean {\n return (\n this.formGroup.controls[this.originalField].value !== this.control.value\n );\n }\n\n public get originalHint(): string {\n const value = this.formGroup.controls[this.originalField].value;\n return `${this.originalValueString}:\\n${value}`;\n }\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n private translate: TranslateService,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n \n","import {\n Component,\n Input,\n ViewRef,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { InvoiceCardService } from '../../invoice-card.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-invoice-task-cell',\n templateUrl: './invoice-task-cell.component.html',\n styleUrls: ['./invoice-task-cell.component.scss'],\n standalone: false,\n})\nexport class InvoiceTaskCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public projectId: string;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n private invoiceCardService: InvoiceCardService,\n private ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n this.invoiceCardService.invoice$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((invoice) => {\n this.projectId = invoice.project?.id;\n\n // Disable for old invoices (Before update June 2022) or not Draft ones.\n if (!this.projectId || !invoice.editAllowed) {\n this.control.disable({ emitEvent: false });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n ChangeDetectionStrategy,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { DecimalPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-invoice-value-cell',\n templateUrl: './invoice-value-cell.component.html',\n styleUrls: ['./invoice-value-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InvoiceValueCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n private originalValueString = this.translate.instant(\n 'billing.invoices.card.originalValue',\n );\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n get min(): number {\n return this.column['min'];\n }\n\n get max(): number {\n return this.column['max'];\n }\n\n public get hasInfo(): boolean {\n return !_.isEqual(\n this.formGroup.controls[this.originalField].value,\n this.control.value,\n );\n }\n\n public get isCurrencyControl() {\n return this.column.name === 'rate';\n }\n\n public get originalHint(): string {\n const value = this.formGroup.controls[this.originalField].value;\n const label = this.getFormattedValue(value);\n return `${this.originalValueString}:\\n${label}`;\n }\n\n private get originalField(): string {\n return this.isCurrencyControl ? 'originalRate' : 'originalQuantity';\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private translate: TranslateService,\n public service: GridService,\n public ref: ChangeDetectorRef,\n private currencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public getType(): 'currency' | 'decimal' {\n return this.isCurrencyControl ? 'currency' : 'decimal';\n }\n\n private getFormattedValue(value: any): string {\n return this.isCurrencyControl\n ? this.currencyPipe.transform(value.value, value.currencyCode)\n : this.numberPipe.transform(value, '1.0-2');\n }\n}\n","\n\n\n\n \n \n\n \n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DecimalPipe } from '@angular/common';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-invoice-value-readonly-cell',\n templateUrl: './invoice-value-readonly-cell.component.html',\n styleUrls: ['./invoice-value-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class InvoiceValueReadonlyCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n private originalValueString = this.translate.instant(\n 'billing.invoices.card.originalValue',\n );\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n public get value(): string {\n return this.getFormattedValue(this.control.value);\n }\n\n public get hasInfo(): boolean {\n return !_.isEqual(\n this.formGroup.controls[this.originalField].value,\n this.control.value,\n );\n }\n\n public get isCurrencyControl() {\n return this.column.name === 'rate';\n }\n\n public get originalHint(): string {\n const value = this.formGroup.controls[this.originalField].value;\n const label = this.getFormattedValue(value);\n return `${this.originalValueString}:\\n${label}`;\n }\n\n private get originalField(): string {\n return this.isCurrencyControl ? 'originalRate' : 'originalQuantity';\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n private translate: TranslateService,\n private currencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private getFormattedValue(value: any): string {\n return this.isCurrencyControl\n ? this.currencyPipe.transform(value.value, value.currencyCode)\n : this.numberPipe.transform(value, '1.0-2');\n }\n}\n","
    \n {{ value }}\n
    \n\n \n","import { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class InvoiceSettings implements BaseSettings {\n public readonly name = 'InvoiceSettings';\n public version: number;\n public period: DatePeriod;\n public timeLinesGrouping: string;\n public expenseLinesGrouping: string;\n\n public getDefault(): InvoiceSettings {\n return {\n version: 2,\n period: null,\n timeLinesGrouping: 'Role',\n expenseLinesGrouping: 'Account',\n } as InvoiceSettings;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { InvoiceSettings } from '../card/shared/invoice.settings';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-invoice-creation',\n templateUrl: './invoice-creation.component.html',\n styleUrls: ['./invoice-creation.component.scss'],\n standalone: false,\n})\nexport class InvoiceCreationComponent implements OnInit, OnDestroy {\n @Input() client: NamedEntity;\n @Input() project: NamedEntity;\n\n public isSaving = false;\n\n public projectsQuery: any = {};\n\n form = this.fb.group({\n client: [null, Validators.required],\n project: [null, Validators.required],\n assignAutoNumber: true,\n number: ['', [Validators.maxLength(50), Validators.required]],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private configService: LocalConfigService,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private blockUI: BlockUIService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit(): void {\n this.form.controls.number.disable();\n this.form.controls.assignAutoNumber.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.form.controls.assignAutoNumber.value\n ? this.form.controls.number.disable()\n : this.form.controls.number.enable();\n });\n\n if (this.client) {\n this.form.controls.client.setValue(this.client);\n }\n\n if (this.project) {\n this.form.controls.project.setValue(this.project, { emitEvent: false });\n }\n\n this.form.controls.client.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.form.controls.project.setValue(null);\n this.updateProjectsFilter();\n });\n\n this.form.controls.project.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const project = this.form.controls.project.value;\n if (project) {\n this.blockUI.start();\n this.data\n .collection('Projects')\n .entity(project.id)\n .get({\n select: 'id',\n expand: { organization: { select: ['id', 'name'] } },\n })\n .subscribe({\n next: (serverProject: any) => {\n const client = this.form.controls.client.value;\n\n if (serverProject?.organization?.id !== client?.id) {\n this.form.controls.client.setValue(\n serverProject?.organization,\n {\n emitEvent: false,\n },\n );\n\n this.updateProjectsFilter();\n }\n\n this.blockUI.stop();\n },\n error: () => {\n this.blockUI.stop();\n },\n });\n }\n });\n\n this.updateProjectsFilter();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const settings = this.configService.getConfig(InvoiceSettings);\n\n const data = {\n organizationId: this.form.value.client.id,\n projectId: this.form.value.project.id,\n number: this.form.value.assignAutoNumber ? '' : this.form.value.number,\n timeLinesGrouping: settings.timeLinesGrouping,\n expenseLinesGrouping: settings.expenseLinesGrouping,\n };\n\n this.data\n .collection('Invoices')\n .action('Insert')\n .execute(data)\n .subscribe({\n next: (response: string) => {\n this.notification.successLocal(\n 'billing.invoices.creation.messages.created',\n );\n this.state.go('invoice', { entityId: response });\n this.isSaving = false;\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n private updateProjectsFilter() {\n const client = this.form.controls.client.value;\n if (client) {\n this.projectsQuery = {\n filter: {\n organizationId: { type: 'guid', value: client.id },\n billingTypeId: {\n ne: { type: 'guid', value: ProjectBillingType.nonBillable.id },\n },\n isActive: true,\n },\n };\n } else {\n this.projectsQuery = {\n filter: {\n organizationId: { ne: null },\n isActive: true,\n },\n };\n }\n }\n}\n","
    \n
    \n

    \n {{ 'billing.invoices.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UIRouterModule, Transition } from '@uirouter/angular';\nimport { InvoiceListComponent } from './list/invoice-list.component';\nimport {\n VIEW_NAME,\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n META_ENTITY_TYPE,\n} from 'src/app/shared/tokens';\nimport { INVOICE_LIST } from 'src/app/shared/lists/invoice.list';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InvoiceFilterComponent } from './list/invoice-filter/invoice-filter.component';\nimport { InvoiceCardComponent } from './card/invoice-card.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { InvoiceTimeLinesComponent } from './card/invoice-time-lines/invoice-time-lines.component';\nimport { AddingLinesModalComponent } from './card/adding-lines-modal/adding-lines-modal.component';\nimport { GroupingSettingsComponent } from './card/adding-lines-modal/grouping-settings/grouping-settings.component';\nimport { InvoiceValueCellComponent } from './card/shared/invoice-value-cell/invoice-value-cell.component';\nimport { InvoiceValueReadonlyCellComponent } from './card/shared/invoice-value-cell/invoice-value-readonly-cell.component';\nimport { InvoiceAmountCellComponent } from './card/shared/invoice-amount-cell/invoice-amount-cell.component';\nimport { InvoiceCreationComponent } from './creation/invoice-creation.component';\nimport { InvoiceExpenseLinesComponent } from './card/invoice-expense-lines/invoice-expense-lines.component';\nimport { InvoiceCustomLinesComponent } from './card/invoice-custom-lines/invoice-custom-lines.component';\nimport { InvoiceTaskCellComponent } from './card/shared/invoice-task-cell/invoice-task-cell.component';\nimport { InvoiceDescriptionCellComponent } from './card/shared/invoice-description-cell/invoice-description-cell.component';\nimport { InvoiceDescriptionReadonlyCellComponent } from './card/shared/invoice-description-cell/invoice-description-readonly-cell.component';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n InvoiceListComponent,\n InvoiceFilterComponent,\n InvoiceCardComponent,\n InvoiceTimeLinesComponent,\n InvoiceExpenseLinesComponent,\n InvoiceCustomLinesComponent,\n AddingLinesModalComponent,\n GroupingSettingsComponent,\n InvoiceValueCellComponent,\n InvoiceValueReadonlyCellComponent,\n InvoiceDescriptionCellComponent,\n InvoiceDescriptionReadonlyCellComponent,\n InvoiceAmountCellComponent,\n InvoiceCreationComponent,\n InvoiceTaskCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'invoices',\n url: '/invoices/{view:viewName}?{navigation}&{route}',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: null,\n routeMode: null,\n view: null,\n },\n component: InvoiceListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'Invoice' },\n { provide: LIST, useValue: INVOICE_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'invoice',\n queryData: {\n select: ['id', 'stateId', 'name'],\n expand: { state: { select: 'isEntityProtected' } },\n },\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'invoice',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n url: '/invoices/{entityId:guid}?{navigation}&{route}',\n component: InvoiceCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class InvoicesModule {}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-invoice-filter',\n templateUrl: './invoice-filter.component.html',\n standalone: false,\n})\nexport class InvoiceFilterComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: [null],\n client: [null],\n project: [null],\n states: [null],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { InvoiceFilterComponent } from './invoice-filter.component';\n\n@Injectable()\nexport class InvoiceFilterService extends FilterService {\n public override component: Type = InvoiceFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'billing.invoices.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n period: null,\n project: null,\n client: null,\n states: null,\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n { 'tolower(number)': { contains: text } },\n { 'tolower(description)': { contains: text } },\n { organization: { 'tolower(name)': { contains: text } } },\n { project: { 'tolower(name)': { contains: text } } },\n ],\n });\n }\n\n if (this.values.client) {\n result.push({\n organizationId: { type: 'guid', value: this.values.client.id },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n issueDate: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n issueDate: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n return result;\n }\n}\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { StateService } from '@uirouter/core';\nimport { InvoiceFilterService } from './invoice-filter/invoice-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { InvoiceCreationComponent } from '../creation/invoice-creation.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-invoice-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: InvoiceFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class InvoiceListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private injector: Injector,\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n public ngOnInit(): void {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'billing.invoices.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Invoice',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('invoice', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: any) => {\n this.actions.action('card').isShown = rows?.length === 1;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create = () => {\n const ref = this.modalService.open(InvoiceCreationComponent, {\n injector: this.injector,\n });\n ref.componentInstance as InvoiceCreationComponent;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\nimport { DragAndDropDirective } from 'src/app/shared/directives/drag-and-drop/drag-and-drop.directive';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { BOARD_CONFIG } from 'src/app/boards/models/board-config.interface';\nimport { BoardComponent } from 'src/app/boards/components/board/board.component';\nimport { BoardFilterComponent } from 'src/app/boards/components/board/filter/board-filter.component';\nimport { BoardColumnHeaderComponent } from 'src/app/boards/components/board/column-header/board-column-header.component';\nimport { BoardColumnHeaderFormComponent } from 'src/app/boards/components/board/column-header-form/board-column-header-form.component';\nimport { BoardTrackComponent } from 'src/app/boards/components/board/track/board-track.component';\nimport { BoardMiniCardComponent } from 'src/app/boards/components/board/mini-card/board-mini-card.component';\nimport { BoardMiniCardBuilderComponent } from 'src/app/boards/components/board/mini-card-builder/board-mini-card-builder.component';\nimport { BoardMiniCardBuilderModalComponent } from 'src/app/boards/components/board/mini-card-builder-modal/board-mini-card-builder-modal.component';\nimport { BoardSortButtonComponent } from 'src/app/boards/components/board/sort-button/board-sort-button.component';\n\n@NgModule({\n declarations: [\n BoardComponent,\n BoardFilterComponent,\n BoardSortButtonComponent,\n BoardColumnHeaderComponent,\n BoardColumnHeaderFormComponent,\n BoardTrackComponent,\n BoardMiniCardComponent,\n BoardMiniCardBuilderComponent,\n BoardMiniCardBuilderModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n DragAndDropDirective,\n UIRouterModule.forChild({\n states: [\n {\n name: 'board',\n url: '/board/{entityId:guid}?{navigation}&{route}',\n component: BoardComponent,\n resolve: [\n // TODO: not correct?\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: 'tasksBoard' },\n {\n provide: BOARD_CONFIG,\n deps: [\n Transition,\n DataService,\n BlockUIService,\n NotificationService,\n ],\n useFactory: StateHelper.resolveBoardConfig,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class BoardsModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { filter } from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DateService } from 'src/app/core/date.service';\nimport { HistoryService } from 'src/app/core/history.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { CreateMenuService } from 'src/app/core/create-menu.service';\n\nimport { destroy, initAndDestroy } from 'src/app/shared/animations';\nimport { DragAndDropOptions } from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\nimport { LocalDragDropService } from 'src/app/shared/services/drag-drop';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nimport { BOARD_CONFIG } from 'src/app/boards/models/board-config.interface';\nimport { BoardService } from 'src/app/boards/services/board.service';\nimport { BoardDataService } from 'src/app/boards/services/board-data.service';\nimport { BoardFilterService } from 'src/app/boards/services/board-filter.service';\nimport { BoardColumnView } from 'src/app/boards/models/board.interface';\n\n@Component({\n selector: 'tmt-board',\n templateUrl: './board.component.html',\n styleUrl: './board.component.scss',\n providers: [\n CreateMenuService,\n BoardService,\n BoardDataService,\n LocalDragDropService,\n {\n provide: FilterService,\n deps: [\n AppService,\n DateService,\n LocalStorageService,\n CustomFieldService,\n Injector,\n ],\n useFactory: (\n appService: AppService,\n dateService: DateService,\n localStorageService: LocalStorageService,\n customFieldService: CustomFieldService,\n injector: Injector,\n ) => {\n const config = injector.get(BOARD_CONFIG);\n const filterService = config?.filterService ?? BoardFilterService;\n return new filterService(\n appService,\n dateService,\n localStorageService,\n customFieldService,\n {\n version: 0,\n name: 'board',\n views: [],\n columns: [],\n customFieldEntityType: config?.customFieldEntityType,\n },\n config?.id,\n null,\n );\n },\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [initAndDestroy, destroy],\n standalone: false,\n})\nexport class BoardComponent implements OnInit, OnDestroy {\n public ddOptions: DragAndDropOptions = {\n group: {\n name: 'columns',\n put: ['columns'],\n key: 'columns',\n },\n draggableClass: 'draggable',\n listDirection: 'horizontal',\n listGap: 8,\n };\n public columns: BoardColumnView[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public boardService: BoardService,\n private boardDataService: BoardDataService,\n private dragDropService: LocalDragDropService,\n private historyService: HistoryService,\n private navigationService: NavigationService,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document,\n private actionPanelService: ActionPanelService,\n private createMenuService: CreateMenuService,\n private cdr: ChangeDetectorRef,\n private modalService: NgbModal,\n ) {\n this.initCreateMenuService();\n }\n\n public ngOnInit(): void {\n this.initActions();\n this.initSubscribes();\n\n this.renderer.setStyle(\n this.document.getElementById(Constants.defaultRootContainerId),\n 'overflow-x',\n 'auto',\n );\n\n const title = this.boardService.config?.title;\n\n this.boardService.setTitle();\n this.historyService.addHistory(\n [title],\n this.navigationService.getAppName(),\n );\n }\n\n public ngOnDestroy(): void {\n this.actionPanelService.setAdditional([]);\n this.renderer.removeStyle(\n this.document.getElementById(Constants.defaultRootContainerId),\n 'overflow-x',\n );\n }\n\n /** Opens popup with form of column header. */\n public openColumnForm(event: MouseEvent): void {\n this.boardService.opensColumnForm(\n event.target as HTMLElement,\n null,\n 'create',\n );\n }\n\n /**\n * Sends `orderBy` to the board service.\n *\n * @param orderBy result from `tmt-board-sort-button`.\n */\n public sortChange(orderBy: string): void {\n this.boardService.sortChange$.next(orderBy);\n }\n\n private initCreateMenuService(): void {\n this.createMenuService.isReloadState = false;\n this.createMenuService.routeMode = RouteMode.continue;\n this.createMenuService.customNavigation =\n this.navigationService.selectedNavigationItem?.name;\n }\n\n private initActions(): void {\n if (\n this.boardService.config.offCanvasComponent &&\n this.boardService.config.creationComponent\n ) {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n handler: () => {\n const modalRef = this.modalService.open(\n this.boardService.config.creationComponent,\n );\n\n modalRef.componentInstance.openCardAfterCreation = false;\n modalRef.result.then(\n (entityId: string) => {\n this.boardService.openOffCanvas(entityId);\n this.actionPanelService.reload();\n },\n () => null,\n );\n },\n isVisible: true,\n }),\n ]);\n } else if (this.boardService.config.createMenuButton) {\n const button = this.createMenuService.items$\n .getValue()\n .find(\n (item) => item.name === this.boardService.config.createMenuButton,\n );\n\n if (button) {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n handler: () => button.handle(),\n isVisible: true,\n }),\n ]);\n }\n }\n\n this.actionPanelService.setAdditional([\n {\n name: 'openCardBuilder',\n title: 'components.boardComponent.actions.openCardBuilder',\n hint: 'components.boardComponent.actions.openCardBuilder',\n isBusy: false,\n isVisible: this.boardService.config.editAllowed,\n handler: () => this.boardService.openCardBuilder(),\n },\n {\n name: 'openSettings',\n title: 'components.boardComponent.actions.openSettings',\n hint: 'components.boardComponent.actions.openSettings',\n isBusy: false,\n isVisible: this.boardService.config.editAllowed,\n handler: () => this.boardService.openSettings(),\n },\n {\n name: 'deleteBoard',\n title: 'components.boardComponent.actions.deleteBoard',\n hint: 'components.boardComponent.actions.deleteBoard',\n isBusy: false,\n isVisible: this.boardService.config.editAllowed,\n handler: () => this.boardDataService.removeBoard(),\n },\n ]);\n }\n\n private initSubscribes(): void {\n this.boardService.event$\n .pipe(\n filter(\n (event) => event.target === 'board' && event.action === 'updated',\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.columns = this.boardService.activeColumns.slice(0);\n this.cdr.markForCheck();\n });\n\n this.dragDropService.onItemUpdate$\n .pipe(\n filter((v) => !!v && v.fromGroupName === this.ddOptions.group.name),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.boardService.updateColumnsOrder(this.columns);\n this.columns = this.boardService.activeColumns.slice(0);\n this.cdr.markForCheck();\n });\n }\n}\n","@if (boardService.config) {\n
    \n
    \n \n \n
    \n \n \n {{\n boardService.columnMode() === 'states'\n ? ('components.boardComponent.props.columnsByStates.short' | translate)\n : ('components.boardComponent.props.customColumns.short' | translate)\n }}\n \n
    \n \n {{ 'components.boardComponent.props.columnsByStates.value' | translate }}\n \n \n {{ 'components.boardComponent.props.customColumns.value' | translate }}\n \n
    \n
    \n
    \n\n
    \n \n @if (boardService.cardsByColumns && columns.length) {\n @for (column of columns; track column.id) {\n \n }\n }\n\n @if (boardService.config.editAllowed && !(boardService.loading$ | async)) {\n
    \n \n \n \n
    \n }\n
    \n\n \n\n @if (!(boardService.loading$ | async)) {\n
    \n @for (column of boardService.activeColumns; track column.id) {\n \n }\n
    \n }\n
    \n \n} @else {\n

    \n {{ 'shared.entityNotFound.title' | translate }}\n
    \n {{ 'shared.entityNotFound.details' | translate }}\n

    \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n FormControl,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\nimport { BoardDataService } from 'src/app/boards/services/board-data.service';\nimport { BoardColumnView } from 'src/app/boards/models/board.interface';\nimport { BoardService } from 'src/app/boards/services/board.service';\n\n@Component({\n selector: 'tmt-board-column-header-form',\n templateUrl: './board-column-header-form.component.html',\n styleUrl: './board-column-header-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardColumnHeaderFormComponent implements OnInit {\n @Input() public column: BoardColumnView;\n @Input() public mode: 'edit' | 'create';\n\n public saving: boolean;\n public states: State[] = [];\n public form: UntypedFormGroup = this.fb.group({\n name: [null, Validators.required],\n });\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public boardService: BoardService,\n private fb: UntypedFormBuilder,\n private infoPopupService: InfoPopupService,\n private notificationService: NotificationService,\n private cdr: ChangeDetectorRef,\n boardDataService: BoardDataService,\n ) {\n this.states = boardDataService.states.filter(\n (state) =>\n !boardService.columns.some((column) => column.stateId === state.id),\n );\n }\n\n public ngOnInit(): void {\n if (this.boardService.columnMode() === 'states') {\n this.form.addControl(\n 'state',\n new FormControl(null, { validators: [Validators.required] }),\n );\n }\n\n if (this.column) {\n this.form.patchValue({\n state: this.column.state,\n name: this.column.name,\n });\n\n if (this.column.isInitial) {\n this.form.disable();\n }\n }\n\n if (this.boardService.columnMode() === 'states') {\n this.form.controls.state.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((state: State) => {\n this.form.patchValue(\n {\n name: state.name,\n },\n {\n emitEvent: false,\n },\n );\n });\n }\n }\n\n /** Saves board column. */\n public async save(): Promise {\n this.form.markAsDirty();\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.saving = true;\n\n const data: Partial = {\n state:\n this.boardService.columnMode() === 'states'\n ? this.form.getRawValue().state\n : null,\n name: this.form.getRawValue().name?.trim(),\n };\n\n const result =\n this.mode === 'create'\n ? await this.boardService.addColumn(data)\n : await this.boardService.updateColumn(this.column.id, data);\n\n this.saving = false;\n this.cdr.markForCheck();\n\n if (result) {\n this.infoPopupService.close();\n }\n }\n\n /** Closes popup */\n public cancel(): void {\n this.infoPopupService.close();\n }\n}\n","
    \n
    \n
    \n @if (mode === 'create' && boardService.columnMode() === 'states') {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ (mode === 'create' ? 'shared2.actions.create' : 'shared2.actions.save') | translate }}\n \n \n
    \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { filter } from 'rxjs';\n\nimport { LocalDragDropService } from 'src/app/shared/services/drag-drop';\n\nimport { BoardColumnView } from 'src/app/boards/models/board.interface';\nimport { BoardService } from 'src/app/boards/services/board.service';\n\n@Component({\n selector: 'tmt-board-column-header',\n templateUrl: './board-column-header.component.html',\n styleUrl: './board-column-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardColumnHeaderComponent implements OnInit {\n @Input() public column: BoardColumnView;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public boardService: BoardService,\n public el: ElementRef,\n private dragDropService: LocalDragDropService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.dragDropService.completed$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.boardService.event$\n .pipe(\n filter(\n (event) => event.target === 'column' && event.id === this.column.id,\n ),\n )\n .subscribe((event) => {\n switch (event.action) {\n case 'updated':\n this.cdr.markForCheck();\n }\n });\n }\n}\n","\n \n @if (column.style) {\n \n \n \n }\n {{ column.name }} {{ column.count || '' }}\n \n\n @if (column.actions.length && boardService.config.editAllowed && !column.isInitial) {\n \n \n \n }\n\n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroup, UntypedFormBuilder } from '@angular/forms';\nimport { BoardService } from 'src/app/boards/services/board.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Component({\n selector: 'tmt-board-filter',\n templateUrl: './board-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardFilterComponent implements OnInit, FilterDetails {\n @Input() public values: any;\n\n public detailsForm: FormGroup = this.fb.group({\n states: null,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public filterService: FilterService,\n public boardService: BoardService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.filterService.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.filterService.changeValues(\n Object.assign(this.filterService.values, this.detailsForm.value),\n );\n });\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Component, signal } from '@angular/core';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BoardDataService } from 'src/app/boards/services/board-data.service';\n\nimport { BoardService } from 'src/app/boards/services/board.service';\nimport { MetaEntityBaseProperty } from 'src/app/shared/models/entities/settings/metamodel.model';\n\n@Component({\n selector: 'tmt-board-mini-card-builder-modal',\n templateUrl: './board-mini-card-builder-modal.component.html',\n standalone: false,\n})\nexport class BoardMiniCardBuilderModalComponent {\n public result: MetaEntityBaseProperty[];\n public saving = signal(false);\n\n constructor(\n public boardService: BoardService,\n private boardDataService: BoardDataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Sends new card structure and closes modal. */\n public ok(): void {\n if (!this.result) {\n this.activeModal.close(this.result);\n return;\n }\n\n this.saving.set(true);\n this.boardDataService\n .updateBoard({\n cardProperties: this.result.map((property) => property.name),\n })\n .subscribe({\n next: () => {\n this.saving.set(false);\n this.activeModal.close(this.result);\n },\n error: () => {\n this.saving.set(false);\n },\n });\n }\n\n /** Closes modal. */\n public closeModal(): void {\n this.activeModal.dismiss(null);\n }\n}\n","
    \n
    \n

    \n {{ 'components.boardMiniCardBuilderModalComponent.props.header' | translate }}\n

    \n \n
    \n\n
    \n \n
    \n\n
    \n \n\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { SortableEvent, SortableOptions } from 'sortablejs';\nimport _ from 'lodash';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport {\n LocalString,\n LocalStringHelper,\n} from 'src/app/shared/models/enums/language.enum';\nimport {\n MetaEntity,\n MetaEntityBaseProperty,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { BoardCardViewProperties } from 'src/app/settings-app/boards/model/board.model';\n\nimport { REQUIRED_PROPERTIES } from 'src/app/boards/models/board.config';\n\nimport { MetaEntityBasePropertyItem } from './board-mini-card-builder.interface';\n\n@Component({\n selector: 'tmt-board-mini-card-builder',\n templateUrl: './board-mini-card-builder.component.html',\n styleUrl: './board-mini-card-builder.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardMiniCardBuilderComponent implements OnInit {\n @Input({ required: true }) public initialValue: BoardCardViewProperties[];\n @Input({ required: true }) public entityType: string;\n\n @Output() public result$ = new EventEmitter();\n\n public entity: MetaEntity;\n public properties: MetaEntityBasePropertyItem[] = [];\n public selectedProperties: MetaEntityBasePropertyItem[] = [];\n public propertiesSortableOptions: SortableOptions = {\n group: {\n name: 'properties',\n pull: 'clone',\n put: false,\n },\n sort: false,\n handle: '.handle',\n draggable: '.draggable',\n onStart: () => {\n this.cdr.markForCheck();\n },\n onEnd: () => {\n this.cdr.markForCheck();\n },\n };\n public selectedPropertiesSortableOptions: SortableOptions = {\n group: {\n name: 'selectedProperties',\n pull: true,\n put: (from, to, dragEl) =>\n !this.selectedProperties.some((c) => c.name === dragEl.dataset.key),\n },\n handle: '.handle',\n chosenClass: 'chosen-selected',\n ghostClass: 'ghost-selected',\n dragClass: 'drag-selected',\n draggable: '.draggable',\n onStart: (event: SortableEvent) => {\n this.cdr.markForCheck();\n const key = event.item.dataset.key;\n\n this.dropEventHandler = () => {\n if (REQUIRED_PROPERTIES.includes(key)) {\n this.notificationService.warningLocal(\n 'components.boardMiniCardBuilderComponent.messages.propertyRequired',\n );\n } else {\n this.removeItem(\n this.selectedProperties.findIndex((c) => c.name === key),\n );\n }\n };\n\n this.el.nativeElement\n .querySelector(`#${this.availableListId}`)\n .addEventListener('drop', this.dropEventHandler, { once: true });\n },\n onEnd: () => {\n this.cdr.markForCheck();\n this.el.nativeElement\n .querySelector(`#${this.availableListId}`)\n .removeEventListener('drop', this.dropEventHandler);\n },\n onSort: () => {\n this.sendResult();\n },\n };\n public availableListId = 'available-list';\n\n private dropEventHandler: () => void;\n private readonly restrictedTypes = ['text'];\n\n constructor(\n private appService: AppService,\n private notificationService: NotificationService,\n private cdr: ChangeDetectorRef,\n private el: ElementRef,\n ) {}\n\n public async ngOnInit(): Promise {\n await this.init();\n }\n\n /**\n * Removes item.\n *\n * @param index.\n */\n public removeItem(index: number): void {\n const removedProperty = this.selectedProperties.splice(index, 1).pop();\n const property = this.properties.find(\n (p) => p.name === removedProperty.name,\n );\n property.selected = false;\n\n this.sendResult();\n }\n\n /**\n * Handler for `Clone` event of sortablejs.\n *\n * @param property MetaEntityBasePropertyItem.\n * @returns updated MetaEntityBasePropertyItem.\n */\n public cloneFieldHandler(\n property: MetaEntityBasePropertyItem,\n ): MetaEntityBasePropertyItem {\n property.selected = true;\n return property;\n }\n\n /** Checkbox input handler. */\n public onSelected(property: MetaEntityBasePropertyItem): void {\n if (property.selected) {\n this.selectedProperties.push(property);\n } else {\n this.selectedProperties.splice(\n this.selectedProperties.findIndex(\n (selected) => selected.name === property.name,\n ),\n 1,\n );\n }\n\n this.sendResult();\n }\n\n private sendResult(): void {\n this.result$.emit(\n this.selectedProperties.map((value) => ({\n name: value.name,\n clrType: value.clrType,\n type: value.type,\n kind: value.kind,\n displayName: this.getTranslate(value.displayNames),\n })),\n );\n }\n\n private getTranslate(translates: LocalString[]): string | undefined {\n return LocalStringHelper.getTranslate(\n translates,\n this.appService.session.language,\n );\n }\n\n private async init(): Promise {\n try {\n this.entity = this.appService.getMetaEntity(this.entityType);\n\n (this.entity.primitiveProperties as MetaEntityBaseProperty[])\n .concat(this.entity.navigationProperties)\n .concat(this.entity.directoryProperties)\n // .concat(this.entity.complexProperties) // TODO: not supported yet.\n .filter((p) => !this.restrictedTypes.includes(p.type.toLowerCase()))\n .forEach((property) => {\n const initialValueItemIndex = this.initialValue?.findIndex(\n (v) => v.name.toLowerCase() === property.name.toLowerCase(),\n );\n const isRequired = REQUIRED_PROPERTIES.includes(property.name);\n const item: MetaEntityBasePropertyItem = {\n ...property,\n title: this.appService.getTranslate(property.displayNames),\n hint: null,\n selected: isRequired || initialValueItemIndex > -1,\n required: isRequired,\n index: Math.max(0, initialValueItemIndex),\n };\n\n this.properties.push(item);\n\n if (item.selected) {\n this.selectedProperties.push(item);\n }\n });\n\n this.properties.sort(naturalSort('title'));\n this.selectedProperties = _.sortBy(this.selectedProperties, 'index');\n this.cdr.markForCheck();\n } catch (error) {\n this.entity = null;\n this.cdr.markForCheck();\n this.notificationService.error(error.message);\n }\n }\n}\n","@if (entity) {\n
    \n {{ 'components.boardMiniCardBuilderComponent.messages.about' | translate }}\n
    \n\n
    \n
    \n \n {{ 'components.boardMiniCardBuilderComponent.props.properties' | translate }}\n \n
    \n\n \n @for (property of properties; track property.name) {\n
  • \n
    \n \n
    \n
    \n \n {{ property.title }}\n \n\n @if (property.hint) {\n \n }\n
    \n
  • \n }\n\n @if (!properties?.length) {\n \n }\n \n
    \n\n
    \n
    \n \n {{ 'components.boardMiniCardBuilderComponent.props.selectedProperties' | translate }}\n \n
    \n \n @for (property of selectedProperties; track property.name) {\n
  • \n
    \n {{ property.title }} \n\n @if (property.hint) {\n \n }\n\n @if (!property.required) {\n \n ×\n \n }\n
    \n
  • \n }\n\n @if (!selectedProperties?.length) {\n \n }\n \n
    \n} @else {\n \n}\n\n\n
    \n

    \n {{ 'shared.dragColumn' | translate }}\n

    \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { StateService } from '@uirouter/core';\n\nimport { filter } from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\nimport {\n StateBuilderService,\n WorkflowEntityState,\n} from 'src/app/core/state-builder.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport {\n MetaEntityBaseProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\nimport { BoardService } from 'src/app/boards/services/board.service';\nimport { BoardCardView } from 'src/app/boards/models/board.interface';\n\n@Component({\n selector: 'tmt-board-mini-card',\n templateUrl: './board-mini-card.component.html',\n styleUrl: './board-mini-card.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardMiniCardComponent implements OnInit {\n @Input() public card: BoardCardView;\n @Input() public index: number;\n\n public stateForEntity: WorkflowEntityState;\n public cardHref: string;\n\n private destroyRef = inject(DestroyRef);\n\n public metaEntityPropertyType = MetaEntityPropertyType;\n\n constructor(\n public stateBuilderService: StateBuilderService,\n public boardService: BoardService,\n public appService: AppService,\n private navigationService: NavigationService,\n private cdr: ChangeDetectorRef,\n private stateService: StateService,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public ngOnInit(): void {\n this.stateForEntity = {\n state: this.stateBuilderService.entityTypeToStateName.get(\n this.boardService.config.entityType,\n ),\n params: {\n entityId: this.card.entity.id,\n routeMode: RouteMode.continue,\n navigation: this.navigationService.selectedNavigationItem?.name,\n },\n };\n\n this.boardService.event$\n .pipe(\n filter(\n (event) =>\n event.target === 'card' &&\n (!event?.id || event?.id === this.card.id),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.clearSubActions();\n this.cdr.markForCheck();\n });\n\n this.cardHref = this.stateService.href(\n this.stateForEntity.state,\n this.stateForEntity.params,\n );\n }\n\n /**\n * Runs custom function or redirects to another state.\n *\n * @param event MouseEvent.\n */\n public clickHandler(event: MouseEvent): void {\n event.preventDefault();\n\n if (event.ctrlKey) {\n this.document.defaultView.open(this.cardHref, '_blank');\n return;\n }\n\n if (this.boardService.config.offCanvasComponent) {\n this.boardService.openOffCanvas(this.card.entity.id);\n return;\n }\n\n if ((event.target as HTMLElement).tagName === 'A') {\n return;\n }\n\n if (this.card.onClick) {\n this.card.onClick();\n }\n }\n\n /**\n * Guesses type of property.\n *\n * @param property MetaEntityBaseProperty.\n * @returns type for template.\n */\n public guessTemplateType(property: MetaEntityBaseProperty): string {\n const propertyValue = this.card.entity[property.name];\n\n if (propertyValue === null) {\n return 'empty';\n }\n\n if (typeof propertyValue === 'string') {\n return 'string';\n }\n\n if (typeof propertyValue === 'number') {\n return propertyValue.toString().includes('.') ? 'decimal' : 'integer';\n }\n\n if (propertyValue?.id && propertyValue?.name) {\n return 'lookupValue';\n }\n\n return 'unknown';\n }\n\n /** Clears card sub actions. */\n private clearSubActions(): void {\n const changeStateAction = this.card.actions.find(\n (v) => v.name === 'changeState',\n );\n\n if (changeStateAction?.subActions?.length) {\n changeStateAction.subActions.length = 0;\n }\n }\n}\n","\n @for (property of boardService.config.cardStructure; track $index) {\n \n @if (\n card.entity[property.name] ||\n card.entity[property.name] === false ||\n card.entity[property.name] === 0\n ) {\n @switch (property.clrType) {\n @case ('string') {\n @if (property.name === 'name') {\n \n } @else {\n \n }\n }\n\n @case ('int32') {\n \n }\n\n @case ('decimal') {\n \n }\n\n @case ('boolean') {\n
    \n {{ property.displayName }}: \n\n @if (card.entity[property.name]) {\n \n } @else {\n \n }\n
    \n }\n\n @case ('dateTime') {\n
    \n {{ card.entity[property.name] | date: 'shortDate' }}\n
    \n }\n\n @case ('dateTimeOffset') {\n \n {{ card.entity[property.name] | date: 'medium' : appService.session.timeZoneOffset }}\n \n }\n\n @case ('user') {\n \n }\n\n @default {\n \n }\n }\n } @else {\n \n }\n\n @if (!$index) {\n \n }\n \n }\n
    \n\n\n @if (card.actions?.length) {\n \n \n \n }\n\n\n\n
    \n @if (boardService.config.offCanvasComponent) {\n \n {{ card.entity.name }}\n \n } @else {\n \n {{ card.entity.name }}\n \n }\n
    \n
    \n\n\n
    \n \n {{ user.name }}\n
    \n
    \n\n\n
    \n {{ card.entity[property.name] }}\n
    \n
    \n\n\n
    \n
    \n\n\n
    \n {{ card.entity[property.name] | number: '1.0-0' }}\n
    \n
    \n\n\n
    \n @switch (property.type) {\n @case (metaEntityPropertyType.percent) {\n {{ card.entity[property.name] | percent }}\n }\n @case (metaEntityPropertyType.currency) {\n {{ card.entity[property.name] | wpCurrency }}\n }\n @default {\n {{ card.entity[property.name] | number: '1.2-2' }}\n }\n }\n
    \n
    \n\n\n @switch (guessTemplateType(property)) {\n @case ('lookupValue') {\n @if (\n boardService.config.clrTypesWithIcon &&\n boardService.config.clrTypesWithIcon[property.clrType] &&\n card.entity[property.name][boardService.config.clrTypesWithIcon[property.clrType]]?.trim()\n ) {\n \n }\n\n
    \n {{ card.entity[property.name].name }}\n
    \n }\n\n @case ('string') {\n \n }\n\n @case ('integer') {\n \n }\n\n @case ('decimal') {\n \n }\n\n @case ('empty') {\n \n }\n\n @default {\n Template for {{ property.type }} not implemented!\n }\n }\n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n input,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { LocalStorageService } from 'ngx-webstorage';\n\nimport { debounceTime } from 'rxjs';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\n\nimport { SortItem } from './board-sort-button.interface';\n\n@Component({\n selector: 'tmt-board-sort-button',\n templateUrl: './board-sort-button.component.html',\n styleUrl: './board-sort-button.component.scss',\n host: {\n class: 'btn-group',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardSortButtonComponent implements OnInit, OnChanges {\n private listRef = viewChild>('list');\n /** Entity properties as SortItems. */\n public properties = input.required();\n /** Local storage key. */\n protected storageName = input();\n\n public orderQuery = output();\n\n public form = this.fb.group({\n search: null,\n });\n public focusedProperty = signal(null);\n public filteredProperties = signal([]);\n public sortTarget = signal(null);\n public sortDirection = signal<'asc' | 'desc'>('asc');\n\n private isListOpened: boolean;\n private popupId: string;\n\n constructor(\n private infoPopupService: InfoPopupService,\n private el: ElementRef,\n private fb: UntypedFormBuilder,\n private localStorageService: LocalStorageService,\n private scrollToService: ScrollToService,\n ) {\n effect(() => {\n const target = this.sortTarget();\n const direction = this.sortDirection();\n const result = target\n ? `${target.isNavigation ? target.key + '/name' : target.key} ${direction}`\n : '';\n\n if (this.storageName) {\n this.localStorageService.store(this.storageName(), {\n target,\n direction,\n });\n }\n\n this.orderQuery.emit(result);\n });\n\n this.form.controls['search'].valueChanges\n .pipe(\n debounceTime(Constants.textInputClientDebounce),\n takeUntilDestroyed(),\n )\n .subscribe((value: string) => {\n this.filteredProperties.set(this.getFiltered(value));\n });\n }\n\n public ngOnInit(): void {\n if (this.storageName) {\n const value = this.localStorageService.retrieve(this.storageName());\n\n if (value?.target) {\n this.sortTarget.set(value.target);\n this.sortDirection.set(value.direction);\n }\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['properties']) {\n this.filteredProperties.set(this.getFiltered(this.form.value['search']));\n }\n }\n\n /** Toggles popup visibility with list of properties. */\n public toggleList(): void {\n this.isListOpened = !!this.infoPopupService.getById(this.popupId);\n\n if (this.isListOpened) {\n this.infoPopupService.close(this.popupId);\n return;\n }\n\n this.popupId = this.infoPopupService.open({\n target: this.el.nativeElement,\n data: {\n templateRef: this.listRef(),\n },\n isHideArrow: true,\n containerStyles: {\n padding: 0,\n },\n onDestroy: () => this.form.patchValue({ search: '' }),\n });\n }\n\n /**\n * Changes sorting target.\n *\n * @param item Sort item.\n */\n public changeTarget(item: SortItem): void {\n this.toggleList();\n this.sortTarget.set(item.isDefault ? null : item);\n }\n\n /** Toggles sorting direction. */\n public toggleDirection(): void {\n this.sortDirection.update((value) => (value === 'asc' ? 'desc' : 'asc'));\n }\n\n /**\n * Keyboard handler.\n *\n * @param event\n */\n public onKeyDown(event: KeyboardEvent): void {\n const enterCode = 'Enter';\n const downCode = 'ArrowDown';\n const upCode = 'ArrowUp';\n const escCode = 'Escape';\n\n switch (event.code) {\n case downCode: {\n if (!this.focusedProperty()) {\n this.focusedProperty.set(this.filteredProperties()[0]);\n } else {\n const index = this.filteredProperties().findIndex(\n (v) => v.key === this.focusedProperty().key,\n );\n\n this.focusedProperty.set(\n this.filteredProperties()[index + 1] ?? this.focusedProperty(),\n );\n }\n break;\n }\n case upCode:\n {\n if (!this.focusedProperty()) {\n this.focusedProperty.set(\n this.filteredProperties[this.properties.length - 1],\n );\n } else {\n const index = this.filteredProperties().findIndex(\n (v) => v.key === this.focusedProperty().key,\n );\n\n this.focusedProperty.set(\n this.filteredProperties()[index - 1] ?? this.focusedProperty(),\n );\n }\n }\n break;\n case enterCode: {\n this.sortTarget.set(this.focusedProperty());\n this.toggleList();\n break;\n }\n case escCode: {\n this.toggleList();\n break;\n }\n }\n\n if ([downCode, upCode].includes(event.code)) {\n setTimeout(() => {\n this.scrollToFocusedItem();\n });\n }\n\n if ([downCode, upCode, escCode, enterCode].includes(event.code)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n private scrollToFocusedItem(): void {\n if (this.focusedProperty()) {\n this.scrollToService.scrollTo(\n `${this.focusedProperty().key}`,\n 'selecting-list',\n );\n }\n }\n\n private getFiltered(value?: string): SortItem[] {\n return !value?.length\n ? this.properties().slice(0)\n : this.properties()\n .slice(0)\n .filter((property) =>\n property.name.toLowerCase().includes(value.toLowerCase()),\n );\n }\n}\n","@if (sortTarget()) {\n \n \n \n}\n\n\n @if (!sortTarget()) {\n \n {{ 'shared2.actions.sort' | translate }}\n } @else {\n {{ sortTarget().name }}\n }\n\n\n\n
    \n
    \n \n
    \n\n \n @for (property of filteredProperties(); track $index) {\n \n {{ property.name }}\n
    \n } @empty {\n

    \n {{ 'shared.noOptions' | translate }}\n

    \n }\n \n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { filter, switchMap } from 'rxjs';\n\nimport {\n DragAndDropData,\n DragAndDropOptions,\n} from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\nimport { DragAndDropDirective } from 'src/app/shared/directives/drag-and-drop/drag-and-drop.directive';\nimport { LocalDragDropService } from 'src/app/shared/services/drag-drop';\n\nimport {\n BoardCardView,\n BoardColumn,\n BoardEvent,\n} from 'src/app/boards/models/board.interface';\nimport { BoardService } from 'src/app/boards/services/board.service';\n\n@Component({\n selector: 'tmt-board-track',\n templateUrl: './board-track.component.html',\n styleUrl: './board-track.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardTrackComponent implements OnInit, OnDestroy {\n @ViewChild(DragAndDropDirective) private dndDirective: DragAndDropDirective;\n\n public cards = input.required();\n public column = input.required();\n\n public isShowAlert = false;\n public ddOptions: DragAndDropOptions;\n public dragDisabled: boolean;\n public dropDisabled: boolean;\n public pending = signal(false);\n\n private endOfTrackObserver: IntersectionObserver;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public boardService: BoardService,\n private dragDropService: LocalDragDropService,\n private cdr: ChangeDetectorRef,\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n effect(() => {\n this.cards();\n this.dndDirective?.initStyles();\n });\n }\n\n public ngOnInit(): void {\n this.ddOptions = {\n group: {\n name: this.column().id,\n put: this.boardService.columnsDependencies[this.column().id],\n key: 'cards',\n },\n draggableClass: 'draggable',\n listDirection: 'vertical',\n listGap: 8,\n };\n\n this.dragDropService.onItemUpdate$\n .pipe(\n filter((v) => !!v && v.fromGroupName === this.column().id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((data: DragAndDropData) => {\n this.boardService.updateCard(data.item.id, data);\n });\n\n this.boardService.event$\n .pipe(\n filter(\n (event) =>\n event.target === 'track' &&\n (event.id === this.column().id || !event.id),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => this.handleEvent(event));\n\n this.initIntersectionObserver();\n }\n\n public ngOnDestroy(): void {\n this.endOfTrackObserver.disconnect();\n }\n\n private handleEvent(event: BoardEvent): void {\n switch (event.action) {\n case 'rollBackFrom':\n case 'moveThroughCardMenu':\n case 'rollBackTo':\n this.runAnimation(event);\n break;\n case 'disableDrag':\n this.dragDisabled = !!event.data;\n this.cdr.markForCheck();\n break;\n case 'updated':\n this.ddOptions = {\n ...this.ddOptions,\n group: {\n ...this.ddOptions.group,\n put: this.boardService.columnsDependencies[this.column().id],\n },\n };\n this.pending.set(false);\n this.cdr.markForCheck();\n break;\n case 'restrictTransition':\n if (this.isShowAlert && !event.data) {\n // NOTE: In case when user dragged card before the alert was shown\n this.dndDirective.restoreTransform(null, null, false);\n }\n\n this.isShowAlert = event.data;\n this.dropDisabled = event.data;\n this.dragDisabled = event.data;\n this.cdr.markForCheck();\n break;\n }\n }\n\n private runAnimation(\n event: BoardEvent>,\n ): void {\n if (event.action === 'rollBackFrom') {\n const element = this.el.nativeElement\n .querySelectorAll(`.${this.ddOptions.draggableClass}`)\n .item(event.data.newIndex);\n\n this.dragDropService.data.clone.element =\n this.dndDirective.makeClone(element);\n\n this.dndDirective\n .destroyElement(element, event.data.newIndex)\n .pipe(\n switchMap(() => this.dndDirective.restoreTransform(0, null, true)),\n )\n .subscribe(() => {\n this.boardService.event$.next({\n target: 'track',\n id: null,\n action: 'disableDrag',\n data: false,\n });\n this.pending.set(false);\n this.cdr.markForCheck();\n });\n }\n\n if (event.action === 'rollBackTo') {\n this.dragDropService.setOnEnd();\n }\n\n if (event.action === 'moveThroughCardMenu') {\n const element = this.el.nativeElement\n .querySelectorAll(`.${this.ddOptions.draggableClass}`)\n .item(event.data.oldIndex);\n\n this.dragDropService.data = {\n item: event.data.item,\n oldIndex: event.data.oldIndex,\n newIndex: event.data.newIndex,\n fromGroupName: event.id,\n toGroupName: event.data.toGroupName ?? event.id,\n fromGroupKey: 'cards',\n clone: {\n element: this.dndDirective.makeClone(element),\n offsetX: 0,\n offsetY: 0,\n lastDragX: 0,\n lastDragY: 0,\n oldPosition: {\n x:\n element.getBoundingClientRect().x -\n this.el.nativeElement.getBoundingClientRect().left,\n y:\n element.getBoundingClientRect().y -\n this.el.nativeElement.getBoundingClientRect().top,\n },\n },\n };\n\n this.renderer.setStyle(\n this.dragDropService.data.clone.element,\n 'z-index',\n '0',\n );\n\n this.dndDirective.makePlaceholder();\n this.dndDirective\n .destroyElement(element, event.data.oldIndex)\n .subscribe(() => {\n this.dndDirective.restoreTransform(\n Math.min(event.data.oldIndex, event.data.newIndex),\n null,\n event.data.newIndex > event.data.oldIndex,\n );\n this.dragDropService.setOnDrop();\n this.cdr.markForCheck();\n });\n }\n }\n\n private loadCards(): void {\n this.pending.set(\n this.boardService.loadCardsByColumn(this.column()) !== false,\n );\n }\n\n private initIntersectionObserver(): void {\n this.endOfTrackObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.loadCards();\n }\n });\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: 1.0,\n },\n );\n\n this.endOfTrackObserver.observe(\n this.el.nativeElement.querySelector('.end-of-track'),\n );\n }\n}\n","\n @if (isShowAlert) {\n
    \n {{ 'components.boardTrackComponent.messages.transitionAlert' | translate }}\n
    \n }\n\n @for (card of cards(); track card.id) {\n \n }\n\n
    \n\n \n\n","import { InjectionToken, Type } from '@angular/core';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { BoardCardViewProperties } from 'src/app/settings-app/boards/model/board.model';\n\nexport interface BoardConfig {\n /** Board ID. */\n id?: string;\n /** Board title. */\n title?: string;\n /** Entity type. */\n entityType: string;\n /** Entity endpoint name. */\n collection: string;\n /** Cards endpoint name. */\n cardCollection?: string;\n /** Entity type of custom field. */\n customFieldEntityType?: string;\n /** Entity filter service. */\n filterService: typeof FilterService;\n /** Indicates is filter query has nested property. Like `{ project: {property: Value } ... }` */\n isNestedFilterQuery?: boolean;\n /** Correlation of card properties to entity properties. */\n cardStructure: BoardCardViewProperties[];\n /** Indicates is columns editing allowed. */\n editAllowed?: boolean;\n /** Item name from `CreateMenuService`. */\n createMenuButton?: string;\n /** Component for opening in offCanvas. */\n offCanvasComponent?: Type;\n /** Creation component. Uses with `offCanvasComponent` for opening in off canvas after creation. */\n creationComponent?: Type;\n /** Types with additional properties. Need for rendering icon in `BoardMiniCardComponent`. */\n clrTypesWithIcon?: Record\n}\n\nexport const BOARD_CONFIG = new InjectionToken('boardConfig');\n","import { ProjectFilterService } from 'src/app/projects/list/project-filter/project-filter.service';\nimport { WorkflowTaskFilterService } from 'src/app/workflow-tasks/list/filter/workflow-task-filter.service';\nimport { RequestFilterService } from 'src/app/resource-requests/list/request-filter/request-filter.service';\nimport { RateMatricesLinesFilterService } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.service';\nimport { DealListFilterService } from 'src/app/deals/list/deal-list-filter/deal-list-filter.service';\nimport { IssueFilterService } from 'src/app/issues/list/filter/issue-filter.service';\nimport { IssueCardComponent } from 'src/app/issues/card/issue-card.component';\nimport { IssueCreationComponent } from 'src/app/issues/creation/issue-creation.component';\nimport { ActsFilterService } from 'src/app/acts-of-acceptance/list/acts-filter/acts-filter.service';\nimport { InvoiceFilterService } from 'src/app/billing/invoices/list/invoice-filter/invoice-filter.service';\n\nimport { BoardConfig } from './board-config.interface';\n\nexport const REQUIRED_PROPERTIES: string[] = ['Name'];\n\nexport const BOARD_WORKFLOW_TASK: BoardConfig = {\n entityType: 'WorkflowTask',\n collection: 'WorkflowTasks',\n cardCollection: 'WorkflowTaskBoardCards',\n filterService: WorkflowTaskFilterService,\n cardStructure: [],\n};\n\nexport const BOARD_PROJECT: BoardConfig = {\n entityType: 'Project',\n collection: 'Projects',\n cardCollection: 'ProjectBoardCards',\n customFieldEntityType: 'Project',\n filterService: ProjectFilterService,\n isNestedFilterQuery: true,\n cardStructure: [],\n createMenuButton: 'project',\n};\n\nexport const BOARD_ISSUE: BoardConfig = {\n entityType: 'Issue',\n collection: 'Issues',\n cardCollection: 'IssueBoardCards',\n customFieldEntityType: 'Issue',\n filterService: IssueFilterService,\n cardStructure: [],\n offCanvasComponent: IssueCardComponent,\n creationComponent: IssueCreationComponent,\n clrTypesWithIcon: {\n issueType: 'iconClass',\n },\n};\n\nexport const BOARD_DEAL: BoardConfig = {\n entityType: 'Deal',\n collection: 'Deals',\n cardCollection: 'DealBoardCards',\n customFieldEntityType: 'Deal',\n filterService: DealListFilterService,\n createMenuButton: 'deal',\n cardStructure: [],\n};\n\nexport const BOARD_RESOURCE_REQUEST: BoardConfig = {\n entityType: 'ResourceRequest',\n collection: 'ResourceRequests',\n cardCollection: 'ResourceRequestBoardCards',\n filterService: RequestFilterService,\n cardStructure: [],\n createMenuButton: 'resourceRequest',\n};\n\nexport const BOARD_RATE_MATRIX: BoardConfig = {\n entityType: 'RateMatrix',\n collection: 'RateMatrices',\n cardCollection: 'RateMatrixBoardCards',\n filterService: RateMatricesLinesFilterService,\n cardStructure: [],\n};\n\nexport const BOARD_ACT: BoardConfig = {\n entityType: 'ActOfAcceptance',\n collection: 'ActsOfAcceptance',\n cardCollection: 'ActOfAcceptanceBoardCards',\n filterService: ActsFilterService,\n createMenuButton: 'actOfAcceptance',\n cardStructure: [],\n};\n\nexport const BOARD_INVOICE: BoardConfig = {\n entityType: 'Invoice',\n collection: 'Invoices',\n cardCollection: 'InvoiceBoardCards',\n filterService: InvoiceFilterService,\n createMenuButton: 'invoice',\n cardStructure: [],\n};\n\nexport const CONFIG_MAP: ReadonlyMap = new Map([\n ['Project', BOARD_PROJECT],\n ['Issue', BOARD_ISSUE],\n ['ResourceRequest', BOARD_RESOURCE_REQUEST],\n ['RateMatrix', BOARD_RATE_MATRIX],\n ['WorkflowTask', BOARD_WORKFLOW_TASK],\n ['Deal', BOARD_DEAL],\n ['ActOfAcceptance', BOARD_ACT],\n ['Invoice', BOARD_INVOICE],\n]);\n","import { MenuItem } from 'src/app/core/menu.service';\n\nimport { CodedEntity } from 'src/app/shared/models/entities/coded-entity.model';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\nexport interface BoardCardEntity {\n /** Board card. */\n card: BoardCard;\n /** Entity. */\n entity: T;\n}\n\nexport interface BoardCard extends CodedEntity {\n /** Board id. */\n boardId: string;\n /** Column id */\n columnId: string;\n /** Entity id. */\n entityId: string;\n /** Card index, need for order. */\n index: string;\n}\n\nexport interface BoardCardView {\n /** Card id. */\n id: string;\n /** Column id. */\n columnId: string;\n /** Action on click. */\n onClick?: () => void;\n /** Card actions in menu. */\n actions?: MenuItem[];\n /** Entity properties */\n entity: T;\n /** Card index. */\n index: string;\n /** Force command. When the card index changes, this command will overwrite the default behavior. */\n forceCommand?: MoveCommand;\n}\n\nexport interface BoardCardContext {\n /** Current card index. */\n oldIndex: number;\n /** Board card. */\n item: BoardCardView;\n}\n\nexport interface BoardColumn extends NamedEntity {\n /** Board Id. */\n boardId: string;\n /** State id. */\n stateId: string;\n /** Background color. */\n style: string;\n /** Sort property. */\n index: number;\n /** Indicates whether column is system protected. */\n isInitial: boolean;\n}\n\nexport interface BoardColumnView extends BoardColumn {\n /** State. */\n state?: State;\n /** Column actions. */\n actions: MenuItem[];\n /** Cards counter. */\n count: number;\n}\n\nexport type BoardColumnMode = 'states' | 'custom';\n\nexport interface BoardLocalSettings {\n /** Column type to show in board. */\n columnMode: BoardColumnMode;\n /** TODO: soon */\n groupBy?: string;\n}\n\nexport type MoveCommand = 'MoveToTop' | 'MoveAfter' | 'MoveToBottom';\n\nexport type BoardEvent = {\n /** Target id. */\n id?: string;\n /** Transferred data. */\n data?: T;\n} & BoardEventTarget;\n\nexport type BoardTrackEvent =\n | 'rollBackFrom'\n | 'rollBackTo'\n | 'disableDrag'\n | 'moveThroughCardMenu'\n | 'restrictTransition'\n | 'updated';\nexport type BoardColumnEvent = 'updated';\nexport type BoardCardEvent = 'updated';\n\ntype BoardEventTarget =\n | { target: 'track'; action: BoardTrackEvent }\n | { target: 'column'; action: BoardColumnEvent }\n | { target: 'card'; action: BoardCardEvent }\n | { target: 'board'; action: 'updated' };\n","export * from './board-config.interface';\nexport * from './board.config';\nexport * from './board.interface';\nexport * from './paging.interface';\n","export interface Paging {\n currentPage: number;\n loadedAll: boolean;\n pending?: boolean;\n}\n","import { DestroyRef, Inject, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StateService } from '@uirouter/core';\n\nimport {\n catchError,\n firstValueFrom,\n forkJoin,\n map,\n Observable,\n of,\n tap,\n} from 'rxjs';\nimport _ from 'lodash';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport { LifecycleInfo } from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { TransitionFormModalComponent } from 'src/app/shared/components/features/transition-form-modal/transition-form-modal.component';\nimport {\n MetaEntity,\n MetaEntityPropertyKind,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Exception } from 'src/app/shared/models/exception';\n\nimport { Board } from 'src/app/settings-app/boards/model/board.model';\n\nimport {\n BOARD_CONFIG,\n BoardCard,\n BoardCardEntity,\n BoardCardView,\n BoardColumn,\n BoardColumnView,\n BoardConfig,\n MoveCommand,\n Paging,\n} from 'src/app/boards/models';\n\n@Injectable()\nexport class BoardDataService {\n public states: State[] = [];\n public metaEntity: MetaEntity;\n public entityLifecycleInfo = new Map();\n public readonly boardColumnsCollection =\n this.dataService.collection('BoardColumns');\n public readonly boardCardsCollection =\n this.dataService.collection('BoardCards');\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private dataService: DataService,\n private notificationService: NotificationService,\n private translateService: TranslateService,\n private messageService: MessageService,\n private appService: AppService,\n private stateService: StateService,\n private navigationService: NavigationService,\n private modal: NgbModal,\n private blockUI: BlockUIService,\n @Inject(BOARD_CONFIG) private config: BoardConfig | null,\n ) {\n this.metaEntity = this.appService.getMetaEntity(this.config.entityType);\n }\n\n /**\n * Gets board configs. Also loads states and saves them.\n *\n * @param filter entity filter for getCardsCount method.\n * @returns board column views.\n */\n public getBoardConfig(filter: any): Observable {\n return forkJoin([\n this.dataService\n .collection('Boards')\n .entity(this.config.id)\n .get({\n select: ['id', 'cardProperties', 'cardViewProperties'],\n expand: {\n columns: {\n select: ['*'],\n },\n },\n }),\n this.dataService\n .collection(this.config.collection)\n .function('GetStates')\n .query(null, {\n select: ['id', 'code', 'name', 'index', 'style'],\n orderBy: 'index',\n }),\n this.getCardsCount(filter),\n ]).pipe(\n map(([board, states, counts]) => {\n this.config.cardStructure = board.cardViewProperties;\n this.initCardStructure();\n this.states = states;\n let columnViews: BoardColumnView[];\n\n if (board.columns.length) {\n columnViews = board.columns.map((column) => ({\n ...column,\n state: states.find((state) => state.id === column.stateId),\n actions: [],\n count:\n counts.find((v) => v.card.columnId === column.id)?.count ?? 0,\n }));\n }\n\n return _.sortBy(columnViews, 'index');\n }),\n );\n }\n\n /**\n * Gets cards list.\n *\n * @param filter entity filter, not for cards.\n * @returns board cards.\n */\n public getCards(\n filter: { and: Array } | any,\n orderBy?: string,\n columnId?: string,\n pageSettings?: Partial & { pageSize: number },\n ): Observable {\n const query: any = {\n expand: {\n entity: this.getEntityQuery(),\n card: { select: ['*'] },\n },\n filter: {\n card: {\n boardId: { type: 'guid', value: this.config.id },\n },\n },\n orderBy: orderBy ? `entity/${orderBy}` : 'card/index',\n };\n\n if (columnId) {\n _.set(query, 'filter.card.columnId', { type: 'guid', value: columnId });\n }\n\n if (pageSettings) {\n query.top = pageSettings.pageSize;\n query.skip = pageSettings.pageSize * pageSettings.currentPage;\n }\n\n const transformedFilter = this.transformFilter(filter);\n\n if (transformedFilter) {\n query.filter = {\n ...query.filter,\n entity: transformedFilter,\n };\n }\n\n return this.dataService\n .collection(this.config.cardCollection)\n .query[]>(query)\n .pipe(\n map((values) =>\n values.map(({ card, entity }) => ({\n id: card.id,\n columnId: card.columnId,\n entity,\n index: card.index,\n })),\n ),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Gets lifecycle information for entity.\n *\n * @param card Board card.\n * @returns lifecycle information.\n */\n public getLifecycleInfo(card: BoardCardView): Observable {\n return this.dataService\n .collection(this.config.collection)\n .entity(card.entity.id)\n .function('GetLifecycleInfo')\n .get()\n .pipe(\n tap((lifecycleInfo) =>\n this.entityLifecycleInfo.set(card.entity.id, lifecycleInfo),\n ),\n );\n }\n\n /**\n * Changes entity state.\n *\n * @param card Board card.\n * @param nextStateId New entity state id.\n * @returns `true` if state is changed, otherwise `false`.\n */\n public async setState(\n card: BoardCardView,\n nextStateId: string,\n ): Promise {\n try {\n let lifecycleInfo = this.entityLifecycleInfo.get(card.entity.id);\n\n if (!lifecycleInfo) {\n this.blockUI.start();\n lifecycleInfo = await firstValueFrom(this.getLifecycleInfo(card));\n this.blockUI.stop();\n }\n\n if (lifecycleInfo.workflowIndicatorData) {\n await this.messageService.confirmLocal(\n this.translateService.instant(\n 'shared.workflow.workflowCancelConfirmation',\n ),\n );\n }\n\n const transition = lifecycleInfo.transitions.find(\n (t) => t.nextStateId === nextStateId,\n );\n\n if (!transition) {\n this.notificationService.errorLocal('shared2.messages.transitionError');\n return false;\n }\n\n let data: any = {\n stateId: nextStateId,\n transitionFormValue: {\n propertyValues: [],\n comment: '',\n },\n };\n\n if (transition.hasTransitionForm) {\n const ref = this.modal.open(TransitionFormModalComponent);\n const instance = ref.componentInstance as TransitionFormModalComponent;\n instance.collection = this.config.collection;\n instance.entityId = card.entity.id;\n instance.stateId = nextStateId;\n instance.transitionId = transition.id;\n instance.metaEntity = this.metaEntity;\n\n data = await ref.result;\n }\n\n if (!data) {\n return false;\n }\n\n this.blockUI.start();\n await firstValueFrom(\n this.dataService\n .collection(this.config.collection)\n .entity(card.entity.id)\n .action('SetState')\n .execute(data),\n );\n this.blockUI.stop();\n\n this.entityLifecycleInfo.delete(card.entity.id);\n\n return true;\n } catch (error) {\n this.blockUI.stop();\n\n if (error?.message) {\n this.notificationService.error(error.message);\n }\n }\n }\n\n /**\n * Prepares column to save.\n *\n * @returns Prepared column to save.\n * @param columnView\n */\n public prepareColumnToSave(\n columnView: Partial,\n ): BoardColumn {\n return {\n id: columnView.id,\n boardId: this.config.id,\n stateId: columnView.stateId,\n style: columnView.style,\n index: columnView.index,\n name: columnView.name,\n isInitial: columnView.isInitial,\n };\n }\n\n /**\n * Updates board card.\n *\n * @param id board card id.\n * @param data board card properties.\n * @returns `true` if update succeeded, otherwise `false`.\n */\n public updateCard(id: string, data: Partial): Observable {\n return this.boardCardsCollection\n .entity(id)\n .patch(data)\n .pipe(\n map(() => true),\n catchError((error: Exception) => {\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Changes card index.\n *\n * @param card\n * @param columnId new column id.\n * @param afterCardId previous card id.\n * @returns `true` if update succeeded, otherwise `false`.\n */\n public moveCard(\n card: BoardCardView,\n columnId: string,\n afterCardId?: string,\n ): Observable {\n let command: MoveCommand = card.forceCommand;\n\n if (command && command !== 'MoveAfter') {\n afterCardId = undefined;\n }\n\n command ??= afterCardId ? 'MoveAfter' : 'MoveToTop';\n card.forceCommand = null;\n\n return this.boardCardsCollection\n .entity(card.id)\n .action(command)\n .execute({ columnId, afterCardId })\n .pipe(\n map(() => true),\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Updates board configuration.\n *\n * @param data board parameters.\n * @returns `true` if update succeeded, otherwise `false`.\n */\n public updateBoard(data: Partial): Observable {\n return this.dataService\n .collection('Boards')\n .entity(this.config.id)\n .patch(data)\n .pipe(\n map(() => true),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Adds columns to the board.\n * @param data column.\n * @returns `true` if add operation succeeded, otherwise `false`.\n */\n public addColumn(data: Partial): Observable {\n return this.boardColumnsCollection.insert(data).pipe(\n map(() => true),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Updates column.\n * @param id column Id.\n * @param data column data to update.\n * @returns `true` if update succeeded, otherwise `false`.\n */\n public updateColumn(\n id: string,\n data: Partial,\n ): Observable {\n delete data.id;\n return this.boardColumnsCollection\n .entity(id)\n .patch(data)\n .pipe(\n map(() => true),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Removes column from the board.\n * @param id column id.\n * @returns `true` if remove operation succeeded, otherwise `false`.\n */\n public removeColumn(id: string): Observable {\n return this.boardColumnsCollection\n .entity(id)\n .delete()\n .pipe(\n map(() => true),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Deletes board. */\n public removeBoard(): void {\n this.messageService.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.dataService\n .collection('Boards')\n .entity(this.config.id)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal('shared.deleteCompleted');\n this.stateService.go('currentTimesheet', {\n navigation: 'my.currentTimesheet',\n });\n this.navigationService.reloadCustomNavigationItems();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n private getCardsCount(\n filter: any,\n ): Observable; count: number }>> {\n const query: any = {\n transform: {\n filter: {\n card: {\n boardId: { type: 'guid', value: this.config.id },\n },\n },\n groupBy: {\n properties: [`card/columnId`],\n transform: {\n aggregate: {\n [`card/id`]: {\n with: 'countdistinct',\n as: 'count',\n },\n },\n },\n },\n },\n };\n\n const transformedFilter = this.transformFilter(filter);\n\n if (transformedFilter) {\n _.set(query, 'transform.filter.entity', transformedFilter);\n }\n\n return this.dataService.collection(this.config.cardCollection).query(query);\n }\n\n private getEntityQuery(): Record {\n const clrTypesWithIcon: Record =\n this.config.clrTypesWithIcon;\n const select: string[] = ['id', 'stateId', 'isActive'];\n const expand: Record = {\n state: {\n select: ['id', 'code'],\n },\n };\n\n this.config.cardStructure.forEach((property) => {\n switch (property.kind) {\n case MetaEntityPropertyKind.primitive:\n select.push(property.name);\n break;\n case MetaEntityPropertyKind.navigation:\n case MetaEntityPropertyKind.directory:\n expand[property.name] = {\n select: ['id', 'name'],\n };\n\n if (\n clrTypesWithIcon &&\n clrTypesWithIcon[_.camelCase(property.clrType)]\n ) {\n expand[property.name]['select'].push(\n clrTypesWithIcon[_.camelCase(property.clrType)],\n );\n }\n\n break;\n // case MetaEntityPropertyKind.complex:\n // select.push(property.name);\n // break;\n }\n });\n\n return {\n select,\n expand,\n };\n }\n\n private initCardStructure(): void {\n this.config.cardStructure.forEach((property) => {\n property.name = _.camelCase(property.name);\n property.clrType = _.camelCase(property.clrType);\n });\n }\n\n /** Transforms an entity filter to a proper object. */\n private transformFilter(filter: any): Record | null {\n if (_.isEmpty(filter)) {\n return null;\n }\n\n // TODO: remove it after filterService refactoring (filter must be an object!)\n const entityFilter = Array.isArray(filter)\n ? filter.reduce((result, item) => {\n Object.entries(item).forEach(([key, value]) => {\n if (key in result && typeof value === 'object') {\n result[key] = { ...result[key], ...value };\n } else {\n result[key] = value;\n }\n });\n return result;\n }, {})\n : filter;\n\n // TODO: remove it after filterService refactoring\n for (const key of Object.keys(entityFilter)) {\n if (Array.isArray(entityFilter[key]) && !entityFilter[key].length) {\n delete entityFilter[key];\n }\n\n if (key === 'and' && !Array.isArray(entityFilter[key])) {\n Object.entries(entityFilter[key]).forEach(([property, value]) => {\n entityFilter[property] = value;\n });\n\n delete entityFilter[key];\n }\n }\n\n if (_.isEmpty(entityFilter)) {\n return null;\n }\n\n return Array.isArray(filter) ? { and: entityFilter } : entityFilter;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\nimport { BoardFilterComponent } from 'src/app/boards/components/board/filter/board-filter.component';\n\n@Injectable()\nexport class BoardFilterService extends FilterService {\n public override component: Type = BoardFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = true;\n public override placeholder = 'expenses.list.filter.placeholder';\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n };\n\n public override getODataFilter(): Record[] {\n const result: Record[] = [];\n\n const text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n result.push(\n this.getTextFilter(['name', 'description'], this.getClearText(text)),\n );\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n return result;\n }\n\n protected override getDefaultValues(): Record {\n return {\n states: null,\n };\n }\n}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { Title } from '@angular/platform-browser';\n\nimport { StateService } from '@uirouter/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n catchError,\n concatMap,\n filter,\n first,\n firstValueFrom,\n forkJoin,\n map,\n merge,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport _ from 'lodash';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { MenuService, MenuItem, MenuSubItem } from 'src/app/core/menu.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\nimport { OffCanvasEntry } from 'src/app/shared/models/off-canvas/off-canvas-entry.interface';\nimport { LocalStringHelper } from 'src/app/shared/models/enums/language.enum';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { LocalDragDropService } from 'src/app/shared/services/drag-drop';\nimport { DragAndDropData } from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { MetaEntityPropertyKind } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nimport { BoardCardViewProperties } from 'src/app/settings-app/boards/model/board.model';\n\nimport {\n BoardColumnMode,\n BoardEvent,\n BoardColumnView,\n BoardCardView,\n Paging,\n BOARD_CONFIG,\n BoardConfig,\n BoardLocalSettings,\n BoardCardContext,\n BoardColumn,\n} from 'src/app/boards/models';\nimport { BoardDataService } from 'src/app/boards/services/board-data.service';\nimport { BoardColumnHeaderFormComponent } from 'src/app/boards/components/board/column-header-form/board-column-header-form.component';\nimport { BoardMiniCardBuilderModalComponent } from 'src/app/boards/components/board/mini-card-builder-modal/board-mini-card-builder-modal.component';\nimport { SortItem } from 'src/app/boards/components/board/sort-button/board-sort-button.interface';\n\n@Injectable()\nexport class BoardService implements OnDestroy {\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n\n private _columnMode = signal('states');\n public columnMode = computed(this._columnMode);\n\n public event$ = new Subject();\n public columnsDependencies: Record = {};\n public columns: BoardColumnView[] = [];\n public cards: BoardCardView[] = [];\n public cardsByColumns: Record = {};\n public pagingByColumns = new Map();\n public sortItems: SortItem[] = [];\n public sortChange$ = new BehaviorSubject(null);\n\n private readonly pageSize = 50;\n private readonly pageSizeOnInit = this.pageSize * 1;\n private readonly destroyRef = inject(DestroyRef);\n\n public get activeColumns(): BoardColumnView[] {\n return this.columns.filter((column) =>\n this._columnMode() === 'states' ? !!column.stateId : !column.state,\n );\n }\n\n constructor(\n @Inject(BOARD_CONFIG) public readonly config: BoardConfig | null,\n private boardDataService: BoardDataService,\n private offCanvasService: OffCanvasService,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private filterService: FilterService,\n private dragDropService: LocalDragDropService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private menuService: MenuService,\n private modal: NgbModal,\n private stateService: StateService,\n private navigationService: NavigationService,\n private blockUI: BlockUIService,\n private appService: AppService,\n private translateService: TranslateService,\n private title: Title,\n @Inject(DOCUMENT) private document: Document,\n localStorageService: LocalStorageService,\n ) {\n const localSettings: BoardLocalSettings | null =\n localStorageService.retrieve(`board_settings_` + config.id) ?? {};\n\n this._columnMode.set(localSettings?.columnMode ?? 'states');\n\n effect(() => {\n const columnMode = this._columnMode();\n\n this.columns.length = 0;\n this.event$.next({\n action: 'updated',\n target: 'board',\n });\n\n localStorageService.store(\n `board_settings_` + config.id,\n Object.assign(localSettings, { columnMode, groupBy: null }),\n );\n });\n\n this.initSubscriptions();\n }\n\n public ngOnDestroy(): void {\n this.infoPopupService.close();\n }\n\n /**\n * Opens card in `offCanvas` (aside).\n *\n * @param entityId card entity id.\n */\n public openOffCanvas(entityId: string): void {\n const options: OffCanvasEntry = {\n content: {\n component: this.config.offCanvasComponent,\n componentParams: {\n inputs: {\n entityId,\n },\n injector: Injector.create({\n providers: [\n {\n provide: 'entityId',\n useValue: entityId,\n },\n ActionPanelService,\n ],\n parent: this.injector,\n }),\n },\n },\n exclude: '.board__task',\n };\n\n if (this.offCanvasService.offCanvasEntry) {\n this.offCanvasService.reRenderContent(options.content);\n return;\n }\n\n this.offCanvasService.openOffCanvas(options);\n }\n\n /** Opens card builder modal. If modal result if successful, reloads board with new card structure. */\n public openCardBuilder(): void {\n const modalRef = this.modal.open(BoardMiniCardBuilderModalComponent, {\n injector: this.injector,\n });\n\n modalRef.result.then(\n (result: BoardCardViewProperties[] | undefined) => {\n if (result) {\n this.loadBoard().subscribe();\n }\n },\n () => null,\n );\n }\n\n /** Changes state to board settings. */\n public openSettings(): void {\n this.stateService.go('settings.board', {\n entityId: this.config.id,\n routeMode: RouteMode.continue,\n navigation: this.navigationService.selectedNavigationItem?.name,\n });\n }\n\n /**\n * Loads board's states and tasks.\n *\n * @returns board card views.\n */\n public loadBoard(): Observable[]> {\n if (!this.config) {\n return of(null);\n }\n\n this.blockUI.start();\n\n return this.boardDataService.getBoardConfig(this.getFilter()).pipe(\n tap((columns) => {\n this.columns = columns;\n this.initColumnsDependencies();\n this.initColumnsSettings();\n this.initSortItems();\n }),\n switchMap(() => {\n const activeColumns = this.activeColumns;\n return activeColumns.length\n ? forkJoin(\n this.activeColumns.map((column) =>\n this.boardDataService.getCards(\n this.getFilter(),\n this.sortChange$.getValue(),\n column.id,\n {\n pageSize: this.pageSizeOnInit,\n currentPage: 0,\n },\n ),\n ),\n )\n : of([]);\n }),\n map((cards) => cards.flat()),\n tap((cards) => {\n this.cards = cards;\n this.cardsByColumns = _.groupBy(\n this.cards,\n (item) => `${item['columnId']}`,\n );\n\n for (const column of this.columns) {\n if (!this.cardsByColumns[column.id]) {\n this.cardsByColumns[column.id] = [];\n }\n\n this.pagingByColumns.set(column.id, {\n currentPage: this.pageSizeOnInit / this.pageSize,\n loadedAll: this.cardsByColumns[column.id].length < this.pageSize,\n });\n }\n\n this.initCardActions(this.cards);\n this.event$.next({\n target: 'board',\n action: 'updated',\n });\n this.event$.next({\n target: 'track',\n action: 'updated',\n });\n\n this.blockUI.stop();\n }),\n catchError((error) => {\n this.notificationService.error(error.message);\n this.blockUI.stop();\n\n for (const column of this.columns) {\n if (!this.cardsByColumns[column.id]) {\n this.cardsByColumns[column.id] = [];\n }\n\n this.pagingByColumns.set(column.id, {\n currentPage: 0,\n loadedAll: true,\n pending: false,\n });\n }\n\n this.event$.next({\n target: 'board',\n action: 'updated',\n });\n\n return of(null);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Loads cards page-by-page for the column.\n *\n * @param column\n * @returns `false`, if loading has been rejected.\n */\n public loadCardsByColumn(column: BoardColumn): void | false {\n const paging = this.pagingByColumns.get(column.id);\n\n if (\n !paging ||\n paging.loadedAll ||\n paging.pending ||\n this.loadingSubject.getValue()\n ) {\n return false;\n }\n\n paging.pending = true;\n this.pagingByColumns.set(column.id, paging);\n\n this.boardDataService\n .getCards(this.getFilter(), this.sortChange$.getValue(), column.id, {\n pageSize: this.pageSize,\n currentPage: paging.currentPage,\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n paging.pending = false;\n\n if (value) {\n paging.currentPage++;\n paging.loadedAll = value.length < this.pageSize;\n\n this.initCardActions(value);\n this.cards = this.cards.concat(value);\n this.cardsByColumns[column.id] =\n this.cardsByColumns[column.id].concat(value);\n\n this.event$.next({\n target: 'track',\n action: 'updated',\n id: column.id,\n });\n }\n\n this.pagingByColumns.set(column.id, paging);\n });\n }\n\n /**\n * Updates card after drop.\n *\n * @param cardId Card id.\n * @param newColumnCode New column after drop.\n */\n public async updateCard(\n cardId: string,\n data: DragAndDropData,\n ): Promise {\n const card = this.cards.find((c) => c.id === cardId);\n const newColumn = this.columns.find((c) => c.id === data.toGroupName);\n const oldColumn = this.columns.find((c) => c.id === data.fromGroupName);\n const afterCard =\n data.newIndex - 1 > -1\n ? this.cardsByColumns[newColumn.id]?.at(data.newIndex - 1)\n : null;\n\n // NOTE: same column case\n if (data.fromGroupName === data.toGroupName) {\n if (data.oldIndex === data.newIndex) {\n return;\n }\n\n // NOTE: reject changes if sorting is not manual\n if (this.sortChange$.getValue()) {\n this.dragDropService.data = data;\n this.notificationService.warningLocal(\n 'components.boardService.messages.sortingAlert',\n );\n\n this.event$.next({\n target: 'track',\n id: card.columnId,\n action: 'rollBackFrom',\n data,\n });\n\n this.event$.next({\n target: 'track',\n id: card.columnId,\n action: 'rollBackTo',\n data,\n });\n\n return;\n }\n\n this.boardDataService\n .moveCard(card, newColumn.id, afterCard?.id)\n .subscribe();\n\n return;\n }\n\n if (\n data.fromGroupName !== data.toGroupName &&\n this.columnMode() === 'custom'\n ) {\n this.boardDataService\n .moveCard(card, newColumn.id, afterCard?.id)\n .pipe(switchMap(() => this.refreshCard(card, newColumn.id)))\n .subscribe(() => {\n this.updateColumnsCount(newColumn, oldColumn);\n });\n\n return;\n }\n\n this.setDisableDrag(true);\n\n const stateChangeResult = await this.boardDataService.setState(\n card,\n newColumn.stateId,\n );\n\n if (stateChangeResult) {\n card.entity.stateId = newColumn.stateId;\n card.entity.state = newColumn.state;\n card.columnId = newColumn.id;\n\n this.boardDataService\n .moveCard(card, newColumn.id, afterCard?.id)\n .subscribe((result) => {\n if (result) {\n this.updateColumnsCount(newColumn, oldColumn);\n } else {\n this.removeCard(card);\n this.updateColumnsCount(null, oldColumn);\n }\n });\n } else {\n this.dragDropService.data = data;\n const oldColumn = this.columns.find((c) => c.id === data.fromGroupName);\n\n this.event$.next({\n target: 'track',\n id: newColumn.id,\n action: 'rollBackFrom',\n data,\n });\n\n this.event$.next({\n target: 'track',\n id: oldColumn.id,\n action: 'rollBackTo',\n data,\n });\n }\n\n this.setDisableDrag(false);\n this.refreshCard(card, newColumn.id).subscribe();\n }\n\n /**\n * Adds new column.\n *\n * @param data column properties.\n * @returns updated column and cards if save succeeded, otherwise `false`.\n */\n public addColumn(\n data: Partial,\n ): Promise {\n const updatedColumns = this.columns.slice(0);\n const state = this.boardDataService.states.find(\n (state) => state.id === data.state?.id,\n );\n const typedColumns = this.columns.filter((col) =>\n data.stateId ? col.stateId : !col.stateId,\n );\n\n const newColumn: BoardColumnView = {\n actions: [],\n boardId: this.config.id,\n id: Guid.generate(),\n stateId: state?.id ?? null,\n name: data.name,\n style: state?.style ?? null,\n index: typedColumns.length,\n isInitial: false,\n count: 0,\n };\n\n updatedColumns.push(newColumn);\n\n return firstValueFrom(\n this.boardDataService\n .addColumn(this.boardDataService.prepareColumnToSave(newColumn))\n .pipe(\n switchMap((v) => (v ? this.loadBoard() : of(v))),\n tap(() => {\n this.event$.next({ target: 'board', action: 'updated' });\n }),\n ),\n );\n }\n\n /**\n * Removes column.\n *\n * @param column Board column view.\n */\n public removeColumn(column: BoardColumnView): void {\n this.columns.splice(\n this.columns.findIndex((c) => c.id === column.id),\n 1,\n );\n this.setDisableDrag(true);\n\n firstValueFrom(\n this.boardDataService.removeColumn(column.id).pipe(\n tap(() => {\n if (this._columnMode() === 'custom') {\n this.loadBoard().subscribe(() => this.setDisableDrag(false));\n } else {\n this.event$.next({ target: 'board', action: 'updated' });\n this.setDisableDrag(false);\n }\n }),\n ),\n );\n }\n\n /**\n * Updates column.\n *\n * @param id column id.\n * @param data column properties.\n * @returns `true` if save succeeded, otherwise `false`.\n */\n public updateColumn(\n id: string,\n data: Partial,\n ): Promise {\n Object.assign(\n this.columns.find((column) => column.id === id),\n data,\n );\n\n this.event$.next({\n target: 'column',\n action: 'updated',\n id,\n });\n\n return firstValueFrom(\n this.boardDataService.updateColumn(\n id,\n this.boardDataService.prepareColumnToSave(data),\n ),\n );\n }\n\n /**\n * Updates columns after drag and drop.\n *\n * @param sortedColumns sorted columns.\n */\n public async updateColumnsOrder(\n sortedColumns: BoardColumnView[],\n ): Promise {\n sortedColumns.forEach((sortedColumn, index) => {\n const column = this.columns.find((c) => c.id === sortedColumn.id);\n column.index = index;\n });\n\n this.columns = _.sortBy(this.columns, ['index']);\n\n for (const column of this.columns) {\n await firstValueFrom(\n this.boardDataService.updateColumn(\n column.id,\n this.boardDataService.prepareColumnToSave(column),\n ),\n );\n }\n }\n\n /**\n * Opens popup with column form.\n *\n * @param target popup target.\n * @param column board column view.\n * @param mode form mode.\n */\n public opensColumnForm(\n target: HTMLElement,\n column: BoardColumnView,\n mode: 'edit' | 'create',\n ): void {\n this.infoPopupService.open({\n target,\n data: {\n component: BoardColumnHeaderFormComponent,\n componentParams: {\n inputs: {\n mode,\n column,\n },\n injector: this.injector,\n },\n },\n observeIntersectionDisabled: true,\n });\n }\n\n /**\n * Changes column mode.\n *\n * @param mode `states` or `custom`.\n */\n public changeColumnMode(mode: BoardColumnMode): void {\n this._columnMode.set(mode);\n }\n\n /**\n * Opens menu.\n *\n * @param event mouse event.\n * @param actions actions array.\n * @param context menu item context.\n */\n public openMenu(\n event: MouseEvent,\n actions: MenuItem[],\n context: BoardCardContext | HTMLElement,\n ): void {\n this.infoPopupService.close();\n this.menuService.open(event, actions, context);\n event.preventDefault();\n event.stopPropagation();\n }\n\n /** Sets board name to document title. */\n public setTitle(): void {\n this.title.setTitle(this.config?.title || '');\n }\n\n // TODO: refactor to effect\n private updateColumnsCount(\n incrementColumn: BoardColumnView | null,\n decrementColumn: BoardColumnView | null,\n ): void {\n const columns: BoardColumnView[] = [];\n\n if (incrementColumn) {\n incrementColumn.count++;\n columns.push(incrementColumn);\n }\n\n if (decrementColumn) {\n decrementColumn.count--;\n columns.push(decrementColumn);\n }\n\n columns.forEach((column) => {\n this.event$.next({\n target: 'column',\n action: 'updated',\n id: column.id,\n });\n });\n }\n\n /**\n * Gets data from API and merges properties with current card.\n *\n * @param card board card view.\n * @param columnId\n * @returns board card view.\n */\n private refreshCard(\n card: BoardCardView,\n columnId: string,\n ): Observable {\n return this.boardDataService\n .getCards(\n {\n id: { type: 'guid', value: card.entity.id },\n },\n '',\n columnId,\n )\n .pipe(\n map((cards) => cards.pop()),\n tap((data) => {\n Object.assign(card, data);\n this.event$.next({\n target: 'card',\n id: card.id,\n action: 'updated',\n });\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Sets menu actions to cards.\n *\n * @param cards board cards.\n */\n private initCardActions(cards: BoardCardView[]): void {\n for (const cardItem of cards) {\n cardItem.actions = [\n {\n name: 'changeState',\n label: `components.boardMiniCardComponent.actions.${this._columnMode() === 'states' ? 'changeState' : 'changeColumn'}`,\n handlerFn: () => null,\n subActionsLazyResolver: (context) =>\n this._columnMode() === 'states'\n ? this.getChangeStateSubActions(context)\n : Promise.resolve(this.getChangeColumnActions(context)),\n },\n {\n name: 'moveToTop',\n label: 'components.boardMiniCardComponent.actions.moveToTop',\n iconClass: 'bi-arrow-bar-up',\n handlerFn: (context: BoardCardContext) =>\n this.event$.next({\n target: 'track',\n id: context.item.columnId,\n action: 'moveThroughCardMenu',\n data: {\n oldIndex: context.oldIndex,\n newIndex: 0,\n item: context.item,\n },\n }),\n allowedFn: (context: BoardCardContext) =>\n this.cardsByColumns[context.item.columnId].length > 1 &&\n !!context.oldIndex &&\n !this.sortChange$.getValue(),\n },\n {\n name: 'moveToBottom',\n label: 'components.boardMiniCardComponent.actions.moveToBottom',\n iconClass: 'bi-arrow-bar-down',\n handlerFn: (context: BoardCardContext) => {\n context.item.forceCommand = 'MoveToBottom';\n\n return this.event$.next({\n target: 'track',\n id: context.item.columnId,\n action: 'moveThroughCardMenu',\n data: {\n oldIndex: context.oldIndex,\n newIndex: this.cardsByColumns[context.item.columnId].length - 1,\n item: context.item,\n },\n });\n },\n allowedFn: (context: BoardCardContext) =>\n this.cardsByColumns[context.item.columnId].length > 1 &&\n context.oldIndex <\n this.cardsByColumns[context.item.columnId].length - 1 &&\n !this.sortChange$.getValue(),\n },\n ];\n }\n }\n\n private getChangeColumnActions(context: BoardCardContext): MenuSubItem[] {\n const columns = this.activeColumns.filter(\n (c) => c.id !== context.item.columnId,\n );\n\n return columns.map((column) => ({\n name: column.id,\n label: column.name,\n handlerFn: (card: BoardCardContext) => {\n this.event$.next({\n target: 'track',\n id: card.item.columnId,\n action: 'moveThroughCardMenu',\n data: {\n oldIndex: card.oldIndex,\n newIndex: this.cardsByColumns[column.id].length,\n item: card.item,\n toGroupName: column.id,\n },\n });\n },\n }));\n }\n\n /** Inits card menu change state sub actions. */\n private async getChangeStateSubActions(\n context: BoardCardContext,\n ): Promise {\n const actions: MenuSubItem[] = [];\n const lifecycleInfo = await firstValueFrom(\n this.boardDataService.getLifecycleInfo(context.item),\n );\n\n for (const transition of lifecycleInfo.transitions) {\n actions.push({\n name: transition.id,\n label: transition.label,\n handlerFn: (card: BoardCardContext) => {\n const column = this.columns.find(\n (column) => column.stateId === transition.nextStateId,\n );\n\n if (!column) {\n this.boardDataService\n .setState(card.item, transition.nextStateId)\n .then((value) => {\n if (value) {\n this.cardsByColumns[card.item.columnId].splice(\n card.oldIndex,\n 1,\n );\n this.dragDropService.setOnEnd();\n }\n });\n } else {\n this.event$.next({\n target: 'track',\n id: card.item.columnId,\n action: 'moveThroughCardMenu',\n data: {\n oldIndex: card.oldIndex,\n newIndex: this.cardsByColumns[column.id].length,\n item: card.item,\n toGroupName: column.id,\n },\n });\n }\n },\n });\n }\n\n return actions;\n }\n\n private removeCard(result: BoardCardView): void {\n const cardIndex = this.cards.findIndex((card) => result.id === card.id);\n const cardInColumnIndex = this.cardsByColumns[result.columnId].findIndex(\n (card) => result.id === card.id,\n );\n\n this.cards.splice(cardIndex, 1);\n this.cardsByColumns[result.columnId].splice(cardInColumnIndex, 1);\n\n this.event$.next({\n target: 'track',\n action: 'updated',\n });\n }\n\n // TODO: not correct, it's like mock data\n private initColumnsDependencies(): void {\n const codes = this.columns.map((column) => column.id);\n\n codes.forEach((code) => {\n this.columnsDependencies[code] = codes;\n });\n }\n\n private initColumnsSettings(): void {\n this.pagingByColumns.clear();\n this.columns.forEach((column) => {\n column.actions = [\n {\n name: 'edit',\n label: 'shared2.actions.edit',\n iconClass: 'bi bi-pencil',\n handlerFn: (target) => this.opensColumnForm(target, column, 'edit'),\n },\n {\n name: 'remove',\n label: 'shared2.actions.delete',\n iconClass: 'bi bi-trash',\n handlerFn: () => this.removeColumn(column),\n },\n ];\n\n this.pagingByColumns.set(column.id, {\n currentPage: 0,\n loadedAll: false,\n });\n });\n }\n\n private initSortItems(): void {\n this.sortItems.length = 0;\n\n this.sortItems.push({\n key: 'sort-default',\n name: this.translateService.instant(\n 'components.boardService.props.manual',\n ),\n isNavigation: false,\n isDefault: true,\n });\n\n this.boardDataService.metaEntity.primitiveProperties\n .concat(this.boardDataService.metaEntity.navigationProperties)\n .filter((property) => property.type.toLowerCase() !== 'text')\n .forEach((property) => {\n this.sortItems.push({\n key: _.camelCase(property.name),\n name: this.appService.getTranslate(property.displayNames),\n isNavigation: property.kind === MetaEntityPropertyKind.navigation,\n });\n });\n\n this.sortItems = _.orderBy(\n this.sortItems,\n ['isDefault', 'name'],\n ['asc', 'asc'],\n );\n }\n\n private initSubscriptions(): void {\n this.loadingSubject.next(true);\n\n merge(\n this.filterService?.values$,\n this.actionPanelService.reload$,\n this.sortChange$.pipe(filter((v) => !!v || v === '')),\n toObservable(this._columnMode, { injector: this.injector }),\n )\n .pipe(\n switchMap(() => this.loadBoard()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (this.loadingSubject.getValue()) {\n this.loadingSubject.next(false);\n }\n\n this.document.getElementById(Constants.defaultRootContainerId).scroll({\n top: 0,\n behavior: 'smooth',\n });\n });\n\n this.offCanvasService.entityUpdated$\n .pipe(\n filter((v) => !!v),\n switchMap((entity: { [key: string]: any; changedStateId?: string }) => {\n const card = this.cards.find((card) => card.entity.id === entity.id);\n\n if (entity.changedStateId || !card) {\n this.actionPanelService.reload();\n return of(null);\n }\n\n return this.refreshCard(card, card.columnId).pipe(\n map((result) => (!result ? card : null)),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((result: BoardCardView | null) => {\n if (result) {\n this.removeCard(result);\n this.updateColumnsCount(\n null,\n this.columns.find((column) => column.id === result.columnId),\n );\n }\n\n if (!this.offCanvasService.offCanvasEntry) {\n this.setTitle();\n }\n });\n\n this.dragDropService.onStart$\n .pipe(\n tap(() => {\n this.infoPopupService.close();\n }),\n filter(\n (data) =>\n data.fromGroupKey === 'cards' && this.columnMode() === 'states',\n ),\n concatMap((data) => {\n const lifecycleInfo = this.boardDataService.entityLifecycleInfo.get(\n data.item.entity.id,\n );\n\n return lifecycleInfo\n ? of(lifecycleInfo)\n : this.boardDataService\n .getLifecycleInfo(data.item)\n .pipe(\n takeUntil(\n merge(\n this.dragDropService.onDrop$,\n this.dragDropService.onEnd$,\n ).pipe(first()),\n ),\n );\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((lifecycleInfo) => {\n this.columns\n .filter(\n (column) =>\n !lifecycleInfo.transitions.some(\n (t) => t.nextStateId === column.stateId,\n ) && column.stateId !== lifecycleInfo.currentState.id,\n )\n .forEach((column) => {\n this.event$.next({\n target: 'track',\n id: column.id,\n action: 'restrictTransition',\n data: true,\n });\n });\n });\n\n this.dragDropService.completed$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.event$.next({\n target: 'track',\n id: null,\n action: 'restrictTransition',\n data: false,\n });\n });\n }\n\n private getFilter(): { and: Array } | any | null {\n const originalFilter = this.filterService?.getODataFilter();\n\n if (!originalFilter) {\n return null;\n }\n\n if (!this.config?.filterService || !this.config?.isNestedFilterQuery) {\n return originalFilter;\n }\n\n const newFilter = {\n and: [],\n };\n\n for (const value of originalFilter) {\n const item = Object.values(value).pop();\n\n if (!Array.isArray(item)) {\n newFilter.and.push(item);\n } else if (Array.isArray(item) && item.length) {\n newFilter.and.push({\n or: item.map((i) => Object.values(i).pop()),\n });\n }\n }\n\n return newFilter.and.length ? newFilter : null;\n }\n\n private setDisableDrag(value: boolean): void {\n this.event$.next({\n target: 'track',\n action: 'disableDrag',\n data: value,\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { Subject, combineLatest, firstValueFrom, merge } from 'rxjs';\nimport {\n debounceTime,\n filter,\n map,\n startWith,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { PlannerCommandService } from 'src/app/shared-features/planner/core/planner-command.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { FreezeTableOptions } from 'src/app/shared/directives/freeze-table/freeze-table.interface';\n\nimport { BookingDataService } from '../booking/core/booking-data.service';\nimport { BookingManageService } from '../booking/core/booking-manage.service';\nimport { BookingRenderingService } from '../booking/core/booking-rendering.service';\nimport { BookingService } from '../booking/core/booking.service';\nimport { BookingAssistantSettings } from './models/booking-assistant-settings.model';\nimport { bookingProviderFactory } from 'src/app/booking/booking-schedule/booking-schedule.component';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { ResourceRequestService } from 'src/app/resource-requests/shared/resource-request/resource-request.service';\nimport { ResourceRequestCalendarService } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.service';\nimport { BookingFilterService } from 'src/app/booking/booking/shared/booking-filter/booking-filter.service';\nimport { BookingViewSettingsService } from 'src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service';\nimport {\n EventItem,\n ResourceRequestEvents,\n TotalsCalcMode,\n} from 'src/app/resource-requests/shared/resource-request/resource-request.interface';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\n\n@Component({\n selector: 'tmt-booking-assistant',\n templateUrl: './booking-assistant.component.html',\n styleUrls: ['booking-assistant.component.scss'],\n providers: [\n FreezeTableService,\n PlannerCommandService,\n ScheduleNavigationService,\n SavingQueueService,\n ResourceRequestService,\n ResourceRequestCalendarService,\n BookingManageService,\n BookingDataService,\n BookingService,\n BookingViewSettingsService,\n { provide: FilterService, useClass: BookingFilterService },\n {\n provide: BookingRenderingService,\n deps: [\n AppService,\n BookingDataService,\n ScheduleNavigationService,\n [new Optional(), 'entityData'],\n [new Optional(), 'context'],\n NgZone,\n ],\n useFactory: bookingProviderFactory,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingAssistantComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @ViewChild('mainContainer') private mainContainer: ElementRef;\n @ViewChild('mainContainerAbsolute')\n private mainContainerAbsolute: ElementRef;\n @ViewChild('plannerContainer')\n private plannerContainer: ElementRef;\n @ViewChild('resourceRequestCalendarContainer')\n private resourceRequestCalendarContainer: ElementRef;\n @ViewChild('resourcesContainer')\n private resourcesContainer: ElementRef;\n\n @Input() public entityId: string;\n\n public ready = false;\n public isRequestCompleted: boolean;\n public filterBeforeCache: Record;\n public settings: BookingAssistantSettings;\n public switcherControl = new FormControl('new');\n public requestCalendarFreezeOptions: FreezeTableOptions = {\n rootContainerId: 'planner-container-outside',\n name: 'planner',\n syncWith: ['booking', 'planner', 'resources'],\n disableHorizontalScroller: true,\n inContainerMode: true,\n };\n public requestBookingFreezeOptions: FreezeTableOptions = {\n name: 'booking',\n syncWith: ['booking', 'planner', 'resources'],\n disableHorizontalScroller: true,\n };\n public readonlyReasonTitle: string | null = null;\n public resizingMinHeight = 150;\n public resizingMaxHeight = 600;\n\n private readonly defaultHeight = 200;\n private readonly destroyed$ = new Subject();\n private scrollHeight = 20;\n\n private get request(): ResourceRequest {\n return this.resourceRequestService.request;\n }\n\n constructor(\n public resourceRequestService: ResourceRequestService,\n public resourceRequestCalendarService: ResourceRequestCalendarService,\n public bookingService: BookingService,\n public bookingFilterService: FilterService,\n private bookingDataService: BookingDataService,\n private bookingViewSettingsService: BookingViewSettingsService,\n private freezeTableService: FreezeTableService,\n private infoPopupService: InfoPopupService,\n private localConfigService: LocalConfigService,\n private renderer: Renderer2,\n private modal: NgbActiveModal,\n scheduleNavigationService: ScheduleNavigationService,\n ) {\n this.settings = this.localConfigService.getConfig(BookingAssistantSettings);\n this.bookingService.isAssistantBottomMode = true;\n this.bookingFilterService.storageName = null;\n this.bookingViewSettingsService.assistantMode = true;\n this.bookingViewSettingsService.init();\n\n merge(\n scheduleNavigationService.next$.pipe(map(() => 'right')),\n scheduleNavigationService.previous$.pipe(map(() => 'left')),\n )\n .pipe(takeUntilDestroyed())\n .subscribe((direction: 'right' | 'left') => {\n freezeTableService.scrollOnLoad(direction, [\n this.resourceRequestService.event$.pipe(\n startWith({\n name: ResourceRequestEvents.loadFrame,\n data: true,\n }),\n filter((e) => e.name === ResourceRequestEvents.loadFrame),\n map((e) => !!e.data),\n ),\n this.bookingService.frameLoading$,\n ]);\n });\n }\n\n public async ngOnInit(): Promise {\n this.resourceRequestService.load(this.entityId);\n\n await firstValueFrom(\n combineLatest([\n this.resourceRequestService.state$.pipe(\n filter((s) => s === CardState.Ready),\n ),\n this.resourceRequestService.event$.pipe(\n filter((e) => e.name === ResourceRequestEvents.loadedBookingEntry),\n ),\n ]),\n );\n\n this.ready = true;\n this.initRequestSubscribers();\n this.initSubscribers();\n this.setReadonlyReason();\n\n this.bookingDataService.extraResourceIds =\n this.resourceRequestCalendarService.resourceIds;\n\n this.resourceRequestService.event$\n .pipe(\n startWith({\n name: ResourceRequestEvents.loadedBookingEntry,\n data: null,\n }),\n filter(\n (v) =>\n [\n ResourceRequestEvents.loadedBookingEntry,\n ResourceRequestEvents.addedBookingEntry,\n ResourceRequestEvents.removedBookingEntry,\n ].includes(v.name) ||\n (v.name === ResourceRequestEvents.bookingEntryLineToggled &&\n v.data?.toggledArea === 'top') ||\n (v.name === ResourceRequestEvents.updateBookingEntry &&\n this.bookingService.bookingMode === BookingMode.Basic),\n ),\n debounceTime(100),\n takeUntil(this.destroyed$),\n )\n .subscribe((event) => {\n this.resize(\n event.name === ResourceRequestEvents.addedBookingEntry,\n event.data?.toggledIndex,\n );\n });\n }\n\n public ngAfterViewInit(): void {\n this.updateView();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** `tmtAreaResizing` event handler.\n *\n * @param newHeight height from event.\n */\n public onTopAreaResized(newHeight: number): void {\n this.settings.topAreaHeight = newHeight;\n this.localConfigService.setConfig(BookingAssistantSettings, this.settings);\n\n this.updateView();\n }\n\n /** `resized` event handler/ */\n public onMainContainerResized(): void {\n this.updateView();\n }\n\n /** Emits modal close. */\n public close(): void {\n this.modal.close();\n }\n\n /** Applies a filter on the selected resources or returns the previous filter. */\n public toggleShowSelectedFilter(): void {\n if (this.filterBeforeCache) {\n this.bookingFilterService.changeValues(this.filterBeforeCache);\n this.filterBeforeCache = null;\n } else {\n this.filterBeforeCache = this.bookingFilterService.values;\n this.bookingFilterService.changeValues(\n Object.assign(\n {},\n {\n resourceIds: this.getCalendarResourceIds(),\n view: this.bookingFilterService.views.find((v) => v.code === 'all'),\n },\n ),\n );\n }\n }\n\n private updateView(): void {\n if (this.resourceRequestService.state$.getValue() !== CardState.Ready) {\n return;\n }\n\n const topAreaHeight = this.settings.topAreaHeight ?? this.defaultHeight;\n const mainContainerRect =\n this.mainContainer?.nativeElement.getBoundingClientRect();\n\n this.renderer.setStyle(\n this.plannerContainer?.nativeElement,\n 'height',\n topAreaHeight + 'px',\n );\n\n this.renderer.setStyle(\n this.mainContainerAbsolute?.nativeElement,\n 'height',\n mainContainerRect.height + 'px',\n );\n\n this.renderer.setStyle(\n this.mainContainerAbsolute?.nativeElement,\n 'width',\n mainContainerRect.width + 'px',\n );\n\n this.renderer.setStyle(\n this.resourcesContainer?.nativeElement,\n 'height',\n mainContainerRect.height - topAreaHeight - this.scrollHeight + 'px',\n );\n\n this.freezeTableService.redraw();\n }\n\n private initSubscribers(): void {\n this.bookingFilterService.values$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.resourceRequestService.setEvent(ResourceRequestEvents.reloadFrame);\n });\n\n this.freezeTableService.verticalScroll$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.infoPopupService.close();\n });\n\n this.switcherControl.valueChanges\n .pipe(startWith(this.switcherControl.value), takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.resourceRequestCalendarService.totalsCalcMode = value;\n\n if (value === 'current') {\n this.bookingDataService.extraBookings = null;\n\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.updateBookingEntry,\n null,\n );\n } else {\n this.bookingDataService.extraBookings =\n this.resourceRequestCalendarService.bookingEntries;\n\n this.resourceRequestCalendarService.bookingEntries.forEach(\n (bookingEntry) => {\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.updateBookingEntry,\n bookingEntry.resource?.id ?? bookingEntry.resourceId,\n );\n },\n );\n }\n });\n }\n\n private initRequestSubscribers(): void {\n this.resourceRequestService.state$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((state: CardState) => {\n if (state === CardState.Ready) {\n this.bookingDataService.resourceRequest = this.request;\n this.bookingService.emitComponentChanges(null);\n\n // If this is a resource booking update, filters should be reset\n if (this.bookingService.isActualizationResourceRequest) {\n for (const key of Object.keys(this.bookingFilterService.values)) {\n this.bookingFilterService.values[key] = null;\n }\n\n this.bookingFilterService.changeValues(\n Object.assign({}, this.bookingFilterService.values, {\n resourceIds: this.getCalendarResourceIds(),\n view: this.bookingFilterService.views.find(\n (v) => v.code === 'all',\n ),\n }),\n );\n } else {\n this.bookingFilterService.changeValues(\n Object.assign({}, this.bookingFilterService.values, {\n role: this.request.role,\n competence: this.request.competence,\n legalEntity: this.request.legalEntity,\n level: this.request.level,\n grade: this.request.grade,\n location: this.request.location,\n resourcePool: {\n value: this.request.resourcePool,\n },\n requestPreferredResources:\n !!this.request.preferredResources?.length,\n employmentTypeId: this.request.employmentTypeId,\n }),\n );\n }\n\n this.isRequestCompleted =\n this.resourceRequestService.lifecycleInfo?.currentState.id ===\n ResourceRequest.requestCompletedStateId;\n\n if (this.isRequestCompleted) {\n this.switcherControl.setValue('current');\n this.switcherControl.disable();\n }\n }\n });\n\n this.resourceRequestService.event$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event: EventItem) => {\n if (this.resourceRequestCalendarService.totalsCalcMode === 'current') {\n this.bookingDataService.extraBookings = null;\n } else {\n this.bookingDataService.extraBookings =\n this.resourceRequestCalendarService.bookingEntries;\n }\n\n if (\n event.name === ResourceRequestEvents.updateBookingEntry ||\n event.name === ResourceRequestEvents.removedBookingEntry\n ) {\n this.bookingService.emitComponentChanges(event.data);\n }\n });\n }\n\n private getCalendarResourceIds(): string[] {\n return Array.from(this.resourceRequestCalendarService.resourceIds);\n }\n\n private setReadonlyReason(): void {\n if (this.request?.state.id === ResourceRequest.requestCompletedStateId) {\n this.readonlyReasonTitle = `resources.requests.assistant.messages.requestCompleted`;\n return;\n }\n\n if (\n !this.request?.bookingEntryEditAllowed &&\n ResourceRequest.systemStateIds.includes(this.request?.state.id)\n ) {\n this.readonlyReasonTitle = `resources.requests.assistant.messages.requestNotOpened`;\n return;\n }\n\n if (!this.request?.bookingEntryEditAllowed && !this.request.editAllowed) {\n this.readonlyReasonTitle = `resources.requests.assistant.messages.accessDenied`;\n return;\n }\n }\n\n /**\n * Resizes booking assistant area.\n *\n * @param isScrollToBottom is need to be scrolled to bottom of the calendar.\n */\n private resize(isScrollToBottom = false, toggledIndex: number): void {\n const height =\n this.resourceRequestCalendarContainer.nativeElement.scrollHeight +\n this.scrollHeight;\n\n this.onTopAreaResized(\n Math.min(\n this.resizingMaxHeight,\n this.resourceRequestCalendarService.resourceIds.size === 1 &&\n this.bookingService.bookingMode === BookingMode.Detailed\n ? Math.max(this.resizingMinHeight + this.scrollHeight + 15, height)\n : Math.max(this.resizingMinHeight, height),\n ),\n );\n\n if (isScrollToBottom && height >= this.resizingMaxHeight) {\n this.plannerContainer.nativeElement.scrollTo({\n top: height,\n });\n }\n\n if (toggledIndex) {\n Array.from(\n this.resourceRequestCalendarContainer.nativeElement.querySelectorAll(\n 'tmt-booking-basic tbody',\n ),\n )[toggledIndex]?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }\n}\n","\n\n@if ((resourceRequestService.state$ | async) === 'Ready' && ready && readonlyReasonTitle) {\n
    \n {{ 'resources.requests.assistant.messages.readonly' | translate }}.\n {{ readonlyReasonTitle | translate }}.\n
    \n}\n\n@if ((resourceRequestService.state$ | async) === 'Ready' && ready) {\n
    \n \n\n @if (!bookingService.isActualizationResourceRequest) {\n \n {{\n (!!filterBeforeCache\n ? 'resources.actions.returnFilter'\n : 'resources.actions.showSelected'\n ) | translate\n }}\n \n }\n\n
    \n \n \n {{ 'resources.actions.showNew' | translate }}\n \n \n \n {{ 'resources.actions.showCurrent' | translate }}\n \n
    \n\n
    \n \n
    \n
    \n}\n\n@if ((resourceRequestService.state$ | async) === 'Ready') {\n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n @if (ready) {\n \n }\n
    \n \n \n}\n","import {\n Directive,\n ElementRef,\n OnInit,\n Renderer2,\n EventEmitter,\n Output,\n Input,\n OnDestroy,\n Inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[tmtAreaResizing]',\n standalone: false,\n})\nexport class AreaResizingDirective implements OnInit, OnDestroy {\n @Output() public areaResized = new EventEmitter();\n @Input() public maxHeight = 600;\n @Input() public minHeight = 150;\n\n private isResizing: boolean;\n private startPageY: number;\n private startHeight: number;\n private areaEl: HTMLElement;\n private areaMouseDownListener: () => void;\n private documentMouseUpListener: () => void;\n private documentMouseDownListener: () => void;\n private readonly resized$ = new Subject();\n private readonly destroyed$ = new Subject();\n\n constructor(\n private area: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public ngOnInit(): void {\n this.init();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.areaMouseDownListener();\n this.documentMouseDownListener();\n this.documentMouseUpListener();\n }\n\n private init(): void {\n this.areaEl = this.area.nativeElement as HTMLElement;\n\n this.resized$\n .pipe(auditTime(16), takeUntil(this.destroyed$))\n .subscribe((event: MouseEvent) => {\n const diffY = event.pageY - this.startPageY;\n const newHeight = this.startHeight + diffY;\n\n if (newHeight <= this.maxHeight && newHeight >= this.minHeight) {\n this.areaResized.emit(newHeight);\n }\n });\n\n this.areaMouseDownListener = this.renderer.listen(\n this.document.querySelector('.area-resizing'),\n 'mousedown',\n (event: MouseEvent) => {\n this.start(event);\n },\n );\n\n this.documentMouseUpListener = this.renderer.listen(\n this.document,\n 'mouseup',\n () => this.stop(),\n );\n\n this.documentMouseDownListener = this.renderer.listen(\n this.document,\n 'mousemove',\n (event: any) => {\n if (!this.isResizing) {\n return;\n }\n\n this.resized$.next(event);\n },\n );\n }\n\n private start(event: MouseEvent): void {\n this.isResizing = true;\n this.startPageY = event.pageY;\n this.startHeight = this.areaEl.getBoundingClientRect().height;\n }\n\n private stop(): void {\n this.isResizing = false;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class BookingAssistantSettings implements BaseSettings {\n public readonly name = 'BookingAssistantSettings';\n version: number;\n topAreaHeight: number;\n getDefault(): BookingAssistantSettings {\n return {\n version: 1,\n topAreaHeight: 175,\n } as BookingAssistantSettings;\n }\n}\n\nexport const ASSISTANT_TEAM_MEMBER_ID = new InjectionToken(\n 'assistantTeamMemberId',\n);\n\nexport interface BookingDetailDto {\n bookingId: string;\n\n resourceId: string;\n\n date: string;\n\n hours: number;\n}\n\nexport interface ResourceRequestRequirementEntry {\n resourceRequestId: string;\n date: string;\n hours: number;\n}\n","import { Component, NgZone, OnInit, Optional } from '@angular/core';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingManageService } from 'src/app/booking/booking/core/booking-manage.service';\nimport { BookingRenderingService } from 'src/app/booking/booking/core/booking-rendering.service';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingFilterService } from 'src/app/booking/booking/shared/booking-filter/booking-filter.service';\nimport { BookingViewSettingsService } from 'src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ResourceRequestModalComponent } from 'src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\nexport const bookingProviderFactory = (\n appService: AppService,\n bookingDataService: BookingDataService,\n scheduleNavigationService: ScheduleNavigationService,\n entityData: any,\n context: any,\n zone: NgZone,\n): BookingRenderingService | null =>\n appService.session.configuration.bookingMode === BookingMode.Detailed\n ? null\n : new BookingRenderingService(\n bookingDataService,\n scheduleNavigationService,\n entityData,\n context,\n zone,\n );\n@Component({\n selector: 'wp-booking-schedule',\n templateUrl: './booking-schedule.component.html',\n providers: [\n NgbActiveModal,\n AutosaveService,\n BookingManageService,\n ScheduleNavigationService,\n BookingDataService,\n BookingViewSettingsService,\n BookingService,\n { provide: FilterService, useClass: BookingFilterService },\n FreezeTableService,\n SavingQueueService,\n {\n provide: BookingRenderingService,\n deps: [\n AppService,\n BookingDataService,\n ScheduleNavigationService,\n [new Optional(), 'entityData'],\n [new Optional(), 'context'],\n NgZone,\n ],\n useFactory: bookingProviderFactory,\n },\n ],\n standalone: false,\n})\nexport class BookingScheduleComponent implements OnInit {\n constructor(\n public savingQueueService: SavingQueueService,\n public bookingManageService: BookingManageService,\n private actionService: ActionPanelService,\n private modalService: NgbModal,\n private stateService: StateService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'resources.requests.list.actions.create',\n hint: 'resources.requests.list.actions.create',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: true,\n handler: () =>\n this.modalService\n .open(ResourceRequestModalComponent, { size: 'xl' })\n .result.then(\n (entity: Entity) => {\n this.stateService.go('resourceRequest', {\n entityId: entity.id,\n });\n },\n () => null,\n ),\n },\n ]);\n }\n}\n","\n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { BookingScheduleComponent } from 'src/app/booking/booking-schedule/booking-schedule.component';\nimport { BookingModule } from 'src/app/booking/booking/booking.module';\nimport { FILTER } from 'src/app/shared/tokens';\n\n@NgModule({\n declarations: [BookingScheduleComponent],\n\n imports: [\n CommonModule,\n SharedModule,\n BookingModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'booking',\n url: '/booking?{navigation}&{route}',\n component: BookingScheduleComponent,\n params: {\n routeMode: null,\n navigation: 'resources.booking',\n route: ROUTE_DEFAULT_PARAMS,\n routeHeader: 'resources.navigation.resources.booking.header',\n },\n },\n {\n name: 'filteredBooking',\n url: '/booking/filtered?{filter:json}&{navigation}&{route}',\n component: BookingScheduleComponent,\n params: {\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n routeHeader: 'resources.navigation.resources.booking.header',\n },\n resolve: [\n {\n token: FILTER,\n deps: [Transition],\n resolveFn: StateHelper.resolveFilter,\n },\n ],\n },\n ],\n }),\n ],\n exports: [],\n})\nexport class BookingScheduleModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BookingService } from './core/booking.service';\nimport { BookingDataService } from './core/booking-data.service';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\n\n@Component({\n selector: 'wp-booking',\n templateUrl: './booking.component.html',\n styleUrls: ['booking.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingComponent implements OnInit, OnDestroy {\n @Input() frRootContainerId: string;\n @Input() frName: string;\n @Input() frSyncWith: string;\n @Input() frDisableHorizontalScroller: boolean;\n @Input() hasHeader = true;\n @Input() hasToolbar = true;\n\n public leftTableWidth = 300;\n public bookingModeDetailed: boolean;\n\n private readonly destroyed$ = new Subject();\n\n constructor(\n public service: BookingService,\n public dataService: BookingDataService,\n private cdr: ChangeDetectorRef,\n ) {\n this.bookingModeDetailed = service.bookingMode === BookingMode.Detailed;\n }\n\n public trackById(index: number, row: any): string {\n return row.id;\n }\n\n public ngOnInit(): void {\n this.service.init();\n\n this.service.detectChanges$\n .pipe(\n filter((id) => !id),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n \n\n \n\n \n\n\n\n","import { BookingEntryInfoComponent } from './shared/booking-entry-info/booking-entry-info.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { PlannerModule } from 'src/app/shared-features/planner/planner.module';\nimport { BookingComponent } from './booking.component';\nimport { BookingEntryFormComponent } from './shared/booking-entry-form/booking-entry-form.component';\nimport { BookingFilterModule } from './shared/booking-filter/booking-filter.module';\nimport { BookingFilterComponent } from './shared/booking-filter/booking-filter.component';\nimport { BookingLeftGroupComponent } from './shared/booking-left-group/booking-left-group.component';\nimport { BookingRightGroupComponent } from './shared/booking-right-group/booking-right-group.component';\nimport { BookingEntryComponent } from './shared/booking-entry/booking-entry.component';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { BookingToolbarComponent } from './shared/booking-toolbar/booking-toolbar.component';\nimport { BookingEntryFormDetailsComponent } from './shared/booking-entry-form/booking-entry-form-details/booking-entry-form-details.component';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BookingViewSettingsComponent } from './shared/booking-view-settings/booking-view-settings.component';\nimport { BookingNotifyComponent } from './shared/booking-notify/booking-notify.component';\nimport { BookingSlotInfoComponent } from './shared/booking-slot-info/booking-slot-info.component';\nimport { BookingBasicComponent } from 'src/app/booking/booking/shared/booking-basic/booking-basic.component';\nimport { BookingHeaderLeftComponent } from 'src/app/booking/booking/shared/booking-table-header/booking-header-left/booking-header-left.component';\nimport { BookingHeaderRightComponent } from 'src/app/booking/booking/shared/booking-table-header/booking-header-right/booking-header-right.component';\nimport { BookingBasicLineRightComponent } from 'src/app/booking/booking/shared/booking-basic/booking-basic-line/booking-basic-line.component';\nimport { BookingDetailedComponent } from 'src/app/booking/booking/shared/booking-detailed/booking-detailed.component';\nimport { BookingDetailedLineLeftComponent } from 'src/app/booking/booking/shared/booking-detailed/booking-detailed-line-left/booking-detailed-line-left.component';\nimport { BookingDetailedLineRightComponent } from 'src/app/booking/booking/shared/booking-detailed/booking-detailed-line-right/booking-detailed-line-right.component';\nimport { BookingProjectAddComponent } from 'src/app/booking/booking/shared/booking-project-add/booking-project-add.component';\n\n@NgModule({\n declarations: [\n BookingLeftGroupComponent,\n BookingRightGroupComponent,\n BookingEntryFormComponent,\n BookingComponent,\n BookingEntryComponent,\n BookingToolbarComponent,\n BookingEntryFormDetailsComponent,\n BookingViewSettingsComponent,\n BookingNotifyComponent,\n BookingEntryInfoComponent,\n BookingSlotInfoComponent,\n BookingDetailedComponent,\n BookingDetailedLineLeftComponent,\n BookingDetailedLineRightComponent,\n BookingBasicComponent,\n BookingBasicLineRightComponent,\n BookingHeaderLeftComponent,\n BookingHeaderRightComponent,\n BookingProjectAddComponent,\n ],\n exports: [\n BookingComponent,\n BookingFilterComponent,\n BookingLeftGroupComponent,\n BookingRightGroupComponent,\n BookingEntryFormComponent,\n BookingComponent,\n BookingEntryComponent,\n BookingToolbarComponent,\n BookingEntryFormDetailsComponent,\n BookingEntryInfoComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PlannerModule,\n BookingFilterModule,\n ScheduleNavigationModule,\n UIRouterModule,\n ],\n})\nexport class BookingModule {}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Action, DataService } from 'src/app/core/data.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { forkJoin, Observable, of, map } from 'rxjs';\nimport _ from 'lodash';\nimport { FteScheduleService } from 'src/app/core/fte-schedule.service';\nimport { BookingResourcesFilter } from '../models/booking-resources-filter.model';\nimport { DateTime, Interval } from 'luxon';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport {\n BookingEntry,\n BookingEntryReqBody,\n BookingEntryType,\n BookingResource,\n} from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { ResourceInfo } from 'src/app/shared-features/planner/models/resource-info';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ProjectItem } from 'src/app/booking/booking/shared/booking-project-add/booking-project-add.interface';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { ResourceRequestMode } from 'src/app/resource-requests/shared/resource-request/resource-request.interface';\nimport { PlanningMethod } from 'src/app/shared/models/enums/planning-method.enum';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { PREDEFINED_RESOURCE_POOL_IDS } from 'src/app/shared/models/entities/settings/resource-pool.model';\n\n@Injectable()\nexport class BookingDataService {\n public valueMode: ValueMode;\n public bookingMode: BookingMode;\n public resourceRequestMode: ResourceRequestMode | null = null;\n public resourceRequest: ResourceRequest | null = null;\n\n public resources: BookingResource[] = [];\n public bookings: BookingEntry[] = [];\n public bookingsChangeEntries: BookingEntry[] = [];\n public bookingsResourceRequest: BookingEntry[] = [];\n /** Resource request booking entries as result */\n public extraBookings: BookingEntry[] = null;\n /** IDs of resource request resources */\n public extraResourceIds: Set;\n public schedules: Dictionary = {};\n public fte: Dictionary = {};\n\n public bookingQuery = {\n expand: {\n detailEntries: { select: ['date', 'hours'] },\n project: { select: ['id', 'name'] },\n resourceRequest: { select: ['id', 'name'] },\n resource: { select: ['id', 'name'] },\n },\n select: [\n 'id',\n 'rowVersion',\n 'requiredHours',\n 'requiredSchedulePercent',\n 'bookedHours',\n 'resourceId',\n 'type',\n 'from',\n 'to',\n 'planningMethod',\n 'editAllowed',\n 'isTimeOff',\n 'isOther',\n 'entryType',\n ],\n };\n\n private get bookingEntriesEndpoint(): Action {\n return this.data.collection('BookingEntries').action('GetBookings');\n }\n\n constructor(\n @Optional() @Inject('assistantRequestId') public resourceRequestId,\n private data: DataService,\n private fteScheduleService: FteScheduleService,\n appService: AppService,\n ) {\n this.bookingMode = appService.session.configuration.bookingMode;\n }\n\n private getBookingToSave(\n bookingEntry: BookingEntry,\n planningScale: PlanningScale,\n ): any {\n return {\n bookingEntry: {\n id: bookingEntry.id,\n rowVersion: bookingEntry.rowVersion,\n from: bookingEntry.fromLx.toISODate(),\n to: bookingEntry.toLx.toISODate(),\n projectId: bookingEntry.project.id,\n resourceId: bookingEntry.resourceId,\n type: bookingEntry.type,\n requiredHours: bookingEntry.requiredHours,\n requiredSchedulePercent: bookingEntry.requiredSchedulePercent,\n planningMethod: bookingEntry.planningMethod,\n },\n planningScale,\n };\n }\n\n /**\n * Get a list of bookings by resource.\n * If service working in assistant mode, then request `bookingEntry` adds to default booking entries.\n *\n * @param resourceId Resource ID.\n *\n * @return booking entries.\n * */\n public getResourceBookings(resourceId: string): BookingEntry[] {\n if (!this.extraBookings?.length) {\n return this.bookings.filter((b) => b.resourceId === resourceId);\n }\n\n if (\n this.resourceRequest.teamMember?.resource.resourceType ===\n ResourceType.user\n ) {\n return this.bookings\n .filter(\n (b) =>\n b.resourceId === resourceId &&\n b.project?.id !== this.extraBookings[0].project.id,\n )\n .concat(this.extraBookings);\n }\n\n if (this.bookingMode === BookingMode.Basic) {\n return this.bookings\n .filter((b) => b.resourceId === resourceId)\n .concat(this.extraBookings.filter((b) => b.resourceId === resourceId));\n }\n\n const result = _.cloneDeep(\n this.bookings.filter((b) => b.resourceId === resourceId),\n );\n\n this.extraBookings\n .filter((el) => el.resource.id === resourceId)\n .forEach((bookingEntryTemp) => {\n const bookingEntry = result.find(\n (el) => el.project?.id === bookingEntryTemp.project.id,\n );\n\n if (bookingEntry) {\n bookingEntryTemp.detailEntries.forEach((entryTemp) => {\n const resultEntry = bookingEntry.detailEntries.find(\n (resultEntryDetail) => entryTemp.date === resultEntryDetail.date,\n );\n\n if (resultEntry) {\n resultEntry.hours += entryTemp.hours;\n } else {\n bookingEntry.detailEntries.push(entryTemp);\n }\n });\n } else {\n result.push(bookingEntryTemp);\n }\n });\n\n return result;\n }\n\n /** Creates booking entry.\n *\n * @param resourceId Resource ID.\n * @param projectId Project ID.\n * @param planningScale Planning scale.\n *\n * @return Booking entry.\n * */\n public createBookingEntry(\n resourceId: string,\n projectId: string,\n planningScale: PlanningScale,\n ): Observable {\n const bookingEntry = {\n resourceId,\n projectId,\n from: null,\n to: null,\n requiredHours: 0,\n bookedHours: 0,\n planningMethod: PlanningMethod.Manual,\n type: BookingType.Hard,\n detailEntries: [],\n resourceRequestId: this.resourceRequestId ?? null,\n };\n\n return this.data.collection('BookingEntries').action('Create').execute(\n {\n bookingEntry,\n planningScale,\n },\n this.bookingQuery,\n );\n }\n\n /** Returns the sum of the `totalHours` in bookings entries.\n *\n * @param resourceId Resource ID.\n *\n * */\n public getTotalsByResource(resourceId: string): number {\n return this.getResourceBookings(resourceId).reduce(\n (total, value) => total + value.bookedHours,\n 0,\n );\n }\n\n /** Обновить бронирование на сервере. */\n public update(booking: BookingEntry, planningScale: PlanningScale) {\n const collection = this.data.collection('BookingEntries');\n return collection\n .entity(booking.id)\n .action('Update')\n .execute(\n this.getBookingToSave(booking, planningScale),\n this.bookingQuery,\n );\n }\n\n /**\n * UpdateDetailsWithScaling Request.\n *\n * @param entriesToSave Prepared data with dates.\n * @param planningScale Planning scale for request.\n *\n * @return Updates's result with dates.\n * */\n public updateDetails(\n entriesToSave: BookingEntryReqBody[],\n planningScale: PlanningScale,\n ): Observable {\n const detailEntries = _.clone(entriesToSave);\n entriesToSave.length = 0;\n\n return this.data\n .collection('BookingEntries')\n .action('UpdateDetailsWithScaling')\n .execute({\n scale: planningScale,\n detailEntries,\n });\n }\n\n /**\n * GetAvailableProjects Request.\n *\n * @param resourceId Resource Id.\n *\n * @return Project's collection.\n * */\n public getAvailableProjects(resourceId: string): Observable {\n return this.data\n .collection('BookingEntries')\n .function('GetAvailableProjects')\n .query({ resourceId });\n }\n\n /** Загрузить страницу ресурсов. */\n public loadResourcesPage(\n page: number,\n pageSize: number,\n filter: Record,\n interval: Interval,\n scale: PlanningScale,\n ): Observable {\n const params: Dictionary = {\n pageNumber: page,\n pageSize,\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n scale: `WP.PlanningScale'${scale}'`,\n filter: '@filter',\n };\n\n const filterObject: BookingResourcesFilter = {\n roleId: filter.role?.id ?? null,\n competenceId: filter.competence?.id ?? null,\n legalEntityId: filter.legalEntity?.id ?? null,\n supervisorId: filter.supervisor?.id ?? null,\n includeSubResourcePools:\n filter.resourcePool?.includeSubordinates ?? false,\n resourcePoolId: filter.resourcePool?.value?.id ?? null,\n predefinedResourcePools: null,\n departmentId: filter.department?.value?.id ?? null,\n includeSubdepartments: filter.department?.includeSubordinates ?? false,\n projectId: filter.project?.id ?? null,\n includeInactiveResources: filter.view?.code === 'all',\n requestPreferredResources: filter.requestPreferredResources ?? false,\n requestId: this.resourceRequestId ?? null,\n levelId: filter.level?.id ?? null,\n gradeId: filter.grade?.id ?? null,\n locationId: filter.location?.id ?? null,\n requestLinked: false,\n term: filter.text ?? null,\n employmentTypeId: filter.employmentTypeId ?? null,\n };\n\n if (filter.resourceIds?.length) {\n filterObject.resourceIds = filter.resourceIds;\n }\n\n if (filter.skillIds?.length) {\n filterObject.skillIds = filter.skillIds.map((skill) => skill.id);\n }\n\n if (this.resourceRequestMode) {\n filterObject.requestLinked = true;\n filterObject.includeInactiveResources = true;\n }\n\n if (\n PREDEFINED_RESOURCE_POOL_IDS.some(\n (p) => p === filterObject.resourcePoolId,\n )\n ) {\n filterObject.predefinedResourcePools = PREDEFINED_RESOURCE_POOL_IDS.find(\n (p) => p === filterObject.resourcePoolId,\n );\n filterObject.resourcePoolId = null;\n }\n\n const urlParams: Dictionary = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n };\n\n const subs: Observable[] = [\n this.data\n .collection('BookingEntries')\n .function('GetResourcesPage')\n .query(params, null, urlParams),\n ];\n\n if (this.valueMode === ValueMode.FTE) {\n subs.push(\n this.fteScheduleService.getFteSchedule(\n scale,\n interval.start.toISODate(),\n interval.end.toISODate(),\n ),\n );\n }\n\n return forkJoin(subs).pipe(\n map((data: any[]) => {\n const resources = data[0] as ResourceInfo[];\n this.resources = this.resources.concat(resources);\n\n resources.forEach((ri) => {\n this.schedules[ri.id] = ri.schedule;\n });\n\n if (this.valueMode === ValueMode.FTE) {\n const fte: DateHours[] = data[1] as any[];\n fte.forEach((entry) => {\n this.fte[entry.date] = entry.hours;\n });\n }\n\n return resources;\n }),\n );\n }\n\n /** Загрузить фрагмент \"доски\". */\n public loadFrame(\n resourceIds: string[],\n interval: Interval,\n scale: PlanningScale,\n ): Observable {\n return forkJoin({\n bookings: this.loadBookings(resourceIds, interval, scale),\n schedule: this.loadSchedules(resourceIds, interval, scale),\n });\n }\n\n /** Загрузить расписания. */\n public loadSchedules(\n resourceIds: string[],\n interval: Interval,\n scale: PlanningScale,\n ): Observable {\n const filterObject = {\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n scale,\n resourceIds,\n };\n\n const subs: Observable[] = [\n this.data\n .collection('BookingEntries')\n .action('GetSchedules')\n .execute(filterObject),\n ];\n\n if (this.valueMode === ValueMode.FTE) {\n subs.push(\n this.fteScheduleService.getFteSchedule(\n scale,\n interval.start.toISODate(),\n interval.end.toISODate(),\n ),\n );\n }\n\n return forkJoin(subs).pipe(\n map((data: any[]) => {\n const schedules: any[] = data[0] as any;\n\n schedules.forEach((entry) => {\n const existsEntry = this.schedules[entry.userId]?.find(\n (s) => s.date === entry.date,\n );\n if (!existsEntry) {\n this.schedules[entry.userId].push({\n date: entry.date,\n hours: entry.duration,\n });\n }\n });\n\n if (this.valueMode === ValueMode.FTE) {\n const fte: DateHours[] = data[1] as any;\n fte.forEach((entry) => {\n this.fte[entry.date] = entry.hours;\n });\n }\n }),\n );\n }\n\n /**\n * Loads booking entries.\n *\n * Works differently depending on the environment.\n * 1. Booking page: only `BookingEntryType.booking` is loaded;\n * 2. ResourceRequest Card: `BookingEntryType.booking` and `BookingEntryType.resourceRequest` are loaded at the same time;\n * 3. Assistant: only `BookingEntryType.resourceRequest` is loaded.\n *\n * @returns `Observable` with `BookingEntryType.booking`\n * (if not loaded then with `BookingEntryType.resourceRequest`).\n */\n public loadBookings(\n resourceIds: string[],\n interval: Interval,\n scale: PlanningScale,\n reload = false,\n ): Observable {\n const filterObject = {\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n scale,\n resourceIds,\n entryType: BookingEntryType.booking,\n };\n\n const bookingQuery = {\n ...this.bookingQuery,\n };\n\n return forkJoin({\n bookings:\n this.resourceRequestMode === 'assistant'\n ? of(null)\n : this.bookingEntriesEndpoint.execute(\n filterObject,\n bookingQuery,\n ),\n bookingsRequest: this.resourceRequestMode\n ? this.bookingEntriesEndpoint.execute(\n {\n ...filterObject,\n entryType: BookingEntryType.resourceRequest,\n },\n {\n ...bookingQuery,\n filter: {\n resourceRequestId: {\n type: 'guid',\n value: this.resourceRequestId,\n },\n },\n },\n )\n : of(null),\n }).pipe(\n map((data) => {\n if (reload) {\n this.bookings.length = 0;\n this.bookingsResourceRequest.length = 0;\n }\n\n if (data.bookings) {\n this.updateBookingCollection(data.bookings, this.bookings);\n }\n\n if (data.bookingsRequest) {\n this.updateBookingCollection(\n data.bookingsRequest,\n this.bookingsResourceRequest,\n );\n }\n\n if (!data.bookings && data.bookingsRequest) {\n this.bookings = this.bookingsResourceRequest;\n }\n\n return data.bookings ?? data.bookingsRequest;\n }),\n );\n }\n\n /**\n * Loads bookings of resource request with `changeEntries`.\n *\n * @param resourceIds Resource id collection.\n * @param interval interval.\n * @param scale Planning Scale.\n * @param reload Indicate whether to clean current `bookingsChangeEntries`.\n *\n * @returns Booking entries.\n */\n public loadChangeEntries(\n resourceIds: string[],\n interval: Interval,\n scale: PlanningScale,\n reload = false,\n ): Observable {\n if (this.bookingMode === BookingMode.Basic) {\n return of([]);\n }\n\n const filterObject = {\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n scale,\n resourceIds,\n entryType: BookingEntryType.resourceRequest,\n };\n\n const bookingQuery = {\n select: [\n 'id',\n 'rowVersion',\n 'bookedHours',\n 'projectId',\n 'resourceId',\n 'type',\n 'from',\n 'to',\n 'planningMethod',\n ],\n expand: {\n changeEntries: { select: ['date', 'hours'] },\n detailEntries: { select: ['date', 'hours'] },\n resourceRequest: {\n select: [\n 'id',\n 'name',\n 'bookedHours',\n 'created',\n 'name',\n 'requestedHours',\n 'stateId',\n ],\n expand: {\n state: {\n select: ['id', 'code', 'name', 'style'],\n },\n teamMember: {\n select: ['id', 'resourceId'],\n expand: {\n resource: {\n select: ['id', 'resourceType'],\n },\n },\n },\n },\n },\n },\n filter: {\n resourceRequest: {\n and: ResourceRequest.notSavedChangesStateIds.map((id) => ({\n stateId: {\n ne: {\n type: 'guid',\n value: id,\n },\n },\n })),\n },\n },\n };\n\n return this.bookingEntriesEndpoint.execute(filterObject, bookingQuery).pipe(\n map((bookings: BookingEntry[]) => {\n if (reload) {\n this.bookingsChangeEntries.length = 0;\n }\n\n bookings.forEach((booking) => {\n const existedBooking = this.bookingsChangeEntries.find(\n (b) => b.id === booking.id,\n );\n\n if (existedBooking) {\n booking.changeEntries.forEach((entry) => {\n if (\n !existedBooking.changeEntries.find((v) => v.date === entry.date)\n ) {\n existedBooking.changeEntries.push(entry);\n }\n });\n } else {\n this.bookingsChangeEntries.push(booking);\n }\n });\n\n this.bookingsChangeEntries = _.orderBy(\n this.bookingsChangeEntries,\n [\n (b) =>\n ResourceRequest.systemStateIds.includes(\n b.resourceRequest.stateId,\n ),\n 'created',\n ],\n ['asc', 'desc'],\n );\n\n return bookings;\n }),\n );\n }\n\n /** Удалить бронирование. */\n public delete(bookingId: string): Observable {\n return this.data.collection('BookingEntries').entity(bookingId).delete();\n }\n\n /**\n * BookingEntries Clear's action Request.\n *\n * @param bookingId BookingEntryId.\n *\n * @return Just `Observable` without data.\n * */\n public clear(bookingId: string): Observable {\n return this.data\n .collection('BookingEntries')\n .entity(bookingId)\n .action('Clear')\n .execute();\n }\n\n /** Returns true, when BookingComponent should work only for viewing data */\n public isReadonlyMode(): boolean {\n return (\n (this.resourceRequestMode &&\n (this.resourceRequestMode !== 'assistant' ||\n !this.resourceRequest?.bookingEntryEditAllowed)) ||\n (!this.resourceRequestMode && this.resourceRequestId)\n );\n }\n\n private updateBookingCollection(\n newBookings: BookingEntry[],\n currentBookings: BookingEntry[],\n ): void {\n newBookings.forEach((booking) => {\n let existedBooking = currentBookings.find((b) => b.id === booking.id);\n // NOTE: The same TimeOff & Other booking entries always have different id.\n existedBooking ??= currentBookings.find(\n (b) =>\n booking.isTimeOff &&\n b.isTimeOff &&\n b.resourceId === booking.resourceId,\n );\n existedBooking ??= currentBookings.find(\n (b) =>\n b.isOther && booking.isOther && b.resourceId === booking.resourceId,\n );\n\n if (existedBooking) {\n booking.detailEntries.forEach((de) => {\n if (!existedBooking.detailEntries.find((x) => x.date === de.date)) {\n existedBooking.detailEntries.push(de);\n }\n });\n } else {\n booking.fromLx = DateTime.fromISO(booking.from);\n booking.toLx = DateTime.fromISO(booking.to);\n booking.resource = this.resources.find(\n (el) => el.id === booking.resourceId,\n );\n\n currentBookings.push(booking);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class BookingManageService {\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n\n /** Обновить бронирования. */\n public reload() {\n this.reloadSubject.next(null);\n }\n}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n NgZone,\n Optional,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport _ from 'lodash';\nimport { cloneDeep, floor, maxBy, orderBy, round } from 'lodash';\nimport {\n DateTime,\n DurationLikeObject,\n DurationObjectUnits,\n Interval,\n} from 'luxon';\nimport { asyncScheduler, fromEvent, ReplaySubject, Subject } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { PlanningMethod } from 'src/app/shared/models/enums/planning-method.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { Position } from 'src/app/shared/models/inner/position.model';\nimport { BookingDataService } from './booking-data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Injectable()\nexport class BookingRenderingService {\n private bookingHeight = 40;\n private bookingGap = 7;\n private bookingSlotPadding = 3;\n private readonly widthByScale: Record = {\n [PlanningScale.Day]: 45,\n [PlanningScale.Week]: 55,\n [PlanningScale.Month]: 65,\n [PlanningScale.Quarter]: null,\n [PlanningScale.Year]: null,\n };\n\n /** Текущий рабочий интервал доски. */\n public interval: Interval;\n\n /** Текущие слоты доски. */\n public slots: Slot[];\n\n /** Масштаб планирования. */\n public planningScale: PlanningScale;\n\n private get slotDurationUnit(): keyof DurationLikeObject {\n switch (this.planningScale) {\n case PlanningScale.Day:\n return 'days';\n case PlanningScale.Week:\n return 'weeks';\n case PlanningScale.Month:\n return 'months';\n }\n }\n\n public getDurationLineObject(value: number): DurationObjectUnits {\n switch (this.planningScale) {\n case PlanningScale.Day:\n return { days: value };\n case PlanningScale.Week:\n return { weeks: value };\n case PlanningScale.Month:\n return { months: value };\n }\n }\n\n private bookingStyleSubject = new ReplaySubject();\n public bookingStyle$ = this.bookingStyleSubject.asObservable();\n\n private stopChangeSubject = new Subject<{\n booking: BookingEntry;\n originalBooking: BookingEntry;\n }>();\n public stopChange$ = this.stopChangeSubject.asObservable();\n\n private stopCreateSubject = new Subject<{\n booking: BookingEntry;\n lineChanges: BookingEntry[];\n }>();\n public stopCreate$ = this.stopCreateSubject.asObservable();\n\n public get slotWidth(): number {\n return this.getSlotWidth(this.planningScale);\n }\n\n public boardEl: HTMLDivElement;\n\n private dragging: {\n originalBooking: BookingEntry;\n booking: BookingEntry;\n bookingGap: Position;\n ghostEl: HTMLDivElement;\n originalFrom: DateTime;\n };\n\n private resizing: {\n side: 'left' | 'right';\n originalBooking: BookingEntry;\n booking: BookingEntry;\n bookingEl: HTMLDivElement;\n bookingGap: Position;\n sideX: number;\n };\n\n private creating: {\n booking: BookingEntry;\n rightCornerX: number;\n lineChanges: BookingEntry[];\n };\n\n private throttle = throttleTime(\n Constants.mousemoveThrottleTime,\n asyncScheduler,\n {\n leading: true,\n trailing: true,\n },\n );\n\n private groupBoardHeightSubject = new ReplaySubject<{\n id: string;\n height: number;\n }>();\n public groupBoardHeight$ = this.groupBoardHeightSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private dataService: BookingDataService,\n private scheduleNavigationService: ScheduleNavigationService,\n @Optional() @Inject('entity') public entityData: string,\n @Optional() @Inject('context') public context: string,\n private zone: NgZone,\n ) {}\n\n /** Получение минимальной ширины таблицы. */\n public getDataTableWidth() {\n if (!this.slots) {\n return null;\n }\n return this.slotWidth * this.slots.length + 1;\n }\n\n public getSlotWidth(scale: PlanningScale): number {\n return this.widthByScale[scale];\n }\n\n startResize(\n side: 'left' | 'right',\n booking: BookingEntry,\n bookingEl: HTMLDivElement,\n event: MouseEvent,\n xGap: number,\n yGap: number,\n ) {\n this.resizing = {\n side,\n originalBooking: cloneDeep(booking),\n booking,\n bookingEl,\n bookingGap: { x: xGap, y: yGap },\n sideX: 0,\n };\n\n event.stopPropagation();\n\n this.resizeMoveTo(event);\n }\n\n public resizeMoveTo(event: MouseEvent) {\n if (!this.resizing) {\n return;\n }\n\n const boardRect = this.boardEl.getBoundingClientRect();\n\n const x =\n this.resizing.side === 'left'\n ? round(event.clientX - boardRect.x - this.resizing.bookingGap?.x ?? 0)\n : round(event.clientX - boardRect.x + this.resizing.bookingGap?.x ?? 0);\n\n // Вычислить новые параметры бронирования.\n const slotIndex =\n this.resizing.side === 'left'\n ? round(x / this.slotWidth)\n : round(x / this.slotWidth) - 1;\n\n let newFrom: DateTime = this.resizing.booking.fromLx;\n let newTo: DateTime = this.resizing.booking.toLx;\n\n if (this.resizing.side === 'left') {\n newFrom = this.interval.start.plus(this.getDurationLineObject(slotIndex));\n } else {\n newTo = this.interval.start\n .plus(this.getDurationLineObject(slotIndex + 1))\n .minus({ days: 1 });\n }\n\n if (!Interval.fromDateTimes(newFrom, newTo).isValid) {\n return;\n }\n\n this.resizing.booking.fromLx = newFrom;\n this.resizing.booking.toLx = newTo;\n\n const lineChanges = this.updateLineIndexes(\n this.resizing.booking.resourceId,\n );\n\n this.resizing.sideX = event.x - boardRect.x;\n\n this.propagateBookingStyles(this.resizing.booking);\n\n lineChanges.forEach((lineChange) => {\n this.propagateBookingStyles(lineChange);\n });\n\n this.propagateGroupBoardHeight(this.resizing.booking.resourceId);\n }\n\n public stopResize(event: MouseEvent) {\n if (!this.resizing) {\n return;\n }\n\n const booking = this.resizing.booking;\n\n if (\n !this.resizing.booking.fromLx.equals(\n this.resizing.originalBooking.fromLx,\n ) ||\n !this.resizing.booking.toLx.equals(this.resizing.originalBooking.toLx)\n ) {\n this.stopChangeSubject.next({\n originalBooking: this.resizing.originalBooking,\n booking,\n });\n }\n this.resizing = null;\n\n this.propagateBookingStyles(booking);\n }\n\n public startDrag(\n booking: BookingEntry,\n xGap: number,\n yGap: number,\n bookingEl: HTMLDivElement,\n event: MouseEvent,\n ) {\n this.dragging = {\n booking,\n originalBooking: cloneDeep(booking),\n bookingGap: { x: xGap, y: yGap },\n ghostEl: bookingEl.cloneNode(true) as HTMLDivElement,\n originalFrom: booking.fromLx,\n };\n\n this.dragging.ghostEl.classList.add('drag');\n this.boardEl.appendChild(this.dragging.ghostEl);\n this.dragMoveTo(event);\n event.stopPropagation();\n }\n\n public dragMoveTo(event: MouseEvent) {\n if (!this.dragging) {\n return;\n }\n const boardRect = this.boardEl.getBoundingClientRect();\n const x = round(\n event.clientX - boardRect.x - this.dragging.bookingGap?.x ?? 0,\n );\n const y = round(\n event.clientY - boardRect.y - this.dragging.bookingGap?.y ?? 0,\n );\n\n this.dragging.ghostEl.style.left = x + 'px';\n this.dragging.ghostEl.style.top = y + 'px';\n\n // Вычислить новые параметры бронирования.\n\n const slotIndex = round(x / this.slotWidth);\n\n const previousInterval = Interval.fromDateTimes(\n this.dragging.originalBooking.fromLx,\n this.dragging.originalBooking.toLx,\n );\n const previousSlotIndex = floor(\n previousInterval.start\n .diff(this.interval.start, this.slotDurationUnit)\n .get(this.slotDurationUnit),\n );\n\n const shiftSlots = slotIndex - previousSlotIndex;\n\n switch (this.planningScale) {\n case PlanningScale.Day:\n this.dragging.booking.fromLx = previousInterval.start.plus({\n days: shiftSlots,\n });\n this.dragging.booking.toLx = previousInterval.end.plus({\n days: shiftSlots,\n });\n break;\n case PlanningScale.Week:\n this.dragging.booking.fromLx = previousInterval.start.plus({\n weeks: shiftSlots,\n });\n this.dragging.booking.toLx = previousInterval.end.plus({\n weeks: shiftSlots,\n });\n break;\n case PlanningScale.Month: {\n let to = previousInterval.end.plus({ months: shiftSlots });\n if (\n previousInterval.end\n .endOf('month')\n .startOf('day')\n .equals(previousInterval.end)\n ) {\n to = to.endOf('month');\n }\n this.dragging.booking.toLx = to;\n\n if (this.dragging.booking.planningMethod === PlanningMethod.Manual) {\n this.dragging.booking.fromLx = to.minus({\n days: previousInterval.end.diff(previousInterval.start, 'day').days,\n });\n } else {\n this.dragging.booking.fromLx = previousInterval.start.plus({\n months: shiftSlots,\n });\n }\n\n break;\n }\n }\n\n const lineChanges = this.updateLineIndexes(\n this.dragging.booking.resourceId,\n );\n this.propagateBookingStyles(this.dragging.booking);\n\n lineChanges.forEach((lineChange) => {\n this.propagateBookingStyles(lineChange);\n });\n\n this.propagateGroupBoardHeight(this.dragging.booking.resourceId);\n }\n\n public stopDrag() {\n if (!this.dragging) {\n return;\n }\n\n this.dragging.ghostEl.remove();\n const booking = this.dragging.booking;\n\n if (\n !this.dragging.booking.fromLx.equals(this.dragging.originalFrom) ||\n this.dragging.booking.resourceId !==\n this.dragging.originalBooking.resourceId\n ) {\n this.stopChangeSubject.next({\n originalBooking: this.dragging.originalBooking,\n booking,\n });\n }\n this.dragging = null;\n\n this.propagateBookingStyles(booking);\n }\n\n public startCreate(resourceId: string, mouseEvent: MouseEvent) {\n const boardRect = this.boardEl.getBoundingClientRect();\n const x = round(mouseEvent.clientX - boardRect.x);\n const slotIndex = floor(x / this.slotWidth);\n\n const from = this.interval.start.plus(\n this.getDurationLineObject(slotIndex),\n );\n\n const booking: BookingEntry = {\n id: Guid.generate(),\n created: DateTime.now().toISO(),\n from: null,\n to: null,\n fromLx: from,\n toLx: from,\n bookedHours: 0,\n requiredHours: 0,\n requiredSchedulePercent: 0,\n lineIndex: 0,\n project: null,\n detailEntries: [],\n resourceId,\n planningMethod: PlanningMethod.FrontLoad,\n editAllowed: true,\n };\n\n if (this.context === 'project') {\n booking.project = JSON.parse(this.entityData);\n }\n\n this.dataService.bookings.push(booking);\n this.creating = {\n booking,\n rightCornerX: 0,\n lineChanges: [],\n };\n\n this.createMoveTo(mouseEvent);\n }\n\n /** Обработка события \"растягивания\" при создании бронирования. */\n private createMoveTo(event: MouseEvent) {\n if (!this.creating) {\n return;\n }\n\n const left =\n this.creating.booking.fromLx\n .diff(this.interval.start, this.slotDurationUnit)\n .get(this.slotDurationUnit) * this.slotWidth;\n\n const boardRect = this.boardEl.getBoundingClientRect();\n\n if (event.clientX - boardRect.x <= left) {\n return;\n }\n\n this.creating.rightCornerX = event.x - boardRect.x;\n\n const x = round(event.clientX - boardRect.x);\n const slotIndex = round(x / this.slotWidth) - 1;\n\n const to = this.interval.start.plus(this.getDurationLineObject(slotIndex));\n if (\n to\n .diff(this.creating.booking.fromLx, this.slotDurationUnit)\n .get(this.slotDurationUnit) < 0\n ) {\n this.creating.booking.toLx = this.creating.booking.fromLx;\n } else {\n this.creating.booking.toLx = to;\n }\n\n const interval = this.scheduleNavigationService.getNormalizedInterval(\n Interval.fromDateTimes(\n this.creating.booking.fromLx,\n this.creating.booking.toLx,\n ),\n this.planningScale,\n );\n this.creating.booking.fromLx = interval.start;\n this.creating.booking.toLx = interval.end;\n\n const lineChanges = this.updateLineIndexes(\n this.creating.booking.resourceId,\n );\n this.propagateBookingStyles(this.creating.booking);\n\n // Добавить измененные бронирования к общему списку изменений.\n lineChanges.forEach((lineChange) => {\n if (!this.creating.lineChanges.find((b) => b.id === lineChange.id)) {\n this.creating.lineChanges.push(lineChange);\n }\n });\n\n lineChanges.forEach((lineChange) => {\n this.propagateBookingStyles(lineChange);\n });\n\n this.propagateGroupBoardHeight(this.creating.booking.resourceId);\n }\n\n /** Завершение создания бронирования. */\n public stopCreate(event: MouseEvent) {\n const booking = this.creating.booking;\n\n this.stopCreateSubject.next({\n booking,\n lineChanges: this.creating.lineChanges,\n });\n this.creating = null;\n this.propagateBookingStyles(booking);\n }\n\n private isIntersected(int1: Interval, int2: Interval): boolean {\n int1 = this.scheduleNavigationService.getNormalizedInterval(\n int1,\n this.planningScale,\n );\n int2 = this.scheduleNavigationService.getNormalizedInterval(\n int2,\n this.planningScale,\n );\n return !(int2.start > int1.end || int2.end < int1.start);\n }\n\n public updateLineIndexes(resourceId: string): BookingEntry[] {\n const changes: BookingEntry[] = [];\n let bookings = this.dataService.getResourceBookings(resourceId);\n bookings = orderBy(\n bookings,\n [\n (booking) => !booking.isOther && !booking.isTimeOff,\n (booking) => booking.isOther,\n (booking) => booking.isTimeOff,\n (booking) => booking.bookedHours,\n (booking) => booking.created,\n ],\n ['desc', 'desc', 'desc', 'desc', 'asc'],\n );\n\n bookings.forEach((booking, index) => {\n if (booking.lineIndex !== index) {\n booking.lineIndex = index;\n changes.push(booking);\n }\n });\n\n const maxLineIndex = maxBy(bookings, (e) => e.lineIndex)?.lineIndex ?? 0;\n\n for (let index = 0; index <= maxLineIndex; index++) {\n const entriesInLine = orderBy(\n bookings.filter((e) => e.lineIndex === index),\n (e) => e.fromLx.toISODate(),\n );\n\n while (entriesInLine.length > 0) {\n const booking = entriesInLine.splice(0, 1)[0];\n const currentInterval = Interval.fromDateTimes(\n booking.fromLx,\n booking.toLx,\n );\n\n // Если \"сверху\" пусто - поднять.\n const intersectedBookings = bookings.filter(\n (e) =>\n e.lineIndex < booking.lineIndex &&\n this.isIntersected(\n currentInterval,\n Interval.fromDateTimes(e.fromLx, e.toLx),\n ),\n );\n\n if (!intersectedBookings.length) {\n const toIndex = Math.max(0, booking.lineIndex - 1);\n booking.lineIndex = toIndex;\n\n if (toIndex > 0) {\n entriesInLine.unshift(booking);\n }\n\n changes.push(booking);\n continue;\n }\n\n const maxIndex =\n (maxBy(intersectedBookings, (e) => e.lineIndex).lineIndex ?? -1) + 1;\n\n if (maxIndex < booking.lineIndex) {\n booking.lineIndex = maxIndex;\n changes.push(booking);\n }\n }\n }\n\n return _.uniqBy(changes, 'id');\n }\n\n /** Перерисовать группу. */\n public redrawGroup(resourceId: string) {\n this.updateLineIndexes(resourceId);\n this.propagateGroupBoardHeight(resourceId);\n this.dataService.getResourceBookings(resourceId).forEach((booking) => {\n this.propagateBookingStyles(booking);\n });\n }\n\n public propagateGroupBoardHeight(resourceId: string): any {\n const bookings = this.dataService.getResourceBookings(resourceId);\n const maxLinesIndex =\n bookings.length > 0 ? maxBy(bookings, (b) => b.lineIndex)?.lineIndex : 0;\n\n this.groupBoardHeightSubject.next({\n id: resourceId,\n height: (maxLinesIndex + 1) * (40 + 7) + 7,\n });\n }\n\n public propagateBookingStyles(bookingEntry: BookingEntry) {\n const interval = this.scheduleNavigationService.getNormalizedInterval(\n Interval.fromDateTimes(bookingEntry.fromLx, bookingEntry.toLx),\n this.planningScale,\n );\n\n const start = interval.start;\n const end = interval.end;\n\n const slotIndex = floor(\n start\n .diff(this.interval.start, this.slotDurationUnit)\n .get(this.slotDurationUnit),\n );\n\n // 1 - граница, 3 - padding от края. Это граница без учета \"растягивания\".\n let x = this.slotWidth * slotIndex + this.bookingSlotPadding;\n const y =\n this.bookingGap +\n (this.bookingHeight + this.bookingGap) * bookingEntry.lineIndex;\n\n const slotsCount =\n floor(end.diff(start, this.slotDurationUnit).get(this.slotDurationUnit)) +\n 1;\n let width = slotsCount * this.slotWidth - 6;\n\n const css = [];\n\n if (this.resizing?.booking?.id === bookingEntry.id) {\n css.push('resizing');\n if (this.resizing.side === 'left') {\n width = width - (this.resizing.sideX - x);\n x = this.resizing.sideX;\n } else {\n width = this.resizing.sideX - x + this.resizing.bookingGap.x;\n }\n }\n\n if (this.creating?.booking?.id === bookingEntry.id) {\n width = this.creating.rightCornerX - x;\n css.push('creating');\n }\n\n if (this.dragging?.booking?.id === bookingEntry.id) {\n css.push('dragging');\n }\n\n if (bookingEntry.isTimeOff || bookingEntry.isOther) {\n css.push('timeoff');\n }\n\n if (!bookingEntry.editAllowed || this.dataService.isReadonlyMode()) {\n css.push('readonly');\n }\n\n css.push(bookingEntry.type?.toLowerCase());\n\n this.bookingStyleSubject.next({\n id: bookingEntry.id,\n position: { x, y },\n width,\n css,\n });\n }\n\n /** Регистрация общей доски бронирования. */\n public initBoard(boardEl: HTMLDivElement) {\n this.boardEl = boardEl;\n\n fromEvent(document, 'mouseup')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n if (this.dragging) {\n this.stopDrag();\n }\n\n if (this.creating) {\n this.stopCreate(event);\n }\n\n if (this.resizing) {\n this.stopResize(event);\n }\n });\n\n this.zone.runOutsideAngular(() => {\n fromEvent(this.boardEl, 'mousemove')\n .pipe(this.throttle, takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n if (this.dragging) {\n this.dragMoveTo(event);\n }\n\n if (this.resizing) {\n this.resizeMoveTo(event);\n }\n\n if (this.creating) {\n this.createMoveTo(event);\n }\n });\n });\n }\n\n /** Обработать \"вход\" в зону ресурса. */\n public mouseOverGroup(resourceId: string) {\n if (this.dragging && this.dragging.booking.resourceId !== resourceId) {\n const oldResourceId = this.dragging.booking.resourceId;\n this.dragging.booking.resourceId = resourceId;\n\n this.redrawGroup(oldResourceId);\n this.redrawGroup(resourceId);\n }\n }\n\n public registerBooking(booking: BookingEntry) {\n this.propagateBookingStyles(booking);\n }\n}\n\nexport interface GroupBoard {\n resource: NamedEntity;\n}\n\nexport interface BookingStyle {\n id: string;\n position: Position;\n width: number;\n css: string[];\n}\n","import {\n Inject,\n Injectable,\n Injector,\n NgZone,\n OnDestroy,\n Optional,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport {\n BehaviorSubject,\n Subject,\n Subscription,\n firstValueFrom,\n debounceTime,\n filter,\n switchMap,\n takeUntil,\n} from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport {\n BookingEntry,\n BookingEntryReqBody,\n ProjectRow,\n} from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BookingSettings } from '../models/booking.settings';\nimport { BookingEntryFormComponent } from '../shared/booking-entry-form/booking-entry-form.component';\nimport { BookingNotifyComponent } from '../shared/booking-notify/booking-notify.component';\nimport { BookingDataService } from './booking-data.service';\nimport { BookingManageService } from './booking-manage.service';\nimport { BookingRenderingService } from './booking-rendering.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { BookingDetailEntry } from 'src/app/shared/models/entities/resources/booking-detail-entry.model';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport {\n RecalculateState,\n ToggleState,\n} from 'src/app/booking/booking/models/state.interface';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { BookingViewSettingsService } from 'src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FILTER } from 'src/app/shared/tokens';\nimport { EntityFilter } from 'src/app/core/navigation.service';\n\n@Injectable()\nexport class BookingService implements OnDestroy {\n public loading$ = new BehaviorSubject(true);\n public get loading(): boolean {\n return this._loading;\n }\n public set loading(value: boolean) {\n this._loading = value;\n this.loading$.next(value);\n }\n private _loading: boolean;\n\n private detectChangesSubject = new Subject();\n public detectChanges$ = this.detectChangesSubject.asObservable();\n\n private recalculateGroupSubject = new Subject();\n public recalculateGroup$ = this.recalculateGroupSubject.asObservable();\n\n private toggleGroupSubject = new BehaviorSubject(null);\n public toggleGroup$ = this.toggleGroupSubject.asObservable();\n\n private toggleRowSubject = new BehaviorSubject(null);\n public toggleRow$ = this.toggleRowSubject.asObservable();\n\n private frameLoadingSubject = new BehaviorSubject(false);\n public frameLoading$ = this.frameLoadingSubject.asObservable();\n\n /** Emits event on any change. */\n public changes$ = new Subject();\n public updateSubscription: Subscription;\n public page: number;\n public interval: Interval;\n public interval$ = new Subject();\n public slots: Slot[];\n public slotGroups: SlotGroup[];\n public settings: BookingSettings;\n public resourceRequestInterval: Interval;\n public bookingMode: BookingMode;\n public isAssistantBottomMode: boolean;\n public isAssistantTopMode: boolean;\n\n private expandedResourceIds: Set = new Set();\n private expandedProjectIds: Map> = new Map();\n private pageSize = 30;\n private allAreLoaded: boolean;\n private scrollSubscription: Subscription | null;\n private entriesQueueId = Guid.generate();\n private entriesToSave: BookingEntryReqBody[] = [];\n private readonly massToggleOperationDelay = 100;\n private readonly destroyed$ = new Subject();\n\n public get isAllExpanded(): boolean {\n return this.expandedResourceIds.size === this.dataService.resources.length;\n }\n\n public get isResourceLineHidden(): boolean {\n return this.isAssistantTopMode && this.bookingMode === BookingMode.Detailed;\n }\n\n public get isActualizationResourceRequest(): boolean {\n return (\n this.dataService.resourceRequest?.teamMember?.resource?.resourceType ===\n ResourceType.user\n );\n }\n\n public get isChangeEntriesHidden(): boolean {\n return (\n this.isAssistantTopMode ||\n this.isAssistantBottomMode ||\n this.resourceRequestId ||\n !this.expandedResourceIds.size ||\n !this.bookingViewSettingsService.settings.resourceRequestShown\n );\n }\n\n constructor(\n @Optional() @Inject('assistantRequestId') public resourceRequestId,\n @Optional() private bookingRenderingService: BookingRenderingService | null,\n private freezeTableService: FreezeTableService,\n private modal: NgbModal,\n private activeModal: NgbActiveModal,\n private bookingFilterService: FilterService,\n private dataService: BookingDataService,\n private data: DataService,\n private scheduleNavigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private blockUI: BlockUIService,\n private log: LogService,\n private injector: Injector,\n private notification: NotificationService,\n private bookingManageService: BookingManageService,\n private bookingViewSettingsService: BookingViewSettingsService,\n private translate: TranslateService,\n private messageService: MessageService,\n private savingQueueService: SavingQueueService,\n private chromeService: ChromeService,\n private zone: NgZone,\n private translateService: TranslateService,\n private notificationService: NotificationService,\n @Inject(DOCUMENT) private document: Document,\n @Optional() @Inject(FILTER) private entityFilter: EntityFilter,\n appService: AppService,\n ) {\n this.bookingMode = appService.session.configuration.bookingMode;\n\n this.initSubscribers();\n }\n\n public ngOnDestroy(): void {\n this.savingQueueService.save();\n this.scrollSubscription?.unsubscribe();\n this.destroyed$.next();\n }\n\n // TODO remove duplicate after bookingRenderingService's refactoring\n public getDataTableWidth(): number {\n if (!this.slots) {\n return null;\n }\n return (\n this.getSlotWidth(this.settings.planningScale) * this.slots.length + 1\n );\n }\n\n // TODO remove duplicate after bookingRenderingService's refactoring\n public getSlotWidth(scale: PlanningScale): number {\n switch (scale) {\n case PlanningScale.Day:\n return 45;\n case PlanningScale.Week:\n return 55;\n case PlanningScale.Month:\n return 65;\n }\n }\n\n /**\n * Emits detect changes in booking components with resources.\n *\n * @param resourceId Resource ID.\n *\n * */\n public emitComponentChanges(resourceId: string | null): void {\n if (resourceId) {\n this.detectChangesSubject.next(resourceId);\n this.recalculateGroupSubject.next({ id: resourceId });\n this.bookingRenderingService?.redrawGroup(resourceId);\n } else {\n this.dataService.resources.forEach((resource) => {\n this.detectChangesSubject.next(resource.id);\n this.recalculateGroupSubject.next({ id: resource.id });\n this.bookingRenderingService?.redrawGroup(resource.id);\n });\n }\n }\n\n /**\n * Emits DetectChangesSubject.\n *\n * @param resourceId Resource ID.\n *\n * */\n public emitDetectChanges(resourceId: string | null): void {\n this.detectChangesSubject.next(resourceId);\n }\n\n /**\n * Add new `BookingEntry` in the current booking entries array.\n *\n * @param bookingEntry `BookingEntry`.\n *\n * */\n public addNewBookingEntry(bookingEntry: BookingEntry): void {\n this.dataService.bookings.push(bookingEntry);\n this.detectChangesSubject.next(bookingEntry.resourceId);\n }\n\n /**\n * Gets project list with `detailEntries` from current bookings sorted by `id`.\n *\n * @param resourceId `resourceId`.\n *\n * @return Project's rows.\n * */\n public getsProjectRows(resourceId: string): ProjectRow[] {\n const projectRows: ProjectRow[] = [];\n\n for (const entry of this.dataService.getResourceBookings(resourceId)) {\n let projectName: string;\n // TODO not correct, fix it after loadFrame refactoring\n if (entry.isTimeOff) {\n const timeOffRow = projectRows.find((el) => el.isTimeOff);\n projectName = 'resources.booking.common.timeOff';\n\n if (timeOffRow) {\n timeOffRow.detailEntries = timeOffRow.detailEntries.concat(\n entry.detailEntries,\n );\n\n continue;\n }\n }\n\n // TODO not correct, fix it after loadFrame refactoring\n if (entry.isOther) {\n const otherProjectRow = projectRows.find((el) => !el.id && el.name);\n projectName = 'resources.booking.common.otherProjects';\n\n if (otherProjectRow) {\n otherProjectRow.detailEntries = otherProjectRow.detailEntries.concat(\n entry.detailEntries,\n );\n\n continue;\n }\n }\n\n projectRows.push({\n id: entry.isTimeOff || entry.isOther ? null : entry.project.id,\n name: projectName\n ? this.translate.instant(projectName)\n : entry.project.name,\n bookingEntryId: entry.id,\n bookingEntryEditAllowed: entry.editAllowed,\n requestBookings: [],\n detailEntries: entry.detailEntries,\n isTimeOff: entry.isTimeOff,\n isExpanded: this.expandedProjectIds\n ?.get(resourceId)\n ?.has(entry.project?.id),\n });\n }\n\n projectRows\n .filter((row) => row.id)\n .forEach((row) => {\n row.requestBookings = this.dataService.bookingsChangeEntries.filter(\n (booking) =>\n booking.projectId === row.id && booking.resourceId === resourceId,\n );\n });\n\n return _.sortBy(projectRows, ['id']);\n }\n\n /**\n * Add entry to saving queue.\n *\n * @param bookingEntryId BookingEntry ID.\n * @param entry BookingDetailEntry.\n * @param resourceId resourceId.\n *\n * */\n public addEntryToQueue(\n bookingEntryId: string,\n entry: Partial,\n resourceId: string,\n ): void {\n const queueEntry: BookingEntryReqBody = {\n date: entry.date,\n hours: entry.hours ?? 0,\n bookingId: bookingEntryId,\n };\n\n const queueEntryIndex = this.entriesToSave.findIndex(\n (el) =>\n el.date === queueEntry.date && el.bookingId === queueEntry.bookingId,\n );\n\n if (queueEntryIndex > -1) {\n this.entriesToSave[queueEntryIndex].hours = queueEntry.hours;\n } else {\n this.entriesToSave.push(queueEntry);\n }\n\n this.updateBookingDetailEntries(\n bookingEntryId,\n resourceId,\n this.entriesToSave.filter((el) => el.bookingId === bookingEntryId),\n );\n\n const planningScale = _.clone(this.settings.planningScale);\n\n this.savingQueueService.addToQueue(this.entriesQueueId, () =>\n this.dataService.updateDetails(this.entriesToSave, planningScale),\n );\n }\n\n /** Expands all resources or collapses if they are all open */\n public toggleAllResources(): void {\n const state = !this.isAllExpanded;\n\n this.dataService.resources.forEach((item) => {\n if (state && !this.expandedResourceIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n\n if (!state && this.expandedResourceIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n });\n }\n\n private loadFrame(direction: 'left' | 'right' | null) {\n this.frameLoadingSubject.next(true);\n this.blockUI.start();\n\n let loadingInterval: Interval;\n\n if (direction) {\n let shift: DurationLike;\n\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n }\n\n loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n } else {\n loadingInterval = this.interval;\n }\n\n this.log.debug(`Load new interval: ${loadingInterval.toISODate()}`);\n\n this.dataService\n .loadFrame(\n this.dataService.resources.map((r) => r.id),\n loadingInterval,\n this.settings.planningScale,\n )\n .subscribe({\n next: () => {\n this.updateDates();\n this.blockUI.stop();\n this.changes$.next(null);\n this.detectChangesSubject.next(null);\n\n // NOTE: Handles by `booking.assistant` in this mode\n if (this.isAssistantTopMode || this.isAssistantBottomMode) {\n return;\n }\n\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else if (direction === 'right') {\n this.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.loading = false;\n this.notification.error(error.message);\n },\n complete: () => {\n this.frameLoadingSubject.next(false);\n },\n });\n\n if (!this.isChangeEntriesHidden) {\n this.dataService\n .loadChangeEntries(\n this.getResourceIdsForLoadChanges(),\n this.interval,\n this.settings.planningScale,\n )\n .subscribe((bookings) => {\n bookings.forEach((booking) => {\n this.detectChangesSubject.next(booking.resourceId);\n });\n });\n }\n }\n\n /** Запустить создание нового бронирования. */\n public openBookingForm(booking: BookingEntry, mode: 'create' | 'edit') {\n const ref = this.modal.open(BookingEntryFormComponent, {\n size: 'xl',\n injector: this.injector,\n });\n const instance = ref.componentInstance as BookingEntryFormComponent;\n instance.mode = mode;\n instance.readonly = !booking.editAllowed;\n instance.bookingEntry = _.cloneDeep(booking);\n instance.resource = this.dataService.resources.find(\n (r) => r.id === booking.resourceId,\n );\n\n ref.result.then(\n (updateBooking: BookingEntry) => {\n _.merge(booking, updateBooking);\n booking.detailEntries = updateBooking.detailEntries;\n booking.fromLx = DateTime.fromISO(booking.from);\n booking.toLx = DateTime.fromISO(booking.to);\n booking.rowVersion = updateBooking.rowVersion;\n\n this.bookingRenderingService?.redrawGroup(booking.resourceId);\n this.recalculateGroup(booking.resourceId);\n this.detectChangesSubject.next(booking.resourceId);\n this.changes$.next();\n },\n (result) => {\n if (mode === 'create') {\n _.remove(this.dataService.bookings, (e) => e.id === booking.id);\n this.bookingRenderingService?.redrawGroup(booking.resourceId);\n this.detectChangesSubject.next(booking.resourceId);\n }\n\n if (result === 'error') {\n this.reloadBookings();\n }\n },\n );\n }\n\n /**\n * Update details of booking entry in the current bookings.\n *\n * @param bookingEntryId bookingEntryId.\n * @param resourceId resourceId.\n * @param details details.\n *\n * */\n public updateBookingDetailEntries(\n bookingEntryId: string,\n resourceId: string,\n details: Partial[],\n ): void {\n const bookingEntry = this.dataService.bookings.find(\n (entry) => entry.id === bookingEntryId,\n );\n\n if (!bookingEntry) {\n return;\n }\n\n details.forEach((item) => {\n const detailIndex = bookingEntry.detailEntries.findIndex(\n (el) => el.date === item.date,\n );\n\n if (detailIndex > -1) {\n bookingEntry.bookedHours = Math.max(\n 0,\n bookingEntry.bookedHours -\n bookingEntry.detailEntries[detailIndex].hours +\n item.hours,\n );\n\n bookingEntry.detailEntries[detailIndex].hours = item.hours;\n } else {\n bookingEntry.bookedHours += item.hours;\n\n bookingEntry.detailEntries.push({\n hours: item.hours,\n date: item.date,\n id: null,\n });\n }\n });\n\n this.recalculateGroup(resourceId);\n }\n\n /**\n * Clear details of booking entry.\n *\n * @param bookingEntry BookingEntry.\n *\n * */\n public clearBooking(bookingEntry: BookingEntry): void {\n const booking = this.dataService.bookings.find(\n (el) => el.id === bookingEntry.id,\n );\n\n booking.detailEntries.length = 0;\n booking.bookedHours = 0;\n\n this.detectChangesSubject.next(bookingEntry.resourceId);\n this.recalculateGroup(bookingEntry.resourceId);\n this.dataService.clear(bookingEntry.id).subscribe({\n next: () => {\n this.changes$.next();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.reloadBookings();\n },\n });\n }\n\n /**\n * Delete BookingEntry .\n *\n * @param bookingEntry BookingEntry.\n *\n * */\n public deleteBooking(booking: BookingEntry): void {\n _.remove(this.dataService.bookings, (e) => e.id === booking.id);\n this.bookingRenderingService?.redrawGroup(booking.resourceId);\n this.detectChangesSubject.next(booking.resourceId);\n this.recalculateGroup(booking.resourceId);\n\n this.dataService.delete(booking.id).subscribe({\n next: () => {\n this.changes$.next();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.reloadBookings();\n },\n });\n }\n\n public replaceBookingEntry(\n bookingEntryId: string,\n resourceId: string,\n requestDateHours: DateHours[],\n ): void {\n const bookingEntry: BookingEntry = this.dataService.bookings.find(\n (el) => el.id === bookingEntryId,\n );\n bookingEntry.bookedHours = 0;\n bookingEntry.detailEntries.forEach((el) => {\n el.hours = 0;\n this.addEntryToQueue(bookingEntryId, el, resourceId);\n });\n\n requestDateHours.forEach((entry) => {\n this.addEntryToQueue(bookingEntryId, { ...entry }, resourceId);\n });\n\n this.detectChangesSubject.next(resourceId);\n this.recalculateGroup(resourceId);\n }\n\n /**\n * Automatically enrich result before request for the bookingEntry when `BookingMode` is detailed.\n *\n * @param bookingEntryId BookingEntry ID.\n * @param resourceId Resource ID.\n * @param requestDateHours Requested hours by date.\n */\n public fillBookingEntry(\n bookingEntryId: string,\n resourceId: string,\n requestDateHours: DateHours[],\n ): void {\n let updatingBookingEntry: BookingEntry;\n\n requestDateHours.forEach((entry) => {\n let deviation = -entry.hours;\n\n this.dataService.bookings.forEach((bookingEntry) => {\n deviation +=\n bookingEntry.detailEntries.find((el) => el.date === entry.date)\n ?.hours ?? 0;\n\n if (bookingEntry.id === bookingEntryId) {\n updatingBookingEntry = bookingEntry;\n }\n });\n\n if (deviation < 0) {\n const detailEntry = updatingBookingEntry.detailEntries.find(\n (el) => el.date === entry.date,\n );\n const newDetailEntry: DateHours = {\n date: entry.date,\n hours: detailEntry ? detailEntry.hours + -deviation : -deviation,\n };\n\n this.addEntryToQueue(bookingEntryId, newDetailEntry, resourceId);\n }\n });\n\n this.detectChangesSubject.next(resourceId);\n this.recalculateGroup(resourceId);\n }\n\n /** Изменить тип. */\n setType(originalBooking: BookingEntry) {\n this.blockUI.start();\n\n const actionName =\n originalBooking.type === BookingType.Hard\n ? 'SwitchToSoft'\n : 'SwitchToHard';\n\n this.data\n .collection('BookingEntries')\n .entity(originalBooking.id)\n .action(actionName)\n .execute()\n .subscribe({\n next: (updatedBooking: BookingEntry) => {\n const booking = this.dataService.bookings.find(\n (b) => b.id === updatedBooking.id,\n );\n booking.type = updatedBooking.type;\n booking.editAllowed = updatedBooking.editAllowed;\n booking.rowVersion = updatedBooking.rowVersion;\n\n this.recalculateGroup(booking.resourceId);\n this.bookingRenderingService?.redrawGroup(booking.resourceId);\n\n this.changes$.next();\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /** Обновляет даты начала и окончания выбранного периода, слоты и набор периодов в быстром выборе. */\n private updateDates() {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n\n this.interval$.next(this.interval);\n\n if (this.bookingRenderingService) {\n this.bookingRenderingService.interval = this.interval;\n this.bookingRenderingService.slots = this.slots;\n }\n\n this.dataService.resources.forEach((r) => {\n this.recalculateGroup(r.id, true);\n this.bookingRenderingService?.redrawGroup(r.id);\n });\n }\n\n /** Изменение единицы планирования. */\n public setValueMode(valueMode: ValueMode) {\n this.settings.valueMode = valueMode;\n this.dataService.valueMode = this.settings.valueMode;\n this.loadFrame(null);\n }\n\n /** Изменить масштаб планирования. */\n public setPlanningScale(planningScale: PlanningScale) {\n this.settings.planningScale = planningScale;\n\n this.interval = this.scheduleNavigationService.getInterval(\n this.settings.planningScale,\n );\n\n if (this.bookingRenderingService) {\n this.bookingRenderingService.planningScale = this.settings.planningScale;\n this.bookingRenderingService.interval = this.interval;\n }\n\n this.updateDates();\n this.reload();\n }\n\n /** Loads resources by page. */\n public loadResourcesPage(): void {\n this.loading = true;\n this.detectChangesSubject.next(null);\n\n if (this.entityFilter) {\n this.bookingFilterService.values.project = {\n id: this.entityFilter.filter.find((v) => v.projectId).projectId.value,\n name: this.entityFilter.name,\n };\n }\n\n this.dataService\n .loadResourcesPage(\n this.page,\n this.pageSize,\n this.bookingFilterService.values,\n this.interval,\n this.settings.planningScale,\n )\n .pipe(\n switchMap((resources) => {\n this.allAreLoaded = resources.length < this.pageSize;\n this.blockUI.start();\n\n Array.from(this.expandedResourceIds).forEach((id) => {\n if (resources.findIndex((el) => el.id === id) === -1) {\n this.expandedResourceIds.delete(id);\n this.expandedProjectIds.delete(id);\n }\n });\n\n this.detectChangesSubject.next(null);\n\n return this.dataService.loadBookings(\n resources.map((r) => r.id),\n this.interval,\n this.settings.planningScale,\n );\n }),\n )\n .subscribe({\n next: () => {\n this.loading = false;\n\n this.dataService.resources.forEach((r) => {\n this.recalculateGroup(r.id, true);\n });\n this.dataService.resources.forEach((r) => {\n this.bookingRenderingService?.redrawGroup(r.id);\n });\n\n this.expandedResourceIds.forEach((resourceId) =>\n this.toggleGroup(resourceId, true),\n );\n\n this.blockUI.stop();\n\n this.detectChangesSubject.next(null);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n\n this.detectChangesSubject.next(null);\n }\n\n /** Перезагрузить данные. */\n public reload(toDate?: DateTime) {\n this.loading = true;\n\n this.dataService.resources = [];\n this.dataService.bookings = [];\n this.dataService.bookingsChangeEntries = [];\n this.dataService.bookingsResourceRequest = [];\n this.dataService.fte = {};\n this.dataService.schedules = {};\n\n this.interval =\n this.resourceRequestInterval ??\n this.scheduleNavigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n\n this.updateDates();\n this.allAreLoaded = false;\n this.page = 0;\n this.loadResourcesPage();\n }\n\n /** Updates bookings (for loaded resource and current interval). */\n public async reloadBookings(): Promise {\n try {\n this.blockUI.start();\n\n await firstValueFrom(\n this.dataService.loadBookings(\n this.dataService.resources.map((r) => r.id),\n this.interval,\n this.settings.planningScale,\n true,\n ),\n );\n\n this.dataService.resources.forEach((r) => {\n this.detectChangesSubject.next(r.id);\n this.recalculateGroup(r.id);\n this.bookingRenderingService?.redrawGroup(r.id);\n });\n\n this.blockUI.stop();\n\n if (!this.isChangeEntriesHidden) {\n this.dataService\n .loadChangeEntries(\n this.getResourceIdsForLoadChanges(),\n this.interval,\n this.settings.planningScale,\n true,\n )\n .subscribe((bookings) => {\n bookings.forEach((booking) => {\n this.detectChangesSubject.next(booking.resourceId);\n });\n });\n }\n } catch (error) {\n this.blockUI.stop();\n this.notification.error(error.message);\n }\n }\n\n public recalculateGroup(resourceId: string, rebuild = false) {\n this.recalculateGroupSubject.next({ id: resourceId, rebuild });\n }\n\n /**\n * Toggles resource line.\n *\n * @param resourceId Resource id.\n * @param state To open or to close.\n */\n public toggleGroup(resourceId: string, state: boolean) {\n if (state) {\n this.expandedResourceIds.add(resourceId);\n this.bookingRenderingService?.updateLineIndexes(resourceId);\n } else {\n this.expandedResourceIds.delete(resourceId);\n }\n\n this.toggleGroupSubject.next({\n id: resourceId,\n state,\n });\n this.bookingRenderingService?.propagateGroupBoardHeight(resourceId);\n }\n\n /**\n * Toggles project line of resource line.\n *\n * @param resourceId Resource id.\n * @param resourceId Project id.\n * @param state To open or to close.\n */\n public toggleRow(\n resourceId: string,\n projectId: string,\n state: boolean,\n ): void {\n if (!this.expandedProjectIds.has(resourceId)) {\n this.expandedProjectIds.set(resourceId, new Set());\n }\n\n if (state) {\n this.expandedProjectIds.get(resourceId).add(projectId);\n } else {\n this.expandedProjectIds.get(resourceId).delete(projectId);\n }\n\n this.toggleRowSubject.next({\n id: resourceId,\n state,\n projectIds: this.expandedProjectIds.get(resourceId),\n });\n }\n\n /**\n * Handles errors after saving or creating booking entry.\n *\n * @param error Error object.\n * @param resource Resource.\n * @param project Project.\n * @param onOkCallback Callback for `ok` action of modal that opens if request's response has `teamMemberNotFound` error.\n *\n * */\n public errorHandlerOnSave(\n error: Exception,\n resource: NamedEntity,\n project: NamedEntity,\n onOkCallback?: () => void,\n ): void {\n if (error.code === Exception.BtConcurrencyException.code) {\n this.messageService\n .message(\n this.translateService.instant(\n Exception.BtConcurrencyException.message,\n ),\n '',\n [],\n this.translateService.instant('shared.actions.reload'),\n )\n .then(\n () => {\n this.modal.dismissAll();\n this.reloadBookings();\n },\n () => this.activeModal.dismiss('error'),\n );\n\n return;\n }\n\n if (error.code === Exception.TeamMember_IsNotTeamMemberOfProject.code) {\n this.messageService\n .message(\n this.translateService.instant(\n 'resources.booking.teamMemberNotFound.message',\n {\n resource: resource.name,\n project: project?.name,\n },\n ),\n '',\n [],\n this.translateService.instant(\n 'resources.booking.teamMemberNotFound.includeToTeam',\n ),\n this.translateService.instant('shared.actions.cancel'),\n )\n .then(\n () => {\n this.data\n .collection('ProjectTeamMembers')\n .insert({\n projectId: project?.id,\n resourceId: resource.id,\n })\n .subscribe({\n next: () => {\n if (onOkCallback) {\n onOkCallback();\n }\n },\n error: (ex: Exception) => {\n this.notificationService.error(ex.message);\n },\n });\n },\n () => null,\n );\n\n return;\n }\n\n this.notificationService.error(error.message);\n }\n\n /** Включение бесконечной прокрутки. */\n private enableLoadingOnScroll() {\n const container = this.document.getElementById(\n this.isAssistantBottomMode\n ? 'resources-container'\n : Constants.defaultRootContainerId,\n );\n\n if (!container) {\n return;\n }\n\n this.scrollSubscription = this.chromeService.setInfinityScroll(\n () => {\n if (this.allAreLoaded || this.loading) {\n return;\n }\n\n this.page++;\n this.loadResourcesPage();\n },\n 150,\n container,\n );\n }\n\n private updateEntry(event: {\n booking: BookingEntry;\n originalBooking: BookingEntry;\n }) {\n this.blockUI.start();\n\n this.updateSubscription?.unsubscribe();\n this.updateSubscription = this.dataService\n .update(event.booking, this.settings.planningScale)\n .subscribe({\n next: (updatedBooking: BookingEntry) => {\n const booking = this.dataService.bookings.find(\n (b) => b.id === updatedBooking.id,\n );\n booking.from = updatedBooking.from;\n booking.to = updatedBooking.to;\n booking.fromLx = DateTime.fromISO(booking.from);\n booking.toLx = DateTime.fromISO(booking.to);\n booking.bookedHours = updatedBooking.bookedHours;\n booking.detailEntries = updatedBooking.detailEntries;\n booking.resourceId = updatedBooking.resourceId;\n booking.rowVersion = updatedBooking.rowVersion;\n\n this.recalculateGroup(booking.resourceId);\n this.recalculateGroup(event.originalBooking.resourceId);\n\n this.bookingRenderingService?.redrawGroup(booking.resourceId);\n\n this.changes$.next();\n\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n\n const cancel = () => {\n const resourceId = event.booking.resourceId;\n _.merge(event.booking, event.originalBooking);\n\n this.bookingRenderingService?.redrawGroup(event.booking.resourceId);\n this.bookingRenderingService?.redrawGroup(resourceId);\n\n this.detectChangesSubject.next(resourceId);\n this.detectChangesSubject.next(event.booking.resourceId);\n };\n\n if (error.code === Exception.BtConcurrencyException.code) {\n this.messageService\n .message(\n this.translate.instant(\n Exception.BtConcurrencyException.message,\n ),\n '',\n [],\n this.translate.instant('shared.actions.reload'),\n )\n .then(\n () => this.reloadBookings(),\n () => this.reloadBookings(),\n );\n\n return;\n }\n\n if (\n error.code === Exception.TeamMember_IsNotTeamMemberOfProject.code\n ) {\n this.messageService\n .message(\n this.translate.instant(\n 'resources.booking.teamMemberNotFound.message',\n {\n resource: this.dataService.resources.find(\n (r) => r.id === event.booking.resourceId,\n )?.name,\n project: event.booking.project?.name,\n },\n ),\n '',\n [],\n this.translate.instant(\n 'resources.booking.teamMemberNotFound.includeToTeam',\n ),\n this.translate.instant('shared.actions.cancel'),\n )\n .then(\n () => {\n this.data\n .collection('ProjectTeamMembers')\n .insert({\n projectId: event.booking.project.id,\n resourceId: event.booking.resourceId,\n })\n .subscribe({\n next: () => {\n this.updateEntry(event);\n },\n error: (ex: Exception) => {\n this.notification.error(ex.message);\n cancel();\n },\n });\n },\n () => cancel(),\n );\n\n return;\n }\n\n cancel();\n this.notification.error(error.message);\n },\n });\n }\n\n notify(booking: BookingEntry) {\n const ref = this.modal.open(BookingNotifyComponent, {});\n (ref.componentInstance as BookingNotifyComponent).bookingId = booking.id;\n }\n\n public init(): void {\n this.scheduleNavigationService.init(ScheduleNavigationContext.Booking);\n this.settings = this.localConfigService.getConfig(BookingSettings);\n this.settings.planningScale = this.scheduleNavigationService.planningScale;\n this.dataService.valueMode = this.settings.valueMode;\n\n if (this.bookingRenderingService) {\n this.bookingRenderingService.planningScale = this.settings.planningScale;\n }\n\n this.zone.runOutsideAngular(() => {\n this.enableLoadingOnScroll();\n });\n\n this.reload();\n }\n\n private getResourceIdsForLoadChanges(): string[] {\n return this.dataService.resources\n .filter((r) => this.expandedResourceIds.has(r.id))\n .map((r) => r.id);\n }\n\n private initSubscribers(): void {\n if (this.bookingRenderingService) {\n this.bookingRenderingService.stopChange$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event) => {\n this.updateEntry(event);\n });\n this.bookingRenderingService.stopCreate$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event) => {\n this.openBookingForm(event.booking, 'create');\n });\n }\n\n this.toggleGroup$\n .pipe(\n debounceTime(this.massToggleOperationDelay),\n filter(() => !this.isChangeEntriesHidden),\n switchMap(() =>\n this.dataService.loadChangeEntries(\n this.getResourceIdsForLoadChanges(),\n this.interval,\n this.settings.planningScale,\n ),\n ),\n takeUntil(this.destroyed$),\n )\n .subscribe((bookings) => {\n bookings.forEach((booking) => {\n this.detectChangesSubject.next(booking.resourceId);\n });\n });\n\n this.bookingManageService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.savingQueueService.save();\n this.reloadBookings();\n });\n\n /** Событие изменения фильтра. */\n this.bookingFilterService.values$\n .pipe(\n filter(() => !!this.settings),\n debounceTime(Constants.textInputClientDebounce),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.reload();\n });\n\n this.bookingViewSettingsService.settings$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((settings) => {\n if (!settings.resourceRequestShown) {\n this.dataService.bookingsChangeEntries.length = 0;\n }\n\n this.reload();\n });\n\n this.scheduleNavigationService.previous$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('left');\n });\n\n this.scheduleNavigationService.next$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('right');\n });\n\n this.scheduleNavigationService.jump$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((date) => {\n this.reload(date);\n });\n\n this.scheduleNavigationService.planningScale$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((planningScale) => {\n this.savingQueueService.save();\n this.setPlanningScale(planningScale);\n });\n\n this.scheduleNavigationService.valueMode$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((valueMode) => {\n this.setValueMode(valueMode);\n });\n\n this.savingQueueService.error$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.reload();\n });\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class BookingViewSettings implements BaseSettings {\n public readonly name = 'BookingViewSettings';\n public version: number;\n public show: 'remainCapacity' | 'workload';\n public resourceRequestShown: boolean;\n\n public getDefault(): BookingViewSettings {\n return {\n version: 2,\n show: 'workload',\n resourceRequestShown: false,\n } as BookingViewSettings;\n }\n}\n\nexport class AssistantBookingViewSettings implements BaseSettings {\n public readonly name: 'AssistantBookingViewSettings';\n public version: number;\n public show: 'remainCapacity' | 'workload';\n public resourceRequestShown: boolean;\n\n public getDefault(): AssistantBookingViewSettings {\n return {\n version: 2,\n show: 'remainCapacity',\n } as AssistantBookingViewSettings;\n }\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { PlanningMethod } from 'src/app/shared/models/enums/planning-method.enum';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\n\nexport class BookingSettings implements BaseSettings {\n public readonly name = 'BookingSettings';\n version: number;\n planningScale: PlanningScale;\n valueMode: ValueMode;\n\n defaultPlanningMethod?: PlanningMethod;\n defaultBookingType?: BookingType;\n\n getDefault(): BookingSettings {\n return {\n version: 1,\n defaultPlanningMethod: PlanningMethod.RemainingCapacity,\n defaultBookingType: BookingType.Hard,\n planningScale: PlanningScale.Week,\n valueMode: ValueMode.Hours,\n } as BookingSettings;\n }\n}\n","export class DragHandler {\n /* Флаг бы ли нажата ли клавиша мыши */\n mouseDown = false;\n /* Буфер положения мыши */\n mouseX = null;\n mouseY = null;\n /* Флаг происходит ли в данный момент resizing или drag */\n isChanging = false;\n\n reset = () => {\n this.mouseDown = false;\n this.isChanging = false;\n this.mouseX = null;\n this.mouseY = null;\n };\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n ElementRef,\n ChangeDetectionStrategy,\n HostBinding,\n Inject,\n inject,\n DestroyRef,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { asyncScheduler, fromEvent, filter, throttleTime } from 'rxjs';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\n\nimport { Total } from 'src/app/booking/booking/models/total.model';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingRenderingService } from 'src/app/booking/booking/core/booking-rendering.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'tr[tmt-booking-basic-line-right]',\n templateUrl: './booking-basic-line.component.html',\n styleUrls: ['./booking-basic-line.component.scss'],\n providers: [CellsOrchestratorService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingBasicLineRightComponent implements OnInit, AfterViewInit {\n @HostBinding('class') protected hostClass: string;\n\n @Input() public resourceId: string;\n @Input() public totals: Total[] = [];\n\n public height: number;\n public formLines: UntypedFormArray = this.fb.array([]);\n\n private readonly destroyRef = inject(DestroyRef);\n\n public get bookings(): BookingEntry[] {\n return this.dataService.getResourceBookings(this.resourceId);\n }\n\n constructor(\n public bookingService: BookingService,\n public dataService: BookingDataService,\n public bookingRenderingService: BookingRenderingService,\n public el: ElementRef,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n private zone: NgZone,\n ) {}\n\n public ngOnInit(): void {\n this.hostClass = 'line';\n\n this.bookingService.detectChanges$\n .pipe(\n filter((id) => id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n\n this.bookingRenderingService?.groupBoardHeight$\n .pipe(\n filter((params) => params.id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((params) => {\n this.height = params.height;\n this.cdr.detectChanges();\n });\n }\n\n public ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n fromEvent(this.document, 'mousemove')\n .pipe(\n throttleTime(Constants.mousemoveThrottleTime, asyncScheduler, {\n leading: true,\n trailing: true,\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((e: MouseEvent) => {\n const rect = this.el.nativeElement.getBoundingClientRect();\n\n if (\n rect &&\n e.clientX >= rect.left &&\n e.clientX <= rect.right &&\n e.clientY >= rect.top &&\n e.clientY <= rect.bottom\n ) {\n this.bookingRenderingService.mouseOverGroup(this.resourceId);\n }\n });\n });\n }\n\n /**\n * Emit `startCreate` event for line in based mode.\n *\n * @param event MouseEvent.\n *\n * */\n public startCreate(event: MouseEvent): void {\n if (event.button === 0 && !this.dataService.isReadonlyMode()) {\n this.bookingRenderingService.startCreate(this.resourceId, event);\n }\n }\n}\n","\n \n \n \n @for (total of totals; track total) {\n \n }\n \n \n
    \n\n \n @for (bookingEntry of bookings; track bookingEntry) {\n \n }\n \n\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnInit,\n Type,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { filter } from 'rxjs/operators';\n\nimport { BookingRenderingService } from '../../core/booking-rendering.service';\nimport { BookingDataService } from '../../core/booking-data.service';\nimport { BookingService } from '../../core/booking.service';\nimport { BookingBasicLineRightComponent } from './booking-basic-line/booking-basic-line.component';\n\n@Component({\n selector: 'tmt-booking-basic',\n templateUrl: './booking-basic.component.html',\n styleUrls: ['booking-basic.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingBasicComponent implements OnInit, AfterViewInit {\n @ViewChild('board') private boardEl: ElementRef;\n\n @Input() public hasHeader = true;\n @Input() public leftTableWidth = 300;\n\n public componentLine: Type = BookingBasicLineRightComponent;\n public noDataMessage: string;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public bookingRenderingService: BookingRenderingService | null,\n public service: BookingService,\n public dataService: BookingDataService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.noDataMessage = !this.dataService.resourceRequestMode\n ? 'shared.noDisplayData'\n : 'resources.requests.assistant.messages.noDisplayData';\n\n this.service.detectChanges$\n .pipe(\n filter((id) => !id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public ngAfterViewInit(): void {\n this.bookingRenderingService?.initBoard(this.boardEl.nativeElement);\n }\n\n public trackById(index: number, row: any): string {\n return row.id;\n }\n}\n","
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n \n \n\n \n \n \n {{ noDataMessage | translate }}\n \n \n \n\n \n \n
    \n\n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n OnDestroy,\n ElementRef,\n ChangeDetectionStrategy,\n Injector,\n Optional,\n} from '@angular/core';\nimport { RawParams, StateService } from '@uirouter/core';\n\nimport { Subject, merge } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport _ from 'lodash';\n\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { MessageService } from 'src/app/core/message.service';\n\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { SubAction } from 'src/app/shared/models/inner/menu-action';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\n\nimport { ResourceRequestCalendarService } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.service';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingManageService } from 'src/app/booking/booking/core/booking-manage.service';\nimport { ProjectRow } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingViewSettingsService } from 'src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service';\n\n@Component({\n selector: 'tmt-booking-detailed-line-left',\n templateUrl: './booking-detailed-line-left.component.html',\n styleUrls: ['./booking-detailed-line-left.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingDetailedLineLeftComponent implements OnInit, OnDestroy {\n @Input() public resource: NamedEntity;\n\n public projectRows: ProjectRow[] = [];\n public lineActions: Partial[] = [];\n public resourceRequestShown: boolean;\n public stateParams: RawParams = {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n };\n\n private destroyed$ = new Subject();\n\n public get totalHours(): number {\n return this.bookingDataService.getTotalsByResource(this.resource.id);\n }\n\n constructor(\n public bookingService: BookingService,\n public bookingDataService: BookingDataService,\n public el: ElementRef,\n private bookingManagerService: BookingManageService,\n private bookingViewSettingService: BookingViewSettingsService,\n private navigationService: NavigationService,\n private infoPopupService: InfoPopupService,\n private messageService: MessageService,\n private stateService: StateService,\n private cdr: ChangeDetectorRef,\n private injector: Injector,\n @Optional()\n private resourceRequestCalendarService: ResourceRequestCalendarService,\n ) {}\n\n public ngOnInit(): void {\n this.resourceRequestShown =\n this.bookingViewSettingService.settings.resourceRequestShown;\n this.initLineActions();\n\n this.bookingService.toggleRow$\n .pipe(\n filter((v) => v?.id === this.resource.id),\n takeUntil(this.destroyed$),\n )\n .subscribe((toggleState) => {\n this.projectRows.forEach((row) => {\n row.isExpanded = toggleState.projectIds.has(row.id);\n });\n\n this.cdr.markForCheck();\n });\n\n merge(\n this.bookingService.detectChanges$,\n this.bookingService.toggleGroup$,\n this.bookingService.recalculateGroup$,\n )\n .pipe(\n filter((v) => (_.isObject(v) ? v.id : v) === this.resource.id),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.initProjectRows();\n });\n\n merge(this.bookingManagerService.reload$, this.bookingService.changes$)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.initProjectRows();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Automatically replace result with request when `BookingMode` is detailed\n * (works if `ResourceRequestMode` is enabled without generic).\n *\n * @param project project row.\n */\n public replaceBookingEntry(row: ProjectRow): void {\n this.bookingService.replaceBookingEntry(\n row.bookingEntryId,\n this.resource.id,\n this.resourceRequestCalendarService.requestDateHours,\n );\n }\n\n /** Automatically enrich result before request for the bookingEntry when `BookingMode` is detailed.\n *\n * @param project project row.\n */\n public fillBookingEntry(row: ProjectRow): void {\n this.bookingService.fillBookingEntry(\n row.bookingEntryId,\n this.resource.id,\n this.resourceRequestCalendarService.requestDateHours,\n );\n }\n\n /**\n * Deletes booking entry.\n *\n * @param item ProjectRow.\n *\n * */\n public deleteBookingEntry(item: ProjectRow): void {\n this.messageService\n .confirmLocal('resources.booking.entryContextMenu.deleteConfirmation')\n .then(() => {\n this.bookingService.deleteBooking(\n this.bookingDataService.bookings.find(\n (el) => el.id === item.bookingEntryId,\n ),\n );\n\n if (this.bookingDataService.resourceRequestMode) {\n _.remove(\n this.bookingDataService.resources,\n (el) => el.id === this.resource.id,\n );\n\n this.resourceRequestCalendarService?.removeBookingEntry(\n item.bookingEntryId,\n this.resource.id,\n );\n }\n });\n }\n\n /**\n * Remove all details of booking entry.\n *\n * @param item ProjectRow.\n *\n * */\n public clearBookingEntry(item: ProjectRow): void {\n this.bookingService.clearBooking(\n this.bookingDataService.bookings.find(\n (el) => el.id === item.bookingEntryId,\n ),\n );\n }\n\n /**\n * Opens project info popup\n *\n * @param projectId Project id.\n *\n * */\n public openProjectInfo(projectId: string): void {\n this.infoPopupService.open({\n target: this.el.nativeElement.querySelector(`#project${projectId}`),\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Opens project info popup\n *\n * @param userId Resource id.\n *\n * */\n public openUserInfo(userId: string): void {\n this.infoPopupService.open({\n target: this.el.nativeElement.querySelector(`#user${userId}`),\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Opens resource request. */\n public openResourceRequest(requestId: string): void {\n this.stateService.go('resourceRequest', {\n navigation: this.stateParams.navigation,\n routeMode: this.stateParams.routeMode,\n entityId: requestId,\n });\n }\n\n private initProjectRows(): void {\n this.projectRows.length = 0;\n this.projectRows = this.bookingService.getsProjectRows(this.resource.id);\n this.cdr.markForCheck();\n }\n\n private initLineActions(): void {\n this.lineActions = [\n {\n name: 'fillByRequest',\n title: 'resources.actions.fillByRequest',\n isVisible:\n this.bookingDataService.resourceRequestMode &&\n !this.bookingService.isActualizationResourceRequest,\n handler: (p) => this.fillBookingEntry(p),\n },\n {\n name: 'replaceWithRequest',\n title: 'resources.actions.replaceWithRequest',\n isVisible:\n this.bookingDataService.resourceRequestMode &&\n this.bookingService.isActualizationResourceRequest,\n handler: (p) => this.replaceBookingEntry(p),\n },\n {\n name: 'clear',\n title: 'shared.actions.clear',\n isVisible: true,\n handler: (p) => this.clearBookingEntry(p),\n },\n {\n name: 'delete',\n title: 'shared.actions.delete',\n isVisible: !this.bookingService.isActualizationResourceRequest,\n handler: (p) => this.deleteBookingEntry(p),\n },\n ];\n }\n}\n","@if (!projectRows.length && !bookingService.isResourceLineHidden) {\n \n \n \n}\n\n@for (project of projectRows; track project) {\n \n \n
    \n @if (!bookingService.isResourceLineHidden) {\n @if (resourceRequestShown) {\n \n }\n\n @if (project.id && bookingDataService.resourceRequest?.project?.id === project.id) {\n \n }\n\n @if (project.id) {\n \n {{ project.name }}\n \n } @else {\n {{ project.name }}\n }\n } @else {\n \n \n \n {{ resource.name }}\n \n
    \n }\n\n @if (\n project.id && project.bookingEntryEditAllowed && !bookingDataService.isReadonlyMode()\n ) {\n
    \n \n
    \n @for (action of lineActions; track $index) {\n @if (action.isVisible) {\n \n {{ action.title | translate }}\n \n }\n }\n
    \n
    \n }\n \n \n\n @if (bookingDataService.resourceRequestMode === 'assistant') {\n \n {{ totalHours | plannerFormat }}\n \n }\n \n\n @if (project.requestBookings.length && project.isExpanded) {\n @for (booking of project.requestBookings; track $index) {\n \n \n
    \n \n {{ booking.resourceRequest.created | date: 'shortDate' }}\n @if (booking.resourceRequest.requestedHours) {\n \n ({{ booking.resourceRequest.requestedHours | plannerFormat }}\n {{ 'shared.unitHour' | translate }})\n \n }\n \n\n \n
    \n \n \n }\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n OnDestroy,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\n\nimport { Subject, merge } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport _ from 'lodash';\n\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\n\nimport { Total } from 'src/app/booking/booking/models/total.model';\nimport { ProjectRow } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingManageService } from 'src/app/booking/booking/core/booking-manage.service';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Component({\n selector: 'tmt-booking-detailed-line-right',\n templateUrl: './booking-detailed-line-right.component.html',\n styleUrls: ['./booking-detailed-line-right.component.scss'],\n providers: [CellsOrchestratorService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingDetailedLineRightComponent implements OnInit, OnDestroy {\n @Input() public resourceId: string;\n @Input() public totals: Total[] = [];\n\n public projectRows: ProjectRow[] = [];\n public formLines: UntypedFormArray = this.fb.array([]);\n public requestLines: Record = {};\n public lineIndex = 0;\n public lineIndexes: Record = {};\n\n private destroyed$ = new Subject();\n\n constructor(\n public bookingService: BookingService,\n public bookingDataService: BookingDataService,\n private bookingManagerService: BookingManageService,\n private cellsOrchestratorService: CellsOrchestratorService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.initProjectRows();\n this.initSubscribers();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private rebuildLines(): void {\n this.lineIndex = 0;\n this.lineIndexes = {};\n this.requestLines = {};\n this.formLines = this.fb.array([]);\n\n for (const row of this.projectRows) {\n this.lineIndexes[row.bookingEntryId] = this.lineIndex;\n this.lineIndex++;\n\n this.fillRequestLines(row);\n\n const rowFormArray = this.fb.array([]);\n\n for (const entry of this.totals) {\n const value = row.detailEntries.find(\n (el) => el.date === entry.date,\n ) || {\n hours: 0,\n date: entry.date,\n };\n\n const control = this.fb.control({\n ...value,\n nonWorking: entry.nonWorking,\n scheduleHours: entry.scheduleHours,\n fteHours: entry.fteHours,\n limitHours: 24,\n });\n\n control.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((detail) => {\n this.bookingService.addEntryToQueue(\n row.bookingEntryId,\n detail,\n this.resourceId,\n );\n });\n\n rowFormArray.push(control);\n }\n\n if (\n row.requestBookings?.find(\n (booking) =>\n !ResourceRequest.systemStateIds.includes(\n booking.resourceRequest?.stateId,\n ),\n )\n ) {\n rowFormArray.valueChanges\n .pipe(startWith(true), takeUntil(this.destroyed$))\n .subscribe(() => {\n this.calcDeviation(row);\n this.fillRequestLines(row);\n });\n }\n\n this.formLines.push(rowFormArray);\n\n if (\n !row.id ||\n !row.bookingEntryEditAllowed ||\n this.bookingDataService.isReadonlyMode()\n ) {\n rowFormArray.disable({ emitEvent: false });\n }\n }\n\n this.cellsOrchestratorService.init();\n }\n\n private fillRequestLines(row: ProjectRow): void {\n row.requestBookings.forEach((booking) => {\n this.lineIndexes[booking.id] = this.lineIndexes[booking.id]\n ? this.lineIndexes[booking.id]\n : this.lineIndex;\n this.lineIndex++;\n\n this.requestLines[booking.id] = this.fb.array([]);\n\n for (const entry of this.totals) {\n const value = booking.changeEntries.find(\n (el) => el.date === entry.date,\n ) || {\n hours: 0,\n date: entry.date,\n };\n\n const control = this.fb.control({\n ...value,\n nonWorking: entry.nonWorking,\n scheduleHours: entry.scheduleHours,\n fteHours: entry.fteHours,\n limitHours: 999,\n });\n\n this.requestLines[booking.id].push(control);\n }\n\n this.requestLines[booking.id].disable({ emitEvent: false });\n });\n }\n\n private calcDeviation(row: ProjectRow): void {\n const bookingWithOpenRequest = row.requestBookings.find(\n (booking) =>\n !ResourceRequest.systemStateIds.includes(\n booking.resourceRequest?.stateId,\n ),\n );\n\n if (bookingWithOpenRequest) {\n bookingWithOpenRequest.changeEntries.length = 0;\n\n this.bookingService.slots.forEach((slot) => {\n const originalEntry = row.detailEntries.find(\n (el) => el.date === slot.date.toISODate(),\n );\n const changeEntry = bookingWithOpenRequest.detailEntries.find(\n (el) => el.date === slot.date.toISODate(),\n );\n\n bookingWithOpenRequest.changeEntries.push({\n date: slot.date.toISODate(),\n hours:\n bookingWithOpenRequest.resourceRequest?.teamMember?.resource\n ?.resourceType === ResourceType.user\n ? (changeEntry?.hours ?? 0) - (originalEntry?.hours ?? 0)\n : (changeEntry?.hours ?? 0),\n });\n });\n }\n }\n\n private initProjectRows(): void {\n this.projectRows = this.bookingService.getsProjectRows(this.resourceId);\n this.rebuildLines();\n this.cdr.markForCheck();\n }\n\n private initSubscribers(): void {\n this.bookingService.toggleRow$\n .pipe(\n filter((v) => v?.id === this.resourceId),\n takeUntil(this.destroyed$),\n )\n .subscribe((toggleState) => {\n this.projectRows.forEach((row) => {\n row.isExpanded = toggleState.projectIds.has(row.id);\n });\n\n this.cdr.markForCheck();\n });\n\n merge(this.bookingService.detectChanges$, this.bookingService.toggleGroup$)\n .pipe(\n filter((v) =>\n _.isObject(v) ? v.id === this.resourceId : v === this.resourceId,\n ),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.initProjectRows();\n });\n\n merge(this.bookingManagerService.reload$, this.bookingService.changes$)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.initProjectRows();\n });\n }\n}\n","@if (!projectRows.length) {\n \n {{ 'shared.noDisplayData' | translate }}\n \n}\n\n@for (row of projectRows; track row; let lineIndex = $index) {\n \n @for (entry of $any(formLines.at(lineIndex))?.controls; track entry; let dayIndex = $index) {\n \n }\n \n\n @for (booking of row.requestBookings; track booking; let bookingLineIndex = $index) {\n \n @for (\n entry of requestLines[booking.id].controls;\n track entry;\n let bookingDayLineIndex = $index\n ) {\n 0\"\n [attr.data-test-date]=\"entry.value?.date\"\n >\n }\n \n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Type,\n} from '@angular/core';\n\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingBasicComponent } from 'src/app/booking/booking/shared/booking-basic/booking-basic.component';\nimport { BookingDetailedLineRightComponent } from 'src/app/booking/booking/shared/booking-detailed/booking-detailed-line-right/booking-detailed-line-right.component';\n\n@Component({\n selector: 'tmt-booking-detailed',\n templateUrl: './booking-detailed.component.html',\n styleUrls: [\n '../booking-basic/booking-basic.component.scss',\n 'booking-detailed.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingDetailedComponent extends BookingBasicComponent {\n public override componentLine: Type =\n BookingDetailedLineRightComponent;\n\n constructor(\n service: BookingService,\n dataService: BookingDataService,\n cdr: ChangeDetectorRef,\n ) {\n super(null, service, dataService, cdr);\n }\n}\n","
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n \n \n\n \n \n \n {{ noDataMessage | translate }}\n \n \n \n\n \n \n
    \n\n
    \n
    \n","import {\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { chain, cloneDeep, sumBy } from 'lodash';\nimport { DateTime, Interval } from 'luxon';\nimport { forkJoin, merge, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { FteScheduleService } from 'src/app/core/fte-schedule.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { BaseEntry } from 'src/app/shared-features/planner/planner-cell/base-entry.model';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { BookingDetailEntry } from 'src/app/shared/models/entities/resources/booking-detail-entry.model';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { PlanningMethod } from 'src/app/shared/models/enums/planning-method.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { BookingDataService } from '../../../core/booking-data.service';\nimport { BookingRenderingService } from '../../../core/booking-rendering.service';\nimport { BookingService } from '../../../core/booking.service';\nimport { BookingEntryFormService } from '../booking-entry-form.service';\nimport {\n ASSISTANT_TEAM_MEMBER_ID,\n BookingDetailDto,\n} from 'src/app/booking/booking-assistant/models/booking-assistant-settings.model';\n\n@Component({\n selector: 'wp-booking-entry-form-details',\n templateUrl: './booking-entry-form-details.component.html',\n styleUrls: ['./booking-entry-form-details.component.scss'],\n providers: [CellsOrchestratorService],\n standalone: false,\n})\nexport class BookingEntryFormDetailsComponent implements OnInit, OnDestroy {\n @Input() booking: BookingEntry;\n @Input() form: UntypedFormGroup;\n @Input() mode: 'create' | 'edit';\n loadingSchedulesSubscription: Subscription;\n previewLoadingSubscriptions: Subscription;\n\n schedule: DateHours[] = [];\n fte: DateHours[];\n loading: boolean;\n\n private destroyed$ = new Subject();\n\n get entries(): UntypedFormArray {\n return this.form.controls.entries as UntypedFormArray;\n }\n\n get planningMethod(): PlanningMethod {\n return this.form.controls.planningMethod.value?.id as PlanningMethod;\n }\n\n public slots: Slot[] = [];\n public slotGroups: SlotGroup[] = [];\n\n constructor(\n @Optional() @Inject('assistantRequestId') public resourceRequestId,\n @Optional() @Inject(ASSISTANT_TEAM_MEMBER_ID) public teamMemberId, // TODO check it after DEV-657\n private bookingEntryFormService: BookingEntryFormService,\n private log: LogService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n public bookingDataService: BookingDataService,\n public bookingRenderingService: BookingRenderingService,\n public bookingService: BookingService,\n private scheduleNavigationService: ScheduleNavigationService,\n private cellsOrchestrator: CellsOrchestratorService,\n private data: DataService,\n private fteScheduleService: FteScheduleService,\n ) {}\n\n public trackById = (index: number, row: any): string => row.id;\n public trackByValueId = (index: number, row: any): string => row.value.id;\n\n private updateForm() {\n const from = this.form.controls.from.value;\n const to = this.form.controls.to.value;\n\n if (!from || !to) {\n return;\n }\n\n const slotsInfo = this.scheduleNavigationService.getSlots(\n Interval.fromDateTimes(DateTime.fromISO(from), DateTime.fromISO(to)),\n this.bookingService.settings.planningScale,\n );\n this.slots = slotsInfo.slots;\n this.slotGroups = slotsInfo.groups;\n\n this.entries.clear({ emitEvent: false });\n\n for (const slot of this.slots) {\n const detailEntry = this.booking.detailEntries.find(\n (e) => e.date === slot.date.toISODate(),\n );\n\n const scheduleHours =\n this.schedule.find((e) => e.date === slot.date.toISODate())?.hours ?? 0;\n\n const fteHours =\n this.fte?.find((e) => e.date === slot.date.toISODate())?.hours ?? 0;\n\n let entry: BaseEntry;\n\n if (!detailEntry) {\n entry = {\n id: Guid.generate(),\n date: slot.date.toISODate(),\n hours: 0,\n scheduleHours,\n limitHours: 24,\n fteHours,\n } as BaseEntry;\n } else {\n entry = cloneDeep(detailEntry);\n entry.scheduleHours = scheduleHours;\n entry.fteHours = fteHours;\n entry.limitHours = 24;\n }\n\n const control = this.fb.control(entry);\n this.entries.push(control, { emitEvent: false });\n\n (slot as any)['dayOff'] = scheduleHours === 0;\n }\n this.cellsOrchestrator.reset();\n\n setTimeout(() => {\n const planningMethodId = this.form.controls.planningMethod.value?.id;\n\n if (\n planningMethodId === PlanningMethod.Manual &&\n !this.bookingDataService.isReadonlyMode() &&\n this.booking.editAllowed\n ) {\n this.entries.enable();\n } else {\n this.entries.disable();\n }\n });\n }\n\n public getDataTableWidth() {\n let width = this.bookingRenderingService.slotWidth;\n if (this.slots.length < 7) {\n width = 100;\n }\n\n if (this.slots.length < 4) {\n width = 150;\n }\n\n return this.slots.length * width;\n }\n\n private loadSchedules(): Promise {\n return new Promise((resolver) => {\n const from = this.form.controls.from.value;\n const to = this.form.controls.to.value;\n\n if (!from || !to) {\n return;\n }\n\n const filterObject = {\n from,\n to,\n scale: this.bookingService.settings.planningScale,\n resourceIds: [this.booking.resourceId],\n };\n\n const subs: Observable[] = [\n this.data\n .collection('BookingEntries')\n .action('GetSchedules')\n .execute(filterObject),\n ];\n\n if (this.bookingService.settings.valueMode === ValueMode.FTE) {\n subs.push(\n this.fteScheduleService.getFteSchedule(\n this.bookingService.settings.planningScale,\n from,\n to,\n ),\n );\n }\n\n this.loadingSchedulesSubscription?.unsubscribe();\n this.loadingSchedulesSubscription = forkJoin(subs).subscribe(\n (data: any[]) => {\n this.schedule = (data[0] as any[]).map((e) => ({\n hours: e.duration,\n date: e.date,\n })) as DateHours[];\n\n if (this.bookingService.settings.valueMode === ValueMode.FTE) {\n this.fte = data[1] as DateHours[];\n }\n\n resolver();\n },\n );\n });\n }\n\n /** Обновить детальный раздел (превью). */\n private updatePreview(): Promise {\n return new Promise((resolver) => {\n const from = this.form.controls.from.value;\n const to = this.form.controls.to.value;\n\n if (!from || !to) {\n resolver();\n return;\n }\n\n if (!this.form.controls.project.value) {\n this.loadSchedules().then(() => {\n this.updateForm();\n resolver();\n });\n\n return;\n }\n\n const data = {\n bookingEntry: {\n id: this.booking.id,\n from,\n to,\n projectId: this.form.controls.project.value.id,\n resourceId: this.booking.resourceId,\n requiredHours: this.form.controls.requiredHours.value,\n requiredSchedulePercent:\n this.form.controls.requiredSchedulePercent.value,\n planningMethod: this.planningMethod,\n },\n isUpdate: this.mode === 'edit',\n planningScale: this.bookingService.settings.planningScale,\n };\n\n this.previewLoadingSubscriptions?.unsubscribe();\n\n this.previewLoadingSubscriptions = this.data\n .collection('BookingEntries')\n .action('GetDetailEntriesPreview')\n .execute(data, this.bookingDataService.bookingQuery)\n .subscribe({\n next: (entry: BookingEntry) => {\n this.booking.detailEntries = entry.detailEntries;\n\n if (this.planningMethod === PlanningMethod.FrontLoad) {\n this.form.controls.to.patchValue(entry.to, {\n emitEvent: false,\n });\n\n this.loadSchedules().then(() => {\n this.updateForm();\n resolver();\n });\n } else {\n this.updateForm();\n resolver();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolver();\n },\n });\n });\n }\n\n private updateScheduleThenPreview() {\n this.loading = true;\n this.loadSchedules().then(() => {\n if (this.planningMethod === PlanningMethod.Manual) {\n this.updateForm();\n this.loading = false;\n } else {\n this.updatePreview().then(() => {\n this.loading = false;\n });\n }\n });\n }\n\n /** Вернуть заполнитель (потребность) для запроса ресурса. */\n private getFillOutForRequest() {\n if (this.resourceRequestId) {\n return forkJoin({\n bookingSummary: this.data\n .collection('ResourceRequests')\n .entity(this.resourceRequestId)\n .function('GetBookingSummary')\n .query({\n scale: `WP.PlanningScale'${this.bookingService.settings.planningScale}'`,\n }),\n\n requirementEntries: this.data\n .collection('ResourceRequests')\n .entity(this.resourceRequestId)\n .function('GetGroupedRequirementEntries')\n .query({\n scale: `WP.PlanningScale'${this.bookingService.settings.planningScale}'`,\n }),\n });\n }\n\n if (this.teamMemberId) {\n return forkJoin({\n bookingSummary: this.data\n .collection('ProjectTeamMembers')\n .entity(this.teamMemberId)\n .function('GetBookingSummary')\n .query({\n scale: `WP.PlanningScale'${this.bookingService.settings.planningScale}'`,\n }),\n\n requirementEntries: this.data\n .collection('ProjectTeamMembers')\n .entity(this.teamMemberId)\n .function('GetRequirementEntries')\n .query({\n scale: `WP.PlanningScale'${this.bookingService.settings.planningScale}'`,\n }),\n });\n }\n }\n\n ngOnInit(): void {\n this.bookingEntryFormService.updatePreview$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loading = true;\n this.updatePreview().then(() => {\n this.loading = false;\n });\n });\n\n this.entries.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.log.debug('BookingDetailEntry updated.');\n this.booking.detailEntries = (\n this.entries.value as BookingDetailEntry[]\n ).map((e) => ({\n id: e.id,\n hours: e.hours,\n date: e.date,\n }));\n });\n\n merge(\n this.form.controls.to.valueChanges,\n this.form.controls.from.valueChanges,\n )\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.updateScheduleThenPreview());\n\n merge(\n this.form.controls.planningMethod.valueChanges,\n this.form.controls.project.valueChanges,\n this.form.controls.requiredHours.valueChanges.pipe(auditTime(500)),\n this.form.controls.requiredSchedulePercent.valueChanges.pipe(\n auditTime(500),\n ),\n )\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n // Включить/отключить ячейки на редактирование в любом случае сразу.\n this.updateForm();\n\n if (this.planningMethod !== PlanningMethod.Manual) {\n this.loading = true;\n this.updatePreview().then(() => {\n this.loading = false;\n });\n }\n });\n\n this.cellsOrchestrator.init();\n\n // Открыли на создание в контексте запроса ресурса.\n if (\n (this.resourceRequestId || this.teamMemberId) &&\n this.mode === 'create'\n ) {\n this.loading = true;\n this.getFillOutForRequest().subscribe((response) => {\n const allDates = response.requirementEntries.map((e) => e.date);\n\n const bookingEntries = chain(response.bookingSummary)\n .groupBy('date')\n .map((b, date) => ({\n date,\n hours: sumBy(b, 'hours'),\n }))\n .value();\n\n bookingEntries.forEach((e) => {\n if (allDates.every((d) => d !== e.date)) {\n allDates.push(e.date);\n }\n });\n\n this.booking.detailEntries = [];\n allDates.forEach((date) => {\n const requiredHours =\n response.requirementEntries.find((e) => e.date === date)?.hours ??\n 0;\n const bookedHours =\n bookingEntries.find((e) => e.date === date)?.hours ?? 0;\n\n const hours = requiredHours - bookedHours;\n\n if (hours <= 0) {\n return;\n }\n\n this.booking.detailEntries.push({\n date,\n hours,\n id: Guid.generate(),\n });\n });\n\n // Сразу записать данные в форму, чтобы не сбросились.\n this.updateForm();\n\n // Всегда Manual, обновление Preview не требуется.\n this.loadSchedules().then(() => {\n this.updateForm();\n this.loading = false;\n });\n });\n\n return;\n }\n\n // Открыли на редактирование в календаре.\n if (this.mode === 'edit') {\n this.loading = true;\n this.data\n .collection('BookingEntries')\n .entity(this.booking.id)\n .function('GetDetails')\n .query({\n scale: `WP.PlanningScale'${this.bookingService.settings.planningScale}'`,\n })\n .subscribe((details) => {\n details.forEach((d) => {\n if (!this.booking.detailEntries.find((x) => x.date === d.date)) {\n this.booking.detailEntries.push({\n id: Guid.generate(),\n date: d.date,\n hours: d.hours,\n });\n }\n });\n this.loadSchedules().then(() => {\n this.updateForm();\n this.loading = false;\n });\n });\n\n return;\n }\n\n // Открыли на создание.\n this.updateScheduleThenPreview();\n }\n\n ngOnDestroy(): void {\n this.cellsOrchestrator.dispose();\n this.previewLoadingSubscriptions?.unsubscribe();\n this.loadingSchedulesSubscription?.unsubscribe();\n\n this.destroyed$.next();\n }\n}\n","\n\n
    \n \n \n \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n\n \n \n \n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n Optional,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormArray,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingService } from '../../core/booking.service';\nimport { PlanningMethod } from 'src/app/shared/models/enums/planning-method.enum';\nimport { BookingDataService } from '../../core/booking-data.service';\nimport { BookingDetailEntry } from 'src/app/shared/models/entities/resources/booking-detail-entry.model';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { BookingSettings } from '../../models/booking.settings';\nimport { sumBy } from 'lodash';\nimport { BookingEntryFormService } from './booking-entry-form.service';\nimport { ASSISTANT_TEAM_MEMBER_ID } from 'src/app/booking/booking-assistant/models/booking-assistant-settings.model';\n\n@Component({\n selector: 'wp-booking-entry-form',\n templateUrl: './booking-entry-form.component.html',\n providers: [BookingEntryFormService],\n standalone: false,\n})\nexport class BookingEntryFormComponent implements OnInit, OnDestroy {\n @Input() bookingEntry: BookingEntry;\n @Input() resource: NamedEntity;\n @Input() mode: 'create' | 'edit' = 'create';\n @Input() readonly: boolean;\n\n public projectsQuery: any = {\n filter: [],\n };\n\n planningMethods: NamedEntity[] = [];\n planningMethod = PlanningMethod;\n\n isSaving = false;\n\n form = this.fb.group({\n from: [null, Validators.required],\n to: [null, Validators.required],\n project: [null, Validators.required],\n entries: this.fb.array([]),\n planningMethod: [null],\n requiredHours: [0, Validators.required],\n requiredSchedulePercent: [0, Validators.required],\n bookedHours: [0],\n type: [null, Validators.required],\n });\n\n public actionsAllowed = {\n switchToHardAllowed: false,\n switchToSoftAllowed: false,\n };\n\n private destroyed$ = new Subject();\n\n get entries(): UntypedFormArray {\n return this.form.controls.entries as UntypedFormArray;\n }\n\n get updatedBookingEntry(): BookingEntry {\n const updatedEntry = this.form.getRawValue() as BookingEntry;\n updatedEntry.planningMethod = this.form.value.planningMethod?.id ?? null;\n updatedEntry.resourceId = this.bookingEntry.resourceId;\n return updatedEntry;\n }\n\n constructor(\n @Optional() @Inject('assistantRequestId') public resourceRequestId,\n @Optional() @Inject(ASSISTANT_TEAM_MEMBER_ID) public teamMemberId, // TODO check it after DEV-657\n public bookingDataService: BookingDataService,\n public bookingEntryFormService: BookingEntryFormService,\n private bookingService: BookingService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private translate: TranslateService,\n private activeModal: NgbActiveModal,\n private localConfigService: LocalConfigService,\n ) {}\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n bookingEntry: {\n id: this.bookingEntry.id,\n rowVersion: this.bookingEntry.rowVersion,\n from: this.form.value.from,\n to: this.form.getRawValue().to,\n projectId: this.form.getRawValue().project.id,\n resourceId: this.resource.id,\n type: this.form.value.type,\n requiredHours: this.form.value.requiredHours,\n requiredSchedulePercent: this.form.value.requiredSchedulePercent,\n planningMethod: this.form.value.planningMethod?.id ?? null,\n bookedHours: 0,\n resourceRequestId: this.resourceRequestId,\n detailEntries: (this.entries.value as BookingDetailEntry[])\n .filter((e) => e.hours > 0)\n .map((e) => ({\n id: e.id,\n hours: e.hours,\n date: e.date,\n })),\n },\n\n planningScale: this.bookingService.settings.planningScale,\n };\n\n const collection = this.data.collection('BookingEntries');\n\n const action =\n this.mode === 'create'\n ? collection.action('Create')\n : collection.entity(this.bookingEntry.id).action('UpdateWithScaling');\n\n action.execute(data, this.bookingDataService.bookingQuery).subscribe({\n next: (savedEntry: BookingEntry) => {\n this.isSaving = false;\n\n const updatedEntry = this.updatedBookingEntry;\n\n // На сервере может обновиться только период и детальный раздел.\n updatedEntry.rowVersion = savedEntry.rowVersion;\n updatedEntry.bookedHours = savedEntry.bookedHours;\n updatedEntry.detailEntries = savedEntry.detailEntries;\n updatedEntry.from = savedEntry.from;\n updatedEntry.to = savedEntry.to;\n updatedEntry.resourceRequest = this.bookingEntry.resourceRequest;\n\n const settings = this.localConfigService.getConfig(BookingSettings);\n settings.defaultPlanningMethod = updatedEntry.planningMethod;\n settings.defaultBookingType = updatedEntry.type;\n this.localConfigService.setConfig(BookingSettings, settings);\n\n this.activeModal.close(updatedEntry);\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.bookingService.errorHandlerOnSave(\n error,\n this.resource,\n this.form.controls['project'].getRawValue(),\n () => this.ok(),\n );\n },\n });\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n public closeForm() {\n this.activeModal.dismiss('escape');\n }\n\n private updateProjectsQuery() {\n this.projectsQuery.filter = [];\n }\n\n private loadAllowedActions() {\n if (this.bookingDataService.isReadonlyMode()) {\n this.actionsAllowed = {\n switchToHardAllowed: false,\n switchToSoftAllowed: false,\n };\n return;\n }\n\n if (this.mode === 'create') {\n this.actionsAllowed = {\n switchToHardAllowed: true,\n switchToSoftAllowed: true,\n };\n this.form.controls.type.enable();\n } else {\n this.data\n .collection('BookingEntries')\n .entity(this.bookingEntry.id)\n .function('GetAllowedActions')\n .get()\n .subscribe(\n (response: {\n switchToHardAllowed: boolean;\n switchToSoftAllowed: boolean;\n }) => {\n this.actionsAllowed = response;\n\n if (\n this.actionsAllowed.switchToHardAllowed ||\n this.actionsAllowed.switchToSoftAllowed\n ) {\n this.form.controls.type.enable();\n }\n },\n );\n }\n }\n\n ngOnInit(): void {\n if (this.readonly) {\n this.form.disable();\n } else {\n this.loadAllowedActions();\n this.updateProjectsQuery();\n\n this.form.controls.planningMethod.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n this.form.controls.planningMethod.value?.id ===\n PlanningMethod.FrontLoad ||\n this.bookingDataService.isReadonlyMode()\n ) {\n this.form.controls.to.disable({ emitEvent: false });\n } else {\n this.form.controls.to.enable({ emitEvent: false });\n }\n });\n }\n\n for (const planningMethod of Object.keys(PlanningMethod)) {\n this.planningMethods.push({\n id: planningMethod,\n name: this.translate.instant(`enums.planningMethod.${planningMethod}`),\n });\n }\n\n this.bookingEntry.from = this.bookingEntry.fromLx.toISODate();\n this.bookingEntry.to = this.bookingEntry.toLx.toISODate();\n\n this.form.patchValue(this.bookingEntry);\n\n let planningMethodId = this.bookingEntry.planningMethod;\n if (this.mode === 'create') {\n const settings = this.localConfigService.getConfig(BookingSettings);\n planningMethodId = settings.defaultPlanningMethod;\n this.form.controls.type.setValue(settings.defaultBookingType);\n }\n\n let currentPlanningMethod = this.planningMethods.find(\n (x) => x.id === planningMethodId,\n );\n\n this.form.controls.planningMethod.setValue(currentPlanningMethod);\n this.entries.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n const sum = sumBy(\n this.entries.value as BookingDetailEntry[],\n (e) => e.hours ?? 0,\n );\n\n this.form.controls.bookedHours.patchValue(sum, { emitEvent: false });\n });\n\n this.form.controls.bookedHours.disable();\n\n if (this.bookingEntry.resourceRequest) {\n this.form.controls.project.disable();\n }\n\n if (this.resourceRequestId && this.mode === 'create') {\n this.form.controls.project.disable();\n\n currentPlanningMethod = this.planningMethods.find(\n (x) => x.id === PlanningMethod.Manual,\n );\n this.form.controls.planningMethod.setValue(currentPlanningMethod);\n\n this.data\n .collection('ResourceRequests')\n .entity(this.resourceRequestId)\n .get({\n select: ['id', 'name'],\n expand: { project: { select: ['id', 'name'] } },\n })\n .subscribe((response) => {\n this.form.controls.project.setValue((response as any).project);\n this.bookingEntry.resourceRequest = response as NamedEntity;\n });\n }\n\n if (this.teamMemberId && this.mode === 'create') {\n currentPlanningMethod = this.planningMethods.find(\n (x) => x.id === PlanningMethod.Manual,\n );\n this.form.controls.planningMethod.setValue(currentPlanningMethod);\n\n this.data\n .collection('ProjectTeamMembers')\n .entity(this.teamMemberId)\n .get({\n select: ['id', 'name'],\n expand: { project: { select: ['id', 'name'] } },\n })\n .subscribe((response) => {\n this.form.controls.project.setValue((response as any).project);\n this.bookingEntry.resourceRequest = response as NamedEntity;\n });\n }\n\n if (this.bookingDataService.isReadonlyMode()) {\n this.form.disable();\n return;\n }\n\n FormHelper.controlDatePair(\n this.form,\n 'from',\n 'to',\n takeUntil(this.destroyed$),\n 365,\n );\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n

    \n {{ 'resources.booking.entryForm.header' | translate }}\n

    \n

    \n {{ form.value.project.name }}\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n {{ resource.name }}\n
    \n
    \n\n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n {{ bookingEntry.resourceRequest.name }}\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n \n \n
    \n
    \n \n \n
    \n\n \n  {{\n 'resources.booking.entryForm.actions.updatePreview' | translate\n }}\n \n \n\n \n \n \n
    \n \n {{ 'shared.actions.create' | translate }}\n {{ 'shared.actions.save' | translate }}\n \n\n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class BookingEntryFormService {\n private updatePreviewSubject = new Subject();\n public updatePreview$ = this.updatePreviewSubject.asObservable();\n\n /** Обновить превью. */\n public updatePreview() {\n this.updatePreviewSubject.next();\n }\n}\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, ChangeDetectorRef, OnInit, Input } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DatePipe } from '@angular/common';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\n\ninterface BookingEntryInfo {\n project: NamedEntity;\n projectManager: NamedEntity;\n client: NamedEntity;\n projectState: NamedEntity;\n bookingMethod: NamedEntity;\n bookingType: BookingType;\n bookingPeriod: string;\n}\n\n@Component({\n selector: 'wp-booking-entry-info',\n templateUrl: './booking-entry-info.component.html',\n styleUrls: ['./booking-entry-info.component.scss'],\n standalone: false,\n})\nexport class BookingEntryInfoComponent implements OnInit {\n @Input() params: any;\n\n public bookingEntryInfo: BookingEntryInfo;\n public isShown: boolean;\n public isLoading: boolean;\n public notFound: boolean;\n\n constructor(\n public chrome: ChromeService,\n private changeDetector: ChangeDetectorRef,\n\n private data: DataService,\n private notification: NotificationService,\n private datePipe: DatePipe,\n private translate: TranslateService,\n private infoPopupService: InfoPopupService,\n ) {}\n\n private open(bookingId: string) {\n this.load(bookingId);\n this.isShown = true;\n this.notFound = false;\n this.changeDetector.detectChanges();\n }\n\n close() {\n this.infoPopupService.close();\n }\n\n private load(bookingId: string) {\n this.isLoading = true;\n const query = {\n expand: [\n {\n project: {\n select: ['name', 'id'],\n expand: {\n manager: { select: 'name' },\n organization: { select: 'name' },\n state: { select: 'name' },\n },\n },\n },\n ],\n };\n\n this.data\n .collection('BookingEntries')\n .entity(bookingId)\n .get(query)\n .subscribe({\n next: (data) => {\n this.bookingEntryInfo = {\n project: data.project,\n projectManager: data.project.manager,\n client: data.project.organization,\n projectState: data.project.state,\n bookingMethod: this.translate.instant(\n `enums.planningMethod.${data.planningMethod}`,\n ),\n bookingType: data.type,\n bookingPeriod: `\n ${this.datePipe.transform(data.from, 'shortDate')} -\n ${this.datePipe.transform(data.to, 'shortDate')}`,\n };\n\n this.isLoading = false;\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.notFound = true;\n } else {\n this.notification.error(error.message);\n }\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n },\n });\n }\n\n ngOnInit() {\n this.open(this.params.bookingId);\n }\n}\n","@if (!isLoading && !notFound && bookingEntryInfo) {\n
    \n
    \n

    \n \n {{ bookingEntryInfo.project.name }}\n \n

    \n
    \n
    \n
    \n
    \n \n {{ 'resources.booking.entryInfo.projectManager' | translate }}\n \n

    {{ bookingEntryInfo.projectManager.name }}

    \n
    \n
    \n\n
    \n
    \n \n {{ 'resources.booking.entryInfo.client' | translate }}\n \n

    {{ bookingEntryInfo.client?.name }}

    \n
    \n
    \n\n
    \n
    \n \n {{ 'resources.booking.entryInfo.projectState' | translate }}\n \n

    {{ bookingEntryInfo.projectState.name }}

    \n
    \n\n
    \n \n {{ 'resources.booking.entryInfo.bookingMethod' | translate }}\n \n

    {{ bookingEntryInfo.bookingMethod }}

    \n
    \n
    \n\n
    \n
    \n \n {{ 'resources.booking.entryInfo.bookingType' | translate }}\n \n

    {{ bookingEntryInfo.bookingType }}

    \n
    \n\n
    \n \n {{ 'resources.booking.entryInfo.bookingPeriod' | translate }}\n \n

    {{ bookingEntryInfo.bookingPeriod }}

    \n
    \n
    \n
    \n
    \n}\n\n@if (notFound) {\n
    \n {{ 'shared.entityNotFound.title' | translate }}\n
    \n}\n\n\n","import {\n Component,\n OnInit,\n Input,\n ElementRef,\n Injector,\n inject,\n DestroyRef,\n NgZone,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport {\n BookingRenderingService,\n BookingStyle,\n} from '../../core/booking-rendering.service';\nimport { filter } from 'rxjs/operators';\nimport { round } from 'lodash';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { Position } from 'src/app/shared/models/inner/position.model';\nimport { BookingService } from '../../core/booking.service';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { BookingEntryInfoComponent } from '../booking-entry-info/booking-entry-info.component';\nimport { DragHandler } from '../../models/drag-handler.model';\nimport { DefaultPopperModifier } from 'src/app/shared/components/features/info-popup/info-popup.interface';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { MenuService, MenuItem } from 'src/app/core/menu.service';\n\n@Component({\n selector: 'wp-booking-entry',\n templateUrl: './booking-entry.component.html',\n styleUrls: ['./booking-entry.component.scss'],\n standalone: false,\n})\nexport class BookingEntryComponent implements OnInit {\n @Input() public booking: BookingEntry;\n\n public startDragPosition: Position;\n public el: HTMLDivElement;\n public labelEl: HTMLDivElement;\n public isPseudoBooking = false;\n\n private dragHandler = new DragHandler();\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private message: MessageService,\n public bookingService: BookingService,\n private bookingDataService: BookingDataService,\n private renderingService: BookingRenderingService,\n private elementRef: ElementRef,\n private menuService: MenuService,\n private freezeTablesService: FreezeTableService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private zone: NgZone,\n ) {}\n\n public openProjectPopup(bookingId: string): void {\n const bookingProjectDiv: HTMLElement = this.el.querySelector(\n `#project-${bookingId}`,\n );\n const bookingProjectNameSpan: HTMLElement = this.el.querySelector(\n `#project-name-${bookingId}`,\n );\n\n const target =\n bookingProjectDiv.offsetWidth < bookingProjectNameSpan.offsetWidth\n ? bookingProjectDiv\n : bookingProjectNameSpan;\n\n const popperModifiers: DefaultPopperModifier[] = [\n {\n name: 'offset',\n options: {\n offset: ({ placement }) => {\n if (placement === 'bottom') {\n return [0, 31];\n } else {\n return [0, 12];\n }\n },\n },\n },\n ];\n if (!this.isPseudoBooking) {\n this.infoPopupService.open({\n target,\n data: {\n component: BookingEntryInfoComponent,\n params: {\n bookingId,\n },\n injector: this.injector,\n },\n popperModifiers,\n });\n }\n }\n\n private updateRender(renderParams: BookingStyle) {\n this.el.style.left = renderParams.position.x + 'px';\n this.el.style.top = renderParams.position.y + 'px';\n this.el.style.width = renderParams.width + 'px';\n\n if (renderParams.position.x < 0) {\n this.labelEl.style.paddingLeft = -1 * renderParams.position.x + 'px';\n } else {\n this.labelEl.style.paddingLeft = null;\n }\n\n this.el.className = '';\n renderParams.css.forEach((cl) => this.el.classList.add(cl));\n }\n\n private startResize(side: 'left' | 'right', event: MouseEvent) {\n this.dragHandler.isChanging = true;\n this.startDragPosition = { x: event.clientX, y: event.clientY };\n const rect = this.el.getBoundingClientRect();\n\n const xGap =\n side === 'left'\n ? round(event.clientX - rect.x)\n : round(rect.x + rect.width - event.clientX);\n\n this.renderingService.startResize(\n side,\n this.booking,\n this.el,\n event,\n xGap,\n round(event.clientY - rect.y),\n );\n }\n\n ngOnInit(): void {\n this.isPseudoBooking = this.booking.isOther || this.booking.isTimeOff;\n this.el = this.elementRef.nativeElement;\n this.labelEl = this.el.querySelector('.label') as HTMLDivElement;\n\n const leftHandle = this.el.querySelector('.resize-handle-left');\n const rightHandle = this.el.querySelector('.resize-handle-right');\n\n this.renderingService.stopChange$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.dragHandler.reset();\n });\n\n this.renderingService.bookingStyle$\n .pipe(\n filter((s) => s.id === this.booking.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((style) => {\n this.updateRender(style);\n });\n\n this.freezeTablesService.scroll$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.menuService.close());\n\n if (this.booking.editAllowed && !this.bookingDataService.isReadonlyMode()) {\n fromEvent(leftHandle, 'mousedown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n this.startResize('left', event);\n });\n\n fromEvent(rightHandle, 'mousedown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n this.startResize('right', event);\n });\n }\n\n fromEvent(this.el, 'contextmenu')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n const items: MenuItem[] = [\n {\n name: 'open',\n label: 'resources.booking.entryContextMenu.open',\n handlerFn: () =>\n this.bookingService.openBookingForm(this.booking, 'edit'),\n },\n ];\n\n if (\n !this.isPseudoBooking &&\n !this.bookingDataService.isReadonlyMode()\n ) {\n items.push({\n name: 'setType',\n label: `resources.booking.entryContextMenu.${\n this.booking.type === BookingType.Hard ? 'toSoft' : 'toHard'\n }`,\n handlerFn: () => this.bookingService.setType(this.booking),\n });\n }\n\n if (\n !this.isPseudoBooking &&\n !this.bookingDataService.isReadonlyMode()\n ) {\n items.push({\n name: 'notify',\n label: 'resources.booking.entryContextMenu.notify',\n handlerFn: () => this.bookingService.notify(this.booking),\n });\n }\n\n if (\n this.booking.editAllowed &&\n !this.bookingDataService.isReadonlyMode()\n ) {\n items.push({\n name: 'delete',\n label: 'resources.booking.entryContextMenu.delete',\n handlerFn: () =>\n this.message\n .confirmLocal(\n 'resources.booking.entryContextMenu.deleteConfirmation',\n )\n .then(\n () => {\n this.bookingService.deleteBooking(this.booking);\n },\n () => null,\n ),\n });\n }\n\n this.menuService.open(event, items, this.booking);\n event.preventDefault();\n event.stopPropagation();\n });\n\n this.renderingService.registerBooking(this.booking);\n }\n\n public ngAfterViewInit(): void {\n const entryEl = this.el.querySelector(`#entry-${this.booking.id}`);\n\n this.zone.runOutsideAngular(() => {\n fromEvent(entryEl, 'mousemove')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n this.dragEvent(event);\n });\n });\n }\n\n dragEvent(event: MouseEvent) {\n event.preventDefault();\n switch (event.type) {\n case 'mousemove':\n if (this.dragHandler.isChanging) {\n return;\n }\n event.stopPropagation();\n if (this.dragHandler.mouseDown) {\n if (\n Math.abs(event.x - this.dragHandler.mouseX) >\n Constants.beginEventMouseGap ||\n Math.abs(event.y - this.dragHandler.mouseY) >\n Constants.beginEventMouseGap\n ) {\n this.dragHandler.isChanging = true;\n this.startDrag(event);\n }\n } else {\n this.dragHandler.mouseX = event.x;\n this.dragHandler.mouseY = event.y;\n }\n break;\n case 'mousedown':\n event.stopPropagation();\n this.dragHandler.mouseDown = true;\n break;\n case 'mouseup':\n this.dragHandler.isChanging = false;\n this.dragHandler.mouseDown = false;\n break;\n case 'mouseleave':\n if (this.dragHandler.isChanging && !this.dragHandler.mouseDown) {\n return;\n }\n event.stopPropagation();\n this.dragHandler.reset();\n break;\n }\n }\n\n startDrag(event) {\n if (this.booking.editAllowed && !this.bookingDataService.isReadonlyMode()) {\n if (event.button === 0) {\n this.infoPopupService.close();\n this.startDragPosition = { x: event.clientX, y: event.clientY };\n const rect = this.el.getBoundingClientRect();\n this.renderingService.startDrag(\n this.booking,\n round(event.clientX - rect.x),\n round(event.clientY - rect.y),\n this.el,\n event,\n );\n }\n }\n }\n}\n","
    \n
    \n\n\n
    \n \n \n {{ booking.isTimeOff ? ('shared.planner.rowTimeOff' | translate) : booking.project?.name }}\n \n
    \n
    {{ booking.bookedHours | wpWork }}
    \n\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n inject,\n DestroyRef,\n QueryList,\n ViewChildren,\n ChangeDetectorRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EntityFilter } from 'src/app/core/navigation.service';\n\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { FILTER } from 'src/app/shared/tokens';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { getPredefinedResourcePools } from 'src/app/shared/models/entities/settings/resource-pool.model';\n\n@Component({\n selector: 'tmt-booking-filter',\n templateUrl: './booking-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingFilterComponent implements OnInit, FilterDetails {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n @Input() public values: any;\n\n public detailsForm: UntypedFormGroup = this.fb.group({\n project: null,\n resourcePool: null,\n role: null,\n competence: null,\n supervisor: null,\n department: null,\n level: null,\n grade: null,\n location: null,\n skillIds: null,\n legalEntity: null,\n resourceRequestId: null,\n resourceIds: null,\n requestPreferredResources: false,\n employmentTypeId: null,\n });\n\n private readonly destroyRef = inject(DestroyRef);\n\n public predefinedResourcePools = getPredefinedResourcePools(this.translate);\n\n constructor(\n public filterService: FilterService,\n public bookingService: BookingService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n private translate: TranslateService,\n @Optional() @Inject(FILTER) private entityFilter: EntityFilter,\n ) {}\n\n public ngOnInit(): void {\n this.filterService.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset(undefined, { emitEvent: false });\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.filterService.changeValues(\n Object.assign(this.filterService.values, value),\n );\n this.cdr.markForCheck();\n });\n\n if (this.entityFilter?.filter.some((v) => v.projectId)) {\n this.detailsForm.controls.project.disable({ emitEvent: false });\n }\n }\n\n public ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.detailsForm,\n this.cascadeControls,\n [\n [\n {\n controlName: 'role',\n },\n { controlName: 'competence', dependedProperty: 'roleId' },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.cdr.detectChanges();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n\n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n @if (bookingService.resourceRequestId) {\n
    \n
    \n \n
    \n
    \n }\n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { BookingFilterComponent } from './booking-filter.component';\n\n@NgModule({\n declarations: [BookingFilterComponent],\n exports: [BookingFilterComponent],\n\n imports: [CommonModule, SharedModule],\n})\nexport class BookingFilterModule {}\n","import { Injectable, Type } from '@angular/core';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\n\nimport { BookingFilterComponent } from 'src/app/booking/booking/shared/booking-filter/booking-filter.component';\n\n@Injectable()\nexport class BookingFilterService extends FilterService {\n public override component: Type = BookingFilterComponent;\n public override placeholder =\n 'components.bookingFilterService.filters.textInput';\n public override storageName = 'booking';\n public override hasDetails = true;\n public override hasViewSelector = true;\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n resourceIds: () => 0,\n };\n\n public override getODataFilter(): any {\n const result = super.getODataFilter();\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n supervisor: null,\n project: null,\n resourcePool: null,\n role: null,\n competence: null,\n resource: null,\n department: null,\n level: null,\n grade: null,\n location: null,\n skillIds: null,\n legalEntity: null,\n resourceRequestId: null,\n resourceIds: null,\n requestPreferredResources: false,\n allowNonActiveEntity: false,\n view: this.views[1],\n };\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n OnDestroy,\n Injector,\n ChangeDetectionStrategy,\n ElementRef,\n ViewChild,\n ContentChild,\n Optional,\n} from '@angular/core';\n\nimport _ from 'lodash';\nimport { Subject, merge } from 'rxjs';\nimport { filter, first, takeUntil } from 'rxjs/operators';\n\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { Command } from 'src/app/shared-features/planner/models/command.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\n\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { BookingService } from '../../core/booking.service';\nimport { BookingRenderingService } from '../../core/booking-rendering.service';\nimport { BookingProjectAddComponent } from '../../shared/booking-project-add/booking-project-add.component';\nimport { ResourceRequestCalendarService } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { MessageService } from 'src/app/core/message.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-booking-left-group]',\n templateUrl: './booking-left-group.component.html',\n styleUrls: ['./booking-left-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingLeftGroupComponent implements OnInit, OnDestroy {\n @ContentChild('content') content: ElementRef;\n @ViewChild('projectBtn') projectBtn: ElementRef;\n\n @Input() public resource: NamedEntity;\n @Input() public valueMode: ValueMode;\n\n public isExpanded: boolean;\n public isPopupOpened: boolean;\n public height: number;\n public rowStates: Dictionary<{\n commands: Command[];\n isHover: boolean;\n isMenuOpened: boolean;\n }> = {};\n\n private destroyed$ = new Subject();\n\n public get resourceCss(): string[] {\n const result = [];\n\n if (!this.resource.isActive) {\n result.push('disabled');\n }\n\n if (this.isExpanded) {\n result.push('expanded');\n }\n\n if (this.bookingDataService.resourceRequestMode) {\n result.push('resource-request-mode');\n }\n\n return result;\n }\n\n public get totalHours(): number {\n return this.bookingDataService.getTotalsByResource(this.resource.id);\n }\n\n public get isShowActionMenu(): boolean {\n return (\n !this.bookingService.isActualizationResourceRequest &&\n this.bookingDataService.resourceRequestMode === 'assistant' &&\n this.bookingDataService.bookingMode === BookingMode.Basic &&\n this.bookingDataService.resourceRequest.bookingEntryEditAllowed\n );\n }\n\n public get isShowAddButton(): boolean {\n return (\n !this.bookingService.isActualizationResourceRequest &&\n !this.bookingDataService.extraResourceIds?.has(this.resource.id) &&\n !this.bookingDataService.resourceRequestMode &&\n ((!this.bookingService.isAssistantBottomMode &&\n this.bookingService.bookingMode === BookingMode.Detailed) ||\n (this.bookingService.isAssistantBottomMode &&\n this.bookingDataService.resourceRequest?.bookingEntryEditAllowed))\n );\n }\n\n constructor(\n @Optional() public bookingRenderingService: BookingRenderingService,\n public bookingService: BookingService,\n public bookingDataService: BookingDataService,\n private infoPopupService: InfoPopupService,\n private cdr: ChangeDetectorRef,\n private injector: Injector,\n private messageService: MessageService,\n private el: ElementRef,\n @Optional()\n private resourceRequestCalendarService: ResourceRequestCalendarService,\n ) {}\n\n public ngOnInit(): void {\n if (this.bookingService.isResourceLineHidden) {\n this.bookingService.toggleGroup(this.resource.id, true);\n }\n\n merge(\n this.bookingService.detectChanges$.pipe(\n filter((id) => id === this.resource.id),\n ),\n this.bookingService.recalculateGroup$.pipe(\n filter((value) => value.id === this.resource.id),\n ),\n )\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.bookingService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.resource.id),\n takeUntil(this.destroyed$),\n )\n .subscribe((event) => {\n this.isExpanded = event.state;\n this.cdr.markForCheck();\n });\n\n this.bookingRenderingService?.groupBoardHeight$\n .pipe(\n filter((params) => params.id === this.resource.id),\n takeUntil(this.destroyed$),\n )\n .subscribe((params) => {\n this.height = params.height;\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Открытие сведений о пользователе. */\n public openUserInfo(userId: string): void {\n /* Привязка к элементу, у которого виден центр. По умолчанию span */\n const userNameDiv: HTMLElement = this.el.nativeElement.querySelector(\n `#user${userId}`,\n );\n const userNameSpan: HTMLElement = this.el.nativeElement.querySelector(\n `#user${userId}-name`,\n );\n\n const target =\n userNameDiv.offsetWidth < userNameSpan.offsetWidth\n ? userNameDiv\n : userNameSpan;\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n },\n });\n }\n\n /** Open project list in popup */\n public openProjectList(): void {\n const popupId = 'project-list-' + this.resource.id;\n\n this.infoPopupService.open({\n id: popupId,\n target: this.projectBtn.nativeElement,\n data: {\n component: BookingProjectAddComponent,\n componentParams: {\n inputs: {\n resource: this.resource,\n popupId,\n },\n injector: this.injector,\n },\n },\n });\n\n this.isPopupOpened = true;\n\n this.infoPopupService.event$\n .pipe(\n first((e) => e.name === 'destroy' && e.popup?.id === popupId),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.isPopupOpened = false;\n this.cdr.markForCheck();\n });\n }\n\n /** Adds resource to resource request.\n *\n * @param resource Resource.\n * */\n public addResourceToSelected(resource: NamedEntity): void {\n this.resourceRequestCalendarService?.addBookingEntry(\n resource,\n this.bookingDataService.schedules[resource.id],\n );\n }\n\n /** Обработка клика по экспандеру. */\n public clickExpander(): void {\n this.isExpanded = !this.isExpanded;\n this.bookingService.toggleGroup(this.resource.id, this.isExpanded);\n this.resourceRequestCalendarService?.setLineToggledEvent(\n this.resource.id,\n this.bookingService.isAssistantBottomMode,\n );\n }\n\n /** Deletes booking entry (Works when ResourceRequestMode).\n *\n * @param id Resource ID.\n */\n public removeBookingEntry(id: string): void {\n if (this.bookingDataService.resourceRequestMode) {\n this.messageService\n .confirmLocal('resources.booking.entryContextMenu.deleteConfirmation')\n .then(\n () => {\n const bookings = this.bookingDataService.getResourceBookings(id);\n\n bookings.forEach((booking) => {\n this.bookingService.deleteBooking(booking);\n this.resourceRequestCalendarService?.removeBookingEntry(\n booking.id,\n id,\n );\n });\n\n if (!bookings.length) {\n this.resourceRequestCalendarService?.removeBookingEntry(null, id);\n }\n\n _.remove(this.bookingDataService.resources, (el) => el.id === id);\n this.cdr.markForCheck();\n },\n () => null,\n );\n }\n }\n}\n","\n\n \n
    \n \n \n\n \n
    \n \n \n \n {{ resource.name }}\n \n
    \n \n \n \n \n \n \n \n {{ totalHours | plannerFormat }}\n \n\n\n\n \n \n \n \n\n\n\n
    \n \n \n
    \n \n {{ 'shared.actions.delete' | translate }}\n \n
    \n \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-booking-notify',\n templateUrl: './booking-notify.component.html',\n standalone: false,\n})\nexport class BookingNotifyComponent {\n @Input() bookingId: string;\n\n isSending = false;\n form = this.fb.group({\n comment: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSending = true;\n\n this.data\n .collection('BookingEntries')\n .entity(this.bookingId)\n .action('Notify')\n .execute(this.form.value)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'resources.booking.notifyForm.messages.sent',\n );\n\n this.isSending = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSending = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'resources.booking.notifyForm.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'resources.booking.notifyForm.actions.send' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\n\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { ProjectItem } from 'src/app/booking/booking/shared/booking-project-add/booking-project-add.interface';\n@Component({\n selector: 'tmt-booking-project-add',\n templateUrl: './booking-project-add.component.html',\n styleUrls: ['./booking-project-add.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingProjectAddComponent implements OnInit {\n @Input() public resource: NamedEntity;\n @Input() public popupId: string;\n\n public ready = false;\n public pending = false;\n public isShowAlert = false;\n public projects: ProjectItem[] = [];\n public form = this.fb.group({\n projects: [null],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public bookingService: BookingService,\n public bookingDataService: BookingDataService,\n private infoPopupService: InfoPopupService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.form.controls['projects'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value: ProjectItem) => {\n this.isShowAlert = value === null ? false : !value.hasTeamMember;\n this.cdr.markForCheck();\n });\n\n this.getProjects();\n }\n\n /** Create booking entry */\n public addBookingEntry(): void {\n this.pending = true;\n\n this.bookingDataService\n .createBookingEntry(\n this.resource.id,\n this.getControlValue().id,\n this.bookingService.settings.planningScale,\n )\n .subscribe({\n next: (result: BookingEntry) => {\n result.project ||= this.getControlValue();\n this.pending = false;\n this.cdr.markForCheck();\n this.bookingService.addNewBookingEntry(result);\n this.cancel();\n },\n error: (error) => {\n this.pending = false;\n this.cdr.markForCheck();\n this.bookingService.errorHandlerOnSave(\n error,\n this.resource,\n this.getControlValue(),\n );\n },\n });\n }\n\n /** Close popup */\n public cancel(): void {\n this.infoPopupService.close(this.popupId);\n }\n\n /** Get selected project from select-box */\n public getControlValue(): ProjectItem {\n return this.form.controls['projects'].value;\n }\n\n private getProjects(): void {\n this.bookingDataService\n .getAvailableProjects(this.resource.id)\n .subscribe((result: ProjectItem[]) => {\n this.projects = result;\n this.ready = true;\n this.cdr.markForCheck();\n this.infoPopupService.update();\n });\n }\n}\n","
    \n\n
    \n

    \n {{ 'shared.noDisplayData' | translate | uppercase }}\n

    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n\n

    {{ 'resources.booking.teamMemberNotFound.alertOnAdd' | translate }}

    \n
    \n\n
    \n \n {{ 'shared.actions.add' | translate }}\n \n\n \n
    \n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Injector,\n Type,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport _ from 'lodash';\nimport { filter } from 'rxjs';\n\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\nimport { BookingEntry } from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingService } from '../../core/booking.service';\nimport { BookingRenderingService } from '../../core/booking-rendering.service';\nimport { BookingDataService } from '../../core/booking-data.service';\nimport { BookingViewSettingsService } from '../booking-view-settings/booking-view-settings.service';\nimport { BookingSlotInfoComponent } from '../booking-slot-info/booking-slot-info.component';\nimport { Total } from '../../models/total.model';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-booking-right-group]',\n templateUrl: './booking-right-group.component.html',\n styleUrls: ['./booking-right-group.component.scss'],\n providers: [CellsOrchestratorService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingRightGroupComponent implements OnInit {\n @Input() public resourceId: string;\n @Input() public componentLine: Type;\n\n public height: number;\n public isExpanded: boolean;\n public totals: Total[];\n public formLines: UntypedFormArray = this.fb.array([]);\n public componentLineInputs: Record = {};\n\n private readonly destroyRef = inject(DestroyRef);\n\n public get bookings(): BookingEntry[] {\n return this.dataService.getResourceBookings(this.resourceId);\n }\n\n constructor(\n public bookingService: BookingService,\n public dataService: BookingDataService,\n public bookingRenderingService: BookingRenderingService,\n private bookingViewSettingsService: BookingViewSettingsService,\n private infoPopupService: InfoPopupService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n private injector: Injector,\n ) {}\n\n public ngOnInit(): void {\n this.initSubscribers();\n this.initTotals();\n this.recalculateTotals();\n\n this.componentLineInputs = _.merge({}, this.componentLineInputs, {\n totals: this.totals,\n resourceId: this.resourceId,\n });\n }\n\n public openPopup(total: Total, event: MouseEvent): void {\n if (total.active) {\n this.infoPopupService.open({\n target: event.target,\n data: {\n component: BookingSlotInfoComponent,\n params: {\n resourceId: this.resourceId,\n totalInfo: total,\n valueMode: this.bookingService.settings.valueMode,\n },\n injector: this.injector,\n },\n });\n }\n }\n\n public getSummaryIndicatorStyle(total: Total): Record {\n let percent = 0;\n total.overtime = false;\n\n if (total.scheduleHours > 0) {\n percent = _.round((total.hours / total.scheduleHours) * 100, 2);\n\n if (percent > 100) {\n total.overtime = true;\n }\n } else {\n if (total.hours > 0) {\n percent = 100;\n total.overtime = true;\n }\n }\n\n const color = total.overtime\n ? 'rgba(193, 102, 107, 0.8)'\n : 'rgba(72, 169, 166, 0.8)';\n const style: Record = {\n background: `linear-gradient(to top, ${color} ${percent}%, var(--bs-total-cell-bg-o8) 0%)`,\n };\n\n return style;\n }\n\n private initTotals(): void {\n this.totals = [];\n\n for (const slot of this.bookingService.slots) {\n const scheduleHours =\n this.dataService.schedules[this.resourceId]?.find(\n (e) => e.date === slot.date.toISODate(),\n )?.hours ?? 0;\n\n const fteHours = this.dataService.fte[slot.date.toISODate()] ?? 0;\n\n this.totals.push({\n date: slot.date.toISODate(),\n hours: 0,\n id: slot.id,\n nonWorking: scheduleHours === 0,\n fteHours,\n scheduleHours,\n active: false,\n overtime: false,\n });\n }\n }\n\n /** Рассчитывает итоги по строкам и слотам. */\n public recalculateTotals(): void {\n for (const total of this.totals) {\n if (\n this.bookingViewSettingsService.settings.show === 'workload' ||\n this.dataService.resourceRequestMode\n ) {\n total.hours = 0;\n } else {\n total.hours = total.scheduleHours;\n }\n\n total.active = false;\n }\n\n this.bookings\n .filter((b) => b.type === BookingType.Hard)\n .forEach((booking) => {\n booking.detailEntries.forEach((detailEntry) => {\n const total = this.totals.find((t) => t.date === detailEntry.date);\n\n if (total) {\n if (\n this.bookingViewSettingsService.settings.show === 'workload' ||\n this.dataService.resourceRequestMode\n ) {\n total.hours += detailEntry.hours;\n } else {\n total.hours -= detailEntry.hours;\n }\n }\n\n if (total?.hours > 0) {\n total.active = true;\n }\n });\n });\n\n this.componentLineInputs = _.merge({}, this.componentLineInputs, {\n totals: this.totals,\n });\n this.cdr.detectChanges();\n }\n\n private initSubscribers(): void {\n this.bookingViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.recalculateTotals();\n this.cdr.detectChanges();\n });\n\n this.bookingService.detectChanges$\n .pipe(\n filter((id) => id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n\n this.bookingService.recalculateGroup$\n .pipe(\n filter((e) => e.id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((e) => {\n if (e.rebuild) {\n this.initTotals();\n }\n\n this.recalculateTotals();\n });\n\n this.bookingRenderingService?.groupBoardHeight$\n .pipe(\n filter((params) => params.id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((params) => {\n this.height = params.height;\n this.cdr.detectChanges();\n });\n\n this.bookingService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.resourceId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this.isExpanded = event.state;\n\n if (this.isExpanded) {\n this.componentLineInputs = _.merge({}, this.componentLineInputs, {\n totals: this.totals,\n resourceId: this.resourceId,\n });\n\n this.cdr.markForCheck();\n }\n });\n }\n}\n","\n@if (!bookingService.isResourceLineHidden) {\n \n @for (total of totals; track total.id) {\n \n {{\n total.hours\n | plannerFormat\n : bookingService.settings.valueMode\n : total.scheduleHours\n : total.fteHours\n }}\n \n }\n \n}\n\n\n@if (isExpanded) {\n \n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport _ from 'lodash';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { BookingType } from 'src/app/shared/models/enums/booking-type.enum';\n\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { Total } from 'src/app/booking/booking/models/total.model';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\n\ninterface SlotInfo {\n project: NamedEntity;\n type: BookingType;\n hours: number;\n bookedHours: number;\n isTimeOff: boolean;\n isOther?: boolean;\n}\n\n@Component({\n selector: 'tmt-booking-slot-info',\n templateUrl: './booking-slot-info.component.html',\n styleUrls: ['./booking-slot-info.component.scss'],\n standalone: false,\n})\nexport class BookingSlotInfoComponent implements OnInit {\n @Input() public params: any;\n\n public slotsInfoSoft: SlotInfo[];\n public slotsInfoHard: SlotInfo[];\n public slotsInfoSoftTotal: number;\n public slotsInfoHardTotal: number;\n public valueMode: ValueMode;\n public total: Total;\n\n private slotInfo: SlotInfo[] = [];\n\n constructor(\n private bookingDataService: BookingDataService,\n private translateService: TranslateService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.valueMode = this.params.valueMode;\n this.total = this.params.totalInfo;\n this.load(this.params.resourceId);\n this.cdr.markForCheck();\n }\n\n private load(resourceId: string): void {\n const bookings = this.bookingDataService.getResourceBookings(resourceId);\n\n if (!bookings) {\n throw Error('Bookings on resource is not found.');\n }\n\n bookings.forEach((b) => {\n const result = b.detailEntries.find((e) => e.date === this.total.date);\n\n if (result) {\n this.slotInfo.push({\n project: b.project || {\n id: null,\n name: this.translateService.instant(\n 'resources.booking.common.timeOff',\n ),\n },\n type: b.type,\n hours: result.hours,\n bookedHours: b.bookedHours,\n isTimeOff: b.isTimeOff,\n isOther: b.isOther,\n });\n }\n });\n\n if (!this.slotInfo.length) {\n throw Error('Bookings on this slot is not found.');\n }\n\n this.slotInfo = this.slotInfo.filter((e) => e.hours);\n\n this.slotsInfoHard = _.orderBy(\n this.slotInfo.filter((e) => e.type === BookingType.Hard),\n [\n (booking) => !booking.isOther && !booking.isTimeOff,\n (booking) => booking.isOther,\n (booking) => booking.isTimeOff,\n (booking) => booking.bookedHours,\n ],\n ['desc', 'desc', 'desc', 'desc'],\n );\n\n this.slotsInfoHardTotal = this.slotsInfoHard.reduce(\n (result, slot) => result + slot.hours,\n 0,\n );\n\n this.slotsInfoSoft = _.orderBy(\n this.slotInfo.filter((e) => e.type === BookingType.Soft),\n [\n (booking) => !booking.isOther && !booking.isTimeOff,\n (booking) => booking.isOther,\n (booking) => booking.isTimeOff,\n (booking) => booking.bookedHours,\n ],\n ['desc', 'desc', 'desc', 'desc'],\n );\n\n this.slotsInfoSoftTotal = this.slotsInfoSoft.reduce(\n (result, slot) => result + slot.hours,\n 0,\n );\n }\n}\n","\n \n @if (slotsInfoHard.length) {\n \n \n \n \n }\n\n @for (slot of slotsInfoHard; track slot) {\n \n \n \n \n }\n\n @if (slotsInfoSoft.length) {\n \n \n \n \n }\n\n @for (slot of slotsInfoSoft; track slot) {\n \n \n \n \n }\n \n
    Hard\n
    \n {{\n slotsInfoHardTotal | plannerFormat: valueMode : total.scheduleHours : total.fteHours\n }}\n
    \n
    \n
    \n {{ slot.project.name }}\n
    \n
    \n
    \n {{ slot.hours | plannerFormat: valueMode : total.scheduleHours : total.fteHours }}\n
    \n
    Soft\n
    \n {{\n slotsInfoSoftTotal | plannerFormat: valueMode : total.scheduleHours : total.fteHours\n }}\n
    \n
    \n
    \n {{ slot.project.name }}\n
    \n
    \n
    \n {{ slot.hours | plannerFormat: valueMode : total.scheduleHours : total.fteHours }}\n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-booking-header-left]',\n templateUrl: './booking-header-left.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingHeaderLeftComponent implements OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n public bookingService: BookingService,\n private cdr: ChangeDetectorRef,\n ) {\n bookingService.detectChanges$\n .pipe(\n filter((value) => value === null),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n bookingService.toggleGroup$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n \n \n\n \n \n\n\n \n \n
    \n {{ 'resources.booking.columns.resource' | translate }}\n \n \n \n {{\n (bookingService.isAllExpanded\n ? 'shared.actions.collapseAll'\n : 'shared.actions.expandAll'\n ) | translate\n }}\n \n \n
    \n \n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-booking-header-right]',\n templateUrl: './booking-header-right.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingHeaderRightComponent {\n private $destroyed = new Subject();\n\n constructor(\n public service: BookingService,\n cdr: ChangeDetectorRef,\n ) {\n service.detectChanges$\n .pipe(\n filter((v) => v === null),\n takeUntil(this.$destroyed),\n )\n .subscribe(() => {\n cdr.markForCheck();\n });\n }\n\n public trackById(index: number, row: any): string {\n return row.id;\n }\n}\n","\n \n\n\n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wp-booking-toolbar',\n templateUrl: './booking-toolbar.component.html',\n styleUrls: ['./booking-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BookingToolbarComponent {\n @Input() public filterHidden = false;\n}\n","
    \n \n\n @if (!filterHidden) {\n \n }\n\n \n
    \n","import { Component, DestroyRef, inject, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\n\nimport { BookingViewSettingsService } from './booking-view-settings.service';\n\n@Component({\n selector: 'tmt-booking-view-settings',\n templateUrl: './booking-view-settings.component.html',\n standalone: false,\n})\nexport class BookingViewSettingsComponent implements OnInit {\n public conditionsCount: number;\n public conditionCountTitle: string;\n public form: UntypedFormGroup = this.fb.group({\n show: null,\n resourceRequestShown: false,\n });\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public bookingService: BookingService,\n private fb: UntypedFormBuilder,\n private bookingViewSettingsService: BookingViewSettingsService,\n ) {}\n\n public ngOnInit(): void {\n this.form.patchValue(this.bookingViewSettingsService.settings, {\n emitEvent: false,\n });\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.bookingViewSettingsService.propagateSettingsChange(\n this.form.value,\n );\n });\n }\n}\n","
    \n \n \n \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (\n bookingService.bookingMode === 'Detailed' &&\n !(bookingService.isAssistantBottomMode || bookingService.isAssistantTopMode)\n ) {\n
    \n\n
    \n \n \n
    \n }\n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport {\n AssistantBookingViewSettings,\n BookingViewSettings,\n} from '../../models/booking-view.settings';\n\n@Injectable()\nexport class BookingViewSettingsService {\n public settings: BookingViewSettings | AssistantBookingViewSettings;\n public settings$ = new Subject();\n\n private _assistantMode: boolean;\n public get assistantMode(): boolean {\n return this._assistantMode;\n }\n public set assistantMode(value: boolean) {\n this._assistantMode = value;\n this.init();\n }\n\n constructor(private localConfigService: LocalConfigService) {\n this.init();\n }\n\n /** Sets view settings. */\n public init(): void {\n this.settings = this.assistantMode\n ? this.localConfigService.getConfig(AssistantBookingViewSettings)\n : this.localConfigService.getConfig(BookingViewSettings);\n }\n\n /**\n * Emits settings change.\n *\n * @param settings View settings.\n */\n public propagateSettingsChange(settings: BookingViewSettings): void {\n this.settings = settings;\n this.settings$.next(settings);\n this.saveSettings();\n }\n\n private saveSettings(): void {\n if (this.assistantMode) {\n this.localConfigService.setConfig(\n AssistantBookingViewSettings,\n this.settings,\n );\n } else {\n this.localConfigService.setConfig(BookingViewSettings, this.settings);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { Certificate } from 'src/app/shared/models/entities/certificates/certificate.model';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-certificate-card',\n templateUrl: './certificate-card.component.html',\n styleUrls: ['./certificate-card.component.scss'],\n providers: [\n { provide: META_ENTITY_TYPE, useValue: 'Certificate' },\n LifecycleService,\n SavingQueueService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CertificateCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public state$ = new BehaviorSubject(CardState.Loading);\n\n public certificateEntity: Certificate;\n\n public readonly = false;\n\n public activeTab: string;\n\n public usersQuery = {\n filter: {\n isActive: true,\n },\n };\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n owner: [null, Validators.required],\n effectiveDate: [null, Validators.required],\n expiryDate: null,\n });\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n private certificateQuery = {\n select: [\n 'id',\n 'name',\n 'ownerId',\n 'effectiveDate',\n 'expiryDate',\n 'editAllowed',\n ],\n expand: [{ owner: { select: ['id', 'name'] } }],\n };\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n private certificateReloaded$ = new Subject();\n\n constructor(\n public savingQueueService: SavingQueueService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private customFieldService: CustomFieldService,\n private lifecycleService: LifecycleService,\n private navigationService: NavigationService,\n private notification: NotificationService,\n private logService: LogService,\n private changeDetector: ChangeDetectorRef,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'Certificate');\n }\n\n ngOnInit(): void {\n this.loadCertificate();\n this.actionService.setHasAutosave(true);\n\n FormHelper.controlDatePair(\n this.form,\n 'effectiveDate',\n 'expiryDate',\n takeUntil(this.destroyed$),\n );\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.certificateReloaded$.next();\n }\n\n public saveName = (name: string) =>\n this.data\n .collection('Certificates')\n .entity(this.entityId)\n .patch({ name })\n .pipe(tap(() => this.changeDetector.markForCheck()));\n\n private reload() {\n this.savingQueueService.save().then(\n () => {\n this.loadCertificate();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n private loadCertificate() {\n this.certificateReloaded$.next();\n this.state$.next(CardState.Loading);\n\n this.customFieldService.enrichQuery(this.certificateQuery, 'Certificate');\n\n this.data\n .collection('Certificates')\n .entity(this.entityId)\n .get(this.certificateQuery)\n .subscribe({\n next: (certificate: Certificate) => {\n this.certificateEntity = certificate;\n this.form.patchValue(this.certificateEntity);\n this.changeDetector.markForCheck();\n\n this.initCardSubscriptions();\n\n this.navigationService.addRouteSegment({\n id: this.certificateEntity.id,\n localTitle: this.certificateEntity.name,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.certificateEntity.editAllowed\n ? this.form.enable({ emitEvent: false })\n : this.form.disable({ emitEvent: false });\n\n this.state$.next(CardState.Ready);\n this.changeDetector.markForCheck();\n },\n error: (error: Exception) => {\n this.logService.error(error.message);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n this.state$.next(CardState.Error);\n this.changeDetector.markForCheck();\n },\n });\n }\n\n /**\n * Inits Card level subscriptions.\n * */\n private initCardSubscriptions() {\n this.form.valueChanges\n .pipe(takeUntil(this.certificateReloaded$))\n .subscribe(() => this.save());\n\n this.actionService.reload$\n .pipe(takeUntil(this.certificateReloaded$))\n .subscribe(() => {\n this.reload();\n });\n\n this.lifecycleService.reload$\n .pipe(takeUntil(this.certificateReloaded$))\n .subscribe(() => {\n this.reload();\n });\n }\n\n private save(): void {\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const formValue = this.form.value;\n\n const certificate = {\n id: this.entityId,\n name: formValue.name,\n ownerId: formValue.owner.id,\n expiryDate: formValue.expiryDate,\n effectiveDate: formValue.effectiveDate,\n };\n\n this.customFieldService.assignValues(certificate, formValue, 'Certificate');\n\n this.savingQueueService.addToQueue(\n this.entityId,\n this.data\n .collection('Certificates')\n .entity(this.entityId)\n .update(certificate),\n );\n }\n}\n","
    \n\n\n\n\n
    \n
    \n
    \n \n
    \n\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n\n \n\n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CertificateListComponent } from './list/certificate-list.component';\nimport { CertificateCardComponent } from 'src/app/certificates/card/certificate-card.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport {\n VIEW_NAME,\n LIST,\n MULTI_SELECT_LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n} from 'src/app/shared/tokens';\nimport { CERTIFICATES_LIST } from 'src/app/shared/lists/certificates.list';\nimport { CertificateCreationComponent } from './creation/certificate-creation.component';\nimport { SharedFeaturesModule } from 'src/app/shared-features/shared-features.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CertificatesFilterComponent } from './list/certificates-filter/certificates-filter.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\n@NgModule({\n declarations: [\n CertificateCardComponent,\n CertificateListComponent,\n CertificateCreationComponent,\n CertificatesFilterComponent,\n ],\n imports: [\n CommonModule,\n BaseSharedModule,\n SharedModule,\n SharedFeaturesModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'certificates',\n url: '/certificates/{view:viewName}?{navigation}&{route}',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n routerHeader: 'team.certificates.list.header',\n },\n component: CertificateListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'Certificate' },\n { provide: LIST, useValue: CERTIFICATES_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'certificate',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'certificate',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n url: '/certificates/{entityId:guid}?{navigation}&{route}',\n component: CertificateCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class CertificatesModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { Observable, OperatorFunction, Subject } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n map,\n switchMap,\n takeUntil,\n} from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Certificate } from 'src/app/shared/models/entities/certificates/certificate.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-certificate-creation',\n templateUrl: './certificate-creation.component.html',\n styleUrls: ['./certificate-creation.component.scss'],\n standalone: false,\n})\nexport class CertificateCreationComponent implements OnInit, OnDestroy {\n @Input() client: NamedEntity;\n @Input() userFromProfile: NamedEntity;\n\n public isSaving = false;\n\n public usersQuery = {};\n\n form = this.fb.group({\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n owner: [null, Validators.required],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private appService: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'Certificate', true);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'Certificate',\n );\n }\n\n ngOnInit(): void {\n if (!this.userFromProfile) {\n this.setUsersQuery();\n } else {\n this.form.controls.owner.setValue(this.userFromProfile);\n this.form.controls.owner.disable();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public search: OperatorFunction = (\n text$: Observable,\n ) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n switchMap((term) => {\n if (term.length > 2) {\n const query: Dictionary = {\n $top: Constants.typeaheadListLength,\n };\n const params = {\n term: `'${term.toLowerCase()}'`,\n };\n return this.data\n .collection('Certificates')\n .function('GetNames')\n .query(params, null, query);\n } else {\n return [];\n }\n }),\n map((certificateNames) => [...new Set(certificateNames)]),\n takeUntil(this.destroyed$),\n );\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.isSaving = true;\n\n const formRawValue = this.form.getRawValue();\n\n const data = {\n name: formRawValue.name,\n ownerId: formRawValue.owner.id,\n };\n\n this.customFieldService.assignValues(data, formRawValue, 'Certificate');\n\n this.data\n .collection('Certificates')\n .insert(data)\n .subscribe({\n next: (certificate: Certificate) => {\n this.notification.successLocal(\n 'team.certificates.creation.messages.created',\n );\n\n this.state.go('certificate', {\n entityId: certificate.id,\n routeMode: RouteMode.continue,\n });\n\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this.isSaving = false;\n },\n });\n };\n\n private setUsersQuery() {\n if (\n this.appService.checkPermission(\n 'Certificate',\n 'All',\n PermissionType.Modify,\n )\n ) {\n this.usersQuery = {\n filter: {\n isActive: true,\n },\n };\n } else {\n if (\n this.appService.checkPermission(\n 'Certificate',\n 'MySubordinates',\n PermissionType.Modify,\n )\n ) {\n this.usersQuery = {\n filter: [\n {\n supervisors: {\n any: {\n id: { type: 'guid', value: this.appService.session.user.id },\n },\n },\n },\n ],\n };\n }\n }\n }\n}\n","
    \n
    \n

    \n {{ 'team.certificates.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CertificateCreationComponent } from 'src/app/certificates/creation/certificate-creation.component';\nimport { CertificatesFilterService } from 'src/app/certificates/list/certificates-filter/certificates-filter.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ListService } from 'src/app/shared/services/list.service';\n\n@Component({\n selector: 'wp-certificate-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: CertificatesFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class CertificateListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private appService: AppService,\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n private modal: NgbModal,\n private injector: Injector,\n private entityListService: EntityListService,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'team.certificates.list.actions.create.title',\n isVisible: this.appService.checkEntityPermission(\n 'Certificate',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('certificate', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: any) => {\n this.actions.action('card').isShown = rows?.length === 1;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create() {\n const ref = this.modal.open(CertificateCreationComponent, {\n injector: this.injector,\n });\n\n if (this.state.params.view === 'my') {\n const instance = ref.componentInstance as CertificateCreationComponent;\n instance.userFromProfile = this.appService.session.user;\n }\n }\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-certificates-filter',\n templateUrl: './certificates-filter.component.html',\n standalone: false,\n})\nexport class CertificatesFilterComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values: any;\n\n detailsForm = this.fb.group({\n owner: [null],\n states: [null],\n period: [null],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable, Type } from '@angular/core';\nimport { CertificatesFilterComponent } from 'src/app/certificates/list/certificates-filter/certificates-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class CertificatesFilterService extends FilterService {\n public override component: Type = CertificatesFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = true;\n public hasActiveSelector = true;\n public override placeholder = 'team.certificates.list.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n states: () => (this.stateConditionExist() ? 1 : 0),\n };\n\n protected override getDefaultValues = (): any => ({\n text: '',\n view: this.views[0],\n owner: null,\n period: null,\n states: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n { 'tolower(name)': { contains: text } },\n { owner: { 'tolower(name)': { contains: text } } },\n ],\n });\n }\n\n if (this.values.owner) {\n result.push({\n ownerId: { type: 'guid', value: this.values.owner.id },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n effectiveDate: { le: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n or: [\n { expiryDate: { ge: { type: 'raw', value: dates.periodFinish } } },\n { expiryDate: { eq: { type: 'raw', value: 'null' } } },\n ],\n });\n }\n\n if (this.values.view && this.values.view.code === 'active') {\n result.push({ isActive: true });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n Injector,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { ClientCardService } from './client-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport _ from 'lodash';\nimport {\n Organization,\n OrganizationTotal,\n} from 'src/app/shared/models/entities/projects/organization.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { ProjectSettingsComponent } from 'src/app/projects/settings/project-settings.component';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'wp-client-card',\n templateUrl: './client-card.component.html',\n styleUrls: ['./client-card.component.scss'],\n providers: [ClientCardService, OverviewKpiService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n host: {\n class: 'data-not-saved-indicator-to-top',\n },\n})\nexport class ClientCardComponent implements OnInit {\n @Input() entityId: string;\n\n public readonly client = signal(null);\n public clientTotal: any;\n public tabs: TabLink[];\n public readonly defaultTabs: TabLink[] = [\n {\n header: 'projects.clients.card.tabs.overview',\n state: 'client.overview',\n },\n {\n header: 'projects.clients.card.tabs.settings',\n state: 'client.settings',\n },\n {\n header: 'projects.clients.card.tabs.projects',\n state: 'client.projects',\n },\n ];\n\n public readonly clientCardService = inject(ClientCardService);\n public readonly uiRouterGlobals = inject(UIRouterGlobals);\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly infoPopupService = inject(InfoPopupService);\n private readonly notificationService = inject(NotificationService);\n private readonly elRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n private readonly ngbModal = inject(NgbModal);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.clientCardService.load(this.entityId);\n\n this.actionPanelService.setHasAutosave(true);\n this.actionPanelService.set([\n {\n title: 'projects.projects.list.actions.create',\n hint: 'projects.projects.list.actions.create',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: this.appService.checkEntityPermission(\n 'Project',\n PermissionType.Modify,\n ),\n handler: () => this.createProject(),\n },\n ]);\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.clientCardService.reloadTab());\n\n this.clientCardService.client$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((client: Organization) => {\n if (!_.isEqual(this.client(), client)) {\n this.client.set(client);\n this.tabs = [...this.defaultTabs];\n\n if (this.appService.checkFeature(Feature.clients)) {\n if (client.contactsViewAllowed) {\n this.tabs.push({\n header: 'projects.clients.card.tabs.legal',\n state: 'client.legal',\n });\n\n this.tabs.push({\n header: 'shared2.groups.contacts',\n state: 'client.contacts',\n });\n\n this.tabs.push({\n header: 'shared2.groups.interactions',\n state: 'client.interactions',\n });\n }\n\n this.tabs.push({\n header: 'shared2.groups.deals',\n state: 'client.deals',\n });\n }\n\n if (client.tariffsViewAllowed) {\n this.tabs.push({\n header: 'projects.clients.card.tabs.tariffs',\n state: 'client.tariffs',\n });\n }\n\n if (client.invoicesViewAllowed) {\n this.tabs.push({\n header: 'projects.clients.card.tabs.invoices',\n state: 'client.invoices',\n });\n }\n\n if (this.appService.checkFeature(Feature.finance)) {\n this.tabs.push({\n header: 'projects.clients.card.tabs.pnl',\n state: 'client.pnl',\n });\n }\n }\n });\n\n this.clientCardService.clientTotal$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((clientTotal: OrganizationTotal) => {\n this.clientTotal = clientTotal;\n });\n }\n\n /** Changes client state. */\n public selectState(isActive: boolean): void {\n this.clientCardService.clientCollection\n .entity(this.entityId)\n .patch({ isActive })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.clientCardService.currentClient = {\n ...this.clientCardService.currentClient,\n isActive,\n };\n this.client.update((client) => ({\n ...client,\n isActive,\n }));\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Opens user info popup. */\n public openUserInfo(): void {\n const userId = this.client().manager.id;\n const target = this.elRef.nativeElement.querySelector('#manager');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Opens modal window for project creating. */\n private createProject(): void {\n const ref = this.ngbModal.open(ProjectSettingsComponent, { size: 'lg' });\n (ref.componentInstance as ProjectSettingsComponent).client = this.client();\n }\n}\n","\n\n\n\n@if (clientCardService.state() === 'Ready') {\n
    \n
    \n
    \n {{ 'projects.clients.card.props.manager' | translate }}:\n
    \n \n
    \n
    \n @if (client()?.site) {\n
    \n {{ 'projects.clients.settings.props.site' | translate }}:\n\n \n
    \n }\n
    \n
    \n
    \n @if (client()?.editAllowed) {\n \n \n
    \n \n \n
    \n
    \n } @else {\n \n \n \n }\n\n \n  \n \n \n
    \n
    \n \n\n
    \n
      \n
    • \n -1 }\"\n [uiSref]=\"tab.state\"\n [uiParams]=\"{ routeMode: 'keep' }\"\n [attr.data-test]=\"tab.state\"\n >{{ tab.header | translate }}\n
    • \n
    \n \n
    \n}\n\n\n @if (client() && client().isActive) {\n {{ 'projects.clients.card.states.active' | translate }}\n } @else {\n {{ 'projects.clients.card.states.closed' | translate }}\n }\n\n","import {\n computed,\n DestroyRef,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport _ from 'lodash';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n Organization,\n OrganizationTotal,\n} from 'src/app/shared/models/entities/projects/organization.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Injectable()\nexport class ClientCardService {\n private readonly _state = signal(CardState.Loading);\n public readonly state = computed(this._state);\n private readonly reloadTabSubject = new Subject();\n public readonly reloadTab$ = this.reloadTabSubject.asObservable();\n private readonly clientTotalSubject = new BehaviorSubject(\n null,\n );\n public readonly clientTotal$ = this.clientTotalSubject\n .asObservable()\n .pipe(filter((p) => !!p));\n private readonly clientSubject = new BehaviorSubject(null);\n public readonly client$ = this.clientSubject\n .asObservable()\n .pipe(filter((p) => !!p));\n\n public clientId: string;\n public clientCollection: Collection;\n\n public get currentClient(): Organization {\n return this.clientSubject.getValue();\n }\n public set currentClient(client: Organization) {\n this.clientSubject.next(client);\n }\n\n private readonly dataService = inject(DataService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly navigationService = inject(NavigationService);\n private readonly notificationService = inject(NotificationService);\n\n constructor() {\n this.clientCollection = this.dataService.collection('Organizations');\n }\n\n /** Saves client name. */\n public saveName = (name: string) =>\n this.clientCollection\n .entity(this.clientId)\n .patch({ name })\n .pipe(\n tap(() => {\n this.currentClient = {\n ...this.currentClient,\n name,\n };\n }),\n );\n\n /** Reloads tab. */\n public reloadTab() {\n this.reloadTabSubject.next();\n }\n\n /**\n * Loads all client's data.\n *\n * @param clientId Id of client to load.\n */\n public load(clientId: string): void {\n this.clientId = clientId;\n this._state.set(CardState.Loading);\n\n const query = this.buildQuery();\n\n this.loadClient(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (client: Organization) => {\n this.navigationService.addRouteSegment({\n id: client.id,\n title: client.name,\n });\n this.clientSubject.next(client);\n this._state.set(CardState.Ready);\n },\n error: (error: Exception) => {\n this._state.set(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n },\n });\n this.loadClientTotal();\n }\n\n /** Loads client's totals. */\n private loadClientTotal(): void {\n const query = {\n select: ['actualHours'],\n };\n\n this.dataService\n .collection('OrganizationTotals')\n .entity(this.clientId)\n .get(query)\n .subscribe({\n next: (clientTotal: OrganizationTotal) => {\n this.clientTotalSubject.next(clientTotal);\n },\n });\n }\n\n /**\n * Loads client's data.\n *\n * @param query OData query for loading client data.\n * @returns Client entity.\n */\n public loadClient(query: any): Observable {\n return this.clientCollection.entity(this.clientId).get(query);\n }\n\n /** Updates current client data. */\n public updateClient(client: Partial): void {\n const newClient: Partial = {};\n\n Object.keys(this.currentClient).forEach((key) => {\n if (client[key] && !_.isEqual(client[key], this.currentClient[key])) {\n newClient[key] = client[key];\n }\n });\n\n this.currentClient = Object.assign({}, this.currentClient, newClient);\n }\n\n /**\n * Builds OData query for organization entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n return {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'site',\n 'editAllowed',\n 'tariffsEditAllowed',\n 'tariffsViewAllowed',\n 'contactsViewAllowed',\n ],\n expand: [{ manager: { select: ['name', 'id'] } }],\n };\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ClientContactsSettings implements BaseSettings {\n public readonly name = 'ClientContactsSettings';\n version: number;\n onlyActive: boolean;\n\n getDefault(): ClientContactsSettings {\n return {\n version: 1,\n onlyActive: true,\n } as ClientContactsSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ClientContactsService } from 'src/app/clients/card/client-contact/core/client-contacts.service';\nimport { CLIENT_CONTACTS } from 'src/app/clients/card/client-contact/model/client-contacts.list';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-client-contacts',\n templateUrl: './client-contacts.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ClientContactsService,\n SavingQueueService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CLIENT_CONTACTS },\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ClientContactsComponent {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public clientContactsService: ClientContactsService,\n private service: ClientCardService,\n ) {\n this.clientContactsService.load();\n\n this.service.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.clientContactsService.load());\n }\n}\n","\n","import {\n DestroyRef,\n Inject,\n inject,\n Injectable,\n Injector,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { filter, merge, Observable } from 'rxjs';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { Contact } from 'src/app/contacts/model/contact.model';\nimport { ClientContactsToolbarComponent } from 'src/app/clients/card/client-contact/toolbar/client-contacts-toolbar.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { ContactCreateModalComponent } from 'src/app/contacts/contact-create/contact-create.component';\nimport { ClientContactsSettings } from 'src/app/clients/card/client-contact/client-contacts-settings';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\n@Injectable()\nexport class ClientContactsService {\n public formArray: UntypedFormArray;\n public gridOptions: GridOptions = {\n resizableColumns: true,\n sorting: true,\n selectionType: SelectionType.row,\n toolbar: ClientContactsToolbarComponent,\n commands: [\n {\n name: 'create',\n allowedFn: () => !this.readonly(),\n handlerFn: () => {\n this.createClientContact();\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly() && !!formGroup,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.deleteContact(formGroup.value.id);\n },\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly(),\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteContact(formGroup.value.id),\n },\n ],\n };\n /** Set whether to display only active contacts */\n public onlyActive = signal(true);\n\n protected readonly = signal(false);\n\n /** Prevents client contact autosaving. */\n private isStopSaving = signal(false);\n private contactCollection: Collection;\n private clientContactsSettings: ClientContactsSettings;\n\n protected readonly dataService = inject(DataService);\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly injector = inject(Injector);\n protected readonly notificationService = inject(NotificationService);\n protected readonly modal = inject(NgbModal);\n protected readonly listService = inject(ListService);\n protected readonly localConfigService = inject(LocalConfigService);\n protected readonly savingQueueService = inject(SavingQueueService);\n protected readonly gridService = inject(GridService);\n protected readonly customFieldService = inject(CustomFieldService);\n\n private readonly fb = inject(UntypedFormBuilder);\n\n constructor(@Inject('organizationId') public organizationId: string) {\n this.loadSettings();\n this.contactCollection = this.dataService.collection('Contacts');\n this.formArray = this.fb.array([]);\n this.gridOptions.view = this.listService.getGridView();\n\n this.savingQueueService.delayDuration = 0;\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed())\n .subscribe((o: Order) => this.orderChanged(o));\n }\n\n /**\n * Loads client contacts.\n *\n * @param queryExtras extra query params\n */\n public load(): void {\n this.savingQueueService.save().then(\n () => {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query = this.buildContactsQuery();\n\n this.dataService\n .collection('Organizations')\n .entity(this.organizationId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (client: Partial) => {\n this.processContacts(client.contacts, client.contactsEditAllowed);\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Sets onlyActive property and reloads data\n *\n * @param onlyActive indicator to show active or all entities.\n */\n public setOnlyActive(onlyActive: boolean) {\n this.onlyActive.set(onlyActive);\n this.setConfig(onlyActive);\n this.load();\n }\n\n /**\n * Sets onlyActive setting.\n *\n * @param onlyActive indicator to show active or all entities.\n */\n protected setConfig(onlyActive: boolean) {\n this.clientContactsSettings.onlyActive = onlyActive;\n this.localConfigService.setConfig(\n ClientContactsSettings,\n this.clientContactsSettings,\n );\n }\n\n /** Loads onlyActive setting */\n protected loadSettings(): void {\n this.clientContactsSettings = this.localConfigService.getConfig(\n ClientContactsSettings,\n );\n this.onlyActive.set(this.clientContactsSettings.onlyActive);\n }\n\n /** Adding a new row to the contacts table. */\n protected createClientContact(): void {\n const modalRef = this.modal.open(ContactCreateModalComponent, {\n injector: this.injector,\n });\n\n (modalRef.componentInstance as ContactCreateModalComponent).organizationId =\n this.organizationId;\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Deletes contact.\n *\n * @param contactId id of deleting contact.\n */\n protected deleteContact(contactId: string): void {\n this.contactCollection\n .entity(contactId)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.onContactDeleted(contactId);\n this.notificationService.successLocal('shared.deleteCompleted');\n },\n error: (error: Exception) =>\n this.notificationService.error(error.message),\n });\n }\n\n /**\n * Handles post-deletion logic for a contact.\n *\n * @param contactId id of deleting contact.\n */\n protected onContactDeleted(contactId: string): void {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === contactId,\n );\n if (index > -1) {\n this.formArray.controls.splice(index, 1);\n }\n const groupForSelection =\n this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null;\n\n this.gridService.selectGroup(groupForSelection as UntypedFormGroup);\n this.gridService.detectChanges();\n }\n\n /** Opens view configuration dialog. */\n protected setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n\n /**\n * Processes loaded contacts and updates the form array.\n *\n * @param contacts loaded contacts.\n * @param contactsEditAllowed indicator weather or not contacts can be edited.\n */\n protected processContacts(\n contacts: Contact[],\n contactsEditAllowed: boolean,\n ): void {\n contacts.forEach((contact: Contact) => {\n const group = this.getClientContactFormGroup();\n group.patchValue(contact, { emitEvent: false });\n if (!contactsEditAllowed) {\n this.readonly.set(true);\n group.disable({ emitEvent: false });\n }\n this.formArray.push(group);\n });\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n protected getOrderBy(): string {\n const column = this.gridService.order.column || 'firstName';\n const direction = this.gridService.order.reverse ? 'desc' : 'asc';\n\n return `${column} ${direction}`;\n }\n\n /**\n * Builds OData contacts query.\n * @returns OData contacts query object.\n */\n protected buildContactsQuery(): any {\n const query: any = {\n select: ['id', 'editAllowed', 'contactsEditAllowed'],\n expand: {\n contacts: {\n select: [\n 'id',\n 'name',\n 'firstName',\n 'lastName',\n 'patronymic',\n 'organizationId',\n 'position',\n 'description',\n 'email',\n 'mobilePhone',\n 'phone',\n ],\n expand: [{ role: { select: ['id', 'name'] } }],\n filter: {},\n orderBy: this.getOrderBy(),\n },\n },\n };\n\n this.customFieldService.enrichQuery(query.expand.contacts, 'Contact');\n\n if (this.onlyActive()) {\n query.expand.contacts.filter.isActive = true;\n } else {\n delete query.expand.contacts.filter;\n }\n\n return query;\n }\n\n /**\n * Returns contact form group.\n *\n * @returns contact form group.\n */\n private getClientContactFormGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n name: [\n null,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n organizationId: null,\n role: null,\n position: null,\n description: null,\n email: null,\n mobilePhone: null,\n phone: null,\n firstName: [\n null,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n lastName: null,\n patronymic: null,\n });\n\n this.customFieldService.enrichFormGroup(group, 'Contact');\n\n merge(\n group.controls.firstName.valueChanges,\n group.controls.lastName.valueChanges,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isStopSaving.set(true);\n group.controls.name.setValue(\n `${group.controls.firstName.value} ${group.controls.lastName.value}`,\n );\n this.isStopSaving.set(false);\n });\n\n group.valueChanges\n .pipe(\n filter(() => !this.isStopSaving()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (group.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.entityNotSaved',\n );\n return;\n }\n\n this.savingQueueService.addToQueue(\n group.value.id,\n this.editClientContact(group.getRawValue()),\n );\n });\n\n return group;\n }\n\n /**\n * Generates an update request for a client contacts.\n *\n * @param contact The project cost center to be updated.\n * @returns An observable of the updated client contact.\n */\n private editClientContact(contact: Contact): Observable {\n contact.organizationId = this.organizationId;\n if (contact?.role) {\n contact.roleId = contact.role.id;\n delete contact.role;\n }\n\n return this.contactCollection\n .entity(contact.id)\n .update(contact)\n .pipe(takeUntilDestroyed(this.destroyRef));\n }\n\n /**\n * Updates the order of the contact view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n private orderChanged(order: Order): void {\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.load();\n }\n}\n","import { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { List } from 'src/app/shared/models/inner/list';\nimport {\n GridColumnType,\n GridNavigationColumn,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const CLIENT_CONTACTS: List = {\n name: 'clientContacts',\n version: 4,\n customFieldEntityType: 'Contact',\n editableCustomFields: true,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'firstName',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'lastName',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'position',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'description',\n width: 250,\n visibleByDefault: false,\n },\n {\n column: 'email',\n width: 250,\n visibleByDefault: false,\n },\n {\n column: 'mobilePhone',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'phone',\n visibleByDefault: false,\n width: 250,\n },\n ],\n order: { column: 'firstName', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'contact.profile',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n forceCellUpdating: true,\n },\n {\n name: 'firstName',\n type: GridColumnType.StringControl,\n header: 'shared2.props.firstName',\n hint: 'shared2.props.firstName',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'lastName',\n type: GridColumnType.StringControl,\n header: 'shared2.props.lastName',\n hint: 'shared2.props.lastName',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'role',\n type: GridColumnType.SelectControl,\n header: 'shared2.props.role',\n hint: 'shared2.props.role',\n directory: { entityName: 'Contact', propertyName: 'Role' },\n },\n {\n name: 'position',\n header: 'shared2.props.position',\n hint: 'shared2.props.position',\n type: GridColumnType.StringControl,\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'description',\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n fixedWidth: true,\n type: GridColumnType.StringControl,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'email',\n header: 'shared2.props.email',\n hint: 'shared2.props.email',\n fixedWidth: true,\n type: GridColumnType.StringControl,\n extendedType: 'email',\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'mobilePhone',\n header: 'shared2.props.mobilePhone',\n hint: 'shared2.props.mobilePhone',\n type: GridColumnType.StringControl,\n extendedType: 'phone',\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'phone',\n header: 'shared2.props.phone',\n hint: 'shared2.props.phone',\n type: GridColumnType.StringControl,\n extendedType: 'phone',\n propagationMode: PropagationMode.onExitFromEditing,\n },\n ],\n dataColumns: [],\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ClientContactsService } from 'src/app/clients/card/client-contact/core/client-contacts.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-client-contacts-toolbar',\n templateUrl: './client-contacts-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ClientContactsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public filterControl = new UntypedFormControl(false);\n\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n private clientContactsService: ClientContactsService,\n ) {\n super(gridService, cdr);\n\n this.filterControl.setValue(this.clientContactsService.onlyActive());\n\n this.filterControl.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n this.clientContactsService.setOnlyActive(this.filterControl.value);\n });\n }\n}\n","
    \n
    \n \n \n {{ 'shared2.actions.create' | translate }}\n \n\n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ClientDealsSettings implements BaseSettings {\n public readonly name = 'ClientDealsSettings';\n version: number;\n onlyActive: boolean;\n\n getDefault(): ClientDealsSettings {\n return {\n version: 1,\n onlyActive: true,\n } as ClientDealsSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ClientDealsService } from 'src/app/clients/card/client-deals/core/client-deals.service';\nimport { DEALS_LIST } from 'src/app/deals/model/deal.list';\n\n@Component({\n selector: 'tmt-client-deals',\n templateUrl: './client-deals.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ClientDealsService,\n SavingQueueService,\n { provide: VIEW_NAME, useValue: 'clientDeals' },\n { provide: LIST, useValue: DEALS_LIST },\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ClientDealsComponent {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public clientDealsService: ClientDealsService,\n private clientCardService: ClientCardService,\n ) {\n this.clientDealsService.load();\n\n this.clientCardService.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.clientDealsService.load());\n }\n}\n","\n","import { DestroyRef, inject, Injectable, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { ClientDealsToolbarComponent } from 'src/app/clients/card/client-deals/toolbar/client-deals-toolbar.component';\nimport { Deal } from 'src/app/deals/model/deal.model';\nimport { DealCreateModalComponent } from 'src/app/deals/creation/deal-create-modal.component';\nimport { ClientDealsSettings } from 'src/app/clients/card/client-deals/client-deals-settings';\nimport {\n GridColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Injectable()\nexport class ClientDealsService {\n public formArray: UntypedFormArray;\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n sorting: true,\n selectionType: SelectionType.row,\n toolbar: ClientDealsToolbarComponent,\n commands: [\n {\n name: 'create',\n handlerFn: () => this.createClientDeal(),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) => !!formGroup,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteDeal(formGroup.value.id),\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteDeal(formGroup.value.id),\n },\n ],\n };\n /** Set whether to display only active deals */\n public onlyActive = signal(true);\n\n private dealCollection: Collection;\n private clientDealsSettings: ClientDealsSettings;\n\n private get clientId(): string {\n return this.clientCardService.clientId;\n }\n\n private readonly clientCardService = inject(ClientCardService);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly dataService = inject(DataService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly gridService = inject(GridService);\n private readonly listService = inject(ListService);\n private readonly localConfigService = inject(LocalConfigService);\n private readonly modal = inject(NgbModal);\n private readonly navigationService = inject(NavigationService);\n private readonly notificationService = inject(NotificationService);\n private readonly stateService = inject(StateService);\n private readonly fb = inject(UntypedFormBuilder);\n\n constructor() {\n this.loadSettings();\n this.dealCollection = this.dataService.collection('Deals');\n this.formArray = this.fb.array([]);\n this.gridOptions.view = this.listService.getGridView();\n\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed())\n .subscribe((o: Order) => this.orderChanged(o));\n }\n\n /** Loads client deals. */\n public load(): void {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query = this.buildQuery();\n\n this.dealCollection\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (deals: Deal[]) => {\n this.processDeals(deals);\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n }\n\n /**\n * Sets onlyActive property and reloads data\n *\n * @param onlyActive indicator to show active or all entities.\n */\n public setOnlyActive(onlyActive: boolean): void {\n this.onlyActive.set(onlyActive);\n this.setConfig(onlyActive);\n this.load();\n }\n\n /**\n * Sets onlyActive setting.\n *\n * @param onlyActive indicator to show active or all entities.\n */\n private setConfig(onlyActive: boolean): void {\n this.clientDealsSettings.onlyActive = onlyActive;\n this.localConfigService.setConfig(\n ClientDealsSettings,\n this.clientDealsSettings,\n );\n }\n\n /** Loads onlyActive setting */\n private loadSettings(): void {\n this.clientDealsSettings =\n this.localConfigService.getConfig(ClientDealsSettings);\n this.onlyActive.set(this.clientDealsSettings.onlyActive);\n }\n\n /** Adding a new row to the deal table. */\n private createClientDeal(): void {\n const modalRef = this.modal.open(DealCreateModalComponent);\n\n (modalRef.componentInstance as DealCreateModalComponent).organizationId =\n this.clientId;\n\n modalRef.result.then(\n (entity: Deal) => {\n this.stateService.go('deal', {\n entityId: entity.id,\n routeMode: RouteMode.continue,\n navigation:\n this.navigationService.selectedNavigationItem?.name ??\n 'clients.allDeals',\n });\n },\n () => null,\n );\n }\n\n /**\n * Deletes deal.\n *\n * @param dealId id of deleting deal.\n */\n private deleteDeal(dealId: string): void {\n this.dealCollection\n .entity(dealId)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.onDealDeleted(dealId);\n this.notificationService.successLocal('shared.deleteCompleted');\n },\n error: (error: Exception) =>\n this.notificationService.error(error.message),\n });\n }\n\n /**\n * Handles post-deletion logic for a deal.\n *\n * @param dealId id of deleting deal.\n */\n private onDealDeleted(dealId: string): void {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === dealId,\n );\n if (index > -1) {\n this.formArray.controls.splice(index, 1);\n }\n const groupForSelection =\n this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null;\n\n this.gridService.selectGroup(groupForSelection as UntypedFormGroup);\n this.gridService.detectChanges();\n }\n\n /** Opens view configuration dialog. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n\n /**\n * Processes loaded deals and updates the form array.\n *\n * @param deals loaded deals.\n */\n private processDeals(deals: Deal[]): void {\n deals.forEach((deal: Deal) => {\n const group = this.listService.getFormGroupForRow(deal);\n group\n .get('managerControl')\n ?.patchValue(deal?.manager, { emitEvent: false });\n group\n .get('modifiedByControl')\n ?.patchValue(deal?.modifiedBy, { emitEvent: false });\n group\n .get('createdByControl')\n ?.patchValue(deal?.createdBy, { emitEvent: false });\n group\n .get('sourceControl')\n ?.patchValue(deal?.source, { emitEvent: false });\n group\n .get('resolutionControl')\n ?.patchValue(deal?.resolution, { emitEvent: false });\n group.disable({ emitEvent: false });\n this.formArray.push(group);\n });\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n private getOrderBy(): string {\n let sortingColumnName = this.gridService.order.column || 'name';\n const direction = this.gridService.order.reverse ? 'desc' : 'asc';\n\n const column: GridColumn = this.listService.allColumns.find(\n (column) => column.name === sortingColumnName,\n );\n\n if (\n column &&\n (column.type === GridColumnType.SelectControl ||\n column.type === GridColumnType.UserControl ||\n column.type === GridColumnType.State)\n ) {\n sortingColumnName = `${sortingColumnName.replace('Control', '')}/name`;\n }\n\n return `${sortingColumnName} ${direction}`;\n }\n\n /**\n * Builds OData deals query.\n * @returns OData deals query object.\n */\n private buildQuery(): any {\n const listQuery = this.listService.getODataQuery(0, 1);\n\n const query: any = {\n select: listQuery.select,\n expand: listQuery.expand,\n filter: { organizationId: { type: 'guid', value: this.clientId } },\n orderBy: this.getOrderBy(),\n };\n\n this.customFieldService.enrichQuery(query, 'Deal');\n\n if (this.onlyActive()) {\n query.filter.isActive = true;\n }\n\n return query;\n }\n\n /**\n * Updates the order of the deal view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n private orderChanged(order: Order): void {\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.load();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ClientDealsService } from 'src/app/clients/card/client-deals/core/client-deals.service';\n\n@Component({\n selector: 'tmt-client-deals-toolbar',\n templateUrl: './client-deals-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ClientDealsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public filterControl = new UntypedFormControl(false);\n\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n private clientDealsService: ClientDealsService,\n ) {\n super(gridService, cdr);\n\n this.filterControl.setValue(this.clientDealsService.onlyActive());\n\n this.filterControl.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n this.clientDealsService.setOnlyActive(this.filterControl.value);\n });\n }\n}\n","
    \n
    \n \n \n {{ 'shared2.actions.create' | translate }}\n \n\n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Inject,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectFilterService } from 'src/app/projects/list/project-filter/project-filter.service';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { PROJECT_LIST } from 'src/app/shared/lists/project.list';\nimport { ClientCardService } from '../client-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { tap } from 'rxjs';\n\n@Component({\n selector: 'tmt-client-legal',\n templateUrl: './client-legal.component.html',\n styleUrls: ['./client-legal.component.scss'],\n providers: [\n { provide: VIEW_NAME, useValue: 'client' },\n { provide: LIST, useValue: PROJECT_LIST },\n { provide: FilterService, useClass: ProjectFilterService },\n EntityListService,\n ListService,\n GridService,\n SavingQueueService,\n ],\n standalone: false,\n})\nexport class ClientLegalComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n public loading = signal(false);\n public isNotSavedIndicator = signal(false);\n\n public readonly propagationMode = PropagationMode;\n\n public form = this.fb.group({\n name: null,\n taxNumber: [\n null,\n [\n Validators.minLength(10),\n Validators.maxLength(10),\n Validators.pattern('^[0-9]*$'),\n ],\n ],\n registrationNumber: null,\n headcount: null,\n income: null,\n lastAutoUpdated: null,\n additionalInformation: null,\n });\n isNewEntity: boolean;\n collection = this.dataService.collection('OrganizationLegal');\n\n constructor(\n @Inject('entityId') public entityId: string,\n private savingQueueService: SavingQueueService,\n private dataService: DataService,\n private fb: FormBuilder,\n private service: ClientCardService,\n private notification: NotificationService,\n ) {\n this.load();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.load());\n\n const taxNumberControl = this.form.controls['taxNumber'];\n this.form.controls['taxNumber'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.savingQueueService.addToQueue(\n this.entityId,\n this.collection\n .entity(this.entityId)\n .patch({ taxNumber: taxNumberControl.value })\n .pipe(\n tap(() => {\n if (this.form.valid) {\n this.form.markAsPristine();\n }\n }),\n ),\n );\n });\n }\n\n /** Updates legal information via Dadata service by Tax number. */\n public updateViaDadata() {\n if (this.form.invalid) {\n return;\n }\n\n this.savingQueueService.save().then(() => {\n this.collection\n .entity(this.entityId)\n .action('UpdateViaDadata')\n .execute()\n .subscribe({\n next: () => {\n this.load();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n });\n }\n\n private load() {\n this.loading.set(true);\n this.savingQueueService.save().then(() => {\n if (this.form.invalid) {\n this.isNotSavedIndicator.set(true);\n return;\n }\n this.isNotSavedIndicator.set(false);\n\n this.collection\n .entity(this.entityId)\n .get()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (legal: any) => {\n this.form.patchValue(legal as any, { emitEvent: false });\n this.loading.set(false);\n },\n error: (error: Exception) => {\n if (error.code == Exception.BtEntityNotFoundException.code) {\n this.isNewEntity = true;\n } else {\n this.notification.error(error.message);\n }\n this.loading.set(false);\n },\n });\n });\n }\n}\n","\n\n\n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n\n \n {{ 'shared.empty' | translate }}\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { TrendsKpiService } from 'src/app/shared/components/features/overview/trends-kpi/core/trends-kpi.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-client-overview-analysis',\n templateUrl: './client-overview-analysis.component.html',\n providers: [TrendsKpiService],\n standalone: false,\n})\nexport class ClientOverviewAnalysisComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n constructor(\n public service: ClientCardService,\n private trendsKpiService: TrendsKpiService,\n ) {}\n\n private reload() {\n this.trendsKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ClientOverviewAnalysisComponent } from 'src/app/clients/card/client-overview/client-overview-analysis/client-overview-analysis.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ClientOverviewAnalysisComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'client.overview.analysis',\n url: '/analysis',\n component: ClientOverviewAnalysisComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ClientOverviewAnalysisModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-client-overview-kpi',\n templateUrl: './client-overview-kpi.component.html',\n standalone: false,\n})\nexport class ClientOverviewKpiComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n public service: ClientCardService,\n private overviewKpiService: OverviewKpiService,\n ) {}\n\n private reload() {\n this.overviewKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { ClientOverviewKpiComponent } from 'src/app/clients/card/client-overview/client-overview-kpi/client-overview-kpi.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ClientOverviewKpiComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'client.overview.kpi',\n url: '/kpi',\n component: ClientOverviewKpiComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n ],\n})\nexport class ClientOverviewKpiModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-client-overview',\n templateUrl: './client-overview.component.html',\n standalone: false,\n})\nexport class ClientOverviewComponent {}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ClientOverviewComponent } from 'src/app/clients/card/client-overview/client-overview.component';\nimport { ClientOverviewKpiModule } from 'src/app/clients/card/client-overview/client-overview-kpi/client-overview-kpi.module';\nimport { ClientOverviewAnalysisModule } from 'src/app/clients/card/client-overview/client-overview-analysis/client-overview-analysis.module';\n\n@NgModule({\n declarations: [ClientOverviewComponent],\n imports: [\n CommonModule,\n SharedModule,\n ClientOverviewKpiModule,\n ClientOverviewAnalysisModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'client.overview',\n url: '/overview',\n component: ClientOverviewComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n redirectTo: 'client.overview.kpi',\n resolve: [\n {\n token: 'entityType',\n resolveFn: () => 'client',\n },\n ],\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ClientOverviewModule {}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ClientCardService } from '../client-card.service';\nimport { PnlService } from 'src/app/shared-features/pnl/pnl.service';\n\n@Component({\n selector: 'wp-client-pnl',\n templateUrl: './client-pnl.component.html',\n providers: [PnlService],\n standalone: false,\n})\nexport class ClientPnlComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n private reloadListener: Subscription;\n\n constructor(\n private pnlService: PnlService,\n private service: ClientCardService,\n ) {}\n\n ngOnInit(): void {\n this.reloadListener = this.service.reloadTab$.subscribe(() => {\n this.pnlService.reload();\n });\n }\n\n ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n }\n}\n","\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectFilterService } from 'src/app/projects/list/project-filter/project-filter.service';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { PROJECT_LIST } from 'src/app/shared/lists/project.list';\nimport { ClientCardService } from '../client-card.service';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-client-projects',\n templateUrl: './client-projects.component.html',\n styleUrls: ['./client-projects.component.scss'],\n providers: [\n { provide: VIEW_NAME, useValue: 'client' },\n { provide: LIST, useValue: PROJECT_LIST },\n { provide: FilterService, useClass: ProjectFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ClientProjectsComponent implements OnInit {\n @Input() entityId: string;\n client: Organization;\n reloadListener: any;\n\n constructor(\n private service: ClientCardService,\n private entityListService: EntityListService,\n ) {}\n\n ngOnInit() {\n this.entityListService.contextFilter = [\n {\n project: {\n organizationId: { type: 'guid', value: this.entityId },\n },\n },\n ];\n\n this.reloadListener = this.service.reloadTab$.subscribe(() =>\n this.entityListService.reload(),\n );\n\n this.service.client$.subscribe((client) => (this.client = client));\n }\n}\n","\n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n signal,\n DestroyRef,\n viewChild,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { LogService } from 'src/app/core/log.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { urlValidator } from 'src/app/shared/validators/url';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { emailValidator } from 'src/app/shared/validators/email';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\n\n@Component({\n selector: 'tmt-client-settings-modal',\n templateUrl: './client-settings-modal.component.html',\n providers: [ClientCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ClientSettingsModalComponent {\n public phone = viewChild('phone');\n\n public readonly isSaving = signal(false);\n\n public form: UntypedFormGroup;\n public readonly propagationMode = PropagationMode;\n\n private get formRawValue(): Partial {\n return this.form.getRawValue();\n }\n\n public readonly clientCardService = inject(ClientCardService);\n\n private readonly logService = inject(LogService);\n private readonly ngbActiveModal = inject(NgbActiveModal);\n private readonly destroyRef = inject(DestroyRef);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly fb = inject(UntypedFormBuilder);\n private readonly notificationService = inject(NotificationService);\n\n constructor() {\n this.form = this.fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n manager: [null, [Validators.required]],\n billingEqualPost: [false],\n billingAddress: this.fb.group({\n address: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n city: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n postIndex: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n state: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n }),\n postAddress: this.fb.group({\n address: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n city: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n postIndex: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n state: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n }),\n contact: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n contactEmail: ['', emailValidator()],\n phone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n site: ['', urlValidator()],\n });\n\n this.customFieldService.enrichFormGroup(this.form, 'Organization');\n\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'Organization',\n );\n\n this.form\n .get('postAddress')\n .valueChanges.pipe(\n filter(() => this.form.get('billingEqualPost').value),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.form\n .get('billingAddress')\n .patchValue(this.form.get('postAddress').value, {\n emitEvent: false,\n });\n });\n\n this.form\n .get('billingEqualPost')\n .valueChanges.pipe(takeUntilDestroyed())\n .subscribe(() => this.setAddressesControlsState());\n }\n\n /** Creates new client. */\n public create(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n this.logService.debug('Saving client entity...');\n\n const clientData: Partial = Object.assign(\n {},\n this.formRawValue,\n {\n managerId: this.formRawValue['manager'].id || null,\n },\n );\n delete clientData['manager'];\n\n this.clientCardService.clientCollection\n .insert(clientData)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response: Organization) => {\n this.notificationService.successLocal(\n 'projects.clients.settings.messages.created',\n );\n this.isSaving.set(false);\n this.ngbActiveModal.close(response);\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Closes modal window. */\n public cancel(): void {\n this.ngbActiveModal.dismiss('cancel');\n }\n\n /** Disable or enable addresses controls depending on billingEqualPost value. */\n private setAddressesControlsState(): void {\n if (this.form.get('billingEqualPost').value) {\n this.form.get('billingAddress').disable({ emitEvent: false });\n\n this.form\n .get('billingAddress')\n .patchValue(this.form.get('postAddress').value, {\n emitEvent: false,\n });\n } else {\n this.form.get('billingAddress').enable({ emitEvent: false });\n }\n }\n}\n","
    \n
    \n

    \n {{ 'projects.clients.settings.newClient' | translate }}\n

    \n\n \n
    \n
    \n
      \n
    • \n {{ 'projects.clients.settings.tabs.main' | translate }}\n \n
      \n
      \n
      \n \n \n
      \n\n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n \n
      \n
      \n
      \n\n
      \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n\n
      \n \n \n
      \n
      \n
      \n\n \n
      \n
    • \n
    • \n {{ 'projects.clients.settings.tabs.addresses' | translate }}\n \n
      \n
      \n \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n \n\n
      \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n\n
      \n \n \n
      \n
      \n
      \n\n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n ChangeDetectionStrategy,\n inject,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { ClientSettingsService } from 'src/app/clients/card/client-settings/client-settings.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Component({\n selector: 'tmt-client-settings',\n templateUrl: './client-settings.component.html',\n styleUrl: './client-settings.component.scss',\n providers: [SavingQueueService, ClientSettingsService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ClientSettingsComponent {\n public phone = viewChild('phone');\n\n public readonly propagationMode = PropagationMode;\n\n public readonly clientSettingsService = inject(ClientSettingsService);\n public readonly appService = inject(AppService);\n\n private readonly clientCardService = inject(ClientCardService);\n private readonly messageService = inject(MessageService);\n private readonly savingQueueService = inject(SavingQueueService);\n\n constructor() {\n this.clientSettingsService.load();\n\n this.clientCardService.reloadTab$\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n if (\n this.clientSettingsService.form.dirty ||\n this.savingQueueService.isSaving\n ) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => this.clientSettingsService.load(),\n () => null,\n );\n } else {\n this.clientSettingsService.load();\n }\n });\n }\n}\n","\n\n\n\n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n @if (appService.getCustomFields('Organization').length) {\n
    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n }\n
    \n\n","import {\n computed,\n DestroyRef,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { emailValidator } from 'src/app/shared/validators/email';\nimport { urlValidator } from 'src/app/shared/validators/url';\n\n@Injectable()\nexport class ClientSettingsService {\n private readonly _isLoading = signal(false);\n public readonly isLoading = computed(this._isLoading);\n\n public form: UntypedFormGroup;\n\n public get formRawValue(): Partial {\n return this.form.getRawValue();\n }\n\n private readonly clientCardService = inject(ClientCardService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly savingQueueService = inject(SavingQueueService);\n private readonly notificationService = inject(NotificationService);\n private readonly fb = inject(UntypedFormBuilder);\n\n constructor() {\n this.form = this.fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n manager: [null, [Validators.required]],\n billingEqualPost: [false],\n billingAddress: this.fb.group({\n address: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n city: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n postIndex: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n state: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n }),\n postAddress: this.fb.group({\n address: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n city: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n postIndex: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n state: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n }),\n contact: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n contactEmail: ['', emailValidator()],\n phone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n site: ['', urlValidator()],\n });\n\n this.customFieldService.enrichFormGroup(this.form, 'Organization');\n\n this.form\n .get('billingEqualPost')\n .valueChanges.pipe(takeUntilDestroyed())\n .subscribe(() => this.setAddressesControlsState());\n\n this.clientCardService.client$\n .pipe(takeUntilDestroyed())\n .subscribe((client: Organization) => {\n this.form.patchValue({ name: client.name }, { emitEvent: false });\n });\n\n this.savingQueueService.save$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.clientCardService.updateClient(this.formRawValue);\n this.setAddressesControlsState();\n this.form.markAsPristine();\n });\n this.savingQueueService.error$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load();\n });\n\n this.subscribeToFormChanges();\n }\n\n /** Loads client's data. */\n public async load(): Promise {\n await this.savingQueueService.save();\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this._isLoading.set(true);\n\n const query = this.buildQuery();\n\n this.clientCardService\n .loadClient(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (client: Organization) => {\n this.form.patchValue(client, { emitEvent: false });\n if (!this.clientCardService.currentClient?.editAllowed) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n this.setAddressesControlsState();\n this._isLoading.set(false);\n },\n error: (error: Exception) => {\n this._isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Builds OData query for organization entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n const query = {\n select: [\n 'name',\n 'phone',\n 'site',\n 'code',\n 'contact',\n 'contactEmail',\n 'description',\n 'postAddress',\n 'billingAddress',\n 'billingEqualPost',\n ],\n expand: [{ manager: { select: ['name', 'id'] } }],\n };\n\n this.customFieldService.enrichQuery(query, 'Organization');\n\n return query;\n }\n\n /** Disable or enable addresses controls depending on billingEqualPost value. */\n private setAddressesControlsState(): void {\n if (this.form.get('billingEqualPost').value) {\n this.form.get('billingAddress').disable({ emitEvent: false });\n\n this.form\n .get('billingAddress')\n .patchValue(this.form.get('postAddress').value, {\n emitEvent: false,\n });\n } else {\n this.form.get('billingAddress').enable({ emitEvent: false });\n }\n }\n\n /** Subscribes to form changes and process form data. */\n private subscribeToFormChanges?(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.form.invalid) {\n return;\n }\n\n const clientData: Partial = Object.assign(\n {},\n this.formRawValue,\n {\n managerId: this.formRawValue['manager'].id || null,\n },\n );\n delete clientData['manager'];\n\n this.savingQueueService.addToQueue(\n this.clientCardService.clientId,\n this.clientCardService.clientCollection\n .entity(this.clientCardService.clientId)\n .patch(clientData),\n );\n });\n }\n}\n","import { Component, OnInit, Input, DestroyRef, inject } from '@angular/core';\nimport {\n UntypedFormBuilder,\n Validators,\n UntypedFormArray,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n ClientTariff,\n ClientTariffRate,\n} from 'src/app/clients/shared/client-tariff.model';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { currencyValueRequiredValidator } from 'src/app/shared/validators/currency-value-required';\nimport { AppService } from 'src/app/core/app.service';\nimport { ClientTariffService } from '../client-tariff.service';\nimport { uniqByKey } from 'src/app/shared/validators/uniq-by-key';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport _ from 'lodash';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-client-tariff-modal',\n templateUrl: './client-tariff-modal.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class ClientTariffModalComponent implements OnInit {\n @Input() clientTariffId: string;\n @Input() entityId: string;\n @Input() tariff: ClientTariff;\n @Input() organizationId: string;\n @Input() readonly = false;\n\n public isRateDateNotUniq: boolean;\n public isSaving: boolean;\n public isLoading: boolean;\n public currencies: Currency[];\n\n public form = this.fb.group({\n id: null,\n name: ['', Validators.required],\n description: null,\n isActive: true,\n rates: this.fb.array([]),\n organizationId: null,\n initialRate: this.fb.group({\n id: [Guid.generate()],\n currencyId: [null],\n effectiveDate: [null],\n value: {\n value: 0,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n },\n }),\n });\n\n public get rates(): UntypedFormArray {\n return this.form.controls['rates'] as UntypedFormArray;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private app: AppService,\n private clientTariffService: ClientTariffService,\n ) {}\n\n public ngOnInit(): void {\n this.rates.addValidators(() => uniqByKey(this.rates, 'effectiveDate'));\n this.rates.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isRateDateNotUniq = this.rates.hasError('notUniq');\n });\n\n if (this.tariff) {\n this.form.patchValue(this.tariff);\n\n this.tariff.rates.forEach((rate: ClientTariffRate) => {\n const code = this.clientTariffService.currencies.find(\n (currency) => currency.id === rate.currencyId,\n )?.alpha3Code;\n if (!rate.effectiveDate) {\n this.form.get('initialRate').patchValue({\n value: {\n value: rate.value,\n currencyCode: code,\n },\n id: rate.id,\n });\n } else {\n (this.form.get('rates') as UntypedFormArray).insert(\n 0,\n this.getTariffLinesFormGroup({\n value: {\n value: rate.value,\n currencyCode: code,\n },\n effectiveDate: rate.effectiveDate,\n id: rate.id,\n }),\n );\n }\n });\n }\n if (this.readonly) {\n this.form.disable();\n }\n }\n\n /** Saves changes and closes modal. */\n public ok(): void {\n this.form.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.isRateDateNotUniq) {\n this.notification.warningLocal(\n 'projects.clients.card.tariffs.modal.messages.uniqueDate',\n );\n\n return;\n }\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n\n return;\n }\n\n this.isSaving = true;\n\n const formData = this.form.getRawValue();\n const rates: ClientTariffRate[] = formData.rates\n .concat([formData.initialRate])\n .map((rateValue: any) => ({\n id: rateValue.id,\n currencyId:\n this.clientTariffService.currencies.find(\n (currency) => currency.alpha3Code === rateValue.value?.currencyCode,\n )?.id ?? this.app.session.configuration.baseCurrencyCode,\n value: rateValue.value?.value ?? 0,\n effectiveDate: rateValue.effectiveDate,\n }));\n\n if (formData.initValue) {\n this.rates.push(formData.initValue);\n }\n\n if (!formData.organizationId) {\n formData.organizationId = this.organizationId;\n }\n if (!formData.id) {\n formData.id = Guid.generate();\n }\n\n const clientTariff: ClientTariff = {\n id: formData.id,\n name: formData.name,\n description: formData.description,\n isActive: formData.isActive,\n organizationId: formData.organizationId,\n rates,\n };\n\n if (this.tariff) {\n this.updateTariff(clientTariff);\n } else {\n this.createTariff(clientTariff);\n }\n }\n\n /** Closes dialog and dismisses changes. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /**\n * Gets header for transitionFormGroup.\n *\n * @returns Tariff header.\n */\n public getHeader(): string {\n return this.tariff?.name\n ? this.tariff?.name\n : 'projects.clients.card.tariffs.modal.header';\n }\n\n private getTariffLinesFormGroup(\n rate?: Partial | any,\n ): UntypedFormGroup {\n return this.fb.group({\n id: rate?.id ?? Guid.generate(),\n currencyId: rate?.currencyId,\n value: [\n rate?.value ?? {\n value: 0,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n },\n currencyValueRequiredValidator(),\n ],\n effectiveDate: [rate?.effectiveDate, Validators.required],\n });\n }\n\n private updateTariff(data: Partial): void {\n this.data\n .collection('OrganizationTariffs')\n .entity(this.clientTariffId)\n .update(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'projects.clients.card.tariffs.modal.messages.saved',\n );\n this.activeModal.close(data);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n private createTariff(data: Partial): void {\n this.data\n .collection('OrganizationTariffs')\n .insert(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'projects.clients.card.tariffs.modal.messages.created',\n );\n this.activeModal.close(data);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n}\n","\n\n\n
    \n

    {{ getHeader() | translate }}

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n\n
    \n \n \n {{\n 'projects.clients.card.tariffs.modal.props.rateOnStart.help' | translate\n }}\n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n\n","import { DestroyRef, Injectable, inject } from '@angular/core';\n\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { ClientTariffsSettings } from '../../shared/client-tariff.settings';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { Observable, Subject, forkJoin } from 'rxjs';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { ClientTariff } from '../../shared/client-tariff.model';\nimport { CurrencyValue } from 'src/app/shared/models/entities/settings/currency-value.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport _ from 'lodash';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport {\n TariffRate,\n TariffRatesHelper,\n} from 'src/app/shared/modules/tariff-rates/helpers/tariff-rates.helper';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n@Injectable()\nexport class ClientTariffService {\n public currencies: Currency[] = [];\n public settings: ClientTariffsSettings;\n public reloadData$ = new Subject();\n public formArray: UntypedFormArray = this.fb.array([]);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private localConfigService: LocalConfigService,\n private gridService: GridService,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private currenciesService: CurrenciesService,\n private notification: NotificationService,\n private savingQueueService: SavingQueueService,\n ) {\n this.settings = localConfigService.getConfig(ClientTariffsSettings);\n this.savingQueueService.delayDuration = 0;\n }\n\n /**\n * Saves clientTariffSettings.\n *\n * @param value clientTariffSettings.\n */\n public saveSettings(value: Partial): void {\n this.settings = Object.assign(this.settings, value);\n this.localConfigService.setConfig(ClientTariffsSettings, this.settings);\n }\n\n /**\n * Loads data.\n *\n * @param clientTariffId clientId.\n * @param organizationId organizationId.\n */\n public load(clientTariffId: string, organizationId: string): void {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query: any = {\n select: [\n 'name',\n 'isActive',\n 'description',\n 'id',\n 'tariff',\n 'organizationId',\n ],\n expand: {\n rates: {\n select: ['id', 'value', 'effectiveDate', 'currencyId', 'expiryDate'],\n },\n },\n filter: {},\n };\n\n if (this.settings.onlyActive) {\n query.filter.isActive = true;\n }\n\n const tariffRequest = this.data\n .collection('Organizations')\n .entity(clientTariffId)\n .collection('OrganizationTariffs')\n .query(query);\n\n forkJoin({\n tariffs: tariffRequest,\n currencies: this.currenciesService.currencies$,\n }).subscribe({\n next: (data) => {\n this.currencies = data.currencies as Currency[];\n\n data.tariffs = data.tariffs.sort(naturalSort('name'));\n data.tariffs.forEach((tariff) => {\n const group = this.getTariffsFormGroup(tariff, organizationId);\n this.formArray.push(group);\n });\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n }\n\n private getCurrencyValue(rate: TariffRate): CurrencyValue {\n return {\n value: rate?.value ?? null,\n currencyCode:\n this.currencies.find((c) => c.id === rate?.currencyId)?.alpha3Code ??\n null,\n };\n }\n\n private getTariffsFormGroup(\n tariff: ClientTariff,\n organizationId: string,\n ): UntypedFormGroup {\n const actualTariff = TariffRatesHelper.getActualRate(tariff.rates ?? []);\n const group = this.fb.group({\n name: [\n tariff.name,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n description: tariff.description,\n isActive: tariff.isActive,\n id: tariff.id,\n organizationId,\n value: this.getCurrencyValue(actualTariff),\n expiryDate: actualTariff?.expiryDate,\n effectiveDate: actualTariff?.effectiveDate,\n currencyId: [tariff.rates.map((rate) => rate.currencyId)],\n rates: [tariff.rates],\n });\n group.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (group.invalid) {\n this.notification.warningLocal('shared.messages.entityNotSaved');\n return;\n }\n\n const tariff = group.getRawValue();\n\n tariff.rates.forEach((rate) => delete rate.expiryDate);\n const clientTariff: ClientTariff = {\n id: tariff.id,\n name: tariff.name,\n description: tariff.description,\n isActive: tariff.isActive,\n organizationId: tariff.organizationId,\n rates: tariff.rates,\n };\n\n this.savingQueueService.addToQueue(\n group.value.id,\n this.updateTariff(clientTariff, true, tariff.id),\n );\n });\n\n return group;\n }\n\n private updateTariff(\n data: Partial,\n isTariffExist: boolean,\n tariffId: string,\n ): Observable {\n return isTariffExist\n ? this.data\n .collection('OrganizationTariffs')\n .entity(tariffId)\n .update(data)\n : this.data.collection('OrganizationTariffs').insert(data);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n inject,\n} from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ClientTariffService } from '../client-tariff.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-client-tariffs-toolbar',\n templateUrl: './client-tariffs-toolbar.component.html',\n standalone: false,\n})\nexport class ClientTariffsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public isActiveControl = new UntypedFormControl(false);\n\n constructor(\n public notification: NotificationService,\n private clientTariffService: ClientTariffService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n public override ngOnInit(): void {\n super.ngOnInit();\n this.isActiveControl.setValue(\n this.clientTariffService.settings.onlyActive,\n {\n emitEvent: false,\n },\n );\n\n this.isActiveControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.clientTariffService.saveSettings({ onlyActive: value });\n this.clientTariffService.reloadData$.next();\n });\n }\n}\n","
    \n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n ViewChild,\n inject,\n DestroyRef,\n Injector,\n} from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ClientCardService } from '../client-card.service';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport _ from 'lodash';\nimport { ClientTariffService } from './client-tariff.service';\nimport { ClientTariffsToolbarComponent } from './client-tariffs-toolbar/client-tariffs-toolbar.component';\nimport { ClientTariffModalComponent } from './client-tariff-modal/client-tariff-modal.component';\nimport { CLIENT_TARIFF_LIST } from './models/client-tariff.list';\nimport { ClientTariff } from '../../shared/client-tariff.model';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Component({\n selector: 'tmt-client-tariffs',\n templateUrl: './client-tariffs.component.html',\n providers: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CLIENT_TARIFF_LIST },\n ListService,\n GridService,\n ClientTariffService,\n SavingQueueService,\n ],\n standalone: false,\n})\nexport class ClientTariffsComponent implements OnInit {\n @Input() entityId: string;\n public readonly = false;\n public formArray: UntypedFormArray = this.fb.array([]);\n\n public gridOptions: GridOptions = {\n sorting: false,\n toolbar: ClientTariffsToolbarComponent,\n clientTotals: true,\n resizableColumns: true,\n selectionType: SelectionType.range,\n commands: [\n {\n name: 'add',\n handlerFn: () => this.add(),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'edit',\n handlerFn: (id) =>\n this.edit(\n id,\n this.gridService.selectedGroup$.getValue()?.getRawValue(),\n ),\n allowedFn: (id) => id,\n },\n {\n name: 'delete',\n handlerFn: (id) => this.delete(id),\n allowedFn: (id) => id && !this.readonly,\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.edit(formGroup.value.id, formGroup.getRawValue()),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.delete(formGroup.value.id),\n allowedFn: () => !this.readonly,\n },\n ],\n view: this.listService.getGridView(),\n };\n\n private destroyRef = inject(DestroyRef);\n private organizationId: string;\n\n constructor(\n private service: ClientCardService,\n private listService: ListService,\n private gridService: GridService,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private modal: NgbModal,\n public clientTariffService: ClientTariffService,\n private injector: Injector,\n ) {}\n\n public ngOnInit(): void {\n this.service.client$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((client: Organization) => {\n this.readonly = !client.tariffsEditAllowed;\n this.organizationId = client.id;\n });\n\n this.service.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.clientTariffService.load(this.entityId, this.organizationId),\n );\n this.clientTariffService.load(this.entityId, this.organizationId);\n\n this.clientTariffService.reloadData$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.clientTariffService.load(this.entityId, this.organizationId),\n );\n }\n\n private add(): void {\n const modalRef = this.modal.open(ClientTariffModalComponent, {\n injector: this.injector,\n });\n const instance = modalRef.componentInstance as ClientTariffModalComponent;\n\n instance.entityId = this.entityId;\n instance.organizationId = this.organizationId;\n\n modalRef.result.then(\n () => {\n this.service.reloadTab();\n },\n () => null,\n );\n }\n\n private edit(clientTariffId: string, tariff: ClientTariff): void {\n const ref = this.modal.open(ClientTariffModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as ClientTariffModalComponent;\n instance.clientTariffId = clientTariffId;\n instance.tariff = tariff;\n instance.readonly = this.readonly;\n\n ref.result.then(\n () => this.clientTariffService.load(this.entityId, this.organizationId),\n () => null,\n );\n }\n\n private delete(organizationTariffId: string): void {\n this.data\n .collection('OrganizationTariffs')\n .entity(organizationTariffId)\n .delete()\n .subscribe({\n next: () => {\n this.service.reloadTab();\n this.notification.successLocal(\n 'projects.clients.card.tariffs.modal.messages.deleted',\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n complete: () => {},\n });\n }\n\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.clientTariffService.load(this.entityId, this.organizationId);\n },\n () => null,\n );\n }\n}\n","\n","import {\n GridColumnType,\n GridCurrencyColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const CLIENT_TARIFF_LIST: List = {\n name: 'clientTariffs',\n version: 4,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'value',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'expiryDate',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 250,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.StringControl,\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'value',\n type: GridColumnType.Currency,\n header: 'projects.clients.card.tariffs.columns.value.header',\n hint: 'projects.clients.card.tariffs.columns.value.hint',\n fixedWidth: true,\n forceCellUpdating: true,\n },\n {\n name: 'effectiveDate',\n type: GridColumnType.Date,\n header: 'shared.columns.effectiveDate.title',\n hint: 'shared.columns.effectiveDate.hint',\n forceCellUpdating: true,\n },\n {\n name: 'expiryDate',\n header: 'shared.columns.expiryDate.title',\n hint: 'shared.columns.expiryDate.hint',\n type: GridColumnType.Date,\n forceCellUpdating: true,\n },\n {\n name: 'description',\n type: GridColumnType.StringControl,\n header: 'shared.props.description',\n hint: 'shared.props.description',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.BooleanControl,\n forceCellUpdating: true,\n },\n ],\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { META_ENTITY_TYPE, LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { ClientListComponent } from './list/client-list.component';\nimport { CLIENT_LIST } from 'src/app/shared/lists/client.list';\nimport { ClientFilterComponent } from './list/client-filter/client-filter.component';\nimport { ClientCardComponent } from './card/client-card.component';\nimport { ClientProjectsComponent } from './card/client-projects/client-projects.component';\nimport { ClientPnlComponent } from './card/client-pnl/client-pnl.component';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\nimport { ClientTariffsComponent } from './card/client-tariffs/client-tariffs.component';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { ClientOverviewModule } from 'src/app/clients/card/client-overview/client-overview.module';\nimport { ClientTariffsToolbarComponent } from './card/client-tariffs/client-tariffs-toolbar/client-tariffs-toolbar.component';\nimport { ClientTariffModalComponent } from './card/client-tariffs/client-tariff-modal/client-tariff-modal.component';\nimport { ProjectTaskSharedModule } from '../projects/card/project-tasks/shared/project-tasks-shared.module';\nimport { TariffRatesModule } from '../shared/modules/tariff-rates/tariff-rates.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { ClientContactsComponent } from 'src/app/clients/card/client-contact/client-contacts.component';\nimport { ClientContactsToolbarComponent } from 'src/app/clients/card/client-contact/toolbar/client-contacts-toolbar.component';\nimport { InteractionsComponent } from 'src/app/shared/modules/interactions/interactions.component';\nimport { InteractionsModule } from 'src/app/shared/modules/interactions/interactions.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { ClientLegalComponent } from 'src/app/clients/card/client-legal/client-legal.component';\nimport { ClientSettingsModalComponent } from 'src/app/clients/card/client-settings/client-settings-modal/client-settings-modal.component';\nimport { ClientSettingsComponent } from 'src/app/clients/card/client-settings/client-settings.component';\nimport { AccordionStateDirective } from 'src/app/shared/directives/accordion-state/accordion-state.directive';\nimport { ClientDealsComponent } from 'src/app/clients/card/client-deals/client-deals.component';\nimport { ClientDealsToolbarComponent } from 'src/app/clients/card/client-deals/toolbar/client-deals-toolbar.component';\n\n@NgModule({\n declarations: [\n ClientListComponent,\n ClientCardComponent,\n ClientFilterComponent,\n ClientProjectsComponent,\n ClientSettingsModalComponent,\n ClientTariffsComponent,\n ClientTariffsToolbarComponent,\n ClientTariffModalComponent,\n ClientPnlComponent,\n ClientContactsComponent,\n ClientContactsToolbarComponent,\n ClientDealsComponent,\n ClientDealsToolbarComponent,\n ClientLegalComponent,\n ClientSettingsComponent,\n ],\n imports: [\n TariffRatesModule,\n GridModule,\n CommonModule,\n SharedModule,\n PnlModule,\n ResourceRolesModule,\n ClientOverviewModule,\n EntityListComponent,\n InteractionsModule,\n AccordionStateDirective,\n UIRouterModule.forChild({\n states: [\n {\n name: 'clients',\n url: '/clients/{view:viewName}?{navigation}&{route}',\n component: ClientListComponent,\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'projects.allClients',\n routeMode: null,\n view: null,\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: CLIENT_LIST },\n { provide: META_ENTITY_TYPE, useValue: 'Organization' },\n ],\n },\n {\n name: 'client',\n url: '/clients/{entityId:guid}?{navigation}&{route}',\n dynamic: true,\n params: {\n navigation: 'projects.allClients',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n component: ClientCardComponent,\n redirectTo: 'client.overview',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'client.projects',\n url: '/projects',\n component: ClientProjectsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.settings',\n url: '/settings',\n component: ClientSettingsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.tariffs',\n url: '/tariffs',\n component: ClientTariffsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.pnl',\n url: '/pnl',\n component: ClientPnlComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.contacts',\n url: '/contacts',\n component: ClientContactsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n resolve: [\n {\n token: 'organizationId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'client.deals',\n url: '/deals',\n component: ClientDealsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.interactions',\n url: '/interactions',\n component: InteractionsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'client.legal',\n url: '/legal',\n component: ClientLegalComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ProjectTaskSharedModule,\n ],\n})\nexport class ClientsModule {}\n","import { Component, Input, Inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-client-filter',\n templateUrl: './client-filter.component.html',\n standalone: false,\n})\nexport class ClientFilterComponent implements FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: [null],\n manager: [null],\n });\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public readonly service: FilterService,\n private readonly fb: UntypedFormBuilder,\n ) {\n this.service.resetValues$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ClientFilterComponent } from './client-filter.component';\n\n@Injectable()\nexport class ClientFilterService extends FilterService {\n public override component: Type = ClientFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = true;\n public override placeholder = 'projects.clients.list.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n };\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n const textFilters = this.getTextFilter(\n [\n 'organization/name',\n 'organization/code',\n 'organization/site',\n 'organization/legal/name',\n ],\n text,\n );\n textFilters.or['organization/legal/taxNumber'] = parseInt(text);\n textFilters.or['organization/legal/registrationNumber'] = parseInt(text);\n\n result.push(textFilters);\n }\n\n if (this.values.manager) {\n result.push({\n organization: {\n managerId: { type: 'guid', value: this.values.manager.id },\n },\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n period: null,\n manager: null,\n view: this.views[0],\n };\n }\n}\n","import { Component, OnInit, DestroyRef } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ClientFilterService } from './client-filter/client-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ClientSettingsModalComponent } from 'src/app/clients/card/client-settings/client-settings-modal/client-settings-modal.component';\nimport { Organization } from 'src/app/shared/models/entities/projects/organization.model';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-client-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ClientFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ClientListComponent implements OnInit {\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private destroyRef: DestroyRef,\n private navigationService: NavigationService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private ngbModal: NgbModal,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'projects.clients.list.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Organization',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('client', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'Organization',\n PermissionType.Modify,\n );\n });\n }\n\n private create = () => {\n this.ngbModal\n .open(ClientSettingsModalComponent, { size: 'lg' })\n .result.then(\n (client: Organization) => {\n this.stateService.go('client', {\n entityId: client.id,\n routeMode: RouteMode.continue,\n navigation:\n this.navigationService.selectedNavigationItem?.name ??\n 'projects.allClients',\n });\n },\n () => null,\n );\n };\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ClientTariffsSettings implements BaseSettings {\n public readonly name = 'ClientTariffsSettings';\n public version: number;\n public onlyActive: boolean;\n\n public getDefault(): ClientTariffsSettings {\n return {\n version: 1,\n onlyActive: false,\n } as ClientTariffsSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ContactCardService } from 'src/app/contacts/card/contact-card.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'tmt-contact-card',\n templateUrl: './contact-card.component.html',\n providers: [ContactCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n host: {\n class: 'data-not-saved-indicator-to-top',\n },\n})\nexport class ContactCardComponent implements OnInit {\n @Input() entityId: string;\n\n public tabs: TabLink[] = [];\n\n public readonly stateService = inject(StateService);\n public readonly contactCardService = inject(ContactCardService);\n public readonly navigationService = inject(NavigationService);\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n\n public ngOnInit(): void {\n this.contactCardService.load();\n this.actionPanelService.reset();\n this.actionPanelService.setHasAutosave(true);\n\n this.tabs.push({\n header: 'shared2.groups.profile',\n state: 'contact.profile',\n });\n\n if (\n this.appService.checkEntityPermission('Interaction', PermissionType.Read)\n ) {\n this.tabs.push({\n header: 'shared2.groups.interactions',\n state: 'contact.interactions',\n });\n }\n }\n}\n","\n\n\n\n@if (contactCardService.state() === 'Ready') {\n
    \n
    \n @if (contactCardService.contact().email) {\n
    \n {{ 'shared2.props.email' | translate }}: \n
    \n

    \n {{ contactCardService.contact().email }}\n \n

    \n
    \n
    \n }\n\n @if (contactCardService.contact().phone) {\n
    \n {{ 'shared2.props.phone' | translate }}: \n
    \n

    \n \n {{ contactCardService.contact().phone | tmtPhone }}\n \n

    \n
    \n
    \n }\n\n @if (contactCardService.contact().mobilePhone) {\n
    \n {{ 'shared2.props.mobilePhone' | translate }}: \n
    \n

    \n \n {{ contactCardService.contact().mobilePhone | tmtPhone }}\n \n

    \n
    \n
    \n }\n\n @if (contactCardService.contact().organization) {\n
    \n
    {{ 'shared2.props.organization' | translate }}:
    \n
    \n {{ contactCardService.contact().organization?.name }}\n
    \n
    \n }\n
    \n
    \n\n
    \n
      \n @for (tab of tabs; track tab) {\n
    • \n {{ tab.header | translate }}\n
    • \n }\n
    \n \n
    \n}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport _ from 'lodash';\nimport { Contact } from 'src/app/contacts/model/contact.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class ContactCardService {\n private readonly _state = signal(CardState.Loading);\n public readonly state = computed(this._state);\n private readonly _contactName = signal(null);\n public readonly contactName = computed(this._contactName);\n private readonly _contact = signal(null);\n public readonly contact = computed(this._contact);\n\n public contactCollection: Collection;\n\n private readonly dataService = inject(DataService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly navigationService = inject(NavigationService);\n private readonly notificationService = inject(NotificationService);\n\n constructor(\n @Inject('entityId')\n public contactId: string,\n ) {\n this.contactCollection = this.dataService.collection('Contacts');\n }\n\n /** Loads contact data and processes it. */\n public load(): void {\n const query = this.buildQuery();\n\n this.loadContact(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (contact: Contact) => {\n this._contact.set(contact);\n this._contactName.set(contact.name);\n this._state.set(CardState.Ready);\n this.navigationService.addRouteSegment({\n id: this.contactId,\n title: contact.name,\n });\n },\n error: (error: Exception) => {\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this._state.set(CardState.Error);\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Loads contact's data.\n *\n * @param query OData query for loading contact data.\n * @returns Contact entity.\n */\n public loadContact(query: any): Observable {\n return this.contactCollection.entity(this.contactId).get(query);\n }\n\n /** Updates current contact data. */\n public updateContact(contact: Partial): void {\n const newContact: Partial = {};\n\n Object.keys(this._contact()).forEach((key) => {\n if (contact[key] && !_.isEqual(contact[key], this._contact()[key])) {\n newContact[key] = contact[key];\n }\n });\n\n this._contactName.update(() => `${contact.firstName} ${contact.lastName}`);\n this._contact.update(() => Object.assign({}, this._contact(), newContact));\n }\n\n /**\n * Builds OData query for contact entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n return {\n select: ['id', 'name', 'email', 'mobilePhone', 'phone', 'editAllowed'],\n expand: [{ organization: { select: ['id', 'name'] } }],\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ContactCardService } from 'src/app/contacts/card/contact-card.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ContactProfileService } from 'src/app/contacts/card/contact-profile/contact-profile.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-contact-profile',\n templateUrl: './contact-profile.component.html',\n styleUrls: ['./contact-profile.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SavingQueueService, ContactProfileService],\n standalone: false,\n})\nexport class ContactProfileComponent {\n public phone = viewChild('phone');\n public mobilePhone = viewChild('mobilePhone');\n\n public readonly propagationMode = PropagationMode;\n\n public readonly appService = inject(AppService);\n public readonly contactCardService = inject(ContactCardService);\n public readonly contactProfileService = inject(ContactProfileService);\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly messageService = inject(MessageService);\n private readonly savingQueueService = inject(SavingQueueService);\n\n constructor() {\n this.contactProfileService.load();\n\n this.actionPanelService.reload$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (\n this.contactProfileService.form.dirty ||\n this.savingQueueService.isSaving\n ) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => this.contactProfileService.load(),\n () => null,\n );\n } else {\n this.contactProfileService.load();\n }\n });\n }\n}\n","\n\n\n\n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n @if (appService.getCustomFields('Contact').length) {\n
    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n }\n
    \n\n","import {\n computed,\n DestroyRef,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ContactCardService } from 'src/app/contacts/card/contact-card.service';\nimport { Contact } from 'src/app/contacts/model/contact.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Deal } from 'src/app/deals/model/deal.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { emailValidator } from 'src/app/shared/validators/email';\n\n@Injectable()\nexport class ContactProfileService {\n private readonly _isLoading = signal(false);\n public readonly isLoading = computed(this._isLoading);\n\n public form: UntypedFormGroup;\n\n public get formRawValue(): Partial {\n return this.form.getRawValue();\n }\n\n private readonly contactCardService = inject(ContactCardService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly savingQueueService = inject(SavingQueueService);\n private readonly notificationService = inject(NotificationService);\n private readonly fb = inject(UntypedFormBuilder);\n\n constructor() {\n this.form = this.fb.group({\n firstName: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n lastName: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n patronymic: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n organizationId: null,\n roleId: null,\n position: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n email: ['', emailValidator()],\n mobilePhone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n phone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n isActive: null,\n });\n\n this.customFieldService.enrichFormGroup(this.form, 'Contact');\n\n this.savingQueueService.save$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.contactCardService.updateContact(this.formRawValue);\n this.form.markAsPristine();\n });\n this.savingQueueService.error$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load();\n });\n\n this.subscribeToFormChanges();\n }\n\n /** Loads contact. */\n public async load(): Promise {\n await this.savingQueueService.save();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this._isLoading.set(true);\n\n const query = this.buildQuery();\n\n this.contactCardService\n .loadContact(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (contact: Contact) => {\n this.form.patchValue(contact, { emitEvent: false });\n this._isLoading.set(false);\n if (!contact.editAllowed) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n this.form.controls.organizationId.disable({\n emitEvent: false,\n });\n },\n error: (error: Exception) => {\n this._isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Builds OData query for contact entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n const query = {\n select: [\n 'firstName',\n 'lastName',\n 'patronymic',\n 'organizationId',\n 'roleId',\n 'position',\n 'description',\n 'email',\n 'mobilePhone',\n 'phone',\n 'editAllowed',\n 'isActive',\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'Contact');\n\n return query;\n }\n\n /** Subscribes to form changes and saves form data. */\n private subscribeToFormChanges?(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.form.invalid) {\n return;\n }\n\n const contactData: Partial = this.formRawValue;\n\n this.savingQueueService.addToQueue(\n this.contactCardService.contactId,\n this.contactCardService.contactCollection\n .entity(this.contactCardService.contactId)\n .patch(contactData),\n );\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n signal,\n OnInit,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { emailValidator } from 'src/app/shared/validators/email';\n\n@Component({\n selector: 'tmt-contact-create',\n templateUrl: './contact-create.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, SharedModule],\n})\nexport class ContactCreateModalComponent implements OnInit {\n @Input() organizationId: string | undefined;\n\n public isSaving = signal(false);\n public creationForm: UntypedFormGroup = this.fb.group({\n firstName: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n lastName: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n patronymic: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n organizationId: [null, Validators.required],\n roleId: null,\n position: ['', [Validators.maxLength(Constants.formNameMaxLength)]],\n email: ['', emailValidator()],\n mobilePhone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n phone: [\n '',\n [\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n });\n\n constructor(\n private readonly activeModal: NgbActiveModal,\n private readonly customFieldService: CustomFieldService,\n private readonly dataService: DataService,\n private readonly fb: UntypedFormBuilder,\n private readonly navigationService: NavigationService,\n private readonly notificationService: NotificationService,\n private readonly stateService: StateService,\n ) {}\n\n public ngOnInit(): void {\n this.customFieldService.enrichFormGroup(this.creationForm, 'Contact');\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.creationForm,\n 'Contact',\n );\n }\n\n /** Modal submit handler. */\n public ok(): void {\n if (this.organizationId) {\n this.creationForm.get('organizationId').patchValue(this.organizationId);\n }\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n const data = {\n firstName: this.creationForm.value.firstName,\n lastName: this.creationForm.value.lastName,\n name: `${this.creationForm.value.firstName} ${this.creationForm.value.lastName}`,\n patronymic: this.creationForm.value.patronymic,\n organizationId: this.creationForm.value.organizationId,\n position: this.creationForm.value.position,\n roleId: this.creationForm.value.roleId,\n email: this.creationForm.value.email,\n phone: this.creationForm.value.phone,\n mobilePhone: this.creationForm.value.mobilePhone,\n };\n\n this.customFieldService.assignValues(\n data,\n this.creationForm.getRawValue(),\n 'Contact',\n );\n\n this.dataService\n .collection('Contacts')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'components.createContactModalComponent.messages.created',\n );\n\n if (!this.organizationId) {\n this.stateService.go('contact', {\n entityId: response.id,\n routeMode: RouteMode.continue,\n navigation: this.navigationService.selectedNavigationItem?.name,\n });\n }\n this.isSaving.set(false);\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.createContactModalComponent.props.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (!organizationId) {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n\n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { CONTACTS_LIST } from 'src/app/contacts/model/contacts.list';\nimport { ContactCardComponent } from 'src/app/contacts/card/contact-card.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ContactProfileComponent } from 'src/app/contacts/card/contact-profile/contact-profile.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { InteractionsComponent } from 'src/app/shared/modules/interactions/interactions.component';\nimport { InteractionsModule } from 'src/app/shared/modules/interactions/interactions.module';\nimport { ContactCreateModalComponent } from 'src/app/contacts/contact-create/contact-create.component';\nimport { PhonePipe } from 'src/app/shared/pipes/phone.pipe';\nimport { ContactListFilterComponent } from 'src/app/contacts/list/contact-list-filter/contact-list-filter.component';\nimport { ContactListComponent } from 'src/app/contacts/list/contact-list.component';\nimport { AccordionStateDirective } from 'src/app/shared/directives/accordion-state/accordion-state.directive';\n\n@NgModule({\n declarations: [\n ContactListComponent,\n ContactListFilterComponent,\n ContactCardComponent,\n ContactProfileComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n BaseSharedModule,\n CommentsModule,\n EntityListComponent,\n InteractionsModule,\n ContactCreateModalComponent,\n PhonePipe,\n AccordionStateDirective,\n UIRouterModule.forChild({\n states: [\n {\n name: 'contacts',\n url: '/contacts?{navigation}&{route}',\n component: ContactListComponent,\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CONTACTS_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'contact',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'contact',\n url: '/contacts/{entityId:guid}?{navigation}&{route}',\n dynamic: true,\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: ContactCardComponent,\n redirectTo: 'contact.profile',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'contact.profile',\n url: '/profile',\n component: ContactProfileComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'contact.interactions',\n url: '/interactions',\n component: InteractionsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ContactsModule {}\n","import {\n Component,\n Input,\n Inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { ContactListFilterService } from 'src/app/contacts/list/contact-list-filter/contact-list-filter.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-contact-list-filter',\n templateUrl: './contact-list-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ContactListFilterComponent implements FilterDetails {\n @Input() public values: any;\n\n public detailsForm = this.fb.group({\n organization: null,\n role: null,\n });\n public readonly filterInstance = this\n .filterService as ContactListFilterService;\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public readonly filterService: FilterService,\n private readonly fb: UntypedFormBuilder,\n ) {\n this.filterService.resetValues$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n @if (filterInstance.hasClient) {\n
    \n \n \n \n
    \n }\n\n
    \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { ContactListFilterComponent } from 'src/app/contacts/list/contact-list-filter/contact-list-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class ContactListFilterService extends FilterService {\n public override component: Type = ContactListFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = true;\n public override placeholder =\n 'components.contactListFilterService.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n };\n\n public hasClient = true;\n public filterFields = [\n 'name',\n 'position',\n 'organization/name',\n 'role/name',\n 'email',\n 'mobilePhone',\n 'phone',\n ];\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push(\n this.getTextFilter(this.filterFields, this.getClearText(text)),\n );\n }\n\n if (this.values.organization) {\n result.push({\n organizationId: {\n type: 'guid',\n value: this.values.organization.id,\n },\n });\n }\n\n if (this.values.role) {\n result.push({\n roleId: { type: 'guid', value: this.values.role.id },\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n role: null,\n organization: null,\n view: this.views[0],\n };\n }\n}\n","import {\n Component,\n OnInit,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { ContactCreateModalComponent } from 'src/app/contacts/contact-create/contact-create.component';\nimport { ContactListFilterService } from 'src/app/contacts/list/contact-list-filter/contact-list-filter.service';\n\n@Component({\n selector: 'tmt-contact-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: ContactListFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ContactListComponent implements OnInit {\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly entityListService = inject(EntityListService);\n private readonly gridService = inject(GridService);\n private readonly modalService = inject(NgbModal);\n private readonly stateService = inject(StateService);\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.contactListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Contact',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('contact', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((rows: UntypedFormGroup[]) => {\n this.actionPanelService.action('card').isShown = rows?.length === 1;\n });\n }\n\n private create(): void {\n this.modalService.open(ContactCreateModalComponent);\n }\n}\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const CONTACTS_LIST: List = {\n version: 3,\n name: 'contact',\n customFieldEntityType: 'Contact',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n isRequired: true,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 160,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 160,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'email',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'mobilePhone',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'phone',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'organization',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'role',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'position',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'contact.profile',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'email',\n header: 'shared2.props.email',\n hint: 'shared2.props.email',\n type: GridColumnType.Email,\n },\n {\n name: 'mobilePhone',\n header: 'shared2.props.mobilePhone',\n hint: 'shared2.props.mobilePhone',\n type: GridColumnType.Phone,\n },\n {\n name: 'phone',\n header: 'shared2.props.phone',\n hint: 'shared2.props.phone',\n type: GridColumnType.Phone,\n },\n {\n name: 'organization',\n header: 'shared2.props.organization',\n hint: 'shared2.props.organization',\n type: GridColumnType.String,\n },\n {\n name: 'role',\n header: 'shared2.props.role',\n hint: 'shared2.props.role',\n type: GridColumnType.String,\n },\n {\n name: 'position',\n header: 'shared2.props.position',\n hint: 'shared2.props.position',\n type: GridColumnType.String,\n },\n {\n name: 'description',\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'firstName',\n field: 'firstName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'lastName',\n field: 'lastName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'patronymic',\n field: 'patronymic',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'email',\n field: 'email',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'mobilePhone',\n field: 'mobilePhone',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'phone',\n field: 'phone',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'organization',\n field: 'organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'role.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'position',\n field: 'position',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'Contacts',\n};\n","import { inject, Injectable } from '@angular/core';\nimport { TransitionService } from '@uirouter/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport _ from 'lodash';\nimport {\n MenuAction,\n MenuActionsGroup,\n SubAction,\n} from 'src/app/shared/models/inner/menu-action';\nimport {\n LifecycleInfo,\n LifecycleInfoWorkflowStartAction,\n LifecycleInfoWorkflowTaskAction,\n} from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport { DefaultActionType } from 'src/app/shared/components/chrome/action-panel/model/default-actions.model';\n\n/** Action panel service. */\n@Injectable({\n providedIn: 'root',\n})\nexport class ActionPanelService {\n public defaultGroupName = 'default';\n public workflowTaskActionsGroupName = 'workflowTaskActions';\n public workflowCancelActionGroupName = 'workflowCancelAction';\n\n private runSubject = new Subject();\n\n /** Emits menu action when user click \"execute\". */\n public run$ = this.runSubject.asObservable();\n\n private updatedSubject = new Subject();\n public updated$ = this.updatedSubject.asObservable();\n\n private actionsVisibilitySubject = new BehaviorSubject(true);\n public actionsVisibility$ = this.actionsVisibilitySubject.asObservable();\n\n /** Flat actions list.\n * Will be included in the default group. */\n public actions: MenuAction[] = [];\n\n /** Group of additional actions. */\n public additionalActions: SubAction[] = [];\n private additionalUpdatedSubject = new Subject();\n public additionalUpdated$ = this.additionalUpdatedSubject.asObservable();\n\n /** Groups of actions. */\n private _groups: MenuActionsGroup[] = [];\n\n /** Action groups. */\n public get groups(): MenuActionsGroup[] {\n return this._groups.concat([\n { name: this.defaultGroupName, actions: this.actions },\n ]);\n }\n\n /** Свойство для восстановления кнопки перезагрузки после смены маршрута. */\n onSuccessTransitionEvent: any;\n\n private readonly transitionService = inject(TransitionService);\n\n /** Управление перезагрузкой форм. */\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n private hasReloaderSubject = new BehaviorSubject(true);\n public hasReloader$ = this.hasReloaderSubject.asObservable();\n\n /** Индикация автосохранения форм. */\n private hasAutosaveSubject = new BehaviorSubject(false);\n public hasAutosave$ = this.hasAutosaveSubject\n .asObservable()\n .pipe(filter((el) => !!el));\n\n /** Сброс всех действий. */\n public reset() {\n this.actions.length = 0;\n this._groups.length = 0;\n this.additionalActions.length = 0;\n this.setHasAutosave(false);\n this.actionsVisibilitySubject.next(true);\n this.propagate();\n }\n\n /**\n * Sets action buttons in the action-panel.\n *\n * @param actions actions for action-panel.\n */\n public set(actions: MenuAction[]): void {\n this._groups.length = 0;\n\n actions.forEach((action) => {\n if (action.actions) {\n action.actions = _.sortBy(action.actions, 'group');\n }\n });\n\n this.actions = actions;\n this.propagate();\n }\n\n /** Set additional actions in the action-panel. */\n public setAdditional(actions: SubAction[]): void {\n this.additionalActions.length = 0;\n this.additionalActions = _.sortBy(actions, 'group');\n this.additionalUpdatedSubject.next();\n }\n\n /** Add additional action in the action-panel. */\n public addAdditional(action: SubAction): void {\n this.additionalActions = _.sortBy(\n this.additionalActions.concat([action]),\n 'group',\n );\n this.additionalUpdatedSubject.next();\n }\n\n /** Проталкивание обновления до UI. */\n public propagate() {\n this.updatedSubject.next(this.groups);\n }\n\n /** Возвращает конфигурацию действия. */\n private getAction(name: string): MenuAction {\n const flatActions: MenuAction[] = this.groups.flatMap((g) =>\n g.actions.flatMap((a) =>\n a.actions\n ? (a.actions.filter((x) => _.isObject(x)) as MenuAction[]).concat([a])\n : [a],\n ),\n );\n const action = flatActions.filter((a) => a.name === name)[0];\n\n if (!action) {\n return this.additionalActions.find((a) => a.name === name);\n }\n\n return action;\n }\n\n /** Возвращает объект управления действием. */\n public action(name: string): MenuActionMethods {\n const action: MenuAction = this.getAction(name);\n\n return new MenuActionMethods(action, this);\n }\n\n /** Установить Lifecycle действия. */\n public registerLifecycle(lifecycleInfo: LifecycleInfo) {\n this.resetLifecycle();\n\n const getPanelActionForWorkflowTaskAction = (\n workflowAction: LifecycleInfoWorkflowTaskAction,\n ): MenuAction => ({\n hint: workflowAction.label,\n title: workflowAction.label,\n isBusy: false,\n iconClass: workflowAction.iconClass\n ? `bi ${workflowAction.iconClass}`\n : null,\n\n isVisible: true,\n name: 'performTask',\n lifecycle: {\n actionType: 'performTask',\n taskId: workflowAction.taskId,\n workflowActionId: workflowAction.id,\n },\n });\n\n const getPanelActionForWorkflowStartAction = (\n workflowAction: LifecycleInfoWorkflowStartAction,\n ): MenuAction => ({\n hint: workflowAction.label,\n title: workflowAction.label,\n isBusy: false,\n iconClass: workflowAction.iconClass\n ? `bi ${workflowAction.iconClass}`\n : 'bi bi-play-circle',\n isVisible: true,\n name: `startWorkflow`,\n lifecycle: {\n actionType: 'startWorkflow',\n workflowId: workflowAction.workflowId,\n },\n });\n\n // Create workflow group.\n if (\n lifecycleInfo.workflowTaskActions?.length ||\n lifecycleInfo.workflowStartActions?.length\n ) {\n const wfGroup: MenuActionsGroup = {\n name: this.workflowTaskActionsGroupName,\n actions: [],\n };\n this._groups.push(wfGroup);\n\n lifecycleInfo.workflowStartActions =\n lifecycleInfo.workflowStartActions.reverse();\n\n if (lifecycleInfo.workflowStartActions.length > 1) {\n const actions: MenuAction[] = [];\n\n lifecycleInfo.workflowStartActions.forEach((workflowAction) => {\n const action = getPanelActionForWorkflowStartAction(workflowAction);\n actions.splice(0, 0, action);\n });\n\n wfGroup.actions.push({\n title: 'shared.workflow.actionGroup',\n hint: 'shared.workflow.actionGroup',\n iconClass: 'bi bi-play-circle',\n actions,\n isBusy: false,\n isVisible: true,\n isDropDown: true,\n name: 'workflow-actions',\n });\n } else {\n lifecycleInfo.workflowStartActions\n .reverse()\n .forEach((workflowAction) => {\n const action = getPanelActionForWorkflowStartAction(workflowAction);\n wfGroup.actions.splice(0, 0, action);\n });\n }\n\n lifecycleInfo.workflowTaskActions.reverse().forEach((workflowAction) => {\n const action = getPanelActionForWorkflowTaskAction(workflowAction);\n wfGroup.actions.splice(0, 0, action);\n });\n }\n\n // Create cancel action.\n if (lifecycleInfo.canCancelWorkflow) {\n const wfGroup: MenuActionsGroup = {\n name: this.workflowCancelActionGroupName,\n actions: [],\n };\n const cancelLabel =\n lifecycleInfo.cancelLabel ?? 'shared.workflow.cancelWorkflow';\n wfGroup.actions.push({\n hint: cancelLabel,\n title: cancelLabel,\n isBusy: false,\n iconClass: 'bi bi-stop-circle',\n isVisible: true,\n name: 'cancelWorkflow',\n lifecycle: {\n actionType: 'cancelWorkflow',\n },\n });\n\n this._groups.push(wfGroup);\n }\n\n this.propagate();\n }\n\n /** Сбросить все Workflow действия. */\n public resetLifecycle() {\n this._groups = this.groups.filter(\n (a) =>\n a.name !== this.workflowTaskActionsGroupName &&\n a.name !== this.workflowCancelActionGroupName &&\n a.name !== this.defaultGroupName,\n );\n this.propagate();\n }\n\n /** Выполнить метод действия. */\n public runAction(action: MenuAction) {\n this.runSubject.next(action);\n action.handler && action.handler();\n }\n\n /** Передает команду на перезагрузку для form header*/\n public reload(): void {\n this.reloadSubject.next();\n }\n\n /** Скрывает reloader до смены навигации */\n public hideReloader() {\n this.hasReloaderSubject.next(false);\n this.onSuccessTransitionEvent = this.transitionService.onSuccess({}, () => {\n this.hasReloaderSubject.next(true);\n this.onSuccessTransitionEvent();\n });\n }\n\n /** Устанавливает значение hasAutosave для наличия индикатора сохранения*/\n public setHasAutosave(hasAutosave: boolean): void {\n this.hasAutosaveSubject.next(hasAutosave);\n }\n\n /** Set the value of whether or not to show actions. */\n public setVisibility(value: boolean): void {\n this.actionsVisibilitySubject.next(value);\n }\n\n /**\n * Get a default action based on the specified action type and parameters.\n *\n * @param actionType - The type of default action to create ('create', 'card', 'delete', or 'setAsDefault').\n * @param params - Optional partial MenuAction object to override default values.\n * @returns A MenuAction object with default values set based on the action type, potentially overridden by params.\n */\n public getDefaultAction(\n actionType: DefaultActionType,\n params: Partial,\n ): MenuAction {\n const action: MenuAction = {\n name: '',\n title: '',\n hint: '',\n iconClass: '',\n isBusy: false,\n isVisible: false,\n handler: null,\n };\n action.name = actionType;\n action.title = 'shared2.actions.' + actionType;\n switch (actionType) {\n case 'create':\n action.iconClass = 'bi bi-plus-lg bi-15';\n break;\n }\n if (params) {\n Object.keys(params).forEach((key) => (action[key] = params[key]));\n }\n if (!action.hint) {\n action.hint = action.title;\n }\n return action;\n }\n}\n\nexport class MenuActionMethods {\n constructor(\n private action: MenuAction,\n private service: ActionPanelService,\n ) {}\n\n /** Статус \"занято\" (выполняет задачу). */\n public get isBusy(): boolean {\n return this.action ? this.action.isBusy : false;\n }\n public set isBusy(value: boolean) {\n if (value) {\n this.start();\n } else {\n this.stop();\n }\n }\n\n /** Статус \"показывать\". */\n public get isShown(): boolean {\n return this.action ? this.action.isVisible : false;\n }\n\n public set isShown(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /** Показать действие. */\n show() {\n if (this.action) {\n this.action.isVisible = true;\n this.service.propagate();\n }\n }\n\n /** Выполнить действие. */\n execute() {\n if (this.action) {\n this.action.handler();\n this.service.propagate();\n }\n }\n\n /** Скрыть действие. */\n hide() {\n if (this.action) {\n this.action.isVisible = false;\n this.service.propagate();\n }\n }\n\n /** \"Запустить\" действие (показать индикатор). */\n start() {\n if (this.action) {\n this.action.isBusy = true;\n this.service.propagate();\n }\n }\n\n /** \"Остановить\" действие. */\n stop() {\n if (this.action) {\n this.action.isBusy = false;\n this.service.propagate();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ReportSourceDescription } from '../analytics/shared/models/source-description/report-source-description.model';\nimport { shareReplay, map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { DataService } from './data.service';\nimport { Dictionary } from '../shared/models/dictionary';\nimport { Exception } from '../shared/models/exception';\nimport { LogService } from './log.service';\nimport { cloneDeep } from 'lodash';\nimport { NotificationService } from './notification.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AnalyticsService {\n public sourceDescriptionsObservables: Dictionary<\n Observable\n > = {};\n\n constructor(\n private data: DataService,\n private log: LogService,\n private notification: NotificationService,\n ) {}\n\n public getSourceDescription(\n sourceName: string,\n ): Observable {\n if (this.sourceDescriptionsObservables[sourceName]) {\n return this.sourceDescriptionsObservables[sourceName];\n }\n\n const observable = new Observable((subscriber) => {\n this.log.debug(`Loading source description for ${sourceName}...`);\n\n this.data\n .collection('ReportSources')\n .entity(`'${sourceName}'`)\n .get()\n .subscribe({\n next: (description) => {\n subscriber.next(description);\n },\n error: (error: Exception) => {\n this.notification.errorLocal('shared.unknownError');\n subscriber.error(error.message);\n },\n });\n }).pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n this.sourceDescriptionsObservables[sourceName] = observable;\n return observable;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConfig } from '../shared/models/app-config.model';\nimport configData from '../../../config.json';\nimport { merge } from 'lodash';\nimport { environment } from 'src/environments/environment';\n\n/**\n * Сервис предназначен для загрузки конфигурации клиента\n * и предоставления конфигурации через статическое свойство.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AppConfigService {\n /** Конфигурация клиента. */\n static config: AppConfig;\n\n private jsonFile = `/assets/config.json`;\n\n /** Загрузка конфигурации. */\n public load(): Promise {\n if (!environment.onprem) {\n AppConfigService.config = configData;\n return Promise.resolve();\n }\n\n return fetch(this.jsonFile, {\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'ngsw-bypass': 'true',\n },\n })\n .then(\n (response) => response.json(),\n (response: any) => {\n const error = `Could not load file '${\n this.jsonFile\n }': ${JSON.stringify(response)}`;\n console.error(error);\n },\n )\n .then(\n (response: AppConfig) => {\n console.log('Config is loaded.');\n AppConfigService.config = merge(configData ?? {}, response);\n },\n () => null,\n );\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { AppConfigService } from './app-config.service';\nimport { AuthService } from './auth.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PermissionType } from '../shared/models/inner/permission-type.enum';\nimport { ClientProfile } from '../shared/models/session/client-profile.model';\nimport { firstValueFrom, of } from 'rxjs';\nimport { DataService } from './data.service';\nimport { catchError, tap } from 'rxjs/operators';\nimport { DateTime, Settings } from 'luxon';\nimport {\n ClientSession,\n Permission,\n} from '../shared/models/session/client-session.model';\nimport { AppName } from '../shared/globals/app-name';\nimport { RoleName } from '../shared/models/enums/role-name.enum';\nimport { Exception } from '../shared/models/exception';\nimport { LogService } from './log.service';\nimport {\n Feature,\n PRODUCT_FEATURE_MAPPING,\n} from '../shared/models/enums/feature.enum';\nimport { NamedEntity } from '../shared/models/entities/named-entity.model';\nimport { registerLocaleData } from '@angular/common';\nimport { bcp47Normalize } from 'bcp-47-normalize';\nimport { environment } from 'src/environments/environment';\nimport { SavingQueueService } from '../shared/services/saving-queue.service';\nimport { MessageService } from './message.service';\nimport { AutosaveStateService } from '../shared/services/autosave-state.service';\nimport { BlockUIService } from './block-ui.service';\nimport {\n Language,\n LocalString,\n LocalStringHelper,\n} from '../shared/models/enums/language.enum';\nimport { ProductSelectorModalComponent } from 'src/app/shared/components/features/product-selector-modal/product-selector-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport _ from 'lodash';\nimport { LicenseInfo } from 'src/app/shared/models/entities/settings/license-info.model';\nimport { NavigationItemCustom } from 'src/app/shared/models/navigation/navigation';\nimport {\n MetaEntity,\n MetaEntityBaseProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { TransitionService } from '@uirouter/core';\n\n/**\n * Сервис предназначен для инициализации приложения и работы с сессией.\n */\n@Injectable()\nexport class AppService {\n public session: ClientSession;\n public currentCulture: string;\n public clientProfile: ClientProfile;\n public navigationItems: NavigationItemCustom[] = [];\n public serviceWorkerRegistration: any;\n\n private savingQueue: SavingQueueService;\n private _customFields = new Map();\n\n constructor(\n private log: LogService,\n private modal: NgbModal,\n private data: DataService,\n private translate: TranslateService,\n private wpAppConfigService: AppConfigService,\n private wpAuthService: AuthService,\n private zone: NgZone,\n messageService: MessageService,\n autosaveStateService: AutosaveStateService,\n transitionService: TransitionService,\n blockUI: BlockUIService,\n private localStorageService: LocalStorageService,\n ) {\n this.savingQueue = new SavingQueueService(\n messageService,\n autosaveStateService,\n transitionService,\n log,\n blockUI,\n translate,\n );\n\n this.savingQueue.delayDuration = 1000;\n }\n\n /** Resets cache storage, service workers and server session. */\n public resetApp() {\n // Reset cache storage.\n caches.keys().then((keys) => {\n keys.forEach((eachCacheName) => {\n caches.open(eachCacheName).then((eachCache) => {\n console.log(eachCacheName);\n eachCache.keys().then((requests) => {\n requests.forEach((eachRequest) => {\n console.log(eachRequest);\n eachCache.delete(eachRequest);\n });\n });\n });\n });\n });\n\n // Reset service workers.\n navigator.serviceWorker\n .getRegistrations()\n .then((registrations) => {\n for (const registration of registrations) {\n registration.unregister();\n }\n })\n .then(() => {\n this.data.model\n .action('DestroySession')\n .execute()\n .subscribe(() => {\n location.reload();\n });\n });\n }\n\n /**\n * Инициализация приложения.\n * Вызывается при старте приложения до инициализации маршрутизатора и основных сервисов.\n */\n public start(): Promise {\n this.log.log('Application is starting...');\n\n return new Promise((resolve) => {\n this.zone.runOutsideAngular(() => {\n this.wpAppConfigService.load().then(() => {\n this.wpAuthService.init();\n\n // Redirect after Passport Login.\n if (window.location.href.indexOf('/login') !== -1) {\n // Clear exists login.\n window.localStorage.clear();\n }\n\n if (window.location.href.indexOf('auth-callback') !== -1) {\n // Обработать ответ WP Passport или сразу продолжить.\n this.wpAuthService.completeAuthentication().then(\n () => initAuthWorker(),\n () => {\n // Обработка не нужна, будет переадресация на end session.\n },\n );\n } else {\n if (!this.wpAuthService.checkAuthSession()) {\n this.wpAuthService.signinSilent().then(\n () => initAuthWorker(),\n () => {\n // Обработка не нужна, будет переадресация на sign in.\n },\n );\n } else {\n this.wpAuthService.getUser().then((user) => {\n if (!user || user.expired) {\n this.wpAuthService.signinSilent().then(\n () => initAuthWorker(),\n () => {\n // Обработка не нужна, будет переадресация на sing in.\n },\n );\n } else {\n this.wpAuthService.startSilentRenew();\n initAuthWorker();\n }\n });\n }\n }\n\n const initAuthWorker = () =>\n this.registerServiceWorker().then(() => loadSessionAndProfile());\n\n const loadSessionAndProfile = () => {\n Promise.all([\n this.loadSession().then(() => {\n this.translate.addLangs(['en-US', 'ru-RU']);\n\n const cultureCode = bcp47Normalize(this.session.culture);\n\n return Promise.all([\n firstValueFrom(this.translate.use(this.session.language)),\n this.localeInitializer(cultureCode).then(\n () => {\n this.currentCulture = cultureCode;\n },\n () => {\n this.currentCulture = 'en-US';\n },\n ),\n ]).then(() => {\n this.log.log('Language has been loaded.');\n this.changeTimeZone();\n this.changeLocale();\n this.loadHelpScout();\n this.checkTrial();\n this.initCustomFields();\n });\n }),\n this.loadClientProfile(),\n this.loadNavigationItems(),\n ]).then(\n () => {\n this.log.log(\n `Application is started. Build: ${AppConfigService.config.version}. Environment: ${environment.name}.`,\n );\n\n resolve();\n },\n () => null,\n );\n };\n });\n });\n });\n }\n\n /**\n * Loads custom navigation items.\n *\n * @returns Removed items compared to past response or `null`, if error occurred.\n */\n public loadNavigationItems(): Promise {\n return firstValueFrom(\n this.data.model\n .function('GetNavigationItems')\n .get(),\n ).then(\n (response) => {\n this.log.log('Navigations Items has been loaded.');\n\n const removedItems = _.differenceBy(\n this.navigationItems,\n response,\n (item) => `${item.area}.${item.group}.${item.entityId}`,\n );\n\n this.navigationItems = response;\n\n return removedItems;\n },\n () => {\n this.log.error(`Could not load navigation items.`);\n return null;\n },\n );\n }\n\n /** Регистрация Service Worker. */\n private async registerServiceWorker() {\n if (navigator && navigator.serviceWorker) {\n navigator.serviceWorker.getRegistration().then((registration) => {\n if (navigator.serviceWorker.controller === null) {\n // we get here after a ctrl+f5 OR if there was no previous service worker.\n navigator.serviceWorker.ready.then(() => {\n registration.active.postMessage('claimMe');\n });\n }\n });\n\n navigator.serviceWorker.addEventListener('message', (event) => {\n const { action } = event.data;\n const port = event.ports[0];\n\n if (action === 'getAuthTokenHeader') {\n this.wpAuthService\n .getAuthorizationHeaderValue()\n .subscribe((authHeader) => {\n port.postMessage({\n response: authHeader,\n });\n });\n }\n });\n }\n }\n\n /** Загрузка пользовательской сессии. */\n private loadSession(): Promise {\n const sessionEtagStorageKey = 'sessionVersion';\n const session = 'session';\n this.log.log('Session loading...');\n let headers = new HttpHeaders({});\n if (\n this.localStorageService.retrieve(sessionEtagStorageKey) &&\n this.localStorageService.retrieve(session)\n ) {\n headers = headers.set(\n 'If-None-Match',\n this.localStorageService.retrieve(sessionEtagStorageKey),\n );\n }\n return firstValueFrom(\n this.data.model.function('GetSession').getWithHeaders(\n null,\n null,\n {\n $expand: 'configuration/metamodel/entities',\n },\n headers,\n ),\n )\n .then(\n (response: HttpResponse) => {\n this.log.log('Session has been loaded.');\n this.localStorageService.store(session, response.body);\n this.localStorageService.store(\n sessionEtagStorageKey,\n response.headers.get('ETag'),\n );\n this.session = response.body as ClientSession;\n },\n (error: Exception) => {\n let message: string;\n if (error.code === '304') {\n message = 'Session has been cached.';\n this.log.log(message);\n this.session = this.localStorageService.retrieve(session);\n return;\n }\n message = `Session wasn't loaded. ${error.code}: ${error.message}`;\n this.log.error(message);\n },\n )\n .finally(() => this.setSessionTimeZoneOffset());\n }\n\n /** Загрузка клиентского профиля. */\n private loadClientProfile(): Promise {\n return firstValueFrom(\n this.data.model.function('GetClientProfile').get({ clientType: `'web'` }),\n ).then(\n (response: string) => {\n this.log.log('Profile has been loaded.');\n this.parseClientProfile(response);\n },\n () => {\n const error = `Could not load profile.`;\n this.log.error(error);\n },\n );\n }\n\n /** Сохранение клиентского профиля. */\n public saveProfileLazy() {\n const data = JSON.stringify(this.clientProfile);\n\n const action = this.data.model\n .action('UpdateClientProfile')\n .execute({\n clientType: 'web',\n clientProfile: data,\n })\n .pipe(\n catchError((val) => {\n this.log.error(`Client profile wasn't saved!`);\n return of(val);\n }),\n tap(() => {\n this.log.log('Client profile is saved.');\n }),\n );\n\n this.savingQueue.addToQueue('user', action);\n }\n\n public saveProfile(): Promise {\n this.saveProfileLazy();\n return this.savingQueue.save();\n }\n\n /**\n * Gets the current language of the application.\n *\n * @returns The current language as a Language enum value.\n */\n public getLanguage(): Language {\n switch (this.session.language.toLowerCase()) {\n case 'ru-ru':\n return Language.ru;\n case 'ru':\n return Language.ru;\n case 'en-us':\n return Language.en;\n case 'en':\n return Language.en;\n }\n }\n /**\n * Converts a culture code to a backward-compatible Language enum value.\n *\n * @param cultureCode The culture code string to convert (e.g., 'ru-ru', 'en-US').\n * @returns The corresponding Language enum value (Language.ru or Language.en).\n */\n public getBackwardCompatibilityLanguage(cultureCode: string): Language {\n switch (cultureCode.toLowerCase()) {\n case 'ru-ru':\n case 'ru':\n return Language.ru;\n case 'en-us':\n case 'en':\n return Language.en;\n default:\n }\n }\n\n /** Проверка наличия прав на сущность. */\n public checkEntityPermission(\n entityType: string,\n type: PermissionType,\n ): boolean {\n const entityAccess = this.session.entitiesAccess.find(\n (p) => p.entityType === entityType,\n );\n if (entityAccess) {\n switch (type) {\n case PermissionType.Read:\n return entityAccess.viewAllowed;\n case PermissionType.Modify:\n return entityAccess.editAllowed;\n case PermissionType.Delete:\n return entityAccess.deleteAllowed;\n }\n }\n return false;\n }\n\n /** Проверка права на гранулу.\n *\n * @deprecated The method should not be used */\n public checkPermission(\n granularName: string,\n scopeName: string,\n type: PermissionType,\n ): boolean {\n const permission = this.session.permissions.find(\n (p: Permission) =>\n p.granularName === granularName &&\n (!scopeName || p.scopeName === scopeName),\n );\n if (!permission) {\n return false;\n }\n\n switch (type) {\n case PermissionType.Read:\n return permission.viewEnabled;\n case PermissionType.Modify:\n return permission.editEnabled;\n case PermissionType.Delete:\n return permission.deleteEnabled;\n case PermissionType.Execute:\n return permission.actionEnabled;\n }\n }\n\n /** Проверка наличия роли у текущего пользователя. */\n public checkRole(roleName: RoleName) {\n return this.session.roles.includes(roleName);\n }\n\n /** Checks feature availability.\n *\n * @param feature Business module of application\n * @example app.checkFeature(Feature.finance)\n *\n */\n public checkFeature(feature: Feature): boolean {\n return (\n this.session.products?.some((product) =>\n PRODUCT_FEATURE_MAPPING.get(product)?.has(feature),\n ) ?? false\n );\n }\n\n /** Проверка прав на модуль. */\n public checkAppAccess(app: AppName): boolean {\n switch (app) {\n case AppName.My:\n return true;\n case AppName.Team:\n return this.session.roles.includes(RoleName.TeamManager);\n case AppName.Projects:\n return this.session.roles.includes(RoleName.ProjectManager);\n\n case AppName.Resources:\n return (\n this.session.roles.includes(RoleName.ResourceManager) &&\n this.checkFeature(Feature.booking)\n );\n case AppName.Analytics:\n return true;\n case AppName.Clients:\n return (\n this.session.roles.includes(RoleName.ClientManager) &&\n this.checkFeature(Feature.clients)\n );\n case AppName.HelpDesk:\n return environment.production == false;\n case AppName.Billing:\n return (\n this.session.roles.includes(RoleName.BillingManager) &&\n this.checkFeature(Feature.billing)\n );\n\n case AppName.Finance:\n return (\n this.session.roles.includes(RoleName.FinanceManager) &&\n this.checkFeature(Feature.finance)\n );\n case AppName.Settings:\n return this.session.roles.includes(RoleName.Administrator);\n }\n }\n\n /** Парсинг клиентского профиля пользователя. */\n private parseClientProfile(data: string): void {\n const profile = JSON.parse(data);\n\n if (!profile || !profile.version) {\n // TODO Выполнение миграции.\n this.clientProfile = new ClientProfile();\n this.clientProfile.version = '1';\n } else {\n this.clientProfile = profile as ClientProfile;\n }\n }\n\n /**\n * Установка локали.\n * Установка системной локали в AppModule.\n */\n private changeLocale() {\n this.log.log(`Language is ${this.session.language}`);\n Settings.defaultLocale = this.session.culture;\n }\n\n /** Установка часового пояса. */\n private changeTimeZone() {\n this.log.log(`Time zone is ${this.session.timeZone}.`);\n Settings.defaultZone = this.session.timeZone;\n }\n\n /** Checks trial and show settings if it is necessary. */\n private checkTrial() {\n if (\n this.session.configuration.tenantIsInTrial &&\n this.checkRole(RoleName.Administrator)\n ) {\n this.data.model\n .function('GetLicenseInfo')\n .get()\n .subscribe({\n next: (licenseInfo) => {\n if (licenseInfo.products.filter((x) => x.limit > 0).length) {\n return;\n }\n const ref = this.modal.open(ProductSelectorModalComponent, {\n backdrop: false,\n });\n\n const instance =\n ref.componentInstance as ProductSelectorModalComponent;\n instance.licenseProducts = licenseInfo.products;\n },\n error: () => null,\n });\n }\n }\n\n /** Инициализация Help Scout Beacon. */\n private loadHelpScout() {\n if (AppConfigService.config.beacon) {\n const beaconId = AppConfigService.config.beacon[this.session.language];\n\n (window as any).Beacon('init', beaconId);\n\n (window as any).Beacon('identify', {\n name: this.session.user.name,\n email: this.session.user.email,\n });\n }\n }\n\n /** Возвращает список доступных ролей. */\n public getRolesEntities(): NamedEntity[] {\n const roles = [] as NamedEntity[];\n for (const role of Object.keys(RoleName)) {\n if (\n role === RoleName.BillingManager &&\n !this.checkFeature(Feature.billing)\n ) {\n continue;\n }\n\n if (\n role === RoleName.FinanceManager &&\n !this.checkFeature(Feature.finance)\n ) {\n continue;\n }\n\n if (\n role === RoleName.ResourceManager &&\n !this.checkFeature(Feature.booking)\n ) {\n continue;\n }\n\n if (\n role === RoleName.ClientManager &&\n !this.checkFeature(Feature.clients)\n ) {\n continue;\n }\n\n roles.push({\n name: this.translate.instant(`enums.role.${role}`),\n id: role,\n });\n }\n\n return roles;\n }\n\n /**\n * Returns custom fields.\n * @param entityType Entity type.\n */\n public getCustomFields(entityType: string): MetaEntityBaseProperty[] {\n return this._customFields.get(entityType) ?? [];\n }\n\n /**\n * Gets meta entity by name.\n *\n * @param entityName name of entity type.\n * @returns all meta entity properties.\n */\n public getMetaEntity(entityName: string): MetaEntity {\n return this.session.configuration.metamodel.entities.find(\n (entity) => entity.name === entityName,\n );\n }\n\n /**\n * Gets meta entity property related directory Id.\n *\n * @param entityName entity type name.\n * @param propertyName property name.\n * @returns Directory Id.\n */\n public getPropertyRelatedDictionaryId(\n entityName: string,\n propertyName: string,\n ): string | null {\n const entity = this.getMetaEntity(entityName);\n const property = entity?.directoryProperties.find(\n (x) => x.name === propertyName,\n );\n return property?.directoryId;\n }\n\n /**\n * Gets the translated name of the meta entity.\n *\n * @param entityName name of entity type.\n * @returns translated name of the meta entity.\n */\n public getMetaEntityDisplayName(entityName: string): string {\n return this.getTranslate(this.getMetaEntity(entityName).displayNames);\n }\n\n /**\n * Returns property localized name.\n * @param entityName Entity name(type).\n * @param propertyName Property name.\n */\n public getPropertyLocalizationName(\n entityName: string,\n propertyName: string,\n ): string {\n const metaEntity = this.getMetaEntity(entityName);\n const metaEntityProps = [\n ...metaEntity.primitiveProperties,\n ...metaEntity.navigationProperties,\n ...metaEntity.directoryProperties,\n ...metaEntity.complexProperties,\n ];\n\n return this.getTranslate(\n metaEntityProps.find(\n (x: MetaEntityBaseProperty) => x.name === propertyName,\n ).displayNames,\n );\n }\n\n /**\n * Gets translation.\n *\n * @param translates array of LocalString.\n * @returns translation or noTitle if undefined.\n */\n public getTranslate(translates: LocalString[]): string | undefined {\n return (\n LocalStringHelper.getTranslate(translates, this.session.language) ??\n this.translate.instant('shared2.props.noTitle')\n );\n }\n\n private initCustomFields(): void {\n const currentLanguage = this.getLanguage();\n const noTitle = this.translate.instant('shared2.props.noTitle');\n this.session.configuration.metamodel?.entities.forEach((entity) => {\n const primitiveProps = entity.primitiveProperties.filter(\n (x) => x.customFieldId,\n );\n const complexProps = entity.complexProperties.filter(\n (x) => x.customFieldId,\n );\n const navigationProps = entity.navigationProperties.filter(\n (x) => x.customFieldId,\n );\n const directoryProps = entity.directoryProperties.filter(\n (x) => x.customFieldId,\n );\n\n const fields: MetaEntityBaseProperty[] = [\n ...primitiveProps,\n ...complexProps,\n ...navigationProps,\n ...directoryProps,\n ];\n\n fields.forEach((field) => {\n field.name = _.camelCase(field.name);\n if (field.type === MetaEntityPropertyType.directory) {\n (field as MetaEntityNavigationProperty).keyProperty = _.camelCase(\n (field as MetaEntityNavigationProperty).keyProperty,\n );\n }\n\n field.viewConfiguration.label =\n field.viewConfiguration.labels.find(\n (label) => label.language === currentLanguage,\n )?.value ?? noTitle;\n field.viewConfiguration.placeholder =\n field.viewConfiguration.placeholders.find(\n (ph) => ph.language === currentLanguage,\n )?.value;\n });\n\n this._customFields.set(entity.name, fields);\n });\n }\n\n private localeInitializer(localeId: string): Promise {\n return import(\n /* webpackExclude: /extra|global/ */\n // eslint-disable-next-line max-len\n /* webpackInclude: /(az|be|bg|bs|bs-Latn|ca|ca-ES-VALENCIA|ca-FR|ca-IT|cs|cy|da|de|de-AT|de-BE|de-CH|de-LI|de-LU|el|el-CY|en|en-001|en-150|en-AT|en-AU|en-BE|en-CA|en-CH|en-CY|en-DE|en-DK|en-FI|en-FK|en-GB|en-GI|en-HK|en-IE|en-IL|en-MT|en-MY|en-NL|en-NZ|en-SE|en-SG|en-SI|es|et|eu|fi|fr|fr-BE|fr-CA|fr-LU|fr-MC|fr-MF|ga|gl|hr|hr-BA|hu|hy|id|is|it|it-CH|it-SM|kk|ky|lt|lv|mk|nb|nb-SJ|nl|nl-BE|nn|no|pl|pt|ro|ro-MD|ru|ru-BY|ru-KG|ru-KZ|ru-MD|ru-UA|sk|sl|sq|sq-MK|sq-XK|sr|sr-Cyrl|sr-Cyrl-BA|sr-Cyrl-ME|sr-Cyrl-XK|sr-Latn|sr-Latn-BA|sr-Latn-ME|sr-Latn-XK|sv|sv-AX|sv-FI|uk|uz)\\.mjs$/ */\n `/node_modules/@angular/common/locales/${localeId}.mjs`\n ).then(\n (module) => registerLocaleData(module.default),\n (error) => {\n console.log(error);\n throw error;\n },\n );\n }\n\n /**\n * Sets the session's time zone offset based on the current session's time zone.\n *\n * This method calculates the time zone offset in hours from UTC and formats it\n * as a string to be stored in the session object. The offset is prefixed with\n * 'GMT' and includes a '+' sign for positive offsets.\n */\n private setSessionTimeZoneOffset(): void {\n const offsetHours =\n DateTime.utc().setZone(this.session.timeZone).offset / 60;\n const offsetHoursString =\n offsetHours < 0 ? offsetHours.toString() : `+${offsetHours}`;\n this.session.timeZoneOffset = `GMT${offsetHoursString}`;\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { LocalStorageService, SessionStorageService } from 'ngx-webstorage';\nimport Oidc, {\n UserManager,\n UserManagerSettings,\n User,\n WebStorageStateStore,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { map, share, take, tap } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { Guid } from '../shared/helpers/guid';\nimport { AppConfigService } from './app-config.service';\nimport { DataService } from './data.service';\nimport { LogService } from './log.service';\nimport { NavigationIndicatorsSettings } from 'src/app/core/navigation.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\n/** Сервис аутентификации. */\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private savedPathStorageName = 'authSavedPath';\n private syncStoreName = 'auth';\n private clientId = Guid.generate();\n\n /** Email замещаемого пользователя. */\n public substitutedEmail: string;\n\n private loginAsStoreName = 'loginAs';\n private authSessionStoreName = 'authSession';\n private manager: UserManager;\n accessTokenExpiringTime: number;\n\n public serviceWorkerRegistration: void;\n\n public token$ = new Observable((subscriber) => {\n this.manager.getUser().then((user) => {\n if (!user || user.expired || !user.access_token) {\n this.signinSilent().then(\n (response) => subscriber.next(response.access_token),\n (error) => subscriber.error(error),\n );\n } else {\n subscriber.next(user.access_token);\n }\n });\n }).pipe(\n tap(() =>\n this.log.debug('Access token has been received to subscribers. '),\n ),\n share(),\n take(1),\n );\n\n constructor(\n private log: LogService,\n private data: DataService,\n private cookieService: CookieService,\n private localStorageService: LocalStorageService,\n private localConfigService: LocalConfigService,\n private sessionStorageService: SessionStorageService,\n ) {\n this.substitutedEmail = this.cookieService.check(this.loginAsStoreName)\n ? this.cookieService.get(this.loginAsStoreName)\n : null;\n\n if (!environment.production) {\n Oidc.Log.logger = console;\n }\n }\n\n /** Инициализация сервиса. */\n public init() {\n this.localStorageService.observe(this.syncStoreName).subscribe((id) => {\n if (id !== this.clientId) {\n this.log.debug('Reloading...');\n location.reload();\n }\n });\n\n this.manager = new UserManager(this.getClientSettings());\n\n this.manager.events.addSilentRenewError((response) => {\n const message = `Silent renew auth is failed! ${response}`;\n this.log.error(message);\n });\n\n this.manager.events.addUserSignedOut(() => {\n console.log('User is signed out!');\n this.signinRedirect();\n });\n\n this.manager.events.addAccessTokenExpiring(() => {\n this.accessTokenExpiringTime = new Date().getTime();\n const message = 'Access token is expiring...';\n this.log.log(message);\n });\n\n this.manager.events.addUserLoaded(() => {\n let message = 'User has been updated.';\n if (this.accessTokenExpiringTime) {\n const timeElapsed = new Date().getTime() - this.accessTokenExpiringTime;\n message += ` Time elapsed from expiring is ${timeElapsed} ms.`;\n }\n this.log.log(message);\n this.accessTokenExpiringTime = null;\n });\n }\n\n /** Запуск тихого обновления токенов. */\n public startSilentRenew() {\n this.manager.startSilentRenew();\n }\n\n /** Попытка скрытного (тихого) входа. */\n public signinSilent(): Promise {\n return this.manager.signinSilent().then(\n (user) => {\n this.log.log('User was authenticated: ' + user.profile.sub);\n this.setAuthSessionCookie();\n this.startSilentRenew();\n return user;\n },\n (response) => {\n const message = `Error! Auth hasn't been updated via signin silent. ${response}`;\n this.log.error(message);\n this.signinRedirect();\n throw message;\n },\n );\n }\n\n /** Сменить адрес на сохраненный в момент входа. */\n public redirectToSaveState() {\n const path = this.sessionStorageService.retrieve(this.savedPathStorageName);\n if (path) {\n window.history.pushState(null, '', path);\n this.sessionStorageService.clear(this.savedPathStorageName);\n }\n }\n\n private signinRedirect() {\n // Запомнить путь.\n const path = document.location.href;\n this.sessionStorageService.store(this.savedPathStorageName, path);\n this.manager.signinRedirect();\n }\n\n /** Возвращает текущего пользователя. */\n public getUser(): Promise {\n return this.manager.getUser();\n }\n\n /** Возвращает заголовок аутентификации (Bearer). */\n getAuthorizationHeaderValue(): Observable {\n return this.token$.pipe(map((token) => `Bearer ${token}`));\n }\n\n /** Запускает выход. */\n signOut() {\n // Прекратить замещение.\n this.cookieService.delete(this.loginAsStoreName, '/');\n this.clearStoredIndicators();\n this.manager.signoutRedirect();\n }\n\n /** Запускает выход со сбросом сессии на сервере. */\n signOutWithSessionDestroy() {\n this.data.model\n .action('DestroySession')\n .execute()\n .subscribe(() => {\n this.signOut();\n });\n }\n\n /** Обработка ответа паспорта. */\n completeAuthentication(): Promise {\n return this.manager.signinRedirectCallback().then(\n () => {\n this.redirectToSaveState();\n this.startSilentRenew();\n this.manager.clearStaleState();\n this.setAuthSessionCookie();\n },\n (error) => {\n const message = `Authentication failure: response code is wrong or was rejected by passport. ${error}`;\n this.log.error(message);\n this.manager.signoutRedirect();\n throw new Error('message');\n },\n );\n }\n\n /** Войти в режим замещения. */\n public startSubstituting(email: string) {\n this.cookieService.set(this.loginAsStoreName, email, null, '/');\n this.updateSyncStore();\n this.clearStoredIndicators();\n location.reload();\n }\n\n /** Выйти из режима замещения. */\n public stopSubstituting() {\n this.cookieService.delete(this.loginAsStoreName, '/');\n this.clearStoredIndicators();\n this.updateSyncStore();\n location.reload();\n }\n\n /** Сообщить остальным вкладкам, что необходимо перезагрузиться. */\n private updateSyncStore() {\n this.localStorageService.store(this.syncStoreName, this.clientId);\n }\n\n private setAuthSessionCookie() {\n this.cookieService.set(this.authSessionStoreName, null, null, '/');\n }\n\n public checkAuthSession(): boolean {\n return this.cookieService.check(this.authSessionStoreName);\n }\n\n private clearStoredIndicators(): void {\n const settings = this.localConfigService.getConfig(\n NavigationIndicatorsSettings,\n );\n settings.indicators = [];\n this.localConfigService.setConfig(NavigationIndicatorsSettings, settings);\n }\n\n /** Настройка клиента аутентификации. */\n private getClientSettings(): UserManagerSettings {\n const url = window.location.href;\n const segments = url.split('/');\n const host = segments[0] + '//' + segments[2];\n\n return {\n userStore: new WebStorageStateStore({ store: window.localStorage }),\n stateStore: new WebStorageStateStore({ store: window.localStorage }),\n clockSkew: 36000,\n authority: AppConfigService.config.passport.url,\n client_id: 'web_app',\n redirect_uri: `${host}/auth-callback`,\n loadUserInfo: false,\n silent_redirect_uri: `${host}/assets/silent-refresh.html`,\n post_logout_redirect_uri: `${AppConfigService.config.passport.url}/logout-successful`,\n response_type: 'code',\n scope: 'openid profile all',\n filterProtocolClaims: true,\n silentRequestTimeout: 1000 * 60 * 2, // 2 минуты\n automaticSilentRenew: false, // Отложенный запуск\n accessTokenExpiringNotificationTime: 300, // 5 минут\n monitorSession: false,\n metadata: {\n issuer: AppConfigService.config.passport.url,\n jwks_uri: `${AppConfigService.config.passport.url}/.well-known/openid-configuration/jwks`,\n authorization_endpoint: `${AppConfigService.config.passport.url}/connect/authorize`,\n token_endpoint: `${AppConfigService.config.passport.url}/connect/token`,\n userinfo_endpoint: `${AppConfigService.config.passport.url}/connect/userinfo`,\n end_session_endpoint: `${AppConfigService.config.passport.url}/connect/endsession`,\n check_session_iframe: `${AppConfigService.config.passport.url}/connect/checksession`,\n revocation_endpoint: `${AppConfigService.config.passport.url}/connect/revocation`,\n introspection_endpoint: `${AppConfigService.config.passport.url}/connect/introspect`,\n },\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BlockUIService {\n @BlockUI() blockInterface: NgBlockUI;\n\n public get isActive(): boolean {\n return this.blockInterface.isActive;\n }\n\n public start() {\n if (!this.blockInterface.isActive) {\n this.blockInterface.start();\n }\n }\n public stop() {\n this.blockInterface.stop();\n }\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { LocalStorageService } from 'ngx-webstorage';\n\nimport {\n ReplaySubject,\n Subject,\n Subscription,\n fromEvent,\n auditTime,\n throttleTime,\n} from 'rxjs';\n\nimport { LogService } from 'src/app/core/log.service';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Service for UI view management. */\n@Injectable({\n providedIn: 'root',\n})\nexport class ChromeService {\n /** Indicates whether the navigation panel is placed over the main area content or not. */\n public compactMode: boolean;\n /** Indicates whether the navigation panel is permanently collapsed or not. */\n public permanentCompactMode: boolean;\n\n private scrollSubject = new Subject();\n public scroll$ = this.scrollSubject.asObservable().pipe(auditTime(10));\n\n public compactMode$ = new ReplaySubject();\n public permanentCompactMode$ = new ReplaySubject();\n\n private mainAreaSizeSubject = new Subject();\n public mainAreaSize$ = this.mainAreaSizeSubject.asObservable();\n\n private minWidthForNonCompactMode = 1200; // Bootstrap xl breakpoint\n private storageName = 'compactMode';\n\n public get storedCompactMode(): boolean {\n return this.localStorageService.retrieve(this.storageName);\n }\n public set storedCompactMode(value: boolean) {\n this.localStorageService.store(this.storageName, value);\n }\n\n constructor(\n private localStorageService: LocalStorageService,\n private logService: LogService,\n private zone: NgZone,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.updateState();\n }\n\n /** Toggles compact mode. */\n public toggleCompactMode(): void {\n this.storedCompactMode = !this.storedCompactMode;\n this.updateState();\n }\n\n /** Updates state and emits main area size changes. */\n public setMainAreaDimension(): void {\n this.updateState();\n this.mainAreaSizeSubject.next();\n }\n\n /** Emits scroll changes. */\n public scrollMainArea(): void {\n this.scrollSubject.next(null);\n }\n\n /**\n * Runs callback on scroll event.\n *\n * @param loadPage callback. Usually it's a page-by-page loading.\n * @param lengthThreshold height to the end of view port at which the callback is run.\n * @param scrollContainer `HTMLElement` to observe.\n *\n * @returns `scroll$` subscription.\n */\n public setInfinityScroll(\n loadPage: () => void,\n lengthThreshold = 150,\n scrollContainer?: HTMLElement,\n ): Subscription {\n const container =\n scrollContainer ??\n this.document.getElementById(Constants.defaultRootContainerId);\n const scroll$ = scrollContainer\n ? fromEvent(scrollContainer, 'scroll')\n : this.scroll$;\n\n let subscription: Subscription;\n\n this.zone.runOutsideAngular(() => {\n subscription = scroll$\n .pipe(\n throttleTime(Constants.scrollThrottleTime, undefined, {\n leading: true,\n trailing: true,\n }),\n )\n .subscribe(() => {\n const remaining =\n container.scrollHeight -\n (container.clientHeight + container.scrollTop);\n\n if (remaining < lengthThreshold) {\n this.zone.run(() => {\n this.logService.debug(\n `View port has been scrolled to the end and a new page must be loaded.`,\n );\n loadPage();\n });\n }\n });\n });\n\n return subscription;\n }\n\n /** Sets scrollbar width of main-area container to root CSS variables. */\n public setMainAreaScrollWidth(): void {\n const element = this.document.querySelector(\n `#${Constants.defaultRootContainerId}`,\n );\n const width = (element?.offsetWidth ?? 0) - (element?.clientWidth ?? 0);\n\n this.document.documentElement.style.setProperty(\n '--main-scrollbar-width',\n `${width}px`,\n );\n }\n\n /**\n * Updates navigation panel state.\n * If user's view width is less then `minWidthForNonCompactMode`, compactMode is set to true.\n */\n private updateState(): void {\n this.permanentCompactMode =\n this.document.documentElement.clientWidth <\n this.minWidthForNonCompactMode;\n this.compactMode = this.permanentCompactMode\n ? true\n : this.storedCompactMode;\n this.compactMode$.next(this.compactMode);\n this.permanentCompactMode$.next(this.permanentCompactMode);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StateService } from '@uirouter/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActCreationComponent } from 'src/app/acts-of-acceptance/creation/act-creation.component';\nimport { InvoiceCreationComponent } from 'src/app/billing/invoices/creation/invoice-creation.component';\nimport { ClientSettingsModalComponent } from 'src/app/clients/card/client-settings/client-settings-modal/client-settings-modal.component';\nimport { AppService } from 'src/app/core/app.service';\nimport { DealCreateModalComponent } from 'src/app/deals/creation/deal-create-modal.component';\nimport { ExpensesRequestCreationComponent } from 'src/app/expenses-requests/creation/expenses-request-creation.component';\nimport { IssueCreationComponent } from 'src/app/issues/creation/issue-creation.component';\nimport { ProgramSettingsComponent } from 'src/app/programs/settings/program-settings.component';\nimport { ProjectSettingsComponent } from 'src/app/projects/settings/project-settings.component';\nimport { ResourceRequestModalComponent } from 'src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { InteractionModalComponent } from 'src/app/shared/modules/interactions/interaction-modal/interaction-modal.component';\nimport { TimeOffCreationComponent } from 'src/app/time-off-requests/creation/time-off-creation.component';\n\n@Injectable()\nexport class CreateMenuService {\n public items$ = new BehaviorSubject([]);\n public isReloadState = true;\n public customNavigation: string;\n public routeMode: RouteMode = RouteMode.reset;\n\n private items: CreateMenuItem[] = [];\n\n constructor(\n app: AppService,\n translate: TranslateService,\n stateService: StateService,\n modalService: NgbModal,\n ) {\n // Issue.\n if (app.checkEntityPermission('Issue', PermissionType.Modify)) {\n this.items.push({\n title: translate.instant('shared2.props.issue'),\n name: 'issue',\n handle: () =>\n modalService.open(IssueCreationComponent).result.then(\n (entityId: string) => {\n stateService.go(\n 'issues',\n {\n entityId,\n navigation: this.customNavigation ?? 'my.allIssues',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // TimeOff Request.\n if (\n app.checkFeature(Feature.timeOff) &&\n app.checkEntityPermission('TimeOffRequest', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.timeOffRequest'),\n name: 'timeOffRequest',\n handle: () =>\n modalService\n .open(TimeOffCreationComponent, {\n size: 'lg',\n })\n .result.then(\n (request: Entity) => {\n stateService.go(\n 'timeOffRequest',\n {\n entityId: request.id,\n navigation:\n this.customNavigation ?? 'my.timeOffRequestsAll',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Expense Request.\n if (\n app.checkFeature(Feature.expenses) &&\n app.checkEntityPermission('ExpenseRequest', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.expenseRequest'),\n name: 'expenseRequest',\n handle: () =>\n modalService.open(ExpensesRequestCreationComponent).result.then(\n (entity: Entity) => {\n stateService.go(\n 'expensesRequest',\n {\n entityId: entity.id,\n navigation: this.customNavigation ?? 'my.expensesRequestsAll',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Project.\n if (app.checkEntityPermission('Project', PermissionType.Modify)) {\n this.items.push({\n title: translate.instant('enums.component.project'),\n name: 'project',\n handle: () =>\n modalService\n .open(ProjectSettingsComponent, { size: 'lg' })\n .result.then(\n (entity: Entity) => {\n stateService.go(\n 'project',\n {\n entityId: entity.id,\n navigation: this.customNavigation ?? 'projects.allProjects',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Deal.\n if (app.checkEntityPermission('Deal', PermissionType.Modify)) {\n this.items.push({\n title: translate.instant('enums.component.deal'),\n name: 'deal',\n handle: () =>\n modalService.open(DealCreateModalComponent).result.then(\n (entity: Entity) => {\n stateService.go(\n 'deal',\n {\n entityId: entity.id,\n navigation: this.customNavigation ?? 'clients.allDeals',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Interaction.\n if (app.checkEntityPermission('Interaction', PermissionType.Modify)) {\n this.items.push({\n title: translate.instant('enums.component.interaction'),\n name: 'interaction',\n handle: () =>\n modalService\n .open(InteractionModalComponent, { size: 'xxl' })\n .result.then(\n (entity: Entity) => {\n stateService.go(\n 'interaction',\n {\n entityId: entity.id,\n navigation:\n this.customNavigation ?? 'clients.allInteractions',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Client.\n if (app.checkEntityPermission('Organization', PermissionType.Modify)) {\n this.items.push({\n title: translate.instant('enums.component.client'),\n name: 'client',\n handle: () =>\n modalService\n .open(ClientSettingsModalComponent, { size: 'lg' })\n .result.then(\n (entity: Entity) => {\n stateService.go(\n 'client',\n {\n entityId: entity.id,\n navigation: this.customNavigation ?? 'projects.allClients',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Program.\n if (\n app.checkFeature(Feature.programs) &&\n app.checkEntityPermission('Program', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.program'),\n name: 'program',\n handle: () =>\n modalService\n .open(ProgramSettingsComponent, { size: 'lg' })\n .result.then(\n (entity: Entity) => {\n stateService.go(\n 'program',\n {\n entityId: entity.id,\n navigation: this.customNavigation ?? 'projects.allPrograms',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Resource request.\n if (\n app.checkFeature(Feature.booking) &&\n app.checkEntityPermission('ResourceRequest', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.resourceRequest'),\n name: 'resourceRequest',\n handle: () =>\n modalService\n .open(ResourceRequestModalComponent, { size: 'xl' })\n .result.then(\n (entity: Entity) => {\n stateService.go(\n 'resourceRequest',\n {\n entityId: entity.id,\n navigation:\n this.customNavigation ?? 'resources.allRequests',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Act of acceptance.\n if (\n app.checkFeature(Feature.finance) &&\n app.checkEntityPermission('ActOfAcceptance', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.actOfAcceptance'),\n name: 'actOfAcceptance',\n handle: () =>\n modalService.open(ActCreationComponent).result.then(\n (entity: Entity) => {\n stateService.go(\n 'actOfAcceptance',\n {\n entityId: entity.id,\n navigation:\n this.customNavigation ?? 'finance.actsOfAcceptance',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n // Invoice.\n if (\n app.checkFeature(Feature.billing) &&\n app.checkEntityPermission('Invoice', PermissionType.Modify)\n ) {\n this.items.push({\n title: translate.instant('enums.component.invoice'),\n name: 'invoice',\n handle: () =>\n modalService.open(InvoiceCreationComponent).result.then(\n (entityId: string) => {\n stateService.go(\n 'invoice',\n {\n entityId,\n navigation: this.customNavigation ?? 'billing.invoicesAll',\n routeMode: this.routeMode,\n },\n { reload: this.isReloadState },\n );\n },\n () => null,\n ),\n });\n }\n\n this.items$.next(this.items);\n }\n}\n\nexport interface CreateMenuItem {\n title: string;\n name: string;\n handle: () => void;\n}\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AppConfigService } from './app-config.service';\nimport { Dictionary } from '../shared/models/dictionary';\nimport buildQuery from 'odata-query';\nimport { HeaderParams } from 'src/app/shared/models/header-params.model';\n\n/**\n * Service for work with API OData V4.\n * Uses library for request building https://github.com/techniq/odata-query.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n private requestStatusSubject = new Subject();\n public requestStatus$ = this.requestStatusSubject.asObservable();\n\n protected helper = new DataServiceHelper();\n\n constructor(private http: HttpClient) {}\n\n /**\n * Sets request code & url for the current request.\n *\n * @param statusNumber The status number to set for the request.\n */\n public setResponseStatus(statusNumber: RequestStatus): void {\n this.requestStatusSubject.next(statusNumber);\n }\n\n /**\n * Returns an singleton entity.\n *\n * @param name The name of the singleton endpoint.\n * @returns An Entity instance representing the singleton.\n */\n public singleton = (name: string): Entity => {\n const url = `${this.getBaseUrl()}/${name}`;\n return new Entity(this.http, url, null, this.helper);\n };\n\n /**\n * Gets the model (root level of the API).\n *\n * @returns {Model} A new Model instance initialized with the HTTP client and base URL.\n */\n public get model(): Model {\n return new Model(this.http, this.getBaseUrl(), this.helper);\n }\n\n /**\n * Returns a collection.\n *\n * @param collectionName The name of the collection to retrieve.\n * @returns A Collection instance representing the specified collection.\n */\n public collection = (collectionName: string): Collection =>\n new Collection(this.http, this.getBaseUrl(), collectionName, this.helper);\n\n /**\n * Returns the base URL for OData API requests.\n *\n * @returns {string} The base URL for OData API requests, constructed by appending '/odata' to the API URL from the app configuration.\n * @private\n */\n private getBaseUrl(): string {\n return AppConfigService.config.api.url + '/odata';\n }\n}\n\nexport class DataServiceHelper {\n /**\n * Adds URL parameters to a query string.\n *\n * @param query - The existing query string, can be empty or null.\n * @param urlParameters - A dictionary of URL parameters to add.\n * @returns The updated query string with added URL parameters.\n */\n public addUrlParameters(\n query: string,\n urlParameters: Dictionary,\n ): string {\n let url = '';\n\n if (urlParameters) {\n for (const key of Object.keys(urlParameters)) {\n url += key + '=' + urlParameters[key] + '&';\n }\n url = url.substring(0, url.length - 1);\n }\n\n if (!query) {\n query = '';\n }\n if (url) {\n if (query.length > 1 && query[0] === '?') {\n query += '&' + url;\n } else {\n query = '?' + url;\n }\n }\n return query;\n }\n\n /**\n * Constructs a function URL with optional parameters and query string.\n *\n * @param url - The base URL.\n * @param name - The name of the function.\n * @param oDataParams - Optional OData parameters to be included in the query string.\n * @param params - Optional dictionary of function parameters.\n * @param urlParams - Optional dictionary of URL parameters to be appended to the query string.\n * @returns The constructed function URL with all parameters and query string.\n */\n public getFuncUrl(\n url: string,\n name: string,\n oDataParams?: object,\n params?: Dictionary,\n urlParams?: Dictionary,\n ): string {\n let funcUrl = url + '/' + name;\n\n let funcParams = '';\n\n if (params) {\n for (const key of Object.keys(params)) {\n funcParams += key + '=' + params[key] + ',';\n }\n funcParams = funcParams.substring(0, funcParams.length - 1);\n }\n if (funcParams) {\n funcParams = `(${funcParams})`;\n }\n\n funcUrl += funcParams;\n\n let query = '';\n if (oDataParams) {\n query = buildQuery(oDataParams);\n }\n query = this.addUrlParameters(query, urlParams);\n\n return funcUrl + query;\n }\n\n /**\n * Generates options object with headers based on provided parameters.\n *\n * @param headerParams - An object containing header parameters.\n * @param existOptions - An optional existing options object to extend.\n * @returns A Record containing the options with headers.\n */\n public getOptionsWithHeaders(\n headerParams: HeaderParams,\n existOptions?: Record,\n ): Record {\n const options = (existOptions ??= {\n headers: new HttpHeaders(),\n });\n if (headerParams?.withResponse) {\n options.headers = options.headers.set('prefer', 'return=representation');\n }\n if (headerParams?.undoRedoSessionId) {\n options.headers = options.headers.set(\n 'Undo-Redo-Session-Id',\n headerParams.undoRedoSessionId,\n );\n }\n return options;\n }\n}\n\nclass Model {\n constructor(\n private http: HttpClient,\n private url: string,\n private helper: DataServiceHelper,\n ) {}\n\n /**\n * Creates and returns a new Function instance.\n *\n * @param name - The name of the function to be created.\n * @returns A new Function instance with the specified name.\n */\n public function(name: string) {\n return new Function(this.http, this.url, name, this.helper);\n }\n\n /**\n * Creates and returns a new Action instance.\n *\n * @param name - The name of the action to be created.\n * @returns A new Action instance with the specified name.\n */\n public action(name: string) {\n return new Action(this.http, this.url, name, this.helper);\n }\n}\n\nexport class Action {\n url: string;\n\n constructor(\n private http: HttpClient,\n url: string,\n name: string,\n private helper: DataServiceHelper,\n ) {\n this.url = url + '/' + name;\n }\n\n /**\n * Executes an HTTP POST request to the action's URL.\n *\n * @param data - The data to be sent in the request body.\n * @param oDataParams - Optional OData parameters to be appended to the URL.\n * @param headerParams - Optional parameters for the request headers.\n * @returns An Observable of type T representing the response from the server.\n */\n public execute(\n data?: any,\n oDataParams?: object,\n headerParams?: HeaderParams,\n ): Observable {\n let url = this.url;\n if (oDataParams) {\n url += buildQuery(oDataParams);\n }\n\n return this.http.post(\n url,\n data,\n this.helper.getOptionsWithHeaders(headerParams),\n );\n }\n}\n\nclass Function {\n constructor(\n private http: HttpClient,\n private url: string,\n private name: string,\n private helper: DataServiceHelper,\n ) {}\n\n /** Выполняет запрос коллекции значений. */\n /**\n * Executes a query to retrieve a collection of values.\n *\n * @param params - Optional dictionary of string parameters to be included in the request.\n * @param oDataParams - Optional OData parameters to be appended to the URL.\n * @param urlParams - Optional dictionary of string parameters to be included in the URL.\n * @returns An Observable of type T representing the response from the server.\n */\n public query(\n params?: Dictionary,\n oDataParams?: object,\n urlParams?: Dictionary,\n ): Observable {\n const url = this.helper.getFuncUrl(\n this.url,\n this.name,\n oDataParams,\n params,\n urlParams,\n );\n return this.http.get(url);\n }\n\n /**\n * Executes a request to retrieve a single value (entity).\n *\n * @param params - Optional dictionary of string parameters to be included in the request.\n * @param oDataParams - Optional OData parameters to be appended to the URL.\n * @param urlParams - Optional dictionary of string parameters to be included in the URL.\n * @returns An Observable of type T representing the response from the server.\n */\n public get(\n params?: Dictionary,\n oDataParams?: object,\n urlParams?: Dictionary,\n ): Observable {\n const url = this.helper.getFuncUrl(\n this.url,\n this.name,\n oDataParams,\n params,\n urlParams,\n );\n return this.http.get(url);\n }\n\n /**\n * Executes a request to retrieve a single value (entity).\n *\n * @param params - Optional dictionary of string parameters to be included in the request.\n * @param oDataParams - Optional OData parameters to be appended to the URL.\n * @param urlParams - Optional dictionary of string parameters to be included in the URL.\n * @param headers - Optional HttpHeaders parameter to be included in the request.\n * @returns An Observable of type HttpResponse representing the response from the server.\n */\n public getWithHeaders(\n params?: Dictionary,\n oDataParams?: object,\n urlParams?: Dictionary,\n headers?: HttpHeaders,\n ): Observable> {\n const url = this.helper.getFuncUrl(\n this.url,\n this.name,\n oDataParams,\n params,\n urlParams,\n );\n return this.http.get(url, { headers, observe: 'response' });\n }\n\n /**\n * Executes a request to retrieve a value as a Blob object.\n *\n * @param params - Optional dictionary of string parameters to be included in the request.\n * @param oDataParams - Optional OData parameters to be appended to the URL.\n * @param urlParams - Optional dictionary of string parameters to be included in the URL.\n * @returns An Observable that emits the Blob response from the server.\n */\n public getBlob(\n params?: Dictionary,\n oDataParams?: object,\n urlParams?: Dictionary,\n ): Observable {\n const url = this.helper.getFuncUrl(\n this.url,\n this.name,\n oDataParams,\n params,\n urlParams,\n );\n return this.http.get(url, { responseType: 'blob' });\n }\n}\n\nexport class Entity {\n url: string;\n\n constructor(\n private http: HttpClient,\n private collectionUrl: string,\n private entityId: string | null,\n private helper: DataServiceHelper,\n ) {\n // entityId === null - singleton.\n this.url = entityId ? `${this.collectionUrl}(${entityId})` : collectionUrl;\n }\n\n /**\n * Deletes the entity.\n *\n * @param headerParams - Optional parameters for the request headers.\n * @returns An Observable that emits the response from the server.\n */\n public delete(headerParams?: HeaderParams): Observable {\n return this.http.delete(\n this.url,\n this.helper.getOptionsWithHeaders(headerParams),\n );\n }\n\n /**\n * Patches the entity with the provided data.\n *\n * @param data - The data to patch the entity with.\n * @param headerParams - Optional parameters for the request headers.\n * @returns An Observable that emits the response from the server.\n */\n public patch(data: any, headerParams?: HeaderParams): Observable {\n return this.http.patch(\n this.url,\n data,\n this.helper.getOptionsWithHeaders(headerParams),\n );\n }\n\n /**\n * Updates the entity with the provided data.\n *\n * @param data - The data to update the entity with.\n * @param headerParams - Optional parameters for the request headers.\n * @returns An Observable that emits the response from the server.\n */\n public update(data: any, headerParams?: HeaderParams): Observable {\n return this.http.put(\n this.url,\n data,\n this.helper.getOptionsWithHeaders(headerParams),\n );\n }\n\n /**\n * Retrieves data from the server using a GET request.\n *\n * @template T - The type of the response data.\n * @param {object} [queryObject] - An optional object containing query parameters.\n * @param {Dictionary} [urlParams] - An optional dictionary of URL parameters.\n * @returns {Observable} An Observable that emits the response data of type T.\n */\n public get(\n queryObject?: object,\n urlParams?: Dictionary,\n ): Observable {\n let query = '';\n if (queryObject) {\n query = buildQuery(queryObject);\n }\n query = this.helper.addUrlParameters(query, urlParams);\n\n return this.http.get(this.url + query);\n }\n\n /**\n * Returns a Function object for the specified entity function.\n *\n * @param name The name of the entity function.\n * @returns A new Function object representing the entity function.\n */\n public function(name: string) {\n return new Function(this.http, this.url, name, this.helper);\n }\n\n /**\n * Returns an Action object for the specified entity action.\n *\n * @param name The name of the entity action.\n * @returns A new Action object representing the entity action.\n */\n public action(name: string) {\n return new Action(this.http, this.url, name, this.helper);\n }\n\n /**\n * Returns a Collection object for the specified entity collection.\n *\n * @param name The name of the entity collection.\n * @returns A new Collection object representing the entity collection.\n */\n public collection(name: string) {\n return new Collection(this.http, this.url, name, this.helper);\n }\n}\n\nexport class Collection {\n private collectionUrl: string;\n\n constructor(\n private http: HttpClient,\n rootUrl: string,\n collectionName: string,\n private helper: DataServiceHelper,\n ) {\n this.collectionUrl = rootUrl + '/' + collectionName;\n }\n\n /**\n * Returns an Entity object for the specified entity ID within the collection.\n *\n * @param entityId The unique identifier of the entity.\n * @returns A new Entity object representing the specified entity.\n */\n public entity(entityId: string): Entity {\n return new Entity(this.http, this.collectionUrl, entityId, this.helper);\n }\n\n /**\n * Queries the collection and returns an Observable of type T.\n *\n * @template T The type of the response data.\n * @param {object} [queryObject] - Optional object to build OData query parameters.\n * @param {Dictionary} [urlParams] - Optional dictionary of URL parameters to be appended to the query string.\n * @returns {Observable} An Observable that emits the response data of type T.\n */\n public query(\n queryObject?: object,\n urlParams?: Dictionary,\n ): Observable {\n let query = '';\n if (queryObject) {\n query = buildQuery(queryObject);\n }\n query = this.helper.addUrlParameters(query, urlParams);\n const url = this.collectionUrl + query;\n return this.http.get(url);\n }\n\n /**\n * Inserts a new entity into the collection.\n *\n * @param data The data to be inserted.\n * @param queryObject Optional query object to build the query string.\n * @param headerParams - Optional parameters for the request headers.\n * @returns An Observable that emits the response from the server.\n */\n public insert(\n data: any,\n queryObject?: any,\n headerParams?: HeaderParams,\n ): Observable {\n let query = '';\n const options = {\n headers: new HttpHeaders(),\n };\n\n if (queryObject) {\n query = buildQuery(queryObject);\n options.headers = options.headers.set('prefer', 'return=representation');\n }\n\n return this.http.post(\n this.collectionUrl + query,\n data,\n this.helper.getOptionsWithHeaders(headerParams, options),\n );\n }\n\n /**\n * Returns an Action instance for the specified collection action.\n *\n * @param name - The name of the action to be created.\n * @returns A new Action instance associated with the collection URL and the specified action name.\n */\n public action(name: string) {\n return new Action(this.http, this.collectionUrl, name, this.helper);\n }\n\n /**\n * Returns a Function instance for the specified collection function.\n *\n * @param name - The name of the function to be created.\n * @returns A new Function instance associated with the collection URL and the specified function name.\n */\n public function(name: string) {\n return new Function(this.http, this.collectionUrl, name, this.helper);\n }\n}\n\ninterface RequestStatus {\n url: string;\n code: number;\n}\n","import { Injectable } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { DatePeriodType } from '../shared/models/enums/date-period-type.enum';\nimport { DatePeriod } from '../shared/models/entities/date-period.model';\n\n@Injectable({ providedIn: 'root' })\nexport class DateService {\n public getDatePair(periodType: DatePeriodType): { from: string; to: string } {\n let from: DateTime;\n let to: DateTime;\n\n if (periodType === DatePeriodType.ThisWeek) {\n from = DateTime.now().startOf('week');\n to = DateTime.now().endOf('week');\n }\n\n if (periodType === DatePeriodType.PrevWeek) {\n from = DateTime.now().startOf('week').minus({ days: 7 });\n to = DateTime.now().startOf('week').minus({ days: 1 });\n }\n\n if (periodType === DatePeriodType.ThisMonth) {\n from = DateTime.now().startOf('month');\n to = DateTime.now().endOf('month');\n }\n\n if (periodType === DatePeriodType.PrevMonth) {\n from = DateTime.now().startOf('month').minus({ months: 1 });\n to = DateTime.now().startOf('month').minus({ days: 1 });\n }\n\n if (periodType === DatePeriodType.ThisQuarter) {\n from = DateTime.now().startOf('quarter');\n to = DateTime.now().endOf('quarter');\n }\n\n if (periodType === DatePeriodType.PrevQuarter) {\n from = DateTime.now().startOf('quarter').minus({ months: 3 });\n to = DateTime.now().startOf('quarter').minus({ days: 1 });\n }\n if (periodType === DatePeriodType.ThisYear) {\n from = DateTime.now().startOf('year');\n to = DateTime.now().endOf('year');\n }\n if (periodType === DatePeriodType.PrevYear) {\n from = DateTime.now().startOf('year').minus({ years: 1 });\n to = DateTime.now().startOf('year').minus({ days: 1 });\n }\n\n if (periodType === DatePeriodType.NextYear) {\n from = DateTime.now().startOf('year').plus({ years: 1 });\n to = DateTime.now().endOf('year').plus({ years: 1 });\n }\n\n if (periodType === DatePeriodType.NextQuarter) {\n from = DateTime.now().startOf('quarter').plus({ quarter: 1 });\n to = DateTime.now().endOf('quarter').plus({ quarter: 1 });\n }\n\n if (periodType === DatePeriodType.NextMonth) {\n from = DateTime.now().startOf('month').plus({ month: 1 });\n to = DateTime.now().endOf('month').plus({ month: 1 });\n }\n\n if (periodType === DatePeriodType.NextWeek) {\n from = DateTime.now().startOf('week').plus({ days: 7 });\n to = DateTime.now().endOf('week').plus({ days: 7 });\n }\n\n if (periodType === DatePeriodType.Last7Days) {\n from = DateTime.now().minus({ days: 6 });\n to = DateTime.now();\n }\n\n if (periodType === DatePeriodType.Last30Days) {\n from = DateTime.now().minus({ days: 29 });\n to = DateTime.now();\n }\n\n if (periodType && from && to) {\n return { from: from.toISODate(), to: to.toISODate() };\n } else {\n return null;\n }\n }\n\n /**\n * Returns a date dictionary for a request to the API with a period.\n *\n * @param period value from control.\n * @param includeTimeZone Indicates whether to converts dates to UTC format.\n * @returns dictionary with dates.\n */\n public getDatePairFromPeriodForFilter(\n period: DatePeriod,\n includeTimeZone?: boolean,\n ): {\n periodStart: string;\n periodFinish: string;\n } | null {\n if (!period) {\n return null;\n }\n\n let result: { periodStart: string; periodFinish: string } = {\n periodStart: '',\n periodFinish: '',\n };\n\n if (period.periodType !== DatePeriodType.Custom) {\n const datePair = this.getDatePair(period.periodType);\n result = { periodStart: datePair.from, periodFinish: datePair.to };\n } else {\n result = { periodStart: period.from, periodFinish: period.to };\n }\n\n if (includeTimeZone) {\n result.periodStart = DateTime.fromISO(result.periodStart)\n .startOf('day')\n .toUTC()\n .toISO();\n result.periodFinish = DateTime.fromISO(result.periodFinish)\n .endOf('day')\n .toUTC()\n .toISO();\n }\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { DataService } from 'src/app/core/data.service';\n\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n/** Provides methods to work with Financial Accounts. */\n@Injectable({ providedIn: 'root' })\nexport class FinancialAccountsService {\n constructor(private data: DataService) {}\n\n /** Cached {@link FinancialAccount} list. */\n private accounts: ReadonlyArray;\n\n /** Shared observable of {@link FinancialAccount} list. */\n public accounts$ = this.getAvailableAccounts().pipe(shareReplay(1));\n /** Shared observable of {@link FinancialAccount} list with type = {@link FinancialAccountType.expenses}. */\n public projectExpensesAccounts$ = this.accounts$.pipe(\n map((accounts) =>\n accounts.filter(\n (account) =>\n (!account.isSystem ||\n account.id === FinancialAccount.corporateTaxId) &&\n account.type.id === FinancialAccountType.expenses.id,\n ),\n ),\n map((accounts) => accounts.sort(naturalSort('name'))),\n );\n /**\n * Shared observable of {@link FinancialAccount} list with\n * type = {@link FinancialAccountType.expenses}\n * and {@link FinancialAccount.includedInBalance} = false.\n * */\n public projectExpensesAccountsNotIncludedInBalance$ =\n this.projectExpensesAccounts$.pipe(\n map((accounts) =>\n accounts.filter((account) => !account.includedInBalance),\n ),\n );\n /** Shared observable of {@link FinancialAccount} list with type = {@link FinancialAccountType.expenses}. */\n public expensesRequestAccounts$ = this.accounts$.pipe(\n map((accounts) =>\n accounts.filter(\n (account) =>\n !account.isSystem &&\n account.type.id === FinancialAccountType.expenses.id,\n ),\n ),\n );\n\n /**\n * Gets {@link FinancialAccount} list from either cached {@link accounts} or server.\n *\n * @returns Observable of {@link FinancialAccount} list.\n * */\n private getAvailableAccounts(): Observable> {\n return new Observable((subscriber) => {\n if (this.accounts) {\n subscriber.next(this.accounts);\n }\n\n this.data\n .collection('FinancialAccounts')\n .query({\n select: ['id', 'name', 'isSystem', 'includedInBalance'],\n filter: { isActive: true },\n expand: {\n type: {\n select: ['id', 'code', 'name'],\n },\n },\n })\n .subscribe((accounts) => {\n this.accounts = accounts;\n subscriber.next(this.accounts);\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { DateTime } from 'luxon';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { Dictionary } from '../shared/models/dictionary';\nimport { DateHours } from '../shared/models/entities/date-hours.model';\nimport { PlanningScale } from '../shared/models/enums/planning-scale.enum';\nimport { DataService } from './data.service';\n\n/** Предоставляет и кэширует сведения о расписании FTE. */\n@Injectable({\n providedIn: 'root',\n})\nexport class FteScheduleService {\n constructor(private data: DataService) {}\n\n private observables: Dictionary> = {};\n\n /** Returns default schedule.\n *\n * @param scale current scale\n * @param from start schedule date\n * @param to end schedule date\n * @param reload force return schedule from server\n * @returns Observable of schedule\n */\n public getFteSchedule(\n scale: PlanningScale,\n from: string,\n to: string,\n reload?: boolean,\n ): Observable {\n const key = scale + from + to;\n\n if (!reload && this.observables[key]) {\n return this.observables[key];\n }\n\n const params: Dictionary = {\n planningScale: `WP.PlanningScale'${scale}'`,\n from,\n to,\n };\n\n const observable = this.data\n .collection('Schedules')\n .function('WP.GetFteSchedule')\n .query(params)\n .pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n return (this.observables[key] = observable);\n }\n\n /** Returns complete schedule. From (today - 10 yeas) to (today + 5 years).\n *\n * @param scale current scale\n * @param reload force return schedule from server\n * @returns Observable of schedule\n */\n public getCompleteFteSchedule(\n scale: PlanningScale,\n reload?: boolean,\n ): Observable {\n const today = DateTime.now();\n const from = today.minus({ years: 100 }).toISODate();\n const to = today.plus({ years: 100 }).toISODate();\n\n return this.getFteSchedule(scale, from, to, reload);\n }\n\n /** Returns schedule.\n *\n * @param id schedule id\n * @param scale current scale\n * @param from start schedule date\n * @param to end schedule date\n * @param reload force return schedule from server\n * @returns Observable of schedule\n */\n public getSchedule(\n scheduleId: string,\n scale: PlanningScale,\n from: string,\n to: string,\n reload?: boolean,\n ): Observable {\n const key = scheduleId + scale + from + to;\n\n if (!reload && this.observables[key]) {\n return this.observables[key];\n }\n\n const params: Dictionary = {\n scheduleId,\n scale: `WP.PlanningScale'${scale}'`,\n from,\n to,\n };\n\n const observable = this.data\n .collection('Schedules')\n .function('WP.GetSchedule')\n .query(params)\n .pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n return (this.observables[key] = observable);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as Highcharts from 'highcharts/highstock';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Info } from 'luxon';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighchartsService {\n public highcharts = Highcharts;\n\n constructor(private translate: TranslateService) {\n this.highcharts.setOptions({\n lang: {\n loading: this.translate.instant('shared.loading'),\n months: Info.months(),\n weekdays: Info.weekdays(),\n shortMonths: Info.monthsFormat('short'),\n },\n });\n }\n\n getHighcharts(): typeof Highcharts {\n return this.highcharts;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UIRouterGlobals } from '@uirouter/angular';\nimport { BehaviorSubject } from 'rxjs';\nimport { AppName } from '../shared/globals/app-name';\nimport { BaseSettings } from '../shared/models/inner/base-settings.interface';\nimport { LocalConfigService } from './local-config.service';\nimport { clone } from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\n\n/**\n * Сервис для работы с историей навигации между приложениями\n * Позволяет сохранять историю перемещений в localStorage\n * И извлекать историю перемещений в компонентах\n */\nexport class HistoryService {\n /**\n * Переменная для извлечения/добавления данных из(в) localStorage\n * @private\n */\n private _historySettings: HistorySettings;\n\n /**\n * Переменная содержащая максимальное кол-во хранимых historyItems\n */\n private _maxItemsCount = 25;\n\n /**\n * Переменная содержащая subject на изменение истории\n * @public\n */\n public history$: BehaviorSubject;\n\n /**\n *\n * @param localService сервис для сохранения истории в localStorage\n * @param stateService сервис для извлечения текущего состояния маршрутизатора\n */\n constructor(\n private localService: LocalConfigService,\n private routerGlobals: UIRouterGlobals,\n ) {\n this._historySettings = this.localService.getConfig(HistorySettings);\n this.history$ = new BehaviorSubject(this._historySettings.historyItems);\n }\n /**\n * Возвращает кол-во сохраненных элементов истории\n */\n get savedItemsCount(): number {\n return this._historySettings.historyItems.length;\n }\n\n /**\n * Извлекает первые _maxItemsCount элементов из истории\n */\n sliceHistoryItems() {\n this._historySettings.historyItems =\n this._historySettings.historyItems.slice(0, this._maxItemsCount);\n }\n\n /**\n *\n * @param item {HistoryItem} элемент истории\n * Добавляет элемент истории в начало истории\n * Пересохраняет историю в localStorage\n */\n saveHistoryItem(item: HistoryItem) {\n this._historySettings = this.localService.getConfig(HistorySettings);\n this._historySettings.historyItems = [\n item,\n ...this._historySettings.historyItems,\n ];\n this.sliceHistoryItems();\n this.localService.setConfig(HistorySettings, this._historySettings);\n }\n\n private isObjectEmpty(obj: object): boolean {\n return Object.keys(obj).length === 0;\n }\n\n /**\n * @param itemToSave {HistoryItem} элемент истории для сохранения\n * @returns {boolean} совпадает ли новый элемент истории с последним сохраненным\n *\n */\n isItemEqualLastSaved(itemToSave: HistoryItem): boolean {\n const lastSavedItem = this._historySettings.historyItems[0];\n if (!lastSavedItem) {\n return false;\n }\n /**\n * Элементы считаются равными, если имеют одинаковые state и id сущности\n * (если id не существует, то проверка осуществляется только по state)\n */\n\n /**\n * Равны ли state\n */\n let isStateEqual = false;\n\n /**\n * Равны ли id элементов\n */\n let isIdEqual = false;\n\n if (itemToSave.state === lastSavedItem.state) {\n isStateEqual = true;\n }\n\n /**\n * Проверка на существование id сущности\n * Если id не существует то проверяем только по state\n */\n if (!this.isObjectEmpty(lastSavedItem) || !this.isObjectEmpty(itemToSave)) {\n /**\n * Если id совпадают, то элементы равны\n */\n if (\n JSON.stringify(lastSavedItem.stateParams) ===\n JSON.stringify(itemToSave.stateParams)\n ) {\n isIdEqual = true;\n }\n return isIdEqual && isStateEqual;\n }\n\n return isStateEqual;\n }\n\n /**\n * Если текущий элемент истории не совпадает с последним сохраненным,\n * то сохраняем его и отправляем данные в history subject\n *\n * @param nameSegments {string[]} сегменты имени элемента истории\n *\n */\n addHistory(nameSegments: string[], appName: AppName) {\n const state = this.routerGlobals.current.name;\n const stateParams = clone(this.routerGlobals.params);\n const itemToSave = {\n nameSegments,\n app: appName,\n state,\n stateParams,\n };\n\n if (this.isItemEqualLastSaved(itemToSave)) {\n return;\n }\n\n this.saveHistoryItem(itemToSave);\n this.history$.next(this._historySettings.historyItems);\n }\n\n getHistory() {\n return this.history$.asObservable();\n }\n}\n\nexport interface HistoryItem {\n nameSegments: string[];\n app: AppName;\n state: string;\n stateParams: object;\n}\n\nexport class HistorySettings implements BaseSettings {\n public readonly name = 'HistorySettings';\n version: number;\n historyItems: HistoryItem[];\n getDefault(): HistorySettings {\n return {\n version: 2,\n historyItems: [],\n } as HistorySettings;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { DataService, DataServiceHelper } from 'src/app/core/data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { HeaderParams } from 'src/app/shared/models/header-params.model';\n\nclass DataServiceHotHelper extends DataServiceHelper {\n constructor(\n public editingSessionId: string,\n public applicationId: string,\n ) {\n super();\n }\n\n public override getOptionsWithHeaders(\n headerParams: HeaderParams,\n existOptions?: Record,\n ): Record {\n const options = super.getOptionsWithHeaders(headerParams, existOptions);\n options.headers = options.headers.set(\n 'X-Editing-Session-Id',\n this.editingSessionId,\n );\n options.headers = options.headers.set(\n 'X-Application-Id',\n this.applicationId,\n );\n\n return options;\n }\n}\n\n@Injectable()\nexport class DataServiceHot extends DataService {\n public readonly applicationId = Guid.generate();\n\n protected override helper: DataServiceHelper = new DataServiceHotHelper(\n this.entityId,\n this.applicationId,\n );\n\n constructor(\n http: HttpClient,\n @Inject('entityId') protected entityId,\n ) {\n super(http);\n }\n}\n","/**\n * Indirect changes.\n *\n * @example RequestBag<{TimesheetLine?: TimesheetLine, TimeAllocation?: TimeAllocation}>\n */\nexport interface RequestBag> {\n added?: { [K in keyof T]: Array> };\n deleted?: { [K in keyof T]: string[] };\n updated?: { [K in keyof T]: Array> };\n applicationId?: string;\n}\n","export * from './hot-changes.model';\nexport * from './data-hot.service';\nexport * from './websocket-hot-changes.service';\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { DataServiceHot } from 'src/app/core/hot-changes/data-hot.service';\nimport { WebSocketsService } from 'src/app/core/web-sockets.service';\n\n@Injectable()\nexport class WebSocketHotChangesService\n extends WebSocketsService\n implements OnDestroy\n{\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private readonly dataServiceHot = inject(DataService) as DataServiceHot;\n\n constructor(@Inject('entityId') public entityId) {\n super();\n\n this.initSignalR('changes').then((connection) => {\n connection.send('SubscribeToSession', this.entityId);\n connection.on(\n 'EntityChanged',\n (changes: unknown & { applicationId: string }) => {\n if (changes.applicationId !== this.dataServiceHot.applicationId) {\n this.changesSubject.next(changes);\n }\n },\n );\n });\n }\n\n public ngOnDestroy(): void {\n this.connection?.send('UnsubscribeFromSession', this.entityId);\n this.connection?.stop();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../auth.service';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/**\n * Перехват запрос к API и добавление заголовка аутентификации.\n */\n@Injectable()\nexport class ApiAuthInterceptor implements HttpInterceptor {\n constructor(private auth: AuthService) {}\n intercept(\n request: HttpRequest,\n next: HttpHandler,\n ): Observable> {\n return this.auth.getAuthorizationHeaderValue().pipe(\n catchError((error) =>\n throwError(\n new Exception('Authorization Header was not received.', error),\n ),\n ),\n switchMap((tokenValue) => {\n if (!tokenValue) {\n throwError(new Exception('inner', 'Authorization Header is empty.'));\n }\n\n let headers = request.headers.set('Authorization', tokenValue);\n\n if (this.auth.substitutedEmail) {\n headers = headers.set('WP-LoginAs', this.auth.substitutedEmail);\n }\n\n headers = headers.set('ngsw-bypass', 'true');\n\n const requestClone = request.clone({\n headers,\n });\n\n return next.handle(requestClone);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpResponse,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { EMPTY, Observable, throwError } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { DataService } from '../data.service';\nimport { AuthService } from '../auth.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LogService } from '../log.service';\n\n/**\n * Перехват и трансформация ответов API.\n */\n@Injectable()\nexport class ApiResponseInterceptor implements HttpInterceptor {\n constructor(\n private log: LogService,\n private data: DataService,\n private auth: AuthService,\n ) {}\n\n intercept(\n req: HttpRequest,\n next: HttpHandler,\n ): Observable> {\n return next.handle(req).pipe(\n catchError((errorResponse: HttpErrorResponse) => {\n // Проблема с токеном.\n if (errorResponse.status === 401) {\n this.log.error(\n '401 Unauthorized Error Response. Client will be signed out.',\n );\n this.auth.signOut();\n return EMPTY;\n }\n\n this.data.setResponseStatus({\n url: req.url,\n code: errorResponse.status,\n });\n\n if (\n errorResponse.error instanceof Blob &&\n errorResponse.status === 500\n ) {\n return throwError(errorResponse.error.text());\n }\n\n if (errorResponse.status === 0) {\n return throwError(new Exception('Network', 'Connection error.'));\n }\n\n // В режиме замещения проблема с замещаемым.\n if (\n errorResponse.status === 403 &&\n errorResponse.error?.error?.code ===\n Exception.BtSubstitutionException.code\n ) {\n this.auth.stopSubstituting();\n return EMPTY;\n }\n\n if (errorResponse.status === 403 && !errorResponse.error?.error) {\n return throwError(\n new Exception(errorResponse.status.toString(), 'Forbidden.'),\n );\n }\n\n if (errorResponse.status === 304) {\n return throwError(new Exception('304', 'Not Modified'));\n }\n\n // Если ответ OData.\n if (errorResponse.error?.error) {\n return throwError(errorResponse.error.error);\n }\n\n return throwError(Exception.UnexpectedError);\n }),\n\n map((event) => {\n if (event instanceof HttpResponse) {\n if (event.url.indexOf('/odata') !== -1 && event.body != null) {\n this.data.setResponseStatus({\n url: req.url,\n code: event.status,\n });\n\n const eventBody = event.body;\n const exceptionKeys = ['@odata.count'];\n let keys = Object.keys(event.body);\n let responseBody = {};\n\n // Preserve exception odata alias keys.\n if (keys?.length) {\n keys = keys.filter(\n (k) =>\n k.indexOf('@odata') !== 0 ||\n exceptionKeys.some((key) => key === k),\n );\n } else {\n responseBody = eventBody;\n }\n\n if (keys.length === 1 && keys[0] === 'value') {\n // Replace event body by value key if it's the only one.\n responseBody = eventBody.value;\n } else {\n // Remove odata prefix from exceptionKeys.\n keys.forEach((k) => {\n responseBody[k.replace('@odata.', '')] = eventBody[k];\n });\n }\n\n return event.clone({ body: responseBody });\n }\n }\n return event;\n }),\n );\n }\n}\n","import {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n META_ENTITY_TYPE,\n LIST,\n MASS_OPERATION_PARAMETERS,\n} from 'src/app/shared/tokens';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Observable, Subject, firstValueFrom, forkJoin, merge, of } from 'rxjs';\nimport { debounceTime, map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { EntityTypeLifecycleInfo } from 'src/app/shared/models/entities/lifecycle/entity-type-lifecycle-info.model';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { uniq } from 'lodash';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport _ from 'lodash';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { MassOperationComponent } from 'src/app/shared/components/mass-operation/mass-operation.component';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { ChangeStateParams } from 'src/app/shared/models/entities/lifecycle/transition-form.model';\nimport { TransitionFormModalComponent } from 'src/app/shared/components/features/transition-form-modal/transition-form-modal.component';\nimport { AppService } from 'src/app/core/app.service';\n\n@Injectable()\nexport class LifecycleListService {\n private destroyRef = inject(DestroyRef);\n private lcInfoRequestingCancelled$ = new Subject();\n private readonly filterDebounce = 100;\n\n constructor(\n @Optional()\n @Inject(META_ENTITY_TYPE)\n private metaEntityType: string,\n @Optional()\n @Inject(MASS_OPERATION_PARAMETERS)\n private massOperationParameters: MassOperationParameters,\n @Inject(LIST) private list: List,\n private actionPanelService: ActionPanelService,\n private data: DataService,\n private gridService: GridService,\n private listService: EntityListService,\n private filterService: FilterService,\n private modalService: NgbModal,\n private navigationService: NavigationService,\n private entityTypeService: EntityTypesService,\n private appService: AppService,\n ) {\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groups) => {\n if (groups.length) {\n this.selectedChangedHandler();\n } else {\n this.clearActionPanel();\n }\n });\n\n merge(filterService.values$, filterService.allowInactive$)\n .pipe(\n debounceTime(this.filterDebounce),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.selectedChangedHandler();\n });\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.gridService.clearSelectedGroups();\n this.clearActionPanel();\n });\n }\n\n private getCollectionName(): Observable {\n return this.metaEntityType\n ? this.entityTypeService.getEntityTypeCollection(this.metaEntityType)\n : of(this.list.dataCollection);\n }\n\n /**\n * Set actions to action panel\n *\n * @param lifecycleInfo EntityTypeLifecycleInfo\n * @private\n */\n private setActions(lifecycleInfo: EntityTypeLifecycleInfo) {\n this.clearActionPanel();\n const actions: MenuAction[] = lifecycleInfo.transitions.map(\n (transition) => ({\n name: transition.id,\n hint: transition.name,\n title: transition.name,\n isVisible: true,\n isBusy: false,\n lifecycle: {\n actionType: 'setState',\n stateId: transition.nextStateId,\n },\n handler: () => this.setState(transition),\n }),\n );\n\n this.actionPanelService.set([\n ...this.actionPanelService.actions,\n {\n name: 'setState',\n hint: 'shared.lifecycle',\n title: 'shared.lifecycle',\n isVisible: true,\n isBusy: false,\n isDropDown: true,\n actions,\n },\n ]);\n }\n\n /**\n * Open modal for setting state for selected entities.\n *\n * @param transition Transition.\n * @private\n */\n private async setState(transition: any): Promise {\n const collection = await firstValueFrom(this.getCollectionName());\n const items: any[] = this.gridService.selectedGroupsValue;\n let ids: string[] = this.gridService.selectedGroupsValue.map((g) => g.id);\n\n if (this.gridService.isAllSelected) {\n ids = await firstValueFrom(\n this.data\n .collection(this.list.dataCollection)\n .query({\n ...MassOperationParameters.getSelectQuery(\n this.massOperationParameters,\n ),\n filter: [\n ...this.filterService.getODataFilter(),\n ...this.listService.contextFilter,\n ],\n })\n .pipe(\n tap((entities) => entities.forEach((el) => items.push(el))),\n map((entities) =>\n uniq(\n entities.map((entity) =>\n this.massOperationParameters.entityPropertyName\n ? entity[this.massOperationParameters.entityPropertyName].id\n : entity.id,\n ),\n ),\n ),\n ),\n );\n }\n\n if (!ids.length) {\n return;\n }\n\n let data: ChangeStateParams = {\n stateId: transition.nextStateId,\n transitionFormValue: {\n comment: null,\n propertyValues: [],\n },\n };\n\n if (transition.hasTransitionForm) {\n const ref = this.modalService.open(TransitionFormModalComponent);\n const instance = ref.componentInstance as TransitionFormModalComponent;\n\n instance.stateId = transition.nextStateId;\n instance.entityId = ids[0];\n instance.collection = collection;\n instance.transitionId = transition.id;\n instance.metaEntity = this.appService.getMetaEntity(this.metaEntityType);\n data = await firstValueFrom(merge(ref.closed, ref.dismissed));\n }\n\n if (!data) {\n return;\n }\n\n const ref = this.modalService.open(MassOperationComponent);\n const instance = ref.componentInstance as MassOperationComponent;\n\n instance.massOperationType = 'changeState';\n instance.changeStateParams = data;\n instance.entityIds = ids;\n instance.items = _.uniqBy(items, 'id');\n instance.collection = collection;\n instance.state = this.massOperationParameters.state;\n instance.entityPropertyName =\n this.massOperationParameters.entityPropertyName;\n\n ref.result.then(\n () => {\n this.gridService.selectGroup(null);\n this.listService.reload();\n },\n () => null,\n );\n }\n\n /**\n * Clear all actions.\n *\n * @private\n */\n private clearActionPanel() {\n this.actionPanelService.set(\n this.actionPanelService.actions.filter(\n (action) => action.name !== 'setState',\n ),\n );\n }\n\n /**\n * Gets state id and kind id (if entity has `lifecycleKindProperty`) for selected entities.\n * Null if selected entity have different states or kind ids.\n *\n * @private\n */\n private getStateIdAndKindId(): Observable<{\n stateId: string;\n kindId: string | null;\n } | null> {\n const kindProperty = this.appService.getMetaEntity(\n this.metaEntityType,\n ).lifecycleKindProperty;\n const nestedProperty = this.massOperationParameters.entityPropertyName;\n\n if (this.gridService.isAllSelected) {\n return this.data\n .collection(this.list.dataCollection)\n .query({\n transform: {\n filter: [\n ...this.filterService.getODataFilter(),\n ...this.listService.contextFilter,\n ],\n ...MassOperationParameters.getGroupByStateIdQuery(\n this.massOperationParameters,\n kindProperty,\n ),\n },\n })\n .pipe(\n map((result) =>\n result.length !== 1\n ? null\n : {\n stateId: nestedProperty\n ? result[0][nestedProperty].stateId\n : result[0].stateId,\n kindId: !kindProperty\n ? null\n : nestedProperty\n ? result[0][nestedProperty][\n kindProperty.toLowerCase() + 'Id'\n ]\n : result[0][kindProperty.toLowerCase() + 'Id'],\n },\n ),\n );\n } else {\n const ids = _.uniqWith(\n this.gridService.selectedGroups$.getValue().map((row) => {\n const value = row.getRawValue();\n return {\n stateId: value.state.id,\n kindId: kindProperty ? value[kindProperty.toLowerCase()]?.id : null,\n };\n }),\n _.isEqual,\n );\n\n return of(ids.length !== 1 ? null : ids[0]);\n }\n }\n\n /**\n * Selection change handler. Triggers on any select action.\n *\n * @private\n */\n private selectedChangedHandler(): void {\n this.lcInfoRequestingCancelled$.next();\n\n forkJoin([this.getStateIdAndKindId(), this.getCollectionName()])\n .pipe(\n switchMap(([ids, collection]) => {\n if (ids) {\n const data: Record = {\n stateId: ids.stateId,\n kindId: ids.kindId,\n };\n\n return this.data\n .collection(collection)\n .function('GetEntityTypeLifecycleInfo')\n .get(data, null);\n } else {\n return of(null);\n }\n }),\n takeUntil(this.lcInfoRequestingCancelled$),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((lcInfo) => {\n if (lcInfo && this.gridService.selectedGroupsValue.length) {\n this.setActions(lcInfo);\n } else {\n this.clearActionPanel();\n }\n });\n }\n}\n","import {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n Injector,\n Optional,\n} from '@angular/core';\nimport { DataService } from './data.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n LifecycleInfo,\n LifecycleInfoTransition,\n} from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport { BlockUIService } from './block-ui.service';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n firstValueFrom,\n merge,\n} from 'rxjs';\nimport { ActionPanelService } from './action-panel.service';\nimport { filter, shareReplay, switchMap } from 'rxjs/operators';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\nimport { TransitionFormModalComponent } from 'src/app/shared/components/features/transition-form-modal/transition-form-modal.component';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { AutosaveService } from 'src/app/shared/services/autosave.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { WorkflowActionCommentFormComponent } from 'src/app/shared/components/features/workflow-action-comment-form/workflow-action-comment-form.component';\nimport { NavigationService } from './navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport _ from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\nimport { MetaEntity } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\n\n@Injectable()\nexport class LifecycleService {\n private _refreshLifecycleInfo$ = new BehaviorSubject(undefined);\n public lifecycleInfo$: Observable =\n this._refreshLifecycleInfo$.pipe(\n switchMap(() => this.getLifecycleInfo()),\n shareReplay(1),\n );\n\n private reloadSubject = new Subject();\n protected lifecycleInfo: LifecycleInfo;\n\n private destroyRef = inject(DestroyRef);\n\n /** Fires when the used component needs to be reloaded. */\n public reload$ = this.reloadSubject.asObservable();\n\n protected readonly actionPanelService: ActionPanelService;\n\n get autosavePromise(): Promise {\n return (\n this.savingQueueService?.save() ??\n this.autosaveService?.save() ??\n Promise.resolve()\n );\n }\n\n constructor(\n @Inject('entityId') public entityId: string,\n @Optional() private autosaveService: AutosaveService,\n @Optional() private savingQueueService: SavingQueueService,\n @Inject(META_ENTITY_TYPE) private metaEntityType: string,\n protected rootActionPanelService: ActionPanelService,\n protected data: DataService,\n protected message: MessageService,\n protected modal: NgbModal,\n private injector: Injector,\n protected blockUI: BlockUIService,\n private navigationService: NavigationService,\n private app: AppService,\n private entityTypeService: EntityTypesService,\n private offCanvasService: OffCanvasService,\n ) {\n this.actionPanelService = this.offCanvasService.offCanvasEntry\n ? offCanvasService.offCanvasActionPanelService\n : rootActionPanelService;\n\n // Register actions.\n this.lifecycleInfo$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((info) => {\n this.lifecycleInfo = info;\n this.actionPanelService.registerLifecycle(info);\n });\n\n this.actionPanelService.run$\n .pipe(\n filter((a) => !!a.lifecycle),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((action) => {\n if (action.lifecycle.actionType === 'setState') {\n this.setState(action.lifecycle.stateId, action);\n }\n if (action.lifecycle.actionType === 'performTask') {\n this.performWorkflowTask(action);\n }\n if (action.lifecycle.actionType === 'startWorkflow') {\n this.startWorkflow(action.lifecycle.workflowId, action);\n }\n if (action.lifecycle.actionType === 'cancelWorkflow') {\n this.cancelWorkflow(action);\n }\n });\n }\n\n /** The hook is called on error during SetState and PerformWorkflowTask.\n * If return true basic logic is not called.\n */\n public onActionError = (error: Exception): boolean => false;\n\n /** Reload information. */\n public reloadLifecycle() {\n this._refreshLifecycleInfo$.next();\n }\n\n /**\n * Gets collection name of current entity type.\n *\n * @returns collection name.\n */\n public getCollection(): Observable {\n return this.entityTypeService.getEntityTypeCollection(this.metaEntityType);\n }\n\n private getLifecycleInfo(): Observable {\n return this.getCollection().pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.entityId)\n .function('GetLifeCycleInfo')\n .get(),\n ),\n );\n }\n\n /** Set entity state. */\n public setState(\n stateId: string,\n action?: MenuAction,\n transition?: LifecycleInfoTransition,\n ) {\n this.autosavePromise.then(\n async () => {\n const collection = await firstValueFrom(this.getCollection());\n const executedTransition =\n transition ??\n this.lifecycleInfo.transitions.find(\n (transitionItem) => transitionItem.label === action.title,\n );\n\n let data: any = {\n stateId,\n transitionFormValue: {\n comment: null,\n propertyValues: [],\n },\n };\n\n if (executedTransition.hasTransitionForm) {\n const ref = this.modal.open(TransitionFormModalComponent);\n const instance =\n ref.componentInstance as TransitionFormModalComponent;\n\n instance.stateId = stateId;\n instance.entityId = this.entityId;\n instance.collection = collection;\n instance.transitionId = executedTransition.id;\n instance.metaEntity = this.getMetaEntity();\n data = await firstValueFrom(merge(ref.closed, ref.dismissed));\n }\n\n if (data && _.isObject(data)) {\n this.sendSetStateRequest(collection, this.entityId, data, action);\n }\n },\n () => null,\n );\n }\n\n public sendSetStateRequest(\n collection: string,\n entityId: string,\n data: object,\n action?: MenuAction,\n ) {\n this.blockUI.start();\n\n if (action) {\n this.actionPanelService.action(action.name).start();\n }\n\n return firstValueFrom(\n this.data\n .collection(collection)\n .entity(entityId)\n .action('SetState')\n .execute(data),\n ).then(\n () => {\n this.blockUI.stop();\n if (action) {\n this.actionPanelService.action(action.name).stop();\n }\n this.reloadLifecycle();\n this.reloadSubject.next();\n },\n (error: Exception) => {\n this.blockUI.stop();\n if (action) {\n this.actionPanelService.action(action.name).stop();\n }\n\n if (!this.onActionError(error)) {\n this.message.errorDetailed(error);\n }\n },\n );\n }\n\n /**\n * Send request to backend that perform workflow task\n * @param taskId Workflow task Id.\n * @param actionName Workflow action name.\n * @param data Data for request.\n * @returns Promise.\n */\n public sendPerformWorkflowTaskRequest(\n taskId: string,\n actionName: string,\n data: object,\n ): Promise {\n this.actionPanelService.action(actionName).start();\n this.blockUI.start();\n\n return firstValueFrom(\n this.data\n .collection('WorkflowTasks')\n .entity(taskId)\n .action('PerformWorkflowTask')\n .execute(data),\n ).then(\n () => {\n this.blockUI.stop();\n this.actionPanelService.action(actionName).stop();\n this.reloadLifecycle();\n this.reloadSubject.next();\n },\n (error: Exception) => {\n this.blockUI.stop();\n this.actionPanelService.action(actionName).stop();\n if (!this.onActionError(error)) {\n this.message.errorDetailed(error);\n }\n },\n );\n }\n\n /** Perform Workflow task.\n *\n * @param action - Action for performing\n **/\n public performWorkflowTask(action: MenuAction) {\n const taskId = action.lifecycle.taskId;\n const actionId = action.lifecycle.workflowActionId;\n const executedTask = this.lifecycleInfo.workflowTaskActions.find(\n (workflowTask) => workflowTask.id === actionId,\n );\n\n this.autosavePromise.then(\n async () => {\n let data: any = {\n actionId,\n actionFormValue: {\n comment: null,\n propertyValues: [],\n },\n };\n if (executedTask.hasActionForm) {\n const ref = this.modal.open(WorkflowActionCommentFormComponent);\n\n const instance =\n ref.componentInstance as WorkflowActionCommentFormComponent;\n instance.actionId = actionId;\n instance.entityId = this.entityId;\n instance.collection = await firstValueFrom(this.getCollection());\n instance.taskId = taskId;\n instance.actionName = action.name;\n instance.metaEntity = this.getMetaEntity();\n\n data = await firstValueFrom(merge(ref.closed, ref.dismissed));\n }\n if (data && _.isObject(data)) {\n await this.sendPerformWorkflowTaskRequest(taskId, action.name, data);\n }\n },\n () => null,\n );\n }\n\n /** Start workflow. */\n public startWorkflow(workflowId: string, action: MenuAction) {\n this.autosavePromise.then(\n () => {\n this.actionPanelService.action(action.name).start();\n this.blockUI.start();\n\n const data = {\n workflowId,\n };\n\n this.getCollection()\n .pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.entityId)\n .action('StartWorkflow')\n .execute(data),\n ),\n )\n .subscribe({\n next: () => {\n this.blockUI.stop();\n this.actionPanelService.action(action.name).stop();\n this.reloadLifecycle();\n this.reloadSubject.next();\n },\n error: (error: Exception) => {\n this.actionPanelService.action(action.name).stop();\n this.blockUI.stop();\n\n if (!this.onActionError(error)) {\n this.message.errorDetailed(error);\n }\n },\n });\n },\n () => null,\n );\n }\n\n /** Cancel workflow */\n private cancelWorkflow(action: MenuAction) {\n this.autosavePromise.then(\n () => {\n this.actionPanelService.action(action.name).start();\n this.blockUI.start();\n\n this.getCollection()\n .pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.entityId)\n .action('CancelActiveWorkflow')\n .execute(),\n ),\n )\n .subscribe({\n next: () => {\n this.blockUI.stop();\n this.actionPanelService.action(action.name).stop();\n this.reloadLifecycle();\n this.reloadSubject.next();\n },\n error: (error: Exception) => {\n this.actionPanelService.action(action.name).stop();\n this.message.errorDetailed(error);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n }\n\n private getMetaEntity(): MetaEntity {\n return this.app.getMetaEntity(this.metaEntityType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { BaseSettings } from '../shared/models/inner/base-settings.interface';\n\n/** Сервис для работы с локальными настройками. */\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalConfigService {\n constructor(private localStorageService: LocalStorageService) {}\n\n /** Возвращает конфигурацию для типа. */\n public getConfig(factory: new () => T): T {\n const settings = new factory();\n const storageName = `cfg_${settings.name}`;\n\n const storedSettings = this.localStorageService.retrieve(storageName) as T;\n\n if (storedSettings?.version >= settings.getDefault().version) {\n return storedSettings;\n }\n\n return settings.getDefault() as T;\n }\n\n /** Сохраняет для типа. */\n public setConfig(factory: new () => T, value: T) {\n const settings = new factory();\n const storageName = `cfg_${settings.name}`;\n\n value.version = settings.getDefault().version;\n this.localStorageService.store(storageName, value);\n }\n}\n","/* eslint-disable no-console */\n\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LogService {\n // TRACE|DEBUG|INFO|LOG|WARN|ERROR|FATAL|OFF\n\n public info(message: string) {\n console.info(message);\n }\n\n public error(message: string) {\n console.error(message);\n }\n\n public log(message: string) {\n console.info(`%c${message}`, 'color: darkgreen');\n }\n\n public debug(message: any) {\n if (environment.production) {\n return;\n }\n\n if (typeof message === 'object' && message !== null) {\n message = JSON.stringify(message);\n }\n console.info(`%c${message}`, 'color: gray');\n }\n\n /** Tracks view page event.\n *\n * @param name - name of page\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n public trackPageView(name: string) {}\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { MenuComponent } from '../shared/components/features/menu/menu.component';\nimport { InfoPopupService } from '../shared/components/features/info-popup/info-popup.service';\nimport {\n DefaultPopperModifier,\n InfoPopupEntry,\n} from 'src/app/shared/components/features/info-popup/info-popup.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n private _events: Array = ['click'];\n private menuEl: HTMLDivElement;\n\n constructor(\n private _ngZone: NgZone,\n private infoPopupService: InfoPopupService,\n @Inject(DOCUMENT) private document,\n ) {\n this._onClickBody = this._onClickBody.bind(this);\n }\n\n /**\n * Opens menu.\n *\n * @param event MouseEvent\n * @param items Action's buttons of menu\n * @param context Data for callback `allowedFn((context) => boolean)` (`MenuItem` property)\n *\n */\n public open(event: MouseEvent, items: MenuItem[], context?: any): void {\n this.close();\n\n this.menuEl = this.document.createElement('div');\n this.menuEl.classList.add('position-absolute');\n this.menuEl.classList.add('d-block');\n this.menuEl.classList.add('fixed');\n this.menuEl.style.zIndex = '9999';\n\n this.menuEl.style.left = `${event.clientX}px`;\n this.menuEl.style.top = `${event.clientY}px`;\n\n const popperModifiers: DefaultPopperModifier[] = [\n {\n name: 'offset',\n options: {\n offset: [0, 0],\n },\n },\n ];\n const popupEntry: InfoPopupEntry = {\n target: this.menuEl,\n data: {\n component: MenuComponent,\n componentParams: {\n inputs: {\n menuItems: items,\n context,\n },\n },\n },\n popperModifiers,\n placement: 'bottom-start',\n isHideArrow: true,\n containerStyles: { padding: '8px 0px' },\n mutationObserverElement: 'popup',\n };\n\n this.document.body.appendChild(this.menuEl);\n this.infoPopupService.open(popupEntry);\n this._initClickOutsideListener();\n }\n\n public close() {\n if (this.menuEl) {\n this._removeClickOutsideListener();\n this.menuEl.remove();\n }\n }\n\n private _onClickBody(ev: Event) {\n if (\n this.menuEl &&\n this.document.body.contains(ev.target) &&\n !this.menuEl.contains(ev.target as Node)\n ) {\n this.close();\n }\n }\n\n private _initClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n this.document.body.addEventListener(e, this._onClickBody),\n );\n });\n }\n\n private _removeClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n this.document.body.removeEventListener(e, this._onClickBody),\n );\n });\n }\n}\n\nexport interface MenuItem {\n name: string;\n label: string | ((context?: any) => string);\n handlerFn: (context?: any) => void;\n iconClass?: string;\n allowedFn?: (context?: any) => boolean;\n /** Menu item's sub actions. If `null`, `undefined` or `[]` menu item won't be shown. */\n subActions?: MenuSubItem[];\n /** MenuSubItem factory. A callback with promise. */\n subActionsLazyResolver?: (context?: any) => Promise;\n}\n\nexport type MenuSubItem = Omit<\n MenuItem,\n 'subActions' | 'subActionsLazyResolver'\n>;\n","import { Injectable } from '@angular/core';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageComponent } from '../shared/components/chrome/message/message.component';\nimport { Exception } from '../shared/models/exception';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageService {\n options: NgbModalOptions = {\n backdrop: false,\n };\n\n constructor(\n private translate: TranslateService,\n private modalService: NgbModal,\n ) {}\n\n /**\n * Показывает сообщение.\n *\n * @param message - текст сообщения.\n * @param header - заголовок окна.\n * @param items - дополнительные строки (вывод списком в окне сообщения).\n * @param buttonOkText - текст кнопки.\n * @param buttonCancelText - текст кнопки.\n */\n public message(\n message: string,\n header?: string,\n items?: string[],\n buttonOkText?: string,\n buttonCancelText?: string,\n ): Promise {\n const refModal = this.modalService.open(MessageComponent, this.options);\n refModal.componentInstance.message = message;\n refModal.componentInstance.header = header\n ? header\n : this.translate.instant('shared.defaultMessageHeader');\n refModal.componentInstance.items = items;\n refModal.componentInstance.buttonOk = buttonOkText\n ? buttonOkText\n : this.translate.instant('shared.actions.ok');\n\n refModal.componentInstance.buttonCancel = buttonCancelText;\n return refModal.result;\n }\n\n public error(message: string): Promise {\n const refModal = this.modalService.open(MessageComponent, this.options);\n refModal.componentInstance.message = message;\n refModal.componentInstance.header = this.translate.instant(\n 'shared.errorMessageModalHeader',\n );\n refModal.componentInstance.buttonOk =\n this.translate.instant('shared.actions.ok');\n return refModal.result;\n }\n\n public errorDetailed(error: Exception, header: string = null): Promise {\n const items: string[] = [];\n\n if (error.details && Array.isArray(error.details)) {\n error.details.forEach((errorDetail: Exception) => {\n items.push(errorDetail.message);\n });\n }\n\n const refModal = this.modalService.open(MessageComponent, this.options);\n refModal.componentInstance.message = error.message;\n refModal.componentInstance.header =\n header ?? this.translate.instant('shared.errorMessageModalHeader');\n refModal.componentInstance.buttonOk =\n this.translate.instant('shared.actions.ok');\n refModal.componentInstance.items = items;\n return refModal.result;\n }\n\n public errorLocal = function (message: string): Promise {\n return this.error(this.translate.instant(message));\n };\n\n public confirm(\n message: string,\n header?: string,\n confirmText?: string,\n cancelText?: string,\n ): Promise {\n const refModal = this.modalService.open(MessageComponent, this.options);\n refModal.componentInstance.message = message;\n refModal.componentInstance.header = header\n ? header\n : this.translate.instant('shared.confirmation');\n refModal.componentInstance.buttonOk = confirmText\n ? confirmText\n : this.translate.instant('shared.actions.confirm');\n refModal.componentInstance.buttonCancel = cancelText\n ? cancelText\n : this.translate.instant('shared.actions.cancel');\n\n return refModal.result;\n }\n\n public confirmLocal(\n message: string,\n header?: string,\n confirmText?: string,\n cancelText?: string,\n ): Promise {\n return this.confirm(\n this.translate.instant(message),\n header ? this.translate.instant(header) : null,\n confirmText ? this.translate.instant(confirmText) : null,\n cancelText ? this.translate.instant(cancelText) : null,\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Subject,\n BehaviorSubject,\n filter,\n startWith,\n forkJoin,\n Observable,\n} from 'rxjs';\nimport _ from 'lodash';\nimport {\n TransitionService,\n Transition,\n StateService,\n UIRouterGlobals,\n} from '@uirouter/core';\nimport {\n Navigation,\n NavigationGroup,\n NavigationItem,\n NavigationItemCustom,\n NavigationView,\n} from '../shared/models/navigation/navigation';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActionPanelService } from './action-panel.service';\nimport { DataService } from './data.service';\nimport { AppService } from './app.service';\nimport { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';\nimport { LogService } from './log.service';\nimport { AppName } from '../shared/globals/app-name';\nimport buildQuery from 'odata-query';\nimport { Guid } from '../shared/helpers/guid';\nimport { clone, cloneDeep } from 'lodash';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { MY_APP_NAVIGATION } from 'src/app/shared/navigations/my-app.navigation';\nimport { TEAM_APP_NAVIGATION } from 'src/app/shared/navigations/team-app.navigation';\nimport { PROJECTS_APP_NAVIGATION } from 'src/app/shared/navigations/projects-app.navigation';\nimport { BILLING_APP_NAVIGATION } from 'src/app/shared/navigations/billing-app.navigation';\nimport { ANALYTICS_APP_NAVIGATION } from 'src/app/shared/navigations/analytics-app.navigation';\nimport { SETTINGS_APP_NAVIGATION } from 'src/app/shared/navigations/settings-app.navigation';\nimport { FINANCE_APP_NAVIGATION } from 'src/app/shared/navigations/finance-app.navigation';\nimport { RESOURCE_APP_NAVIGATION } from 'src/app/shared/navigations/resources-app.navigation';\nimport { CLIENTS_APP_NAVIGATION } from 'src/app/shared/navigations/clients-app.navigation';\nimport { HELP_DESK_APP_NAVIGATION } from 'src/app/shared/navigations/help-desk-app.navigation';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n private navigationSubject = new BehaviorSubject(null);\n public navigation$ = this.navigationSubject\n .asObservable()\n .pipe(filter((n) => !!n));\n\n private routeSubject = new Subject();\n public route$ = this.routeSubject.asObservable();\n public route: RouteItem[] = [];\n\n private previousStateSubject = new BehaviorSubject<{\n name: string;\n params: any;\n }>(null);\n public previousState$ = this.previousStateSubject.asObservable();\n\n private navigationItemSubject = new BehaviorSubject(null);\n public navigationItem$ = this.navigationItemSubject\n .asObservable()\n .pipe(filter((p) => !!p));\n\n private indicatorUpdatedSubject = new Subject();\n public indicatorUpdated$ = this.indicatorUpdatedSubject.asObservable();\n public indicatorValues = new Map();\n\n public currentNavigation: Navigation;\n public selectedNavigationItem: NavigationItem | null = null;\n\n /**\n * Names of navigation items that must be destroyed when router state changes.\n * It used to delete of temporary (context) items.\n */\n private tempItems: { name: string; keepNavInState: string }[] = [];\n private idleTime = 2 * 60; // sec.\n /** How often do we check the expiration of indicators? */\n private indicatorsCheckingTime = 30 * 1000; // ms.\n /** After this value has expired, the indicator must be updated. */\n private indicatorsStaleTime = 5 * 60 * 1000; // ms.\n private indicatorsTimer: ReturnType;\n private _appToNavigationMap = new Map([\n [AppName.My, MY_APP_NAVIGATION],\n [AppName.Team, TEAM_APP_NAVIGATION],\n [AppName.Projects, PROJECTS_APP_NAVIGATION],\n [AppName.Clients, CLIENTS_APP_NAVIGATION],\n [AppName.HelpDesk, HELP_DESK_APP_NAVIGATION],\n [AppName.Billing, BILLING_APP_NAVIGATION],\n [AppName.Analytics, ANALYTICS_APP_NAVIGATION],\n [AppName.Settings, SETTINGS_APP_NAVIGATION],\n [AppName.Finance, FINANCE_APP_NAVIGATION],\n [AppName.Resources, RESOURCE_APP_NAVIGATION],\n ]);\n private appToNavigationMapDefault = new Map();\n private stateByEntityType: {\n [entityType: string]: string;\n } = {\n dashboard: 'dashboard',\n board: 'board',\n };\n private readonly customizer = (target, source) => {\n if (Array.isArray(target)) {\n return target.map((item) => {\n const srcItem = source.find((s: any) => s.name === item.name);\n return srcItem ? _.mergeWith(item, srcItem, this.customizer) : item;\n });\n }\n };\n\n /** Gets route to store in state (optimized). */\n public get storedRoute(): any[] {\n // Skip the first two step, we know this from navigation.\n const route = this.route?.length > 2 ? cloneDeep(this.route.slice(2)) : [];\n\n // Remove route from all states.\n route.forEach((segment) => {\n delete segment.state.params['route'];\n });\n\n return route;\n }\n\n public get appToNavigationMap(): ReadonlyMap {\n return this._appToNavigationMap;\n }\n\n constructor(\n private log: LogService,\n private app: AppService,\n private actions: ActionPanelService,\n private stateService: StateService,\n private translate: TranslateService,\n private routerGlobals: UIRouterGlobals,\n private localConfigService: LocalConfigService,\n private dataService: DataService,\n transitionService: TransitionService,\n idle: Idle,\n ) {\n idle.setIdle(this.idleTime);\n idle.setTimeout(0);\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\n idle.watch();\n idle.onIdleStart.subscribe(() => {\n log.info(\"User's idle has been started.\");\n this.updateIndicators(false);\n this.stopIndicatorUpdating();\n });\n idle.onIdleEnd.pipe(startWith(true)).subscribe(() => {\n log.info(\"User's idle was stopped.\");\n this.startIndicatorUpdating();\n });\n\n transitionService.onSuccess({}, (trans) => this.onTransitionSuccess(trans));\n transitionService.onStart({}, (trans) => this.onTransitionStart(trans));\n }\n\n public load(navigation: Navigation) {\n this.currentNavigation = cloneDeep(navigation);\n\n // Enrich navigation stateParams by navigation.\n this.currentNavigation.groups.forEach((group) => {\n group.items.forEach((item) => {\n if (!item.stateParams) {\n item.stateParams = {};\n }\n item.stateParams.navigation = item.name;\n });\n });\n\n this.navigationSubject.next(navigation);\n this.updateIndicators(false);\n }\n\n public getNavigationTitle(): string {\n return this.selectedNavigationItem.header;\n }\n\n /**\n * Reloads the current state.\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated\n *\n * @param state The state.\n * */\n public reloadState(state?: string): void {\n this.stateService.reload(state);\n }\n\n /**\n * Return to the back/parent state.\n *\n * @param forceReload Indicates whether to reload when current state is equal to returned one or not.\n * */\n public goToSelectedNavItem(forceReload?: boolean): void {\n if (\n forceReload &&\n this.routerGlobals.current.name === this.selectedNavigationItem.state\n ) {\n this.reloadState();\n return;\n }\n\n this.stateService.go(\n this.selectedNavigationItem.state,\n this.selectedNavigationItem.stateParams,\n );\n }\n\n /** Provides custom navigation view. */\n public initNavigationViews(): void {\n this.updateNavigationGroupByCustom(this.app.navigationItems, 'add');\n this.cacheDefaultNavigation();\n\n if (!this.app.clientProfile.navigationViews?.length) {\n this.app.clientProfile.navigationViews = [];\n\n this._appToNavigationMap.forEach((navigation) => {\n this.app.clientProfile.navigationViews.push(\n this.buildNavigationView(navigation),\n );\n });\n\n this.app.saveProfile();\n }\n\n this._appToNavigationMap.forEach((navigation) => {\n const userNavigationView = this.getNavigationView(navigation.name);\n\n if (userNavigationView) {\n this.mergeNavigationViews(\n userNavigationView,\n this.buildNavigationView(navigation),\n );\n }\n\n _.mergeWith(\n navigation,\n userNavigationView ?? this.buildNavigationView(navigation),\n this.customizer,\n );\n });\n }\n\n /**\n * Saves navigation view to client profile.\n *\n * @param navigation Navigation settings.\n */\n public saveNavigationView(navigation: Navigation): void {\n this._appToNavigationMap.set(navigation.name as AppName, navigation);\n\n _.merge(\n this.getNavigationView(navigation.name),\n this.buildNavigationView(navigation),\n );\n\n this.app.saveProfile();\n\n this.currentNavigation = navigation;\n this.navigationSubject.next(navigation);\n }\n\n /**\n * Sends reset to default navigation view.\n *\n * @param navigation Navigation settings.\n */\n public resetNavigationView(navigation: Navigation): void {\n _.mergeWith(\n navigation,\n this.buildNavigationView(\n this.appToNavigationMapDefault.get(navigation.name as AppName),\n ),\n this.customizer,\n );\n\n this.navigationSubject.next(navigation);\n }\n\n /**\n * Updates navigation relative to custom navigation items.\n *\n * @param items custom navigation items.\n * @param type\n * `add` - adds item to group, if item already exists, then just updates header and hint.\n * `remove' - removes item from group.\n * @param emitEvent Indicates whether to emit current navigation.\n */\n public updateNavigationGroupByCustom(\n items: Partial[],\n type: 'add' | 'remove',\n emitEvent?: boolean,\n ): void {\n for (const itemConfig of items) {\n const navigation =\n this.currentNavigation?.name === itemConfig.area\n ? this.currentNavigation\n : this._appToNavigationMap.get(itemConfig.area as AppName);\n\n if (!navigation) {\n continue;\n }\n\n const group = navigation.groups.find((g) => g.name === itemConfig.group);\n\n if (!group) {\n continue;\n }\n\n const name = `${itemConfig.area}.${itemConfig.entityId}`;\n const index = group.items.findIndex((i) => i.name === name);\n\n switch (type) {\n case 'add': {\n if (index === -1) {\n group.items.push({\n name,\n header: itemConfig.header,\n hint: itemConfig.description,\n state: this.stateByEntityType[_.lowerCase(itemConfig.entityType)],\n stateParams: {\n entityId: itemConfig.entityId,\n navigation: name,\n },\n });\n } else {\n group.items[index].header = itemConfig.header;\n group.items[index].hint = itemConfig.description;\n }\n\n break;\n }\n case 'remove': {\n if (index !== -1) {\n group.items.splice(index, 1);\n }\n\n break;\n }\n default:\n continue;\n }\n }\n\n if (emitEvent) {\n this.navigationSubject.next(this.currentNavigation);\n }\n }\n\n /** Loads custom navigation items and re-init navigation views. */\n public async reloadCustomNavigationItems(): Promise {\n const removedItems = await this.app.loadNavigationItems();\n\n if (removedItems?.length) {\n this.updateNavigationGroupByCustom(removedItems, 'remove');\n }\n\n this.updateNavigationGroupByCustom(this.app.navigationItems, 'add', true);\n }\n\n public createAndSelectNavItem(\n groupName: string,\n keepNavInState: string,\n item: NavigationItem,\n ) {\n const group = this.currentNavigation.groups.find(\n (g) => g.name === groupName,\n );\n\n const existsItem = group.items.find((i) => i.name === item.name);\n\n if (!existsItem) {\n group.items.push(item);\n } else {\n existsItem.header = item.header;\n existsItem.hint = item.hint;\n existsItem.state = item.state;\n existsItem.stateParams = item.stateParams;\n }\n\n this.navigationSubject.next(this.currentNavigation);\n this.tempItems.push({ name: item.name, keepNavInState });\n this.selectNavigationItemBy({ name: item.name });\n }\n\n private buildNavigationView(navigation: Navigation): NavigationView {\n return {\n name: navigation.name,\n groups: navigation.groups.map((group) => ({\n name: group.name,\n items: group.items.map((item) => ({\n name: item.name,\n isVisible: item.isVisible ?? true,\n })),\n })),\n };\n }\n\n private getNavigationView(name: string): NavigationView | null {\n return this.app.clientProfile.navigationViews.find(\n (view) => view.name === name,\n );\n }\n\n private cacheDefaultNavigation(): void {\n this._appToNavigationMap.forEach((navigation) => {\n this.appToNavigationMapDefault.set(\n navigation.name as AppName,\n _.cloneDeep(navigation),\n );\n });\n }\n\n private mergeNavigationViews(\n userNavigation: NavigationView,\n defaultNavigation: NavigationView,\n ): void {\n const defaultGroupsMap = _.keyBy(defaultNavigation.groups, 'name');\n const userGroupsMap = _.keyBy(userNavigation.groups, 'name');\n\n userNavigation.groups = userNavigation.groups\n .filter((group) => defaultGroupsMap[group.name])\n .concat(\n defaultNavigation.groups.filter((group) => !userGroupsMap[group.name]),\n )\n .map((group) => {\n const defaultGroup = defaultGroupsMap[group.name];\n const defaultItemsMap = _.keyBy(defaultGroup.items, 'name');\n const userItemsMap = _.keyBy(group.items, 'name');\n\n group.items = group.items\n .filter((item) => defaultItemsMap[item.name])\n .concat(\n defaultGroup.items.filter((item) => !userItemsMap[item.name]),\n );\n\n return group;\n });\n }\n\n private destroyTempItems(stateName: string) {\n this.tempItems.forEach((item) => {\n if (item.keepNavInState === stateName) {\n return;\n }\n const group = this.getNavigationGroupByItemName(item.name);\n if (!group) {\n return;\n }\n const index = group.items.findIndex((i) => i.name === item.name);\n group.items.splice(index, 1);\n this.navigationSubject.next(this.currentNavigation);\n });\n }\n\n private getNavigationGroupByItemName(name: string): NavigationGroup {\n let result = null;\n this.currentNavigation?.groups.forEach((group) => {\n group.items.forEach((item) => {\n if (item.name === name) {\n result = group;\n }\n });\n });\n return result;\n }\n\n private getNavigationItemBy = (criteria: {\n name?: string;\n state?: string;\n }) => {\n let result = null;\n this.currentNavigation?.groups.forEach((group) => {\n group.items.forEach((item) => {\n if (\n (criteria.name && item.name === criteria.name) ||\n (criteria.state && item.state === criteria.state)\n ) {\n result = item;\n }\n });\n });\n return result;\n };\n\n private selectNavigationItemBy(criteria: { name?: string; state?: string }) {\n const item = this.getNavigationItemBy(criteria);\n\n if (!item || this.selectedNavigationItem?.name === item.name) {\n return;\n }\n\n this.selectedNavigationItem = item;\n this.navigationItemSubject.next(item);\n\n return true;\n }\n\n public getRouteBasis(): RouteItem[] {\n const breadCrumbs: RouteItem[] = [];\n\n if (this.selectedNavigationItem) {\n breadCrumbs.push({\n title: this.translate.instant(\n this.getNavigationGroupByItemName(this.selectedNavigationItem.name)\n .header,\n ),\n id: Guid.generate(),\n });\n\n breadCrumbs.push({\n title: this.translate.instant(this.selectedNavigationItem.header),\n state: {\n name: this.selectedNavigationItem.state,\n params: this.selectedNavigationItem.stateParams,\n },\n id: Guid.generate(),\n });\n }\n return breadCrumbs;\n }\n\n /** Reinitialize route on navigation item select. */\n public resetRoute() {\n this.route = this.getRouteBasis();\n this.propagateRoute();\n }\n\n public propagateRoute() {\n this.routeSubject.next(this.route);\n const previousState = this.getPreviousState();\n this.previousStateSubject.next(previousState);\n }\n\n public addRouteSegment(item: RouteItem) {\n if (!item.id) {\n item.id = Guid.generate();\n }\n\n // Ignore sequenced dupes.\n if (this.route[this.route.length - 1]?.id === item.id) {\n return;\n }\n\n if (!item.state) {\n const newParams = cloneDeep(this.routerGlobals.params);\n delete newParams.routeMode;\n item.state = {\n name: this.routerGlobals.current.name,\n params: newParams,\n };\n }\n\n if (item.localTitle) {\n item.title = this.translate.instant(item.localTitle);\n }\n\n this.route.push(item);\n this.propagateRoute();\n }\n\n private onTransitionStart(trans: Transition) {\n const toState = trans.to();\n const params = trans.params();\n\n if (params?.routeHeader && params?.routeMode === RouteMode.continue) {\n const newParams = cloneDeep(params);\n delete newParams.routeMode;\n const state = {\n name: toState.name,\n params: newParams,\n };\n\n this.addRouteSegment({\n id: toState.name,\n localTitle: params?.routeHeader,\n state,\n });\n }\n\n // Add parameter 'route' if it doesn't already exist (and redirect).\n if (params?.routeMode === RouteMode.continue) {\n const newParams = clone(params);\n newParams['navigation'] = this.selectedNavigationItem.name;\n delete newParams.routeMode;\n\n if (this.storedRoute.length) {\n newParams['route'] = cloneDeep(this.storedRoute);\n }\n\n const target = trans.router.stateService.target(\n trans.to().name,\n newParams,\n { inherit: false },\n );\n\n return target;\n }\n\n // Add 'navigation' param if it doesn't already exist (and redirect).\n if (\n this.selectedNavigationItem &&\n !params?.navigation &&\n toState.params &&\n Object.keys(toState.params).indexOf('navigation') > -1\n ) {\n const newParams = clone(params);\n newParams['navigation'] = this.selectedNavigationItem.name;\n const target = trans.router.stateService.target(\n trans.to().name,\n newParams,\n { inherit: false },\n );\n return target;\n }\n\n // Load app navigation;\n const navigation = params.navigation;\n if (navigation) {\n const appName = this.getAppName(navigation);\n\n if (\n this._appToNavigationMap.has(appName) &&\n this.currentNavigation?.name !== appName\n ) {\n this.load(this._appToNavigationMap.get(appName));\n }\n }\n }\n\n private onTransitionSuccess(trans: Transition) {\n const toState = trans.to();\n\n this.log.trackPageView(toState.name);\n const params = trans.params();\n\n // Сбросить команды панели действий.\n if (params?.keepMainActions !== true) {\n this.actions.reset();\n }\n\n this.destroyTempItems(toState.name);\n\n // Move to On Start after migration.\n\n if (params?.navigation) {\n this.selectNavigationItemBy({ name: params.navigation });\n } else {\n this.selectNavigationItemBy({ state: toState.name });\n }\n this.navigationSubject.next(this.currentNavigation);\n\n if (params?.routeMode !== RouteMode.keep) {\n // Set the route from as basic + param.\n this.route = this.getRouteBasis() ?? [];\n\n if (params?.route?.length) {\n const restoredRoute = cloneDeep(params.route);\n\n restoredRoute.forEach((segment, index) => {\n if (segment?.state?.params) {\n segment.state.params['route'] = cloneDeep(\n restoredRoute.slice(0, index + 1),\n );\n\n segment.state.params['navigation'] =\n this.selectedNavigationItem.name;\n }\n });\n\n this.route = this.route.concat(restoredRoute);\n }\n\n this.propagateRoute();\n } else {\n // Update last segment.\n const newParams = cloneDeep(this.routerGlobals.params);\n delete newParams.routeMode;\n this.route[this.route.length - 1].state = {\n name: this.routerGlobals.current.name,\n params: newParams,\n };\n }\n }\n\n private getPreviousState(): { name: string; params: any } {\n if (this.route?.length < 3) {\n return null;\n }\n\n for (let index = this.route.length - 2; index >= 0; index--) {\n if (this.route[index].state) {\n return this.route[index].state;\n }\n }\n\n return null;\n }\n\n /**\n * Updates navigation indicators if it's necessary.\n *\n * @param force If true then ignore stored values in any case.\n */\n public updateIndicators(force = true): void {\n if (!this.currentNavigation) {\n return;\n }\n\n this.log.debug('Updating indicators...');\n\n const settings = this.localConfigService.getConfig(\n NavigationIndicatorsSettings,\n );\n\n if (force) {\n settings.indicators = [];\n }\n\n const requests: Record[]>> = {};\n\n this.currentNavigation.groups.forEach((group) => {\n group.items.forEach((item) => {\n if (item.indicator?.list) {\n const indicatorFromSettings = settings.indicators.find(\n (x) => x.name === item.name,\n );\n\n // Skip if indicator is still actual.\n if (\n indicatorFromSettings &&\n new Date().getTime() - indicatorFromSettings.lastUpdate <\n this.indicatorsStaleTime\n ) {\n this.indicatorValues.set(item.name, indicatorFromSettings.value);\n return;\n }\n\n const view = item.indicator.list.views.find(\n (v) => v.name === item.indicator.viewName,\n );\n\n const transform: any = { filter: null };\n\n if (view.contextFilter) {\n transform.filter = JSON.parse(\n JSON.stringify(view.contextFilter).replaceAll(\n '#user',\n this.app.session.user.id,\n ),\n );\n }\n\n const query =\n (buildQuery({ transform }) as string).substring(8) +\n '/aggregate($count as count)';\n\n // NOTE: Handles list queryFunction like in EntityListService.getSource\n const collection = item.indicator.list.dataCollection;\n const queryFunc = item.indicator.list.queryFunction;\n requests[item.name] = queryFunc\n ? this.dataService\n .collection(collection)\n .function(queryFunc)\n .query[]>(null, null, { $apply: query })\n : this.dataService\n .collection(collection)\n .query[]>(null, { $apply: query });\n }\n });\n });\n\n this.indicatorUpdatedSubject.next();\n\n forkJoin(requests).subscribe((response) => {\n Object.keys(response).forEach((name) => {\n const data = response[name];\n const value: number = data.length === 0 ? 0 : data[0]['count'];\n this.log.debug(`Indicator for ${name} has been updated to ${value}.`);\n this.indicatorValues.set(name, value);\n\n // Save value to settings.\n settings.indicators = settings.indicators.filter(\n (x) => x.name !== name,\n );\n settings.indicators.push({\n name,\n value,\n lastUpdate: new Date().getTime(),\n });\n });\n\n this.localConfigService.setConfig(NavigationIndicatorsSettings, settings);\n this.indicatorUpdatedSubject.next();\n });\n }\n\n /**\n * Updates indicators.\n *\n * @param items indicators.\n */\n public propagateIndicators(items: IndicatorItem[]): void {\n items.forEach((item) => {\n const key = `${item.entityType}-${item.type}`;\n\n this.indicatorValues.set(key, item.value);\n\n if (this.indicatorValues.get(key) !== item.value) {\n this.log.debug(\n `Indicator for ${key} has been updated to ${item.value}.`,\n );\n }\n });\n\n this.indicatorUpdatedSubject.next();\n }\n\n /** Gets current App (depends on navigation). */\n public getAppName(navigationName?: string) {\n if (!navigationName) {\n if (!this.currentNavigation) {\n // Backward compatibility\n return AppName.My;\n }\n navigationName = this.currentNavigation.name;\n }\n\n const firstSegment = navigationName.substring(\n 0,\n navigationName.indexOf('.') > -1\n ? navigationName.indexOf('.')\n : navigationName.length,\n );\n return AppName[\n Object.keys(AppName).find((k) => AppName[k] === firstSegment)\n ];\n }\n\n private stopIndicatorUpdating(): void {\n clearInterval(this.indicatorsTimer);\n }\n\n private startIndicatorUpdating(): void {\n this.updateIndicators(false);\n this.indicatorsTimer = setInterval(() => {\n this.updateIndicators(false);\n }, this.indicatorsCheckingTime);\n }\n}\n\nexport interface RouteItem {\n id?: string;\n title?: string;\n localTitle?: string;\n state?: {\n name: string;\n params: object;\n };\n}\n\nexport interface EntityFilter {\n /** Title of entity (aka document) */\n name: string;\n /** Filter query */\n filter: {\n [key: string]: {\n type: string;\n value: any;\n };\n }[];\n}\n\nexport interface IndicatorItem {\n /** Entity type. */\n entityType: string;\n /** Type. */\n type: 'Inbox' | 'Outbox';\n /** Counter. */\n value: number;\n}\n\nexport class NavigationIndicatorsSettings implements BaseSettings {\n public readonly name = 'NavigationIndicatorsSettings';\n public version: number;\n public indicators: {\n name: string;\n lastUpdate: number; // date stamp\n value: number;\n }[];\n\n public getDefault(): NavigationIndicatorsSettings {\n return {\n version: 1,\n indicators: [],\n } as NavigationIndicatorsSettings;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { Notification } from '../shared/models/inner/notification.model';\nimport { LogService } from './log.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private createdSubject = new Subject();\n public created$ = this.createdSubject.asObservable();\n\n constructor(\n private translate: TranslateService,\n private logger: LogService,\n ) {}\n\n /**\n * Send warning notification.\n *\n * @param message Notification message.\n *\n * */\n public warning(message: string): void {\n this.logger.info(`Warning: ${message}`);\n this.createdSubject.next({\n type: 'warning',\n text: message,\n });\n }\n\n /**\n * Send success notification.\n *\n * @param message Notification message.\n *\n * */\n public success(message: string): void {\n this.logger.log(`Success: ${message}`);\n this.createdSubject.next({\n type: 'success',\n text: message,\n });\n }\n\n /**\n * Send error notification.\n *\n * @param message Notification message.\n *\n * */\n public error(message: string): void {\n this.logger.error(`${message}`);\n this.createdSubject.next({\n type: 'error',\n text: message,\n });\n }\n\n /**\n * Send warning notification with the translation of the message.\n *\n * @param message Notification message.\n * @param params Params for `translate.instant`.\n *\n * */\n public warningLocal(message: string, params?: object): void {\n this.warning(this.translate.instant(message, params));\n }\n\n /**\n * Send success notification with the translation of the message.\n *\n * @param message Notification message.\n * @param params Params for `translate.instant`.\n *\n * */\n public successLocal(message: string, params?: object): void {\n this.success(this.translate.instant(message, params));\n }\n\n /**\n * Send error notification with the translation of the message.\n *\n * @param message Notification message.\n * @param params Params for `translate.instant`.\n *\n * */\n public errorLocal(message: string, params?: object): void {\n this.error(this.translate.instant(message, params));\n }\n\n /**\n * Send notification with custom params.\n *\n * @param params notification params.\n *\n * */\n public sendMessage(params: Notification): void {\n this.createdSubject.next(params);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n NgbModal,\n NgbOffcanvas,\n NgbOffcanvasOptions,\n NgbOffcanvasRef,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { TransitionService } from '@uirouter/core';\n\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport {\n OffCanvasActionPanelService,\n OffCanvasComponent,\n} from 'src/app/shared/components/features/off-canvas/off-canvas.component';\nimport {\n OffCanvasContent,\n OffCanvasEntry,\n} from 'src/app/shared/models/off-canvas/off-canvas-entry.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OffCanvasService {\n private entityUpdatedSubject = new BehaviorSubject(null);\n public entityUpdated$ = this.entityUpdatedSubject.asObservable();\n private offCanvasWidthSubject = new BehaviorSubject(null);\n public offCanvasWidth$ = this.offCanvasWidthSubject.asObservable();\n private reRenderSubject = new Subject();\n public reRender$ = this.reRenderSubject.asObservable();\n\n public offCanvasEntry: OffCanvasEntry;\n public offCanvasActionPanelService: OffCanvasActionPanelService;\n\n private offCanvas: NgbOffcanvasRef;\n private readonly delayBeforeRender = 100;\n\n constructor(\n private bootstrapOffCanvasService: NgbOffcanvas,\n private ngbModal: NgbModal,\n transitionService: TransitionService,\n ) {\n transitionService.onSuccess({}, () => {\n this.closeOffCanvas();\n });\n }\n\n /**\n * Inits entry and opens off canvas.\n *\n * @param entry off canvas content config.\n * @param animation off canvas animation property.\n */\n\n public openOffCanvas(\n entry: OffCanvasEntry,\n options?: NgbOffcanvasOptions,\n ): void {\n this.offCanvasEntry = entry;\n\n const defaultOptions: NgbOffcanvasOptions = {\n position: 'end',\n backdrop: false,\n panelClass: 'active-task-panel',\n scroll: true,\n animation: true,\n };\n\n if (options) {\n Object.entries(options).forEach(([key, value]) => {\n defaultOptions[key] = value;\n });\n }\n\n this.offCanvas = this.bootstrapOffCanvasService.open(\n OffCanvasComponent,\n defaultOptions,\n );\n }\n\n /**\n * Changes current content inside to the new one.\n *\n * @param content Component or template reference.\n */\n public reRenderContent(content: OffCanvasContent): void {\n this.offCanvasEntry.onClose ??= () => Promise.resolve();\n\n this.offCanvasEntry.onClose().then(\n () => {\n this.reRenderSubject.next(true);\n this.offCanvasEntry.content = content;\n\n setTimeout(() => {\n this.reRenderSubject.next(false);\n }, this.delayBeforeRender);\n },\n () => null,\n );\n }\n\n /**\n * Closes offCanvas and clears its entry.\n * Also waits for the result before closing if the entry has an `onClose` callback.\n */\n public async closeOffCanvas(): Promise {\n if (!this.offCanvas || this.ngbModal.hasOpenModals()) {\n return;\n }\n\n if (!this.offCanvasEntry?.onClose) {\n this.dismiss();\n return;\n }\n\n this.offCanvasEntry.onClose().then(\n () => this.dismiss(),\n () => null,\n );\n }\n\n /**\n * Emits event on entity update.\n *\n * @param entity updated entity.\n */\n public onEntityUpdated(entity: unknown): void {\n this.entityUpdatedSubject.next(entity);\n }\n\n /**\n * Sets offCanvas wrapper width.\n *\n * @param width current width.\n */\n public setWidth(width: number): void {\n this.offCanvasWidthSubject.next(width);\n }\n\n /**\n * Checks is the component of offCanvas entry an instance of the component.\n *\n * @param component Any component.\n * @returns `true` if it is, otherwise `false`.\n */\n public isEntryEqualComponent(component: object): boolean {\n return !!(\n this.offCanvasEntry?.content.component &&\n component instanceof this.offCanvasEntry.content.component\n );\n }\n\n private dismiss(): void {\n this.offCanvas.dismiss('close');\n this.offCanvasEntry = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport {\n Schedule,\n ScheduleDay,\n} from 'src/app/shared/models/entities/settings/schedule.model';\n\n/** Service for work with infinity schedule. */\n@Injectable()\nexport class ScheduleService {\n public get firstDay() {\n return DateTime.fromISO(this._scheduleScheme?.firstDay) ?? null;\n }\n\n public get patternDays() {\n return this._scheduleScheme?.patternDays ?? null;\n }\n\n private _workDaysCountInPattern: number;\n public get workDaysCountInPattern() {\n return this._workDaysCountInPattern;\n }\n public get exceptionDays() {\n return this._scheduleScheme?.scheduleException?.exceptionDays ?? null;\n }\n\n private _scheduleScheme: Schedule;\n\n /**Initialize project schedule.\n *\n * @param scheme schedule\n */\n public initScheduleScheme(scheme: Schedule) {\n this._scheduleScheme = scheme;\n this._workDaysCountInPattern = this._scheduleScheme?.patternDays.filter(\n (d) => d.dayLength,\n ).length;\n if (this._scheduleScheme.daysCount === 7) {\n this._scheduleScheme.firstDay = DateTime.now()\n .minus({ days: DateTime.now().weekday - 1 })\n .toISODate();\n }\n }\n\n /**\n * Returns work date closest to target date.\n *\n * @param date target date\n * @param direction direction of day searching.\n * @returns closest work date\n */\n public getClosestWorkDay(\n date: DateTime,\n direction: 'left' | 'right' = 'right',\n ): DateTime | null {\n if (!this._scheduleScheme || this.checkIsExceptionDay(date, 'working')) {\n return date;\n }\n const adaptedPattern = this.getPatternForDate(date);\n if (\n adaptedPattern[0].dayLength &&\n !this.checkIsExceptionDay(date, 'nonWorking')\n ) {\n return date;\n }\n let patternDayIterator: number;\n switch (direction) {\n case 'right':\n patternDayIterator = 0;\n while (patternDayIterator < adaptedPattern.length) {\n const newDate = date.plus({ days: patternDayIterator });\n if (\n (adaptedPattern[patternDayIterator].dayLength ||\n this.checkIsExceptionDay(newDate, 'working')) &&\n !this.checkIsExceptionDay(newDate, 'nonWorking')\n ) {\n return newDate;\n }\n patternDayIterator++;\n }\n return this.getClosestWorkDay(\n date.plus({ days: this._scheduleScheme.daysCount }),\n );\n case 'left':\n patternDayIterator = adaptedPattern.length - 1;\n while (patternDayIterator >= 0) {\n const newDate = date.minus({\n days: adaptedPattern.length - patternDayIterator,\n });\n if (\n (adaptedPattern[patternDayIterator].dayLength ||\n this.checkIsExceptionDay(newDate, 'working')) &&\n !this.checkIsExceptionDay(newDate, 'nonWorking')\n ) {\n return newDate;\n }\n patternDayIterator--;\n }\n return this.getClosestWorkDay(\n date.minus({ days: this._scheduleScheme.daysCount }),\n 'left',\n );\n }\n }\n\n /**\n * Indicates is target date non working day.\n *\n * @param date target date\n * @returns is current date non working day\n */\n public isNonWorkingDay(date: DateTime): boolean {\n if (!this._scheduleScheme) return false;\n const adaptedPattern = this.getPatternForDate(date);\n return (\n (!adaptedPattern[0].dayLength ||\n this.checkIsExceptionDay(date, 'nonWorking')) &&\n !this.checkIsExceptionDay(date, 'working')\n );\n }\n\n /** Returns a count of working days (work duration) in the requested interval.\n *\n * @param startDate checking start date\n * @param endDate checking end date\n * @returns count of working days\n */\n public getDuration(startDate: DateTime, endDate: DateTime): number {\n const diff = endDate.diff(startDate, 'days').days;\n if (!this._scheduleScheme) return diff;\n const intCountPatterns = Math.floor(\n (diff + 1) / this._scheduleScheme.daysCount,\n );\n const intPatternWorkDaysCount =\n intCountPatterns * this.workDaysCountInPattern;\n\n let firstRemainderDate = startDate.plus({\n days: intCountPatterns * this._scheduleScheme.daysCount,\n });\n\n const adaptedPattern = this.getPatternForDate(firstRemainderDate);\n\n let remainderPatternWorkDays = 0;\n let remainderPatternIterator = 0;\n while (+firstRemainderDate <= +endDate) {\n if (adaptedPattern[remainderPatternIterator].dayLength) {\n remainderPatternWorkDays++;\n }\n remainderPatternIterator++;\n firstRemainderDate = firstRemainderDate.plus({ days: 1 });\n }\n let duration = intPatternWorkDaysCount + remainderPatternWorkDays;\n\n this.exceptionDays?.forEach((day) => {\n const date = DateTime.fromISO(day.date);\n if (+date >= +startDate && +date <= +endDate) {\n const isWorkDayByPattern = !!this.getPatternForDate(date)[0].dayLength;\n if (isWorkDayByPattern && !day.dayLength) {\n duration--;\n }\n if (!isWorkDayByPattern && day.dayLength) {\n duration++;\n }\n }\n });\n\n return duration;\n }\n\n /** Returns end date by start date and tasks work duration.\n *\n * @param startDate checking start date\n * @param duration task work days count\n * @returns endDate\n */\n public getEndDate(startDate: DateTime, targetDuration: number): DateTime {\n if (!this._scheduleScheme) return startDate.plus({ days: targetDuration });\n if (this.isNonWorkingDay(startDate)) {\n startDate = this.getClosestWorkDay(startDate, 'right');\n }\n const intCountPatterns = Math.floor(\n targetDuration / this.workDaysCountInPattern,\n );\n let currentDuration = intCountPatterns\n ? intCountPatterns * this.workDaysCountInPattern\n : 1;\n const daysByPatterns = intCountPatterns\n ? intCountPatterns * this._scheduleScheme.daysCount - 1\n : 0;\n let endDate = startDate.plus({\n days: daysByPatterns,\n });\n endDate = this.getClosestWorkDay(endDate, 'left');\n\n this.exceptionDays?.forEach((day) => {\n const date = DateTime.fromISO(day.date);\n if (+date >= +startDate && +date <= +endDate) {\n const isWorkDayByPattern = !!this.getPatternForDate(date)[0].dayLength;\n if (isWorkDayByPattern && !day.dayLength) {\n currentDuration--;\n }\n if (!isWorkDayByPattern && day.dayLength) {\n currentDuration++;\n }\n }\n });\n const adaptedPattern = this.getPatternForDate(endDate);\n\n let patternDayIndex = 1;\n while (currentDuration < targetDuration) {\n endDate = endDate.plus({ days: 1 });\n\n if (\n (adaptedPattern[patternDayIndex].dayLength &&\n !this.checkIsExceptionDay(endDate, 'nonWorking')) ||\n (!adaptedPattern[patternDayIndex].dayLength &&\n this.checkIsExceptionDay(endDate, 'working'))\n ) {\n currentDuration++;\n }\n patternDayIndex =\n patternDayIndex === adaptedPattern.length - 1 ? 0 : patternDayIndex + 1;\n }\n return endDate;\n }\n\n /** Check is date non working\n *\n * @param date checking date\n * @returns is date non working\n */\n public checkNonWorkingDay = (date: DateTime): boolean => {\n if (!this._scheduleScheme) return false;\n const adaptedPattern = this.getPatternForDate(date);\n return (\n !adaptedPattern[0].dayLength ||\n this.checkIsExceptionDay(date, 'nonWorking')\n );\n };\n\n /**Returns the pattern adapted for target date.\n * Returned pattern is equal to original pattern if first date of pattern is target date.\n *\n * @param date first date for pattern\n * @returns adapted pattern\n */\n private getPatternForDate(date: DateTime): ScheduleDay[] {\n const patternDays = [...this.patternDays];\n let adaptedPattern = [];\n if (+date >= +this.firstDay) {\n const diff = date.diff(this.firstDay, 'days');\n const delta = diff.days % this._scheduleScheme.daysCount;\n const firstPart = patternDays.splice(0, delta);\n adaptedPattern = [...patternDays, ...firstPart];\n } else {\n const diff = this.firstDay.diff(date, 'days');\n const delta = diff.days % this._scheduleScheme.daysCount;\n const lastPart = patternDays.splice(\n patternDays.length - delta,\n patternDays.length,\n );\n adaptedPattern = [...lastPart, ...patternDays];\n }\n let adaptedPatternIterator = 0;\n while (adaptedPatternIterator < adaptedPattern.length) {\n adaptedPattern[adaptedPatternIterator].dayNumber =\n adaptedPatternIterator + 1;\n adaptedPatternIterator++;\n }\n return adaptedPattern;\n }\n\n /** Check is date exception\n *\n * @param date checking date\n * @returns is date exception working day\n */\n private checkIsExceptionDay(\n date: DateTime,\n checkingType: 'working' | 'nonWorking',\n ): boolean {\n switch (checkingType) {\n case 'working':\n return !!this.exceptionDays?.find(\n (day) => day.dayLength && day.date === date.toISODate(),\n );\n case 'nonWorking':\n return !!this.exceptionDays?.find(\n (day) => !day.dayLength && day.date === date.toISODate(),\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Helper for router links. */\n@Injectable({\n providedIn: 'root',\n})\nexport class StateBuilderService {\n public readonly entityTypeToStateName: Map = new Map([\n ['ActOfAcceptance', 'actOfAcceptance'],\n ['ProjectVersion', 'projectVersion'],\n ['ExpenseRequest', 'expensesRequest'],\n ['ResourceRequest', 'resourceRequest'],\n ['TimeOffRequest', 'timeOffRequest'],\n ['TimeSheet', 'timesheet'],\n ['Certificate', 'certificate'],\n ['Project', 'project'],\n ['Invoice', 'invoice'],\n ['RateMatrix', 'rateMatrix'],\n ['Issue', 'issue'],\n ['Deal', 'deal'],\n ]);\n\n /** Gets state for workflow task's attachment (entity). */\n public getStateForWorkflowEntity(\n taskId: string,\n entityType: string,\n entityId,\n ): WorkflowEntityState {\n return {\n state: this.entityTypeToStateName.get(entityType),\n params: {\n taskId,\n entityId,\n },\n };\n }\n}\n\nexport interface WorkflowEntityState {\n state: string;\n params: any;\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { Guid } from '../shared/helpers/guid';\nimport { DataService } from './data.service';\n\nimport { Exception } from '../shared/models/exception';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport {\n Stopwatch,\n StopwatchState,\n StopwatchStopType,\n} from '../shared/models/entities/base/stopwatch.model';\nimport { LogService } from './log.service';\nimport { DateTime } from 'luxon';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n/** Сервис управления счетчика времени. */\n@Injectable({\n providedIn: 'root',\n})\nexport class StopwatchService {\n private storageName = 'sharedStopwatch';\n\n public stopwatch: Stopwatch;\n\n private stopwatchSubject = new BehaviorSubject(null);\n /** Событие на любое обновление счетчика времени. */\n public stopwatch$ = this.stopwatchSubject.asObservable();\n\n private openPopupSubject = new Subject();\n public openPopup$ = this.openPopupSubject.asObservable();\n\n private stopSubject = new Subject();\n\n /** Событие на завершение счетчика. */\n public stop$ = this.stopSubject.asObservable();\n\n private externalUpdateSubject = new Subject();\n /** Событие внешнего обновления счетчика. */\n public externalUpdate$ = this.externalUpdateSubject.asObservable();\n\n public autosaveService: SavingQueueService;\n\n /** Идентификатор сервиса (для синхронизации вкладок браузера). */\n public id: string = Guid.generate();\n\n constructor(\n private localStorageService: LocalStorageService,\n private data: DataService,\n private log: LogService,\n ) {\n // this.updateSharedStopwatch();\n this.updateStopwatch();\n this.stopwatch$.subscribe((stopwatch) => (this.stopwatch = stopwatch));\n\n this.localStorageService.observe(this.storageName).subscribe((newValue) => {\n if (\n newValue.tabId === this.id ||\n (!this.stopwatch && !newValue.stopwatch) ||\n this.stopwatch?.state === newValue.stopwatch?.state\n ) {\n return;\n }\n\n // Обновить таймшиты.\n this.externalUpdateSubject.next();\n\n this.updateStopwatch();\n });\n }\n\n public openPopup() {\n this.openPopupSubject.next();\n }\n\n /** Загрузить сведения об активном счетчике времени. */\n public updateStopwatch(): Promise {\n return new Promise((resolve, reject) => {\n this.data.model\n .function('GetStopwatchInfo')\n .get()\n .subscribe({\n next: (stopwatch) => {\n resolve();\n this.stopwatchSubject.next(stopwatch);\n this.updateSharedStopwatch();\n },\n error: () => {\n reject();\n },\n });\n });\n }\n\n public updateSharedStopwatch() {\n this.localStorageService.store(this.storageName, {\n tabId: this.id,\n stopwatch: this.stopwatch,\n });\n }\n\n /** Возвращает истекшее время в секундах. */\n private getTotalDurationValue(): number {\n if (!this.stopwatch) {\n return 0;\n }\n\n let duration = this.stopwatch.duration ?? 0;\n if (!duration) {\n duration = 0;\n }\n if (this.stopwatch.state !== StopwatchState.Paused) {\n duration +=\n DateTime.now().diff(\n DateTime.fromISO(this.stopwatch.startTime),\n 'seconds',\n ).seconds / 3600;\n }\n\n if (duration < 0) {\n duration = 0;\n }\n\n return duration;\n }\n\n public getFormattedDuration(): [string, string] {\n const result: [string, string] = ['', ''];\n\n const duration = this.getTotalDurationValue();\n\n const hoursPart = Math.floor(duration);\n if (String(hoursPart).length === 1) {\n result[0] = '0' + hoursPart;\n } else {\n result[0] = String(hoursPart);\n }\n\n const minutesPart = Math.floor((duration % 1) * 60);\n if (String(minutesPart).length === 1) {\n result[1] = '0' + minutesPart;\n } else {\n result[1] = String(minutesPart);\n }\n\n return result;\n }\n\n // /*КОМАНДЫ*/\n\n /** Запуск счетчика. */\n public start(timeSheetLineId: string): Promise {\n return new Promise((resolve, reject) => {\n this.log.debug('Stopwatch is being started...');\n\n const start = () => {\n const data = {\n timeSheetLineId,\n };\n\n this.data.model\n .action('StartStopwatch')\n .execute(data)\n .subscribe({\n next: () => {\n this.updateStopwatch().then(\n () => {\n resolve();\n },\n () => {\n reject();\n },\n );\n\n this.log.debug('Stopwatch has been started.');\n },\n error: (error: Exception) => {\n reject(error.message);\n },\n });\n };\n\n if (this.autosaveService) {\n this.autosaveService.save().then(\n () => start(),\n () => null,\n );\n } else {\n start();\n }\n });\n }\n\n /** Приостановка счетчика. */\n public pause(): Promise {\n return new Promise((resolve, reject) => {\n this.log.debug('Stopwatch is being paused...');\n\n this.data.model\n .action('PauseStopwatch')\n .execute()\n .subscribe({\n next: () => {\n this.stopwatch.duration = this.getTotalDurationValue();\n this.stopwatch.state = StopwatchState.Paused;\n\n this.stopwatchSubject.next(this.stopwatch);\n\n this.log.debug('Stopwatch has been paused.');\n this.updateSharedStopwatch();\n resolve();\n },\n error: (error: Exception) => {\n this.updateStopwatch();\n reject(error.message);\n },\n });\n });\n }\n\n /** Возобновление счетчика. */\n public resume(): Promise {\n return new Promise((resolve, reject) => {\n this.log.debug('Stopwatch is being resumed...');\n\n this.data.model\n .action('ResumeStopwatch')\n .execute()\n .subscribe({\n next: () => {\n this.stopwatch.startTime = DateTime.now().toISO();\n this.stopwatch.state = StopwatchState.Started;\n\n this.stopwatchSubject.next(this.stopwatch);\n this.log.debug('Stopwatch has been resumed.');\n this.updateSharedStopwatch();\n\n resolve();\n },\n error: (error: Exception) => {\n this.updateStopwatch();\n reject(error.message);\n },\n });\n });\n }\n\n /** Завершение счетчика. */\n public stop(type: StopwatchStopType): Promise {\n return new Promise((resolve, reject) => {\n this.log.debug('Stopwatch is being stopped...');\n const stop = () => {\n this.data.model\n .action('StopStopwatch')\n .execute({ stopwatchStopType: type })\n .subscribe({\n next: () => {\n resolve();\n this.stopSubject.next();\n this.stopwatchSubject.next(null);\n this.updateSharedStopwatch();\n this.log.debug(\n 'Stopwatch has been stopped. Stopping type: ' + type,\n );\n },\n error: (error: Exception) => {\n this.updateStopwatch();\n\n reject(error.message);\n },\n });\n };\n\n this.autosaveService\n ? this.autosaveService.save().then(\n () => stop(),\n () => null,\n )\n : stop();\n });\n }\n}\n\nexport interface StopwatchTabInfo {\n tabId: string;\n stopwatch: Stopwatch;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { AppService } from './app.service';\n\n/** Сервис для получения локализуемых шаблонов (текстовых данных). */\n@Injectable({\n providedIn: 'root',\n})\nexport class TemplateService {\n constructor(\n private httpClient: HttpClient,\n private app: AppService,\n private sanitizer: DomSanitizer,\n ) {}\n\n public getHtml(name: string): Observable {\n return new Observable((subscriber) => {\n const url = `/assets/templates/${this.app.session.language}/${name}.html`;\n this.httpClient\n .get(url, { responseType: 'text' })\n .subscribe((content: string) => {\n const text = this.sanitizer.bypassSecurityTrustHtml(content);\n subscriber.next(text);\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { timer } from 'rxjs';\nimport { AppConfigService } from './app-config.service';\nimport { LogService } from './log.service';\nimport { MessageService } from './message.service';\n\n@Injectable()\nexport class UpdateService {\n constructor(\n private swUpdate: SwUpdate,\n private translate: TranslateService,\n private messages: MessageService,\n private log: LogService,\n ) {}\n\n public run() {\n this.swUpdate.unrecoverable.subscribe((event) => {\n const message = `Update version. An error occurred that we cannot recover from: ${event.reason}.`;\n this.log.error(message);\n document.location.reload();\n });\n\n timer(0, AppConfigService.config.updateCheckPeriod * 1000).subscribe(() => {\n this.log.info('Check for updates...');\n\n this.swUpdate.checkForUpdate().then(\n (result) => {\n if (result) {\n this.log.info('New version is available.');\n\n const activate = () =>\n this.swUpdate\n .activateUpdate()\n .then(() => document.location.reload());\n\n setTimeout(() => activate(), 60000);\n\n this.messages\n .message(\n this.translate.instant('shared.versionUpdate.text'),\n this.translate.instant('shared.versionUpdate.header'),\n [],\n this.translate.instant('shared.versionUpdate.action'),\n )\n .then(() => activate());\n } else {\n this.log.info('Version is up to date.');\n }\n },\n (error) => {\n this.log.error(error);\n },\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { Notification } from 'src/app/shared/models/entities/notification.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BehaviorSubject, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { StateBuilderService } from 'src/app/core/state-builder.service';\nimport { BrowserNotificationService } from 'src/app/shared/services/browser-notification/browser-notification.service';\nimport { WebSocketsService } from 'src/app/core/web-sockets.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\n\n@Injectable()\nexport class UserNotificationService {\n public notifications: Notification[] = [];\n\n private notificationsSubject = new BehaviorSubject([]);\n public notifications$ = this.notificationsSubject.asObservable();\n\n private hasUnreadNotificationsSubject = new ReplaySubject();\n public hasUnreadNotifications$ =\n this.hasUnreadNotificationsSubject.asObservable();\n\n private currentPage = 0;\n private pageSize = 50;\n private loadedAll = false;\n private loading = false;\n private scrollListener: Subscription | null;\n private requestPage$ = new Subject();\n\n constructor(\n webSocketsService: WebSocketsService,\n public stateBuilder: StateBuilderService,\n private data: DataService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n private browserNotificationService: BrowserNotificationService,\n private stateService: StateService,\n private chromeService: ChromeService,\n ) {\n webSocketsService.initSignalR('websocket').then((connection) => {\n connection.on('Notify', (notification: Notification) => {\n this.notifications.unshift(notification);\n this.notificationsSubject.next(this.notifications);\n this.hasUnreadNotificationsSubject.next(true);\n this.sendNotification(notification);\n });\n });\n\n this.loadNotifications();\n this.checkUnreadNotifications();\n }\n /** Mark notification as read. */\n public markAsRead(notificationId: string) {\n const notification = this.notifications.find(\n (x) => x.id === notificationId,\n );\n if (notification) {\n notification.read = true;\n }\n this.blockUI.start();\n this.data\n .collection('Notifications')\n .entity(notificationId)\n .action('MarkAsRead')\n .execute()\n .subscribe({\n next: () => {\n this.checkUnreadNotifications();\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n /** Mark all notifications as read. */\n public markAllAsRead() {\n this.notifications.forEach((notification) => (notification.read = true));\n this.blockUI.start();\n this.data\n .collection('Notifications')\n .action('MarkAllAsRead')\n .execute()\n .subscribe({\n next: () => {\n this.checkUnreadNotifications();\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n /**\n * Enables lazy-loading on scroll event.\n *\n * @param container `HTMLElement` to observe.\n */\n public enableInfinityScroll(container: HTMLElement): void {\n this.scrollListener = this.chromeService.setInfinityScroll(\n () => this.loadNotifications(),\n 50,\n container,\n );\n }\n\n public reload() {\n this.currentPage = 0;\n this.loadedAll = false;\n this.notifications = [];\n this.loadNotifications();\n this.checkUnreadNotifications();\n }\n\n public dispose() {\n this.scrollListener?.unsubscribe();\n }\n\n private loadNotifications() {\n if (this.loadedAll || this.loading) {\n return;\n }\n\n const dataQuery = {\n top: this.pageSize,\n skip: this.pageSize * this.currentPage,\n orderBy: 'created desc',\n };\n\n this.loading = true;\n this.requestPage$.next();\n this.data\n .collection('Notifications')\n .query(dataQuery)\n .pipe(takeUntil(this.requestPage$))\n .subscribe({\n next: (notifications) => {\n this.loading = false;\n this.loadedAll = notifications.length < this.pageSize;\n this.currentPage++;\n notifications.forEach((notification) =>\n this.notifications.push(notification),\n );\n this.notificationsSubject.next(this.notifications);\n\n if (this.loadedAll) {\n this.scrollListener?.unsubscribe();\n this.scrollListener = null;\n }\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n private checkUnreadNotifications() {\n const countQuery: any = {\n transform: {\n filter: 'read eq false',\n aggregate: {\n id: {\n with: 'countdistinct',\n as: 'count',\n },\n },\n },\n };\n\n this.data\n .collection('Notifications')\n .query(countQuery)\n .subscribe((unreadCount) => {\n this.hasUnreadNotificationsSubject.next(\n unreadCount.length === 0 ? false : unreadCount[0].count > 0,\n );\n });\n }\n\n private sendNotification(notification: Notification): void {\n const stateSettings = this.stateBuilder.getStateForWorkflowEntity(\n notification.target.taskId,\n notification.target.entityType,\n notification.target.entityId,\n );\n\n if (this.browserNotificationService.use) {\n this.browserNotificationService.sendMessage(\n notification.id,\n notification.subject,\n {\n body: notification.message,\n },\n {\n click: () => {\n this.stateService.go(stateSettings.state, stateSettings.params);\n this.markAsRead(notification.id);\n },\n },\n );\n } else {\n this.notification.sendMessage({\n type: 'info',\n header: notification.subject,\n text: notification.message,\n onClick: () => {\n this.stateService.go(stateSettings.state, stateSettings.params);\n },\n onClose: () => {\n this.markAsRead(notification.id);\n },\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValidationService {\n constructor(private translate: TranslateService) {}\n\n /**\n * Returns the error tooltip message based on the provided validation errors.\n *\n * @param errors The validation errors object.\n * @returns The error tooltip message or null if no errors.\n */\n public getErrorTooltip(errors: ValidationErrors | null): string | null {\n if (!errors) return null;\n let errorString = '';\n for (const key of Object.keys(errors)) {\n errorString +=\n this.translate.instant(\n `shared2.messages.validator${_.upperFirst(key)}`,\n errors[key],\n ) + '\\n';\n }\n return errorString;\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport {\n HttpTransportType,\n HubConnection,\n HubConnectionBuilder,\n LogLevel,\n} from '@microsoft/signalr';\nimport { BehaviorSubject, first, firstValueFrom, map } from 'rxjs';\n\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { AuthService } from 'src/app/core/auth.service';\n\n@Injectable()\nexport class WebSocketsService {\n private connectionSubject = new BehaviorSubject(null);\n public connection$ = this.connectionSubject\n .asObservable()\n .pipe(first((v) => !!v));\n\n protected authService = inject(AuthService);\n\n public get connection(): HubConnection | null {\n return this.connectionSubject.getValue();\n }\n\n /**\n * Connects to websocket.\n *\n * @param hubName websocket hub name.\n * @returns connection.\n */\n public async initSignalR(hubName: string): Promise {\n if (!AppConfigService.config.websocket.url) {\n return;\n }\n\n const connection = new HubConnectionBuilder()\n .withUrl(\n `${AppConfigService.config.websocket.url}/${hubName}` +\n (this.authService.substitutedEmail\n ? `?login_as=${this.authService.substitutedEmail}`\n : ''),\n {\n accessTokenFactory: () => this.getToken(),\n skipNegotiation: true,\n transport: HttpTransportType.WebSockets,\n },\n )\n .withAutomaticReconnect(new Array(10).fill(5000))\n .configureLogging(LogLevel.Information)\n .build();\n\n // Start the connection.\n await connection.start();\n\n this.connectionSubject.next(connection);\n\n return connection;\n }\n\n private getToken(): Promise {\n return firstValueFrom(\n this.authService\n .getAuthorizationHeaderValue()\n .pipe(map((token) => token.replace('Bearer ', ''))),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n inject,\n} from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { merge } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { DealCardService } from './deal-card.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { DealContactsService } from 'src/app/deals/card/deal-contacts/core/deal-contacts.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DealProfileService } from 'src/app/deals/card/deal-profile/deal-profile.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'tmt-deal-card',\n templateUrl: './deal-card.component.html',\n providers: [\n DealCardService,\n DealContactsService,\n DealProfileService,\n LifecycleService,\n SavingQueueService,\n FormHeaderService,\n { provide: META_ENTITY_TYPE, useValue: 'Deal' },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n host: {\n class: 'data-not-saved-indicator-to-top',\n },\n})\nexport class DealCardComponent {\n public tabs: TabLink[] = [];\n public readonly dealCardService = inject(DealCardService);\n public readonly stateService = inject(StateService);\n public readonly appService = inject(AppService);\n public readonly navigationService = inject(NavigationService);\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly dealProfileService = inject(DealProfileService);\n private readonly elementRef = inject(ElementRef);\n private readonly lifecycleService = inject(LifecycleService);\n private readonly messageService = inject(MessageService);\n private readonly injector = inject(Injector);\n private readonly infoPopupService = inject(InfoPopupService);\n private readonly savingQueueService = inject(SavingQueueService);\n\n constructor() {\n this.dealCardService.load();\n\n this.tabs.push({\n header: 'shared2.groups.main',\n state: 'deal.profile',\n });\n\n if (\n this.appService.checkEntityPermission('Interaction', PermissionType.Read)\n ) {\n this.tabs.push({\n header: 'shared2.groups.interactions',\n state: 'deal.interactions',\n });\n }\n\n merge(this.lifecycleService.reload$, this.actionPanelService.reload$)\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n if (\n this.dealProfileService.form.dirty ||\n this.savingQueueService.isSaving\n ) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => this.dealCardService.reloadTab(),\n () => null,\n );\n } else {\n this.dealCardService.reloadTab();\n }\n });\n }\n\n /** Open user info. */\n public openUserInfo(userId: string): void {\n const target = this.elementRef.nativeElement.querySelector('#manager');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n}\n","\n\n\n\n\n@if (dealCardService.state() === 'Ready') {\n
    \n
    \n
    \n \n
    \n @if (dealCardService.deal().organization) {\n
    \n
    {{ 'shared2.props.client' | translate }}:
    \n
    \n {{ dealCardService.deal().organization.name }}\n
    \n
    \n }\n @if (dealCardService.deal().manager) {\n
    \n
    {{ 'shared2.props.manager' | translate }}:
    \n
    \n \n {{ dealCardService.deal().manager.name }}\n \n
    \n
    \n }\n
    \n
    {{ 'shared2.props.created.value' | translate }}:
    \n
    \n {{\n dealCardService.deal().created | date: 'shortDate' : appService.session.timeZoneOffset\n }}\n
    \n
    \n
    \n
    \n\n
    \n
      \n @for (tab of tabs; track tab) {\n
    • \n {{ tab.header | translate }}\n
    • \n }\n
    \n \n
    \n}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n inject,\n computed,\n signal,\n} from '@angular/core';\nimport { Observable, Subject, tap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PercentPipe } from '@angular/common';\nimport { StateService } from '@uirouter/core';\nimport _ from 'lodash';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Deal, DealContact } from 'src/app/deals/model/deal.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { HeaderIndicator } from 'src/app/shared/components/chrome/form-header2/header-indicator.model';\n\n@Injectable()\nexport class DealCardService {\n private readonly _dealName = signal(null);\n public readonly dealName = computed(this._dealName);\n private readonly _deal = signal(null);\n public readonly deal = computed(this._deal);\n private readonly _state = signal(CardState.Loading);\n public readonly state = computed(this._state);\n private readonly _reloadTabSubject = new Subject();\n public readonly reloadTab$ = this._reloadTabSubject.asObservable();\n\n public readonly dealContacts = signal([]);\n public baseCurrencyCode: string;\n public dealCollection: Collection;\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly dataService = inject(DataService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly formHeaderService = inject(FormHeaderService);\n private readonly lifecycleService = inject(LifecycleService);\n private readonly messageService = inject(MessageService);\n private readonly navigationService = inject(NavigationService);\n private readonly notificationService = inject(NotificationService);\n private readonly percentPipe = inject(PercentPipe);\n private readonly stateService = inject(StateService);\n private readonly wpCurrencyPipe = inject(WpCurrencyPipe);\n\n constructor(\n @Inject('entityId')\n public readonly dealId: string,\n ) {\n this.dealCollection = this.dataService.collection('Deals');\n\n this.actionPanelService.reset();\n this.actionPanelService.setHasAutosave(true);\n this.actionPanelService.setAdditional([\n {\n name: 'delete',\n title: 'components.dealCardComponent.actions.delete',\n hint: 'components.dealCardComponent.actions.delete',\n isBusy: false,\n isVisible: this.appService.checkEntityPermission(\n 'Deal',\n PermissionType.Delete,\n ),\n handler: () => this.deleteDeal(),\n },\n ]);\n\n this.baseCurrencyCode =\n this.appService.session.configuration.baseCurrencyCode;\n }\n\n /** Reloads tab. */\n public reloadTab(): void {\n this.load();\n this.lifecycleService.reloadLifecycle();\n\n this._reloadTabSubject.next();\n }\n\n /** Saves deal's name. */\n public saveName = (name: string) =>\n this.dealCollection\n .entity(this.dealId)\n .patch({ name })\n .pipe(\n tap(() => {\n this._deal.update((deal) => ({ ...deal, name }));\n }),\n );\n\n /** Loads deal data and process it. */\n public load(): void {\n const query = this.buildQuery();\n\n this.loadDeal(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (deal: Deal) => {\n this._state.set(CardState.Ready);\n this.navigationService.addRouteSegment({\n id: this.dealId,\n title: deal.name,\n });\n this._deal.update(() => ({ ...deal }));\n\n this._dealName.set(deal.name);\n this.dealContacts.update(() => deal.dealContacts);\n this.updateIndicators(this.deal());\n },\n error: (error: Exception) => {\n this._state.set(CardState.Error);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Loads deal's data.\n *\n * @param query OData query for loading deal data.\n * @returns Deal entity.\n */\n public loadDeal(query: any): Observable {\n return this.dealCollection.entity(this.dealId).get(query);\n }\n\n /** Updates indicators. */\n public updateIndicators(deal: Partial): void {\n const indicators: HeaderIndicator[] = [];\n if (deal.amount !== undefined && deal.amount !== null) {\n indicators.push({\n description: 'shared2.props.amount',\n value: this.wpCurrencyPipe.transform(\n deal.amount,\n this.baseCurrencyCode,\n ),\n });\n }\n if (deal.probability !== undefined && deal.probability !== null) {\n indicators.push({\n description: 'shared2.props.probability',\n value: this.percentPipe.transform(deal.probability, '1.0-2'),\n });\n }\n this.formHeaderService.updateIndicators(indicators);\n }\n\n /** Updates current deal data. */\n public updateDeal(deal: Partial): void {\n const newDeal: Partial = {};\n\n Object.keys(this._deal()).forEach((key) => {\n if (deal[key] && !_.isEqual(deal[key], this._deal()[key])) {\n newDeal[key] = deal[key];\n }\n });\n\n this._deal.update(() => Object.assign({}, this._deal(), newDeal));\n }\n\n /**\n * Builds OData query for deal entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n return {\n select: ['name', 'id', 'amount', 'probability', 'created', 'editAllowed'],\n expand: [\n {\n organization: {\n select: ['id', 'name'],\n },\n },\n { manager: { select: ['id', 'name'] } },\n {\n dealContacts: {\n select: ['contactId'],\n },\n },\n ],\n };\n }\n\n /** Deletes current deal. */\n private deleteDeal(): void {\n this.messageService\n .confirmLocal('shared2.messages.deleteConfirmation')\n .then(\n () => {\n this.dealCollection\n .entity(this.dealId)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'shared2.messages.deleteCompleted',\n );\n const selectedNavigationItem =\n this.navigationService.selectedNavigationItem;\n this.stateService.go(\n selectedNavigationItem?.state ?? 'deals',\n selectedNavigationItem?.stateParams,\n );\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n}\n","import { inject, Inject, Injectable, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { catchError, forkJoin, map, merge, Observable, of } from 'rxjs';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ContactCreateModalComponent } from 'src/app/contacts/contact-create/contact-create.component';\nimport { DealContactsToolbarComponent } from 'src/app/deals/card/deal-contacts/toolbar/deal-contacts-toolbar.component';\nimport { ClientContactsService } from 'src/app/clients/card/client-contact/core/client-contacts.service';\nimport { DealCardService } from 'src/app/deals/card/deal-card.service';\nimport { DealContact } from 'src/app/deals/model/deal.model';\nimport { DealAddContactsModalComponent } from 'src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal.component';\nimport { DealContactsSettings } from 'src/app/deals/card/deal-contacts/deal-contacts-settings';\nimport { Collection } from 'src/app/core/data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Injectable()\nexport class DealContactsService extends ClientContactsService {\n public override gridOptions: GridOptions = {\n resizableColumns: true,\n sorting: true,\n selectionType: SelectionType.row,\n toolbar: DealContactsToolbarComponent,\n commands: [\n {\n name: 'create',\n allowedFn: () => !this.readonlyDeal(),\n handlerFn: () => {\n this.createClientContact();\n },\n },\n {\n name: 'select',\n allowedFn: () => !this.readonlyDeal(),\n handlerFn: () => {\n this.selectClientContact();\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonlyDeal() && !!formGroup,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.deleteContact(formGroup.value.id);\n },\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonlyDeal(),\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteContact(formGroup.value.id),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n private dealContactsSettings: DealContactsSettings;\n private dealContacts: DealContact[];\n private dealContactsCollection: Collection;\n private readonlyDeal = signal(false);\n private readonly dealCardService = inject(DealCardService);\n\n private get dealId(): string {\n return this.dealCardService.dealId;\n }\n\n constructor(\n @Inject('organizationId') public override organizationId: string,\n ) {\n super(organizationId);\n this.dealContactsCollection = this.dataService.collection('DealContacts');\n this.readonlyDeal.set(!this.dealCardService.deal().editAllowed);\n merge(this.dealCardService.reloadTab$)\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this.load();\n });\n }\n\n /** Loads deal contacts. */\n public override load(): void {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query = this.buildContactsQuery();\n\n this.dealContactsCollection\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (dealContacts: DealContact[]) => {\n this.dealContacts = dealContacts;\n const contacts = dealContacts?.map(\n (dealContact) => dealContact.contact,\n );\n if (contacts?.length) {\n this.processContacts(contacts, false);\n }\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n }\n\n /**\n * Sets onlyActive setting.\n *\n * @param onlyActive indicator to show active or all entities.\n */\n protected override setConfig(onlyActive: boolean) {\n this.dealContactsSettings.onlyActive = onlyActive;\n this.localConfigService.setConfig(\n DealContactsSettings,\n this.dealContactsSettings,\n );\n }\n\n /** Loads onlyActive setting */\n protected override loadSettings(): void {\n this.dealContactsSettings =\n this.localConfigService.getConfig(DealContactsSettings);\n this.onlyActive.set(this.dealContactsSettings.onlyActive);\n }\n\n /** Opens creation contact modal window. */\n protected override createClientContact(): void {\n const modalRef = this.modal.open(ContactCreateModalComponent);\n\n (modalRef.componentInstance as ContactCreateModalComponent).organizationId =\n this.organizationId;\n\n modalRef.result.then(\n (result) => {\n const newContact: DealContact = {\n id: Guid.generate(),\n contactId: result.id,\n dealId: this.dealId,\n };\n\n this.addContactToDeal(newContact).subscribe((isSaved) => {\n if (isSaved) {\n this.dealCardService.dealContacts.update((oldContacts) => [\n ...oldContacts,\n newContact,\n ]);\n this.load();\n this.notificationService.successLocal(\n 'components.dealContactsService.messages.contactAdded',\n );\n }\n });\n },\n () => null,\n );\n }\n\n /**\n * Builds OData contacts query.\n * @returns OData contacts query object.\n */\n protected override buildContactsQuery(): any {\n const query: any = {\n select: ['id'],\n expand: {\n contact: {\n select: [\n 'id',\n 'name',\n 'firstName',\n 'lastName',\n 'patronymic',\n 'organizationId',\n 'position',\n 'description',\n 'email',\n 'mobilePhone',\n 'phone',\n 'isActive',\n ],\n expand: [{ role: { select: ['id', 'name'] } }],\n },\n },\n orderBy: this.getOrderBy(),\n filter: [\n {\n dealId: { type: 'guid', value: this.dealId },\n },\n ],\n };\n\n this.customFieldService.enrichQuery(query.expand.contact, 'Contact');\n\n if (this.onlyActive()) {\n query.filter.push('contact/isActive eq true');\n }\n\n return query;\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n protected override getOrderBy(): string {\n const column = this.gridService.order.column || 'firstName';\n const direction = this.gridService.order.reverse ? 'desc' : 'asc';\n\n return `contact/${column} ${direction}`;\n }\n\n /**\n * Deletes contact from deal.\n *\n * @param contactId id of deleting contact.\n */\n protected override deleteContact(contactId: string): void {\n const indexToDelete = this.dealContacts.findIndex(\n (contact) => contact.contact.id === contactId,\n );\n if (indexToDelete === -1) {\n return;\n }\n\n this.dealContactsCollection\n .entity(this.dealContacts[indexToDelete].id)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.onContactDeleted(contactId, indexToDelete);\n this.notificationService.successLocal(\n 'components.dealContactsService.messages.contactDeleted',\n );\n },\n error: (error: Exception) =>\n this.notificationService.error(error.message),\n });\n }\n\n /**\n * Handles post-deletion logic for a contact.\n *\n * @param contactId id of deleting contact.\n */\n protected override onContactDeleted(\n contactId: string,\n contactIdIndex?: number,\n ): void {\n super.onContactDeleted(contactId);\n\n this.dealCardService.dealContacts.update((contacts) => [\n ...contacts.filter((c) => c.contactId !== contactId),\n ]);\n\n this.dealContacts.splice(contactIdIndex, 1);\n }\n\n /** Opens adding contacts modal window. */\n private selectClientContact(): void {\n const modalRef = this.modal.open(DealAddContactsModalComponent, {\n size: 'xxl',\n });\n const instance =\n modalRef.componentInstance as DealAddContactsModalComponent;\n instance.parentEntityId = this.dealCardService.deal()?.organization?.id;\n instance.existedEntities = this.dealCardService.dealContacts();\n modalRef.result.then(\n (contacts: DealContact[]) => {\n if (!contacts.length) {\n return;\n }\n\n const requests = contacts.map((contact) =>\n this.addContactToDeal({\n contactId: contact.contactId,\n dealId: this.dealId,\n }),\n );\n\n forkJoin(requests).subscribe((isSavedArray: boolean[]) => {\n const contactsToAdd: DealContact[] = [];\n isSavedArray.forEach((isSaved, index) => {\n if (isSaved) {\n contactsToAdd.push({\n contactId: contacts[index].contactId,\n dealId: this.dealId,\n });\n }\n });\n\n this.dealCardService.dealContacts.update((oldContacts) => [\n ...oldContacts,\n ...contactsToAdd,\n ]);\n this.load();\n this.notificationService.successLocal(\n 'components.dealContactsService.messages.contactsAdded',\n );\n });\n },\n () => null,\n );\n }\n\n /**\n * Adds contact to deal.\n *\n * @param contactId id or array of id's adding contact.\n */\n private addContactToDeal(\n dealContact: Partial,\n ): Observable {\n if (!dealContact) {\n return of(false);\n }\n\n return this.dealContactsCollection.insert(dealContact).pipe(\n map(() => true),\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-deal-add-contacts-modal-toolbar',\n templateUrl: './deal-add-contacts-modal-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealAddContactsModalToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n \n \n \n \n
    \n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\nimport _ from 'lodash';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Contact } from 'src/app/contacts/model/contact.model';\nimport { AddEntitiesModalComponent } from 'src/app/shared/components/add-entities-modal/add-entities-modal.component';\nimport { DealContact } from 'src/app/deals/model/deal.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ContactListFilterService } from 'src/app/contacts/list/contact-list-filter/contact-list-filter.service';\n// eslint-disable-next-line max-len\nimport { DealAddContactsModalToolbarComponent } from 'src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal-toolbar/deal-add-contacts-modal-toolbar.component';\nimport { DEAL_CONTACTS } from 'src/app/deals/card/deal-contacts/model/deal-contacts.list';\n\n/** Adding contacts modal window. */\n@Component({\n selector: 'tmt-deal-add-contacts-modal',\n templateUrl:\n '../../../../shared/components/add-entities-modal/add-entities-modal.component.html',\n styleUrls: [\n '../../../../shared/components/add-entities-modal/add-entities-modal.component.scss',\n ],\n providers: [\n { provide: FilterService, useClass: ContactListFilterService },\n GridService,\n ListService,\n { provide: VIEW_NAME, useValue: 'addContactsModal' },\n { provide: LIST, useValue: DEAL_CONTACTS },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealAddContactsModalComponent extends AddEntitiesModalComponent {\n protected override fieldToSortOnClient = 'name';\n protected override selectionLimitWarning =\n 'components.dealAddContactsModalComponent.props.30limit';\n protected override modalWindowHeader =\n 'components.dealAddContactsModalComponent.props.header';\n protected override noDisplayDataMessage =\n 'components.dealAddContactsModalComponent.props.noDisplayData';\n protected override hasAvatar = false;\n\n private readonly filterServiceInstance = this\n .filterService as ContactListFilterService;\n private readonly customFieldService = inject(CustomFieldService);\n\n constructor() {\n super();\n\n this.filterServiceInstance.hasClient = false;\n this.filterServiceInstance.placeholder =\n 'components.dealAddContactsModalToolbarComponent.filter.placeholder';\n this.filterServiceInstance.filterFields = [\n 'name',\n 'position',\n 'role/name',\n 'email',\n 'mobilePhone',\n 'phone',\n ];\n\n this.gridOptions.toolbar = DealAddContactsModalToolbarComponent;\n }\n\n /** Saves data. */\n protected override ok(): void {\n this.isSaving.set(true);\n\n const team = [];\n this.selectedEntities.forEach((contact: Contact) => {\n const member = {\n contactId: contact.id,\n };\n\n team.push(member);\n });\n\n this.isSaving.set(false);\n this.activeModal.close(team);\n }\n\n /** Loads data. */\n protected override load(): void {\n this.availableEntities = [];\n this.isLoading.set(true);\n this.loadedPartly.set(false);\n\n const listQuery = this.listService.getODataQuery(0, 50);\n\n const oDataParams = {\n select: [],\n expand: [{ role: { select: ['id', 'name'] } }],\n filter: [],\n orderBy: ['firstName'],\n top: this.loadingLimit,\n };\n\n oDataParams.select.push(...listQuery.select);\n oDataParams.filter.push(this.filterService.getODataFilter());\n\n if (this.parentEntityId) {\n oDataParams.filter.push({\n organizationId: { type: 'guid', value: this.parentEntityId },\n });\n }\n\n if (this.selectedEntities?.length) {\n oDataParams.filter.push([\n `not (id in (${this.selectedEntities.map((r) => r.id).join(',')}))`,\n ]);\n }\n\n if (this.existedEntities?.length) {\n oDataParams.filter.push([\n `not (id in (${this.existedEntities.map((r) => (r as DealContact)?.contactId).join(',')}))`,\n ]);\n }\n\n this.dataService\n .collection('Contacts')\n .query(oDataParams)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (contacts: Contact[]) => {\n this.formArray.clear();\n\n this.availableEntities = contacts.filter(\n (contact) =>\n !this.selectedEntities.some((r) => r.id === contact.id),\n );\n\n this.availableEntities.forEach((contact) => {\n const formGroup = this.getEntityFormGroup(contact);\n this.formArray.push(formGroup);\n });\n\n this.isLoading.set(false);\n this.loadedPartly.set(\n this.availableEntities.length === this.loadingLimit,\n );\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading.set(false);\n },\n });\n }\n\n /**\n * Returns contact form group.\n *\n * @returns contact form group.\n */\n protected override getEntityFormGroup(entity: NamedEntity): UntypedFormGroup {\n const contact = entity as Contact;\n const group = this.listService.getFormGroupForRow(contact);\n this.customFieldService.enrichFormGroup(group, 'Contact');\n group.disable();\n\n return group;\n }\n}\n","
    \n
    \n

    \n {{ modalWindowHeader | translate }}\n

    \n \n
    \n
    \n
    \n \n @if (loadedPartly()) {\n
    \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadingLimit } }}\n {{ 'shared.refineQueryMessage' | translate }}\n
    \n }\n
    \n
    \n
    \n
    \n @for (entity of selectedEntities; track $index) {\n
    \n @if (hasAvatar) {\n \n }\n
    \n {{ entity.name }}\n
    \n\n \n
    \n }\n @if (!selectedEntities.length) {\n
    \n {{ noDisplayDataMessage | translate }}\n
    \n }\n
    \n
    \n
    \n
    \n
    \n @if (selectedEntities.length) {\n \n {{ 'shared.actions.add' | translate }}\n \n }\n \n
    \n
    \n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class DealContactsSettings implements BaseSettings {\n public readonly name = 'DealContactsSettings';\n version: number;\n onlyActive: boolean;\n\n getDefault(): DealContactsSettings {\n return {\n version: 1,\n onlyActive: true,\n } as DealContactsSettings;\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { DealContactsService } from 'src/app/deals/card/deal-contacts/core/deal-contacts.service';\nimport { DEAL_CONTACTS } from 'src/app/deals/card/deal-contacts/model/deal-contacts.list';\n\n@Component({\n selector: 'tmt-deal-contacts',\n templateUrl: './deal-contacts.component.html',\n styleUrl: './deal-contacts.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DealContactsService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: DEAL_CONTACTS },\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class DealContactsComponent {\n public readonly dealContactsService = inject(DealContactsService);\n\n constructor() {\n this.dealContactsService.load();\n }\n}\n","\n","import { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport {\n GridColumnType,\n GridNavigationColumn,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const DEAL_CONTACTS: List = {\n name: 'dealContacts',\n version: 5,\n customFieldEntityType: 'Contact',\n editableCustomFields: true,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'firstName',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'lastName',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'position',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'description',\n width: 250,\n visibleByDefault: false,\n },\n {\n column: 'email',\n width: 250,\n visibleByDefault: true,\n },\n {\n column: 'mobilePhone',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'phone',\n visibleByDefault: true,\n width: 250,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'addContactsModal',\n resizableColumns: true,\n columns: [\n {\n column: 'plainName',\n visibleByDefault: true,\n width: 253,\n },\n {\n column: 'firstName',\n visibleByDefault: false,\n width: 253,\n },\n {\n column: 'lastName',\n visibleByDefault: false,\n width: 253,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 253,\n },\n {\n column: 'position',\n visibleByDefault: true,\n width: 253,\n },\n {\n column: 'description',\n width: 250,\n visibleByDefault: false,\n },\n {\n column: 'email',\n width: 250,\n visibleByDefault: true,\n },\n {\n column: 'mobilePhone',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'phone',\n visibleByDefault: true,\n width: 250,\n },\n ],\n order: { column: 'firstName', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'contact.profile',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n forceCellUpdating: true,\n },\n {\n name: 'plainName',\n state: 'contact.profile',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.String,\n },\n {\n name: 'firstName',\n type: GridColumnType.StringControl,\n header: 'shared2.props.firstName',\n hint: 'shared2.props.firstName',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'lastName',\n type: GridColumnType.StringControl,\n header: 'shared2.props.lastName',\n hint: 'shared2.props.lastName',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'role',\n type: GridColumnType.SelectControl,\n header: 'shared2.props.role',\n hint: 'shared2.props.role',\n directory: { entityName: 'Contact', propertyName: 'Role' },\n },\n {\n name: 'position',\n header: 'shared2.props.position',\n hint: 'shared2.props.position',\n type: GridColumnType.StringControl,\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'description',\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n fixedWidth: true,\n type: GridColumnType.StringControl,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'email',\n header: 'shared2.props.email',\n hint: 'shared2.props.email',\n fixedWidth: true,\n type: GridColumnType.Email,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'mobilePhone',\n header: 'shared2.props.mobilePhone',\n hint: 'shared2.props.mobilePhone',\n type: GridColumnType.Phone,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'phone',\n header: 'shared2.props.phone',\n hint: 'shared2.props.phone',\n type: GridColumnType.Phone,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'plainName',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'firstName',\n field: 'firstName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'lastName',\n field: 'lastName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'role',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'position',\n field: 'position',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'email',\n field: 'email',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'mobilePhone',\n field: 'mobilePhone',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'phone',\n field: 'phone',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { DealContactsService } from 'src/app/deals/card/deal-contacts/core/deal-contacts.service';\nimport { ClientContactsToolbarComponent } from 'src/app/clients/card/client-contact/toolbar/client-contacts-toolbar.component';\n\n@Component({\n selector: 'tmt-deal-contacts-toolbar',\n templateUrl: './deal-contacts-toolbar.component.html',\n styleUrl: './deal-contacts-toolbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealContactsToolbarComponent extends ClientContactsToolbarComponent {\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n private readonly dealContactsService: DealContactsService,\n ) {\n super(gridService, cdr, dealContactsService);\n }\n}\n","
    \n
    \n \n \n {{ 'shared2.actions.create' | translate }}\n \n\n \n {{ 'components.dealContactsToolbarComponent.actions.selectFromClient' | translate }}\n \n\n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n OnDestroy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DealCardService } from 'src/app/deals/card/deal-card.service';\nimport { DealProfileService } from 'src/app/deals/card/deal-profile/deal-profile.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { startWith } from 'rxjs';\n\n@Component({\n selector: 'tmt-deal-profile',\n templateUrl: './deal-profile.component.html',\n styleUrl: './deal-profile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: 'organizationId',\n useFactory: (dealCardService: DealCardService) =>\n dealCardService.deal().organization?.id,\n deps: [DealCardService],\n },\n ],\n standalone: false,\n})\nexport class DealProfileComponent implements OnDestroy {\n public activeTab: string;\n public readonly commentedEntityCollectionType = CommentedEntityCollectionType;\n public readonly propagationMode = PropagationMode;\n\n public readonly appService = inject(AppService);\n public readonly dealCardService = inject(DealCardService);\n public readonly dealProfileService = inject(DealProfileService);\n\n constructor() {\n this.dealCardService.reloadTab$\n .pipe(startWith(true), takeUntilDestroyed())\n .subscribe(() => {\n this.dealProfileService.load();\n });\n }\n\n public ngOnDestroy(): void {\n this.dealProfileService.form.markAsPristine();\n this.dealProfileService.form.markAsUntouched();\n }\n}\n","\n\n\n\n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n @if (appService.getCustomFields('Deal').length) {\n
    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n }\n\n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    \n \n

    \n\n
    \n @if (dealCardService.deal().organization?.id) {\n
    \n \n
    \n } @else {\n
    \n {{ 'components.dealProfileComponent.props.noDisplayContacts' | translate }}\n
    \n }\n
    \n
    \n
    \n\n\n@if (dealCardService.dealId) {\n \n\n
    \n}\n","import {\n computed,\n DestroyRef,\n effect,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DealCardService } from 'src/app/deals/card/deal-card.service';\nimport { Deal } from 'src/app/deals/model/deal.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Injectable()\nexport class DealProfileService {\n private readonly _isLoading = signal(false);\n public readonly isLoading = computed(this._isLoading);\n\n public form: UntypedFormGroup;\n\n public get formRawValue(): Partial {\n return this.form.getRawValue();\n }\n\n private readonly dealCardService = inject(DealCardService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly savingQueueService = inject(SavingQueueService);\n private readonly notificationService = inject(NotificationService);\n private readonly fb = inject(UntypedFormBuilder);\n\n constructor() {\n effect(() => {\n if (this.dealCardService.dealContacts().length) {\n this.form.get('organizationId').disable({ emitEvent: false });\n } else {\n this.form.get('organizationId').enable({ emitEvent: false });\n }\n });\n\n this.form = this.fb.group({\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n organizationId: null,\n manager: null,\n amount: [null, [Validators.min(0)]],\n probability: [null, [Validators.max(1), Validators.min(0)]],\n resolutionId: null,\n resolutionComment: [\n '',\n [Validators.maxLength(Constants.formTextMaxLength)],\n ],\n sourceId: null,\n });\n\n this.customFieldService.enrichFormGroup(this.form, 'Deal');\n\n this.savingQueueService.save$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.dealCardService.updateIndicators(this.formRawValue);\n this.dealCardService.updateDeal(this.formRawValue);\n this.form.markAsPristine();\n });\n this.savingQueueService.error$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load();\n });\n\n this.subscribeToFormChanges();\n }\n\n /** Loads deal's data. */\n public async load(): Promise {\n await this.savingQueueService.save();\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this._isLoading.set(true);\n\n const query = this.buildQuery();\n\n this.dealCardService\n .loadDeal(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (deal: Deal) => {\n this.form.patchValue(deal, { emitEvent: false });\n if (this.dealCardService.deal().editAllowed) {\n this.form.enable({ emitEvent: false });\n } else {\n this.form.disable({ emitEvent: false });\n }\n if (this.dealCardService.deal().dealContacts?.length) {\n this.form.get('organizationId').disable({ emitEvent: false });\n }\n this._isLoading.set(false);\n },\n error: (error: Exception) => {\n this._isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Builds OData query for deal entity\n *\n * @returns OData query\n */\n private buildQuery(): any {\n const query = {\n select: [\n 'description',\n 'amount',\n 'probability',\n 'resolutionComment',\n 'organizationId',\n 'sourceId',\n 'resolutionId',\n ],\n expand: [{ manager: { select: ['id', 'name'] } }],\n };\n\n this.customFieldService.enrichQuery(query, 'Deal');\n\n return query;\n }\n\n /** Subscribes to form changes and process form data. */\n private subscribeToFormChanges?(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.form.invalid) {\n return;\n }\n\n const dealData: Partial = Object.assign({}, this.formRawValue, {\n managerId: this.formRawValue['manager'].id || null,\n });\n delete dealData['manager'];\n\n this.savingQueueService.addToQueue(\n this.dealCardService.dealId,\n this.dealCardService.dealCollection\n .entity(this.dealCardService.dealId)\n .patch(dealData),\n );\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AppService } from 'src/app/core/app.service';\nimport { Deal } from 'src/app/deals/model/deal.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Component({\n selector: 'tmt-deal-create-modal',\n templateUrl: './deal-create-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealCreateModalComponent {\n @Input() organizationId: string | undefined;\n\n private _isSaving = signal(false);\n public isSaving = computed(this._isSaving);\n\n public creationForm: UntypedFormGroup;\n public baseCurrencyCode: string;\n\n public readonly appService = inject(AppService);\n\n private readonly activeModal = inject(NgbActiveModal);\n private readonly customFieldService = inject(CustomFieldService);\n private readonly dataService = inject(DataService);\n private readonly fb = inject(UntypedFormBuilder);\n private readonly notificationService = inject(NotificationService);\n\n constructor() {\n this.creationForm = this.fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n organizationId: null,\n manager: null,\n });\n this.baseCurrencyCode =\n this.appService.session.configuration.baseCurrencyCode;\n this.creationForm.patchValue({ manager: this.appService.session.user });\n }\n\n /** Modal submit handler. */\n public ok(): void {\n if (this.organizationId) {\n this.creationForm\n .get('organizationId')\n .patchValue(this.organizationId, { emitEvent: false });\n }\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.customFieldService.enrichFormGroup(this.creationForm, 'Deal');\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.creationForm,\n 'Deal',\n );\n\n this._isSaving.set(true);\n\n const creationFormValue = this.creationForm.value;\n const dealData: Partial = {\n name: creationFormValue.name,\n organizationId: creationFormValue.organizationId,\n managerId: creationFormValue.manager?.id,\n };\n\n this.customFieldService.assignValues(dealData, creationFormValue, 'Deal');\n\n this.dataService\n .collection('Deals')\n .insert(dealData)\n .subscribe({\n next: (response: Deal) => {\n this.notificationService.successLocal(\n 'components.createDealModalComponent.messages.created',\n );\n this._isSaving.set(false);\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this._isSaving.set(false);\n },\n });\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.createDealModalComponent.props.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n @if (!organizationId) {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { DealListComponent } from 'src/app/deals/list/deal-list.component';\nimport { DealCreateModalComponent } from 'src/app/deals/creation/deal-create-modal.component';\nimport { DealCardComponent } from 'src/app/deals/card/deal-card.component';\nimport { DealProfileComponent } from 'src/app/deals/card/deal-profile/deal-profile.component';\nimport { DEALS_LIST } from 'src/app/deals/model/deal.list';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { InteractionsComponent } from 'src/app/shared/modules/interactions/interactions.component';\nimport { InteractionsModule } from 'src/app/shared/modules/interactions/interactions.module';\nimport { ClientsModule } from 'src/app/clients/clients.module';\nimport { DealContactsComponent } from 'src/app/deals/card/deal-contacts/deal-contacts.component';\nimport { DealContactsToolbarComponent } from 'src/app/deals/card/deal-contacts/toolbar/deal-contacts-toolbar.component';\nimport { RichEditorBoxComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box.component';\nimport { DealListFilterComponent } from 'src/app/deals/list/deal-list-filter/deal-list-filter.component';\nimport { DealAddContactsModalComponent } from 'src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal.component';\n// eslint-disable-next-line max-len\nimport { DealAddContactsModalToolbarComponent } from 'src/app/deals/card/deal-contacts/deal-add-contacts-modal/deal-add-contacts-modal-toolbar/deal-add-contacts-modal-toolbar.component';\nimport { AccordionStateDirective } from 'src/app/shared/directives/accordion-state/accordion-state.directive';\n\n@NgModule({\n declarations: [\n DealListComponent,\n DealListFilterComponent,\n DealCreateModalComponent,\n DealCardComponent,\n DealProfileComponent,\n DealContactsComponent,\n DealAddContactsModalComponent,\n DealAddContactsModalToolbarComponent,\n DealContactsToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n BaseSharedModule,\n CommentsModule,\n EntityListComponent,\n InteractionsModule,\n RichEditorBoxComponent,\n ClientsModule,\n AccordionStateDirective,\n UIRouterModule.forChild({\n states: [\n {\n name: 'deals',\n url: '/deals/{view:viewName}?{navigation}&{route}',\n component: DealListComponent,\n params: {\n navigation: 'clients.allDeals',\n routeMode: null,\n view: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: DEALS_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'deal',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'deal',\n url: '/deals/{entityId:guid}?{navigation}&{route}',\n dynamic: true,\n params: {\n navigation: 'clients.allDeals',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n component: DealCardComponent,\n redirectTo: 'deal.profile',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'deal.profile',\n url: '/profile',\n component: DealProfileComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'deal.interactions',\n url: '/interactions',\n component: InteractionsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class DealsModule {}\n","import {\n Component,\n Input,\n Inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-deal-list-filter',\n templateUrl: './deal-list-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealListFilterComponent implements FilterDetails {\n @Input() public values: any;\n\n public detailsForm = this.fb.group({\n period: null,\n manager: null,\n organization: null,\n source: null,\n resolution: null,\n states: null,\n });\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public readonly filterService: FilterService,\n private readonly fb: UntypedFormBuilder,\n ) {\n this.filterService.resetValues$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n @if (viewName !== 'my') {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { DealListFilterComponent } from 'src/app/deals/list/deal-list-filter/deal-list-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class DealListFilterService extends FilterService {\n public override component: Type = DealListFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = true;\n public override placeholder =\n 'components.dealListFilterService.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n states: () => (this.stateConditionExist() ? 1 : 0),\n };\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push(\n this.getTextFilter(\n ['name', 'organization/name'],\n this.getClearText(text),\n ),\n );\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n true,\n );\n\n result.push({\n created: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n created: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n if (this.values.manager) {\n result.push({\n managerId: { type: 'guid', value: this.values.manager.id },\n });\n }\n\n if (this.values.organization) {\n result.push({\n organizationId: {\n type: 'guid',\n value: this.values.organization.id,\n },\n });\n }\n\n if (this.values.source) {\n result.push({\n sourceId: { type: 'guid', value: this.values.source.id },\n });\n }\n\n if (this.values.resolution) {\n result.push({\n resolutionId: { type: 'guid', value: this.values.resolution.id },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n period: null,\n manager: null,\n organization: null,\n source: null,\n resolution: null,\n states: null,\n view: this.views[0],\n };\n }\n}\n","import {\n Component,\n OnInit,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DealCreateModalComponent } from 'src/app/deals/creation/deal-create-modal.component';\nimport { DealListFilterService } from 'src/app/deals/list/deal-list-filter/deal-list-filter.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Deal } from 'src/app/deals/model/deal.model';\n\n@Component({\n selector: 'tmt-deal-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DealListFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DealListComponent implements OnInit {\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly entityListService = inject(EntityListService);\n private readonly gridService = inject(GridService);\n private readonly modalService = inject(NgbModal);\n private readonly navigationService = inject(NavigationService);\n private readonly stateService = inject(StateService);\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.dealsListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Deal',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('deal', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: UntypedFormGroup) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown = row && true;\n this.appService.checkEntityPermission('Deal', PermissionType.Delete);\n });\n }\n\n private create(): void {\n this.modalService.open(DealCreateModalComponent).result.then(\n (entity: Deal) => {\n this.stateService.go('deal', {\n entityId: entity.id,\n routeMode: RouteMode.continue,\n navigation:\n this.navigationService.selectedNavigationItem?.name ??\n 'clients.allDeals',\n });\n },\n () => null,\n );\n }\n}\n","import { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n DATE_TIME_COLUMN_WIDTH,\n getNamedEntityDataColumns,\n getNamedEntityGridColumns,\n} from 'src/app/shared/helpers/list.helper';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { ViewColumn } from 'src/app/shared/models/inner/view';\n\nconst DEFAULT_VIEW_COLUMNS: ViewColumn[] = [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n isRequired: true,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'manager',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'source',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'probability',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 150,\n },\n\n {\n column: 'resolution',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'resolutionComment',\n visibleByDefault: false,\n width: 1,\n },\n\n {\n column: 'description',\n visibleByDefault: false,\n width: 3,\n },\n\n {\n column: 'created',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n];\n\nexport const DEALS_LIST: List = {\n dataCollection: 'Deals',\n version: 6,\n customFieldEntityType: 'Deal',\n name: 'my',\n views: [\n {\n name: 'my',\n columns: DEFAULT_VIEW_COLUMNS,\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n managerId: { type: 'guid', value: '#user' },\n },\n ],\n },\n {\n name: 'all',\n columns: DEFAULT_VIEW_COLUMNS,\n order: { column: 'name', reverse: false },\n },\n {\n name: 'clientDeals',\n order: { column: 'name', reverse: false },\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'managerControl',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'sourceControl',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'probability',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 150,\n },\n\n {\n column: 'resolutionControl',\n visibleByDefault: false,\n width: 200,\n },\n {\n column: 'resolutionComment',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'createdByControl',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'modifiedByControl',\n visibleByDefault: false,\n width: 100,\n },\n ],\n },\n ],\n columns: [\n ...getNamedEntityGridColumns('deal.profile'),\n {\n name: 'organization',\n header: 'shared2.props.organization',\n hint: 'shared2.props.organization',\n type: GridColumnType.String,\n },\n {\n name: 'manager',\n header: 'shared2.props.manager',\n hint: 'shared2.props.manager',\n type: GridColumnType.String,\n },\n {\n name: 'resolution',\n header: 'shared2.props.resolution',\n hint: 'shared2.props.resolution',\n type: GridColumnType.String,\n },\n {\n name: 'resolutionComment',\n header: 'shared2.props.resolutionComment',\n hint: 'shared2.props.resolutionComment',\n type: GridColumnType.String,\n },\n {\n name: 'source',\n header: 'shared2.props.source',\n hint: 'shared2.props.source',\n type: GridColumnType.String,\n },\n {\n name: 'state',\n header: 'shared2.props.state',\n hint: 'shared2.props.state',\n type: GridColumnType.State,\n fixedWidth: true,\n },\n {\n name: 'probability',\n header: 'shared2.props.probability',\n hint: 'shared2.props.probability',\n fixedWidth: true,\n type: GridColumnType.Percent,\n },\n {\n name: 'amount',\n fixedWidth: true,\n header: 'shared2.props.amount',\n hint: 'shared2.props.amount',\n type: GridColumnType.Currency,\n },\n {\n name: 'managerControl',\n header: 'shared2.props.manager',\n hint: 'shared2.props.manager',\n type: GridColumnType.UserControl,\n },\n {\n name: 'modifiedByControl',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.UserControl,\n },\n {\n name: 'createdByControl',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.UserControl,\n },\n {\n name: 'resolutionControl',\n header: 'shared2.props.resolution',\n hint: 'shared2.props.resolution',\n type: GridColumnType.SelectControl,\n },\n {\n name: 'sourceControl',\n header: 'shared2.props.source',\n hint: 'shared2.props.source',\n type: GridColumnType.SelectControl,\n },\n ],\n dataColumns: [\n ...getNamedEntityDataColumns(),\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'organization',\n field: 'organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'manager',\n field: 'manager.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolution',\n field: 'resolution.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolutionComment',\n field: 'resolutionComment',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'source',\n field: 'source.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'probability',\n field: 'probability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amount',\n field: 'amount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'managerControl',\n field: 'manager.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdByControl',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedByControl',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolutionControl',\n field: 'resolution.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'sourceControl',\n field: 'source.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'tmt-checkbox-test',\n templateUrl: './checkbox-test.component.html',\n standalone: false,\n})\nexport class CheckboxTestComponent {\n public form = this.fb.group({\n active: [false],\n activeReversed: [false],\n flag: null,\n });\n\n public formInputParams = this.fb.group({\n readonly: [false],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n /** Set value to the control. */\n public setValue(): void {\n this.form.patchValue({\n active: true,\n activeReversed: true,\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    Checkbox (Base mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('active').value | json }}\n \n

    \n\n
    \n\n

    Checkbox (Reversed mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('activeReversed').value | json }}\n \n

    \n\n
    \n\n \n\n

    \n Form value:
    \n \n {{ form.get('flag').value | json }}\n \n

    \n
    \n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'wp-currency-box-test',\n templateUrl: './currency-box-test.component.html',\n standalone: false,\n})\nexport class CurrencyBoxTestComponent {\n form = this.fb.group({\n currency: [null, Validators.required],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n currency: {\n value: 5,\n valueBC: null,\n currencyCode: 'MXN',\n },\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    CurrencyBox

    \n \n

    \n Form value:
    \n \n {{ form.get('currency').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('currency').valid }}

    \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { DateTime } from 'luxon';\nimport { FteScheduleService } from 'src/app/core/fte-schedule.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-date-box-test',\n templateUrl: './date-box-test.component.html',\n standalone: false,\n})\nexport class DateBoxTestComponent implements OnInit, OnDestroy {\n form = this.fb.group({\n date: [null, Validators.required],\n dateTime: [null, Validators.required],\n dateNonNullable: [null, Validators.required],\n dateWithSchedule: [null, Validators.required],\n });\n\n public formInputParams = this.fb.group({\n readonly: [false],\n });\n\n public nonWorkingDays: DateTime[];\n\n private scale = PlanningScale.Day;\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private fteScheduleService: FteScheduleService,\n ) {}\n\n setValue() {\n this.form.setValue({\n date: '2020-04-01',\n dateTime: '2020-04-01T07:00:00.000Z',\n dateNonNullable: '2020-04-01',\n dateWithSchedule: '2020-04-01',\n });\n }\n\n ngOnInit() {\n this.initSchedule();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Inits non-working days by fte schedule. From (today - 100 yeas) to (today + 100 years). */\n private initSchedule() {\n return this.fteScheduleService\n .getCompleteFteSchedule(this.scale, true)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((schedule) => {\n this.nonWorkingDays = schedule\n .filter((dateHour) => !dateHour.hours)\n .map((dateHour) => DateTime.fromISO(dateHour.date));\n });\n }\n\n /** Check is date non working\n *\n * @param date checking date\n * @returns is date non working\n */\n public checkNonWorkingDay = (date: DateTime): boolean =>\n !!this.nonWorkingDays.find((day) => +day === +date);\n}\n","
    \n
    \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    DateBox

    \n \n \n
    \n
    \n

    \n Form value:
    \n \n {{ form.get('date').value | json }}\n \n

    \n\n

    Form control is valid: {{ form.get('date').valid }}

    \n
    \n\n
    \n

    DateTimeBox

    \n \n
    \n
    \n

    \n Form value:
    \n \n {{ form.get('dateTime').value | json }}\n \n

    \n\n

    Form control is valid: {{ form.get('dateTime').valid }}

    \n
    \n\n
    \n

    DateBox (non-nullable)

    \n \n
    \n
    \n

    \n Form value:
    \n \n {{ form.get('dateNonNullable').value | json }}\n \n

    \n\n

    Form control is valid: {{ form.get('dateNonNullable').valid }}

    \n
    \n\n
    \n

    DateBox (with non-working days)

    \n \n
    \n
    \n

    \n Form value:
    \n \n {{ form.get('dateWithSchedule').value | json }}\n \n

    \n\n

    Form control is valid: {{ form.get('dateWithSchedule').valid }}

    \n
    \n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'wp-date-period-box-test',\n templateUrl: './date-period-box-test.component.html',\n standalone: false,\n})\nexport class DatePeriodBoxTestComponent {\n form = this.fb.group({\n period: [null, Validators.required],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n period: { periodType: 'PrevWeek', from: '2020-01-20', to: '2020-01-26' },\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    DatePeriodBox (Standard)

    \n \n
    \n
    \n

    \n Form value:
    \n\n \n {{ form.get('period').value | json }}\n \n

    \n\n

    Form control is valid: {{ form.get('period').valid }}

    \n
    \n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-debug-app',\n template: '',\n standalone: false,\n})\nexport class DebugAppComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DEBUG_APP_STATES } from './debug-app.states';\nimport { DebugAppComponent } from './debug-app.component';\nimport { StatusPageComponent } from './status-page/status-page.component';\nimport { HierarchicalBoxTestComponent } from './hierarchical-box-test/hierarchical-box-test.component';\nimport { TextBoxTestComponent } from './text-box-test/text-box-test.component';\nimport { NumberBoxTestComponent } from './number-box-test/number-box-test.component';\nimport { UserBoxTestComponent } from './user-box-test/user-box-test.component';\nimport { MultilineTextBoxTestComponent } from './multiline-text-box-test/multiline-text-box-test.component';\nimport { SelectBoxTestComponent } from './select-box-test/select-box-test.component';\nimport { DateBoxTestComponent } from './date-box-test/date-box-test.component';\nimport { DatePeriodBoxTestComponent } from './date-period-box-test/date-period-box-test.component';\nimport { TaskBoxTestComponent } from './task-box-test/task-box-test.component';\nimport { CurrencyBoxTestComponent } from './currency-box-test/currency-box-test.component';\nimport { DurationBoxTestComponent } from './duration-box-test/duration-box-test.component';\nimport { ProjectCardSharedModule } from 'src/app/projects/card/shared/project-card-shared.module';\nimport { PredecessorBoxTestComponent } from 'src/app/debug-app/predecessor-box-test/predecessor-box-test.component';\nimport { GridTestComponent } from 'src/app/debug-app/grid-test/grid-test.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { FormHelperTestComponent } from 'src/app/debug-app/form-helper-test/form-helper-test.component';\nimport { RichEditorBoxTestComponent } from 'src/app/debug-app/rich-editor-box-test/rich-editor-box-test.component';\nimport { RichEditorBoxComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box.component';\nimport { GridTestRightSideTableComponent } from 'src/app/debug-app/grid-test/grid-test-right-side-table/grid-test-right-side-table.component';\nimport { GridTestToolbarComponent } from 'src/app/debug-app/grid-test/grid-test-toolbar/grid-test-toolbar.component';\nimport { CheckboxTestComponent } from 'src/app/debug-app/checkbox-test/checkbox-test.component';\nimport { CheckboxComponent } from 'src/app/shared/components/controls/checkbox/checkbox.component';\nimport { TimeTrackerBoxTestComponent } from 'src/app/debug-app/time-tracker-box-test/time-tracker-box-test.component';\n\n@NgModule({\n declarations: [\n DebugAppComponent,\n StatusPageComponent,\n HierarchicalBoxTestComponent,\n TextBoxTestComponent,\n UserBoxTestComponent,\n NumberBoxTestComponent,\n MultilineTextBoxTestComponent,\n SelectBoxTestComponent,\n DateBoxTestComponent,\n DatePeriodBoxTestComponent,\n TaskBoxTestComponent,\n CurrencyBoxTestComponent,\n DurationBoxTestComponent,\n PredecessorBoxTestComponent,\n GridTestComponent,\n GridTestComponent,\n GridTestRightSideTableComponent,\n GridTestToolbarComponent,\n FormHelperTestComponent,\n RichEditorBoxTestComponent,\n CheckboxTestComponent,\n TimeTrackerBoxTestComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n ProjectCardSharedModule,\n CheckboxComponent,\n RichEditorBoxComponent,\n UIRouterModule.forChild({\n states: DEBUG_APP_STATES,\n }),\n ],\n})\nexport class DebugAppModule {}\n","import { Navigation } from '../shared/models/navigation/navigation';\n\nexport const DEBUG_APP_NAVIGATION: Navigation = {\n name: 'admin',\n applicationTitle: 'Debug',\n groups: [\n {\n name: 'admin',\n header: 'Admin',\n items: [\n {\n name: 'debug.status',\n state: 'debug.status',\n header: 'Status',\n hint: 'Status page',\n },\n ],\n },\n {\n name: 'controls',\n header: 'Controls',\n items: [\n {\n name: 'debug.checkbox',\n state: 'debug.checkbox',\n header: 'Checkbox',\n hint: 'Checkbox',\n },\n {\n name: 'debug.textBox',\n state: 'debug.textBox',\n header: 'TextBox',\n hint: 'TextBox',\n },\n {\n name: 'debug.multilineTextBox',\n state: 'debug.multilineTextBox',\n header: 'MultilineTextBox',\n hint: 'MultilineTextBox',\n },\n {\n name: 'debug.numberBox',\n state: 'debug.numberBox',\n header: 'NumberBox',\n hint: 'NumberBox',\n },\n {\n name: 'debug.selectBox',\n state: 'debug.selectBox',\n header: 'SelectBox',\n hint: 'SelectBox',\n },\n {\n name: 'debug.richEditorBox',\n state: 'debug.richEditorBox',\n header: 'RichEditorBox',\n hint: 'RichEditorBox',\n },\n {\n name: 'debug.timeTrackerBox',\n state: 'debug.timeTrackerBox',\n header: 'TimeTrackerBox',\n hint: 'TimeTrackerBox',\n },\n {\n name: 'debug.userBox',\n state: 'debug.userBox',\n header: 'UserBox',\n hint: 'UserBox',\n },\n {\n name: 'debug.hierarchical',\n state: 'debug.hierarchical',\n header: 'HierarchicalBox',\n hint: 'HierarchicalBox',\n },\n {\n name: 'debug.task',\n state: 'debug.task',\n header: 'TaskBox',\n hint: 'TaskBox',\n },\n {\n name: 'debug.dateBox',\n state: 'debug.dateBox',\n header: 'DateBox',\n hint: 'DateBox',\n },\n {\n name: 'debug.datePeriodBox',\n state: 'debug.datePeriodBox',\n header: 'DatePeriodBox',\n hint: 'DatePeriodBox',\n },\n {\n name: 'debug.currencyBox',\n state: 'debug.currencyBox',\n header: 'CurrencyBox',\n hint: 'CurrencyBox',\n },\n {\n name: 'debug.grid',\n state: 'debug.grid',\n header: 'Grid',\n hint: 'Grid',\n },\n {\n name: 'debug.duration',\n state: 'debug.duration',\n header: 'DurationBox',\n hint: 'DurationBox',\n },\n {\n name: 'debug.multiSelect',\n state: 'debug.multiSelect',\n header: 'MultiSelect Box',\n hint: 'MultiSelect Box',\n },\n {\n name: 'debug.formHelper',\n state: 'debug.formHelper',\n header: 'Form Helper',\n hint: 'Form Helper',\n },\n ],\n },\n {\n name: 'shared',\n header: 'Shared',\n items: [\n {\n name: 'debug.tree-list',\n state: 'debug.tree-list',\n header: 'Tree list',\n hint: 'Tree list',\n },\n ],\n },\n ],\n};\n","import { NavigationService } from '../core/navigation.service';\nimport { DebugAppComponent } from './debug-app.component';\nimport { DEBUG_APP_NAVIGATION } from './debug-app.navigation';\nimport { StatusPageComponent } from './status-page/status-page.component';\nimport { HierarchicalBoxTestComponent } from './hierarchical-box-test/hierarchical-box-test.component';\nimport { TextBoxTestComponent } from './text-box-test/text-box-test.component';\nimport { UserBoxTestComponent } from './user-box-test/user-box-test.component';\nimport { NumberBoxTestComponent } from './number-box-test/number-box-test.component';\nimport { MultilineTextBoxTestComponent } from './multiline-text-box-test/multiline-text-box-test.component';\nimport { SelectBoxTestComponent } from './select-box-test/select-box-test.component';\nimport { DateBoxTestComponent } from './date-box-test/date-box-test.component';\nimport { DatePeriodBoxTestComponent } from './date-period-box-test/date-period-box-test.component';\nimport { TaskBoxTestComponent } from './task-box-test/task-box-test.component';\nimport { CurrencyBoxTestComponent } from './currency-box-test/currency-box-test.component';\nimport { DurationBoxTestComponent } from 'src/app/debug-app/duration-box-test/duration-box-test.component';\nimport { PredecessorBoxTestComponent } from 'src/app/debug-app/predecessor-box-test/predecessor-box-test.component';\nimport { TreeListTestComponent } from 'src/app/debug-app/tree-list-test/tree-list-test.component';\nimport { GridTestComponent } from 'src/app/debug-app/grid-test/grid-test.component';\nimport { FormHelperTestComponent } from 'src/app/debug-app/form-helper-test/form-helper-test.component';\nimport { RichEditorBoxTestComponent } from 'src/app/debug-app/rich-editor-box-test/rich-editor-box-test.component';\nimport { CheckboxTestComponent } from 'src/app/debug-app/checkbox-test/checkbox-test.component';\nimport { TimeTrackerBoxTestComponent } from 'src/app/debug-app/time-tracker-box-test/time-tracker-box-test.component';\n\nconst appStates: any[] = [];\n\nexport function initApp(navigation: NavigationService) {\n navigation.load(DEBUG_APP_NAVIGATION);\n}\n\nappStates.push({\n name: 'debug',\n url: '/debug',\n component: DebugAppComponent,\n redirectTo: 'debug.status',\n resolve: [\n {\n token: 'debugAppInitializer',\n deps: [NavigationService],\n resolveFn: initApp,\n },\n ],\n});\n\nappStates.push({\n name: 'debug.status',\n url: '/status',\n component: StatusPageComponent,\n});\n\nappStates.push({\n name: 'debug.textBox',\n url: '/controls/textBox',\n component: TextBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.checkbox',\n url: '/controls/checkbox',\n component: CheckboxTestComponent,\n});\n\nappStates.push({\n name: 'debug.multilineTextBox',\n url: '/controls/multilineTextBox',\n component: MultilineTextBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.numberBox',\n url: '/controls/numberBox',\n component: NumberBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.selectBox',\n url: '/controls/selectBox',\n component: SelectBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.richEditorBox',\n url: '/controls/richEditorBox',\n component: RichEditorBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.timeTrackerBox',\n url: '/controls/timeTrackerBox',\n component: TimeTrackerBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.userBox',\n url: '/controls/userBox',\n component: UserBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.hierarchical',\n url: '/controls/hierarchicalBox',\n component: HierarchicalBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.task',\n url: '/controls/taskBox',\n component: TaskBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.dateBox',\n url: '/controls/dateBox',\n component: DateBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.datePeriodBox',\n url: '/controls/datePeriodBox',\n component: DatePeriodBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.currencyBox',\n url: '/controls/currencyBox',\n component: CurrencyBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.grid',\n url: '/grid',\n component: GridTestComponent,\n});\n\nappStates.push({\n name: 'debug.duration',\n url: '/duration',\n component: DurationBoxTestComponent,\n});\n\nappStates.push({\n name: 'debug.formHelper',\n url: '/formHelper',\n component: FormHelperTestComponent,\n});\n\nappStates.push({\n name: 'debug.multiSelect',\n url: '/multiSelect',\n component: PredecessorBoxTestComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [],\n resolveFn: () => 0,\n },\n ],\n});\n\nappStates.push({\n name: 'debug.tree-list',\n url: '/tree-list',\n component: TreeListTestComponent,\n});\n\nexport const DEBUG_APP_STATES = appStates;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DimensionItem } from 'src/app/shared/models/enums/dimension-item.enum';\n\n@Component({\n selector: 'tmt-duration-box-test',\n templateUrl: './duration-box-test.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DurationBoxTestComponent implements OnInit, OnDestroy {\n public dimensionItems = DimensionItem;\n\n private formChangeSubscription: Subscription;\n\n form = this.fb.group({\n duration: [null, Validators.required],\n duration2: [null, Validators.required],\n durationMonths: [null, Validators.required],\n durationWeeks: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.formChangeSubscription = this.form.valueChanges.subscribe(() =>\n this.cdr.detectChanges(),\n );\n }\n ngOnDestroy(): void {\n this.formChangeSubscription.unsubscribe();\n }\n\n /** Set value to the control. */\n setValue(value: number) {\n this.form.setValue({\n duration: value,\n duration2: value,\n durationMonths: value,\n durationWeeks: value,\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    DurationBox Days

    \n \n

    \n Form value:
    \n \n {{ form.get('duration').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('duration').valid }}

    \n
    \n
    \n
    \n\n
    \n

    DurationBox Weeks

    \n \n

    \n Form value:
    \n \n {{ form.get('durationWeeks').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('durationWeeks').valid }}

    \n
    \n
    \n
    \n\n
    \n

    DurationBox Months

    \n \n

    \n Form value:
    \n \n {{ form.get('durationMonths').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('durationMonths').valid }}

    \n
    \n
    \n
    \n\n
    \n

    DurationBox (null is not allowed)

    \n \n

    \n Form value:
    \n \n {{ form.get('duration2').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('duration2').valid }}

    \n
    \n
    \n
    \n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n QueryList,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\n\nimport { DateTime } from 'luxon';\n\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\n\n@Component({\n selector: 'tmt-form-helper-test',\n templateUrl: './form-helper-test.component.html',\n standalone: false,\n})\nexport class FormHelperTestComponent implements AfterViewInit {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n public form: UntypedFormGroup = this.fb.group({\n dateFrom: [null, Validators.required],\n dateTo: [null, Validators.required],\n client: [null, Validators.required],\n project: [null, Validators.required],\n level: [null, Validators.required],\n grade: [null, Validators.required],\n role: [null, Validators.required],\n competence: [null, Validators.required],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit(): void {\n FormHelper.controlDatePair(\n this.form,\n 'dateFrom',\n 'dateTo',\n takeUntilDestroyed(this.destroyRef),\n );\n FormHelper.cascadeDependency(\n this.form,\n this.cascadeControls,\n [\n [\n {\n controlName: 'client',\n },\n {\n dependedProperty: 'organizationId',\n controlName: 'project',\n },\n ],\n [\n {\n controlName: 'role',\n isDisableDepended: true,\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.cdr.detectChanges();\n }\n\n public setValue(): void {\n const date = DateTime.now();\n\n this.form.setValue({\n dateFrom: date.toISODate(),\n dateTo: date.plus({ month: 1 }).toISODate(),\n client: null,\n project: null,\n level: null,\n grade: null,\n role: null,\n competence: null,\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    Date pair

    \n
    \n \n \n
    \n\n
    \n
    \n\n

    Cascade dependency

    \n
    \n \n \n
    \n\n
    \n
    \n\n

    Cascade dependency (Disable dependent)

    \n
    \n \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport {\n FormBuilder,\n UntypedFormArray,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { DateTime, Interval } from 'luxon';\nimport { TimelineCellEntry } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline-entry.interface';\nimport {\n ScheduleNavigationService,\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\n@Injectable()\nexport class GridDataService {\n public formArray: UntypedFormArray = this.fb.array([]);\n\n public slots: Slot[];\n public slotGroups: SlotGroup[];\n public cellEntries: TimelineCellEntry[];\n\n constructor(\n private fb: FormBuilder,\n private scheduleNavigationService: ScheduleNavigationService,\n ) {}\n\n public readonly mockData = [\n {\n id: Guid.generate(),\n stringControl: 'mock text',\n numberControl: 1111,\n selectControl: { id: '1111', name: '1111' },\n dateControl: '2024-03-01',\n },\n {\n id: Guid.generate(),\n stringControl: 'mock text2',\n numberControl: 2222,\n selectControl: { id: '2222', name: '2222' },\n dateControl: '2024-03-02',\n },\n {\n id: Guid.generate(),\n stringControl: 'mock text3',\n numberControl: 3333,\n selectControl: { id: '3333', name: '3333' },\n dateControl: '2024-03-03',\n },\n {\n id: Guid.generate(),\n stringControl: 'mock text4',\n numberControl: 4444,\n selectControl: { id: '4444', name: '4444' },\n dateControl: '2024-03-04',\n },\n {\n id: Guid.generate(),\n stringControl: 'mock text5',\n numberControl: 5555,\n selectControl: { id: '4444', name: '4444' },\n dateControl: '2024-03-05',\n },\n {\n id: Guid.generate(),\n stringControl: 'mock text6',\n numberControl: 6666,\n selectControl: { id: '3333', name: '3333' },\n dateControl: '2024-03-06',\n },\n ];\n\n public initMockData() {\n this.mockData.forEach((element) => {\n const group = this.getFormGroup();\n group.patchValue(element);\n this.formArray.push(group);\n });\n\n this.initSlots();\n }\n\n /** Return current slot table width. */\n public getSlotTableWidth(): number | null {\n if (!this.slots) {\n return null;\n }\n return 45 * this.slots.length + 1;\n }\n\n private initSlots() {\n let startPeriod: DateTime = DateTime.fromISO('2024-01-01');\n let endPeriod: DateTime = DateTime.fromISO('2024-03-31');\n\n startPeriod = startPeriod.startOf('week');\n endPeriod = endPeriod.endOf('week');\n const interval = Interval.fromDateTimes(startPeriod, endPeriod);\n const slotInfo = this.scheduleNavigationService.getSlots(\n interval,\n PlanningScale.Day,\n );\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n\n this.initEntries();\n }\n\n private initEntries() {\n this.cellEntries = [];\n for (const slot of this.slots) {\n this.cellEntries.push({\n date: slot.date.toISODate(),\n id: slot.id,\n nonWorking: false,\n fteHours: 0,\n });\n }\n }\n\n private getFormGroup(): UntypedFormGroup {\n const formGroup = this.fb.group({\n id: null,\n stringControl: [null, [Validators.required]],\n numberControl: [\n null,\n [Validators.required, Validators.min(1000), Validators.max(10000)],\n ],\n selectControl: null,\n dateControl: null,\n });\n return formGroup;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Renderer2,\n} from '@angular/core';\nimport { GridDataService } from 'src/app/debug-app/grid-test/core/grid-data.service';\nimport { AbstractRightSide } from 'src/app/shared-features/grid/abstract-right-side.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-grid-test-right-side-table]',\n templateUrl: './grid-test-right-side-table.component.html',\n styleUrl: './grid-test-right-side-table.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GridTestRightSideTableComponent extends AbstractRightSide {\n constructor(\n protected override container: ElementRef,\n protected override gridService: GridService,\n protected override freezeTableService: FreezeTableService,\n protected override renderer: Renderer2,\n public gridDataService: GridDataService,\n ) {\n super(container, gridService, freezeTableService, renderer);\n }\n}\n","
    \n \n \n \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n \n
    \n\n
    \n \n \n \n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n\n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n
    \n\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-grid-test-toolbar',\n templateUrl: './grid-test-toolbar.component.html',\n styleUrl: './grid-test-toolbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GridTestToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n
    \n \n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n Optional,\n Type,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { GridDataService } from 'src/app/debug-app/grid-test/core/grid-data.service';\nimport { GridTestRightSideTableComponent } from 'src/app/debug-app/grid-test/grid-test-right-side-table/grid-test-right-side-table.component';\nimport { GridTestToolbarComponent } from 'src/app/debug-app/grid-test/grid-test-toolbar/grid-test-toolbar.component';\nimport { GRID_TEST_LIST } from 'src/app/debug-app/grid-test/model/grid-test.list';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponent } from 'src/app/shared-features/grid/grid.component';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-grid-test',\n templateUrl: './grid-test.component.html',\n styleUrl: './grid-test.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n GridService,\n GridDataService,\n ListService,\n { provide: LIST, useValue: GRID_TEST_LIST },\n { provide: VIEW_NAME, useValue: 'default' },\n ScheduleNavigationService,\n ],\n standalone: false,\n})\nexport class GridTestComponent implements OnInit {\n @Input() isModalMode = false;\n\n public settingForm = this.fb.group({\n isShowRightSideComponent: false,\n isShowMultiselectColumn: null,\n isReadonly: false,\n isShowMenuColumn: false,\n selectionType: null,\n });\n\n public readonly selectionTypes = [\n { id: SelectionType.none.toString(), name: 'none' },\n { id: SelectionType.row.toString(), name: 'row' },\n { id: SelectionType.rows.toString(), name: 'rows' },\n { id: SelectionType.range.toString(), name: 'range' },\n ];\n\n public gridComponent: Type;\n public gridComponentInputs: Record = {};\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n toolbar: GridTestToolbarComponent,\n selectionType: SelectionType.rows,\n multiSelectColumn: true,\n commands: [{ name: 'setUserView', handlerFn: () => this.setUserView() }],\n rowContextMenu: [\n {\n name: 'testLog',\n label: 'Log group value',\n handlerFn: (formGroup: UntypedFormGroup) =>\n console.log(formGroup.value),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public dataService: GridDataService,\n public gridService: GridService,\n private fb: FormBuilder,\n private listService: ListService,\n private actionPanelService: ActionPanelService,\n private cdr: ChangeDetectorRef,\n @Optional() private modal: NgbModal,\n @Optional() private activeModal: NgbActiveModal,\n ) {}\n\n public ngOnInit(): void {\n this.dataService.initMockData();\n this.initGridComponent();\n\n this.patchSettingForm();\n this.subscribeSettingForm();\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.dataService.formArray.clear();\n this.cdr.detectChanges();\n this.gridService.detectChanges();\n this.dataService.initMockData();\n });\n\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.detectChanges());\n }\n\n /** Opens grid in the modal. */\n public showInModal(): void {\n const ref = this.modal.open(GridTestComponent);\n ref.componentInstance.isModalMode = true;\n ref.result.then(\n () => null,\n () => null,\n );\n }\n\n /** Closes modal. */\n public closeModal() {\n this.activeModal?.dismiss('cancel');\n }\n\n /** Opens view configuration dialog. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n },\n () => null,\n );\n }\n\n private initGridComponent() {\n this.gridComponent = GridComponent;\n this.gridComponentInputs = {\n formArray: this.dataService.formArray,\n options: this.gridOptions,\n readonly: this.settingForm.controls.isReadonly.value,\n };\n this.cdr.detectChanges();\n }\n\n private rebuildGridComponent(): void {\n this.gridComponent = null;\n this.gridComponentInputs = {};\n this.cdr.detectChanges();\n this.initGridComponent();\n }\n\n private patchSettingForm(): void {\n this.settingForm.controls.selectionType.patchValue(\n this.selectionTypes.find(\n (t) => t.id === this.gridOptions.selectionType.toString(),\n ),\n );\n this.settingForm.controls.isShowMultiselectColumn.patchValue(\n this.gridOptions.multiSelectColumn,\n );\n }\n\n private subscribeSettingForm(): void {\n this.settingForm.controls.selectionType.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((selectionType: { id: string; name: string }) => {\n this.gridOptions.selectionType = +selectionType.id;\n\n this.rebuildGridComponent();\n });\n\n this.settingForm.controls.isShowMultiselectColumn.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isShowMultilineColumn: boolean) => {\n this.gridOptions.multiSelectColumn = isShowMultilineColumn;\n\n this.rebuildGridComponent();\n });\n\n this.settingForm.controls.isShowRightSideComponent.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isShowRightSideComponent: boolean) => {\n if (isShowRightSideComponent) {\n this.gridOptions.rightSideComponent = GridTestRightSideTableComponent;\n } else {\n this.gridOptions.rightSideComponent = null;\n }\n this.rebuildGridComponent();\n });\n\n this.settingForm.controls.isReadonly.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.rebuildGridComponent());\n\n this.settingForm.controls.isShowMenuColumn.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isShowMenuColumn: boolean) => {\n if (isShowMenuColumn) {\n this.gridOptions.rowCommands = [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => true,\n handlerFn: () => {\n console.log('edit');\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => true,\n handlerFn: () => console.log('delete'),\n },\n ];\n } else {\n this.gridOptions.rowCommands = null;\n }\n\n this.rebuildGridComponent();\n });\n }\n}\n","@if (isModalMode) {\n
    \n
    \n

    Grid in the modal window

    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n} @else {\n \n}\n\n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n @if (!isModalMode) {\n \n }\n
    \n
    \n \n
    \n\n
    \n Selected group value:\n
    \n {{ gridService.selectedGroupValue | json }}\n
    \n
    \n Selected groups value:\n
    \n {{ gridService.selectedGroupsValue | json }}\n
    \n
    \n","import {\n GridColumnType,\n GridDateControlColumn,\n GridNumberControlColumn,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List } from 'src/app/shared/models/inner/list';\n\nexport const GRID_TEST_LIST: List = {\n name: 'gridTest',\n version: 1,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'stringControl',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'numberControl',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'selectControl',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'dateControl',\n visibleByDefault: true,\n width: 150,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'stringControl',\n header: 'StringControl',\n hint: 'StringControl',\n type: GridColumnType.StringControl,\n forceCellUpdating: true,\n },\n {\n controlType: 'integer',\n name: 'numberControl',\n header: 'NumberControl',\n hint: 'NumberControl',\n type: GridColumnType.NumberControl,\n forceCellUpdating: true,\n },\n {\n name: 'dateControl',\n header: 'DateControl',\n hint: 'DateControl',\n type: GridColumnType.DateControl,\n forceCellUpdating: true,\n },\n {\n name: 'selectControl',\n header: 'SelectControl',\n hint: 'SelectControl',\n type: GridColumnType.SelectControl,\n forceCellUpdating: true,\n values: [\n { id: '1111', name: '1111' },\n { id: '2222', name: '2222' },\n { id: '3333', name: '3333' },\n { id: '4444', name: '4444' },\n ],\n },\n ],\n dataColumns: [],\n};\n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Component({\n selector: 'tmt-hierarchical-box-test',\n templateUrl: './hierarchical-box-test.component.html',\n standalone: false,\n})\nexport class HierarchicalBoxTestComponent {\n form = this.fb.group({\n department: [null, Validators.required],\n departmentWithSub: [null, Validators.required],\n hierarchical: [null, Validators.required],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n department: { id: Guid.generate(), name: 'Test 1' },\n departmentWithSub: {\n value: { id: Guid.generate(), name: 'Test 2' },\n includeSubordinates: true,\n },\n hierarchical: {\n value: { id: Guid.generate(), name: 'hierarchical' },\n includeSubordinates: true,\n },\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    Base

    \n \n

    \n Form value:
    \n \n {{ form.get('department').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('department').valid }}

    \n
    \n
    \n\n

    With sub-departments option

    \n \n

    \n Form value:
    \n \n {{ form.get('departmentWithSub').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('departmentWithSub').valid }}

    \n
    \n\n

    Resource Pools Box with predefined values

    \n \n

    \n Form value:
    \n \n {{ form.get('hierarchical').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('hierarchical').valid }}

    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'wp-multiline-text-box-test',\n templateUrl: './multiline-text-box-test.component.html',\n standalone: false,\n})\nexport class MultilineTextBoxTestComponent {\n public form = this.fb.group({\n text: ['', Validators.required],\n });\n public formInputParams = this.fb.group({\n onExitEditing: [false],\n });\n\n public readonly propagationMode = PropagationMode;\n\n public get isExitEditing(): boolean {\n return this.formInputParams.controls['onExitEditing'].value;\n }\n\n constructor(private fb: UntypedFormBuilder) {}\n\n /** Sets value of the control. */\n public setValue(): void {\n this.form.setValue({\n text: 'Test 1',\n });\n }\n\n /** Clears form value. */\n public clearValue(): void {\n this.form.reset();\n }\n}\n","
    \n
    \n \n \n
    \n\n \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n \n

    \n Form value:
    \n \n {{ form.get('text').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('text').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'wp-number-box-test',\n templateUrl: './number-box-test.component.html',\n standalone: false,\n})\nexport class NumberBoxTestComponent {\n form = this.fb.group({\n integer: [null, Validators.required],\n currency: [null, Validators.required],\n work: [null, Validators.required],\n precision: [null],\n decimal: [null, Validators.required],\n decimalWithPrecision: [null, Validators.required],\n percent: [null, Validators.required],\n });\n public formInputParams = this.fb.group({\n readonly: [false],\n onExitEditing: [false],\n });\n\n public readonly propagationMode = PropagationMode;\n\n readonly labels = {\n btnDisable: 'Disable',\n btnEnable: 'Enable',\n btnSetValue: 'Set value',\n checkboxReadonly: 'Readonly',\n formValue: 'Form value:',\n controlIsValid: 'Form control is valid:',\n numberBoxInteger: 'NumberBox (Integer)',\n numberBoxDecimal: 'NumberBox (Decimal)',\n numberBoxDecimalWithPrecision: 'NumberBox (Decimal) with precision',\n numberBoxCurrency: 'NumberBox (Currency)',\n numberBoxWork: 'NumberBox (Work)',\n numberBoxPercent: 'NumberBox (Percent)',\n };\n\n public get isExitEditing(): boolean {\n return this.formInputParams.controls['onExitEditing'].value;\n }\n\n constructor(private fb: UntypedFormBuilder) {}\n\n /** Sets value of the controls. */\n public setValue(): void {\n this.form.setValue({\n integer: 1,\n currency: 2,\n work: 3,\n decimal: 4,\n percent: 5,\n precision: 6,\n decimalWithPrecision: 7,\n });\n }\n\n /** Clears form value. */\n public clearValue(): void {\n this.form.reset();\n }\n}\n","
    \n
    \n \n \n
    \n\n \n \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    {{ labels.numberBoxInteger }}

    \n \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('integer').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('integer').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n\n

    {{ labels.numberBoxDecimal }}

    \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('decimal').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('decimal').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n\n

    {{ labels.numberBoxDecimalWithPrecision }}

    \n \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('decimalWithPrecision').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('decimalWithPrecision').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n\n

    {{ labels.numberBoxCurrency }}

    \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('currency').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('currency').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n\n

    {{ labels.numberBoxWork }}

    \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('work').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('work').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n\n

    {{ labels.numberBoxPercent }}

    \n \n

    \n {{ labels.formValue }}\n
    \n \n {{ form.get('percent').value | json }}\n \n

    \n

    {{ labels.controlIsValid }} {{ form.get('percent').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n","export const projectTaskId = `ab457206-8adf-4d6e-a4c7-91b1e73a09b9`;\nexport const projectTasksJSON = `\n[\n {\n \"startDate\": \"2023-10-05\",\n \"endDate\": \"2023-10-05\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 1,\n \"indent\": 1,\n \"structNumber\": \"2\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"rowVersion\": 66657273,\n \"name\": \"Second\",\n \"id\": \"028bde1d-1675-41cc-82c7-529d08c1f298\",\n \"isActive\": true,\n \"dependencies\": [\n {\n \"predecessorId\": \"a87d1767-319b-4e07-9d8a-3e081ed9a2eb\",\n \"type\": \"FinishToStart\"\n },\n {\n \"predecessorId\": \"36e628ec-e697-4491-8ef5-fdd13e52a8fe\",\n \"type\": \"FinishToStart\"\n }\n ],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"c0406a13-e4f6-4c03-84e4-fa3ca8d1f8fb\"\n }\n ]\n },\n {\n \"startDate\": \"2023-10-05\",\n \"endDate\": \"2023-10-05\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 0,\n \"indent\": 2,\n \"structNumber\": \"2.1\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"028bde1d-1675-41cc-82c7-529d08c1f298\",\n \"rowVersion\": 66657274,\n \"name\": \"SecondChild\",\n \"id\": \"0bdb87d9-2811-4528-b528-b84b36389d9d\",\n \"isActive\": true,\n \"dependencies\": [],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"bccd30bd-14a8-4288-82b2-2b696f8b486f\"\n }\n ]\n },\n {\n \"startDate\": \"2023-09-29\",\n \"endDate\": \"2023-10-02\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 0,\n \"indent\": 1,\n \"structNumber\": \"1\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"rowVersion\": 66657228,\n \"name\": \"First\",\n \"id\": \"36e628ec-e697-4491-8ef5-fdd13e52a8fe\",\n \"isActive\": true,\n \"dependencies\": [],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"e355c992-f8bd-4f2d-a788-6ba2f648a251\"\n }\n ]\n },\n {\n \"startDate\": \"2023-10-10\",\n \"endDate\": \"2023-10-10\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 3,\n \"indent\": 1,\n \"structNumber\": \"4.1.1.1.1.1\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"rowVersion\": 66657257,\n \"name\": \"Fourth\",\n \"id\": \"77279d06-09c6-4bef-af4e-b7ca9005bb1c\",\n \"isActive\": true,\n \"dependencies\": [\n {\n \"predecessorId\": \"c5a84f8d-e970-4f61-a901-43d966f5bc77\",\n \"type\": \"FinishToStart\"\n }\n ],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"5d9b6fe7-0b87-46a6-b3ab-4f28ffa114a8\"\n }\n ]\n },\n {\n \"startDate\": \"2023-09-29\",\n \"endDate\": \"2023-10-11\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 0,\n \"indent\": 0,\n \"structNumber\": \"\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": null,\n \"rowVersion\": 66657228,\n \"name\": \"Predecessor Test\",\n \"id\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"isActive\": true,\n \"dependencies\": [],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"bf7ab4d9-dcf0-483c-8eff-f44b7d408d7f\"\n }\n ]\n },\n {\n \"startDate\": \"2023-09-29\",\n \"endDate\": \"2023-10-02\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 0,\n \"indent\": 2,\n \"structNumber\": \"1.1\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"36e628ec-e697-4491-8ef5-fdd13e52a8fe\",\n \"rowVersion\": 66657227,\n \"name\": \"FirstChild\",\n \"id\": \"a87d1767-319b-4e07-9d8a-3e081ed9a2eb\",\n \"isActive\": true,\n \"dependencies\": [],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"b5ef6a5f-eda0-4356-9eb6-214185bb7d95\"\n }\n ]\n },\n {\n \"startDate\": \"2023-10-11\",\n \"endDate\": \"2023-10-11\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 4,\n \"indent\": 1,\n \"structNumber\": \"5\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"rowVersion\": 66657201,\n \"name\": \"Fifth\",\n \"id\": \"ab457206-8adf-4d6e-a4c7-91b1e73a09b9\",\n \"isActive\": true,\n \"dependencies\": [\n {\n \"predecessorId\": \"028bde1d-1675-41cc-82c7-529d08c1f298\",\n \"type\": \"FinishToStart\"\n },\n {\n \"predecessorId\": \"77279d06-09c6-4bef-af4e-b7ca9005bb1c\",\n \"type\": \"FinishToStart\"\n }\n ],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"36f87d29-7c01-40a2-83bc-6c121ce0ec9d\"\n }\n ]\n },\n {\n \"startDate\": \"2023-10-05\",\n \"endDate\": \"2023-10-05\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 0,\n \"indent\": 3,\n \"structNumber\": \"2.1.1\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"0bdb87d9-2811-4528-b528-b84b36389d9d\",\n \"rowVersion\": 66657274,\n \"name\": \"SecondChild-Child-Child-Child-Child-Child-Child-Child-Child\",\n \"id\": \"b2c65d4b-4dc4-49dd-96f6-74e05d7d1803\",\n \"isActive\": true,\n \"dependencies\": [\n {\n \"predecessorId\": \"36e628ec-e697-4491-8ef5-fdd13e52a8fe\",\n \"type\": \"FinishToStart\"\n }\n ],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"62d90780-5480-4e42-a336-10bc72fc521c\"\n }\n ]\n },\n {\n \"startDate\": \"2023-10-09\",\n \"endDate\": \"2023-10-09\",\n \"projectId\": \"d1fe4966-6d2a-4b15-8049-14cabd0eadf5\",\n \"description\": \"\",\n \"number\": 2,\n \"indent\": 1,\n \"structNumber\": \"3\",\n \"allowTimeEntry\": true,\n \"leadTaskId\": \"7c64566a-24b3-4222-884f-b758b260b32a\",\n \"rowVersion\": 66657256,\n \"name\": \"Third\",\n \"id\": \"c5a84f8d-e970-4f61-a901-43d966f5bc77\",\n \"isActive\": true,\n \"dependencies\": [\n {\n \"predecessorId\": \"b2c65d4b-4dc4-49dd-96f6-74e05d7d1803\",\n \"type\": \"FinishToStart\"\n },\n {\n \"predecessorId\": \"028bde1d-1675-41cc-82c7-529d08c1f298\",\n \"type\": \"FinishToStart\"\n }\n ],\n \"projectTaskAssignments\": [\n {\n \"projectTeamMemberId\": null,\n \"isAllTeamRole\": true,\n \"id\": \"142bfc66-f5af-43ce-82de-3a12935bf931\"\n }\n ]\n }\n]\n`;\n","import { Component, OnInit } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\n\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { projectTaskId, projectTasksJSON } from './mock-data';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { ProjectTasksCommandsService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-commands.service';\n\n@Component({\n selector: 'tmt-predecessor-box-test',\n templateUrl: './predecessor-box-test.component.html',\n providers: [\n { provide: META_ENTITY_TYPE, useValue: 'Project' },\n LifecycleService,\n ProjectCardService,\n ProjectTasksDataService,\n ProjectTaskDependenciesService,\n ProjectTasksCommandsService,\n ProjectTeamService,\n SavingQueueService,\n ProjectVersionCardService,\n ScheduleService,\n ],\n standalone: false,\n})\nexport class PredecessorBoxTestComponent implements OnInit {\n public form = this.fb.group({\n predecessor: [[], Validators.required],\n skills: [[], Validators.required],\n skillsTokens: [[], Validators.required],\n rolesDefaultMode: [[], Validators.required],\n });\n public formInputParams = this.fb.group({\n readonly: [false],\n });\n public taskId: string | null = projectTaskId;\n public tasks: ProjectTask[] = [];\n\n constructor(private fb: UntypedFormBuilder) {}\n\n public ngOnInit(): void {\n this.taskId = projectTaskId;\n this.tasks = JSON.parse(projectTasksJSON);\n }\n\n public setValue(): void {\n this.form.controls['predecessor'].setValue(\n this.tasks.find((t) => t.id === this.taskId).dependencies.slice(0),\n );\n\n this.form.controls['skills'].setValue([\n { name: 'Business Analysis', id: '1' },\n {\n name: 'No Analysis',\n id: '2',\n },\n ]);\n\n this.form.controls['skillsTokens'].setValue([\n { name: 'Business Analysis', id: '1' },\n {\n name: 'No Analysis',\n id: '2',\n },\n ]);\n\n this.form.controls['rolesDefaultMode'].setValue([\n { name: 'Role 1', id: '1', isDefault: true },\n { name: 'Role 2', id: '2', isDefault: false },\n ]);\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    Predecessor box (Old)

    \n @if (taskId && tasks.length) {\n \n\n

    \n Form value:
    \n \n {{ form.get('predecessor').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('predecessor').valid }}

    \n } @else {\n

    Please set value.

    \n }\n\n
    \n
    \n\n

    MultiSelect Skills Box

    \n \n

    \n Form value:
    \n \n {{ form.get('skills').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('skills').valid }}

    \n
    \n\n

    MultiSelect Skills Box (Tokens Theme)

    \n \n

    \n Form value:
    \n \n {{ form.get('skillsTokens').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('skillsTokens').valid }}

    \n
    \n\n

    MultiSelect Roles Box (Default Value Mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('rolesDefaultMode').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('rolesDefaultMode').valid }}

    \n
    \n
    \n","import { AfterViewInit, Component } from '@angular/core';\nimport { FormControl, FormGroup, UntypedFormBuilder } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'tmt-rich-editor-box-test',\n templateUrl: './rich-editor-box-test.component.html',\n standalone: false,\n})\nexport class RichEditorBoxTestComponent implements AfterViewInit {\n public form: FormGroup = this.fb.group({\n editByButtonControl: '',\n alwaysEditableModeControl: '',\n });\n public formInputParams = this.fb.group({\n onExitEditing: [false],\n });\n public mentionsFirst: string[] = [];\n public mentionsSecond: string[] = [];\n public readonly propagationMode = PropagationMode;\n\n public get mentionsFirstText(): string {\n return this.mentionsFirst.join(', ');\n }\n\n public get mentionsSecondText(): string {\n return this.mentionsSecond.join(', ');\n }\n\n public get isExitEditing(): boolean {\n return this.formInputParams.controls['onExitEditing'].value;\n }\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngAfterViewInit(): void {\n this.form.setControl('alwaysEditableModeControl', new FormControl(''));\n }\n\n /** Sets value of the controls. */\n public setValue(): void {\n this.form.patchValue({\n editByButtonControl:\n '# Heading 1\\n\\n' +\n '> Quote\\n\\n' +\n '**Bold** *Italic* ~~Strike~~ ++Underline++ ##Monospace## [Link](https://timetta.com/) `Inline code`\\n\\n' +\n '---\\n\\n' +\n 'Simple text\\n\\n' +\n '* Bullet list item 1\\n\\n* Bullet list item 2\\n\\n' +\n '---\\n\\n' +\n '1. Ordered list item 1\\n\\n2. Ordered list item 2',\n alwaysEditableModeControl:\n '# Heading 1\\n\\n' +\n '> Quote\\n\\n' +\n '**Bold** *Italic* ~~Strike~~ ++Underline++ ##Monospace## [Link](https://timetta.com/) `Inline code`\\n\\n' +\n '---\\n\\n' +\n 'Simple text\\n\\n' +\n '* Bullet list item 1\\n\\n* Bullet list item 2\\n\\n' +\n '---\\n\\n' +\n '1. Ordered list item 1\\n\\n2. Ordered list item 2',\n });\n }\n\n /** Clears form value. */\n public clearValue(): void {\n this.form.reset();\n }\n\n public mentionedUserIdsFirst(userIds: string[]): void {\n this.mentionsFirst = this.mentionsFirst.concat(\n userIds.filter((id) => !this.mentionsFirst.includes(id)),\n );\n }\n\n public mentionedUserIdsSecond(userIds: string[]): void {\n this.mentionsSecond = this.mentionsSecond.concat(\n userIds.filter((id) => !this.mentionsSecond.includes(id)),\n );\n }\n}\n","
    \n
    \n
    \n \n \n
    \n\n \n \n\n \n
    \n \n \n
    \n \n
    \n

    Rich Editor Box (Edit by button mode)

    \n \n

    \n Value:
    \n \n {{ form.get('editByButtonControl').value }}\n \n

    \n

    \n Mentions:
    \n \n {{ mentionsFirst }}\n \n

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n

    Rich Editor Box (Always editable mode)

    \n \n

    \n Value:
    \n \n {{ form.get('alwaysEditableModeControl').value }}\n \n

    \n

    \n Mentions:
    \n \n {{ mentionsSecond }}\n \n

    \n

    Form control is dirty: {{ form.dirty }}

    \n\n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n selector: 'wp-select-box-test',\n templateUrl: './select-box-test.component.html',\n standalone: false,\n})\nexport class SelectBoxTestComponent {\n values: NamedEntity[] = [\n { id: '1', name: 'Text 01' },\n { id: '2', name: 'Text 02' },\n { id: '3', name: 'Text 03' },\n { id: '4', name: 'Text 04' },\n { id: '5', name: 'Text 05' },\n { id: '6', name: 'Text 06' },\n { id: '7', name: 'Text 07' },\n { id: '8', name: 'Text 08' },\n { id: '9', name: 'Text 09' },\n { id: '10', name: 'Text 10' },\n { id: '11', name: 'Text 11' },\n { id: '12', name: 'Text 12' },\n { id: '13', name: 'Text 13' },\n { id: '14', name: 'Text 14' },\n { id: '15', name: 'Text 15' },\n { id: '16', name: 'Text 16' },\n { id: '17', name: 'Text 17' },\n ];\n groupingValues: Record[] = [\n { label: 'Number 1', id: '1', group: 'odd' },\n { label: 'Number 2', id: '2', group: 'even' },\n { label: 'Number 3', id: '3', group: 'odd' },\n { label: 'Number 4', id: '4', group: 'even' },\n { label: 'Number 5', id: '5', group: 'odd' },\n { label: 'Number -Infinity', id: '6', group: null },\n { label: 'Number Infinity', id: '7', group: null },\n ];\n form = this.fb.group({\n selectCollection: [null, Validators.required],\n selectValues: [null, Validators.required],\n selectValues2: [null, Validators.required],\n selectValues3: [null, Validators.required],\n selectValues4: [null, Validators.required],\n selectCollectionIdMode: [null, Validators.required],\n selectValuesIdMode: [null, Validators.required],\n });\n\n public formInputParams = this.fb.group({\n readonly: [false],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n selectCollection: { name: 'name 1', id: '1' },\n selectValues: { name: 'name 2', id: '2' },\n selectValues2: { name: 'name 3', id: '3' },\n selectValues3: >{\n label: 'Number 2',\n id: '2',\n group: 'even',\n },\n selectValues4: {\n code: 'Users',\n name: 'Пользователи',\n id: '9b7f5322-33dd-4912-b2fe-b1623ae92707',\n group: null,\n },\n selectCollectionIdMode: 'bcd753cc-0b80-47ae-a471-6ff7f06010e1',\n selectValuesIdMode: '1',\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    SelectBox (Collection)

    \n \n \n

    \n Form value:
    \n \n {{ form.get('selectCollection').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectCollection').valid }}

    \n
    \n
    \n\n

    SelectBox (Values)

    \n \n

    \n Form value:
    \n \n {{ form.get('selectValues').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectValues').valid }}

    \n
    \n
    \n\n

    SelectBox (Values). Null is not allowed.

    \n \n

    \n Form value:
    \n \n {{ form.get('selectValues2').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectValues2').valid }}

    \n
    \n
    \n\n

    SelectBox (Grouped values). Null is not allowed.

    \n \n

    \n Form value:
    \n \n {{ form.get('selectValues3').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectValues3').valid }}

    \n
    \n
    \n\n

    SelectBox (Grouped values). Null is not allowed. Values load from API

    \n \n

    \n Form value:
    \n \n {{ form.get('selectValues4').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectValues4').valid }}

    \n
    \n
    \n\n

    SelectBox(idMode) (Collection)

    \n \n

    \n Form value:
    \n \n {{ form.get('selectCollectionIdMode').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectCollectionIdMode').valid }}

    \n
    \n
    \n\n

    SelectBox(idMode) (Values)

    \n \n

    \n Form value:
    \n \n {{ form.get('selectValuesIdMode').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('selectValuesIdMode').valid }}

    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { groupBy } from 'lodash';\nimport { Permission } from 'src/app/shared/models/session/client-session.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { NotificationService } from 'src/app/core/notification.service';\n\n@Component({\n selector: 'wp-status-page',\n templateUrl: './status-page.component.html',\n standalone: false,\n})\nexport class StatusPageComponent implements OnInit {\n granules: Dictionary;\n\n public get roles(): string {\n return this.app.session.roles.join(', ');\n }\n\n constructor(\n public app: AppService,\n public data: DataService,\n public notification: NotificationService,\n ) {}\n\n renewSession() {\n this.data.model\n .action('ResetTenantCache')\n .execute()\n .subscribe(() => {\n location.reload();\n });\n }\n\n resetClientProfile() {\n this.app.clientProfile = {\n version: this.app.clientProfile.version,\n userViews: {},\n navigationViews: [],\n completedQuickStartPages: [],\n };\n this.app.saveProfile();\n this.notification.success('Client profile has been reset.');\n }\n\n ngOnInit() {\n this.granules = groupBy(\n this.app.session.permissions,\n (permission: Permission) => permission.granularName,\n );\n }\n}\n","
    \n
    \n
    \n

    Debug information

    \n Tenant: {{ app.session.configuration.displayName }},\n {{ app.session.configuration.primaryDomain }}
    \n
    \n

    Current session

    \n User: {{ app.session.user.name }}, {{ app.session.user.id }}
    \n\n
    \n Roles: {{ roles }}\n
    \n Session timezone: {{ app.session.timeZone }}

    \n \n

    \n\n

    Client profile

    \n\n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\n\n@Component({\n selector: 'tmt-task-box-test',\n templateUrl: './task-box-test.component.html',\n providers: [ProjectTasksService],\n standalone: false,\n})\nexport class TaskBoxTestComponent {\n form = this.fb.group({\n department: [null, Validators.required],\n departmentWithSub: [null, Validators.required],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n department: { id: Guid.generate(), name: 'Test 1' },\n departmentWithSub: {\n value: { id: Guid.generate(), name: 'Test 2' },\n includeSubordinates: true,\n },\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n
    \n

    Base

    \n \n

    \n Form value:
    \n \n {{ form.get('department').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('department').valid }}

    \n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { emailValidator } from 'src/app/shared/validators/email';\n\n@Component({\n selector: 'wp-text-box-test',\n templateUrl: './text-box-test.component.html',\n standalone: false,\n})\nexport class TextBoxTestComponent {\n public readonly propagationMode = PropagationMode;\n public form = this.fb.group({\n text: ['', Validators.required],\n url: ['', Validators.required],\n phone: [\n '',\n [\n Validators.required,\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n phoneOnExit: [\n '',\n [\n Validators.required,\n Validators.minLength(Constants.minPhoneLength),\n Validators.maxLength(Constants.maxPhoneLength),\n ],\n ],\n email: ['', [Validators.required, emailValidator()]],\n });\n\n public formInputParams = this.fb.group({\n readonly: [false],\n onExitEditing: [false],\n });\n\n public get isExitEditing() {\n return this.formInputParams.controls['onExitEditing'].value;\n }\n\n public get isReadonly() {\n return this.formInputParams.controls['readonly'].value;\n }\n\n constructor(private fb: UntypedFormBuilder) {}\n\n /** Sets value of the controls. */\n public setValue(): void {\n this.form.patchValue({\n text: 'Test 1',\n url: 'https://timetta.com',\n phone: '79999999999',\n phoneOnExit: '78888888888',\n email: 'test@test.com',\n });\n }\n\n /** Clears form value. */\n public clearValue(): void {\n this.form.reset();\n }\n}\n","
    \n
    \n \n \n
    \n\n \n \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    Text Box (Base mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('text').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('text').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n\n

    Text Box (URL mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('url').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('url').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n\n

    Text Box (Phone mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('phone').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('phone').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n\n

    Text Box (Email mode)

    \n \n

    \n Form value:
    \n \n {{ form.get('email').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('email').valid }}

    \n

    Form control is dirty: {{ form.dirty }}

    \n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'tmt-time-tracker-box-test',\n templateUrl: './time-tracker-box-test.component.html',\n standalone: false,\n})\nexport class TimeTrackerBoxTestComponent {\n public readonly propagationMode = PropagationMode;\n public form = this.fb.group({\n hours: [null, Validators.required],\n });\n\n public formInputParams = this.fb.group({\n readonly: false,\n onExitEditing: false,\n });\n\n public get isExitEditing() {\n return this.formInputParams.controls['onExitEditing'].value;\n }\n\n public get isReadonly() {\n return this.formInputParams.controls['readonly'].value;\n }\n\n constructor(private fb: UntypedFormBuilder) {\n this.formInputParams\n .get('readonly')\n .valueChanges.pipe(takeUntilDestroyed())\n .subscribe((value) => {\n if (value) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n });\n }\n\n setValue() {\n this.form.patchValue({ hours: 2.5 });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n

    Time Tracker Box

    \n \n

    \n Form value:
    \n \n {{ form.get('hours').value }}\n \n

    \n

    Form control is valid: {{ form.get('hours').valid }}

    \n
    \n","import { Component } from '@angular/core';\nimport {\n TreeItemPlane,\n TreeListComponent,\n} from 'src/app/shared/components/features/tree-list';\n\nimport { TREE_LIST_TEST } from './tree-list.mock';\n\n@Component({\n selector: 'tmt-tree-list-test',\n template: ``,\n imports: [TreeListComponent]\n})\nexport class TreeListTestComponent {\n public list: TreeItemPlane[] = TREE_LIST_TEST;\n}\n","export const TREE_LIST_TEST = [\n {\n name: 'Administration',\n id: '9468cd5c-ea04-4adb-a1d7-94b6b910ab2e',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Assessment services',\n id: '68269edc-dba2-4a5c-83ea-6112c994b5f4',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Audit',\n id: '7ab940f1-5190-451b-a329-6a99eeacca75',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Education',\n id: '51deec6c-4daa-4c50-b595-2173b1f1422f',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Financial',\n id: '5805d66c-a6b3-4ec0-8a19-e62f27754ba4',\n leadDepartmentId: '9468cd5c-ea04-4adb-a1d7-94b6b910ab2e',\n },\n {\n name: 'HR',\n id: '1f5a8d44-6500-45f0-92ef-464d1480eb99',\n leadDepartmentId: '9468cd5c-ea04-4adb-a1d7-94b6b910ab2e',\n },\n {\n name: 'IT',\n id: '5318b7f2-57b5-4bfb-a32f-da1969d4e595',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Legal',\n id: '0a805716-a965-45df-912a-db8a296e5293',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Sales',\n id: 'daf820a2-da20-405a-a147-221918324f5f',\n leadDepartmentId: '5afc1894-d289-44f6-aab9-0baa60864016',\n },\n {\n name: 'Support',\n id: '1cfca443-cda2-4763-bd5f-a72ad3e1411b',\n leadDepartmentId: '9468cd5c-ea04-4adb-a1d7-94b6b910ab2e',\n },\n {\n name: 'Test123!',\n id: '5afc1894-d289-44f6-aab9-0baa60864016',\n leadDepartmentId: null,\n },\n {\n name: 'Support - First Line',\n id: '22fca443-cda2-4763-bd5f-a72ad3e1411b',\n leadDepartmentId: '1cfca443-cda2-4763-bd5f-a72ad3e1411b',\n },\n {\n name: 'Support - Second Line',\n id: '33fca443-cda2-4763-bd5f-a72ad3e1411b',\n leadDepartmentId: '1cfca443-cda2-4763-bd5f-a72ad3e1411b',\n },\n {\n name: 'Test321!',\n id: '44fca443-cda2-4763-bd5f-a72ad3e1411b',\n leadDepartmentId: null,\n },\n {\n name: '!123tseT',\n id: '44fca443-cda2-4763-bd5f-a72ad3e1231b',\n leadDepartmentId: null,\n },\n];\n","import { Component } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n selector: 'wp-user-box-test',\n templateUrl: './user-box-test.component.html',\n standalone: false,\n})\nexport class UserBoxTestComponent {\n form = this.fb.group({\n user: [null, Validators.required],\n userNullNotAllowed: [null, Validators.required],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n setValue() {\n this.form.setValue({\n user: { name: 'user', id: '1' },\n userNullNotAllowed: { name: 'user', id: '1' },\n });\n }\n}\n","
    \n
    \n \n \n
    \n\n \n
    \n\n
    \n\n

    UserBox

    \n
    \n \n

    \n Form value:
    \n \n {{ form.get('user').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('user').valid }}

    \n
    \n
    \n
    \n\n

    UserBox. Null is not allowed.

    \n
    \n \n

    \n Form value:
    \n \n {{ form.get('userNullNotAllowed').value | json }}\n \n

    \n

    Form control is valid: {{ form.get('userNullNotAllowed').valid }}

    \n
    \n
    \n
    \n","import {\n Component,\n DestroyRef,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { EmployeeCardService } from './employee-card.service';\nimport { StateService } from '@uirouter/core';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { UserCertificatesService } from 'src/app/employees/card/employee-main/user-certificates/user-certificates.service';\nimport { EmployeeMainService } from 'src/app/employees/card/employee-main/employee-main.service';\nimport { EmployeeTimeOffBalanceService } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\n\n@Component({\n selector: 'tmt-employee-card',\n templateUrl: './employee-card.component.html',\n providers: [\n EmployeeMainService,\n EmployeeCardService,\n EmployeeTimeOffBalanceService,\n UserCertificatesService,\n ],\n standalone: false,\n})\nexport class EmployeeCardComponent implements OnDestroy, OnInit {\n public tabs: TabLink[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public state: StateService,\n public service: EmployeeCardService,\n ) {}\n\n ngOnInit(): void {\n this.service.user$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: (user: User) => {\n const currentStatePrefix = this.state.current.name.split('.')[0];\n\n this.tabs = [\n {\n state: `${currentStatePrefix}.main`,\n header: 'employees.card.tabs.main',\n },\n ];\n\n if (user.totalsViewAllowed) {\n this.tabs.push({\n state: `${currentStatePrefix}.experienceOverview`,\n header: 'employees.card.tabs.experienceOverview',\n });\n this.tabs.push({\n state: `${currentStatePrefix}.timeOffBalance`,\n header: 'employees.card.tabs.timeOffBalance',\n });\n }\n\n if (user.totalsViewAllowed) {\n this.tabs.push({\n state: `${currentStatePrefix}.overview`,\n header: 'employees.card.tabs.overview',\n });\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n }\n}\n","\n\n\n\n\n\n
      \n
    • \n {{ tab.header | translate }}\n
    • \n
    \n \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { AppService } from 'src/app/core/app.service';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EmployeeMainModule } from 'src/app/employees/card/employee-main/employee-main.module';\nimport { EmployeeTimeOffBalanceModule } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.module';\nimport { EmployeeCardComponent } from 'src/app/employees/card/employee-card.component';\nimport { EmployeeWorkOverviewComponent } from 'src/app/employees/card/employee-work-overview/employee-work-overview.component';\nimport { EmployeeTimeOffBalanceComponent } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.component';\nimport { EmployeeMainComponent } from 'src/app/employees/card/employee-main/employee-main.component';\nimport { EmployeeExperienceOverviewModule } from 'src/app/employees/card/employee-experience-overview/employee-experience-overview.module';\nimport { EmployeeExperienceOverviewComponent } from 'src/app/employees/card/employee-experience-overview/employee-experience-overview.component';\n\n@NgModule({\n declarations: [EmployeeCardComponent, EmployeeWorkOverviewComponent],\n imports: [\n EmployeeMainModule,\n EmployeeTimeOffBalanceModule,\n EmployeeExperienceOverviewModule,\n CommonModule,\n SharedModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'employee',\n url: '/employees/{entityId:guidOrMy}?{navigation}&{route}',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: EmployeeCardComponent,\n redirectTo: 'employee.main',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition, AppService],\n resolveFn: StateHelper.resolveEntityIdOrCurrentUserId,\n },\n ],\n },\n\n {\n name: 'employee.main',\n url: '/main',\n component: EmployeeMainComponent,\n },\n {\n name: 'employee.experienceOverview',\n url: '/experience-overview',\n component: EmployeeExperienceOverviewComponent,\n },\n {\n name: 'employee.overview',\n url: '/overview',\n component: EmployeeWorkOverviewComponent,\n },\n\n {\n name: 'employee.timeOffBalance',\n url: '/time-off-balance',\n component: EmployeeTimeOffBalanceComponent,\n },\n ],\n }),\n ],\n})\nexport class EmployeeCardModule {}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\n\n@Injectable()\nexport class EmployeeCardService {\n public state$ = new BehaviorSubject(CardState.Ready);\n\n private userSubject = new BehaviorSubject(null);\n public user$ = this.userSubject.asObservable().pipe(filter((p) => !!p));\n destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') public entityId,\n private data: DataService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n actionPanelService: ActionPanelService,\n ) {\n this.state$.next(CardState.Loading);\n this.load();\n\n actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.load());\n }\n\n private load() {\n const query = {\n select: [\n 'id',\n 'name',\n 'code',\n 'certificatesEditAllowed',\n 'certificatesViewAllowed',\n 'skillsEditAllowed',\n 'totalsViewAllowed',\n 'userRolesEditAllowed',\n ],\n };\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (user: User) => {\n this.userSubject.next(user);\n this.state$.next(CardState.Ready);\n\n if (\n this.navigationService.selectedNavigationItem?.name !== 'my.profile'\n ) {\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: user.name,\n });\n }\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n public dispose() {\n this.destroyed$.next();\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormArray, FormBuilder } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { EmployeeExperienceOverviewService } from 'src/app/employees/card/employee-experience-overview/employee-experience-overview.service';\nimport { EMPLOYEE_EXPERIENCE_OVERVIEW_LIST } from 'src/app/employees/card/employee-experience-overview/models/employee-experience-overview.list';\nimport { EmployeeExperienceOverview } from 'src/app/employees/card/employee-experience-overview/models/employee-experience-overview.model';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-employee-experience-overview',\n templateUrl: './employee-experience-overview.component.html',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n { provide: VIEW_NAME, useValue: 'employeeExperienceOverviewList' },\n { provide: LIST, useValue: EMPLOYEE_EXPERIENCE_OVERVIEW_LIST },\n GridService,\n ListService,\n EmployeeExperienceOverviewService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EmployeeExperienceOverviewComponent implements OnInit {\n public lines: FormArray = this.fb.array([]);\n public gridOptions: GridOptions = {\n resizableColumns: true,\n sorting: true,\n selectionType: SelectionType.none,\n view: this.listService.getGridView(),\n };\n\n private destroyRef = inject(DestroyRef);\n\n /** Gets filter service text value in needed format. */\n private get filter(): any {\n const text = this.filterService.values.text.toLowerCase();\n if (text && text.length >= this.filterService.minStringLengthForFilter) {\n return [\n {\n or: [\n { project: { 'tolower(name)': { contains: text } } },\n { state: { 'tolower(name)': { contains: text } } },\n { role: { 'tolower(name)': { contains: text } } },\n { organization: { 'tolower(name)': { contains: text } } },\n ],\n },\n ];\n }\n return null;\n }\n\n constructor(\n public appService: AppService,\n public service: EmployeeExperienceOverviewService,\n private gridService: GridService,\n private actionPanelService: ActionPanelService,\n private fb: FormBuilder,\n private listService: ListService,\n private filterService: FilterService,\n private datePipe: DatePipe,\n ) {\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((o: Order) => this.orderChanged(o));\n }\n\n ngOnInit(): void {\n this.initFilterService();\n this.load();\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.load());\n\n this.service.experienceOverviewLines$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((lines: EmployeeExperienceOverview[]) => {\n lines.forEach((line: EmployeeExperienceOverview) => {\n const group = this.fb.group({\n project: line.project?.name,\n projectCode: line.project?.code,\n projectId: line.project?.id,\n state: line.state,\n role: line.role,\n period: `${this.formatDate(line.projectStartDate)} - ${this.formatDate(line.projectEndDate)}`,\n organization: line.organization?.name,\n organizationId: line.organization?.id,\n actualHours: line.actualHours,\n });\n this.lines.push(group);\n });\n this.gridService.detectChanges();\n });\n }\n\n /**\n * Formats date string.\n *\n * @param date string date.\n * @returns formatted date.\n */\n private formatDate(date: string): string {\n return this.datePipe.transform(\n date,\n 'LLLL y',\n null,\n this.appService.session.language.toLowerCase(),\n );\n }\n\n /** Loads data. */\n private load(): void {\n this.lines.clear();\n this.service.load(this.filter);\n }\n\n /** Inits filter service properties and subscription. */\n private initFilterService(): void {\n this.filterService.hasViewSelector = false;\n this.filterService.placeholder =\n 'components.employeeExperienceOverviewComponent.filters.textInput';\n this.filterService.values$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.load());\n }\n\n /**\n * Updates the order of the user view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n public orderChanged(order: Order): void {\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.load();\n }\n}\n","
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EmployeeExperienceOverviewComponent } from 'src/app/employees/card/employee-experience-overview/employee-experience-overview.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [EmployeeExperienceOverviewComponent],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [EmployeeExperienceOverviewComponent],\n})\nexport class EmployeeExperienceOverviewModule {}\n","import { DestroyRef, inject, Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { EmployeeExperienceOverview } from 'src/app/employees/card/employee-experience-overview/models/employee-experience-overview.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Injectable()\nexport class EmployeeExperienceOverviewService {\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n private experienceOverviewLinesSubject = new BehaviorSubject<\n EmployeeExperienceOverview[]\n >([]);\n public experienceOverviewLines$ =\n this.experienceOverviewLinesSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId: string,\n private dataService: DataService,\n private notificationService: NotificationService,\n private gridService: GridService,\n ) {}\n\n /**\n * Loads employee user experience overview.\n *\n * @param filter filter options.\n */\n public load(filter: any): void {\n this.loadingSubject.next(true);\n\n const query: Record = {\n expand: {\n state: {\n select: ['id', 'name', 'code', 'style', 'isEntityProtected'],\n },\n },\n filter,\n orderBy: this.getOrderBy(),\n };\n\n this.dataService\n .collection('Users')\n .entity(this.entityId)\n .collection('GetExperienceOverview')\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (lines: any[]) => {\n this.experienceOverviewLinesSubject.next(lines);\n this.loadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.loadingSubject.next(false);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n },\n });\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n private getOrderBy(): string {\n let orderBy = '';\n switch (this.gridService.order.column) {\n case 'period':\n orderBy = `projectStartDate ${this.gridService.order.reverse ? 'desc' : 'asc'}`;\n break;\n case 'actualHours':\n orderBy = `actualHours ${this.gridService.order.reverse ? 'desc' : 'asc'}`;\n break;\n case 'projectCode':\n orderBy = `project/code ${this.gridService.order.reverse ? 'desc' : 'asc'}`;\n break;\n default:\n orderBy = this.gridService.order.column\n ? `${this.gridService.order.column}/name ${this.gridService.order.reverse ? 'desc' : 'asc'}`\n : 'project/name';\n break;\n }\n\n return orderBy;\n }\n}\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\nexport const EMPLOYEE_EXPERIENCE_OVERVIEW_LIST: List = {\n version: 1,\n name: 'employeeExperienceOverviewList',\n views: [\n {\n name: 'employeeExperienceOverviewList',\n resizableColumns: true,\n columns: [\n {\n column: 'project',\n visibleByDefault: true,\n width: 280,\n },\n {\n column: 'projectCode',\n visibleByDefault: true,\n width: 180,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 160,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 220,\n },\n {\n column: 'period',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 260,\n },\n {\n column: 'actualHours',\n visibleByDefault: true,\n width: 120,\n },\n ],\n order: { column: 'project', reverse: false },\n },\n ],\n columns: [\n {\n name: 'project',\n state: 'project',\n header: 'shared2.props.project',\n hint: 'shared2.props.project',\n type: GridColumnType.Navigation,\n stateParams: {\n routeMode: RouteMode.continue,\n fromRow: {\n entityId: 'projectId',\n },\n },\n },\n {\n name: 'state',\n header: 'components.employeeExperienceOverviewComponent.props.state',\n hint: 'components.employeeExperienceOverviewComponent.props.state',\n type: GridColumnType.State,\n },\n {\n name: 'projectCode',\n header: 'components.employeeExperienceOverviewComponent.props.code',\n hint: 'components.employeeExperienceOverviewComponent.props.code',\n type: GridColumnType.String,\n },\n {\n name: 'role',\n header: 'components.employeeExperienceOverviewComponent.props.role',\n hint: 'components.employeeExperienceOverviewComponent.props.role',\n type: GridColumnType.Entity,\n },\n {\n name: 'period',\n header: 'components.employeeExperienceOverviewComponent.props.period',\n hint: 'components.employeeExperienceOverviewComponent.props.period',\n type: GridColumnType.String,\n },\n {\n name: 'organization',\n state: 'client',\n header:\n 'components.employeeExperienceOverviewComponent.props.organization',\n hint: 'components.employeeExperienceOverviewComponent.props.organization',\n type: GridColumnType.Navigation,\n stateParams: {\n fromRow: {\n entityId: 'organizationId',\n navigation: 'team.employees',\n routeMode: RouteMode.continue,\n },\n },\n },\n {\n name: 'actualHours',\n header:\n 'components.employeeExperienceOverviewComponent.props.actualHours',\n hint: 'components.employeeExperienceOverviewComponent.props.actualHours',\n type: GridColumnType.Work,\n },\n ],\n};\n","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Observable, Subscription, forkJoin } from 'rxjs';\nimport { sortBy } from 'lodash';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-adding-skills-modal',\n templateUrl: './adding-skills-modal.component.html',\n styleUrls: ['./adding-skills-modal.component.scss'],\n standalone: false,\n})\nexport class AddingSkillsModalComponent implements OnInit {\n public loadLimit = 50;\n\n @Input() userId: string;\n\n /** Список ИД навыков, уже выбранных для пользователя. */\n @Input() currentSkills: string[];\n\n public isSaving: boolean;\n public isLoading: boolean;\n public loadedPartly: boolean;\n\n @ViewChild('leftTbl') leftTbl: ElementRef;\n @ViewChild('rightTbl') rightTbl: ElementRef;\n\n public leftTableStyles: Dictionary = {};\n public rightTableStyles: Dictionary = {};\n\n public availableSkills: NamedEntity[] = [];\n\n public selectedSkills: NamedEntity[] = [];\n\n public filterForm = this.fb.group({ name: [''] });\n\n loadingSubscription: Subscription;\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public resizeLeftTbl() {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement as HTMLElement).getBoundingClientRect()\n .width + 'px';\n }\n\n public resizeRightTbl() {\n this.rightTableStyles['display'] = 'table';\n this.rightTableStyles['width'] =\n (this.rightTbl.nativeElement as HTMLElement).getBoundingClientRect()\n .width + 'px';\n }\n\n public selectSkill(skill: any, index: number) {\n if (this.selectedSkills.length > 29) {\n this.notification.warningLocal(\n 'employees.card.addingSkills.messages.max30ForAdding',\n );\n return;\n }\n\n this.selectedSkills.push(skill);\n this.selectedSkills = sortBy(this.selectedSkills, ['name']);\n this.availableSkills.splice(index, 1);\n }\n\n removeSkill(skill: any, index: number) {\n this.availableSkills.push(skill);\n this.selectedSkills.splice(index, 1);\n\n this.availableSkills = sortBy(this.availableSkills, ['name']);\n }\n\n public ok() {\n this.isSaving = true;\n\n const observables: Observable[] = [];\n this.selectedSkills.forEach((skill: any) => {\n const userSkill = {\n skillId: skill.id,\n userId: this.userId,\n };\n\n observables.push(this.data.collection('UserSkills').insert(userSkill));\n });\n\n forkJoin(observables)\n .pipe()\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'employees.card.addingSkills.messages.addingCompleted',\n );\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n private load() {\n this.availableSkills = [];\n this.isLoading = true;\n this.loadedPartly = false;\n\n const query = {\n orderBy: ['name'],\n select: ['id', 'name'],\n top: this.loadLimit,\n filter: [{ isActive: true }] as any[],\n };\n\n if (this.currentSkills && this.currentSkills.length > 0) {\n const inString = this.currentSkills.join(',');\n query.filter.push(`not (id in (${inString}))`);\n }\n\n const filter = this.filterForm.value;\n\n if (filter.name) {\n query.filter.push({\n or: [\n {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': {\n contains: (filter.name as string)\n .substring(0, Constants.filterInputLengthLimit)\n .toLowerCase(),\n },\n },\n ],\n });\n }\n\n if (this.selectedSkills.length > 0) {\n this.selectedSkills.forEach((skill: NamedEntity) => {\n query.filter.push({\n id: { ne: { type: 'guid', value: skill.id } },\n });\n });\n }\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.data\n .collection('Skills')\n .query(query)\n .subscribe({\n next: (data) => {\n this.availableSkills = data;\n this.isLoading = false;\n this.loadedPartly = this.availableSkills.length === this.loadLimit;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.load();\n this.filterForm.valueChanges.subscribe(() => this.load());\n }\n}\n","
    \n
    \n

    \n {{ 'employees.card.addingSkills.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n {{ 'employees.card.addingSkills.columns.availableSkill.header' | translate }}\n \n \n \n \n
    \n
    \n \n \n \n \n {{ 'employees.card.addingSkills.columns.availableSkill.header' | translate }}\n \n \n \n \n \n \n \n {{ skill.name }}\n \n \n \n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n \n \n \n \n \n
    \n
    \n\n
    \n \n \n \n \n {{ 'employees.card.addingSkills.columns.selectedSkill.header' | translate }}\n \n \n \n \n
    \n
    \n \n \n \n \n {{ 'employees.card.addingSkills.columns.selectedSkill.header' | translate }}\n \n \n \n \n \n \n \n {{ skill.name }}\n \n \n \n \n \n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n
    \n
    \n
    \n
    \n
    \n 0\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"ok()\"\n wpButtonSpinner\n [isBusy]=\"isSaving\"\n >\n {{ 'shared.actions.add' | translate }}\n \n \n
    \n
    \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Inject,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { SkillEstimationCellComponent } from './skill-estimation-cell/skill-estimation-cell.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AddingSkillsModalComponent } from './adding-skills-modal/adding-skills-modal.component';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { of } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\n\nimport { concatMap, debounceTime } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { EmployeeMainService } from 'src/app/employees/card/employee-main/employee-main.service';\nimport { EmployeeCardService } from 'src/app/employees/card/employee-card.service';\nimport { ResourceRolesService } from 'src/app/shared-features/resource-roles/resource-roles.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridDateControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-employee-main',\n templateUrl: './employee-main.component.html',\n styleUrls: ['./employee-main.component.scss'],\n providers: [\n GridService,\n ResourceRolesService,\n SavingQueueService,\n EmployeeMainService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EmployeeMainComponent implements OnInit, AfterViewInit {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n public readonly = false;\n public isShowAdditionalRolesGrid = false;\n public isProfileEditable = false;\n public form = this.fb.group({\n department: null,\n supervisor: null,\n grade: null,\n level: null,\n location: null,\n position: ['', Validators.maxLength(Constants.formNameMaxLength)],\n phone: ['', Validators.maxLength(Constants.formNameMaxLength)],\n email: ['', [Validators.required, Validators.email]],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n resourcePool: [null, Validators.required],\n legalEntity: [null, Validators.required],\n role: null,\n competence: null,\n isActive: false,\n firstWorkDay: null,\n lastWorkDay: null,\n });\n public skills = this.fb.array([]);\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'deleteSkill',\n label: 'employees.card.estimation.actions.deleteSkill',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.removeUserSkill(formGroup, index);\n },\n },\n {\n name: 'deleteEstimation',\n label: 'employees.card.estimation.actions.deleteEstimation',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) => {\n formGroup.controls.estimation.setValue(null);\n },\n },\n ],\n view: {\n name: 'schedules',\n columns: [\n {\n name: 'skill',\n header: 'employees.card.estimation.props.skill',\n hint: 'employees.card.estimation.props.skill',\n type: GridColumnType.String,\n width: '100%',\n } as GridDateControlColumn,\n {\n name: 'estimation',\n header: 'employees.card.estimation.props.estimation',\n hint: 'employees.card.estimation.props.estimation',\n type: GridColumnType.Component,\n component: SkillEstimationCellComponent,\n width: '150px',\n } as GridComponentColumn,\n ],\n },\n };\n public feature = Feature;\n\n private user: User;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public userId: string,\n public resourceRolesService: ResourceRolesService,\n public employeeCardService: EmployeeCardService,\n public appService: AppService,\n public employeeMainService: EmployeeMainService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private customFieldService: CustomFieldService,\n private modal: NgbModal,\n private gridService: GridService,\n private actionPanelService: ActionPanelService,\n private cdr: ChangeDetectorRef,\n private blockUI: BlockUIService,\n private savingQueueService: SavingQueueService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'User');\n }\n\n ngOnInit() {\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.saveProfile(),\n },\n ]);\n\n this.form.disable();\n\n this.employeeCardService.user$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((user) => {\n this.readonly = !(user as any).skillsEditAllowed;\n });\n\n this.employeeMainService.user$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((user) => {\n this.form.patchValue(user);\n this.isProfileEditable = user.editAllowed;\n this.user = user;\n this.skills.clear();\n this.isShowAdditionalRolesGrid = !!user.additionalUserRoles.length;\n\n this.subscribeToEstimates(user);\n\n if (this.readonly) {\n this.skills.disable();\n }\n this.form.disable();\n this.gridService.detectChanges();\n });\n\n this.employeeMainService.load();\n\n this.resourceRolesService.changes$\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.savingQueueService.addToQueue(\n this.userId,\n this.resourceRolesService.save(),\n );\n });\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.form,\n this.cascadeControls,\n [\n [\n {\n controlName: 'role',\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n this.cdr.detectChanges();\n }\n\n public addSkills() {\n const modalRef = this.modal.open(AddingSkillsModalComponent, {\n size: 'lg',\n });\n const instance = modalRef.componentInstance as AddingSkillsModalComponent;\n instance.userId = this.employeeMainService.entityId;\n instance.currentSkills = (this.skills.value as any[]).map(\n (us) => us.skillId,\n );\n\n modalRef.result.then(\n () => this.employeeMainService.load(),\n () => null,\n );\n }\n\n /** Saves profile. */\n public saveProfile(): void {\n this.form.markAllAsTouched();\n const user = this.form.value as User;\n\n if (this.form.valid) {\n this.blockUI.start();\n\n const data: Record = {\n locationId: user.location?.id ?? null,\n phone: user.phone,\n email: user.email,\n levelId: user.level?.id ?? null,\n gradeId: user.grade?.id ?? null,\n position: user.position,\n isActive: user.isActive,\n supervisorId: user.supervisor?.id ?? null,\n resourcePoolId: user.resourcePool?.id ?? null,\n code: user.code,\n departmentId: user.department?.id ?? null,\n firstWorkDay: user.firstWorkDay,\n lastWorkDay: user.lastWorkDay,\n legalEntityId: user.legalEntity?.id,\n roleId: user.role?.id ?? null,\n competenceId: user.competence?.id ?? null,\n };\n\n this.customFieldService.assignValues(data, user, 'User');\n\n this.dataService\n .collection('Users')\n .entity(this.userId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.employeeMainComponent.messages.profileSaved',\n );\n this.form.markAsPristine();\n this.blockUI.stop();\n this.employeeMainService.load();\n this.actionPanelService.action('save').isShown = false;\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.messageService.errorDetailed(error);\n },\n });\n } else {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n }\n }\n\n /** Enables form. */\n public makeProfileEditable(): void {\n this.form.enable();\n this.actionPanelService.action('save').isShown = true;\n }\n\n /** Disables profile editing. */\n public onProfileEditingCancel(): void {\n this.form.patchValue(this.user);\n this.form.disable();\n this.form.markAsPristine();\n this.actionPanelService.action('save').isShown = false;\n }\n\n private reload() {\n if (!this.form.dirty) {\n this.employeeMainService.load();\n } else {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => {\n this.employeeMainService.load();\n this.form.markAsPristine();\n this.form.disable();\n },\n () => null,\n );\n }\n }\n\n private removeUserSkill(group: UntypedFormGroup, index: number) {\n this.messageService\n .confirmLocal(\n 'employees.card.estimation.messages.confirmationForSkillDelete',\n )\n .then(\n () => {\n this.dataService\n .collection('UserSkills')\n .entity(group.value.id)\n .delete()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'employees.card.estimation.messages.userSkillDeleted',\n );\n this.skills.removeAt(index);\n this.skills.markAsDirty();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n private subscribeToEstimates(user: User) {\n user.skills.forEach((userSkill) => {\n const group = this.fb.group({\n skill: userSkill.skill.name,\n skillId: userSkill.skill.id,\n estimation: userSkill.level,\n id: userSkill.id,\n });\n\n group.controls.estimation.valueChanges\n .pipe(\n concatMap(() => {\n if (this.readonly) {\n return of(null);\n }\n\n return this.dataService\n .collection('UserSkills')\n .entity(group.controls.id.value)\n .patch({\n level: group.controls.estimation.value,\n });\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => null,\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n\n this.skills.push(group);\n });\n }\n}\n","\n\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n @if (form.enabled) {\n
    \n \n \n
    \n } @else {\n
    \n \n
    \n @if (form.getRawValue().email) {\n {{\n form.getRawValue().email\n }}\n } @else {\n

    \n {{ 'shared2.empty' | translate }}\n

    \n }\n
    \n
    \n }\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n @if (form.enabled) {\n
    \n  – \n
    \n } @else {\n
    \n {{ form.getRawValue().firstWorkDay | date: 'LLLL y' }} – {{\n form.getRawValue().lastWorkDay | date: 'LLLL y'\n }}\n
    \n }\n
    \n\n
    \n \n @if (form.enabled) {\n \n \n \n
    \n } @else {\n
    \n @if (form.getRawValue().isActive) {\n {{ 'components.employeeMainComponent.props.isActive.active' | translate }}\n } @else {\n {{ 'components.employeeMainComponent.props.isActive.nonActive' | translate }}\n }\n
    \n }\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n @if (form.disabled && isProfileEditable) {\n
    \n
    \n \n
    \n
    \n }\n @if (form.enabled) {\n
    \n
    \n \n \n
    \n
    \n }\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n @if ((employeeCardService.user$ | async).userRolesEditAllowed) {\n @if (!isShowAdditionalRolesGrid) {\n \n } @else {\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n }\n }\n
    \n
    \n
    \n
    \n \n @if (!readonly) {\n
    \n \n
    \n }\n \n
    \n \n
    \n
    \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { AddingSkillsModalComponent } from './adding-skills-modal/adding-skills-modal.component';\nimport { SkillEstimationCellComponent } from './skill-estimation-cell/skill-estimation-cell.component';\n\nimport { EmployeeMainComponent } from 'src/app/employees/card/employee-main/employee-main.component';\nimport { UserCertificatesComponent } from 'src/app/employees/card/employee-main/user-certificates/user-certificates.component';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n EmployeeMainComponent,\n SkillEstimationCellComponent,\n AddingSkillsModalComponent,\n UserCertificatesComponent,\n ],\n providers: [],\n imports: [\n CommonModule,\n SharedModule,\n ResourceRolesModule,\n NgOptimizedImage,\n GridModule,\n ],\n exports: [EmployeeMainComponent],\n})\nexport class EmployeeMainModule {}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { filter } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\n\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Injectable()\nexport class EmployeeMainService {\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n\n private userSubject = new BehaviorSubject(null);\n public user$ = this.userSubject.asObservable().pipe(filter((p) => !!p));\n\n constructor(\n @Inject('entityId') public entityId,\n private data: DataService,\n private notification: NotificationService,\n private customFieldService: CustomFieldService,\n private app: AppService,\n ) {}\n\n public load() {\n this.loadingSubject.next(true);\n const userId = this.entityId ?? this.app.session.user.id;\n\n const query = {\n select: [\n 'id',\n 'name',\n 'phone',\n 'position',\n 'email',\n 'code',\n 'isActive',\n 'firstWorkDay',\n 'lastWorkDay',\n 'editAllowed',\n ],\n expand: [\n { level: { select: ['name', 'id'] } },\n { grade: { select: ['name', 'id'] } },\n { role: { select: ['name', 'id'] } },\n { competence: { select: ['name', 'id'] } },\n { location: { select: ['name', 'id'] } },\n { supervisor: { select: ['name', 'id'] } },\n { department: { select: ['name', 'id'] } },\n { resourcePool: { select: ['name', 'id'] } },\n { legalEntity: { select: ['name', 'id'] } },\n { additionalUserRoles: { select: ['id'] } },\n {\n skills: {\n expand: { skill: { select: ['name', 'id'] } },\n select: ['name', 'id', 'level'],\n orderBy: 'skill/name',\n },\n },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'User');\n\n this.data\n .collection('Users')\n .entity(userId)\n .get(query)\n .subscribe({\n next: (user: User) => {\n this.userSubject.next(user);\n this.loadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.loadingSubject.next(false);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n ViewRef,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-skill-estimation-cell',\n templateUrl: './skill-estimation-cell.component.html',\n styleUrls: ['./skill-estimation-cell.component.scss'],\n standalone: false,\n})\nexport class SkillEstimationCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: UntypedFormGroup;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n \n \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { CertificateCreationComponent } from 'src/app/certificates/creation/certificate-creation.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { UserCertificatesService } from 'src/app/employees/card/employee-main/user-certificates/user-certificates.service';\nimport { EmployeeCardService } from 'src/app/employees/card/employee-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'tmt-user-certificates',\n templateUrl: './user-certificates.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserCertificatesComponent implements OnInit {\n public gridOptions: GridOptions = {\n view: {\n name: 'certificates',\n columns: [\n {\n name: 'name',\n header: 'shared.props.name',\n hint: 'shared.props.name',\n type: GridColumnType.Navigation,\n state: 'certificate',\n width: '100%',\n },\n {\n name: 'state',\n header: 'shared.props.state',\n hint: 'shared.props.state',\n type: GridColumnType.State,\n width: '150px',\n } as GridComponentColumn,\n ],\n },\n };\n public certificates = this.fb.array([]);\n\n private user: NamedEntity;\n private destroyed = inject(DestroyRef);\n\n constructor(\n public cardService: EmployeeCardService,\n private service: UserCertificatesService,\n private fb: UntypedFormBuilder,\n private gridService: GridService,\n private modalService: NgbModal,\n ) {}\n\n public ngOnInit(): void {\n this.service.certificates$\n .pipe(takeUntilDestroyed(this.destroyed))\n .subscribe((certificates) => {\n this.certificates.clear();\n this.gridService.detectChanges();\n\n certificates.forEach((certificate) => {\n const group = this.fb.group({\n id: certificate.id,\n name: certificate.name,\n state: certificate.state,\n });\n\n this.certificates.push(group);\n });\n });\n this.cardService.user$\n .pipe(takeUntilDestroyed(this.destroyed))\n .subscribe((user) => {\n this.user = user;\n });\n this.service.load();\n }\n\n /** Opens certificate creation modal. */\n public addCertificate(): void {\n const ref = this.modalService.open(CertificateCreationComponent, {});\n const instance = ref.componentInstance as CertificateCreationComponent;\n instance.userFromProfile = this.user;\n }\n}\n","@if ((cardService.user$ | async).certificatesViewAllowed) {\n
    \n \n\n @if ((cardService.user$ | async).certificatesEditAllowed) {\n
    \n \n
    \n }\n \n \n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Certificate } from 'src/app/shared/models/entities/certificates/certificate.model';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\n\n@Injectable()\n/**\n * User certificates service.\n */\nexport class UserCertificatesService {\n private certificatesSubject = new BehaviorSubject([]);\n public certificates$ = this.certificatesSubject.asObservable();\n private destroyed$ = new Subject();\n\n constructor(\n @Optional() @Inject('entityId') public entityId,\n private data: DataService,\n actionPanelService: ActionPanelService,\n ) {\n actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n });\n }\n\n /**\n * Loads certificates for current user.\n */\n public load() {\n this.data\n .collection('Certificates')\n .query({\n select: ['id', 'name'],\n expand: { state: { select: ['id', 'name', 'style'] } },\n filter: {\n ownerId: {\n type: 'guid',\n value: this.entityId,\n },\n isActive: true,\n },\n })\n .subscribe((certificates) => {\n this.certificatesSubject.next(certificates);\n });\n }\n\n public dispose() {\n this.destroyed$.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { EmployeeTimeOffBalanceService } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-employee-time-off-balance',\n templateUrl: './employee-time-off-balance.component.html',\n styleUrls: ['./employee-time-off-balance.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EmployeeTimeOffBalanceComponent implements OnInit, OnDestroy {\n public lines = this.fb.array([]);\n public form = this.fb.group({\n period: null,\n });\n public gridOptions: GridOptions = {\n selectionType: SelectionType.none,\n view: {\n name: 'timeOffBalanceLines',\n columns: [\n {\n name: 'timeOffTypeName',\n header: 'employees.timeOffBalance.columns.timeOffTypeName',\n hint: 'employees.timeOffBalance.columns.timeOffTypeName',\n type: GridColumnType.String,\n width: '350px',\n },\n {\n name: 'accrued',\n header: 'employees.timeOffBalance.columns.accrued',\n hint: 'employees.timeOffBalance.columns.accrued',\n type: GridColumnType.Decimal,\n width: '100%',\n },\n {\n name: 'used',\n header: 'employees.timeOffBalance.columns.used',\n hint: 'employees.timeOffBalance.columns.used',\n type: GridColumnType.Decimal,\n width: '100%',\n },\n {\n name: 'balance',\n header: 'employees.timeOffBalance.columns.balance',\n hint: 'employees.timeOffBalance.columns.balance',\n type: GridColumnType.Decimal,\n width: '100%',\n },\n {\n name: 'timeOffTypeUnit',\n header: 'team.timeOffBalanceEntries.list.columns.unit.header',\n hint: 'team.timeOffBalanceEntries.list.columns.unit.hint',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n private destroyed$ = new Subject();\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n public service: EmployeeTimeOffBalanceService,\n private gridService: GridService,\n actionPanelService: ActionPanelService,\n ) {\n actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => service.load());\n }\n\n ngOnInit() {\n this.form.controls.period.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.service.settings = value;\n this.service.load();\n });\n\n this.service.timeOffBalanceLines$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((lines) => {\n this.lines.clear();\n this.gridService.detectChanges();\n lines.forEach((line) => {\n const group = this.fb.group({\n timeOffTypeName: line.timeOffTypeName,\n timeOffTypeUnit: line.timeOffTypeUnit,\n accrued: line.accrued,\n used: line.used,\n balance: line.balance,\n });\n this.lines.push(group);\n });\n });\n this.service.load();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n
    \n
    \n \n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EmployeeTimeOffBalanceComponent } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [EmployeeTimeOffBalanceComponent],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [EmployeeTimeOffBalanceComponent],\n})\nexport class EmployeeTimeOffBalanceModule {}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TimeOffBalanceProfileLine } from 'src/app/shared/models/entities/analytics/time-off-balance-profile-line.model';\n\n@Injectable()\nexport class EmployeeTimeOffBalanceService {\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n\n private timeOffBalanceLinesSubject = new BehaviorSubject<\n TimeOffBalanceProfileLine[]\n >([]);\n public timeOffBalanceLines$ = this.timeOffBalanceLinesSubject.asObservable();\n public settings: any;\n\n constructor(\n @Optional() @Inject('entityId') public entityId,\n private data: DataService,\n private notification: NotificationService,\n private app: AppService,\n ) {}\n\n public load() {\n this.loadingSubject.next(true);\n const userId = this.entityId ?? this.app.session.user.id;\n const query = {\n select: '*',\n };\n const params = {\n from: this.settings?.from ?? null,\n to: this.settings?.to ?? null,\n };\n\n this.data\n .collection('Users')\n .entity(userId)\n .function('GetTimeOffBalance')\n .query(params, query)\n .subscribe({\n next: (lines: any[]) => {\n this.timeOffBalanceLinesSubject.next(lines);\n this.loadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.loadingSubject.next(false);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n}\n","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { DateService } from 'src/app/core/date.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as highcharts from 'highcharts';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { orderBy } from 'lodash';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'tmt-employee-work-overview',\n templateUrl: './employee-work-overview.component.html',\n styleUrls: ['./employee-work-overview.component.scss'],\n standalone: false,\n})\nexport class EmployeeWorkOverviewComponent implements OnInit, OnDestroy {\n private storageName = 'resourceOverview';\n private colors = [\n '#7cb5ec',\n '#434348',\n '#90ed7d',\n '#f7a35c',\n '#8085e9',\n '#f15c80',\n '#e4d354',\n '#2b908f',\n '#f45b5b',\n '#91e8e1',\n ];\n\n private chartSettings: Highcharts.Options;\n\n public selectedSector: any;\n public chart: highcharts.Chart;\n public isEmptyData: boolean;\n public rows: any[] = [];\n public total: number;\n public isLoading: boolean;\n\n public form = this.fb.group({\n type: null,\n period: null,\n });\n\n private destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') public entityId,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private localStorageService: LocalStorageService,\n private dateService: DateService,\n private translate: TranslateService,\n private notification: NotificationService,\n actionPanelService: ActionPanelService,\n ) {\n actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n public selectSlice(row: any) {\n this.selectedSector = this.selectedSector === row.name ? null : row.name;\n this.chart.series[0].points.forEach((slice: any) => {\n slice.slice(slice.name === this.selectedSector);\n });\n }\n\n private reload(silent?: boolean) {\n if (!silent) {\n this.isLoading = true;\n }\n\n const settings = this.form.value as TeamWorkOverviewSettings;\n let functionName = '';\n\n switch (settings.type) {\n case 'utilization':\n functionName = 'WP.GetUtilization';\n break;\n case 'clients':\n functionName = 'GetHoursByClients';\n break;\n case 'projects':\n functionName = 'GetHoursByProjects';\n break;\n case 'activities':\n functionName = 'GetHoursByActivities';\n break;\n }\n\n const params: Dictionary = {\n from: settings.period?.from ?? null,\n to: settings.period?.to ?? null,\n };\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .function(functionName)\n .query(params)\n .subscribe({\n next: (data) => {\n data = orderBy(data, 'value', 'desc');\n const tData = [];\n this.rows = [];\n this.total = 0;\n\n data.forEach((namedValue) => {\n this.total += namedValue.value;\n tData.push([namedValue.name, namedValue.value]);\n });\n\n let colorIndex = 0;\n data.forEach((namedValue) => {\n if (colorIndex === 10) {\n colorIndex = 0;\n }\n\n this.rows.push({\n name: namedValue.name,\n value: namedValue.value,\n percentage: namedValue.value / this.total,\n color: this.colors[colorIndex],\n });\n colorIndex++;\n });\n\n this.chart.series[0].setData(tData);\n this.isEmptyData = data.length === 0;\n\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const ref = this;\n this.chartSettings = {\n chart: {\n type: 'pie',\n plotBackgroundColor: null,\n plotBorderWidth: 0,\n plotShadow: false,\n },\n title: {\n text: '',\n align: 'center',\n verticalAlign: 'middle',\n y: 5,\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n pie: {\n allowPointSelect: true,\n cursor: 'pointer',\n showInLegend: false,\n dataLabels: {\n enabled: false,\n format: '{point.name}: {point.percentage:.1f} %',\n style: {\n color: 'black',\n },\n },\n },\n },\n tooltip: {\n pointFormat: '{series.name}: {point.y:,.2f}',\n },\n\n series: [\n {\n type: 'pie',\n name: this.translate.instant('shared.teamWorkOverview.hours'),\n innerSize: '50%',\n data: [],\n point: {\n events: {\n click() {\n let name = this.name;\n if (this.sliced) {\n name = '';\n }\n ref.selectedSector = name;\n ref.chart.series[0].points.forEach((slice: any) => {\n slice.slice(slice.name === ref.selectedSector);\n });\n },\n },\n },\n },\n ],\n };\n\n this.chart = highcharts.chart('chartContainer', this.chartSettings);\n\n let settings = this.localStorageService.retrieve(\n this.storageName,\n ) as TeamWorkOverviewSettings;\n if (!settings) {\n settings = {\n type: 'utilization',\n period: {\n periodType: DatePeriodType.ThisMonth,\n from: null,\n to: null,\n },\n };\n this.localStorageService.store(this.storageName, settings);\n }\n\n if (\n settings.period &&\n settings.period.periodType !== DatePeriodType.Custom\n ) {\n const pair = this.dateService.getDatePair(settings.period.periodType);\n settings.period.from = pair.from;\n settings.period.to = pair.to;\n }\n\n this.form.patchValue(settings);\n\n this.form.valueChanges.subscribe(() => {\n this.localStorageService.store(this.storageName, this.form.value);\n this.reload(true);\n });\n\n this.reload();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.chart.destroy();\n }\n}\n\nexport interface TeamWorkOverviewSettings {\n type: 'utilization' | 'clients' | 'projects' | 'activities';\n period: DatePeriod;\n}\n","\n\n
    \n \n \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {{ 'shared.teamWorkOverview.noDataVisualization' | translate }}\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'shared.teamWorkOverview.columnTitleName' | translate }}\n {{ 'shared.teamWorkOverview.columnTitleValue' | translate }}\n \n {{ 'shared.teamWorkOverview.columnTitlePercentage' | translate }}\n
    {{ row.name }}{{ row.value | wpWork }}{{ row.percentage | percent }}
    \n
    \n {{ 'shared.teamWorkOverview.noDataRows' | translate }}\n
    \n
    {{ total | wpWork }}100%
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { EmployeeFilterComponent } from './list/employee-filter/employee-filter.component';\nimport { EmployeeListComponent } from './list/employee-list.component';\nimport { EMPLOYEE_LIST } from 'src/app/shared/lists/employee.list';\nimport { EmployeeCardModule } from 'src/app/employees/card/employee-card.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [EmployeeListComponent, EmployeeFilterComponent],\n imports: [\n CommonModule,\n SharedModule,\n EmployeeCardModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'employees',\n url: '/employees?{navigation}&{route}',\n component: EmployeeListComponent,\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: EMPLOYEE_LIST },\n ],\n },\n ],\n }),\n ],\n})\nexport class EmployeesModule {}\n","import {\n Component,\n OnInit,\n Input,\n Inject,\n inject,\n DestroyRef,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n AfterViewInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-employee-filter',\n templateUrl: './employee-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EmployeeFilterComponent\n implements OnInit, AfterViewInit, FilterDetails\n{\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n @Input() values: any;\n\n public detailsForm = this.fb.group({\n department: null,\n role: null,\n resourcePool: null,\n legalEntity: null,\n competence: null,\n level: null,\n grade: null,\n location: null,\n skills: null,\n supervisor: null,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.service.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n public ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.detailsForm,\n this.cascadeControls,\n [\n [\n {\n controlName: 'role',\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n this.cdr.detectChanges();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EmployeeFilterComponent } from './employee-filter.component';\n\n@Injectable()\nexport class ProfileFilterService extends FilterService {\n public override component: Type = EmployeeFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasPeriodSelector = true;\n public override periodSelectorPlaceholder =\n 'components.profileFilterService.filters.valueCalculationPeriod';\n public override placeholder =\n 'components.profileFilterService.filters.textInput';\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n view: null,\n department: null,\n resourcePool: null,\n role: null,\n legalEntity: null,\n competence: null,\n level: null,\n grade: null,\n location: null,\n resourceTypes: null,\n skills: null,\n };\n }\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n result.push({ user: { isActive: true } });\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n user: {\n or: [\n { 'tolower(name)': { contains: text } },\n { 'tolower(code)': { contains: text } },\n { 'tolower(position)': { contains: text } },\n { 'tolower(email)': { contains: text } },\n ],\n },\n });\n }\n\n if (this.values.location) {\n result.push({\n user: {\n locationId: {\n type: 'guid',\n value: this.values.location.id,\n },\n },\n });\n }\n\n if (this.values.legalEntity) {\n result.push({\n user: {\n legalEntityId: {\n type: 'guid',\n value: this.values.legalEntity.id,\n },\n },\n });\n }\n\n if (this.values.role) {\n result.push({\n user: {\n roleId: {\n type: 'guid',\n value: this.values.role.id,\n },\n },\n });\n }\n\n if (this.values.competence) {\n result.push({\n user: {\n competenceId: {\n type: 'guid',\n value: this.values.competence.id,\n },\n },\n });\n }\n\n if (this.values.level) {\n result.push({\n user: {\n levelId: {\n type: 'guid',\n value: this.values.level.id,\n },\n },\n });\n }\n\n if (this.values.grade) {\n result.push({\n user: {\n gradeId: {\n type: 'guid',\n value: this.values.grade.id,\n },\n },\n });\n }\n\n if (this.values.resourcePool) {\n result.push({\n user: {\n resourcePoolId: {\n type: 'guid',\n value: this.values.resourcePool.id,\n },\n },\n });\n }\n\n if (this.values.department) {\n result.push({\n user: {\n departmentId: {\n type: 'guid',\n value: this.values.department.id,\n },\n },\n });\n }\n\n if (this.values.skills) {\n const conditions = [];\n this.values.skills.forEach((skill) => {\n conditions.push({\n user: {\n skills: {\n any: {\n skillId: { type: 'guid', value: skill.id },\n },\n },\n },\n });\n });\n\n result.push(conditions);\n }\n\n if (this.values.supervisor) {\n result.push({\n user: {\n supervisorId: {\n type: 'guid',\n value: this.values.supervisor.id,\n },\n },\n });\n }\n\n return result;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ProfileFilterService } from './employee-filter/employee-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-employee-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ProfileFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class EmployeeListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('employee', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewRef,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { ExpenseRequestCardService } from '../../expenses-request-card.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-expense-task-cell',\n templateUrl: './expense-task-cell.component.html',\n standalone: false,\n})\nexport class ExpenseTaskCellComponent\n implements OnInit, OnDestroy, GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n public cardService: ExpenseRequestCardService,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewRef,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-expense-readonly-task-cell',\n templateUrl: './expense-task-readonly-cell.component.html',\n styleUrls: ['./expense-task-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class ExpenseTaskReadonlyCellComponent\n implements OnInit, OnDestroy, GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n private projectTasksService: ProjectTasksService,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public getTaskFullName(): string {\n return this.projectTasksService.getTaskFullName(this.control.value);\n }\n}\n","{{ getTaskFullName() }}\n","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LineModalComponent } from './line-modal/line-modal.component';\nimport { ExpenseRequestCardService } from '../expenses-request-card.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ExpensesRequestDetailsToolbarComponent } from 'src/app/expenses-requests/card/details/toolbar/expenses-request-details-toolbar.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { CommentsDataService } from 'src/app/shared-features/comments/core/comments-data.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/**\n * Represents Expense request Card lines content.\n * */\n@Component({\n selector: 'tmt-expenses-request-details',\n templateUrl: './expenses-request-details.component.html',\n providers: [CommentsDataService],\n standalone: false,\n})\nexport class ExpensesRequestDetailsComponent implements OnInit {\n @Input() entityId: string;\n @Input() lines: UntypedFormArray;\n @Input() readonly: boolean;\n\n /** Grid properties. */\n public gridOptions: GridOptions = {\n resizableColumns: true,\n toolbar: ExpensesRequestDetailsToolbarComponent,\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n allowedFn: () => !this.readonly,\n handlerFn: () => this.createLine(),\n },\n {\n name: 'edit',\n allowedFn: (id: string) => !!id,\n handlerFn: (group: UntypedFormGroup) => this.openLineModal(group),\n },\n {\n name: 'setUserView',\n allowedFn: () => true,\n handlerFn: () => this.setUserView(),\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.openLineModal(formGroup),\n },\n {\n name: 'copy',\n label: 'shared.actions.copy',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) => this.copyLine(formGroup),\n },\n {\n name: 'removeAttachment',\n label: 'shared.actions.removeAttachment',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly && formGroup.value.attachment,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.removeAttachment(formGroup),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.lines.removeAt(index);\n this.lines.parent.markAsDirty();\n this.afterActionComplete();\n this.gridService.detectChanges();\n },\n },\n ],\n view: this.listService.getGridView(),\n };\n\n constructor(\n private injector: Injector,\n private autosave: SavingQueueService,\n private cardService: ExpenseRequestCardService,\n private listService: ListService,\n private notification: NotificationService,\n private gridService: GridService,\n private modalService: NgbModal,\n private customFieldService: CustomFieldService,\n ) {}\n\n ngOnInit(): void {\n this.cardService.reimbursementCurrencyChanged$\n .pipe(takeUntil(this.cardService.entityReloaded$))\n .subscribe((currency) => {\n this.lines.controls.forEach((control) => {\n const group = control as UntypedFormGroup;\n group.controls.amountRC.setValue({\n value: 0,\n currencyCode: currency.alpha3Code,\n });\n this.cardService.refreshReimbursementXR(group, false, currency.id);\n });\n this.lines.controls.forEach((group) => {\n this.cardService.refreshProjectXR(group as UntypedFormGroup);\n });\n });\n }\n\n /**\n * Updates User view settings.\n * Reloads Expense request card.\n * */\n public setUserView() {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.cardService.reload();\n },\n () => null,\n );\n }\n\n private removeAttachment(formGroup: UntypedFormGroup): void {\n formGroup.controls['attachment'].setValue(null);\n }\n\n /**\n * Creates New Expense request line.\n * */\n private createLine() {\n this.cardService\n .getMainTaskObs()\n .pipe(takeUntil(this.cardService.entityReloaded$))\n .subscribe({\n next: (task: NamedEntity) => {\n const group = this.cardService.getLineGroup();\n group.controls.projectTask.setValue(task);\n\n this.customFieldService.enrichFormGroupWithDefaultValues(\n group,\n 'ExpenseRequestLine',\n );\n this.lines.push(group);\n this.gridService.selectGroup(group);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Opens Expense request line modal window to View/Edit.\n *\n * @param lineGroup Expense request line Form group.\n * */\n private openLineModal(lineGroup: UntypedFormGroup) {\n this.autosave.save().then(() => {\n const ref = this.modalService.open(LineModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as LineModalComponent;\n instance.readonly = this.readonly;\n instance.line = this.cardService.lineCardBuilderFn(\n lineGroup.getRawValue(),\n );\n\n ref.result.then(\n (updatedFormGroup) => {\n if (!this.readonly) {\n lineGroup.patchValue(updatedFormGroup.getRawValue());\n this.gridService.detectChanges();\n this.afterActionComplete();\n }\n },\n (attachment: any) => {\n if (!this.readonly) {\n lineGroup.controls.attachment.setValue(attachment);\n this.gridService.detectChanges();\n }\n },\n );\n });\n }\n\n /**\n * Copies Expense request line.\n *\n * @param lineGroup Expense request line Form group to copy.\n * */\n private copyLine(lineGroup: UntypedFormGroup) {\n this.autosave.save().then(() => {\n const line = this.cardService.lineCardBuilderFn(lineGroup.getRawValue());\n const group = this.cardService.getLineGroup(line);\n\n group.controls.id.setValue(Guid.generate());\n group.controls.attachment.setValue(null);\n\n this.lines.push(group);\n this.gridService.selectGroup(group);\n this.afterActionComplete();\n });\n }\n\n private afterActionComplete() {\n this.cardService.calculateTotals();\n }\n}\n","\n","import { Component, effect, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ExpenseRequestLine } from 'src/app/shared/models/entities/base/expenses-request.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ExpenseRequestCardService } from 'src/app/expenses-requests/card/expenses-request-card.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\nimport { FilesService } from 'src/app/shared/components/controls/file-box';\n\n/**\n * Represents Expense request line View/Edit modal window content.\n * */\n@Component({\n selector: 'tmt-expenses-request-line-modal',\n templateUrl: './line-modal.component.html',\n styleUrls: ['./line-modal.component.scss'],\n standalone: false,\n providers: [FilesService],\n})\nexport class LineModalComponent implements OnInit {\n @Input() readonly: boolean;\n @Input() line: ExpenseRequestLine;\n\n public lineForm: UntypedFormGroup;\n public maxAttachmentSize = Constants.maxAttachmentSize;\n\n constructor(\n public financialAccountsService: FinancialAccountsService,\n public cardService: ExpenseRequestCardService,\n public blockUI: BlockUIService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n filesService: FilesService,\n ) {\n effect(() => {\n const files = filesService.files();\n this.lineForm.patchValue({ attachment: files }, { emitEvent: false });\n });\n }\n\n ngOnInit(): void {\n this.lineForm = this.cardService.getLineGroup(this.line, true);\n if (this.readonly) {\n this.lineForm.disable({ emitEvent: false });\n }\n }\n\n /**\n * Modal window Ok button click event handler.\n * Closes modal window and passes Expense request line form group as a result.\n * */\n ok = () => {\n this.lineForm.markAllAsTouched();\n\n if (this.lineForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.cardService.modalClosed$.next();\n this.activeModal.close(this.lineForm);\n };\n\n /**\n * Modal window Cancel/Dismiss button click event handler.\n * Closes modal window and passes Expense request line attachment as a result.\n * */\n cancel = () => {\n this.cardService.modalClosed$.next();\n this.activeModal.dismiss(this.lineForm.controls.attachment.value);\n };\n}\n","
    \n
    \n

    \n {{ 'expenses.card.lineCard.header' | translate }}\n

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n \n \n
    \n\n \n\n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-expenses-request-details-toolbar',\n templateUrl: './expenses-request-details-toolbar.component.html',\n styleUrls: ['./expenses-request-details-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ExpensesRequestDetailsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(\n protected override gridService: GridService,\n protected override cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n }\n}\n","
    \n
    \n @if (!(gridService.readonly$ | async)) {\n \n \n  {{ 'shared.actions.addLine' | translate }}\n \n }\n\n \n \n  {{ 'shared.actions.edit' | translate }}\n \n
    \n
    \n \n \n \n
    \n
    \n","import { Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { META_ENTITY_TYPE, LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ExpensesRequest } from 'src/app/shared/models/entities/base/expenses-request.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EXPENSE_REQUEST_LINE_LIST } from 'src/app/shared/lists/expenses-request-line.list';\nimport { ExpenseRequestCardService } from './expenses-request-card.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ExpensesRequestSetProjectComponent } from 'src/app/expenses-requests/card/set-project/expenses-request-set-project.component';\nimport { Subject } from 'rxjs';\nimport { ExpensesRequestService } from 'src/app/expenses-requests/expenses-request.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/**\n * Represents Expense request Card content.\n * */\n@Component({\n selector: 'tmt-expenses-request-card',\n templateUrl: './expenses-request-card.component.html',\n styleUrls: ['./expenses-request-card.component.scss'],\n providers: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: EXPENSE_REQUEST_LINE_LIST },\n { provide: META_ENTITY_TYPE, useValue: 'ExpenseRequest' },\n LifecycleService,\n SavingQueueService,\n ExpenseRequestCardService,\n ListService,\n GridService,\n FormHeaderService,\n ],\n standalone: false,\n})\nexport class ExpensesRequestCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public request: ExpensesRequest;\n public readonly: boolean;\n public isOwnRequest: boolean;\n public isSetProjectShown: boolean;\n\n public activeTab: string;\n\n /** Expense request lines. */\n public get linesArray(): UntypedFormArray {\n return this.form.controls.lines as UntypedFormArray;\n }\n\n public form = this.fb.group({\n date: [null, Validators.required],\n projectCostCenter: null,\n reimbursementCurrency: [null, Validators.required],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n lines: this.fb.array([]),\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public expensesService: ExpensesRequestService,\n public service: ExpenseRequestCardService,\n public navigation: NavigationService,\n public actionService: ActionPanelService,\n public blockUI: BlockUIService,\n public sortService: SortService,\n private app: AppService,\n private formHeaderService: FormHeaderService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private gridService: GridService,\n private modalService: NgbModal,\n private customFieldService: CustomFieldService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private wpCurrency: WpCurrencyPipe,\n private savingQueueService: SavingQueueService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'ExpenseRequest');\n }\n\n ngOnInit(): void {\n this.service\n .initBaseCurrency()\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n this.initMainMenu();\n this.initCardSubscriptions();\n this.service.entityId = this.entityId;\n this.service.load();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnDestroy() {\n this.service.dispose();\n this.destroyed$.next();\n }\n\n /**\n * Open user info button click event handler.\n * Opens Modal window view Expense request applicant info.\n * */\n public openUserInfo() {\n const userId = this.request.user.id;\n const target = document.getElementById('request-user');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Opens Modal window view Expense request Project info.\n * */\n public openProjectInfo() {\n const projectId = this.request.project.id;\n const target = document.getElementById('request-project');\n this.infoPopupService.open({\n target,\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Set project button click event handler.\n * Opens Modal window to set Expense request Project.\n * */\n public setProject() {\n const ref = this.modalService.open(ExpensesRequestSetProjectComponent);\n (ref.componentInstance as ExpensesRequestSetProjectComponent).entityId =\n this.entityId;\n (ref.componentInstance as ExpensesRequestSetProjectComponent).user =\n this.request.user;\n (ref.componentInstance as ExpensesRequestSetProjectComponent).project =\n this.request.project;\n }\n\n /**\n * Inits Main menu.\n * */\n private initMainMenu() {\n this.actionService.setAdditional([\n {\n title: 'shared.actions.delete',\n hint: 'expenses.card.actions.delete.hint',\n name: 'delete',\n isBusy: false,\n isVisible: false,\n handler: () => this.service.deleteEntity(),\n },\n\n {\n title: 'finance.entries.actions.openEntries.title',\n hint: 'finance.entries.actions.openEntries.hint',\n name: 'openEntries',\n isBusy: false,\n isVisible: this.app.checkAppAccess(AppName.Finance),\n handler: () => this.service.goToAccountingEntry(),\n },\n ]);\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.reload();\n this.gridService.selectGroup(null);\n });\n this.actionService.setHasAutosave(true);\n }\n\n /**\n * Inits Card level subscriptions.\n * */\n private initCardSubscriptions() {\n this.service.request$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request) => this.onExpenseRequestLoaded(request));\n\n this.expensesService.setProject$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.reload();\n this.gridService.selectGroup(null);\n });\n\n this.service.calculateTotals$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.calculateTotals();\n });\n\n this.service.reimbursementCurrencyChanged$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((currency) => {\n this.updateFormHeader();\n });\n }\n\n /**\n * Builds entity for Auto Save service.\n *\n * @returns Entity to save.\n * */\n private getRequestToSave = () => {\n const formData = this.form.getRawValue() as ExpensesRequest;\n\n const data = {\n id: this.request.id,\n projectId: this.request.project.id,\n projectCostCenterId: formData.projectCostCenter?.id,\n reimbursementCurrencyId: formData.reimbursementCurrency?.id,\n rowVersion: this.request.rowVersion,\n userId: this.request.user.id,\n name: this.request.name,\n date: formData.date,\n description: formData.description,\n lines: [] as any,\n };\n\n formData.lines.forEach((formLine: any) => {\n const line = this.service.lineBuilderFn(formLine);\n\n this.customFieldService.assignValues(\n line,\n formLine,\n 'ExpenseRequestLine',\n );\n\n data.lines.push(line);\n });\n\n this.customFieldService.assignValues(data, formData, 'ExpenseRequest');\n\n return data;\n };\n\n /**\n * Expense request load event handler.\n *\n * @param expenseRequest Expense request.\n * */\n private onExpenseRequestLoaded(expenseRequest: ExpensesRequest) {\n this.form.enable({ emitEvent: false });\n this.request = expenseRequest;\n\n this.savingQueueService.disabled = true;\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.form.patchValue(expenseRequest);\n\n this.readonly = !this.request.editAllowed;\n\n this.linesArray.clear();\n\n expenseRequest.lines.forEach((line) => {\n const group = this.service.getLineGroup(line);\n this.linesArray.push(group);\n });\n\n if (!expenseRequest.editAllowed) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.valueChanges\n .pipe(takeUntil(this.service.entityReloaded$))\n .subscribe(() => {\n this.savingQueueService.addToQueue(this.entityId, () =>\n this.service.collection\n .entity(this.entityId)\n .update(this.getRequestToSave(), { withResponse: true }),\n );\n });\n\n this.form.controls.reimbursementCurrency.valueChanges\n .pipe(takeUntil(this.service.entityReloaded$))\n .subscribe((currency) => {\n this.service.refreshReimbursementAmount(currency.id);\n });\n\n this.savingQueueService.error$\n .pipe(takeUntil(this.service.entityReloaded$))\n .subscribe(() => this.service.reload());\n }\n\n this.savingQueueService.disabled = false;\n this.toggleActions();\n this.calculateTotals();\n }\n\n /**\n * Updates Actions visibility state.\n * */\n private toggleActions() {\n // Set Own request flag.\n this.isOwnRequest = this.app.session.user.id === this.request.user.id;\n\n this.isSetProjectShown = this.request.editAllowed;\n\n const deleteItem = this.actionService.action('delete');\n if (deleteItem) {\n deleteItem.isShown = this.request.deleteAllowed;\n }\n }\n\n /**\n * Calculates Expense request total sum values.\n * */\n private calculateTotals() {\n let totalAmount = 0;\n let totalReimbursement = 0;\n let totalBillable = 0;\n\n const lines = this.linesArray.getRawValue();\n\n lines.forEach((line) => {\n if (line.amountPC) {\n totalAmount += line.amountPC.value;\n if (line.billable) {\n totalBillable += line.amountPC.value;\n }\n }\n if (line.reimburse) {\n totalReimbursement += line.amountRC.value;\n }\n });\n\n this.request.totalAmount = totalAmount;\n this.request.totalReimbursement = totalReimbursement;\n this.request.totalBillable = totalBillable;\n\n this.updateFormHeader();\n }\n\n private updateFormHeader() {\n this.formHeaderService.updateIndicators([\n {\n description: 'expenses.card.info.total',\n value: this.wpCurrency.transform(\n this.request.totalAmount,\n this.request.project.currency.alpha3Code,\n ),\n },\n {\n description: 'expenses.card.info.totalReimbursement',\n value: this.wpCurrency.transform(\n this.request.totalReimbursement,\n this.service.reimbursementCurrency.alpha3Code,\n ),\n },\n {\n description: 'expenses.card.info.totalBillable',\n value: this.wpCurrency.transform(\n this.request.totalBillable,\n this.request.project.currency.alpha3Code,\n ),\n },\n ]);\n }\n}\n","\n\n\n\n\n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    {{ 'expenses.card.props.applicant' | translate }}:
    \n
    \n \n
    \n
    \n\n
    \n
    {{ 'expenses.card.props.project' | translate }}:
    \n
    \n \n \n
    \n
    \n\n @if (service.showLegalEntity()) {\n
    \n
    {{ 'expenses.card.props.legalEntity' | translate }}:
    \n
    \n {{ request?.legalEntity?.name }}\n
    \n
    \n }\n\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n @if (service.showCurrencies()) {\n
    \n \n \n
    \n }\n\n @if (service.showCostCenter()) {\n
    \n \n \n
    \n }\n
    \n\n
    \n \n \n
    \n
    \n\n \n\n \n \n\n \n
    \n
    \n","import { Injectable, Optional, signal } from '@angular/core';\nimport { BehaviorSubject, Observable, of, Subject, throwError } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport {\n ExpenseRequestLine,\n ExpensesRequest,\n} from 'src/app/shared/models/entities/base/expenses-request.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n AbstractControl,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { StateService } from '@uirouter/angular';\n\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { DateTime } from 'luxon';\nimport {\n catchError,\n filter,\n map,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { cloneDeep } from 'lodash';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport {\n MetaEntityBaseProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { ExpensesRequestService } from 'src/app/expenses-requests/expenses-request.service';\nimport {\n ProjectTaskInfo,\n ProjectTaskInfoService,\n} from 'src/app/shared/services/project-tasks-info.service';\nimport { LogService } from 'src/app/core/log.service';\n\n@Injectable()\nexport class ExpenseRequestCardService {\n public collection = this.data.collection('ExpenseRequests');\n public state$ = new BehaviorSubject(CardState.Loading);\n public request$ = new Subject();\n public name$ = new BehaviorSubject('');\n public showCurrencies = signal(false);\n public showCostCenter = signal(false);\n public showLegalEntity = signal(false);\n\n /** Component subscriptions cancel subject. */\n public entityReloaded$ = new Subject();\n public modalClosed$ = new Subject();\n\n get entityId(): string {\n return this._entityId;\n }\n\n set entityId(value: string) {\n this._entityId = value;\n }\n\n get projectId() {\n return this._projectId;\n }\n\n get userId() {\n return this._userId;\n }\n\n get currency() {\n return this._currency;\n }\n\n get projectCurrency() {\n return this._projectCurrency;\n }\n\n get baseCurrency() {\n return this._baseCurrency;\n }\n\n get reimbursementCurrency() {\n return this._reimbursementCurrency;\n }\n\n private _entityId: string;\n private _request: ExpensesRequest;\n private _projectId: string;\n private _userId: string;\n private _lineCustomFields: MetaEntityBaseProperty[];\n\n private _currency: Currency;\n private _projectCurrency: Currency;\n private _baseCurrency: Currency;\n private _mainTask: ProjectTaskInfo;\n private _isProgramValueChange = false;\n private _reimbursementCurrency: Currency;\n\n private entityQuery = {\n select: ['*'],\n expand: [\n { user: { select: ['id', 'name', 'legalEntityId'] } },\n { legalEntity: { select: ['id', 'name'] } },\n { state: { select: ['id', 'name', 'code'] } },\n { projectCostCenter: { select: ['id', 'name'] } },\n {\n project: {\n select: ['id', 'name'],\n expand: {\n currency: { select: ['id', 'name', 'alpha3Code'] },\n },\n },\n },\n {\n reimbursementCurrency: {\n select: ['id', 'name', 'alpha3Code'],\n },\n },\n ],\n };\n\n private entityLinesQuery = {\n select: ['*'],\n expand: [\n { account: { select: ['id', 'name'] } },\n { projectTask: { select: ['id', 'name', 'structNumber'] } },\n { currency: { select: ['id', 'name', 'alpha3Code'] } },\n ],\n orderBy: 'date',\n };\n\n private _calculateTotals = new Subject();\n\n public calculateTotals$ = this._calculateTotals.asObservable();\n\n private reimbursementCurrencyChanged = new Subject();\n public reimbursementCurrencyChanged$ =\n this.reimbursementCurrencyChanged.asObservable();\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public blockUI: BlockUIService,\n public expensesService: ExpensesRequestService,\n private app: AppService,\n private data: DataService,\n public navigation: NavigationService,\n @Optional() private autosave: SavingQueueService,\n private notification: NotificationService,\n private message: MessageService,\n private fb: UntypedFormBuilder,\n private projectTaskInfoService: ProjectTaskInfoService,\n private state: StateService,\n private customFieldService: CustomFieldService,\n private lifecycleService: LifecycleService,\n private currenciesService: CurrenciesService,\n private logService: LogService,\n ) {\n this.lifecycleService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.reload();\n });\n\n this._lineCustomFields = this.app.getCustomFields('ExpenseRequestLine');\n\n this.autosave.save$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request: any) => {\n if (request) {\n this._request.rowVersion = request.rowVersion;\n }\n });\n }\n\n /**\n * Gets Base currency info.\n *\n * @returns Observable.\n * */\n public initBaseCurrency(): Observable {\n const baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n return this.currenciesService.currencies$.pipe(\n catchError((error) => {\n this._baseCurrency = {\n id: null,\n name: null,\n alpha3Code: baseCurrencyCode,\n };\n return throwError(error);\n }),\n map((currencies) =>\n currencies.find((c) => c.alpha3Code === baseCurrencyCode),\n ),\n tap((currency) => {\n this._baseCurrency = currency;\n }),\n );\n }\n\n /**\n * Reloads Card.\n * */\n public reload() {\n this.autosave.save().then(\n () => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n /**\n * Loads Expense request.\n * */\n public load = () => {\n this.state$.next(CardState.Loading);\n\n const linesQuery = cloneDeep(this.entityLinesQuery);\n\n this.customFieldService.enrichQuery(linesQuery, 'ExpenseRequestLine');\n\n const query = cloneDeep(this.entityQuery);\n\n this.customFieldService.enrichQuery(query, 'ExpenseRequest');\n\n query.expand.push({ lines: linesQuery });\n\n this.collection\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (request: ExpensesRequest) => {\n this._request = request;\n this._projectId = request.project.id;\n this._userId = request.user.id;\n this._projectCurrency = this._request.project?.currency;\n this._currency = this._projectCurrency ?? this._baseCurrency;\n this._reimbursementCurrency = request.reimbursementCurrency;\n this.entityReloaded$.next();\n this.request$.next(request);\n this.name$.next(request.name);\n this.state$.next(CardState.Ready);\n this.projectTaskInfoService.resetProjectTasks(\n this._projectId,\n this._userId,\n );\n this._mainTask = null;\n this.navigation.addRouteSegment({\n id: request.id,\n title: request.name,\n });\n\n this.checkCollectionsQuantity();\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n };\n\n /**\n * Deletes Expense request.\n * */\n public deleteEntity() {\n this.message.confirmLocal('expenses.card.messages.deleteConfirmation').then(\n () => {\n this.blockUI.start();\n this.collection\n .entity(this.entityId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem();\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.message.error(error.message).then(this.load, this.load);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Gets cached Main Project task for Expense request line.\n *\n * @returns Observable.\n * */\n public getMainTaskObs(): Observable {\n if (this._mainTask) {\n return of(this._mainTask);\n }\n\n return this.projectTaskInfoService\n .getProjectTasksInfo(this._projectId, this._userId)\n .pipe(\n map((tasks: ProjectTaskInfo[]) => {\n this._mainTask =\n tasks?.length > 0 ? tasks.find((t) => !t.leadTaskId) : null;\n return this._mainTask;\n }),\n );\n }\n\n /**\n * Navigates to Expense request Accounting entries.\n * */\n public goToAccountingEntry() {\n this.state.go(`accountingEntries`, {\n navigation: this.navigation.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n navGroup: 'entries',\n keepNavInState: 'finance.entry',\n filter: JSON.stringify({\n name: this._request.name,\n filter: [{ documentId: { type: 'guid', value: this.entityId } }],\n }),\n });\n }\n\n /**\n * Calculates Expense request total sum values.\n * */\n public calculateTotals() {\n this._calculateTotals.next();\n }\n\n public lineCardBuilderFn = (lineGroup: any): ExpenseRequestLine => {\n const line = this.lineBuilderFn(lineGroup);\n\n line.currency = lineGroup.currency;\n line.account = lineGroup.account ?? null;\n line.projectTask = lineGroup.projectTask ?? null;\n\n this._lineCustomFields.forEach((field) => {\n let fieldName;\n if (field.type === MetaEntityPropertyType.directory) {\n fieldName = (field as MetaEntityNavigationProperty).keyProperty;\n } else {\n fieldName = field.name;\n }\n\n line[fieldName] = lineGroup[fieldName];\n });\n\n return line;\n };\n\n public lineBuilderFn = (lineGroup: any): ExpenseRequestLine =>\n {\n id: lineGroup.id,\n expenseRequestId: this._request.id,\n amount: lineGroup.amount.value,\n amountBC: lineGroup.amountBC.value,\n amountPC: lineGroup.amountPC.value,\n amountRC: lineGroup.amountRC.value,\n currencyId: lineGroup.currency.id,\n date: lineGroup.date,\n accountId: lineGroup.account?.id ?? null,\n projectTaskId: lineGroup.projectTask?.id ?? null,\n description: lineGroup.description,\n reimburse: lineGroup.reimburse,\n billable: lineGroup.billable,\n exchangeRate: lineGroup.exchangeRate,\n };\n\n /**\n * Gets Expense request line form group for Expense request lines.\n *\n * @param line Expense request line.\n * @param isModal Indicates whether Line group is created on Modal window or not.\n * @returns Expense request line form group.\n * */\n public getLineGroup(\n line?: ExpenseRequestLine,\n isModal = false,\n ): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n account: [null, Validators.required],\n projectTask: [null, Validators.required],\n description: [null, Validators.maxLength(Constants.formTextMaxLength)],\n currency: this.currency,\n projectCurrencyXR: null,\n reimbursementCurrencyXR: null,\n amount: {\n value: 0,\n currencyCode: this.currency.alpha3Code,\n },\n exchangeRate: [1, Validators.required],\n amountBC: [\n {\n value: 0,\n currencyCode: this.baseCurrency.alpha3Code,\n },\n ],\n amountPC: [\n {\n value: 0,\n currencyCode: this.currency.alpha3Code,\n },\n ],\n amountRC: [\n {\n value: 0,\n currencyCode: this.reimbursementCurrency.alpha3Code,\n },\n ],\n billable: [false],\n reimburse: [false],\n date: [null, Validators.required],\n attachment: null,\n });\n\n group.controls.amountBC.disable();\n group.controls.amountPC.disable();\n group.controls.amountRC.disable();\n\n const destroySub = isModal ? this.modalClosed$ : this.entityReloaded$;\n\n this.customFieldService.enrichFormGroup(\n group,\n 'ExpenseRequestLine',\n false,\n false,\n );\n\n if (line) {\n group.patchValue(line);\n group.controls.amount.setValue({\n value: line.amount,\n currencyCode: line.currency.alpha3Code,\n });\n group.controls.amountBC.setValue({\n value: line.amountBC,\n currencyCode: this.baseCurrency.alpha3Code,\n });\n group.controls.amountPC.setValue({\n value: line.amountPC,\n currencyCode: this.currency.alpha3Code,\n });\n group.controls.amountRC.setValue({\n value: line.amountRC,\n currencyCode: this.reimbursementCurrency.alpha3Code,\n });\n }\n\n if (!isModal) {\n group.controls.billable.valueChanges\n .pipe(takeUntil(this.entityReloaded$))\n .subscribe(() => {\n this.calculateTotals();\n });\n\n group.controls.reimburse.valueChanges\n .pipe(takeUntil(this.entityReloaded$))\n .subscribe(() => {\n this.calculateTotals();\n });\n }\n\n group.controls.amount.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe((value) => {\n if (\n !group.controls.projectCurrencyXR.value ||\n !group.controls.reimbursementCurrencyXR.value ||\n group.controls.currency.value.alpha3Code !== value.currencyCode\n ) {\n if (\n !group.controls.projectCurrencyXR.value ||\n group.controls.currency.value.alpha3Code !== value.currencyCode\n ) {\n this.refreshProjectXR(group, true);\n }\n\n if (\n !group.controls.reimbursementCurrencyXR.value ||\n group.controls.currency.value.alpha3Code !== value.currencyCode\n ) {\n this.refreshReimbursementXR(group, true);\n }\n } else {\n this.refreshLineXr(group);\n }\n });\n group.controls.date.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe(() => {\n if (group.controls.date.dirty) {\n this.refreshProjectXR(group, true);\n this.refreshReimbursementXR(group, true);\n }\n });\n\n if (\n group.controls.amount.value.currencyCode !== this.baseCurrency.alpha3Code\n ) {\n group.controls.exchangeRate.enable();\n } else {\n group.controls.exchangeRate.setValue(1);\n group.controls.exchangeRate.disable();\n }\n\n group.controls.exchangeRate.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntil(destroySub),\n )\n .subscribe(() => {\n if (!group.controls.projectCurrencyXR.value) {\n this.refreshProjectXR(group);\n }\n\n if (group.controls.reimbursementCurrencyXR.value) {\n this.refreshReimbursementXR(group);\n }\n\n if (\n group.controls.projectCurrencyXR.value &&\n group.controls.reimbursementCurrencyXR.value\n ) {\n this.setAmounts(group);\n }\n });\n\n this.customFieldService.enrichFormGroup(\n group,\n 'ExpenseRequestLine',\n !isModal,\n );\n\n return group;\n }\n\n /**\n * Refreshes Expense request line with Project Currency Exchange rate by line date.\n *\n * @param lineGroup Expense request line to update.\n * @param force Indicates whether to refresh line Currency Exchange rate even when it has not been changed.\n * */\n public refreshProjectXR(lineGroup: UntypedFormGroup, force?: boolean) {\n this.currenciesService\n .getExchangeRate(\n this.currency.id,\n lineGroup.controls.date.value || DateTime.now().toISODate(),\n )\n .pipe(\n switchMap((projectXr) => {\n lineGroup.controls.projectCurrencyXR.setValue(projectXr);\n return this.getLineXrObs(lineGroup, force);\n }),\n takeUntil(this.entityReloaded$),\n )\n .subscribe({\n next: (xr) => {\n this.setXr(lineGroup, xr);\n },\n error: (error: Exception) => {\n this.setXr(lineGroup, 1);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Refreshes Expense request line with Reimbursement Currency Exchange rate by line date.\n *\n * @param lineGroup Expense request line to update.\n * @param force Indicates whether to refresh line Currency Exchange rate even when it has not been changed.\n * @param currencyId Currency id for recalculation.\n * */\n public refreshReimbursementXR(\n lineGroup: UntypedFormGroup,\n force?: boolean,\n currencyId?: string,\n ) {\n this.currenciesService\n .getExchangeRate(\n currencyId ?? this.reimbursementCurrency.id,\n lineGroup.controls.date.value || DateTime.now().toISODate(),\n )\n .pipe(\n switchMap((reimbursementXr) => {\n lineGroup.controls.reimbursementCurrencyXR.setValue(reimbursementXr);\n return this.getLineXrObs(lineGroup, force);\n }),\n takeUntil(this.entityReloaded$),\n )\n .subscribe({\n next: (xr) => {\n this.setXr(lineGroup, xr);\n },\n error: (error: Exception) => {\n this.setXr(lineGroup, 1);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Refreshes Expense request lines reimbursement amount.\n */\n public refreshReimbursementAmount(currencyId: string) {\n this.currenciesService.currencies$\n .pipe(\n map((currencies) => currencies.find((c) => c.id === currencyId)),\n tap((currency) => {\n this._reimbursementCurrency = currency;\n }),\n )\n .subscribe((currency) => {\n this.reimbursementCurrencyChanged.next(currency);\n });\n }\n\n /**\n * Refreshes Expense request line with its Currency Exchange rate by line date.\n *\n * @param lineGroup Expense request line to update.\n * @param force Indicates whether to refresh line Currency Exchange rate even when it has not been changed.\n * */\n private refreshLineXr(lineGroup: UntypedFormGroup, force?: boolean) {\n if (!this._baseCurrency) {\n this.logService.error('Base Currency is not defined.');\n return;\n }\n if (!this._projectCurrency) {\n this.logService.error('Project Currency is not defined.');\n return;\n }\n\n if (!this._reimbursementCurrency) {\n this.logService.error('Reimbursement Currency is not defined.');\n return;\n }\n\n this.getLineXrObs(lineGroup, force)\n .pipe(takeUntil(this.entityReloaded$))\n .subscribe({\n next: (xr) => {\n this.setXr(lineGroup, xr);\n },\n error: (error: Exception) => {\n this.setXr(lineGroup, 1);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Disposes service active resources.\n * */\n public dispose() {\n this.destroyed$.next();\n this.modalClosed$.next();\n this.entityReloaded$.next();\n }\n\n /**\n * Gets Expense request line Currency Exchange rate observable.\n *\n * @param lineGroup Expense request line to update.\n * @param force Indicates whether to refresh line Currency Exchange rate even when it has not been changed.\n * */\n private getLineXrObs(lineGroup: UntypedFormGroup, force?: boolean) {\n return this.currenciesService.currencies$.pipe(\n map((currencies) =>\n currencies.find(\n (currency) =>\n currency.alpha3Code ===\n lineGroup.controls.amount.value.currencyCode,\n ),\n ),\n switchMap((lineCurrency) => {\n lineGroup.controls.currency.setValue(lineCurrency);\n\n if (\n !!lineCurrency &&\n (lineCurrency.id !== lineGroup.controls.currency.value.id || force)\n ) {\n return this.currenciesService.getExchangeRate(\n lineCurrency.id,\n lineGroup.controls.date.value || DateTime.now().toISODate(),\n );\n } else {\n return of(0);\n }\n }),\n );\n }\n\n /**\n * Sets Expense request line Exchange rate.\n *\n * @param lineGroup Expense request line to update.\n * @param xr New Exchange rate.\n * */\n private setXr(lineGroup: UntypedFormGroup, xr: number) {\n if (xr !== 0) {\n if (\n lineGroup.controls.amount.value.currencyCode ===\n this.baseCurrency.alpha3Code\n ) {\n this.setValueProgrammatically(lineGroup.controls.exchangeRate, 1, true);\n } else {\n this.setValueProgrammatically(\n lineGroup.controls.exchangeRate,\n xr,\n false,\n );\n }\n }\n this.setAmounts(lineGroup);\n }\n\n private setAmounts(lineGroup: UntypedFormGroup) {\n lineGroup.controls.amountBC.setValue({\n value:\n lineGroup.controls.amount.value.value *\n lineGroup.controls.exchangeRate.value,\n currencyCode: lineGroup.controls.amountBC.value.currencyCode,\n });\n\n let amountPC = lineGroup.controls.amount.value.value;\n\n if (\n lineGroup.controls.amount.value.currencyCode !== this.currency.alpha3Code\n ) {\n amountPC =\n lineGroup.controls.amountBC.value.value /\n lineGroup.controls.projectCurrencyXR.value;\n }\n\n lineGroup.controls.amountPC.setValue({\n value: amountPC,\n currencyCode: lineGroup.controls.amountPC.value.currencyCode,\n });\n\n let amountRC = lineGroup.controls.amount.value.value;\n\n if (\n lineGroup.controls.amount.value.currencyCode !==\n this.reimbursementCurrency.alpha3Code\n ) {\n amountRC =\n lineGroup.controls.amountBC.value.value /\n lineGroup.controls.reimbursementCurrencyXR.value;\n }\n\n lineGroup.controls.amountRC.setValue({\n value: amountRC,\n currencyCode: lineGroup.controls.amountRC.value.currencyCode,\n });\n\n this.calculateTotals();\n }\n\n // TODO: move to separate service and provide at component level.\n private setValueProgrammatically(\n ctrl: AbstractControl,\n value: any,\n disable: boolean = null,\n ) {\n this._isProgramValueChange = true;\n ctrl.setValue(value);\n if (disable !== null) {\n if (disable) {\n ctrl.disable();\n } else {\n ctrl.enable();\n }\n }\n\n this._isProgramValueChange = false;\n }\n\n private checkCollectionsQuantity(): void {\n this.showCurrencies.set(this.app.session.configuration.multiCurrency);\n this.showCostCenter.set(this.app.session.configuration.multiLegalEntity);\n this.showLegalEntity.set(this.app.session.configuration.multiLegalEntity);\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ExpensesRequestService } from 'src/app/expenses-requests/expenses-request.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { TransitionService } from '@uirouter/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-expenses-request-set-project',\n templateUrl: './expenses-request-set-project.component.html',\n styleUrls: ['./expenses-request-set-project.component.scss'],\n standalone: false,\n})\nexport class ExpensesRequestSetProjectComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n @Input() user: NamedEntity;\n @Input() project: NamedEntity;\n\n public isSaving = false;\n public projectList: NamedEntity[];\n\n public form = this.fb.group({\n project: [null, Validators.required],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public expensesService: ExpensesRequestService,\n private fb: UntypedFormBuilder,\n transitionService: TransitionService,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n private activeModal: NgbActiveModal,\n ) {\n transitionService.onSuccess({}, () => this.cancel());\n }\n\n ngOnInit() {\n this.expensesService.loadUserInfoProjects(this.user.id);\n\n this.expensesService.projectList$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((projectList) => {\n this.projectList = projectList.filter((p) => p.id !== this.project.id);\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n\n ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n projectId: this.form.value.project.id,\n };\n\n this.data\n .collection('ExpenseRequests')\n .entity(this.entityId)\n .action('WP.SetProject')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'expenses.card.setProject.messages.set',\n );\n this.expensesService.setProject$.next(true);\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n cancel() {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'expenses.card.setProject.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{ 'expenses.card.setProject.labels.projectChangeNotes' | translate }}\n

    \n
    \n
    \n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { StateService, TransitionService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DateTime } from 'luxon';\nimport { ExpensesRequestService } from 'src/app/expenses-requests/expenses-request.service';\nimport { Subject } from 'rxjs';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { ExpensesRequest } from 'src/app/shared/models/entities/base/expenses-request.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-expenses-request-creation',\n templateUrl: './expenses-request-creation.component.html',\n styleUrls: ['./expenses-request-creation.component.scss'],\n standalone: false,\n})\nexport class ExpensesRequestCreationComponent implements OnInit, OnDestroy {\n public isSaving = false;\n public userIsAllowed: boolean;\n public userQuery: any;\n\n public form = this.fb.group({\n user: [this.app.session.user, Validators.required],\n project: [null, Validators.required],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public expensesService: ExpensesRequestService,\n private fb: UntypedFormBuilder,\n private navigation: NavigationService,\n transitionService: TransitionService,\n private app: AppService,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {\n transitionService.onSuccess({}, () => this.cancel());\n this.customFieldService.enrichFormGroup(this.form, 'ExpenseRequest', true);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'ExpenseRequest',\n );\n }\n\n ngOnInit(): void {\n this.setUserAllowed();\n this.expensesService.loadUserInfoProjects(this.form.value.user.id);\n\n this.form.controls.user.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.form.controls.project.setValue(null);\n this.expensesService.loadUserInfoProjects(this.form.value.user.id);\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const formData = this.form.value as ExpensesRequest;\n\n this.isSaving = true;\n\n const data = {\n date: DateTime.now().toISODate(),\n name: 'new',\n projectId: this.form.value.project.id,\n userId: this.form.value.user.id,\n };\n\n this.customFieldService.assignValues(data, formData, 'ExpenseRequest');\n\n this.data\n .collection('ExpenseRequests')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal('expenses.creation.messages.created');\n this.isSaving = false;\n this.state.go(`expensesRequest`, {\n entityId: response.id,\n routeMode: RouteMode.continue,\n });\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n /**\n * Checks if Applicant change to other than the current User is allowed or not.\n * */\n private setUserAllowed(): void {\n if (this.navigation.getAppName() === AppName.My) {\n this.userIsAllowed = false;\n return;\n }\n\n if (\n this.app.checkPermission('ExpenseRequest', 'All', PermissionType.Modify)\n ) {\n this.userIsAllowed = true;\n } else {\n if (\n this.app.checkPermission(\n 'ExpenseRequest',\n 'MySubordinates',\n PermissionType.Modify,\n )\n ) {\n this.userIsAllowed = true;\n this.userQuery = {\n filter: [\n {\n supervisors: {\n any: {\n id: { type: 'guid', value: this.app.session.user.id },\n },\n },\n },\n ],\n };\n }\n }\n }\n}\n","
    \n
    \n

    \n {{ 'expenses.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n \n\n \n \n \n
    \n \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ProjectCostCenter } from 'src/app/projects/card/project-cost-centers/models/project-cost-center.model';\n\n@Injectable()\nexport class ExpensesRequestService {\n private projectList = new BehaviorSubject([]);\n public projectList$ = this.projectList.asObservable();\n\n public loadingState$ = new BehaviorSubject(false);\n public setProject$ = new Subject();\n\n private readonly projectCollection = this.dataService.collection('Projects');\n\n constructor(\n private dataService: DataService,\n private messageService: MessageService,\n ) {}\n\n public loadUserInfoProjects(userId: string): void {\n if (!userId) {\n return;\n }\n\n setTimeout(() => this.loadingState$.next(true)); // TODO: for what?\n\n this.projectCollection\n .function('GetProjectsInfo')\n .get(\n { userId },\n {\n orderBy: 'name',\n },\n )\n .subscribe({\n next: (projects) => {\n this.loadingState$.next(false);\n this.projectList.next(projects);\n },\n error: (error: Exception) => {\n this.messageService.error(error.message);\n this.loadingState$.next(false);\n },\n });\n }\n\n /**\n * Gets expense project cost centers.\n * @param userId id of user.\n * @param projectId id of selected project.\n * @returns project cost centers observable.\n */\n public getUserProjectCostCenters(\n userId: string,\n projectId: string,\n ): Observable {\n return this.projectCollection\n .entity(projectId)\n .function('GetUserCostCenters')\n .get({ userId });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ExpensesRequestListComponent } from './list/expenses-request-list.component';\nimport { ExpensesRequestCreationComponent } from './creation/expenses-request-creation.component';\nimport { ExpensesRequestFilterComponent } from './list/filter/expenses-request-filter.component';\nimport { LineModalComponent } from './card/details/line-modal/line-modal.component';\nimport { ExpensesRequestDetailsToolbarComponent } from 'src/app/expenses-requests/card/details/toolbar/expenses-request-details-toolbar.component';\nimport { ExpensesRequestCardComponent } from './card/expenses-request-card.component';\nimport { ExpensesRequestDetailsComponent } from './card/details/expenses-request-details.component';\nimport { ExpenseTaskCellComponent } from './card/details/expense-task-cell/expense-task-cell.component';\nimport { ExpenseTaskReadonlyCellComponent } from './card/details/expense-task-cell/expense-task-readonly-cell.component';\nimport { ExpensesRequestService } from 'src/app/expenses-requests/expenses-request.service';\nimport { ExpensesRequestSetProjectComponent } from 'src/app/expenses-requests/card/set-project/expenses-request-set-project.component';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { EXPENSES_LIST } from 'src/app/shared/lists/expenses.list';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { FileBoxComponent } from 'src/app/shared/components/controls/file-box';\n\n@NgModule({\n declarations: [\n ExpensesRequestListComponent,\n ExpensesRequestCardComponent,\n ExpensesRequestCreationComponent,\n ExpensesRequestFilterComponent,\n ExpensesRequestDetailsComponent,\n LineModalComponent,\n ExpensesRequestDetailsToolbarComponent,\n ExpenseTaskReadonlyCellComponent,\n ExpenseTaskCellComponent,\n ExpensesRequestSetProjectComponent,\n ],\n\n imports: [\n CommonModule,\n SharedModule,\n BaseSharedModule,\n EntityListComponent,\n CommentsModule,\n GridModule,\n FileBoxComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'expensesRequest',\n url: '/expenses/{entityId:guid}?{navigation}&{route}',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: ExpensesRequestCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'expensesRequests',\n url: '/expenses/{view:viewName}?{navigation}',\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'ExpenseRequest' },\n { provide: LIST, useValue: EXPENSES_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'expensesRequest',\n } as MassOperationParameters,\n },\n ],\n params: {\n navigation: null,\n view: null,\n },\n component: ExpensesRequestListComponent,\n },\n ],\n }),\n ],\n providers: [ExpensesRequestService],\n})\nexport class ExpensesRequestsModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { ExpensesRequestFilterService } from './filter/expenses-request-filter.service';\nimport { ExpensesRequestCreationComponent } from '../creation/expenses-request-creation.component';\nimport { Subject } from 'rxjs';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'tmt-expenses-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: ExpensesRequestFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class ExpensesRequestListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private state: StateService,\n private actions: ActionPanelService,\n private listService: EntityListService,\n private gridService: GridService,\n private modalService: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'expenses.list.actions.create',\n isVisible: true,\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go(`expensesRequest`, {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: UntypedFormGroup[]) => {\n this.actions.action('card').isShown = rows?.length === 1;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create = () => {\n this.modalService.open(ExpensesRequestCreationComponent);\n };\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-expenses-request-filter',\n templateUrl: './expenses-request-filter.component.html',\n standalone: false,\n})\nexport class ExpensesRequestFilterComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: null,\n client: null,\n project: null,\n user: null,\n department: null,\n onlySubordinates: false,\n states: [null],\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ExpensesRequestFilterComponent } from './expenses-request-filter.component';\n\n@Injectable()\nexport class ExpensesRequestFilterService extends FilterService {\n public override component: Type =\n ExpensesRequestFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = true;\n public override placeholder = 'expenses.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n period: null,\n client: null,\n project: null,\n user: null,\n department: null,\n onlySubordinates: false,\n states: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n });\n }\n\n if (this.values.client) {\n result.push({\n project: {\n organizationId: { type: 'guid', value: this.values.client.id },\n },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.user) {\n result.push({\n userId: { type: 'guid', value: this.values.user.id },\n });\n }\n\n if (this.values.department) {\n result.push({\n user: {\n departmentId: { type: 'guid', value: this.values.department.id },\n },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.onlySubordinates) {\n result.push({\n user: {\n supervisors: {\n any: {\n id: { type: 'guid', value: this.app.session.user.id },\n },\n },\n },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n date: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n date: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST, FILTER } from 'src/app/shared/tokens';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ACCOUNTING_ENTRY_LIST } from 'src/app/shared/lists/accounting-entry.list';\nimport { AccountingEntryListComponent } from './list/accounting-entry-list.component';\nimport { AccountingEntryCardComponent } from './card/accounting-entry-card.component';\nimport { AccountingEntryCreationComponent } from './creation/accounting-entry-creation.component';\nimport { AccountingEntryBodyComponent } from './shared/accounting-entry-body/accounting-entry-body.component';\nimport { AccountingEntryComponent } from './list/filter/accounting-entry-filter.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n AccountingEntryListComponent,\n AccountingEntryCardComponent,\n AccountingEntryCreationComponent,\n AccountingEntryBodyComponent,\n AccountingEntryComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'accountingEntries',\n url: '/accounting-entries?{navigation}&{route}&{filter:json}',\n component: AccountingEntryListComponent,\n params: {\n entity: null,\n routeMode: null,\n routeHeader: 'finance.entries.list.header',\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'all' },\n { provide: LIST, useValue: ACCOUNTING_ENTRY_LIST },\n {\n token: FILTER,\n deps: [Transition],\n resolveFn: StateHelper.resolveFilter,\n },\n ],\n },\n\n {\n name: 'accountingEntry',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n },\n\n url: '/accounting-entries/{entityId:guid}?{entity}&{navigation}&{route}',\n component: AccountingEntryCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class AccountingEntriesModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AccountingEntryService } from '../core/accounting-entry.service';\n\n@Component({\n selector: 'wp-accounting-entry-card',\n templateUrl: './accounting-entry-card.component.html',\n providers: [AccountingEntryService],\n standalone: false,\n})\nexport class AccountingEntryCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: AccountingEntryService,\n private actionService: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.initMainMenu();\n this.initCardSubscriptions();\n this.service.mode = 'edit';\n this.service.init();\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n this.destroyed$.next();\n }\n\n /**\n * Inits Main menu.\n * */\n private initMainMenu() {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.service.save(),\n },\n ]);\n }\n\n /**\n * Inits Card level subscriptions.\n * */\n private initCardSubscriptions() {\n this.service.saving$.pipe(takeUntil(this.destroyed$)).subscribe((state) => {\n this.actionService.action('save').isBusy = state;\n });\n }\n}\n","\n\n\n\n\n\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n","import { DatePipe } from '@angular/common';\nimport {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DateTime, Interval } from 'luxon';\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AccountingPeriod } from 'src/app/shared/models/entities/finance/accounting-period.model';\nimport {\n FinancialAccountType,\n FinancialAccountTypes,\n} from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { AccountingEntry } from 'src/app/shared/models/entities/finance/accounting-entry.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { AccountingEntryMode } from 'src/app/shared/models/entities/finance/accounting-entry-mode.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class AccountingEntryService {\n public mode: 'create' | 'edit' = 'create';\n public minAllowedNumber = -999999999;\n\n public readonly = false;\n\n public projectsQuery = {\n select: ['id', 'name'],\n expand: {\n currency: {\n select: ['id', 'alpha3Code', 'name'],\n },\n },\n };\n\n public form = this.fb.group({\n id: null,\n typeId: [FinancialAccountType.revenue.id, Validators.required],\n date: [DateTime.now().toISODate(), Validators.required],\n amount: [null, Validators.required],\n exchangeRate: 1,\n amountBC: null,\n project: [null, Validators.required],\n projectTask: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n account: [null, Validators.required],\n timeOffType: [null, Validators.required],\n document: null,\n documentDate: null,\n created: null,\n mode: null,\n hours: null,\n costRate: null,\n user: null,\n department: null,\n legalEntity: null,\n projectCostCenter: null,\n });\n\n private entityQuery = {\n expand: {\n project: {\n select: ['id', 'name'],\n expand: {\n currency: {\n select: ['id', 'alpha3Code', 'name'],\n },\n },\n },\n projectTask: {\n select: ['id', 'name', 'indent', 'leadTaskId', 'structNumber'],\n },\n account: {\n select: ['id', 'name'],\n expand: {\n type: { select: ['id', 'name', 'code'] },\n },\n },\n timeOffType: {\n select: ['id', 'name'],\n },\n mode: {\n select: ['id', 'name'],\n },\n department: {\n select: ['id', 'name'],\n },\n user: {\n select: ['id', 'name'],\n },\n legalEntity: {\n select: ['id', 'name'],\n },\n projectCostCenter: {\n select: ['id', 'name'],\n },\n },\n };\n\n public saving$ = new Subject();\n public state$ = new BehaviorSubject(CardState.Loading);\n\n public accounts$: Observable;\n\n public name$ = new BehaviorSubject('');\n\n private isLaborCostSubject = new BehaviorSubject(false);\n public isLaborCost$ = this.isLaborCostSubject.asObservable();\n private isTimeOffLaborCost = new BehaviorSubject(false);\n public isTimeOffLaborCost$ = this.isTimeOffLaborCost.asObservable();\n\n private isUserEditable = new BehaviorSubject(true);\n public isUserEditable$ = this.isUserEditable.asObservable();\n\n private financialAccountType = new BehaviorSubject(null);\n public financialAccountType$ = this.financialAccountType.asObservable();\n\n private entryMode = new BehaviorSubject(\n AccountingEntryMode.manual,\n );\n public entryMode$ = this.entryMode.asObservable();\n private projectCostCenters = new Subject();\n public projectCostCenters$ = this.projectCostCenters.asObservable();\n\n private isShownProjectCostCenter = new BehaviorSubject(false);\n public isShownProjectCostCenter$ =\n this.isShownProjectCostCenter.asObservable();\n\n public get closedPeriod(): Interval {\n return this._closedPeriod;\n }\n\n public get isLaborCost(): boolean {\n if (!this.form.value.account) {\n return false;\n }\n\n return FinancialAccount.laborCostIds.includes(this.form.value.account.id);\n }\n\n public get documentLink(): string {\n if (this.isLaborCost) {\n return 'timesheet';\n } else if (\n this.form.value.account?.type?.id === FinancialAccountType.revenue.id\n ) {\n return 'actOfAcceptance';\n } else if (\n this.form.value.account?.type?.id === FinancialAccountType.expenses.id\n ) {\n return 'expensesRequest';\n }\n }\n\n public get isTimeOff(): boolean {\n return (\n this.form.controls.account.value?.id === FinancialAccount.timeOffCostId\n );\n }\n\n private _closedPeriod: Interval;\n\n private _currencyCode: string;\n private _projectCurrency: Currency;\n private _baseCurrencyCode: string;\n private _isCustomCurrency = false;\n\n /** Component subscriptions cancel subject. */\n private destroyRef = inject(DestroyRef);\n private entityReloaded$ = new Subject();\n public modalClosed$ = new Subject();\n\n constructor(\n @Optional() @Inject('entityId') public entryId,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n public financialAccountsService: FinancialAccountsService,\n private data: DataService,\n private navigationService: NavigationService,\n private projectTasksService: ProjectTasksService,\n private datePipe: DatePipe,\n private message: MessageService,\n private actionService: ActionPanelService,\n private app: AppService,\n private currenciesService: CurrenciesService,\n ) {}\n\n public init(isModal = false): void {\n this.initSubscriptions();\n this._baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n this._currencyCode = this._baseCurrencyCode;\n\n if (this.entryId) {\n this.load();\n } else {\n this.initFormGroup(null, isModal);\n }\n }\n\n public save(): Promise {\n return new Promise((resolve, reject) => {\n const isLaborCost =\n this.form.value.account?.id === FinancialAccount.laborCostId;\n const isTimeOffLaborCost =\n this.form.value.account?.id === FinancialAccount.timeOffCostId;\n\n if (isLaborCost || isTimeOffLaborCost) {\n this.form.controls.user.addValidators(Validators.required);\n } else {\n this.form.controls.user.removeValidators(Validators.required);\n }\n if (isTimeOffLaborCost) {\n this.form.controls.project.patchValue(null, { emitEvent: false });\n this.form.controls.projectTask.patchValue(null, { emitEvent: false });\n this.form.controls.timeOffType.addValidators(Validators.required);\n this.form.controls.project.removeValidators(Validators.required);\n this.form.controls.projectTask.removeValidators(Validators.required);\n } else {\n this.form.controls.timeOffType.patchValue(null, { emitEvent: false });\n this.form.controls.timeOffType.removeValidators(Validators.required);\n this.form.controls.project.addValidators(Validators.required);\n this.form.controls.projectTask.addValidators(Validators.required);\n }\n this.form.controls.project.updateValueAndValidity({ emitEvent: false });\n this.form.controls.projectTask.updateValueAndValidity();\n this.form.controls.user.updateValueAndValidity();\n this.form.controls.timeOffType.updateValueAndValidity();\n\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n reject();\n return;\n }\n\n const formData = this.form.getRawValue();\n const entry = {\n accountId: formData.account.id,\n projectId: formData.project?.id || null,\n projectTaskId: formData.projectTask?.id || null,\n modeId: this.form.value.mode?.id ?? AccountingEntryMode.manual.id,\n documentId: formData.document?.id,\n documentDate: formData.documentDate ?? formData.date,\n description: formData.description,\n amount: formData.amount.value,\n amountBC: formData.amountBC?.value,\n date: formData.date,\n hours: formData.hours,\n costRate: formData.costRate,\n userId: formData.user?.id,\n departmentId: formData.department?.id || null,\n timeOffTypeId: formData.timeOffType?.id || null,\n id: this.entryId ?? Guid.generate(),\n legalEntityId: formData.legalEntity?.id || null,\n projectCostCenterId: formData.projectCostCenter?.id || null,\n };\n\n this.saving$.next(true);\n\n const collection = this.data.collection('AccountingEntries');\n const action = this.entryId\n ? collection.entity(this.entryId).update(entry)\n : collection.insert(entry);\n\n action.subscribe({\n next: () => {\n this.saving$.next(false);\n this.form.markAsPristine();\n this.notification.successLocal('finance.entries.card.messages.saved');\n resolve();\n },\n error: (error: Exception) => {\n this.saving$.next(false);\n reject();\n this.notification.error(error.message);\n },\n });\n });\n }\n\n /**\n * Reloads Card.\n * */\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n /**\n * Disposes service active resources.\n * */\n public dispose() {\n this.modalClosed$.next();\n this.entityReloaded$.next();\n }\n\n /**\n * Inits Service level subscriptions.\n * */\n private initSubscriptions() {\n this.form.controls.typeId.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const typeId = this.form.controls.typeId.value;\n\n this.accounts$ = this.financialAccountsService.accounts$.pipe(\n map((accounts) => accounts.filter((a) => a.type.id === typeId)),\n );\n\n if (!this.entryId) {\n this.name$.next(\n typeId === FinancialAccountType.expenses.id\n ? FinancialAccountType.expenses.name\n : FinancialAccountType.revenue.name,\n );\n }\n\n this.accounts$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((accounts) => {\n if (\n this.form.value.account &&\n accounts.some(\n (x) => x.id === this.form.controls.account?.value?.id,\n )\n )\n return;\n if (accounts.length === 1) {\n this.form.controls.account.setValue(accounts[0]);\n } else {\n this.form.controls.account.setValue(null);\n }\n });\n\n this.financialAccountType.next(typeId);\n });\n\n this.form.controls.user.valueChanges\n .pipe(\n switchMap((user) =>\n user\n ? this.data\n .collection('Users')\n .entity(user.id)\n .get({\n select: ['id'],\n expand: {\n legalEntity: { select: ['id', 'name'] },\n department: { select: ['id', 'name'] },\n },\n })\n : of(null),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((user) => {\n if (\n this.form.controls.legalEntity.value?.id === user?.legalEntity?.id &&\n this.form.controls.department.value?.id === user?.department?.id\n )\n return;\n this.form.controls.legalEntity.setValue(user?.legalEntity);\n this.form.controls.department.setValue(user?.department);\n this.form.controls.projectCostCenter.setValue(null, {\n emitEvent: false,\n });\n this.updateProjectCostCenters();\n });\n }\n\n /**\n * Loads Accounting entry.\n * */\n private load() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.state$.next(CardState.Loading);\n\n this.data\n .collection('AccountingEntries')\n .entity(this.entryId)\n .get(this.entityQuery)\n .subscribe({\n next: (entry: AccountingEntry) => {\n this.onEntityLoaded(entry);\n\n this.actionService.action('save').isShown = !this.readonly;\n this.propagateName();\n\n this.navigationService.addRouteSegment({\n id: entry.id,\n title: this.getName(),\n });\n\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state$.next(CardState.Error);\n },\n });\n }\n\n /** Gets dynamic card name. */\n private getName(): string {\n const typeId = this.form.controls.typeId.value;\n const type = FinancialAccountTypes.find((t) => t.id === typeId);\n\n const typeName = this.translate.instant(type.name);\n\n const projectName = this.form.controls.project.value?.name;\n let name = this.translate.instant('finance.entries.card.nameTemplate', {\n type: typeName,\n project: projectName,\n date: this.datePipe.transform(\n DateTime.fromISO(this.form.controls.date.value)?.toISODate(),\n 'shortDate',\n ),\n });\n if (!projectName) {\n const timeOffTypeName = this.form.controls.timeOffType?.value?.name;\n const userName = this.form.controls.user?.value?.name;\n name = this.translate.instant('finance.entries.card.timeOffTemplate', {\n type: typeName,\n date: this.datePipe.transform(\n DateTime.fromISO(this.form.controls.date.value)?.toISODate(),\n 'shortDate',\n ),\n timeOffType: timeOffTypeName,\n user: userName,\n });\n }\n\n return name;\n }\n\n private propagateName() {\n this.name$.next(this.getName());\n }\n\n /**\n * Accounting entry load event handler.\n *\n * @param entry Accounting entry.\n * */\n private onEntityLoaded(entry: AccountingEntry) {\n this.entityReloaded$.next();\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.initFormGroup(entry);\n }\n\n /**\n * Initializes Accounting entry form group.\n *\n * @param entry Accounting entry.\n * @param isModal Indicates whether Accounting entry group is created on Modal window or not.\n * */\n private initFormGroup(entry?: AccountingEntry, isModal = false) {\n this.form.controls.projectTask.disable();\n const destroySub = isModal ? this.modalClosed$ : this.entityReloaded$;\n\n if (entry) {\n this.form.controls.typeId.setValue(entry.account.type.id);\n this.form.controls.account.setValue({\n id: entry.account.id,\n name: entry.account.name,\n });\n this.form.patchValue(entry, { emitEvent: false });\n\n this.readonly = !entry.periodIsOpen || !entry.editAllowed;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly\n ? this.form.disable({ emitEvent: false })\n : this.form.enable({ emitEvent: false });\n\n this.refreshCurrencyCodes();\n\n if (\n !entry.timeOffTypeId &&\n entry.account.id !== FinancialAccount.laborCostId\n ) {\n this.form.controls.user.clearValidators();\n this.form.controls.timeOffType.clearValidators();\n this.form.updateValueAndValidity();\n }\n\n if (entry.mode.id === AccountingEntryMode.automatic.id) {\n this.isUserEditable.next(false);\n this.entryMode.next(AccountingEntryMode.automatic);\n } else {\n this.isUserEditable.next(true);\n this.entryMode.next(AccountingEntryMode.manual);\n }\n\n this.isTimeOffLaborCost.next(!!entry.timeOffTypeId);\n this.isLaborCostSubject.next(\n entry.account.id === FinancialAccount.laborCostId,\n );\n\n if (this.isTimeOff) {\n this._currencyCode = this._baseCurrencyCode;\n this._isCustomCurrency = false;\n }\n\n this.form.controls.amount.setValue({\n value: entry.amount,\n currencyCode: this._currencyCode,\n });\n\n this.form.controls.amountBC.setValue(entry.amountBC);\n\n this.form.controls.document.setValue({\n id: entry.documentId,\n name: entry.documentTitle,\n } as NamedEntity);\n\n this.updateProjectCostCenters();\n }\n\n this.form.controls.amount.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe(() => {\n this.setAmounts(false);\n });\n\n this.form.controls.account.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe((account) => {\n if (!account) {\n return;\n }\n\n this.isTimeOffLaborCost.next(\n account.id === FinancialAccount.timeOffCostId,\n );\n this.isLaborCostSubject.next(\n account.id === FinancialAccount.laborCostId,\n );\n\n this.form.controls.user.setValue(null, { emitEvent: false });\n this.form.controls.legalEntity.setValue(null, { emitEvent: false });\n this.form.controls.projectCostCenter.setValue(null, {\n emitEvent: false,\n });\n\n this.updateProjectCostCenters();\n this.refreshCurrencyCodes();\n this.refreshXr();\n });\n\n this.fetchClosedPeriod();\n\n this.form.controls.project.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe(() => {\n this.form.controls.projectTask.setValue(null);\n\n const projectId = this.form.controls.project.value?.id;\n if (projectId) {\n this.form.controls.projectTask.enable();\n this.projectTasksService\n .getProjectTasks(projectId)\n .subscribe((tasks) => {\n const mainTask = tasks.find((t) => !t.leadTaskId);\n this.form.controls.projectTask.setValue(mainTask);\n });\n } else {\n this.form.controls.projectTask.disable();\n }\n\n this.refreshCurrencyCodes();\n this.refreshXr();\n this.form.controls.projectCostCenter.setValue(null, {\n emitEvent: false,\n });\n this.updateProjectCostCenters();\n });\n\n if (this._isCustomCurrency) {\n this.refreshXr(false);\n }\n\n this.form.controls.date.valueChanges\n .pipe(takeUntil(destroySub))\n .subscribe((date) => {\n this.form.controls.documentDate.setValue(date);\n\n if (this._isCustomCurrency) {\n this.refreshXr();\n }\n });\n\n if (!this.entryId) {\n this.form.controls.typeId.setValue(FinancialAccountType.revenue.id);\n }\n }\n\n private fetchClosedPeriod() {\n this.data\n .collection('AccountingPeriods')\n .query({\n select: ['id', 'start', 'end'],\n filter: { isActive: false },\n orderBy: ['start', 'end'],\n })\n .subscribe({\n next: (periods: AccountingPeriod[]) => {\n if (!periods.length) {\n return;\n }\n const start = periods\n .map((p) => DateTime.fromISO(p.start))\n .reduce((curr, next) => (curr < next ? curr : next));\n const end = periods\n .map((p) => DateTime.fromISO(p.end))\n .reduce((curr, next) => (curr > next ? curr : next));\n this._closedPeriod = Interval.fromDateTimes(start, end);\n\n const currDate = DateTime.fromISO(this.form.value.date);\n if (this.isExcludedDate(currDate) && !this.readonly) {\n this.form.patchValue({ date: end.plus({ days: 1 }).toISODate() });\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n private isExcludedDate(date: DateTime): boolean {\n const currDate = date.toISODate();\n const periodStart = this._closedPeriod.start.toISODate();\n const periodEnd = this._closedPeriod.end.toISODate();\n return (\n (currDate > periodStart && currDate < periodEnd) ||\n currDate === periodStart ||\n currDate === periodEnd\n );\n }\n\n /**\n * Refreshes Currency codes.\n * */\n private refreshCurrencyCodes() {\n if (this.isTimeOff) {\n this._currencyCode = this._baseCurrencyCode;\n this._isCustomCurrency = false;\n } else {\n this._projectCurrency = this.form.controls.project.value?.currency;\n this._currencyCode =\n this._projectCurrency?.alpha3Code ?? this._baseCurrencyCode;\n this._isCustomCurrency = this._currencyCode !== this._baseCurrencyCode;\n }\n }\n\n /**\n * Refreshes Accounting entry with Currency Exchange rate by Accounting entry date.\n *\n * @param updateAmounts Indicates to update amount field values.\n * */\n private refreshXr(updateAmounts = true) {\n if (!this.form.controls.project.value?.id) {\n this.setXr(1, false);\n return;\n }\n if (!this._projectCurrency) {\n console.warn('Project Currency is not defined.');\n return;\n }\n this.currenciesService\n .getExchangeRate(\n this._projectCurrency.id,\n this.form.controls.date.value ?? DateTime.now().toISODate(),\n )\n .subscribe({\n next: (xr) => {\n this.setXr(xr, updateAmounts);\n },\n error: (error: Exception) => {\n this.setXr(1, updateAmounts);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Sets Accounting entry Exchange rate.\n *\n * @param xr New Exchange rate.\n * @param updateAmounts Indicates to update amount field values.\n * */\n private setXr(xr: number, updateAmounts = true) {\n this.form.controls.exchangeRate.setValue(xr, { emitEvent: false });\n if (updateAmounts) {\n this.setAmounts();\n }\n }\n\n private setAmounts(updateAmount = true) {\n const amount = this.form.controls.amount.value;\n if (updateAmount) {\n this.form.controls.amount.setValue(\n {\n value: amount?.value,\n currencyCode: this._currencyCode,\n },\n { emitEvent: false },\n );\n }\n\n const amountBC = this.isTimeOff\n ? amount?.value\n : amount?.value * this.form.controls.exchangeRate.value;\n this.form.controls.amountBC.setValue(amountBC);\n }\n\n private updateProjectCostCenters() {\n if (\n this.form.controls.legalEntity.value &&\n this.form.controls.project.value &&\n this.form.controls.user.value &&\n this.form.controls.account.value?.id !== FinancialAccount.timeOffCostId\n ) {\n this.isShownProjectCostCenter.next(true);\n } else {\n this.isShownProjectCostCenter.next(false);\n this.form.controls.projectCostCenter.setValue(null);\n return;\n }\n\n const query: any = {\n select: ['id', 'name'],\n filter: {\n projectId: {\n type: 'guid',\n value: this.form.controls.project.value.id,\n },\n legalEntityId: {\n type: 'guid',\n value: this.form.controls.legalEntity.value.id,\n },\n isActive: true,\n },\n };\n\n this.data\n .collection('ProjectCostCenters')\n .query(query)\n .subscribe((costCenters) => {\n this.projectCostCenters.next(costCenters);\n if (this.entryId) return;\n if (costCenters.length === 1) {\n this.form.controls.projectCostCenter.setValue(costCenters[0]);\n } else {\n this.form.controls.projectCostCenter.setValue(null);\n }\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AccountingEntryService } from '../core/accounting-entry.service';\n\n@Component({\n selector: 'wp-accounting-entry-creation',\n templateUrl: './accounting-entry-creation.component.html',\n providers: [AccountingEntryService],\n standalone: false,\n})\nexport class AccountingEntryCreationComponent implements OnInit {\n public isSaving = false;\n\n constructor(\n public service: AccountingEntryService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit(): void {\n this.service.init(true);\n }\n\n /**\n * Modal window close event handler.\n * */\n public ok() {\n this.service.save().then(\n () => {\n this.service.modalClosed$.next();\n this.activeModal.close('reload');\n },\n () => null,\n );\n }\n\n /**\n * Modal window cancel event handler.\n * */\n public cancel() {\n this.service.modalClosed$.next();\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ service.name$ | async | translate }}\n

    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { StateService } from '@uirouter/core';\nimport { Subject } from 'rxjs';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { AccountingEntryCreationComponent } from '../creation/accounting-entry-creation.component';\nimport { AccountingEntryFilterService } from './filter/accounting-entry-filter.service';\nimport { AccountingEntryService } from '../core/accounting-entry.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-operations-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: AccountingEntryFilterService },\n EntityListService,\n AccountingEntryService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class AccountingEntryListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'finance.entries.list.actions.create',\n isVisible: true,\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('accountingEntry', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'AccountingEntry',\n PermissionType.Modify,\n );\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create = () => {\n const ref = this.modalService.open(AccountingEntryCreationComponent);\n ref.result.then(\n (result) => {\n if (result === 'reload') {\n this.service.reload();\n }\n },\n () => null,\n );\n };\n}\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-accounting-entry-filter',\n templateUrl: './accounting-entry-filter.component.html',\n standalone: false,\n})\nexport class AccountingEntryComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: null,\n project: null,\n client: null,\n account: null,\n legalEntity: null,\n department: null,\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { AccountingEntryComponent as AccountingEntryComponent } from './accounting-entry-filter.component';\n\n@Injectable()\nexport class AccountingEntryFilterService extends FilterService {\n public override component: Type = AccountingEntryComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n\n public override placeholder = 'finance.entries.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => {\n const value = {\n period: null,\n project: null,\n client: null,\n account: null,\n legalEntity: null,\n department: null,\n };\n\n return value;\n };\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n { 'tolower(description)': { contains: text } },\n { \"cast(number, 'Edm.String')\": { contains: text } },\n ],\n });\n }\n\n if (this.values.account) {\n result.push({\n accountId: { type: 'guid', value: this.values.account.id },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.client) {\n result.push({\n project: {\n organizationId: { type: 'guid', value: this.values.client.id },\n },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n date: { le: { type: 'raw', value: dates.periodFinish } },\n });\n\n result.push({\n date: { ge: { type: 'raw', value: dates.periodStart } },\n });\n }\n\n if (this.values.legalEntity) {\n result.push({\n legalEntityId: { type: 'guid', value: this.values.legalEntity.id },\n });\n }\n\n if (this.values.department) {\n result.push({\n departmentId: { type: 'guid', value: this.values.department.id },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { Component } from '@angular/core';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { AccountingEntryService } from '../../core/accounting-entry.service';\nimport { AccountingEntryMode } from '../../../../shared/models/entities/finance/accounting-entry-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-accounting-entry-body',\n templateUrl: './accounting-entry-body.component.html',\n styleUrls: ['./accounting-entry-body.component.scss'],\n standalone: false,\n})\nexport class AccountingEntryBodyComponent {\n public routeMode = RouteMode;\n\n constructor(\n public service: AccountingEntryService,\n public navigationService: NavigationService,\n ) {}\n\n protected readonly accountingEntryMode = AccountingEntryMode;\n protected readonly financialAccountType = FinancialAccountType;\n}\n","
    \n
    \n
    \n \n
    \n\n
    \n \n\n \n
    \n
    \n
    \n\n \n
    \n \n \n
    \n\n \n
    \n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n \n @if (service.mode !== 'create') {\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n }\n\n \n @if (!(service.isTimeOffLaborCost$ | async)) {\n
    \n \n \n
    \n }\n\n \n @if (!(service.isTimeOffLaborCost$ | async)) {\n
    \n \n \n
    \n }\n\n \n @if (service.isTimeOffLaborCost$ | async) {\n
    \n \n \n
    \n }\n\n \n @if ((service.entryMode$ | async).code === accountingEntryMode.manual.code) {\n \n @if ((service.financialAccountType$ | async) === financialAccountType.expenses.id) {\n
    \n
    \n \n \n
    \n\n @if ((service.isLaborCost$ | async) || (service.isTimeOffLaborCost$ | async)) {\n
    \n \n \n
    \n }\n
    \n }\n
    \n }\n\n \n @if ((service.entryMode$ | async).code === accountingEntryMode.automatic.code) {\n \n @if ((service.financialAccountType$ | async) === financialAccountType.expenses.id) {\n
    \n
    \n \n \n
    \n\n @if ((service.isLaborCost$ | async) || (service.isTimeOffLaborCost$ | async)) {\n
    \n \n \n
    \n }\n\n @if ((service.isLaborCost$ | async) || (service.isTimeOffLaborCost$ | async)) {\n
    \n \n \n
    \n }\n
    \n }\n
    \n }\n\n \n @if ((service.financialAccountType$ | async) === financialAccountType.expenses.id) {\n
    \n \n \n
    \n }\n\n \n @if ((service.financialAccountType$ | async) === financialAccountType.expenses.id) {\n
    \n
    \n \n \n
    \n\n @if (service.isShownProjectCostCenter$ | async) {\n
    \n \n \n
    \n }\n
    \n }\n\n \n
    \n \n \n
    \n\n \n @if (service.mode !== 'create') {\n
    \n
    \n \n\n @if (service.form.value.document?.id) {\n {{ service.form.value.document?.name }}\n }\n\n @if (!service.form.value.document?.id) {\n

    \n {{ 'shared.noDisplayData' | translate }}\n

    \n }\n
    \n\n
    \n \n \n
    \n
    \n }\n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { AccountingPeriodListComponent } from './list/accounting-period-list.component';\nimport { ACCOUNTING_PERIOD_LIST } from 'src/app/shared/lists/accounting-period.list';\nimport { AccountingPeriodCreationComponent } from './creation/accounting-period-creation.component';\nimport { AccountingPeriodCardComponent } from './card/accounting-period-card.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n AccountingPeriodListComponent,\n AccountingPeriodCreationComponent,\n AccountingPeriodCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'accountingPeriods',\n url: '/accounting-periods?{navigation}',\n component: AccountingPeriodListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ACCOUNTING_PERIOD_LIST },\n ],\n },\n\n {\n name: 'accountingPeriod',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n keepMainActions: true,\n },\n url: '/accounting-periods/{entityId:guid}?{navigation}&{route}',\n component: AccountingPeriodCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class AccountingPeriodsModule {}\n","import {\n Component,\n OnInit,\n inject,\n DestroyRef,\n signal,\n ChangeDetectionStrategy,\n Inject,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { StateService } from '@uirouter/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AccountingPeriod } from 'src/app/shared/models/entities/finance/accounting-period.model';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { AppService } from 'src/app/core/app.service';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { DatePipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wp-accounting-period-card',\n templateUrl: './accounting-period-card.component.html',\n styleUrl: './accounting-period-card.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AccountingPeriodCardComponent implements OnInit {\n public readonly state = signal(CardState.Loading);\n public readonly isSaving = signal(false);\n public readonly name = signal('');\n public accountingPeriod: AccountingPeriod;\n public form: UntypedFormGroup = this.fb.group({\n start: [null, Validators.required],\n end: [null, Validators.required],\n isActive: [],\n });\n public readonly: boolean;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public readonly entityId: string,\n private readonly fb: UntypedFormBuilder,\n private readonly dataService: DataService,\n private readonly datePipe: DatePipe,\n private readonly appService: AppService,\n private readonly actionPanelService: ActionPanelService,\n private readonly stateService: StateService,\n private readonly messageService: MessageService,\n private readonly navigationService: NavigationService,\n private readonly translateService: TranslateService,\n private readonly notificationService: NotificationService,\n ) {\n this.actionPanelService.reset();\n this.actionPanelService.setAdditional([\n {\n title: 'finance.periods.card.actions.openEntries.title',\n hint: 'finance.periods.card.actions.openEntries.hint',\n name: 'openEntries',\n isBusy: false,\n isVisible: this.appService.checkAppAccess(AppName.Finance),\n handler: () => this.goToAccountingEntry(),\n },\n ]);\n\n this.actionPanelService.reload$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => this.load(),\n () => null,\n );\n }\n });\n }\n\n public ngOnInit(): void {\n FormHelper.controlDatePair(\n this.form,\n 'start',\n 'end',\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n }\n\n /** Saves accounting period data. */\n public save() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n this.actionPanelService.action('save').start();\n\n const period: AccountingPeriod = this.form.getRawValue();\n\n this.dataService\n .collection('AccountingPeriods')\n .entity(this.entityId)\n .patch(period)\n .subscribe({\n next: () => {\n Object.keys(period).forEach((key) => {\n this.accountingPeriod[key] = period[key];\n });\n this.setName();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.isSaving.set(false);\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'finance.periods.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Navigates to accounting entries of accounting period. */\n public goToAccountingEntry(): void {\n this.stateService.go(`accountingEntries`, {\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.name(),\n filter: [\n { date: { ge: { type: 'raw', value: this.accountingPeriod.start } } },\n { date: { le: { type: 'raw', value: this.accountingPeriod.end } } },\n ],\n }),\n });\n }\n\n /** Loads accounting period data. */\n private load() {\n this.state.set(CardState.Loading);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n select: ['start', 'end', 'name', 'isActive', 'editAllowed'],\n };\n\n this.dataService\n .collection('AccountingPeriods')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (period: AccountingPeriod) => {\n this.accountingPeriod = period;\n this.name.set(period.name);\n this.form.patchValue(period, { emitEvent: false });\n this.readonly = !period.editAllowed;\n if (this.readonly) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: period.name,\n });\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n this.state.set(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state.set(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n },\n });\n }\n\n /** Sets new period name. */\n private setName(): void {\n const period = this.translateService.instant(\n 'components.accountingPeriodCardComponent.props.period',\n );\n const start = this.datePipe.transform(\n this.accountingPeriod.start,\n 'shortDate',\n );\n const end = this.datePipe.transform(this.accountingPeriod.end, 'shortDate');\n\n this.accountingPeriod.name = `${period} ${start}—${end}`;\n this.name.set(this.accountingPeriod.name);\n }\n}\n","\n\n\n\n\n@if (state() === 'Ready') {\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n
    \n }\n
    \n}\n","import { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { DateTime } from 'luxon';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-accounting-period',\n templateUrl: './accounting-period-creation.component.html',\n standalone: false,\n})\nexport class AccountingPeriodCreationComponent implements OnInit {\n public isSaving = false;\n public form: UntypedFormGroup = this.fb.group({\n start: [DateTime.now().startOf('month').toISODate(), Validators.required],\n end: [DateTime.now().endOf('month').toISODate(), Validators.required],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('AccountingPeriods')\n .insert({ ...data, name: 'period' })\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'finance.periods.creation.messages.created',\n );\n this.state.go('accountingPeriod', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n FormHelper.controlDatePair(\n this.form,\n 'start',\n 'end',\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","
    \n
    \n

    {{ 'finance.periods.creation.header' | translate }}

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { AccountingPeriodCreationComponent } from '../creation/accounting-period-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-accounting-period-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class AccountingPeriodListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'finance.periods.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'AccountingPeriod',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('accountingPeriod', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'AccountingPeriod',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n const ref = this.modalService.open(AccountingPeriodCreationComponent);\n ref.result.then(\n (result) => {\n if (result === 'reload') {\n this.service.reload();\n }\n },\n () => null,\n );\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { AccountingEntriesModule } from './accounting-entries/accounting-entries.module';\nimport { AccountingPeriodsModule } from './accounting-periods/accounting-period.module';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n AccountingEntriesModule,\n AccountingPeriodsModule,\n ],\n})\nexport class FinanceModule {}\n","import { Component, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { PnlService } from 'src/app/shared-features/pnl/pnl.service';\n\n@Component({\n selector: 'tmt-general-pnl',\n templateUrl: './general-pnl.component.html',\n providers: [PnlService],\n standalone: false,\n})\nexport class GeneralPnlComponent implements OnDestroy {\n destroyed$ = new Subject();\n\n constructor(\n public navigation: NavigationService,\n pnlService: PnlService,\n actions: ActionPanelService,\n ) {\n actions.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n pnlService.reload();\n });\n }\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { GeneralPnlComponent } from './general-pnl.component';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\n\n@NgModule({\n declarations: [GeneralPnlComponent],\n\n imports: [\n CommonModule,\n SharedModule,\n PnlModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'pnl',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'analytics.pnl',\n routeMode: null,\n },\n url: '/pnl?{navigation}&{route}',\n component: GeneralPnlComponent,\n },\n ],\n }),\n ],\n})\nexport class GeneralPnlModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { InteractionListComponent } from 'src/app/interactions/list/interaction-list.component';\nimport { INTERACTIONS_LIST } from 'src/app/shared/lists/interactions.list';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { InteractionListFilterComponent } from 'src/app/interactions/list/interaction-list-filter/interaction-list-filter.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\n@NgModule({\n declarations: [InteractionListComponent, InteractionListFilterComponent],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'interactions',\n url: '/interactions/{view:viewName}?{navigation}&{route}',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'clients.interactions',\n routeMode: null,\n view: null,\n },\n component: InteractionListComponent,\n\n resolve: [\n { provide: LIST, useValue: INTERACTIONS_LIST },\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'interaction',\n } as MassOperationParameters,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class InteractionsModule {}\n","import {\n Component,\n Input,\n Inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-interaction-list-filter',\n templateUrl: './interaction-list-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InteractionListFilterComponent implements FilterDetails {\n @Input() public values: any;\n\n public detailsForm = this.fb.group({\n period: null,\n performer: null,\n organization: null,\n deal: null,\n interactionContact: null,\n });\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public readonly filterService: FilterService,\n private readonly fb: UntypedFormBuilder,\n ) {\n this.filterService.resetValues$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { InteractionListFilterComponent } from 'src/app/interactions/list/interaction-list-filter/interaction-list-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class InteractionListFilterService extends FilterService {\n public override component: Type =\n InteractionListFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = this.viewName === 'all';\n public override placeholder =\n 'components.interactionsListFilterService.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n {\n code: 'onlyPlanned',\n local: 'components.interactionsListFilterService.filter.onlyPlanned',\n },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n };\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push(\n this.getTextFilter(\n ['deal/name', 'organization/name'],\n this.getClearText(text),\n ),\n );\n\n result[0].or.push({\n interactionContacts: {\n any: {\n contact: { 'tolower(name)': { contains: text } },\n },\n },\n });\n }\n\n if (this.values.performer) {\n result.push({\n performerId: { type: 'guid', value: this.values.performer.id },\n });\n }\n\n if (this.values.interactionContact) {\n result.push({\n interactionContacts: {\n any: {\n contactId: {\n type: 'guid',\n value: this.values.interactionContact.id,\n },\n },\n },\n });\n }\n\n if (this.values.organization) {\n result.push({\n organizationId: {\n type: 'guid',\n value: this.values.organization.id,\n },\n });\n }\n\n if (this.values.deal) {\n result.push({\n dealId: {\n type: 'guid',\n value: this.values.deal.id,\n },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n true,\n );\n\n result.push({\n date: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n date: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'onlyPlanned' &&\n this.hasViewSelector\n ) {\n result.push({ isPlanned: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n period: null,\n performer: null,\n organization: null,\n deal: null,\n interactionContact: null,\n view: this.views[0],\n };\n }\n}\n","import { Component, DestroyRef, inject, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { InteractionListFilterService } from 'src/app/interactions/list/interaction-list-filter/interaction-list-filter.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { InteractionModalComponent } from 'src/app/shared/modules/interactions/interaction-modal/interaction-modal.component';\nimport { StateService } from '@uirouter/core';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Interaction } from 'src/app/shared/modules/interactions/models/interaction.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\n\n@Component({\n selector: 'tmt-interaction-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: InteractionListFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class InteractionListComponent implements OnInit {\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly gridService = inject(GridService);\n private readonly entityListService = inject(EntityListService);\n private readonly navigationService = inject(NavigationService);\n private readonly modal = inject(NgbModal);\n private readonly stateService = inject(StateService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n const menuActions: MenuAction[] = [\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.interactionListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Interaction',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('interaction', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ];\n\n if (\n this.appService.checkEntityPermission(\n 'Interaction',\n PermissionType.Modify,\n )\n ) {\n menuActions.push(\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n );\n }\n\n this.actionPanelService.set(menuActions);\n\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groups: UntypedFormGroup[]) => {\n this.actionPanelService.action('card').isShown = groups?.length === 1;\n });\n }\n\n private create(): void {\n this.modal.open(InteractionModalComponent, { size: 'xxl' }).result.then(\n (entity: Interaction) => {\n this.stateService.go('interaction', {\n entityId: entity.id,\n routeMode: RouteMode.continue,\n navigation:\n this.navigationService.selectedNavigationItem?.name ??\n 'clients.allInteractions',\n });\n },\n () => null,\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Issue } from 'src/app/issues/models/issue.model';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\n\n@Component({\n selector: 'tmt-changing-issue-type-modal',\n templateUrl: './changing-issue-type-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ChangingIssueTypeModalComponent implements OnInit {\n @Input() issue: Issue;\n\n public form = this.fb.group({\n type: [null, Validators.required],\n });\n public isSaving = signal(false);\n public types$: Observable;\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n ) {}\n\n public ngOnInit(): void {\n this.types$ = this.dataService\n .collection('IssueTypes')\n .function('GetEditableTypes')\n .query(null, {\n select: ['id', 'name', 'iconClass'],\n filter: {\n id: {\n ne: { type: 'guid', value: this.issue.type.id },\n },\n isActive: true,\n },\n });\n }\n\n /** Changes issue type. */\n public changeType(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n this.dataService\n .collection('Issues')\n .entity(this.issue.id)\n .action('SetType')\n .execute({\n typeId: this.form.value.type.id,\n })\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.changingIssueTypeModalComponent.messages.issueTypeWasChanged',\n );\n this.isSaving.set(false);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /** Closes modal. */\n public closeModal(): void {\n this.activeModal.dismiss();\n }\n}\n","
    \n
    \n

    \n {{ 'components.changingIssueTypeModalComponent.groups.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n

    {{ issue.type.name }}

    \n
    \n\n
    \n \n \n \n \n \n\n \n \n {{ data.name }}\n \n \n
    \n
    \n\n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n Injector,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ElementRef,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { IssueCardService } from 'src/app/issues/card/issue-card.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { tap } from 'rxjs';\nimport { FormHeaderService } from 'src/app/shared/components/chrome/form-header2/form-header.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { IssueCardSettings } from 'src/app/issues/models/issue.settings';\nimport { UpdatableSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-issue-card',\n templateUrl: './issue-card.component.html',\n styleUrls: ['./issue-card.component.scss'],\n providers: [\n { provide: META_ENTITY_TYPE, useValue: 'Issue' },\n LifecycleService,\n IssueCardService,\n SavingQueueService,\n FormHeaderService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueCardComponent implements OnInit {\n @Input() public entityId: string;\n\n public activeTab: string;\n public settings: IssueCardSettings;\n public isInOffCanvas: boolean;\n public readonly commentedEntityCollectionType = CommentedEntityCollectionType;\n public readonly entityType = inject(META_ENTITY_TYPE);\n /**\n * Saves issue name.\n *\n * @param name issue name.\n */\n public saveName = (name: string) =>\n this.dataService\n .collection('Issues')\n .entity(this.entityId)\n .patch({ name })\n .pipe(\n tap(() => {\n this.issueCardService.issueForm\n .get('name')\n .setValue(name, { emitEvent: false });\n this.offCanvasService.onEntityUpdated({ id: this.entityId, name });\n this.cdr.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public issueCardService: IssueCardService,\n public appService: AppService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private dataService: DataService,\n private cdr: ChangeDetectorRef,\n private offCanvasService: OffCanvasService,\n private localConfigService: LocalConfigService,\n ) {\n this.isInOffCanvas = this.offCanvasService.isEntryEqualComponent(this);\n }\n\n public ngOnInit(): void {\n this.settings = Object.assign(\n {},\n this.localConfigService.getConfig(IssueCardSettings),\n );\n\n if (!this.isInOffCanvas) {\n this.settings.parametersCollapsed = false;\n }\n\n this.issueCardService.load();\n }\n\n /**\n * Opens created by user info.\n *\n * @param target target element for info popup service.\n */\n public openCreatedByUserInfo(target: ElementRef): void {\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId: this.issueCardService.issue.createdBy.id,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Updates issue card settings.\n *\n * @param key setting's property.\n * @param value\n */\n public updateSettings(\n key: UpdatableSettings,\n value: boolean,\n ): void {\n if (this.isInOffCanvas) {\n this.settings[key] = value;\n this.localConfigService.setConfig(IssueCardSettings, this.settings);\n }\n }\n\n /**\n * Sets mentioned users ids form value.\n *\n * @param userIds users ids array.\n */\n public onMentionIds(userIds: string[]): void {\n userIds.forEach((id) => {\n if (!this.issueCardService.formValue.mentionedUserIds.includes(id)) {\n this.issueCardService.issueForm\n .get('mentionedUserIds')\n .setValue([...this.issueCardService.formValue.mentionedUserIds, id], {\n emitEvent: false,\n });\n this.issueCardService.isUpdateFollowers = true;\n }\n });\n }\n}\n","\n\n\n\n@if ((issueCardService.state$ | async) === 'Ready') {\n \n\n
    \n
    \n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n {{\n issueCardService.issue?.created | date: 'short' : this.appService.session.timeZoneOffset\n }}\n
    \n
    \n\n
    \n \n\n
    \n \n {{ issueCardService.issue.createdBy?.name }}\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n
    \n \n
    \n \n
    \n @if ((issueCardService.issue$ | async).type.iconClass) {\n \n }\n\n {{ (issueCardService.issue$ | async).type.name }}\n
    \n
    \n\n @if ((issueCardService.issue$ | async)?.resolution) {\n
    \n \n
    \n {{ (issueCardService.issue$ | async).resolution.name }}\n
    \n
    \n }\n\n @if ((issueCardService.issue$ | async)?.resolution) {\n
    \n \n
    \n @if ((issueCardService.issue$ | async).resolutionComment) {\n {{ (issueCardService.issue$ | async).resolutionComment }}\n } @else {\n \n {{ 'shared.valueNotSelected' | translate }}\n \n }\n
    \n
    \n }\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n
    \n
    \n
    \n \n\n \n
    \n}\n","import {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n OnDestroy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport _ from 'lodash';\nimport { BehaviorSubject, delay, merge, tap } from 'rxjs';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\nimport { Issue, IssueFollower } from 'src/app/issues/models/issue.model';\nimport { ChangingIssueTypeModalComponent } from 'src/app/issues/card/changing-issue-type-modal/changing-issue-type-modal.component';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Injectable()\nexport class IssueCardService implements OnDestroy {\n public state$ = new BehaviorSubject(null);\n public issue$ = new BehaviorSubject(null);\n public isUpdateFollowers = false;\n public isEditorOpened = false;\n public isCommentOpened = false;\n public issueForm: FormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formTextMaxLength)],\n ],\n description: '',\n assigned: null,\n resolution: null,\n resolutionComment: '',\n modified: null,\n modifiedBy: null,\n priority: [null, Validators.required],\n initiator: [null, Validators.required],\n project: null,\n projectTask: null,\n dueDate: null,\n followers: null,\n isActive: false,\n mentionedUserIds: [],\n });\n public readonly actionPanelService: ActionPanelService;\n\n private query = {\n select: [\n 'id',\n 'code',\n 'name',\n 'created',\n 'editAllowed',\n 'typeId',\n 'assignedId',\n 'resolutionComment',\n 'modified',\n 'isActive',\n 'description',\n 'dueDate',\n 'mentionedUserIds',\n ],\n expand: [\n { createdBy: { select: 'id, name' } },\n { assigned: { select: ['id', 'name'] } },\n { type: { select: ['id', 'name', 'iconClass'] } },\n { resolution: { select: 'id, name' } },\n { modifiedBy: { select: ['id', 'name'] } },\n { project: { select: 'id, name' } },\n { projectTask: { select: ['id', 'name'] } },\n { priority: { select: ['id', 'name'] } },\n { initiator: { select: ['id', 'name'] } },\n { state: { select: ['id', 'name'] } },\n {\n followers: {\n select: ['id'],\n expand: { follower: { select: ['id', 'name'] } },\n },\n },\n ],\n };\n private destroyRef = inject(DestroyRef);\n // NOTE: works only with Navigation properties.\n private readonly indicatorTrigger = ['assigned', 'initiator'];\n\n public get issue(): Issue {\n return this.issue$.getValue();\n }\n\n public get formValue(): any {\n return this.issueForm.getRawValue();\n }\n\n public get projectTaskControl(): AbstractControl {\n return this.issueForm.get('projectTask');\n }\n\n public get projectControl(): AbstractControl {\n return this.issueForm.get('project');\n }\n\n constructor(\n @Inject('entityId') public issueId: string,\n private fb: FormBuilder,\n private lifecycleService: LifecycleService,\n private dataService: DataService,\n private navigationService: NavigationService,\n private notificationService: NotificationService,\n private savingQueueService: SavingQueueService,\n private customFieldService: CustomFieldService,\n private offCanvasService: OffCanvasService,\n private messageService: MessageService,\n private modalService: NgbModal,\n rootActionPanelService: ActionPanelService,\n ) {\n this.actionPanelService = this.offCanvasService.offCanvasEntry\n ? offCanvasService.offCanvasActionPanelService\n : rootActionPanelService;\n\n this.actionPanelService.reload$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.issueForm.dirty || this.isEditorOpened) {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => this.reload(),\n () => null,\n );\n } else {\n this.reload();\n }\n });\n\n merge(this.lifecycleService.reload$, this.savingQueueService.error$)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.reload());\n\n this.customFieldService.enrichFormGroup(this.issueForm, 'Issue', true);\n\n this.issueForm.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.save());\n\n this.projectControl.valueChanges\n .pipe(\n delay(Constants.mainFormControlChangedDelayTime),\n takeUntilDestroyed(),\n )\n .subscribe((value) => {\n if (!value) {\n this.projectTaskControl.setValue(null, { emitEvent: false });\n this.projectTaskControl.disable({ emitEvent: false });\n } else {\n this.projectTaskControl.enable({ emitEvent: false });\n }\n });\n\n this.savingQueueService.save$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.issueForm.markAsPristine();\n\n if (this.issue) {\n this.offCanvasService.onEntityUpdated({\n ...this.formValue,\n id: this.issueId,\n });\n }\n });\n\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntilDestroyed())\n .subscribe((info) => {\n if (this.issue) {\n this.offCanvasService.onEntityUpdated({\n ...this.formValue,\n id: this.issueId,\n changedStateId:\n info.currentState.id !== this.issue.state.id\n ? info.currentState.id\n : null,\n });\n }\n });\n\n if (this.offCanvasService.offCanvasEntry) {\n this.offCanvasService.offCanvasEntry.onClose = () => {\n if (this.isEditorOpened || this.isCommentOpened) {\n return this.messageService.confirmLocal('shared.leavePageMessage');\n } else {\n return Promise.resolve();\n }\n };\n }\n }\n\n public ngOnDestroy(): void {\n this.savingQueueService.save().then(() => {\n if (this.issue) {\n this.offCanvasService.onEntityUpdated({\n ...this.formValue,\n id: this.issueId,\n });\n }\n });\n }\n\n /** Loads issue. */\n public load(): void {\n this.state$.next(CardState.Loading);\n this.issueForm.markAsPristine();\n this.issueForm.markAsUntouched();\n this.actionPanelService.resetLifecycle();\n this.customFieldService.enrichQuery(this.query, 'Issue');\n\n this.dataService\n .collection('Issues')\n .entity(this.issueId)\n .get(this.query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (issue) => {\n this.issue$.next(issue);\n this.issueForm.patchValue(\n { ...issue, followers: issue.followers?.map((el) => el.follower) },\n { emitEvent: false },\n );\n\n if (issue.editAllowed) {\n this.issueForm.enable({ emitEvent: false });\n this.disableResolutionFields();\n this.toggleProjectFields();\n } else {\n this.issueForm.disable({ emitEvent: false });\n }\n\n if (!this.offCanvasService.offCanvasEntry) {\n this.navigationService.addRouteSegment({\n id: issue.id,\n title: issue.name,\n });\n }\n\n this.actionPanelService.setHasAutosave(true);\n this.actionPanelService.setAdditional([\n {\n title: 'components.issueCardComponent.actions.changeType',\n hint: 'components.issueCardComponent.actions.changeType',\n name: 'openChangeTypeModal',\n isBusy: false,\n isVisible: issue.editAllowed,\n handler: () => this.openChangeTypeModal(),\n },\n ]);\n\n this.issue$.next(issue);\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n },\n });\n }\n\n /** Saves issue. */\n public save(): void {\n if (this.issueForm.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n const followers: Partial[] = [];\n this.formValue.followers?.forEach((follower: IssueFollower) => {\n followers.push({\n followerId: follower.id,\n });\n });\n const issue: Partial = {\n description: this.formValue.description ?? '',\n assignedId: this.formValue.assigned?.id ?? null,\n projectId: this.formValue.project?.id ?? null,\n projectTaskId: this.formValue.project?.id\n ? (this.formValue.projectTask?.id ?? null)\n : null,\n priorityId: this.formValue.priority?.id ?? null,\n initiatorId: this.formValue.initiator?.id ?? null,\n dueDate: this.formValue.dueDate ?? null,\n followers,\n mentionedUserIds: this.formValue.mentionedUserIds,\n };\n this.customFieldService.assignValues(issue, this.formValue, 'Issue');\n\n this.savingQueueService.addToQueue(\n this.issueId,\n this.dataService\n .collection('Issues')\n .entity(this.issueId)\n .patch(issue)\n .pipe(\n tap(() => {\n for (const key of this.indicatorTrigger) {\n if (this.issue[key]?.id !== this.formValue[key]?.id) {\n this.navigationService.updateIndicators();\n break;\n }\n }\n\n if (this.isUpdateFollowers) {\n this.updateFollowers();\n }\n\n this.issueForm.markAsPristine();\n this.issue$.next(_.merge(this.issue, this.formValue));\n }),\n ),\n );\n }\n\n /** Reloads page. */\n public reload(): void {\n this.savingQueueService.save().then(\n () => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n private toggleProjectFields(): void {\n if (!this.issue.editAllowed) {\n this.projectControl.disable({ emitEvent: false });\n this.projectTaskControl.disable({ emitEvent: false });\n\n return;\n }\n\n if (this.projectControl.getRawValue()) {\n this.projectTaskControl.enable({ emitEvent: false });\n } else {\n this.projectTaskControl.disable({ emitEvent: false });\n }\n }\n\n private openChangeTypeModal(): void {\n const modalRef = this.modalService.open(ChangingIssueTypeModalComponent);\n modalRef.componentInstance.issue = this.issue;\n\n modalRef.result.then(\n () => {\n this.reload();\n },\n () => null,\n );\n }\n\n /** Disables resolution fields. */\n private disableResolutionFields(): void {\n this.issueForm.get('resolution').disable({ emitEvent: false });\n this.issueForm.get('resolutionComment').disable({ emitEvent: false });\n }\n\n /** Updates followers value. */\n private updateFollowers(): void {\n this.dataService\n .collection('Issues')\n .entity(this.issueId)\n .get({\n select: ['id'],\n expand: [\n {\n followers: {\n select: ['id'],\n expand: { follower: { select: ['id', 'name'] } },\n },\n },\n ],\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (issue: Issue) => {\n const followers: Partial[] = [];\n issue.followers?.forEach((el) => followers.push(el.follower));\n this.issueForm\n .get('followers')\n .setValue(followers, { emitEvent: false });\n this.isUpdateFollowers = false;\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\n\n@Component({\n selector: 'tmt-issue-creation',\n templateUrl: './issue-creation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueCreationComponent implements OnInit {\n @Input() openCardAfterCreation = true;\n\n public issueForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n typeId: ['', Validators.required],\n });\n public types$ = new BehaviorSubject[]>([]);\n public isSaving = signal(false);\n public isLoading = signal(true);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n private navigationService: NavigationService,\n ) {\n this.customFieldService.enrichFormGroup(this.issueForm, 'Issue', true);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.issueForm,\n 'Issue',\n );\n }\n\n public async ngOnInit(): Promise {\n const types = await firstValueFrom(\n this.dataService\n .collection('IssueTypes')\n .function('GetEditableTypes')\n .query[]>(null, {\n select: ['id', 'name', 'isDefault', 'iconClass'],\n filter: { isActive: true },\n }),\n );\n\n this.isLoading.set(false);\n this.types$.next(types);\n this.issueForm.patchValue({\n typeId: types.find((type) => type.isDefault)?.id,\n });\n }\n\n /* Creates competence. */\n public create(): void {\n this.issueForm.markAllAsTouched();\n\n if (this.issueForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n const data = this.issueForm.value;\n this.customFieldService.assignValues(\n data,\n this.issueForm.getRawValue(),\n 'Issue',\n );\n\n this.dataService\n .collection('Issues')\n .insert(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'components.issueCreationComponent.messages.created',\n );\n this.activeModal.close(response.id);\n this.navigationService.updateIndicators();\n\n if (this.openCardAfterCreation) {\n this.isSaving.set(false);\n this.stateService.go('issue', {\n entityId: response.id,\n });\n }\n },\n error: (error) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /* Closes issue creating modal. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n}\n","@if (isLoading()) {\n \n} @else {\n
    \n
    \n

    \n {{ 'components.issueCreationComponent.props.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n \n \n \n\n \n \n {{ data.name }}\n \n \n
    \n
    \n\n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport {\n META_ENTITY_TYPE,\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { IssueListComponent } from 'src/app/issues/list/issue-list.component';\nimport { IssueCardComponent } from 'src/app/issues/card/issue-card.component';\nimport { IssueFilterComponent } from 'src/app/issues/list/filter/issue-filter.component';\nimport { ISSUE_LIST } from 'src/app/issues/models/issue.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { IssueCreationComponent } from 'src/app/issues/creation/issue-creation.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { RichEditorBoxComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box.component';\nimport { FileBoxComponent } from 'src/app/shared/components/controls/file-box/file-box.component';\nimport { ChangingIssueTypeModalComponent } from 'src/app/issues/card/changing-issue-type-modal/changing-issue-type-modal.component';\nimport { WorkLogComponent } from 'src/app/work-log/work-log.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\n\n@NgModule({\n declarations: [\n IssueListComponent,\n IssueCardComponent,\n IssueCreationComponent,\n IssueFilterComponent,\n ChangingIssueTypeModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n CommentsModule,\n BaseSharedModule,\n EntityListComponent,\n RichEditorBoxComponent,\n FileBoxComponent,\n WorkLogComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'issues',\n url: '/issues/{view:viewName}?{navigation}&{route}',\n params: {},\n component: IssueListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: ISSUE_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n { provide: META_ENTITY_TYPE, useValue: 'Issue' },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'issue',\n } as MassOperationParameters,\n },\n ],\n },\n {\n name: 'issue',\n params: {\n routeMode: null,\n navigation: 'my.allIssues',\n route: ROUTE_DEFAULT_PARAMS,\n },\n url: '/issues/{entityId:guid}?{navigation}&{route}',\n component: IssueCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class IssuesModule {}\n","import {\n Component,\n OnInit,\n Input,\n Inject,\n ChangeDetectionStrategy,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-issue-filter',\n templateUrl: './issue-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueFilterComponent implements OnInit, FilterDetails {\n @Input() public values: any;\n\n public detailsForm = this.fb.group({\n created: null,\n type: null,\n priority: null,\n assigned: null,\n dueDate: null,\n resolution: null,\n project: null,\n initiator: null,\n states: null,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public filterService: FilterService,\n @Inject(VIEW_NAME) public viewName: string,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.filterService.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { IssueFilterComponent } from 'src/app/issues/list/filter/issue-filter.component';\n\n@Injectable()\nexport class IssueFilterService extends FilterService {\n public override component: Type = IssueFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = true;\n public override placeholder =\n 'components.issueListComponent.filters.textInput';\n public override detailAreaStyles = { width: '1000px' };\n\n protected override getDefaultValues = (): any => ({\n text: null,\n created: null,\n dueDate: null,\n type: null,\n assigned: null,\n states: null,\n priority: null,\n resolution: null,\n project: null,\n initiator: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n const text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n result.push(\n this.getTextFilter(['name', 'code'], this.getClearText(text)),\n );\n }\n\n if (this.values.created) {\n const { periodStart, periodFinish } =\n this.dateService.getDatePairFromPeriodForFilter(\n this.values.created,\n true,\n );\n\n result.push({\n created: { ge: { type: 'raw', value: periodStart } },\n });\n\n result.push({\n created: { le: { type: 'raw', value: periodFinish } },\n });\n }\n\n if (this.values.dueDate) {\n const { periodStart, periodFinish } =\n this.dateService.getDatePairFromPeriodForFilter(this.values.dueDate);\n\n result.push({\n dueDate: { ge: { type: 'raw', value: periodStart } },\n });\n\n result.push({\n dueDate: { le: { type: 'raw', value: periodFinish } },\n });\n }\n\n if (this.values.type) {\n result.push({\n typeId: { type: 'guid', value: this.values.type.id },\n });\n }\n\n if (this.values.assigned) {\n result.push({\n assignedId: { type: 'guid', value: this.values.assigned.id },\n });\n }\n\n if (this.values.priority) {\n result.push({\n priorityId: { type: 'guid', value: this.values.priority.id },\n });\n }\n\n if (this.values.resolution) {\n result.push({\n resolutionId: { type: 'guid', value: this.values.resolution.id },\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.initiator) {\n result.push({\n initiatorId: { type: 'guid', value: this.values.initiator.id },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { IssueFilterService } from 'src/app/issues/list/filter/issue-filter.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { IssueCreationComponent } from 'src/app/issues/creation/issue-creation.component';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\n\n@Component({\n selector: 'tmt-issue-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: IssueFilterService },\n LifecycleListService,\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private gridService: GridService,\n private stateService: StateService,\n private actionPanelService: ActionPanelService,\n private appService: AppService,\n private entityListService: EntityListService,\n private modalService: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.issueListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Issue',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('issue', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((rows: any) => {\n this.actionPanelService.action('card').isShown = rows?.length === 1;\n });\n }\n\n /* Opens issue creation modal. */\n private create(): void {\n this.modalService.open(IssueCreationComponent);\n }\n}\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { ViewColumn } from 'src/app/shared/models/inner/view';\n\nconst defaultViewColumns: ViewColumn[] = [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'initiator',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'assigned',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'dueDate',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'priority',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'projectTask',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'resolution',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'resolutionComment',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n];\n\nexport const ISSUE_LIST: List = {\n version: 3,\n name: 'issues',\n dataCollection: 'Issues',\n customFieldEntityType: 'Issue',\n views: [\n {\n name: 'all',\n columns: defaultViewColumns,\n order: { column: 'name', reverse: false },\n },\n {\n name: 'my',\n columns: defaultViewColumns,\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n initiatorId: { type: 'guid', value: '#user' },\n isActive: true,\n },\n ],\n },\n {\n name: 'assigned',\n columns: defaultViewColumns,\n contextFilter: [\n {\n assignedId: { type: 'guid', value: '#user' },\n isActive: true,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'issue',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n },\n {\n name: 'code',\n type: GridColumnType.String,\n header: 'shared2.props.code',\n hint: 'shared2.props.code',\n },\n {\n name: 'type',\n header: 'shared2.props.type',\n hint: 'shared2.props.type',\n type: GridColumnType.Entity,\n },\n {\n name: 'project',\n header: 'shared2.props.project',\n hint: 'shared2.props.project',\n type: GridColumnType.Entity,\n },\n {\n name: 'projectTask',\n header: 'shared2.props.projectTask',\n hint: 'shared2.props.projectTask',\n type: GridColumnType.Entity,\n },\n {\n name: 'resolution',\n header: 'components.issueListComponent.columns.resolution',\n hint: 'components.issueListComponent.columns.resolution',\n type: GridColumnType.Entity,\n },\n {\n name: 'resolutionComment',\n header: 'components.issueListComponent.columns.resolutionComment',\n hint: 'components.issueListComponent.columns.resolutionComment',\n type: GridColumnType.String,\n },\n {\n name: 'type',\n header: 'shared2.props.type',\n hint: 'shared2.type',\n type: GridColumnType.Entity,\n },\n {\n name: 'assigned',\n header: 'shared2.props.assigned',\n hint: 'shared2.props.assigned',\n type: GridColumnType.User,\n },\n {\n name: 'initiator',\n header: 'components.issueListComponent.columns.initiator',\n hint: 'components.issueListComponent.columns.initiator',\n type: GridColumnType.Entity,\n },\n {\n name: 'state',\n header: 'shared2.props.state',\n hint: 'shared2.props.state',\n type: GridColumnType.State,\n },\n {\n name: 'dueDate',\n header: 'components.issueListComponent.columns.dueDate',\n hint: 'components.issueListComponent.columns.dueDate',\n type: GridColumnType.Date,\n fixedWidth: true,\n },\n {\n name: 'priority',\n header: 'components.issueListComponent.columns.priority',\n hint: 'components.issueListComponent.columns.priority',\n type: GridColumnType.Entity,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dueDate',\n field: 'dueDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'type',\n field: ['type.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'assigned',\n field: ['assigned.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'initiator',\n field: ['initiator.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolution',\n field: ['resolution.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolutionComment',\n field: 'resolutionComment',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'priority',\n field: ['priority.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'project',\n field: ['project.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'projectTask',\n field: ['projectTask.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class IssueCardSettings implements BaseSettings {\n public readonly name = 'IssueCardSettings';\n public version: number;\n public parametersCollapsed: boolean;\n\n public getDefault(): IssueCardSettings {\n return {\n version: 1,\n parametersCollapsed: false,\n } as IssueCardSettings;\n }\n}\n","import { Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ProgramCardService } from './program-card.service';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Program } from 'src/app/shared/models/entities/projects/program.model';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CoManagersModalComponent } from 'src/app/shared/components/co-managers-modal/co-managers-modal.component';\n\n@Component({\n selector: 'wp-program-card',\n templateUrl: './program-card.component.html',\n styleUrls: ['./program-card.component.scss'],\n providers: [ProgramCardService, OverviewKpiService],\n standalone: false,\n})\nexport class ProgramCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public program: Program;\n public programTotal: any;\n\n private readonly destroyed$ = new Subject();\n\n tabs: TabLink[] = [\n {\n header: 'projects.programs.card.tabs.overview',\n state: 'program.overview',\n },\n {\n header: 'projects.programs.card.tabs.projects',\n state: 'program.projects',\n },\n ];\n\n constructor(\n public uiRouterGlobals: UIRouterGlobals,\n private app: AppService,\n private notification: NotificationService,\n private data: DataService,\n public service: ProgramCardService,\n private modal: NgbModal,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public getProgramStateTitle() {\n return this.program && this.program.isActive\n ? 'projects.programs.card.states.active'\n : 'projects.programs.card.states.closed';\n }\n\n // Изменение состояния.\n public selectState(isActive: boolean) {\n this.program.isActive = isActive;\n this.data\n .collection('Programs')\n .entity(this.entityId)\n .patch({ isActive })\n .subscribe({\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n public saveName = (name: string) =>\n this.data.collection('Programs').entity(this.entityId).patch({ name });\n\n public openCoManagers() {\n const modalRef = this.modal.open(CoManagersModalComponent);\n const instance = modalRef.componentInstance as CoManagersModalComponent;\n instance.readonly = !this.program.coManagersEditAllowed;\n instance.type = 'program';\n instance.manager = this.program.manager;\n instance.entityId = this.entityId;\n }\n\n public openUserInfo() {\n const userId = this.program.manager.id;\n const target = document.getElementById('manager');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n ngOnInit() {\n this.service.load(this.entityId);\n this.service.program$.subscribe((program: Program) => {\n this.program = program;\n });\n\n this.service.programTotal$.subscribe((programTotal: any) => {\n this.programTotal = programTotal;\n });\n\n if (this.app.checkFeature(Feature.finance)) {\n this.tabs.push({\n header: 'projects.programs.card.tabs.pnl',\n state: 'program.pnl',\n });\n }\n\n this.actionPanelService.setHasAutosave(true);\n this.initSubscribers();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private initSubscribers(): void {\n this.actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.reloadTab();\n });\n }\n}\n","\n\n\n\n\n\n\n\n
    \n
    \n
    \n {{ 'projects.programs.card.manager' | translate }}:\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n \n \n
    \n
    \n\n \n {{ getProgramStateTitle() | translate }}\n \n\n \n  \n \n \n
    \n
    \n \n\n
    \n
      \n
    • \n -1 }\"\n [uiSref]=\"tab.state\"\n [uiParams]=\"{ routeMode: 'keep' }\"\n [attr.data-test]=\"tab.state\"\n >{{ tab.header | translate }}\n
    • \n
    \n\n
    \n \n
    \n \n \n
    \n
    \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter } from 'rxjs/operators';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Program } from 'src/app/shared/models/entities/projects/program.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ProgramSettingsComponent } from 'src/app/programs/settings/program-settings.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\n\n@Injectable()\nexport class ProgramCardService {\n private programId: string;\n public state$ = new BehaviorSubject(CardState.Loading);\n private reloadTabSubject = new Subject();\n public reloadTab$ = this.reloadTabSubject.asObservable();\n\n private programTotalSubject = new BehaviorSubject(null);\n public programTotal$ = this.programTotalSubject\n .asObservable()\n .pipe(filter((p) => p));\n\n private programSubject = new BehaviorSubject(null);\n public program$ = this.programSubject.asObservable().pipe(filter((p) => !!p));\n\n public settingsAction: MenuAction = {\n title: 'projects.programs.card.actions.properties.label',\n hint: 'projects.programs.card.actions.properties.hint',\n name: 'openSettings',\n isDropDown: false,\n iconClass: 'bi bi-sliders2',\n isBusy: false,\n isVisible: true,\n handler: () => this.openSettings(),\n };\n\n constructor(\n private data: DataService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n private modal: NgbModal,\n ) {}\n\n public reloadTab() {\n this.reloadTabSubject.next();\n }\n\n load(programId: string) {\n this.programId = programId;\n this.state$.next(CardState.Loading);\n\n this.loadProgram();\n this.loadProgramTotal();\n }\n\n private loadProgramTotal() {\n const query = {\n select: ['actualHours'],\n };\n\n this.data\n .collection('ProgramTotals')\n .entity(this.programId)\n .get(query)\n .subscribe({\n next: (programTotal: any) => {\n this.programTotalSubject.next(programTotal);\n },\n });\n }\n\n private loadProgram() {\n const query = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'billingRatesViewAllowed',\n 'editAllowed',\n 'coManagersViewAllowed',\n 'coManagersEditAllowed',\n ],\n expand: [{ manager: { select: ['name', 'id'] } }],\n };\n\n this.data\n .collection('Programs')\n .entity(this.programId)\n .get(query)\n .subscribe({\n next: (program: Program) => {\n this.navigationService.addRouteSegment({\n id: program.id,\n title: program.name,\n });\n\n this.programSubject.next(program);\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n public openSettings() {\n const ref = this.modal.open(ProgramSettingsComponent, { size: 'lg' });\n (ref.componentInstance as ProgramSettingsComponent).programId =\n this.programId;\n ref.result.then(\n () => this.load(this.programId),\n () => null,\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ProgramCardService } from 'src/app/programs/card/program-card.service';\nimport { TrendsKpiService } from 'src/app/shared/components/features/overview/trends-kpi/core/trends-kpi.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-program-overview-analysis',\n templateUrl: './program-overview-analysis.component.html',\n providers: [TrendsKpiService],\n standalone: false,\n})\nexport class ProgramOverviewAnalysisComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProgramCardService,\n private trendsKpiService: TrendsKpiService,\n ) {}\n\n private reload() {\n this.trendsKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProgramOverviewAnalysisComponent } from 'src/app/programs/card/program-overview/program-overview-analysis/program-overview-analysis.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ProgramOverviewAnalysisComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'program.overview.analysis',\n url: '/analysis',\n component: ProgramOverviewAnalysisComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProgramOverviewAnalysisModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ProgramCardService } from 'src/app/programs/card/program-card.service';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-program-overview-kpi',\n templateUrl: './program-overview-kpi.component.html',\n standalone: false,\n})\nexport class ProgramOverviewKpiComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProgramCardService,\n private overviewKpiService: OverviewKpiService,\n ) {}\n\n private reload() {\n this.overviewKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProgramOverviewKpiComponent } from 'src/app/programs/card/program-overview/program-overview-kpi/program-overview-kpi.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ProgramOverviewKpiComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'program.overview.kpi',\n url: '/kpi',\n component: ProgramOverviewKpiComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProgramOverviewKpiModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ProgramCardService } from 'src/app/programs/card/program-card.service';\n\n@Component({\n selector: 'wp-program-overview',\n templateUrl: './program-overview.component.html',\n standalone: false,\n})\nexport class ProgramOverviewComponent implements OnInit {\n constructor(\n private actionService: ActionPanelService,\n public service: ProgramCardService,\n ) {}\n\n ngOnInit(): void {\n this.actionService.set([this.service.settingsAction]);\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProgramOverviewComponent } from 'src/app/programs/card/program-overview/program-overview.component';\nimport { ProgramOverviewKpiModule } from 'src/app/programs/card/program-overview/program-overview-kpi/program-overview-kpi.module';\nimport { ProgramOverviewAnalysisModule } from 'src/app/programs/card/program-overview/program-overview-analysis/program-overview-analysis.module';\n\n@NgModule({\n declarations: [ProgramOverviewComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProgramOverviewKpiModule,\n ProgramOverviewAnalysisModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'program.overview',\n url: '/overview',\n component: ProgramOverviewComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n redirectTo: 'program.overview.kpi',\n resolve: [\n {\n token: 'entityType',\n resolveFn: () => 'program',\n },\n ],\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProgramOverviewModule {}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ProgramCardService } from '../program-card.service';\nimport { PnlService } from 'src/app/shared-features/pnl/pnl.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\n\n@Component({\n selector: 'wp-program-pnl',\n templateUrl: './program-pnl.component.html',\n providers: [PnlService],\n standalone: false,\n})\nexport class ProgramPnlComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n private reloadListener: Subscription;\n\n constructor(\n private pnlService: PnlService,\n private service: ProgramCardService,\n private actionService: ActionPanelService,\n ) {}\n\n ngOnInit(): void {\n this.actionService.set([this.service.settingsAction]);\n this.reloadListener = this.service.reloadTab$.subscribe(() => {\n this.pnlService.reload();\n });\n }\n\n ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n }\n}\n","\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Program } from 'src/app/shared/models/entities/projects/program.model';\n\n@Component({\n selector: 'wp-including-project-modal',\n templateUrl: './including-project-modal.component.html',\n standalone: false,\n})\nexport class IncludingProjectModalComponent implements OnInit {\n @Input() program: Program;\n\n public query: any = {};\n\n public form = this.fb.group({\n project: [null, Validators.required],\n });\n isSaving: boolean;\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = { projectId: this.form.value.project.id };\n\n this.data\n .collection('Programs')\n .entity(this.program.id)\n .action('WP.IncludeProject')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.programs.card.projects.messages.included',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n this.query.filter = [\n { programId: { type: 'guid', value: null }, isActive: true },\n ];\n }\n}\n","
    \n
    \n

    \n {{ 'projects.programs.card.projects.includingModal.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.include' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectFilterService } from 'src/app/projects/list/project-filter/project-filter.service';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { PROJECT_LIST } from 'src/app/shared/lists/project.list';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ProjectSettingsComponent } from 'src/app/projects/settings/project-settings.component';\nimport { ProgramCardService } from '../program-card.service';\nimport { Program } from 'src/app/shared/models/entities/projects/program.model';\nimport { IncludingProjectModalComponent } from './including-project-modal/including-project-modal.component';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-program-projects',\n templateUrl: './program-projects.component.html',\n styleUrls: ['./program-projects.component.scss'],\n providers: [\n { provide: VIEW_NAME, useValue: 'program' },\n { provide: LIST, useValue: PROJECT_LIST },\n { provide: FilterService, useClass: ProjectFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ProgramProjectsComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n @Input() entityId: string;\n program: Program;\n reloadListener: any;\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private app: AppService,\n private service: ProgramCardService,\n private actionService: ActionPanelService,\n private entityListService: EntityListService,\n private modal: NgbModal,\n private gridService: GridService,\n ) {}\n\n public create() {\n const ref = this.modal.open(ProjectSettingsComponent, { size: 'lg' });\n (ref.componentInstance as ProjectSettingsComponent).program = this.program;\n }\n\n private include() {\n const ref = this.modal.open(IncludingProjectModalComponent);\n (ref.componentInstance as IncludingProjectModalComponent).program =\n this.program;\n\n ref.result.then(\n () => this.entityListService.reload(),\n () => null,\n );\n }\n\n exclude(id: any): void {\n this.data\n .collection('Programs')\n .entity(this.program.id)\n .action('WP.ExcludeProject')\n .execute({ projectId: id })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.programs.card.projects.messages.excluded',\n );\n this.entityListService.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n this.entityListService.rowCommands = [\n {\n name: 'delete',\n label: 'projects.programs.card.projects.actions.excludeProject',\n allowedFn: () => this.program.editAllowed,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.exclude(formGroup.value.id),\n },\n ];\n\n this.entityListService.contextFilter = [\n {\n project: { programId: { type: 'guid', value: this.entityId } },\n },\n ];\n\n // Установка главного меню.\n let actions = [this.service.settingsAction];\n actions = actions.concat([\n {\n title: 'projects.projects.list.actions.create',\n hint: 'projects.projects.list.actions.create',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'Project',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n },\n {\n title: 'projects.programs.card.projects.actions.includeProject',\n hint: 'projects.programs.card.projects.actions.includeProject',\n name: 'include',\n isDropDown: false,\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'Project',\n PermissionType.Modify,\n ),\n handler: () => this.include(),\n },\n {\n title: 'projects.programs.card.projects.actions.excludeProject',\n hint: 'projects.programs.card.projects.actions.excludeProject',\n name: 'exclude',\n isDropDown: false,\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'Project',\n PermissionType.Modify,\n ),\n handler: () => this.exclude(this.gridService.selectedGroupValue.id),\n },\n ]);\n\n this.actionService.set(actions);\n\n this.gridService.selectedGroup$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((row: UntypedFormGroup) => {\n this.actionService.action('exclude').isShown =\n row &&\n this.app.checkEntityPermission('Project', PermissionType.Modify);\n });\n\n this.reloadListener = this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.entityListService.reload());\n\n this.service.program$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((program) => (this.program = program));\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-program-filter',\n templateUrl: './program-filter.component.html',\n standalone: false,\n})\nexport class ProgramFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: [null],\n manager: [null],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ProgramFilterComponent } from './program-filter.component';\n\n@Injectable()\nexport class ProgramFilterService extends FilterService {\n public override component: Type = ProgramFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'projects.programs.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n period: null,\n manager: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n program: {\n or: [\n { 'tolower(name)': { contains: text } },\n { 'tolower(code)': { contains: text } },\n { 'tolower(description)': { contains: text } },\n ],\n },\n });\n }\n\n if (this.values.manager) {\n result.push({\n program: {\n managerId: { eq: { type: 'guid', value: this.values.manager.id } },\n },\n });\n }\n\n return result;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ProgramFilterService } from './program-filter/program-filter.service';\nimport { ProgramSettingsComponent } from '../settings/program-settings.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-program-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ProgramFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ProgramListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modal: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'projects.programs.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Program',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('program', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Program', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modal.open(ProgramSettingsComponent, { size: 'lg' });\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ProgramListComponent } from './list/program-list.component';\nimport { META_ENTITY_TYPE, LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ProgramFilterComponent } from './list/program-filter/program-filter.component';\nimport { PROGRAM_LIST } from 'src/app/shared/lists/program.list';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { ProgramCardComponent } from './card/program-card.component';\nimport { ProgramProjectsComponent } from './card/program-projects/program-projects.component';\nimport { ProgramSettingsComponent } from './settings/program-settings.component';\nimport { IncludingProjectModalComponent } from './card/program-projects/including-project-modal/including-project-modal.component';\nimport { ProgramPnlComponent } from './card/program-pnl/program-pnl.component';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\nimport { ProgramOverviewModule } from 'src/app/programs/card/program-overview/program-overview.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ProgramListComponent,\n ProgramFilterComponent,\n ProgramProjectsComponent,\n ProgramSettingsComponent,\n ProgramCardComponent,\n ProgramPnlComponent,\n IncludingProjectModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PnlModule,\n ProgramOverviewModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'programs',\n url: '/programs/{view:viewName}?{navigation}&{route}',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'projects.allPrograms',\n routeMode: null,\n view: null,\n },\n component: ProgramListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: PROGRAM_LIST },\n { provide: META_ENTITY_TYPE, useValue: 'Program' },\n ],\n },\n\n {\n name: 'program',\n params: {\n navigation: 'projects.allPrograms',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n dynamic: true,\n url: '/programs/{entityId:guid}?{navigation}&{route}',\n component: ProgramCardComponent,\n redirectTo: 'program.overview',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'program.projects',\n url: '/projects',\n component: ProgramProjectsComponent,\n },\n {\n name: 'program.pnl',\n url: '/pnl',\n component: ProgramPnlComponent,\n },\n ],\n }),\n ],\n})\nexport class ProgramsModule {}\n","import { Component, OnInit, Input, inject, DestroyRef } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Program } from 'src/app/shared/models/entities/projects/program.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AppService } from 'src/app/core/app.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { LogService } from 'src/app/core/log.service';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { DateTime } from 'luxon';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-program-settings',\n templateUrl: './program-settings.component.html',\n standalone: false,\n})\nexport class ProgramSettingsComponent implements OnInit {\n @Input() programId: string;\n\n public isSaving = false;\n public creatingMode: boolean;\n public isLoading: boolean;\n public readonly: boolean;\n public form = this.fb.group({\n id: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n startDate: [null],\n endDate: [null],\n manager: [null, Validators.required],\n skipManagerApprove: [false],\n });\n public okButtonText: string;\n\n private destroyRef = inject(DestroyRef);\n\n public get program(): Program {\n return this.form.value as Program;\n }\n\n constructor(\n private log: LogService,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private app: AppService,\n private customFieldService: CustomFieldService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'Program');\n }\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.log.debug('Saving program entity...');\n\n const okFunc = () => {\n this.isSaving = false;\n\n if (this.creatingMode) {\n this.notification.successLocal(\n 'projects.programs.settings.messages.created',\n );\n this.state.go('program', { entityId: this.form.value.id });\n } else {\n this.notification.successLocal(\n 'projects.programs.settings.messages.saved',\n );\n }\n\n this.activeModal.close(this.form.value);\n };\n\n const errorFunc = (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n };\n\n const program = this.program;\n\n const data = {\n id: program.id,\n name: program.name,\n isActive: program.isActive,\n managerId: program.manager.id,\n description: program.description,\n code: program.code,\n endDate: program.endDate,\n startDate: program.startDate,\n skipManagerApprove: program.skipManagerApprove,\n };\n\n this.customFieldService.assignValues(data, program, 'Program');\n\n if (this.creatingMode) {\n this.data\n .collection('Programs')\n .insert(data)\n .subscribe({ next: okFunc, error: errorFunc });\n } else {\n this.data\n .collection('Programs')\n .entity(this.programId)\n .update(data)\n .subscribe({ next: okFunc, error: errorFunc });\n }\n };\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /** Загрузка сведений о проекте. */\n public load() {\n this.isLoading = true;\n\n this.log.debug('Loading program...');\n const query = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'startDate',\n 'endDate',\n 'code',\n 'description',\n 'skipManagerApprove',\n 'editAllowed',\n ],\n expand: [{ manager: { select: ['name', 'id'] } }],\n };\n\n this.customFieldService.enrichQuery(query, 'Program');\n\n this.data\n .collection('Programs')\n .entity(this.programId)\n .get(query)\n .subscribe({\n next: (program) => {\n this.form.patchValue(program);\n this.isLoading = false;\n\n this.readonly = !program.editAllowed;\n if (this.readonly) {\n this.form.disable();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n ngOnInit() {\n if (this.programId) {\n this.load();\n this.creatingMode = false;\n this.okButtonText = this.translate.instant('shared.actions.save');\n } else {\n // Режим создания проекта.\n const program: Program = {\n id: Guid.generate(),\n manager: this.app.session.user,\n startDate: DateTime.now().toISODate(),\n endDate: DateTime.now().endOf('year').toISODate(),\n code: '',\n name: '',\n description: '',\n skipManagerApprove: false,\n };\n\n this.form.patchValue(program);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'Program',\n );\n this.creatingMode = true;\n this.okButtonText = this.translate.instant('shared.actions.create');\n }\n FormHelper.controlDatePair(\n this.form,\n 'startDate',\n 'endDate',\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","\n\n
    \n
    \n

    {{ form?.value.name }}

    \n

    \n {{ 'projects.programs.settings.newProgram' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n \n\n
    \n \n {{ okButtonText }}\n \n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { Interval } from 'luxon';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ProjectSummaryFilterSettings } from 'src/app/project-summary/shared/project-summary-filter/models/project-summary-filter.settings';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n ProjectSummaryFilter,\n ProjectSummaryPageDto,\n ProjectSummaryResourcePlanDto,\n} from 'src/app/project-summary/models/project-summary-data.model';\nimport { ProjectSummaryEntryMap } from 'src/app/project-summary/models/project-summary-view.model';\n\n/** Provides methods to work with Project Summary REST API. */\n@Injectable()\nexport class ProjectSummaryDataService {\n /** Gets Value Mode. */\n public get valueMode(): ValueMode {\n return this._valueMode;\n }\n\n /** Sets Value Mode. */\n public set valueMode(value: ValueMode) {\n this._valueMode = value;\n }\n\n /** Gets Project Summary Pages. */\n public get summaryPages(): ProjectSummaryPageDto[] {\n return this._summaryPages;\n }\n\n /** Gets Project Summary Entries. */\n public get entries(): ProjectSummaryEntryMap {\n return this._entries;\n }\n\n private _valueMode: ValueMode;\n private _summaryPages: ProjectSummaryPageDto[];\n private _entries: ProjectSummaryEntryMap;\n\n constructor(private data: DataService) {}\n\n /** Inits Service. */\n public init(): void {\n this._summaryPages = [];\n this._entries = {};\n }\n\n /**\n * Loads Project Summary page.\n *\n * @param pageNumber Page Number.\n * @param pageSize Page Size.\n * @param filter Filter.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {ProjectSummaryPageDto} list observable.\n * */\n public loadProjectSummaryPage(\n pageNumber: number,\n pageSize: number,\n filter: ProjectSummaryFilterSettings,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable {\n const params: Record = {\n pageNumber,\n pageSize,\n kpiTypes: '@kpiTypes',\n valueMode: `'${valueMode}'`,\n filter: '@filter',\n };\n\n const filterObject = {\n projectId: filter?.project?.id || null,\n managerId: filter?.user?.id || null,\n searchText: filter?.searchText || null,\n projectStateIds: filter.projectStates?.map((state) => state.id) ?? [],\n programId: filter?.program?.id || null,\n clientId: filter?.client?.id || null,\n };\n\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@kpiTypes': JSON.stringify(kpiTypes),\n };\n\n return this.data.model\n .function('GetProjectSummaryPage')\n .query(params, null, urlParams)\n .pipe(\n catchError((error: Exception) => throwError(() => error)),\n map((val) => {\n const projects = val as ProjectSummaryPageDto[];\n this._summaryPages = this._summaryPages.concat(projects);\n return projects;\n }),\n );\n }\n\n /**\n * Loads Project Summary entries frame.\n *\n * @param projectIds Project IDs.\n * @param interval Interval.\n * @param planningScale Planning Scale.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {Observable} after list merged with new frame.\n * */\n public loadFrame = (\n projectIds: string[],\n interval: Interval,\n planningScale: PlanningScale,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable =>\n this.loadProjectSummaryEntries(\n projectIds,\n interval,\n planningScale,\n kpiTypes,\n valueMode,\n ).pipe(map(() => void 0));\n\n /**\n * Loads Project Summary entries.\n *\n * @param projectIds Project IDs.\n * @param interval Interval.\n * @param planningScale Planning Scale.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {ProjectSummaryResourcePlanDto} list observable.\n * */\n public loadProjectSummaryEntries(\n projectIds: string[],\n interval: Interval,\n planningScale: PlanningScale,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable {\n if (!projectIds.length || !kpiTypes.length) {\n return of([]);\n }\n\n const params: Record = {\n projectIds: '@projectIds',\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n planningScale: `'${planningScale}'`,\n kpiTypes: '@kpiTypes',\n valueMode: `'${valueMode}'`,\n };\n\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@projectIds': JSON.stringify(projectIds),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@kpiTypes': JSON.stringify(kpiTypes),\n };\n\n return this.data.model\n .function('GetProjectSummaryEntries')\n .query(params, null, urlParams)\n .pipe(\n catchError((error: Exception) => throwError(() => error)),\n map((val) => {\n const entries = val;\n entries.forEach((entry) => {\n this.entries[entry.projectId] ??= {};\n this.entries[entry.projectId][entry.teamMemberId] ??= [];\n const existedEntry = this.entries[entry.projectId][\n entry.teamMemberId\n ].find((e) => JSON.stringify(e) === JSON.stringify(entry));\n if (!existedEntry) {\n this.entries[entry.projectId][entry.teamMemberId].push(entry);\n }\n });\n return entries;\n }),\n );\n }\n\n /**\n * Gets Project Summary entries.\n *\n * @param projectId Project ID.\n * @param teamMemberId Team Member ID.\n * @returns {ProjectSummaryResourcePlanDto} list.\n * */\n public getProjectSummaryEntries(\n projectId: string,\n teamMemberId: string,\n ): ProjectSummaryResourcePlanDto[] {\n if (!this.entries[projectId] || !this.entries[projectId][teamMemberId]) {\n return [];\n }\n return this.entries[projectId][teamMemberId];\n }\n}\n","import {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n OnDestroy,\n} from '@angular/core';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { filter, switchMap, takeUntil, throttleTime } from 'rxjs/operators';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ProjectSummaryViewSettings } from 'src/app/project-summary/models/project-summary-view.settings';\nimport { ProjectSummaryDataService } from 'src/app/project-summary/core/project-summary-data.service';\nimport { ProjectSummaryViewSettingsService } from 'src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ProjectSummaryFilterService } from 'src/app/project-summary/shared/project-summary-filter/core/project-summary-filter.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Provides methods to work with Project Summary component. */\n@Injectable()\nexport class ProjectSummaryService implements OnDestroy {\n /**\n * Indicates whether all rows are expanded or collapsed.\n *\n * @returns `true` if all rows are expanded, `false` otherwise.\n * */\n public get isAllExpanded(): boolean {\n return (\n this.expandedProjectIds.size ===\n this.summaryDataService.summaryPages.length\n );\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return Object.keys(this.summaryViewSettingsService.settings.show).filter(\n (key) => this.summaryViewSettingsService.settings.show[key],\n ) as KpiType[];\n }\n\n /** Gets Summary Slot Groups. */\n public get slotGroups(): SlotGroup[] {\n return this._slotGroups;\n }\n\n /** Gets Summary Slots. */\n public get slots(): Slot[] {\n return this._slots;\n }\n\n /** Gets Summary View Settings. */\n public get settings(): ProjectSummaryViewSettings {\n return this._settings;\n }\n\n /** Gets Slot width. */\n public get slotWidth(): number {\n return this.getSlotWidth(this._settings.planningScale);\n }\n\n private loadingSubject = new BehaviorSubject(true);\n public loading$ = this.loadingSubject.asObservable();\n\n private detectChangesSubject = new Subject();\n public detectChanges$ = this.detectChangesSubject.asObservable();\n\n private recalculateGroupSubject = new Subject<{\n id: string;\n rebuild?: boolean;\n }>();\n public recalculateGroup$ = this.recalculateGroupSubject.asObservable();\n\n private toggleGroupSubject = new BehaviorSubject<{\n id: string;\n state: boolean;\n }>(null);\n public toggleGroup$ = this.toggleGroupSubject.asObservable();\n\n private readonly scrollThrottlingDuration = 100;\n private readonly pageSize = 30;\n private pageNumber: number;\n private expandedProjectIds: Set = new Set();\n\n private interval: Interval;\n private interval$ = new Subject();\n\n private _allAreLoaded: boolean;\n private _slotGroups: SlotGroup[];\n private _slots: Slot[];\n private _settings: ProjectSummaryViewSettings;\n\n private pageReloaded$ = new Subject();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private summaryDataService: ProjectSummaryDataService,\n private summaryViewSettingsService: ProjectSummaryViewSettingsService,\n private summaryFilterService: ProjectSummaryFilterService,\n private scheduleNavigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private freezeTableService: FreezeTableService,\n private chrome: ChromeService,\n private blockUI: BlockUIService,\n private notification: NotificationService,\n ) {}\n\n ngOnDestroy(): void {\n this.pageReloaded$.next();\n }\n\n /** Inits Service. */\n public init(): void {\n this._settings = this.localConfigService.getConfig(\n ProjectSummaryViewSettings,\n );\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n );\n this.summaryDataService.valueMode = this._settings.valueMode;\n\n this.initSubscriptions();\n this.enableLoadingOnScroll();\n this.reload();\n }\n\n /**\n * Reloads the data.\n *\n * @param [toDate] End Date.\n * */\n public reload(toDate?: DateTime): void {\n this.loadingSubject.next(true);\n this.pageReloaded$.next();\n this.toggleGroupSubject.next(null);\n\n this.summaryDataService.init();\n\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n toDate,\n );\n this.updateDates();\n this._allAreLoaded = false;\n this.pageNumber = 0;\n\n this.loadProjectSummaryPage();\n }\n\n /** Toggles all Project rows. */\n public toggleAllProjects(): void {\n const state = !this.isAllExpanded;\n this.summaryDataService.summaryPages.forEach((item) => {\n if (state && !this.expandedProjectIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n\n if (!state && this.expandedProjectIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n });\n\n this.detectChangesSubject.next(null);\n }\n\n /**\n * Toggles Project Group.\n *\n * @param id Group ID.\n * @param state State flag.\n * */\n public toggleGroup(id: string, state: boolean): void {\n if (state) {\n this.expandedProjectIds.add(id);\n } else {\n this.expandedProjectIds.delete(id);\n }\n\n this.toggleGroupSubject.next({ id, state });\n }\n\n /**\n * Recalculates Project Group.\n *\n * @param id Group ID.\n * @param [rebuild=false] Indicates whether Group rebuild is required or not.\n * */\n public recalculateGroup(id: string, rebuild = false): void {\n this.recalculateGroupSubject.next({ id, rebuild });\n }\n\n /**\n * Triggers Project Group change detection.\n *\n * @param id Group ID.\n * */\n public detectGroupChanges(id: string): void {\n this.detectChangesSubject.next(id);\n }\n\n /**\n * Sets Value Mode.\n *\n * @param valueMode New Value Mode.\n * */\n public setValueMode(valueMode: ValueMode): void {\n this._settings.valueMode = valueMode;\n this.summaryDataService.valueMode = this._settings.valueMode;\n this.reload();\n }\n\n /**\n * Sets Planning Scale.\n *\n * @param planningScale New Planning Scale.\n * */\n public setPlanningScale(planningScale: PlanningScale): void {\n this._settings.planningScale = planningScale;\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n );\n\n this.updateDates();\n this.reload();\n }\n\n /**\n * Calculates slot width by planning scale.\n *\n * @returns Slot width.\n * @throws Error if scale is invalid.\n * */\n public getSlotWidth(scale: PlanningScale): number {\n switch (scale) {\n case PlanningScale.Day:\n return 75;\n case PlanningScale.Week:\n return 85;\n case PlanningScale.Month:\n case PlanningScale.Quarter:\n case PlanningScale.Year:\n return 90;\n default:\n throw new Error(`Invalid scale: ${scale}`);\n }\n }\n\n /**\n * Calculates minimal table width.\n *\n * @returns Minimal table width.\n * */\n public getDataTableWidth = (): number | null =>\n this.slots ? this.slotWidth * this.slots.length + 1 : null;\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.scheduleNavigationService.previous$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.loadFrame('left');\n });\n this.scheduleNavigationService.next$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.loadFrame('right');\n });\n this.scheduleNavigationService.jump$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((date) => {\n this.reload(date);\n });\n this.scheduleNavigationService.planningScale$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((planningScale) => {\n this.setPlanningScale(planningScale);\n });\n this.scheduleNavigationService.valueMode$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((valueMode) => {\n this.setValueMode(valueMode);\n });\n this.summaryViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n this.summaryFilterService.filter$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n }\n\n /** Enables endless page scrolling. */\n private enableLoadingOnScroll(): void {\n const container = this.document.getElementById(\n Constants.defaultRootContainerId,\n );\n const lengthThreshold = 150;\n let lastRemaining = 9999;\n\n this.chrome.scroll$\n .pipe(\n throttleTime(this.scrollThrottlingDuration, null, {\n leading: true,\n trailing: true,\n }),\n filter(\n () =>\n this._allAreLoaded === false &&\n this.loadingSubject.getValue() === false,\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n const remaining =\n container.scrollHeight -\n (container.clientHeight + container.scrollTop);\n if (remaining < lengthThreshold && remaining - lastRemaining < 0) {\n this.pageNumber++;\n\n this.loadProjectSummaryPage();\n }\n lastRemaining = remaining;\n });\n }\n\n /** Loads Project Summary page. */\n private loadProjectSummaryPage(): void {\n if (!this.selectedKpiTypes.length) {\n this.loadingSubject.next(false);\n this.detectChangesSubject.next(null);\n return;\n }\n\n this.loadingSubject.next(true);\n this.detectChangesSubject.next(null);\n this.summaryDataService\n .loadProjectSummaryPage(\n this.pageNumber,\n this.pageSize,\n this.summaryFilterService.currentFilter,\n this.selectedKpiTypes,\n this._settings.valueMode,\n )\n .pipe(\n switchMap((projects) => {\n this._allAreLoaded = this.pageSize > projects.length;\n this.loadingSubject.next(false);\n this.blockUI.start();\n\n this.detectChangesSubject.next(null);\n\n if (projects.length) {\n return this.summaryDataService.loadProjectSummaryEntries(\n projects.map((p) => p.id),\n this.interval,\n this._settings.planningScale,\n this.selectedKpiTypes,\n this._settings.valueMode,\n );\n } else {\n return of([]);\n }\n }),\n takeUntil(this.pageReloaded$),\n )\n .subscribe({\n next: () => {\n this.summaryDataService.summaryPages.forEach((r) => {\n this.recalculateGroup(r.id, true);\n });\n\n for (const id of this.expandedProjectIds) {\n if (\n !this.summaryDataService.summaryPages.find((r) => r.id === id)\n ) {\n this.expandedProjectIds.delete(id);\n continue;\n }\n this.toggleGroup(id, true);\n }\n\n this.blockUI.stop();\n this.detectChangesSubject.next(null);\n },\n error: (error: Exception) => {\n this.loadingSubject.next(false);\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Loads Project Summary entries frame.\n *\n * @param direction Frame Direction.\n * */\n private loadFrame(direction: 'left' | 'right'): void {\n this.blockUI.start();\n\n const shift = this.getFrameShift();\n\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this._settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n\n this.summaryDataService\n .loadFrame(\n this.summaryDataService.summaryPages.map((p) => p.id),\n loadingInterval,\n this._settings.planningScale,\n this.selectedKpiTypes,\n this._settings.valueMode,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.updateDates();\n\n this.summaryDataService.summaryPages.forEach((p) => {\n this.recalculateGroup(p.id, true);\n });\n\n this.blockUI.stop();\n this.detectChangesSubject.next(null);\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Gets Frame duration shift.\n *\n * @returns {DurationLike} Frame duration shift.\n * @throws Error if scale is invalid.\n * */\n private getFrameShift(): DurationLike {\n const scale = this._settings.planningScale;\n switch (scale) {\n case PlanningScale.Day:\n return { weeks: 2 };\n case PlanningScale.Week:\n return { weeks: 10 };\n case PlanningScale.Month:\n return { month: 5 };\n case PlanningScale.Quarter:\n return { year: 1 };\n case PlanningScale.Year:\n return { year: 2 };\n default:\n throw new Error(`Invalid scale: ${scale}`);\n }\n }\n\n /** Updates Slots dates. */\n private updateDates(): void {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this._settings.planningScale,\n );\n\n this._slotGroups = slotInfo.groups;\n this._slots = slotInfo.slots;\n\n this.interval$.next(this.interval);\n }\n}\n","import { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Represents a Project Summary View Settings. */\nexport class ProjectSummaryViewSettings implements BaseSettings {\n public readonly name = 'ProjectSummaryViewSettings';\n public version: number;\n /** Planning Scale. */\n public planningScale: PlanningScale;\n /** Value Mode. */\n public valueMode: ValueMode;\n\n public getDefault(): ProjectSummaryViewSettings {\n return {\n version: 1,\n planningScale: PlanningScale.Week,\n valueMode: ValueMode.Hours,\n } as ProjectSummaryViewSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { ProjectSummaryDataService } from 'src/app/project-summary/core/project-summary-data.service';\nimport { ProjectSummaryService } from 'src/app/project-summary/core/project-summary.service';\nimport { ProjectSummaryViewSettingsService } from 'src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Project Summary tab content. */\n@Component({\n selector: 'tmt-project-summary',\n templateUrl: './project-summary.component.html',\n styleUrls: ['./project-summary.component.scss'],\n providers: [\n ScheduleNavigationService,\n FreezeTableService,\n ProjectSummaryService,\n ProjectSummaryDataService,\n ProjectSummaryViewSettingsService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryComponent implements OnInit {\n /** Gets Left Table width numeric value. */\n public get leftTableWidth(): number {\n return this._leftTableWidth;\n }\n\n /** Gets NO DATA message localization key. */\n public get noDataMessageKey(): string {\n return this._noDataMessageKey;\n }\n\n private readonly _leftTableWidth = 400;\n\n private _noDataMessageKey: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public service: ProjectSummaryService,\n public summaryDataService: ProjectSummaryDataService,\n private summaryViewSettingsService: ProjectSummaryViewSettingsService,\n private scheduleNavigationService: ScheduleNavigationService,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.scheduleNavigationService.init(\n ScheduleNavigationContext.ProjectSummary,\n );\n this.updateFields();\n this.service.init();\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.service.detectChanges$\n .pipe(\n filter((id) => !id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.updateFields();\n this.cdRef.detectChanges();\n });\n }\n\n /** Updates template fields. */\n private updateFields(): void {\n const isTypeRequired = !Object.keys(\n this.summaryViewSettingsService.settings.show,\n ).some((key) => this.summaryViewSettingsService.settings.show[key]);\n this._noDataMessageKey = isTypeRequired\n ? 'projects.projectSummary.noType'\n : 'shared.noDisplayData';\n }\n}\n","\n\n\n \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n {{ 'projects.projectSummary.columns.project' | translate }}\n \n \n \n {{\n (service.isAllExpanded\n ? 'shared.actions.collapseAll'\n : 'shared.actions.expandAll'\n ) | translate\n }}\n \n \n
    \n
    Σ
    \n
    \n\n
    \n \n \n \n \n \n\n @for (summaryPageDto of summaryDataService.summaryPages; track summaryPageDto.id) {\n \n } @empty {\n \n \n \n \n \n }\n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n \n \n @for (group of service.slotGroups; track group.id) {\n \n {{ group.header }}\n \n }\n \n \n @for (slot of service.slots; track slot.id) {\n \n {{ slot.header }}\n \n }\n \n \n \n
    \n\n
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n\n @for (summaryPageDto of summaryDataService.summaryPages; track summaryPageDto.id) {\n \n } @empty {\n \n \n \n {{ noDataMessageKey | translate | uppercase }}\n \n \n \n }\n \n
    \n\n
    \n
    \n\n\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectSummaryFilterModule } from 'src/app/project-summary/shared/project-summary-filter/project-summary-filter.module';\nimport { ProjectSummaryToolbarComponent } from 'src/app/project-summary/shared/project-summary-toolbar/project-summary-toolbar.component';\nimport { ProjectSummaryViewSettingsComponent } from 'src/app/project-summary/shared/project-summary-view-settings/project-summary-view-settings.component';\nimport { ProjectSummaryLeftGroupComponent } from 'src/app/project-summary/shared/project-summary-left-group/project-summary-left-group.component';\nimport { ProjectSummaryRightGroupComponent } from 'src/app/project-summary/shared/project-summary-right-group/project-summary-right-group.component';\nimport { PlannerModule } from 'src/app/shared-features/planner/planner.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectSummaryTotalPipe } from 'src/app/project-summary/shared/pipes/project-summary-total.pipe';\nimport { ProjectSummaryComponent } from 'src/app/project-summary/project-summary.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\n\n@NgModule({\n declarations: [\n ProjectSummaryToolbarComponent,\n ProjectSummaryViewSettingsComponent,\n ProjectSummaryComponent,\n ProjectSummaryLeftGroupComponent,\n ProjectSummaryRightGroupComponent,\n ProjectSummaryTotalPipe,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ScheduleNavigationModule,\n ProjectSummaryFilterModule,\n PlannerModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'projectsSummary',\n url: '/projects-summary?{navigation}&{route}',\n component: ProjectSummaryComponent,\n params: {\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectSummaryModule {}\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\n\n@Pipe({\n name: 'projectSummaryTotal',\n standalone: false,\n})\nexport class ProjectSummaryTotalPipe implements PipeTransform {\n private readonly decimalTemplate = '1.0-2';\n\n constructor(\n private currencyPipe: WpCurrencyPipe,\n private decimalPipe: DecimalPipe,\n ) {}\n\n transform(value: number, mode: ValueMode): string {\n if (value == null || value === 0) return null;\n\n switch (mode) {\n case ValueMode.Hours:\n return this.decimalPipe.transform(value, this.decimalTemplate);\n case ValueMode.Cost:\n return this.currencyPipe.transform(value, null, null, true);\n default:\n return null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectSummaryFilterSettings } from 'src/app/project-summary/shared/project-summary-filter/models/project-summary-filter.settings';\n\n/** Provides methods to work with Project Summary Filter. */\n@Injectable()\nexport class ProjectSummaryFilterService {\n /** Current Filter Settings. */\n get currentFilter(): ProjectSummaryFilterSettings {\n return this._currentFilter;\n }\n\n private filterSubject = new Subject();\n public filter$ = this.filterSubject.asObservable();\n\n private establishFilterSubject =\n new BehaviorSubject(null);\n public establishFilter$ = this.establishFilterSubject.asObservable();\n\n private _currentFilter: ProjectSummaryFilterSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n const config = this.localConfigService.getConfig(\n ProjectSummaryFilterSettings,\n );\n\n this.establishFilter(config);\n }\n\n /**\n * Saves the filter settings and propagates the change to other components.\n *\n * @param filter Filter Settings.\n * */\n public propagateFilterChange(filter: ProjectSummaryFilterSettings): void {\n this._currentFilter = filter;\n this.filterSubject.next(filter);\n this.saveSettings();\n }\n\n /**\n * Sets Component Filter.\n * @param filter Filter Settings.\n * @private\n */\n private establishFilter(filter: ProjectSummaryFilterSettings): void {\n this._currentFilter = filter;\n this.establishFilterSubject.next(filter);\n }\n\n /** Saves the Filter Settings. */\n private saveSettings(): void {\n this.localConfigService.setConfig(\n ProjectSummaryFilterSettings,\n this.currentFilter,\n );\n }\n}\n","import { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { State } from 'src/app/shared/models/entities/state.model';\n\n/** Represents a Project Summary Filter Settings. */\nexport class ProjectSummaryFilterSettings implements BaseSettings {\n public readonly name = 'ProjectSummaryFilterSettings';\n public version: number;\n /** Project. */\n public project: NamedEntity;\n /** Project Manager. */\n public user: NamedEntity;\n /** Program. */\n public program: NamedEntity;\n /** Client. */\n public client: NamedEntity;\n /** Search Text. */\n public searchText: string;\n /** Project States. */\n public projectStates: State[];\n\n public getDefault(): ProjectSummaryFilterSettings {\n return {\n version: 2,\n project: null,\n user: null,\n program: null,\n client: null,\n searchText: '',\n projectStates: null,\n } as ProjectSummaryFilterSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { ProjectSummaryFilterService } from 'src/app/project-summary/shared/project-summary-filter/core/project-summary-filter.service';\nimport { ProjectSummaryFilterSettings } from 'src/app/project-summary/shared/project-summary-filter/models/project-summary-filter.settings';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateControlItem } from 'src/app/shared/components/features/state-filter/state-select.interface';\n\n/** Represents Project Summary Filter Modal Window content. */\n@Component({\n selector: 'tmt-project-summary-filter-modal',\n templateUrl: './project-summary-filter-modal.component.html',\n styleUrls: ['./project-summary-filter-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryFilterModalComponent implements OnInit {\n @Input() filter: ProjectSummaryFilterSettings;\n\n public form = this.fb.group({\n project: null,\n user: null,\n program: null,\n client: null,\n projectStates: null,\n });\n\n protected feature = Feature;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public app: AppService,\n public service: ProjectSummaryFilterService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit(): void {\n if (this.filter) {\n this.form.patchValue(this.filter);\n }\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.filter = value;\n\n if (value.projectStates) {\n this.filter.projectStates = Object.values(\n value.projectStates as Record,\n ).filter((state) => state.selected);\n }\n });\n }\n\n /** Resets filter values. */\n public clearValues(): void {\n this.form.reset();\n }\n\n /**\n * Modal Ok button click event handler.\n * Closes the active modal.\n * */\n public ok = (): void => {\n this.activeModal.close(this.filter);\n };\n\n /**\n * Modal Cancel/Cross button click event handler.\n * Closes the active modal.\n * */\n public cancel = (): void => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'projects.projectSummary.filter.header' | translate }}\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n\n \n
    \n\n
    \n \n\n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { cloneDeep } from 'lodash';\nimport { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { ProjectSummaryFilterModalComponent } from 'src/app/project-summary/shared/project-summary-filter/project-summary-filter-modal/project-summary-filter-modal.component';\nimport { ProjectSummaryFilterService } from 'src/app/project-summary/shared/project-summary-filter/core/project-summary-filter.service';\nimport { ProjectSummaryFilterSettings } from 'src/app/project-summary/shared/project-summary-filter/models/project-summary-filter.settings';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Project Summary Filter content. */\n@Component({\n selector: 'tmt-project-summary-filter',\n templateUrl: './project-summary-filter.component.html',\n styleUrls: ['./project-summary-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryFilterComponent implements OnInit {\n /** Gets Filter Conditions count. */\n public get conditionsCount(): number {\n return this._conditionsCount;\n }\n\n /** Gets Filter Conditions Count localized text. */\n public get conditionCountTitle(): string {\n return this._conditionCountTitle;\n }\n\n public textControl = this.fb.control('');\n\n protected readonly textInputMaxLength = Constants.formNameMaxLength;\n\n private readonly textInputMinLength = 3;\n\n private filter: ProjectSummaryFilterSettings;\n private _conditionsCount: number;\n private _conditionCountTitle: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public translate: TranslateService,\n private service: ProjectSummaryFilterService,\n private fb: UntypedFormBuilder,\n private modalService: NgbModal,\n private cdRef: ChangeDetectorRef,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n /** Opens Modal window to edit filter. */\n public openFilterModal(): void {\n const ref = this.modalService.open(ProjectSummaryFilterModalComponent, {\n size: 'lg',\n injector: this.injector,\n });\n\n const instance =\n ref.componentInstance as ProjectSummaryFilterModalComponent;\n instance.filter = cloneDeep(this.filter);\n\n ref.result.then(\n (filter: ProjectSummaryFilterSettings) => {\n this.filter = filter;\n this.filter.searchText = this.textControl.getRawValue();\n this.updateConditionalCount();\n this.service.propagateFilterChange(this.filter);\n this.cdRef.detectChanges();\n },\n () => null,\n );\n }\n\n /** Clears Text Input value. */\n public clearInput(): void {\n this.textControl.patchValue('');\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.service.establishFilter$\n .pipe(\n filter((settings) => !!settings),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.filter = this.service.currentFilter;\n this.textControl.setValue(this.filter.searchText);\n this.updateConditionalCount();\n this.cdRef.detectChanges();\n });\n\n this.textControl.valueChanges\n .pipe(\n filter((val) => !val.length || val.length >= this.textInputMinLength),\n debounceTime(Constants.textInputDebounce),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((val) => {\n this.filter.searchText = val;\n this.service.propagateFilterChange(this.filter);\n });\n }\n\n /** Updates Filter conditions count. */\n private updateConditionalCount(): void {\n this._conditionsCount = 0;\n\n if (this.filter) {\n if (this.filter.project) {\n this._conditionsCount++;\n }\n if (this.filter.user) {\n this._conditionsCount++;\n }\n\n if (this.filter.projectStates?.length) {\n this._conditionsCount++;\n }\n\n if (this.filter.program) {\n this._conditionsCount++;\n }\n\n if (this.filter.client) {\n this._conditionsCount++;\n }\n }\n\n this._conditionCountTitle = StringHelper.declOfNum(this._conditionsCount, [\n this.translate.instant('shared.filterConditionDeclensions.v1'),\n this.translate.instant('shared.filterConditionDeclensions.v2'),\n this.translate.instant('shared.filterConditionDeclensions.v3'),\n ]);\n }\n}\n","
    \n
    \n \n \n
    \n \n 0\"> {{ conditionsCount }} {{ conditionCountTitle }} \n \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectSummaryFilterComponent } from 'src/app/project-summary/shared/project-summary-filter/project-summary-filter.component';\nimport { ProjectSummaryFilterModalComponent } from 'src/app/project-summary/shared/project-summary-filter/project-summary-filter-modal/project-summary-filter-modal.component';\nimport { ProjectSummaryFilterService } from 'src/app/project-summary/shared/project-summary-filter/core/project-summary-filter.service';\n\n@NgModule({\n declarations: [\n ProjectSummaryFilterComponent,\n ProjectSummaryFilterModalComponent,\n ],\n exports: [ProjectSummaryFilterComponent],\n imports: [CommonModule, SharedModule],\n providers: [ProjectSummaryFilterService],\n})\nexport class ProjectSummaryFilterModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Injector,\n Input,\n OnInit,\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ProjectSummaryService } from 'src/app/project-summary/core/project-summary.service';\nimport { ProjectSummaryViewSettingsService } from 'src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service';\nimport {\n ProjectSummaryPageDto,\n ProjectSummaryTeamMemberDto,\n} from 'src/app/project-summary/models/project-summary-data.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n/** Represents Project Summary Left Grid content. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtProjectSummaryLeftGroup]',\n templateUrl: './project-summary-left-group.component.html',\n styleUrls: ['./project-summary-left-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryLeftGroupComponent implements OnInit {\n @Input() summaryPageDto: ProjectSummaryPageDto;\n\n /**\n * Indicates whether row is expanded or collapsed.\n *\n * @returns `true` if row is expanded, `false` otherwise.\n * */\n public get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return this._selectedKpiTypes;\n }\n\n protected kpiType = KpiType;\n protected valueMode = ValueMode;\n protected resourceType = ResourceType;\n\n private _isExpanded: boolean;\n private _selectedKpiTypes: KpiType[];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public summaryService: ProjectSummaryService,\n private summaryViewSettingsService: ProjectSummaryViewSettingsService,\n private cdRef: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n }\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n /**\n * Project info element click handler.\n * Opens Project Info popup.\n *\n * @param container HTML element container.\n * @param projectId Project ID.\n * */\n public openProjectInfo(container: HTMLElement, projectId: string): void {\n this.infoPopupService.open({\n target: container,\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * User info element click handler.\n * Opens User Info popup.\n *\n * @param container HTML element container.\n * @param teamMember Team member.\n * */\n public openUserInfo(\n container: HTMLElement,\n teamMember: ProjectSummaryTeamMemberDto,\n ): void {\n if (teamMember.resourceType !== ResourceType.user) {\n return;\n }\n\n this.infoPopupService.open({\n target: container,\n data: {\n component: UserInfoComponent,\n params: {\n userId: teamMember.resourceId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Row toggle click handler.\n * Propagates expand/collapse to Project Summary component.\n * */\n public onToggleClick(): void {\n this._isExpanded = !this._isExpanded;\n this.summaryService.toggleGroup(this.summaryPageDto.id, this.isExpanded);\n this.summaryService.detectGroupChanges(this.summaryPageDto.id);\n }\n\n /**\n * Gets Project Total value.\n *\n * @param kpiType KPI Type.\n * @returns Project Total value.\n * */\n public getProjectTotal(kpiType: KpiType): number {\n return this.summaryPageDto.teamMembers\n .map(\n (member) =>\n member.totalValues.find(\n (totalValue) => totalValue.kpiType === kpiType,\n )?.value ?? 0,\n )\n .reduce((prev, curr) => prev + curr, 0);\n }\n\n /**\n * Gets User Total value.\n *\n * @param userId User ID.\n * @param kpiType KPI Type.\n * @returns User Total value.\n * */\n public getUserTotal(userId: string, kpiType: KpiType): number | null {\n const teamMember = this.summaryPageDto.teamMembers.find(\n (member) => member.id === userId,\n );\n return teamMember?.totalValues.find(\n (totalValue) => totalValue.kpiType === kpiType,\n )?.value;\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.summaryService.detectChanges$\n .pipe(\n filter((id) => !id || id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdRef.detectChanges();\n });\n\n this.summaryService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this._isExpanded = event.state;\n });\n\n this.summaryViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(\n () => (this._selectedKpiTypes = this.summaryService.selectedKpiTypes),\n );\n }\n}\n","@for (selectedKpiType of selectedKpiTypes; track selectedKpiType; let isFirst = $first) {\n \n \n \n
    \n \n
    \n \n \n
    \n \n {{ summaryPageDto.name }}\n
    \n \n \n
    \n\n \n {{ 'projects.projectSummary.filter.properties.viewSettings.' + selectedKpiType | translate }}\n \n \n {{\n getProjectTotal(selectedKpiType) | projectSummaryTotal: summaryService.settings.valueMode\n }}\n \n \n}\n\n\n @for (teamMember of summaryPageDto.teamMembers; track teamMember.id) {\n \n @for (selectedKpiType of selectedKpiTypes; track selectedKpiType; let isFirst = $first) {\n \n \n
    \n \n \n {{ teamMember.name }}\n
    \n \n \n\n \n {{\n 'projects.projectSummary.filter.properties.viewSettings.' + selectedKpiType\n | translate\n }}\n \n\n \n {{\n getUserTotal(teamMember.id, selectedKpiType)\n | projectSummaryTotal: summaryService.settings.valueMode\n }}\n \n \n }\n
    \n } @empty {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ProjectSummaryDataService } from 'src/app/project-summary/core/project-summary-data.service';\nimport { ProjectSummaryService } from 'src/app/project-summary/core/project-summary.service';\nimport { ProjectSummaryViewSettingsService } from 'src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport {\n ProjectSummaryPageDto,\n ProjectSummaryResourcePlanDto,\n} from 'src/app/project-summary/models/project-summary-data.model';\nimport { filter } from 'rxjs/operators';\nimport { ProjectSummaryTotal } from 'src/app/project-summary/models/project-summary-view.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Project Summary Right Grid content. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtProjectSummaryRightGroup]',\n templateUrl: './project-summary-right-group.component.html',\n styleUrls: ['./project-summary-right-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryRightGroupComponent implements OnInit {\n @Input() summaryPageDto: ProjectSummaryPageDto;\n\n /**\n * Indicates whether row is expanded or collapsed.\n *\n * @returns `true` if row is expanded, `false` otherwise.\n * */\n public get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return this._selectedKpiTypes;\n }\n\n /** Gets Summary Totals. */\n public get totals(): ProjectSummaryTotal[] {\n return this._totals;\n }\n\n protected kpiType = KpiType;\n protected valueMode = ValueMode;\n\n private _isExpanded: boolean;\n private _selectedKpiTypes: KpiType[];\n private _totals: ProjectSummaryTotal[];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public summaryService: ProjectSummaryService,\n private summaryDataService: ProjectSummaryDataService,\n private summaryViewSettingsService: ProjectSummaryViewSettingsService,\n private cdRef: ChangeDetectorRef,\n ) {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n }\n\n ngOnInit(): void {\n this.initSubscriptions();\n this.initTotals();\n this.recalculateTotals();\n }\n\n /**\n * Gets Summary Totals by KPI Type.\n *\n * @param kpiType KPI Type.\n * @returns Totals by KPI Type.\n * */\n public getTotalsByKpiType(kpiType: KpiType): ProjectSummaryTotal[] {\n return this._totals.filter((t) => t.kpiType === kpiType);\n }\n\n /**\n * Gets Summary Entries by Team Member ID.\n *\n * @param teamMemberId Team Member ID.\n * @param selectedKpiType Selected KPI Type.\n * @param slot Slot.\n * @returns Project Summary Entries.\n * */\n public getSummaryEntriesByTeamMemberId(\n teamMemberId: string,\n selectedKpiType: KpiType,\n slot: Slot,\n ): ProjectSummaryResourcePlanDto[] {\n const entries = this.summaryDataService.getProjectSummaryEntries(\n this.summaryPageDto.id,\n teamMemberId,\n );\n\n return entries.filter(\n (entry) =>\n entry.kpiType === selectedKpiType &&\n slot.date.toISODate() === entry.date,\n );\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.summaryViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n this.initTotals();\n this.recalculateTotals();\n this.cdRef.detectChanges();\n });\n\n this.summaryService.detectChanges$\n .pipe(\n filter((id) => !id || id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdRef.detectChanges();\n });\n\n this.summaryService.recalculateGroup$\n .pipe(\n filter((e) => e.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((e) => {\n if (e.rebuild) {\n this.initTotals();\n }\n this.recalculateTotals();\n });\n\n this.summaryService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this._isExpanded = event.state;\n });\n }\n\n /** Inits Summary Totals. */\n private initTotals(): void {\n this._totals = [];\n\n for (const slot of this.summaryService.slots) {\n for (const selectedKpiType of this.selectedKpiTypes) {\n this.totals.push({\n id: slot.id,\n kpiType: selectedKpiType,\n date: slot.date.toISODate(),\n hours: 0,\n });\n }\n }\n }\n\n /** Recalculates Summary Totals. */\n private recalculateTotals(): void {\n const projectEntries =\n this.summaryDataService.entries[this.summaryPageDto.id];\n if (!projectEntries) return;\n\n this.totals.forEach((total) => {\n total.hours = 0;\n });\n\n const allEntries: ProjectSummaryResourcePlanDto[] = [];\n const allMembers = Object.values(projectEntries);\n\n allMembers.forEach((memberEntries) => {\n memberEntries.forEach((memberEntry) => {\n allEntries.push(memberEntry);\n });\n });\n\n allEntries.forEach((entry) => {\n const total = this.totals.find(\n (t) => t.date === entry.date && t.kpiType === entry.kpiType,\n );\n if (total) {\n total.hours += entry.value;\n }\n });\n }\n}\n","@for (selectedKpiType of selectedKpiTypes; track selectedKpiType) {\n \n @for (total of getTotalsByKpiType(selectedKpiType); track total.id) {\n \n \n {{ total.hours | projectSummaryTotal: summaryService.settings.valueMode }}\n \n \n }\n \n}\n\n\n @for (teamMember of summaryPageDto.teamMembers; track teamMember.id) {\n \n @for (selectedKpiType of selectedKpiTypes; track selectedKpiType) {\n \n \n \n \n \n @for (slot of summaryService.slots; track slot.id) {\n \n @for (\n entry of getSummaryEntriesByTeamMemberId(\n teamMember.id,\n selectedKpiType,\n slot\n );\n track entry.teamMemberId\n ) {\n \n {{ entry.value | projectSummaryTotal: summaryService.settings.valueMode }}\n \n }\n \n }\n \n \n \n \n \n }\n \n } @empty {\n \n \n \n }\n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\n/** Represents Project Summary Toolbar content. */\n@Component({\n selector: 'tmt-project-summary-toolbar',\n templateUrl: './project-summary-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryToolbarComponent {\n /** Gets Used Value Modes. */\n public get usedValueModes(): ValueMode[] {\n return [ValueMode.Hours, ValueMode.Cost];\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly PlanningScale = PlanningScale;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly ValueMode = ValueMode;\n}\n","
    \n \n \n \n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectSummaryResourcePlanViewSettings } from 'src/app/project-summary/shared/project-summary-view-settings/models/project-summary-resource-plan-view-settings.settings';\n\n/** Provides methods to work with Project Summary View Settings. */\n@Injectable()\nexport class ProjectSummaryViewSettingsService {\n /** Gets View Settings. */\n public get settings(): ProjectSummaryResourcePlanViewSettings {\n return this._settings;\n }\n\n private settingsSubject =\n new Subject();\n public settings$ = this.settingsSubject.asObservable();\n\n private _settings: ProjectSummaryResourcePlanViewSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n this._settings = this.localConfigService.getConfig(\n ProjectSummaryResourcePlanViewSettings,\n );\n }\n\n /**\n * Saves the settings and propagates the change to other components.\n *\n * @param settings Settings.\n * */\n public propagateSettingsChange(\n settings: ProjectSummaryResourcePlanViewSettings,\n ): void {\n this._settings = settings;\n this.settingsSubject.next(settings);\n this.saveSettings();\n }\n\n /** Saves the settings. */\n private saveSettings(): void {\n this.localConfigService.setConfig(\n ProjectSummaryResourcePlanViewSettings,\n this.settings,\n );\n }\n}\n","import { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Represents a Project Summary Resource Plan View Settings. */\nexport class ProjectSummaryResourcePlanViewSettings implements BaseSettings {\n public readonly name = 'ResourcePlanSummaryViewSettings';\n public version: number;\n /** Show KPI flag map. */\n public show: Record;\n\n public getDefault(): ProjectSummaryResourcePlanViewSettings {\n return {\n version: 1,\n show: { [KpiType.Plan]: true },\n } as ProjectSummaryResourcePlanViewSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ProjectSummaryViewSettingsService } from 'src/app/project-summary/shared/project-summary-view-settings/core/project-summary-view-settings.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Project Summary View Settings content. */\n@Component({\n selector: 'tmt-project-summary-view-settings',\n templateUrl: './project-summary-view-settings.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectSummaryViewSettingsComponent implements OnInit {\n /** Gets KPI controls. */\n public get kpiControls(): KpiType[] {\n return Object.values(this.orderedKpi);\n }\n\n public form: UntypedFormGroup = this.fb.group({\n [KpiType.Plan]: false,\n [KpiType.Estimate]: false,\n [KpiType.Actual]: false,\n });\n\n protected kpiType = KpiType;\n\n private orderedKpi = [KpiType.Plan, KpiType.Estimate, KpiType.Actual];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: ProjectSummaryViewSettingsService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.form.patchValue(this.service.settings.show);\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const settings = this.service.settings;\n settings.show = this.form.value;\n this.service.propagateSettingsChange(settings);\n });\n }\n}\n","
    \n \n \n \n
    \n @for (control of kpiControls; track control) {\n
    \n \n \n
    \n }\n
    \n
    \n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, forkJoin, Observable, of, Subject } from 'rxjs';\nimport {\n catchError,\n filter,\n map,\n shareReplay,\n takeUntil,\n} from 'rxjs/operators';\nimport { Interval } from 'luxon';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport {\n Schedule,\n ScheduleException,\n} from 'src/app/shared/models/entities/settings/schedule.model';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { BaseEntry } from 'src/app/shared-features/planner/planner-cell/base-entry.model';\nimport { ResourceViewGroupLine } from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { TaskLine } from 'src/app/projects/card/project-resource-requirements/models/view-data/task-line.model';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\n\n/** Сервис управления карточкой проекта. */\n@Injectable()\nexport class ProjectCardService {\n private destroyed$ = new Subject();\n\n public state$ = new BehaviorSubject(CardState.Loading);\n private reloadTabSubject = new Subject();\n public reloadTab$ = this.reloadTabSubject.asObservable();\n\n public get project(): Project {\n return this.projectSubject.getValue();\n }\n private projectSubject = new BehaviorSubject(null);\n public project$ = this.projectSubject.asObservable().pipe(filter((p) => !!p));\n private projectTotalSubject = new BehaviorSubject(null);\n public projectTotal$ = this.projectTotalSubject\n .asObservable()\n .pipe(filter((p) => p));\n\n /** Выбранный период в ресурсном плане. */\n public plannerPeriodOffset: number;\n\n /** Selected interval for project task timeline. */\n public projectTaskTimelineInterval: Interval;\n\n /** List of expanded project task ids. Uses for saving tasks state while works with project. */\n public expandedTasks: string[] = [];\n\n /** Current timeline scroll position. Uses for saving scroll position while works with project. */\n public timelineScrollPosition: number | null = null;\n\n public get isProjectBillable(): boolean {\n return (\n this.project.billingType.code === ProjectBillingType.tm.code ||\n this.project.billingType.code === ProjectBillingType.fixedBid.code\n );\n }\n\n constructor(\n @Inject('entityId') public projectId: string,\n private data: DataService,\n private notification: NotificationService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n private projectTasksService: ProjectTasksService,\n private versionCardService: ProjectVersionCardService,\n private lifecycleService: LifecycleService,\n ) {\n actionService.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.reloadTab();\n this.resetTaskCache();\n this.lifecycleService.reloadLifecycle();\n });\n lifecycleService.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.load();\n this.resetTaskCache();\n });\n }\n\n /** Обновить активную вкладку. */\n public reloadTab() {\n this.reloadTabSubject.next();\n }\n\n /** Загрузить проект. */\n load() {\n this.state$.next(CardState.Loading);\n this.loadProject();\n this.loadProjectTotal();\n }\n\n private loadProjectTotal() {\n const query = {\n select: ['inheritedProjectsCount'],\n };\n\n this.data\n .collection('ProjectTotals')\n .entity(this.projectId)\n .get(query)\n .subscribe({\n next: (projectTotal: any) => {\n this.projectTotalSubject.next(projectTotal);\n\n this.actionService.action('updateInheritedProjects').isShown =\n projectTotal.inheritedProjectsCount > 0;\n },\n error: (error: Exception) => {\n this.projectTotalSubject.next({});\n },\n });\n }\n\n private loadProject() {\n const projectQuery = {\n select: [\n 'id',\n 'name',\n 'externalUrl',\n 'startDate',\n 'endDate',\n 'editAllowed',\n 'tasksViewAllowed',\n 'tasksEditAllowed',\n 'versionViewAllowed',\n 'versionEditAllowed',\n 'versionMergeAllowed',\n 'billingEstimationSettings',\n 'teamViewAllowed',\n 'teamEditAllowed',\n 'resourcePlanViewAllowed',\n 'resourcePlanEditAllowed',\n 'expenseEstimateViewAllowed',\n 'expenseEstimateEditAllowed',\n 'revenueEstimateViewAllowed',\n 'revenueEstimateEditAllowed',\n 'billingEstimateViewAllowed',\n 'billingEstimateEditAllowed',\n 'coManagersViewAllowed',\n 'coManagersEditAllowed',\n 'userSkillEstimationViewAllowed',\n 'userSkillEstimationEditAllowed',\n 'financeViewAllowed',\n 'scheduleId',\n 'defaultTaskType',\n 'defaultTaskPlanningMode',\n 'isAutoPlanning',\n 'costCentersViewAllowed',\n 'costCentersEditAllowed',\n 'tariffsViewAllowed',\n 'tariffsEditAllowed',\n ],\n expand: [\n { billingType: { select: 'code' } },\n { manager: { select: ['name', 'id'] } },\n { sourceProject: { select: ['name', 'id'] } },\n { organization: { select: ['name', 'id'] } },\n { state: { select: ['name', 'id', 'code'] } },\n { currency: { select: ['name', 'id', 'alpha3Code'] } },\n ],\n };\n\n const scheduleQuery = {\n select: ['firstDay', 'daysCount', 'name', 'id', 'scheduleExceptionId'],\n expand: [\n {\n patternDays: {\n select: ['dayLength', 'dayNumber'],\n orderBy: 'dayNumber',\n },\n scheduleException: {\n select: 'id',\n expand: {\n exceptionDays: {\n select: ['date', 'dayLength'],\n orderBy: 'date',\n },\n },\n },\n },\n ],\n };\n\n forkJoin({\n project: this.data\n .collection('Projects')\n .entity(this.projectId)\n .get(projectQuery),\n schedule: this.data\n .collection('Projects')\n .entity(this.projectId)\n .collection('Schedule')\n .query(scheduleQuery),\n }).subscribe({\n next: (result: { project: Project; schedule: Schedule }) => {\n result.project.schedule = result.schedule;\n this.projectSubject.next(result.project);\n this.state$.next(CardState.Ready);\n this.navigationService.addRouteSegment({\n id: result.project.id,\n title: result.project.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n /**\n * Deletes current project.\n *\n * @returns Observable with boolean value: 'true' if delete was successful, else 'false'.\n */\n public deleteProject(): Observable {\n return this.data\n .collection('Projects')\n .entity(this.projectId)\n .delete()\n .pipe(\n map(() => true),\n catchError((error: Exception) => {\n this.notification.error(error.message);\n return of(false);\n }),\n );\n }\n\n public updateInheritedProjects(): void {\n this.actionService.action('updateInheritedProjects').start();\n this.data\n .collection('Projects')\n .entity(this.projectId)\n .action('WP.UpdateInheritedProjects')\n .execute()\n .subscribe({\n next: () => {\n this.actionService.action('updateInheritedProjects').stop();\n this.notification.successLocal(\n 'components.projectCardService.messages.inheritedProjectsHaveBeenUpdated',\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n public dispose() {\n this.destroyed$.next();\n }\n\n /** Resets the task's cache by the ProjectTasksService. */\n public resetTaskCache(): void {\n this.projectTasksService.resetProjectTasks(\n this.project.id,\n this.versionCardService.projectVersion,\n );\n }\n\n /** Determines ability to entry editing.\n *\n * @param entry checking entry\n * @returns is entry can be editable.\n */\n public isEntryBlocked(entry: BaseEntry): boolean {\n // Entry can not be editing for non-working days for project with auto planning enabled.\n return !entry.scheduleHours && this.project?.isAutoPlanning;\n }\n\n /** Determines ability to edit line.\n *\n * @param line checking line\n * @returns is line can be editable.\n */\n public isLineBlocked(line: ResourceViewGroupLine | TaskLine): boolean {\n return line.isSummaryTask && this.project?.isAutoPlanning;\n }\n\n /** Returns schedule exception.\n *\n * @param scheduleExceptionId id of schedule exception\n * @returns Observable of schedule exception\n */\n private getProjectScheduleException(\n scheduleExceptionId: string,\n ): Observable {\n const params = {\n select: 'id',\n expand: {\n exceptionDays: { select: ['date', 'dayLength'], orderBy: 'date' },\n },\n };\n\n return this.data\n .collection('ScheduleExceptions')\n .entity(scheduleExceptionId)\n .get(params)\n .pipe(shareReplay());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { CodedEntity } from 'src/app/shared/models/entities/coded-entity.model';\n\n/**\n * Provides methods to work with Categories at root application level.\n * */\n@Injectable()\nexport class ProjectTaskCategoriesService {\n /** Available Categories. */\n public categories$ = this.getCategories().pipe(shareReplay());\n\n constructor(private dataService: DataService) {}\n\n /**\n * Gets available Categories.\n *\n * @returns available Categories.\n * */\n private getCategories(): Observable> {\n return this.dataService.collection('ProjectTaskCategory').query();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, skip } from 'rxjs/operators';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n/**\n * Provides methods to work with Project versions on the Project card.\n * */\n@Injectable()\nexport class ProjectVersionCardService {\n /** The \"Work\" default project version to show in Project version list and Project selection to view the card. */\n private _workProjectVersion: ProjectVersion = {\n id: null,\n name: '',\n state: null,\n mainProject: null,\n masterBaseline: false,\n editAllowed: false,\n };\n\n private _projectVersion: ProjectVersion;\n private _projectVersions: Array;\n\n /** The Project version card open event subject. */\n private openProjectVersionCard = new BehaviorSubject(\n this._workProjectVersion,\n );\n\n get workProjectVersion() {\n return this._workProjectVersion;\n }\n\n get projectVersion() {\n return this._projectVersion;\n }\n\n get projectVersions() {\n return this._projectVersions;\n }\n\n set projectVersions(value: Array) {\n this._projectVersions = value;\n }\n\n /** The Project version card open event observable. */\n public openProjectVersionCard$ = this.openProjectVersionCard\n .asObservable()\n .pipe(\n skip(1),\n filter((p) => !!p),\n );\n\n /**\n * Updates the \"Work\" Project version shown in the Project version list on the Project card.\n *\n * @param project The Project. If not passed, the properties will be reset.\n * */\n public updateWorkProjectVersion(project?: Project) {\n if (project) {\n this._workProjectVersion.id = Guid.generate();\n this._workProjectVersion.name = project.name;\n this._workProjectVersion.mainProject = {\n id: project.id,\n name: project.name,\n };\n // The Project card tab edit rights must not depend on the Project entity edit ones.\n this._workProjectVersion.editAllowed = true /*project.editAllowed*/;\n } else {\n this._workProjectVersion.id = null;\n this._workProjectVersion.name = '';\n this._workProjectVersion.mainProject = null;\n this._workProjectVersion.editAllowed = false;\n }\n }\n\n /**\n * Determines, whether the Project or Project version is selected in the Project version list to show the Project card content.\n * The \"Work\" Project version has no Project version data.\n * The \"Work\" Project version is selected by default.\n * */\n public isWorkProjectVersion() {\n return ProjectVersionUtil.isWorkProjectVersion(this._projectVersion);\n }\n\n /**\n * Initializes the selected Project version.\n * The \"Work\" Project version is selected by default.\n * */\n public initProjectVersion() {\n this._projectVersion = this._workProjectVersion;\n }\n\n /**\n * Calls the active Project card tab reload with the Project/Project version data.\n *\n * @param projectVersion The Project version.\n * */\n public openVersionCard(projectVersion: ProjectVersion) {\n this._projectVersion = projectVersion;\n this.openProjectVersionCard.next(projectVersion);\n }\n\n /**\n * Changes the Project version.\n *\n * @param projectVersion The Project version.\n * */\n public changeVersion(projectVersion: ProjectVersion) {\n this._projectVersion = projectVersion;\n }\n\n /**\n * Sorts the Project version list depending on the numeric values in their names.\n *\n * @param projectVersions The Project version list.\n * @param refreshVersions Determines whether to refresh the service Project version list.\n * Default: false.\n * @returns The sorted Project version list.\n * */\n public sortVersions(\n projectVersions: Array,\n refreshVersions = false,\n ) {\n const versionsCopy = projectVersions.slice();\n const sorted = versionsCopy.sort(naturalSort('name'));\n if (refreshVersions) {\n this._projectVersions = sorted;\n }\n return sorted;\n }\n}\n","import { Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n StateService,\n TransitionService,\n UIRouterGlobals,\n} from '@uirouter/core';\nimport { FormControl } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectSettingsComponent } from '../settings/project-settings.component';\nimport { ProjectCardService } from './core/project-card.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionsService } from 'src/app/projects/project-versions/project-versions.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ProjectVersionState } from 'src/app/shared/models/enums/project-version-state.enum';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CoManagersModalComponent } from 'src/app/shared/components/co-managers-modal/co-managers-modal.component';\nimport { ProjectTaskCategoriesService } from 'src/app/projects/card/core/project-tasks-categories.service';\n\n@Component({\n selector: 'wp-project-card',\n templateUrl: './project-card.component.html',\n styleUrls: ['./project-card.component.scss'],\n providers: [\n LifecycleService,\n { provide: META_ENTITY_TYPE, useValue: 'Project' },\n ProjectCardService,\n ProjectVersionsService,\n ProjectVersionCardService,\n OverviewKpiService,\n ScheduleService,\n ScheduleNavigationService,\n ProjectTaskCategoriesService,\n ],\n standalone: false,\n})\nexport class ProjectCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n project: Project;\n projectTotal: any;\n\n projectVersions: ProjectVersion[] = [];\n projectVersionCtrl = new FormControl(null);\n tabs: TabLink[] = [];\n private subscriptions: Subscription[] = [];\n private onTransitionSuccessListener;\n\n constructor(\n public uiRouterGlobals: UIRouterGlobals,\n public versionService: ProjectVersionsService,\n public versionCardService: ProjectVersionCardService,\n public service: ProjectCardService,\n public stateService: StateService,\n private app: AppService,\n private modal: NgbModal,\n private notification: NotificationService,\n private actionPanelService: ActionPanelService,\n private data: DataService,\n private overviewKpiService: OverviewKpiService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private transitionService: TransitionService,\n private readonly messageService: MessageService,\n private readonly navigationService: NavigationService,\n ) {}\n\n public saveName = (name: string) =>\n this.data.collection('Projects').entity(this.entityId).patch({ name });\n\n public openSettings() {\n const ref = this.modal.open(ProjectSettingsComponent, { size: 'lg' });\n (ref.componentInstance as ProjectSettingsComponent).projectId =\n this.entityId;\n ref.result.then(\n () => this.service.load(),\n () => null,\n );\n }\n\n public openCoManagers() {\n const modalRef = this.modal.open(CoManagersModalComponent);\n const instance = modalRef.componentInstance as CoManagersModalComponent;\n instance.readonly = !this.project.coManagersEditAllowed;\n instance.type = 'project';\n instance.manager = this.project.manager;\n instance.entityId = this.entityId;\n }\n\n public openUserInfo() {\n const userId = this.project.manager.id;\n const target = document.getElementById('manager');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n openBooking(): void {\n this.stateService.go('filteredBooking', {\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.project.name,\n filter: [{ projectId: { type: 'guid', value: this.project.id } }],\n }),\n });\n }\n\n openProjectVersions(): void {\n this.stateService.go('projectsVersions', {\n routeMode: RouteMode.continue,\n projectId: this.entityId,\n });\n }\n\n ngOnInit() {\n this.actionPanelService.setHasAutosave(true);\n\n if (this.uiRouterGlobals.params.openVersionId) {\n this.versionService\n .getVersion(this.uiRouterGlobals.params.openVersionId)\n .pipe(take(1))\n .subscribe({\n next: (version) => {\n this.versionCardService.openVersionCard(version);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n this.stateService.go('.', {\n entityId: this.uiRouterGlobals.params.entityId,\n openVersionId: null,\n });\n } else {\n this.service.load();\n }\n\n this.actionPanelService.set([\n {\n title: 'projects.projects.card.actions.settings.label',\n hint: 'projects.projects.card.actions.settings.hint',\n name: 'openSettings',\n isDropDown: false,\n iconClass: 'bi bi-sliders2',\n isBusy: false,\n isVisible: true,\n handler: () => this.openSettings(),\n },\n {\n title: 'projects.projects.card.actions.booking.label',\n hint: 'projects.projects.card.actions.booking.hint',\n name: 'openBooking',\n isDropDown: false,\n iconClass: 'bi bi-calendar-check',\n isBusy: false,\n isVisible: this.app.checkFeature(Feature.booking),\n handler: () => this.openBooking(),\n },\n {\n title: 'projects.projects.card.actions.projectVersions.label',\n hint: 'projects.projects.card.actions.projectVersions.hint',\n name: 'projectVersions',\n isDropDown: false,\n iconClass: null,\n isBusy: false,\n isVisible: false,\n handler: () => this.openProjectVersions(),\n },\n {\n name: 'updateInheritedProjects',\n title:\n 'components.projectCardComponent.actions.updateInheritedProjects',\n hint: 'components.projectCardComponent.actions.updateInheritedProjects',\n\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.service.updateInheritedProjects(),\n },\n ]);\n\n this.actionPanelService.setAdditional([\n {\n name: 'delete',\n title: 'projects.projects.card.actions.delete.label',\n hint: 'projects.projects.card.actions.delete.hint',\n isBusy: false,\n isVisible: true,\n handler: () => this.deleteProject(),\n },\n ]);\n\n const project$$ = this.service.project$.subscribe((project: Project) => {\n this.project = project;\n this.versionCardService.updateWorkProjectVersion(project);\n if (\n !this.versionCardService.projectVersion ||\n this.versionCardService.isWorkProjectVersion()\n ) {\n this.versionCardService.initProjectVersion();\n this.projectVersionCtrl.patchValue(\n this.versionCardService.projectVersion,\n { emitEvent: false },\n );\n }\n\n this.tabs = [];\n\n this.tabs.push({\n header: 'projects.projects.card.tabs.overview',\n state: 'project.overview',\n });\n\n if (project.teamViewAllowed) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.team',\n state: 'project.team',\n });\n }\n\n if (project.tariffsViewAllowed && this.service.isProjectBillable) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.tariffs',\n state: 'project.tariffs',\n });\n }\n\n if (\n project.tasksViewAllowed &&\n this.app.checkFeature(Feature.projectTasks)\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.tasks',\n state: 'project.tasks',\n });\n }\n\n if (\n project.resourcePlanViewAllowed &&\n this.app.checkFeature(Feature.resourcePlan)\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.resources',\n state: 'project.resources',\n });\n }\n\n if (\n this.app.checkFeature(Feature.booking) &&\n this.versionCardService.isWorkProjectVersion()\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.resourceRequirements',\n state: 'project.resourceRequirements',\n });\n }\n\n if (\n (project.financeViewAllowed ||\n project.revenueEstimateViewAllowed ||\n project.billingEstimateViewAllowed) &&\n this.app.checkFeature(Feature.finance) &&\n project.billingType.code !== ProjectBillingType.nonBillable.code\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.rbc',\n state: 'project.rbc',\n });\n }\n\n if (\n (project.financeViewAllowed || project.expenseEstimateViewAllowed) &&\n this.app.checkFeature(Feature.finance)\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.expenses',\n state: 'project.expenses',\n });\n }\n\n if (\n project.costCentersViewAllowed &&\n this.versionCardService.isWorkProjectVersion()\n ) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.costCenters',\n state: 'project.costCenters',\n });\n }\n\n if (project.financeViewAllowed && this.app.checkFeature(Feature.pnl)) {\n this.tabs.push({\n header: 'projects.projects.card.tabs.pnl',\n state: 'project.pnl',\n });\n }\n\n if (\n !this.versionCardService.isWorkProjectVersion() &&\n this.tabs.findIndex((t) =>\n (this.uiRouterGlobals?.current?.name ?? '').startsWith(t.state),\n ) === -1\n ) {\n this.stateService.go('project.overview');\n }\n\n this.actionPanelService.action('projectVersions').isShown =\n project.versionViewAllowed;\n this.versionService.load(project.id);\n });\n\n this.onTransitionSuccessListener = this.transitionService.onSuccess(\n null,\n () => {\n if (this.project) {\n this.service.resetTaskCache();\n }\n },\n );\n\n this.subscriptions.push(\n project$$,\n this.service.projectTotal$.subscribe((projectTotal: any) => {\n this.projectTotal = projectTotal;\n }),\n // Обработка события открытия карточки версии.\n this.versionCardService.openProjectVersionCard$.subscribe((version) => {\n this.projectVersionCtrl.patchValue(version, { emitEvent: false });\n this.service.load();\n }),\n this.versionService.projectVersions$.subscribe((versions) => {\n this.projectVersions = versions.filter(\n (v) => v.state.id !== ProjectVersionState.cancelledStateId,\n );\n if (\n !this.versionCardService.isWorkProjectVersion() &&\n !versions.find((v) => v.id === this.projectVersionCtrl.value.id)\n ) {\n this.versionCardService.initProjectVersion();\n this.projectVersionCtrl.patchValue(\n this.versionCardService.projectVersion,\n );\n }\n }),\n this.projectVersionCtrl.valueChanges.subscribe(() => {\n this.versionService\n .changeVersion(this.projectVersionCtrl.value)\n .subscribe({\n next: () => {\n this.overviewKpiService.settings.task = null;\n this.service.load();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }),\n );\n }\n\n /** Deletes project. */\n private deleteProject(): void {\n this.messageService\n .confirmLocal('shared2.messages.deleteConfirmation')\n .then(\n () => {\n this.service.deleteProject().subscribe((isDeleted) => {\n if (isDeleted) {\n this.notification.successLocal(\n 'shared2.messages.deleteCompleted',\n );\n const selectedNavigationItem =\n this.navigationService.selectedNavigationItem;\n this.stateService.go(\n selectedNavigationItem?.state ?? 'projects',\n selectedNavigationItem?.stateParams,\n );\n }\n });\n },\n () => null,\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.onTransitionSuccessListener();\n this.versionCardService.initProjectVersion();\n this.service.dispose();\n }\n}\n","\n\n\n\n\n\n\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n {{ 'projects.projects.settings.props.manager.label' | translate }}:\n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n {{ 'projects.projects.settings.props.client.label' | translate }}:\n
    \n \n
    \n\n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
      \n
    • \n -1 }\"\n [uiSref]=\"tab.state\"\n [uiParams]=\"{ routeMode: 'keep' }\"\n [attr.data-test]=\"tab.state\"\n >\n {{ tab.header | translate }}\n \n
    • \n
    \n\n
    \n \n
    \n \n \n {{ 'projects.projects.card.settingsMenu.coManagers' | translate }}\n \n
    \n
    \n\n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ProjectOverviewModule } from './project-overview/project-overview.module';\nimport { ProjectTasksModule } from './project-tasks/project-tasks.module';\nimport { ProjectCardComponent } from './project-card.component';\nimport { ProjectTeamModule } from './project-team/project-team.module';\nimport { ProjectPnlModule } from './project-pnl/project-pnl.module';\nimport { ProjectExpenseEstimatesModule } from './project-expenses/project-expense-estimates/project-expense-estimates.module';\nimport { ProjectRbcModule } from './project-rbc/project-rbc.module';\nimport { ProjectExpensesModule } from './project-expenses/project-expenses.module';\nimport { ProjectVersionsModule } from 'src/app/projects/project-versions/project-versions.module';\nimport { ProjectResourcesModule } from './project-resources/project-resources.module';\nimport { ProjectResourceRequirementsModule } from 'src/app/projects/card/project-resource-requirements/project-resource-requirements.module';\nimport { ProjectCostCentersModule } from 'src/app/projects/card/project-cost-centers/project-cost-centers.module';\nimport { ProjectTariffsModule } from 'src/app/projects/card/project-tariffs/project-tariffs.module';\n\n@NgModule({\n declarations: [ProjectCardComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProjectOverviewModule,\n ProjectTasksModule,\n ProjectTeamModule,\n ProjectTariffsModule,\n ProjectExpenseEstimatesModule,\n ProjectResourceRequirementsModule,\n ProjectResourcesModule,\n ProjectPnlModule,\n ProjectExpenseEstimatesModule,\n ProjectExpensesModule,\n ProjectRbcModule,\n ProjectVersionsModule,\n ProjectCostCentersModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project',\n url: '/projects/{entityId:guid}?{navigation}&{route}',\n component: ProjectCardComponent,\n dynamic: true,\n params: {\n navigation: 'projects.allProjects',\n openVersionId: null,\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n redirectTo: (trans) => ({\n state: 'project.overview',\n params: trans.params(),\n }),\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ProjectCardModule {}\n","import {\n DestroyRef,\n Inject,\n inject,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { filter, Observable } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectCostCenter } from 'src/app/projects/card/project-cost-centers/models/project-cost-center.model';\nimport { ProjectCostCenterModalComponent } from 'src/app/projects/card/project-cost-centers/project-cost-center-modal/project-cost-center-modal.component';\nimport { ProjectCostCentersToolbarComponent } from 'src/app/projects/card/project-cost-centers/project-cost-centers-toolbar/project-cost-centers-toolbar.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CurrencyValue } from 'src/app/shared/models/entities/settings/currency-value.model';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Injectable()\nexport class ProjectCostCentersService {\n public formArray = this.fb.array([]);\n\n public get readonly(): boolean {\n return !this.projectCardService.project.costCentersEditAllowed;\n }\n\n public gridOptions: GridOptions = {\n css: 'wp-nested-table',\n sorting: false,\n resizableColumns: true,\n selectionType: SelectionType.range,\n toolbar: ProjectCostCentersToolbarComponent,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.createCostCenter();\n },\n },\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup: UntypedFormGroup) => !!formGroup,\n handlerFn: () => {\n this.editCostCenter(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) => !!formGroup,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteCostCenter(formGroup.value.id),\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => true,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.editCostCenter(formGroup.getRawValue());\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteCostCenter(formGroup.value.id),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n /** Prevents cost centers autosaving. */\n private isStopSaving = false;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId: string,\n private projectCardService: ProjectCardService,\n private listService: ListService,\n private savingQueueService: SavingQueueService,\n private gridService: GridService,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private notificationService: NotificationService,\n private modal: NgbModal,\n private injector: Injector,\n private customFieldService: CustomFieldService,\n ) {\n this.savingQueueService.delayDuration = 0;\n }\n\n /** Loads project cost centers. */\n public load(): void {\n this.savingQueueService.save().then(\n () => {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query: any = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'actualCost',\n 'actualExpenses',\n 'created',\n 'modified',\n ],\n expand: [\n {\n legalEntity: {\n select: ['id', 'name'],\n },\n createdBy: {\n select: ['id', 'name'],\n },\n modifiedBy: {\n select: ['id', 'name'],\n },\n },\n ],\n };\n this.customFieldService.enrichQuery(query, 'ProjectCostCenter');\n\n this.dataService\n .collection('Projects')\n .entity(this.projectId)\n .collection('ProjectCostCenters')\n .query(query)\n .subscribe({\n next: (costCenters: ProjectCostCenter[]) => {\n costCenters.forEach((costCenter) => {\n (costCenter.actualCost as unknown as CurrencyValue) = {\n value: costCenter.actualCost,\n currencyCode:\n this.projectCardService.project.currency.alpha3Code,\n };\n (costCenter.actualExpenses as unknown as CurrencyValue) = {\n value: costCenter.actualExpenses,\n currencyCode:\n this.projectCardService.project.currency.alpha3Code,\n };\n const group = this.getCostCenterFormGroup();\n group.patchValue(costCenter, { emitEvent: false });\n this.formArray.push(group);\n });\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n },\n () => null,\n );\n }\n\n /** Opens modal window for creating cost center. */\n public createCostCenter(): void {\n const modalRef = this.modal.open(ProjectCostCenterModalComponent, {\n injector: this.injector,\n });\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Opens modal window for editing cost center.\n *\n * @param costCenter editing cost center.\n */\n public editCostCenter(costCenter: ProjectCostCenter): void {\n const modalRef = this.modal.open(ProjectCostCenterModalComponent, {\n injector: this.injector,\n });\n\n const instance =\n modalRef.componentInstance as ProjectCostCenterModalComponent;\n instance.editingCostCenter = costCenter;\n\n modalRef.result.then(\n (costCenter) => {\n const costCenterFormGroup = this.formArray.controls.find(\n (control) => control.value.id === costCenter.id,\n );\n this.isStopSaving = true;\n costCenterFormGroup.patchValue(costCenter);\n this.isStopSaving = false;\n this.gridService.detectChanges();\n },\n () => null,\n );\n }\n\n /**\n * Deletes cost center.\n *\n * @param costCenterId id of deleting cost center.\n */\n public deleteCostCenter(costCenterId: string) {\n this.dataService\n .collection('ProjectCostCenters')\n .entity(costCenterId)\n .delete()\n .subscribe({\n next: () => {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === costCenterId,\n );\n this.formArray.controls.splice(index, 1);\n const groupForSelection =\n this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null;\n\n this.gridService.selectGroup(groupForSelection as UntypedFormGroup);\n\n this.gridService.detectChanges();\n this.notificationService.successLocal(\n 'projects.projects.card.costCenters.messages.deleted',\n );\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Returns DTO for cost center saving.\n *\n * @param costCenter cost center.\n * @returns cost center DTO.\n */\n public getCostCenterDTO(\n costCenter: ProjectCostCenter,\n ): Partial {\n return {\n id: costCenter.id,\n name: costCenter.name,\n projectId: this.projectId,\n legalEntityId: costCenter.legalEntity.id,\n isActive: costCenter.isActive,\n };\n }\n\n /**\n * Generates an update request for a project cost center.\n *\n * @param costCenter The project cost center to be updated.\n * @returns An observable of the updated project cost center.\n */\n public getCostCenterEditRequest(\n costCenter: ProjectCostCenter,\n isExistCostCenter: boolean,\n ): Observable {\n const costCenterDTO = this.getCostCenterDTO(costCenter);\n this.customFieldService.assignValues(\n costCenterDTO,\n costCenter,\n 'ProjectCostCenter',\n );\n\n return isExistCostCenter\n ? this.dataService\n .collection('ProjectCostCenters')\n .entity(costCenter.id)\n .update(costCenterDTO)\n : this.dataService.collection('ProjectCostCenters').insert(costCenterDTO);\n }\n\n /**\n * Returns cost center form group.\n *\n * @returns cost center form group.\n */\n private getCostCenterFormGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n name: [\n null,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n legalEntity: null,\n isActive: null,\n actualCost: null,\n actualExpenses: null,\n createdBy: null,\n modifiedBy: null,\n created: null,\n modified: null,\n });\n\n ['legalEntity', 'modifiedBy', 'createdBy'].forEach((key) => {\n group.controls[key].disable();\n });\n\n this.customFieldService.enrichFormGroup(\n group,\n 'ProjectCostCenter',\n false,\n false,\n );\n group.valueChanges\n .pipe(\n filter(() => !this.isStopSaving),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (group.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.entityNotSaved',\n );\n return;\n }\n\n this.savingQueueService.addToQueue(\n group.value.id,\n this.getCostCenterEditRequest(group.getRawValue(), true),\n );\n });\n\n return group;\n }\n\n /** Opens view configuration dialog. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectCostCentersService } from 'src/app/projects/card/project-cost-centers/core/project-cost-centers.service';\nimport { ProjectCostCenter } from 'src/app/projects/card/project-cost-centers/models/project-cost-center.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-project-cost-center-modal',\n templateUrl: './project-cost-center-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectCostCenterModalComponent implements OnInit {\n @Input() editingCostCenter: ProjectCostCenter;\n\n public isSaving: boolean;\n\n public form = this.fb.group({\n id: Guid.generate(),\n name: ['', Validators.required],\n legalEntity: [null, Validators.required],\n isActive: true,\n });\n\n constructor(\n @Inject('entityId') public projectId: string,\n public projectCostCentersService: ProjectCostCentersService,\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {}\n\n public ngOnInit(): void {\n this.customFieldService.enrichFormGroup(this.form, 'ProjectCostCenter');\n if (this.editingCostCenter) {\n this.form.patchValue(this.editingCostCenter);\n this.form.controls.legalEntity.disable();\n } else {\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'ProjectCostCenter',\n );\n }\n\n if (this.projectCostCentersService.readonly) {\n this.form.disable();\n }\n }\n\n /** Accepts of modal window.*/\n public ok(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n\n const request = this.projectCostCentersService.getCostCenterEditRequest(\n this.form.getRawValue(),\n !!this.editingCostCenter,\n );\n\n request.subscribe({\n next: (costCenter?: ProjectCostCenter) => {\n this.isSaving = false;\n const notificationString = this.editingCostCenter\n ? 'projects.projects.card.costCenters.messages.edited'\n : 'projects.projects.card.costCenters.messages.created';\n this.notificationService.successLocal(notificationString);\n this.activeModal.close(costCenter ?? this.form.getRawValue());\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Closes modal window without save. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n}\n","
    \n
    \n

    \n {{\n editingCostCenter\n ? editingCostCenter.name\n : ('projects.projects.card.costCenters.modal.header.create' | translate)\n }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n
    \n @if (!projectCostCentersService.readonly) {\n \n }\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-project-cost-centers-toolbar',\n templateUrl: './project-cost-centers-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectCostCentersToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n\n \n \n \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectCostCentersService } from 'src/app/projects/card/project-cost-centers/core/project-cost-centers.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { PROJECT_COST_CENTER } from 'src/app/shared/lists/project-cost-center.list';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-project-cost-centers',\n templateUrl: './project-cost-centers.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectCostCentersService,\n SavingQueueService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: PROJECT_COST_CENTER },\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ProjectCostCentersComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public service: ProjectCostCentersService,\n private projectCardService: ProjectCardService,\n private savingQueueService: SavingQueueService,\n ) {}\n\n public ngOnInit(): void {\n this.service.load();\n this.projectCardService.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.service.load());\n\n this.savingQueueService.error$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.service.load());\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectCardSharedModule } from 'src/app/projects/card/shared/project-card-shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectCostCentersComponent } from 'src/app/projects/card/project-cost-centers/project-cost-centers.component';\nimport { ProjectCostCentersToolbarComponent } from 'src/app/projects/card/project-cost-centers/project-cost-centers-toolbar/project-cost-centers-toolbar.component';\nimport { ProjectCostCenterModalComponent } from 'src/app/projects/card/project-cost-centers/project-cost-center-modal/project-cost-center-modal.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ProjectCostCentersComponent,\n ProjectCostCentersToolbarComponent,\n ProjectCostCenterModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n ProjectCardSharedModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.costCenters',\n url: '/cost-centers',\n component: ProjectCostCentersComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectCostCentersModule {}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Represents a Financial Account filter settings. */\nexport class ExpensesAccountFilterSettings implements BaseSettings {\n public readonly name = 'ExpensesAccountFilterSettings';\n public version: number;\n\n /** Determines whether to include Labor Cost or not. */\n public includeLaborCost: boolean;\n\n /**\n * Financial {@link FinancialAccount.name} (which are not included in balance) list to include.\n * @example\n * ['Corporate tax rate']\n */\n public includeFinAccountNamesNotIncludedInBalance: string[];\n\n public getDefault(): ExpensesAccountFilterSettings {\n return {\n version: 1,\n includeLaborCost: false,\n includeFinAccountNamesNotIncludedInBalance: [],\n } as ExpensesAccountFilterSettings;\n }\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { ExpensesGroupType, ExpensesSectionType } from './expenses-view.model';\n\nexport class ExpensesCalendarSettings implements BaseSettings {\n public readonly name = 'ExpensesCalendarSettings';\n public version: number;\n\n /**\n * Calendar planning scale\n */\n public planningScale: PlanningScale;\n\n /**\n * Calendar displayed groups.\n * @example\n * ['estimate', 'plan']\n */\n public displayedGroups: ExpensesGroupType[];\n\n /**\n * Calendar displayed others in each section and group.\n * Calendar displayed others.\n * @example\n * ['expenses': ['estimate', 'plan']]\n */\n public displayedOthers: Record;\n\n public getDefault(): ExpensesCalendarSettings {\n const defaultDisplayedOthers = {} as Record<\n ExpensesSectionType,\n ExpensesGroupType[]\n >;\n Object.values(ExpensesSectionType).forEach((sectionType) => {\n defaultDisplayedOthers[sectionType] = Object.values(ExpensesGroupType);\n });\n\n return {\n version: 6,\n planningScale: PlanningScale.Week,\n displayedGroups: Object.values(ExpensesGroupType),\n displayedOthers: defaultDisplayedOthers,\n } as ExpensesCalendarSettings;\n }\n}\n","import { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { DateValue, RuleDateValue } from './expenses-data.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { RecurringExpenseRuleDto } from 'src/app/shared/models/entities/projects/recurring-expense-rule-dto.model';\n\n/** Represents Project Expenses calendar section view. */\nexport class ExpensesView {\n expenses: ExpensesViewSection;\n}\n\n/** Represents Project Expenses calendar section view group. */\nexport class ExpensesViewSection {\n /** Localized group title. */\n title: string;\n\n /** Group type. */\n type: ExpensesSectionType;\n\n /** Plan group. */\n plan: ExpensesViewGroup;\n\n /** Estimate group. */\n estimate: ExpensesViewGroup;\n\n /** Actual group. */\n actual: ExpensesViewGroup;\n\n /** Forecast group. */\n forecast: ExpensesViewGroup;\n}\n\n/** Represents Project Expenses calendar section view group type. */\nexport enum ExpensesSectionType {\n expenses = 'expenses',\n}\n\n/** Represents Project Expenses calendar section view group data. */\nexport class ExpensesViewGroup {\n /** ID. */\n id: string;\n\n /** Localized title. */\n title: string;\n\n /** Type. */\n type: ExpensesGroupType;\n\n /** Determines whether group data is expanded or not. */\n isExpanded: boolean;\n\n /** Determines whether all group data is expanded or not. */\n isAllExpanded: boolean;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: DateValue[];\n\n /** Project/Project version task lines. */\n taskLines: ExpensesViewTaskLine[];\n\n /** Other line. */\n otherLine: ExpensesViewOtherLine;\n}\n\n/** Represents Project Expenses calendar section view group data type. */\nexport enum ExpensesGroupType {\n plan = 'plan',\n estimate = 'estimate',\n actual = 'actual',\n forecast = 'forecast',\n}\n\n/** Represents Project Expenses calendar view task line. */\nexport class ExpensesViewTaskLine {\n /** Task. */\n task: ProjectTask;\n\n /** Determines whether task line is expanded or not. */\n isExpanded: boolean;\n\n /** Localized title. */\n title: string;\n\n /** Task indent. */\n indent: number;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: DateValue[];\n\n /** Expense type lines. */\n typeLines: ExpensesViewTypeLine[];\n}\n\n/** Represents Project Expenses calendar view other line. */\nexport class ExpensesViewOtherLine {\n /** Localized title. */\n title: string;\n\n /** Localized hint. */\n verboseHint: string;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: DateValue[];\n\n /** Expense type lines. */\n typeLines: ExpensesViewTypeLine[];\n}\n\n/** Represents Project Expenses calendar view expense type line. */\nexport class ExpensesViewTypeLine {\n /** Account. */\n account: FinancialAccount;\n\n /** Determines whether expense type line is expanded or not. */\n isExpanded: boolean;\n\n /** Localized title. */\n title: string;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: DateValue[];\n\n /** Inner expense type line. */\n innerLine?: ExpensesViewInnerTypeLine;\n\n /** Expense rule lines. */\n rules: ExpensesViewRuleLine[];\n}\n\n/** Represents Project Expenses calendar view inner expense type line. */\nexport class ExpensesViewInnerTypeLine {\n /** Expense type. */\n account: FinancialAccount;\n\n /** Localized title. */\n title: string;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: DateValue[];\n}\n\n/** Represents Project Expenses calendar view expense rule line. */\nexport class ExpensesViewRuleLine {\n /** Expense rule. */\n rule: RecurringExpenseRuleDto;\n\n /** Localized title. */\n title: string;\n\n /** Total sum. */\n total: number;\n\n /** Grouped date amount values. */\n entries: RuleDateValue[];\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectExpenseEstimatesService } from '../project-expense-estimates.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-project-expense-estimates-toolbar',\n styleUrl: './project-expense-estimates-toolbar.component.scss',\n templateUrl: './project-expense-estimates-toolbar.component.html',\n standalone: false,\n})\nexport class ProjectExpenseEstimatesToolbarComponent extends AbstractToolbar {\n constructor(\n public projectExpenseEstimatesService: ProjectExpenseEstimatesService,\n private listService: ListService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n /** Executes `addEntry` command. */\n public addEntry(): void {\n this.gridService.execute('addEntry');\n }\n\n /** Executes `recognize` command. */\n public recognize(): void {\n this.gridService.execute('recognize');\n }\n\n /** Opens view settings modal and sets new settings on submit. */\n public setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.projectExpenseEstimatesService.gridOptions.view =\n this.listService.getGridView();\n this.projectExpenseEstimatesService.load();\n },\n () => null,\n );\n }\n}\n","
    \n \n\n
    \n @if (!(gridService.readonly$ | async)) {\n \n \n {{ 'shared.actions.create' | translate }}\n \n }\n\n \n {{ 'shared.actions.edit' | translate }}\n \n @if (!(gridService.readonly$ | async)) {\n \n \n \n }\n
    \n\n
    \n @if (projectExpenseEstimatesService.isWorkProjectVersion) {\n \n {{ 'projects.projects.card.expenseEstimates.actions.createRequest' | translate }}\n \n }\n\n @if (!(gridService.readonly$ | async)) {\n \n {{ 'shared.actions.clear' | translate }}\n \n }\n
    \n\n
    \n
    \n \n {{ projectExpenseEstimatesService.getCurrentGroupingLabel() }}\n \n
    \n \n {{ 'projects.projects.card.finance.grouping.none' | translate }}\n \n \n {{ 'projects.projects.card.finance.grouping.byTasks' | translate }}\n \n
    \n
    \n \n \n \n \n
    \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { ProjectExpenseEstimatesService } from './project-expense-estimates.service';\nimport { ProjectExpensesService } from 'src/app/projects/card/project-expenses/project-expenses.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ExpensesAccountFilterService } from '../shared/core/expenses-account-filter.service';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\n\n@Component({\n selector: 'wp-project-expenses-estimates',\n templateUrl: './project-expense-estimates.component.html',\n providers: [\n SavingQueueService,\n ListService,\n GridService,\n ProjectExpensesService,\n ProjectExpenseEstimatesService,\n ExpensesAccountFilterService,\n FinancialTaskCellService,\n ],\n standalone: false,\n})\nexport class ProjectExpenseEstimatesComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProjectExpenseEstimatesService,\n private projectService: ProjectCardService,\n private projectExpensesService: ProjectExpensesService,\n private accountFilterService: ExpensesAccountFilterService,\n private financialAccountsService: FinancialAccountsService,\n ) {}\n\n ngOnInit(): void {\n this.projectService.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.service.load());\n this.projectExpensesService.ruleModalClosed$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.load();\n });\n this.financialAccountsService.projectExpensesAccountsNotIncludedInBalance$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((accounts) => {\n this.accountFilterService.updateAccountsNotIncludedInBalance(accounts);\n this.projectExpensesService.init();\n this.service.init();\n });\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n this.projectExpensesService.dispose();\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\n\n// eslint-disable-next-line max-len\nimport { ProjectExpenseEstimatesToolbarComponent } from './project-expense-estimates-toolbar/project-expense-estimates-toolbar.component';\nimport { ProjectExpenseEstimatesComponent } from './project-expense-estimates.component';\nimport { ProjectExpenseEstimatesList } from 'src/app/shared/lists/project-expense-estimates.list';\nimport { ProjectCardSharedModule } from '../../shared/project-card-shared.module';\nimport { ProjectExpenseTypeReadonlyCellComponent } from './shared/project-expense-type-cell/project-expense-type-readonly-cell.component';\nimport { ExpenseEstimateModalComponent } from './shared/expense-estimate-modal/expense-estimate-modal.component';\nimport { ProjectExpenseTypeCellComponent } from './shared/project-expense-type-cell/project-expense-type-cell.component';\nimport { ProjectExpensesSharedModule } from '../shared/project-expenses-shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ProjectExpenseEstimatesComponent,\n ProjectExpenseEstimatesToolbarComponent,\n ExpenseEstimateModalComponent,\n ProjectExpenseTypeCellComponent,\n ProjectExpenseTypeReadonlyCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n ProjectExpensesSharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.expenses.estimates',\n url: '/estimates',\n component: ProjectExpenseEstimatesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ProjectExpenseEstimatesList },\n ],\n },\n ],\n }),\n ],\n})\nexport class ProjectExpenseEstimatesModule {}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\n\nimport { assign, findIndex, orderBy, uniq } from 'lodash';\nimport { DateTime } from 'luxon';\nimport { forkJoin, Subject } from 'rxjs';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ExpenseEstimateModalComponent } from './shared/expense-estimate-modal/expense-estimate-modal.component';\nimport { ExpenseEstimateLine } from './shared/model/expense-estimate-line.model';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { StateService } from '@uirouter/core';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ProjectExpenseEstimatesToolbarComponent } from './project-expense-estimates-toolbar/project-expense-estimates-toolbar.component';\nimport { ExpenseEstimatesSettings } from './shared/model/expense-estimates-settings.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectExpenseEstimate } from 'src/app/shared/models/entities/projects/project-expense-estimate.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { RuleCalculationMethod } from 'src/app/shared/models/enums/rule-calculation-method.enum';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\nimport {\n Command,\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridCurrencyColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { ExpensesAccountFilterService } from '../shared/core/expenses-account-filter.service';\n\n@Injectable()\nexport class ProjectExpenseEstimatesService {\n get isWorkProjectVersion() {\n return this._isWorkProjectVersion;\n }\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n toolbar: ProjectExpenseEstimatesToolbarComponent,\n commands: [\n {\n name: 'addEntry',\n handlerFn: () => this.addEntry(),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'edit',\n handlerFn: (group: UntypedFormGroup) => this.edit(group),\n allowedFn: (row: any) => row && !row.isTaskGroup,\n },\n {\n name: 'delete',\n handlerFn: (row: any) => this.deleteEntry(row.originalId),\n allowedFn: (row: any) =>\n !this.readonly &&\n row &&\n !row.isTaskGroup &&\n !row.isRuleReadonly &&\n !row.isAutomatic,\n },\n {\n name: 'createRequest',\n handlerFn: (group: UntypedFormGroup) => this.createRequest(group),\n allowedFn: (row: any) =>\n this._isWorkProjectVersion &&\n row &&\n !row.isTaskGroup &&\n !row.isAutomatic,\n },\n {\n name: 'clear',\n handlerFn: () => this.clear(),\n allowedFn: () => !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !formGroup.value.isTaskGroup,\n handlerFn: (formGroup: UntypedFormGroup) => this.edit(formGroup),\n },\n {\n name: 'createRequest',\n label: 'projects.projects.card.expenseEstimates.actions.createRequest',\n allowedFn: (formGroup: UntypedFormGroup) =>\n this._isWorkProjectVersion &&\n !formGroup.value.isTaskGroup &&\n !formGroup.value.isAutomatic,\n handlerFn: (group: UntypedFormGroup) => this.createRequest(group),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly &&\n !formGroup.value.isTaskGroup &&\n !formGroup.value.isRuleReadonly &&\n !formGroup.value.isAutomatic,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteEntry(formGroup.value.originalId),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n public settings: ExpenseEstimatesSettings;\n\n public commands: Command[];\n\n public totals: Dictionary = {};\n\n public readonly: boolean;\n\n public formArray: UntypedFormArray = this.fb.array([]);\n\n private storageSettingsName = 'projectExpenseEstimatesSettings';\n\n private entries: ProjectExpenseEstimate[] = [];\n private mainTask: ProjectTask;\n private tasks: ProjectTask[] = [];\n private allTasks: ProjectTask[] = [];\n\n /** Task amounts. */\n private tasksAmounts: Dictionary = {};\n\n private project: Project;\n\n private _isWorkProjectVersion: boolean;\n\n /** Component subscriptions cancel subject. */\n public reloaded$ = new Subject();\n private destroyed$ = new Subject();\n\n private getCollection = () => this.data.collection('ProjectExpenseEstimates');\n\n constructor(\n @Inject('entityId') public entityId: string,\n public autosave: SavingQueueService,\n public app: AppService,\n public modal: NgbModal,\n public listService: ListService,\n public gridService: GridService,\n public notification: NotificationService,\n private injector: Injector,\n private blockUI: BlockUIService,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private state: StateService,\n private message: MessageService,\n private financialAccountsService: FinancialAccountsService,\n private localStorageService: LocalStorageService,\n private translate: TranslateService,\n private projectTasksService: ProjectTasksService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private accountFilterService: ExpensesAccountFilterService,\n private projectCardService: ProjectCardService,\n private messageService: MessageService,\n financialTaskCellService: FinancialTaskCellService,\n ) {\n financialTaskCellService.toggleTaskId$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((id) => {\n this.toggleTask(id);\n });\n financialTaskCellService.projectVersion =\n this.versionCardService.projectVersion;\n }\n\n /**\n * Inits service subscriptions.\n */\n init() {\n this.settings = this.localStorageService.retrieve(this.storageSettingsName);\n if (!this.settings) {\n this.settings = {\n grouping: 'none',\n };\n this.localStorageService.store(this.storageSettingsName, this.settings);\n }\n\n this.projectCardService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n this.readonly =\n !project.expenseEstimateEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n this._isWorkProjectVersion =\n this.versionCardService.isWorkProjectVersion();\n if (this.readonly) {\n this.formArray.disable();\n this.gridService.detectChanges();\n }\n const amountColumn = this.gridOptions.view.columns.find(\n (column) => column.name === 'amount',\n ) as GridCurrencyColumn;\n amountColumn.currencyCode = this.project.currency.alpha3Code;\n });\n\n this.accountFilterService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n });\n\n this.autosave.error$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.load());\n\n this.load();\n this.loadMainTask();\n }\n\n /**\n * Disposes all subscriptions.\n * */\n public dispose() {\n this.destroyed$.next();\n this.reloaded$.next();\n }\n\n /**\n * Toggles task group (expand/collapse).\n *\n * @param taskId Task ID.\n */\n public toggleTask(taskId: string) {\n const task = this.tasks.find((t) => t.id === taskId);\n task.isExpanded = !task.isExpanded;\n this.updateFormArray();\n }\n\n /**\n * Loads Main task.\n * */\n public loadMainTask() {\n this.projectTasksService\n .getProjectTasks(this.entityId, this.versionCardService.projectVersion)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (tasks: ProjectTask[]) => {\n this.mainTask =\n tasks?.length > 0 ? tasks.find((t) => !t.leadTaskId) : null;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Loads data.\n * */\n public load(): void {\n this.reloaded$.next();\n this.projectTasksService.resetProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n );\n this.autosave.save().then(() => {\n this.formArray.clear();\n this.totals = null;\n this.gridService.setLoadingState(true);\n\n forkJoin({\n entries: this.getCollection().query(\n this.getQuery(),\n ),\n tasks: this.projectTasksService.getProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n ),\n })\n .pipe(takeUntil(this.reloaded$))\n .subscribe({\n next: (value) => {\n this.entries = value.entries;\n\n this.entries.forEach((e) => {\n e.added = 0;\n });\n\n this.allTasks = value.tasks;\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n });\n }\n\n /**\n * Adds new Expense estimate entity row to grid.\n * Saves it in queue.\n * */\n public addEntry() {\n this.financialAccountsService.projectExpensesAccounts$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((accounts) => {\n if (!accounts.length) {\n this.message.errorLocal(\n 'projects.projects.card.expenseEstimates.accountsNotFound',\n );\n return;\n }\n\n const account = accounts[0];\n const entry: ProjectExpenseEstimate = {\n projectTask:\n this.gridService.selectedGroupValue?.projectTask ?? this.mainTask,\n account,\n date: DateTime.now().toISODate(),\n amount: 0,\n id: Guid.generate(),\n description: '',\n added: new Date().getTime(),\n isAutomatic: false,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n entry,\n this.entityId,\n );\n\n this.entries.push(entry);\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n const indexOfNewEntry = (this.formArray.value as any[]).findIndex(\n (l) => l.id === entry.id,\n );\n\n this.gridService.selectGroup(\n this.formArray.at(indexOfNewEntry) as UntypedFormGroup,\n );\n\n const data = {\n projectTaskId: entry.projectTask.id,\n accountId: entry.account?.id,\n date: entry.date,\n amount: entry.amount,\n id: entry.id,\n description: entry.description,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.getCollection().insert(data),\n );\n });\n }\n\n /**\n * Deletes Expense estimate entity.\n *\n * @param id Entity ID.\n * */\n public deleteEntry(id: string): void {\n this.entries = this.entries.filter((l) => l.id !== id);\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n this.autosave.addToQueue(id, this.getCollection().entity(id).delete());\n }\n\n /**\n * Opens modal window to view/edit Expense estimate entity.\n *\n * @param group Expense estimate form group.\n * */\n public edit(group: UntypedFormGroup) {\n const ref = this.modal.open(ExpenseEstimateModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as ExpenseEstimateModalComponent;\n\n const groupValue: ProjectExpenseEstimate & { isRuleReadonly: boolean } =\n group.getRawValue();\n instance.entry = groupValue;\n instance.readonly =\n this.readonly || groupValue.isRuleReadonly || groupValue.isAutomatic;\n instance.projectId = this.entityId;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.projectVersion = this.versionCardService.projectVersion;\n\n ref.result.then(\n (result) => {\n group.patchValue(result);\n },\n () => null,\n );\n }\n\n /**\n * Creates Form group line.\n *\n * @returns Form group line.\n * */\n public getLineGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n originalId: null,\n date: [null, Validators.required],\n amount: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n account: [null, Validators.required],\n expenseRule: null,\n projectTask: [null, Validators.required],\n indent: 0,\n isRuleEntry: false,\n isRuleReadonly: false,\n isTaskGroup: false,\n isExpanded: true,\n isAutomatic: false,\n });\n\n group.valueChanges\n .pipe(takeUntil(this.reloaded$))\n .subscribe((line: ExpenseEstimateLine) => {\n const entry = this.entries.find((e) => e.id === line.originalId);\n assign(entry, line);\n entry.id = line.originalId;\n\n const data = {\n projectTaskId: entry.projectTask.id,\n accountId: entry.account?.id,\n expenseRuleId: entry.expenseRule?.id,\n date: entry.date,\n amount: entry.amount,\n id: line.originalId,\n description: entry.description,\n isAutomatic: entry.isAutomatic,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n data.id,\n this.getCollection().entity(data.id).update(data),\n );\n });\n\n group.controls['amount'].valueChanges\n .pipe(takeUntil(this.reloaded$))\n .subscribe(() => {\n // Find lead task.\n const getLeadTask = (task: ProjectTask): ProjectTask => {\n const leadTask = this.tasks.find((t) => t.id === task.leadTaskId);\n if (!leadTask) {\n return task;\n } else {\n return getLeadTask(leadTask);\n }\n };\n\n setTimeout(() => {\n this.calculateTotals();\n\n if (this.settings.grouping) {\n this.applyTotals([getLeadTask(group.value.projectTask)]);\n }\n });\n });\n\n group.controls['projectTask'].valueChanges\n .pipe(debounceTime(0), takeUntil(this.reloaded$))\n .subscribe(() => {\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n });\n\n return group;\n }\n\n /**\n * Gets localized current grouping label.\n *\n * @returns Localized grouping label.\n * */\n public getCurrentGroupingLabel(): string {\n return this.translate.instant(\n `projects.projects.card.finance.grouping.${this.settings?.grouping}`,\n );\n }\n\n /**\n * Изменение группировки строк.\n * Sets row grouping.\n *\n * @param grouping Row grouping.\n * */\n public setGrouping(grouping: any) {\n this.settings.grouping = grouping;\n this.localStorageService.store(this.storageSettingsName, this.settings);\n\n this.updateFormArray();\n }\n\n /**\n * Calculates Task and general totals.\n * */\n private calculateTotals() {\n this.tasksAmounts = {};\n\n const calculateTasksTotal = (tasks: ProjectTask[]): number => {\n let totalAmount = 0;\n tasks.forEach((task) => {\n let amount =\n this.entries\n .filter((e) => e.projectTask.id === task.id)\n ?.reduce((total, entry) => total + entry.amount, 0) ?? 0;\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n amount += calculateTasksTotal(children);\n totalAmount += amount;\n this.tasksAmounts[task.id] = amount;\n });\n\n return totalAmount;\n };\n\n // First level tasks.\n const topTasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n this.totals = {};\n this.totals['account'] = uniq(this.entries.map((e) => e.account.id)).length;\n this.totals['expenseRule'] = uniq(\n this.entries.filter((e) => !!e.expenseRule).map((e) => e.expenseRule.id),\n ).length;\n this.totals['amount'] = calculateTasksTotal(topTasks);\n this.totals['projectTask'] = this.entries.length;\n }\n\n /**\n * Updates task structure by rows.\n * */\n private updateTasks() {\n this.tasks = [];\n\n // Get task structure.\n this.entries.forEach((entry) => {\n if (\n entry.projectTask &&\n !this.tasks.find((t) => t.id === entry.projectTask.id)\n ) {\n entry.projectTask.isExpanded = true;\n this.tasks.push(entry.projectTask);\n }\n });\n\n /**\n * Restores broken chains recursively.\n *\n * @param task Project Task.\n * */\n const restoreLinks = (task: ProjectTask) => {\n if (!task.leadTaskId) {\n return;\n }\n const leadTask = this.allTasks.find((t) => t.id === task.leadTaskId);\n\n // Do not add Main task if it has children.\n if (\n leadTask?.leadTaskId &&\n !this.tasks.find((t) => t.id === leadTask.id)\n ) {\n leadTask.isExpanded = true;\n this.tasks.push(leadTask);\n restoreLinks(leadTask);\n }\n };\n\n this.tasks.forEach((task) => {\n restoreLinks(task);\n });\n }\n\n /**\n * Updates Form array by data.\n * */\n private updateFormArray() {\n this.calculateTotals();\n this.formArray.clear();\n this.gridService.detectChanges();\n\n this.autosave.disabled = true;\n const lines: ExpenseEstimateLine[] = [];\n\n if (this.settings.grouping === 'byTasks') {\n let level = 0;\n\n const addLevel = (tasksInLevel: ProjectTask[]) => {\n tasksInLevel\n .sort(naturalSort('structNumber'))\n .forEach((projectTask) => {\n // Add Task row.\n lines.push({\n id: Guid.generate(),\n originalId: projectTask.id,\n indent: level,\n amount: this.tasksAmounts[projectTask.id],\n projectTask,\n isTaskGroup: true,\n isExpanded: projectTask.isExpanded,\n isAutomatic: false,\n });\n\n if (!projectTask.isExpanded) {\n return;\n }\n\n level++;\n\n // Find all Labor cost rows.\n let entries = this.entries.filter(\n (entry) => entry.projectTask?.id === projectTask.id,\n );\n\n entries = orderBy(\n entries,\n ['added', 'date', 'created'],\n ['desc', 'asc', 'asc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n id: Guid.generate(),\n originalId: entry.id,\n indent: level,\n isTaskGroup: false,\n isRuleEntry: !!entry.expenseRule,\n isRuleReadonly:\n entry.expenseRule?.calculationMethod ===\n RuleCalculationMethod.Percent,\n });\n });\n\n addLevel(\n this.tasks.filter((task) => task.leadTaskId === projectTask.id),\n );\n level--;\n });\n };\n\n // Move all tasks without lead ones to the top level even if it has lead one (chain breaks).\n const tasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n addLevel(tasks);\n } else {\n const entries = orderBy(\n this.entries,\n ['added', 'date', 'created'],\n ['desc', 'asc', 'asc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n indent: 0,\n id: Guid.generate(),\n originalId: entry.id,\n isTaskGroup: false,\n isRuleEntry: !!entry.expenseRule,\n isRuleReadonly:\n entry.expenseRule?.calculationMethod ===\n RuleCalculationMethod.Percent,\n });\n });\n }\n\n // Update grid structure form.\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n\n // If Task has group at index.\n if (line.id === this.formArray.at(index)?.value.id) {\n continue;\n }\n\n const groupIndex = findIndex(\n this.formArray.value,\n (r: any) => r.id === line.id,\n index + 1,\n );\n\n // Group is missing in rows.\n if (groupIndex === -1) {\n const newGroup = this.getLineGroup();\n if (line.isRuleReadonly || line.isAutomatic) {\n newGroup.disable({ emitEvent: false });\n } else if (line.isRuleEntry) {\n newGroup.controls.account.disable({ emitEvent: false });\n newGroup.controls.projectTask.disable({ emitEvent: false });\n }\n\n this.formArray.insert(index, newGroup);\n continue;\n }\n\n // Group exists in further rows.\n const group = this.formArray.at(groupIndex);\n this.formArray.removeAt(groupIndex);\n this.formArray.insert(index, group);\n }\n\n // Update form value.\n this.formArray.patchValue(lines, { emitEvent: false });\n\n // Disable group if isTaskGroup = true.\n this.formArray.controls.forEach((group: FormGroup) => {\n if (group.value.isTaskGroup) {\n group.disable({ emitEvent: false });\n }\n });\n\n // Trigger grid change detector.\n this.gridService.detectChanges();\n\n if (this.readonly) {\n this.formArray.disable({ emitEvent: false });\n }\n\n this.autosave.disabled = false;\n }\n\n /**\n * Applies Task totals without structure update.\n *\n * @param tasksToApply Task list.\n * */\n private applyTotals(tasksToApply: ProjectTask[]) {\n const applyTotals = (tasks: ProjectTask[]) => {\n tasks.forEach((task) => {\n const groupIndex = (this.formArray.getRawValue() as any[]).findIndex(\n (l) => l.isTaskGroup && l.projectTask?.id === task.id,\n );\n\n if (groupIndex !== -1) {\n (this.formArray.at(groupIndex) as UntypedFormGroup).controls[\n 'amount'\n ].setValue(this.tasksAmounts[task.id], { emitEvent: false });\n }\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n applyTotals(children);\n });\n };\n\n applyTotals(tasksToApply);\n\n this.gridService.detectChanges();\n }\n\n /**\n * Creates Expense request entity by Expense estimate.\n * Navigates to created entity.\n *\n * @param group Expense estimate form group.\n * */\n private createRequest(group: UntypedFormGroup) {\n this.blockUI.start();\n const groupValue = group.getRawValue();\n const data = {\n date: DateTime.now().toISODate(),\n name: 'new',\n projectId: this.entityId,\n userId: this.app.session.user.id,\n\n lines: [\n {\n description: groupValue.description,\n amount: groupValue.amount,\n date: groupValue.date,\n accountId: groupValue.account?.id ?? null,\n projectTaskId: groupValue.projectTask?.id ?? null,\n },\n ],\n };\n\n this.data\n .collection('ExpenseRequests')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal('expenses.creation.messages.created');\n this.blockUI.stop();\n this.state.go(`expensesRequest`, {\n entityId: response.id,\n routeMode: RouteMode.continue,\n });\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n /**\n * Clears Project/Project version Expense estimates.\n * Reloads Project card.\n * */\n private clear() {\n this.messageService\n .confirmLocal('projects.actions.clearDataConfirmation')\n .then(\n () => {\n this.blockUI.start();\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.entityId,\n )\n .action('ClearExpenseEstimates')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'shared2.messages.dataSuccessfullyDeleted',\n );\n this.blockUI.stop();\n this.projectCardService.reloadTab();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Gets OData query to fetch Expense estimates.\n * */\n private getQuery() {\n const query: any = {\n filter: [],\n select: ['id', 'date', 'amount', 'description', 'created', 'isAutomatic'],\n expand: {\n account: {\n select: ['id', 'name'],\n },\n expenseRule: {\n select: ['id', 'name', 'calculationMethod'],\n },\n projectTask: {\n select: ['id', 'name', 'indent', 'leadTaskId', 'structNumber'],\n },\n },\n orderBy: ['date', 'created'],\n };\n\n const accountsFilter = this.accountFilterService.buildAccountsFilter();\n query.filter.push(...accountsFilter);\n\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n this.versionCardService.projectVersion,\n this.entityId,\n );\n\n return query;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectExpenseEstimate } from 'src/app/shared/models/entities/projects/project-expense-estimate.model';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\n\n@Component({\n selector: 'wp-expense-estimate-modal',\n templateUrl: './expense-estimate-modal.component.html',\n standalone: false,\n})\nexport class ExpenseEstimateModalComponent implements OnInit {\n @Input() entry: ProjectExpenseEstimate;\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() readonly: boolean;\n @Input() projectCurrencyCode: string;\n\n public form = this.fb.group({\n id: null,\n account: [null, Validators.required],\n expenseRule: null,\n date: [null, Validators.required],\n amount: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n projectTask: [null, Validators.required],\n isAutomatic: false,\n });\n\n constructor(\n public financialAccountsService: FinancialAccountsService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n ngOnInit() {\n this.form.patchValue(this.entry);\n this.form.controls.isAutomatic.disable();\n\n if (this.readonly) {\n this.form.disable();\n } else if (this.entry.expenseRule) {\n this.form.controls.account.disable();\n this.form.controls.projectTask.disable();\n }\n }\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.activeModal.close(this.form.getRawValue());\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{\n form.value.account?.name ??\n ('projects.projects.card.expenses.modal.header.title' | translate)\n }}\n

    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n {{ form.controls.expenseRule.value.name }}\n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n","import { ChangeDetectorRef, Component, Input, ViewRef } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-project-expense-type-cell',\n templateUrl: './project-expense-type-cell.component.html',\n standalone: false,\n})\nexport class ProjectExpenseTypeCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n public financialAccountsService: FinancialAccountsService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","@if (!formGroup.value.isTaskGroup) {\n \n}\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-readonly-task-cell',\n templateUrl: './project-expense-type-readonly-cell.component.html',\n styleUrls: ['./project-expense-type-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class ProjectExpenseTypeReadonlyCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n {{ control.value?.name }}\n\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { camelCase, minBy } from 'lodash';\nimport { Interval } from 'luxon';\nimport { forkJoin, Observable, Subject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n ExpenseRuleLine,\n ExpensesCalendarFilter,\n ExpensesCalendarGroupData,\n ExpensesCalendarSectionData,\n RuleDateValue,\n} from '../../models/expenses-data.model';\nimport {\n ExpensesGroupType,\n ExpensesSectionType,\n ExpensesViewGroup,\n ExpensesViewOtherLine,\n ExpensesViewSection,\n ExpensesViewTaskLine,\n ExpensesViewTypeLine,\n} from '../../models/expenses-view.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { takeUntil } from 'rxjs/operators';\nimport { ExpensesCalendarSettings } from '../../models/expenses-calendar.settings';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ExpensesAccountFilterService } from '../../shared/core/expenses-account-filter.service';\n\n// NOTE: Logic in this service adapted for multiple sections\n// but at the time only one section is implemented - 'Expenses'\n@Injectable()\nexport class ProjectExpensesCalendarDataService {\n get laborCostTitle() {\n return this._laborCostTitle;\n }\n\n public sectionData: Dictionary = {\n expenses: null,\n };\n\n private _settings: ExpensesCalendarSettings;\n\n private readonly _laborCostTitle = '';\n private readonly _innerExpenseTypeLineTitle = '';\n private readonly _ruleDeviationBaseHints = {\n laborCost: '',\n revenue: '',\n workingCapital: '',\n };\n\n /** Component subscriptions cancel subject. */\n private reloaded$ = new Subject();\n\n constructor(\n @Inject('entityId') public projectId,\n private dataService: DataService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private accountFilterService: ExpensesAccountFilterService,\n private localConfigService: LocalConfigService,\n private translate: TranslateService,\n ) {\n this._settings = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n this._laborCostTitle = this.translate.instant(\n 'projects.projects.card.expenses.account.laborCost',\n );\n this._innerExpenseTypeLineTitle = this.translate.instant(\n 'projects.projects.card.expenses.account.innerExpenseLine',\n );\n Object.keys(this._ruleDeviationBaseHints).forEach((key) => {\n this._ruleDeviationBaseHints[key] = this.translate.instant(\n `projects.projects.card.expenses.expenseRule.calculationBaseHint.${key}`,\n );\n });\n }\n\n /**\n * Disposes all subscriptions.\n * */\n public dispose() {\n this.reloaded$.next();\n }\n\n /**\n * Loads sections\n *\n * @param interval - period interval\n * @param sectionTypes - sections to load\n * @param rebuild - determines if data and view should be rebuilt\n * @returns Promise.\n * */\n public loadSections(\n interval: Interval,\n sectionTypes?: ExpensesSectionType[],\n rebuild = true,\n ): Promise> {\n this.reloaded$.next();\n this._settings = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n\n // Save groups state.\n const expandedGroups: Dictionary> = {};\n const expandedLineTypeGroups: Dictionary = {};\n this.saveGroupExpandedStates(expandedGroups, expandedLineTypeGroups);\n\n const observables: any = {};\n\n const planningScale = this._settings.planningScale;\n const accountFilterSettings = this.accountFilterService.settings;\n const filterObject = {\n includeLaborCost: accountFilterSettings.includeLaborCost,\n includeFinAccountNamesNotIncludedInBalance:\n accountFilterSettings.includeFinAccountNamesNotIncludedInBalance,\n } as ExpensesCalendarFilter;\n\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n };\n\n const queryParams: Dictionary = {\n periodStart: interval.start.toISODate(),\n periodFinish: interval.end.toISODate(),\n planningScale: `WP.PlanningScale'${planningScale}'`,\n filter: '@filter',\n };\n\n const fn = (): Observable =>\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .function(`GetProjectExpensesCalendarSection`)\n .query(queryParams, null, urlParams);\n\n if (sectionTypes?.length > 0) {\n sectionTypes.forEach((sectionType) => {\n observables[sectionType] = fn();\n\n if (rebuild) {\n this.sectionData[sectionType] = null;\n }\n });\n } else {\n if (rebuild) {\n Object.keys(this.sectionData).forEach(\n (section) => (this.sectionData[section] = null),\n );\n }\n\n observables.expenses = fn();\n }\n\n return new Promise((resolve) => {\n forkJoin(observables)\n .pipe(takeUntil(this.reloaded$))\n .subscribe((response: any) => {\n if (response.expenses) {\n this.updateViewModelForSection(\n response.expenses,\n ExpensesSectionType.expenses,\n );\n }\n\n // Restore groups state.\n this.restoreGroupExpandedStates(\n expandedGroups,\n expandedLineTypeGroups,\n );\n\n resolve(this.sectionData);\n });\n });\n }\n\n /**\n * Loads data for specific period\n *\n * @param interval - period interval\n * @param sectionTypes - sections to load\n * @returns Promise.\n * */\n public loadFrame(\n interval: Interval,\n sectionTypes?: ExpensesSectionType[],\n ): Promise> {\n return this.loadSections(interval, sectionTypes, false);\n }\n\n /**\n * Gets ordered sections for display.\n *\n * @returns Ordered sections.\n * */\n public getSections(): ExpensesViewSection[] {\n const sections: ExpensesViewSection[] = [];\n\n if (this.sectionData.expenses) {\n sections.push(this.sectionData.expenses);\n }\n\n return sections;\n }\n\n /**\n * Returns ordered groups for display.\n *\n * @param section Section to get groups from.\n *\n * @returns Ordered sections.\n * */\n public getOrderedGroups(section: ExpensesViewSection): ExpensesViewGroup[] {\n return [section.plan, section.estimate, section.actual, section.forecast];\n }\n\n /**\n * Determines and returns group's section.\n *\n * @param group Group to get section by.\n * @returns Group's section.\n * */\n public getSectionByGroup(group: ExpensesViewGroup): ExpensesViewSection {\n return this.getSections().find(\n (s) =>\n s.actual.id === group.id ||\n s.estimate.id === group.id ||\n s.forecast.id === group.id ||\n s.plan.id === group.id,\n );\n }\n\n /**\n * Saves Section groups and lines expanded state in dictionary.\n *\n * @param expandedGroups Section groups state dictionary.\n * @param expandedLineTypeGroups Section group lines state dictionary.\n * */\n private saveGroupExpandedStates(\n expandedGroups: Dictionary>,\n expandedLineTypeGroups: Dictionary,\n ): void {\n this.getSections().forEach((section) => {\n this.getOrderedGroups(section).forEach((group) => {\n if (group.isExpanded) {\n expandedGroups[section.type] ??= {};\n expandedGroups[section.type][group.type] = true;\n }\n if (group.otherLine) {\n group.otherLine.typeLines\n .filter((typeLine) => typeLine.isExpanded)\n .forEach((typeLine) => {\n const key = this.fnGetOtherLineTypeGroupKey(\n section.type,\n group.type,\n typeLine.account?.id,\n );\n expandedLineTypeGroups[key] = true;\n });\n }\n group.taskLines.forEach((taskLine) => {\n if (taskLine.isExpanded) {\n const taskLineKey = this.fnGetTaskLineTypeGroupKey(\n section.type,\n group.type,\n taskLine.task.id,\n );\n expandedLineTypeGroups[taskLineKey] = true;\n }\n taskLine.typeLines\n .filter((typeLine) => typeLine.isExpanded)\n .forEach((typeLine) => {\n const expenseLineKey = this.fnGetExpenseLineTypeGroupKey(\n section.type,\n group.type,\n taskLine.task.id,\n typeLine.account?.id,\n );\n expandedLineTypeGroups[expenseLineKey] = true;\n });\n });\n });\n });\n }\n\n /**\n * Restores Section groups and lines expanded state from dictionary.\n *\n * @param expandedGroups Section groups state dictionary.\n * @param expandedLineTypeGroups Section group lines state dictionary.\n * */\n private restoreGroupExpandedStates(\n expandedGroups: Dictionary>,\n expandedLineTypeGroups: Dictionary,\n ): void {\n this.getSections().forEach((section) => {\n this.getOrderedGroups(section).forEach((group) => {\n if (\n expandedGroups[section.type] &&\n expandedGroups[section.type][group.type]\n ) {\n group.isExpanded = true;\n }\n if (group.otherLine) {\n group.otherLine.typeLines.forEach((typeLine) => {\n const key = this.fnGetOtherLineTypeGroupKey(\n section.type,\n group.type,\n typeLine.account?.id,\n );\n if (expandedLineTypeGroups[key]) {\n typeLine.isExpanded = true;\n }\n });\n }\n\n group.taskLines.forEach((taskLine) => {\n const taskLineKey = this.fnGetTaskLineTypeGroupKey(\n section.type,\n group.type,\n taskLine.task.id,\n );\n if (expandedLineTypeGroups[taskLineKey]) {\n taskLine.isExpanded = true;\n }\n taskLine.typeLines.forEach((typeLine) => {\n const expenseLineKey = this.fnGetExpenseLineTypeGroupKey(\n section.type,\n group.type,\n taskLine.task.id,\n typeLine.account?.id,\n );\n if (expandedLineTypeGroups[expenseLineKey]) {\n typeLine.isExpanded = true;\n }\n });\n });\n });\n });\n }\n\n /**\n * Constructs dictionary key for Section group line.\n *\n * @param sectionType Section type.\n * @param groupType Group type.\n * @param taskId Project task ID.\n * @returns Dictionary key.\n * */\n private fnGetTaskLineTypeGroupKey = (\n sectionType,\n groupType,\n taskId,\n ): string => `${sectionType}_${groupType}_${taskId}`;\n\n /**\n * Constructs dictionary key for Section group line.\n *\n * @param sectionType Section type.\n * @param groupType Group type.\n * @param taskId Project task ID.\n * @param accountId Account ID.\n * @returns Dictionary key.\n * */\n private fnGetExpenseLineTypeGroupKey = (\n sectionType,\n groupType,\n taskId,\n accountId,\n ): string =>\n `${sectionType}_${groupType}_${taskId}_${accountId ?? 'laborCost'}`;\n\n /**\n * Constructs dictionary key for Section group other line.\n *\n * @param sectionType Section type.\n * @param groupType Group type.\n * @param accountId Account type ID.\n * @returns Dictionary key.\n * */\n private fnGetOtherLineTypeGroupKey = (\n sectionType,\n groupType,\n accountId,\n ): string => `other_${sectionType}_${groupType}_${accountId ?? 'laborCost'}`;\n\n /**\n * Gets displayed group object.\n *\n * @param dataGroup Group data.\n * @param groupType Group type.\n * @returns Displayed group object.\n * */\n private getViewGroup(\n dataGroup: ExpensesCalendarGroupData,\n groupType: ExpensesGroupType,\n ): ExpensesViewGroup {\n const minTaskIndent =\n minBy(dataGroup.taskLines, (t) => t.task.indent)?.task.indent ?? 0;\n const laborCostType = {\n id: null,\n name: this._laborCostTitle,\n } as NamedEntity;\n\n const viewGroup = {\n id: Guid.generate(),\n type: groupType,\n title: this.translate.instant(\n `projects.projects.card.expenses.calendar.groups.${groupType}`,\n ),\n isExpanded: false,\n isAllExpanded: false,\n total: 0,\n entries: [], // NOTE: filled during entries calculation in right group component\n taskLines: [],\n otherLine: null,\n } as ExpensesViewGroup;\n viewGroup.taskLines = dataGroup.taskLines.map(\n (taskLine) =>\n ({\n task: taskLine.task,\n isExpanded: false,\n total: taskLine.total,\n entries: [], // NOTE: filled during entries calculation in right group component\n title: `${taskLine.task.structNumber ?? ''} ${\n taskLine.task.name\n }`.trim(),\n indent: taskLine.task.indent - minTaskIndent,\n typeLines: taskLine.accountLines.map(\n (typeLine) =>\n ({\n title: typeLine.account?.name ?? laborCostType.name,\n account: typeLine.account ?? laborCostType,\n isExpanded: false,\n total: typeLine.total,\n entries: typeLine.values,\n innerLine: typeLine.innerLine\n ? {\n account: typeLine.innerLine.account,\n title: this._innerExpenseTypeLineTitle,\n total: typeLine.innerLine.total,\n entries: typeLine.innerLine.values,\n }\n : null,\n rules: typeLine.expenseRuleLines.map((ruleLine) => ({\n title: ruleLine.expenseRule.name,\n rule: ruleLine.expenseRule,\n total: ruleLine.total,\n entries: ruleLine.values.map((dateValue) =>\n this.mapRuleEntry(ruleLine, dateValue),\n ),\n })),\n }) as ExpensesViewTypeLine,\n ),\n }) as ExpensesViewTaskLine,\n );\n const otherType = (from: ExpensesGroupType) =>\n from === ExpensesGroupType.forecast ? ExpensesGroupType.actual : from;\n viewGroup.otherLine = {\n title: this.translate.instant(\n `projects.projects.card.expenses.calendar.other.${otherType(\n groupType,\n )}.title`,\n ),\n verboseHint: this.translate.instant(\n `projects.projects.card.expenses.calendar.other.${otherType(\n groupType,\n )}.verboseHint`,\n ),\n total: dataGroup.otherLine.total,\n entries: [],\n typeLines: dataGroup.otherLine.accountLines.map(\n (typeLine) =>\n ({\n title: typeLine.account?.name ?? laborCostType.name,\n account: typeLine.account ?? laborCostType,\n total: typeLine.total,\n entries: typeLine.values,\n innerLine: typeLine.innerLine\n ? {\n account: typeLine.innerLine.account,\n title: this._innerExpenseTypeLineTitle,\n total: typeLine.innerLine.total,\n entries: typeLine.innerLine.values,\n }\n : null,\n rules: typeLine.expenseRuleLines.map((ruleLine) => ({\n title: ruleLine.expenseRule.name,\n rule: ruleLine.expenseRule,\n total: ruleLine.total,\n entries: ruleLine.values,\n })),\n }) as ExpensesViewTypeLine,\n ),\n } as ExpensesViewOtherLine;\n\n viewGroup.taskLines.sort(naturalSort('task.structNumber'));\n return viewGroup;\n }\n\n /**\n * Gets data model to display section.\n *\n * @param dataSection Data needed to compose section.\n * @param sectionType Section type for naming.\n * @returns Data model.\n */\n private getViewSection(\n dataSection: ExpensesCalendarSectionData,\n sectionType: ExpensesSectionType,\n ): ExpensesViewSection {\n return {\n title: this.translate.instant(\n `projects.projects.card.expenses.calendar.sections.${sectionType}`,\n ),\n type: sectionType,\n actual: this.getViewGroup(\n dataSection.actualGroup,\n ExpensesGroupType.actual,\n ),\n estimate: this.getViewGroup(\n dataSection.estimateGroup,\n ExpensesGroupType.estimate,\n ),\n forecast: this.getViewGroup(\n dataSection.forecastGroup,\n ExpensesGroupType.forecast,\n ),\n plan: this.getViewGroup(dataSection.planGroup, ExpensesGroupType.plan),\n };\n }\n\n /**\n * Updates view model.\n *\n * @param sectionData - server-side data for model.\n * @param sectionType - section type.\n */\n private updateViewModelForSection(\n sectionData: ExpensesCalendarSectionData,\n sectionType: ExpensesSectionType,\n ) {\n switch (sectionType) {\n case ExpensesSectionType.expenses:\n if (!this.sectionData.expenses) {\n this.sectionData[sectionType] = this.getViewSection(\n sectionData,\n sectionType,\n );\n } else {\n this.enrichSectionData(sectionType, sectionData);\n }\n break;\n }\n }\n\n /**\n * Enriches current section data with new.\n *\n * @param sectionType - section type.\n * @param sectionData - section data.\n */\n private enrichSectionData(\n sectionType: ExpensesSectionType,\n sectionData: ExpensesCalendarSectionData,\n ) {\n this.enrichGroupData(\n sectionType,\n ExpensesGroupType.plan,\n sectionData.planGroup,\n );\n this.enrichGroupData(\n sectionType,\n ExpensesGroupType.estimate,\n sectionData.estimateGroup,\n );\n this.enrichGroupData(\n sectionType,\n ExpensesGroupType.actual,\n sectionData.actualGroup,\n );\n this.enrichGroupData(\n sectionType,\n ExpensesGroupType.forecast,\n sectionData.forecastGroup,\n );\n }\n\n /**\n * Enriches current group data with new.\n *\n * @param sectionType - section type.\n * @param groupType - group type.\n * @param dataGroup - group data.\n */\n private enrichGroupData(\n sectionType: ExpensesSectionType,\n groupType: ExpensesGroupType,\n dataGroup: ExpensesCalendarGroupData,\n ) {\n const groupToEnrich = this.sectionData[sectionType][groupType];\n const dataTaskLines = dataGroup.taskLines;\n const viewTaskLinesToEnrich = groupToEnrich.taskLines.filter((task) =>\n dataTaskLines.find((line) => task.task.id === line.task.id),\n );\n\n viewTaskLinesToEnrich.forEach((viewTaskLine) => {\n const taskToUpdate = dataTaskLines.find(\n (tl) => tl.task.id === viewTaskLine.task.id,\n );\n if (!taskToUpdate) {\n return;\n }\n\n viewTaskLine.typeLines.forEach((viewTypeLine) => {\n const typeToUpdate = taskToUpdate.accountLines.find(\n (line) => viewTypeLine.account.id === (line.account?.id ?? null),\n );\n if (!typeToUpdate) {\n return;\n }\n viewTypeLine.entries.push(...typeToUpdate.values);\n\n if (typeToUpdate.innerLine) {\n if (!viewTypeLine.innerLine) {\n viewTypeLine.innerLine = {\n account: typeToUpdate.innerLine.account,\n title: this._innerExpenseTypeLineTitle,\n total: typeToUpdate.innerLine.total,\n entries: typeToUpdate.innerLine.values,\n };\n } else {\n viewTypeLine.innerLine.entries.push(\n ...typeToUpdate.innerLine.values,\n );\n }\n }\n\n viewTypeLine.rules.forEach((viewRuleLine) => {\n const ruleToUpdate = typeToUpdate.expenseRuleLines.find(\n (rule) => viewRuleLine.rule.id === (rule.expenseRule?.id ?? null),\n );\n if (!ruleToUpdate) {\n return;\n }\n ruleToUpdate.values\n .filter((dateValue) =>\n viewRuleLine.entries.some((e) => e.date === dateValue.date),\n )\n .map((dateValue) => this.mapRuleEntry(ruleToUpdate, dateValue))\n .forEach((dateValue) => {\n const entry = viewRuleLine.entries.find(\n (e) => e.date === dateValue.date,\n );\n entry.deviatesFromBase ||= dateValue.deviatesFromBase;\n entry.baseHint ??= dateValue.baseHint;\n });\n viewRuleLine.entries.push(\n ...ruleToUpdate.values\n .filter((dateValue) =>\n viewRuleLine.entries.every((e) => e.date !== dateValue.date),\n )\n .map((dateValue) => this.mapRuleEntry(ruleToUpdate, dateValue)),\n );\n });\n const rulesToAdd = typeToUpdate.expenseRuleLines\n .filter(\n (rule) =>\n !viewTypeLine.rules.find(\n (r) => r.rule.id === (rule.expenseRule?.id ?? null),\n ),\n )\n .map((ruleLine) => ({\n title: ruleLine.expenseRule.name,\n rule: ruleLine.expenseRule,\n total: ruleLine.total,\n entries: ruleLine.values.map((dateValue) =>\n this.mapRuleEntry(ruleLine, dateValue),\n ),\n }));\n viewTypeLine.rules.push(...rulesToAdd);\n });\n });\n }\n\n /**\n * Transforms Expense Rule line entry with added client-side fields.\n *\n * @param ruleLine Expense Rule line.\n * @param dateValue Entry.\n * @returns Updated Expense Rule entry.\n */\n private mapRuleEntry = (\n ruleLine: ExpenseRuleLine,\n dateValue: RuleDateValue,\n ): RuleDateValue => ({\n date: dateValue.date,\n amount: dateValue.amount,\n deviatesFromBase: dateValue.deviatesFromBase,\n baseHint: dateValue.deviatesFromBase\n ? this._ruleDeviationBaseHints[\n camelCase(ruleLine.expenseRule.calculationBase)\n ] ?? ''\n : null,\n });\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ExpensesCalendarSettings } from '../../models/expenses-calendar.settings';\nimport { ExpensesGroupType } from '../../models/expenses-view.model';\n\n@Injectable()\nexport class ProjectExpensesCalendarGroupFilterService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private readonly _selectedGroups: ExpensesGroupType[] = [];\n public get selectedGroups(): ExpensesGroupType[] {\n return this._selectedGroups;\n }\n\n public get allGroups(): ExpensesGroupType[] {\n return Object.values(ExpensesGroupType);\n }\n\n constructor(private localConfigService: LocalConfigService) {\n const settings = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n this._selectedGroups = settings.displayedGroups;\n }\n\n /**\n * Toggles passed group\n *\n * @param group - group to toggle\n */\n public toggleGroup(group: ExpensesGroupType) {\n if (this._selectedGroups.includes(group)) {\n const indexToRemove = this._selectedGroups.indexOf(group);\n this._selectedGroups.splice(indexToRemove, 1);\n\n this.updateConfig();\n this.changesSubject.next();\n return;\n }\n\n this._selectedGroups.push(group);\n this.updateConfig();\n this.changesSubject.next();\n }\n\n /**\n * Updates stored config\n *\n * @private\n */\n private updateConfig() {\n const settings = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n settings.displayedGroups = this._selectedGroups;\n this.localConfigService.setConfig(ExpensesCalendarSettings, settings);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ProjectExpenseEstimate } from 'src/app/shared/models/entities/projects/project-expense-estimate.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ExpensesSectionType } from '../../models/expenses-view.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { RecurringExpenseRuleDto } from 'src/app/shared/models/entities/projects/recurring-expense-rule-dto.model';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { ExpensesAccountFilterService } from '../../shared/core/expenses-account-filter.service';\n\nexport interface SlotInfo {\n id: string;\n date?: string;\n amount: number;\n description: string;\n projectTask: NamedEntity;\n account: FinancialAccount;\n expenseRule?: RecurringExpenseRuleDto;\n isAutomatic: boolean;\n}\n\n// NOTE: Logic in this service adapted for multiple sections\n// but at the time only one section is implemented - 'Expenses'\n@Injectable()\nexport class ProjectExpensesCalendarSlotInfoService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n public sectionType: ExpensesSectionType;\n public projectId: string;\n\n constructor(\n private data: DataService,\n public versionCardService: ProjectVersionCardService,\n private accountFilterService: ExpensesAccountFilterService,\n private notification: NotificationService,\n ) {}\n\n /**\n * Propagates changes.\n * */\n public propagateChange() {\n const types = [this.sectionType];\n this.changesSubject.next(types);\n }\n\n /**\n * Loads data in SlotInfo format.\n *\n * @param projectTaskId Project task ID.\n * @param account\n * @param rule Recurring Expense rule.\n * @param isInnerLine Determines whether to load data with Expense type line rules or without.\n * @param from Date period start.\n * @param to Date period end.\n * @returns SlotInfo\n * */\n public load(\n projectTaskId: string | null,\n account: FinancialAccount | null,\n rule: RecurringExpenseRuleDto | null,\n isInnerLine: boolean,\n from: string,\n to: string,\n ): Promise {\n return new Promise((resolve) => {\n this.getLoadQuery(\n projectTaskId,\n account,\n rule,\n isInnerLine,\n from,\n to,\n ).subscribe({\n next: (loaded) => resolve(loaded),\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve([]);\n },\n });\n });\n }\n\n /**\n * Inserts entity.\n *\n * @param data Entity data.\n * @returns SlotInfo\n * */\n public insert(data): Promise {\n return new Promise((resolve) => {\n this.getInsertQuery(data).subscribe({\n next: (inserted) => {\n this.notification.successLocal(this.getCreatedMessage());\n this.propagateChange();\n resolve(inserted);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n /**\n * Updates entity.\n *\n * @param data Updated entity data.\n * @returns SlotInfo\n * */\n public update(data): Promise {\n return new Promise((resolve) => {\n this.getUpdateQuery(data).subscribe({\n next: (updated) => {\n this.notification.successLocal(this.getUpdatedMessage());\n this.propagateChange();\n resolve(updated);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n /**\n * Deletes entity by ID.\n *\n * @param id Entity ID.\n * @returns Result response.\n * */\n public delete(id: string): Promise {\n return new Promise((resolve) => {\n this.getDeleteQuery(id).subscribe({\n next: (deleted) => {\n this.notification.successLocal(this.getDeletedMessage());\n this.propagateChange();\n resolve(deleted);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n private getLoadQuery(\n projectTaskId: string | null,\n account: FinancialAccount | null,\n rule: RecurringExpenseRuleDto | null,\n isInnerLine: boolean,\n from: string,\n to: string,\n ): Observable {\n const dateFieldName = this.getDateFieldName();\n const queryFilter = [];\n\n queryFilter.push({\n [dateFieldName]: {\n ge: { type: 'raw', value: from },\n le: { type: 'raw', value: to },\n },\n });\n\n const accountsFilter = this.accountFilterService.buildAccountsFilter();\n\n // NOTE: Impossible to select account (not included in balance) anyway from calendar.\n if (accountsFilter.length && !account?.id) {\n queryFilter.push(accountsFilter);\n }\n\n if (projectTaskId) {\n queryFilter.push({\n projectTaskId: { type: 'guid', value: projectTaskId },\n });\n }\n\n if (account?.id) {\n queryFilter.push({\n accountId: { type: 'guid', value: account.id },\n });\n }\n\n if (isInnerLine || rule?.id) {\n queryFilter.push({\n expenseRuleId: { type: 'guid', value: rule?.id ?? null },\n });\n }\n\n const queryParams = {\n select: [\n 'id',\n 'accountId',\n 'expenseRuleId',\n 'date',\n 'number',\n 'amount',\n 'description',\n 'isAutomatic',\n ],\n filter: queryFilter,\n expand: {\n projectTask: { select: ['id', 'name'] },\n account: { select: ['id', 'name'] },\n expenseRule: {\n select: ['id', 'name', 'calculationMethod', 'startDate', 'endDate'],\n },\n },\n orderBy: [dateFieldName, 'created'],\n };\n\n if (!projectTaskId) {\n ProjectVersionUtil.addProjectEntityIdFilter(\n queryParams,\n this.versionCardService.projectVersion,\n this.projectId,\n );\n }\n\n ProjectVersionUtil.addProjectSelectFields(\n this.versionCardService.projectVersion,\n queryParams.select,\n );\n\n const collection = this.getCollection();\n const query = (() => {\n switch (this.sectionType) {\n case ExpensesSectionType.expenses:\n return collection.query(queryParams);\n }\n })();\n\n return query.pipe(\n map((data: any) =>\n data.map((e) => ({\n id: e.id,\n date: e[dateFieldName],\n description: e.description,\n amount: e.amount,\n projectTask: e.projectTask as NamedEntity,\n account: e.account as NamedEntity,\n expenseRule: e.expenseRule as RecurringExpenseRuleDto,\n isAutomatic: e.isAutomatic,\n })),\n ),\n );\n }\n\n private getInsertQuery(data): Observable {\n return this.getCollection().insert(data);\n }\n private getUpdateQuery(data): Observable {\n return this.getCollection().entity(data.id).update(data);\n }\n private getDeleteQuery(id): Observable {\n return this.getCollection().entity(id).delete();\n }\n\n private getCollection() {\n switch (this.sectionType) {\n case ExpensesSectionType.expenses:\n return this.data.collection('ProjectExpenseEstimates');\n }\n }\n private getDateFieldName() {\n switch (this.sectionType) {\n case ExpensesSectionType.expenses:\n return 'date';\n }\n }\n\n private getCreatedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.created`;\n }\n private getUpdatedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.edited`;\n }\n private getDeletedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.deleted`;\n }\n private getTranslationPrefix(): string {\n switch (this.sectionType) {\n case ExpensesSectionType.expenses:\n return 'projects.projects.card.expenses';\n }\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { SlotGroup } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport {\n getUnitFromPlanningScale,\n PlanningScale,\n} from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ProjectCardService } from '../../../core/project-card.service';\nimport { DateValue, RuleDateValue } from '../../models/expenses-data.model';\nimport {\n ExpensesGroupType,\n ExpensesSectionType,\n ExpensesViewGroup,\n ExpensesViewRuleLine,\n ExpensesViewTaskLine,\n ExpensesViewTypeLine,\n} from '../../models/expenses-view.model';\nimport { ExpensesCalendarSettings } from '../../models/expenses-calendar.settings';\nimport { ProjectExpensesCalendarDataService } from './project-expenses-calendar-data.service';\nimport { ProjectExpensesCalendarSlotInfoService } from './project-expenses-calendar-slot-info.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionCardService } from '../../../core/project-version-card.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { RecurringExpenseRuleDto } from 'src/app/shared/models/entities/projects/recurring-expense-rule-dto.model';\nimport { RuleCalculationMethod } from 'src/app/shared/models/enums/rule-calculation-method.enum';\nimport { ProjectExpensesService } from 'src/app/projects/card/project-expenses/project-expenses.service';\nimport { ExpenseSlot } from 'src/app/projects/card/project-expenses/models/expense-slot.model';\nimport { ExpensesAccountFilterService } from '../../shared/core/expenses-account-filter.service';\n\n@Injectable()\nexport class ProjectExpensesCalendarService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private toggleSubject = new Subject();\n public toggle$ = this.toggleSubject.asObservable();\n\n public loading$ = new BehaviorSubject(true);\n public frameLoading$ = new BehaviorSubject(false);\n\n public slots: ExpenseSlot[];\n public slotGroups: SlotGroup[];\n\n public leftTableWidth = 400;\n public rightTableWidth;\n\n private interval: Interval;\n private readonly forecastBreakpoint: string;\n private settings: ExpensesCalendarSettings;\n\n private _readonly: boolean;\n public get readonly(): boolean {\n return this._readonly;\n }\n\n public get planningScale(): PlanningScale {\n return this.settings.planningScale;\n }\n public get displayedOthers(): Record<\n ExpensesSectionType,\n ExpensesGroupType[]\n > {\n return (\n this.settings.displayedOthers ??\n ({} as Record)\n );\n }\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') public entityId: string,\n private injector: Injector,\n private dataService: ProjectExpensesCalendarDataService,\n private navigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private projectService: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private projectExpensesService: ProjectExpensesService,\n private slotInfoService: ProjectExpensesCalendarSlotInfoService,\n private accountFilterService: ExpensesAccountFilterService,\n private blockUI: BlockUIService,\n private freezeTableService: FreezeTableService,\n private appService: AppService,\n ) {\n this.settings = this.localConfigService.getConfig(ExpensesCalendarSettings);\n\n this.forecastBreakpoint = ProjectVersionUtil.getForecastBreakpoint(\n this.versionCardService.projectVersion,\n this.appService.session,\n );\n }\n\n /**\n * Inits navigation service, service subscriptions and calendar itself.\n */\n public init() {\n this.navigationService.init(ScheduleNavigationContext.Expenses);\n\n this.projectService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this._readonly =\n !project.expenseEstimateEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n });\n\n this.slotInfoService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((sectionTypes) => this.load(sectionTypes, true));\n\n this.projectExpensesService.ruleModalClosed$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load(null, true);\n });\n\n this.accountFilterService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load(null, true);\n });\n\n this.projectExpensesService.ruleEstimateUpdated$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load(null, true);\n });\n\n this.navigationService.next$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('right');\n });\n this.navigationService.previous$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('left');\n });\n this.navigationService.jump$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((date) => {\n this.reload(date);\n });\n this.navigationService.planningScale$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.reload();\n });\n\n this.reload();\n }\n\n /**\n * Disposes all subscriptions.\n * */\n public dispose() {\n this.destroyed$.next();\n }\n\n /**\n * Toggles group.\n *\n * @param id Group ID.\n */\n public toggleGroup(id: string) {\n this.toggleSubject.next(id);\n }\n\n /**\n * Toggles group other data.\n *\n * @param group Group.\n */\n public toggleGroupOther(group: ExpensesViewGroup) {\n const updateOthersInSettings = (\n others: Record,\n ) => {\n this.settings.displayedOthers = others;\n const settings = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n settings.displayedOthers = others;\n this.localConfigService.setConfig(ExpensesCalendarSettings, settings);\n };\n\n const section = this.dataService.getSectionByGroup(group);\n const displayedOthers =\n this.settings.displayedOthers ??\n ({} as Record);\n const sectionGroups = displayedOthers[section.type] ?? [];\n if (sectionGroups.includes(group.type)) {\n const indexToRemove = sectionGroups.indexOf(group.type);\n sectionGroups.splice(indexToRemove, 1);\n displayedOthers[section.type] = sectionGroups;\n\n updateOthersInSettings(displayedOthers);\n this.changesSubject.next();\n return;\n }\n sectionGroups.push(group.type);\n displayedOthers[section.type] = sectionGroups;\n\n updateOthersInSettings(displayedOthers);\n this.changesSubject.next();\n }\n\n /**\n * Reloads whole calendar.\n *\n * @param toDate - date to which calendar should make transition.\n */\n public reload(toDate?: DateTime) {\n this.settings = this.localConfigService.getConfig(ExpensesCalendarSettings);\n this.interval = this.navigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n this.updateDates();\n this.load();\n }\n\n /**\n * Loads calendar frame.\n *\n * @param direction Direction in which frame should be expanded.\n * */\n public loadFrame(direction: 'left' | 'right') {\n this.frameLoading$.next(true);\n this.blockUI.start();\n\n let shift: DurationLike;\n\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n case PlanningScale.Quarter:\n shift = { year: 1 };\n break;\n case PlanningScale.Year:\n shift = { year: 2 };\n break;\n }\n\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n\n this.dataService.loadFrame(loadingInterval).then(() => {\n this.updateDates();\n\n this.frameLoading$.next(false);\n this.blockUI.stop();\n this.changesSubject.next();\n\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n });\n }\n\n /**\n * Returns filled slots.\n *\n * @param data Array of DateValue.\n * @returns Filled slots.\n * */\n public getFilledSlots(data: DateValue[] = []): DateValue[] {\n const filledSlots = [];\n\n this.slots.forEach((slot) => {\n const newSlot = {\n id: slot.id,\n date: null,\n amount: 0,\n };\n\n data.forEach((d) => {\n if (d.date === slot.date.toISODate()) {\n newSlot.amount = d.amount;\n }\n });\n\n newSlot.date = slot.date.toISODate();\n filledSlots.push(newSlot);\n });\n\n return filledSlots;\n }\n\n /**\n * Returns Expense Rule filled slots.\n *\n * @param data Array of RuleDateValue.\n * @returns Expense Rule filled slots.\n * */\n public getRuleFilledSlots(data: RuleDateValue[] = []): RuleDateValue[] {\n const filledSlots = [];\n\n this.slots.forEach((slot) => {\n const newSlot = {\n id: slot.id,\n date: null,\n amount: 0,\n deviatesFromBase: false,\n baseHint: null,\n };\n\n data.forEach((d) => {\n if (d.date === slot.date.toISODate()) {\n newSlot.amount = d.amount;\n newSlot.deviatesFromBase = d.deviatesFromBase;\n newSlot.baseHint = d.baseHint;\n }\n });\n\n newSlot.date = slot.date.toISODate();\n filledSlots.push(newSlot);\n });\n\n return filledSlots;\n }\n\n /**\n * Determines and returns slot width.\n *\n * @param planningScale Planning scale. Not required.\n * If not present service settings are used.\n * @returns Slot width.\n * */\n public getSlotWidth(planningScale?: PlanningScale): number {\n if (!planningScale) {\n planningScale = this.settings.planningScale;\n }\n\n switch (planningScale) {\n case PlanningScale.Day:\n return 90;\n case PlanningScale.Week:\n return 90;\n case PlanningScale.Month:\n return 90;\n case PlanningScale.Quarter:\n return 120;\n case PlanningScale.Year:\n return 90;\n }\n }\n\n /**\n * Determines and returns table width.\n *\n * @param slotWidth Slot width. Not required. If not present, getSlotWidth() is used.\n * @param countOfSlots Slot cound. Not required. If not present, service's slots are used.\n * @returns Table width.\n */\n public getTableWidth(slotWidth?: number, countOfSlots?: number): number {\n if (!slotWidth) {\n slotWidth = this.getSlotWidth();\n }\n if (!countOfSlots) {\n countOfSlots = this.slots.length;\n }\n\n return slotWidth * countOfSlots;\n }\n\n /**\n * Determines whether group task line has expense type lines or not.\n *\n * @param taskLine Task line.\n * @returns true if task line has expense type lines, false otherwise.\n */\n public hasExpenseTypes(taskLine: ExpensesViewTaskLine): boolean {\n return taskLine.typeLines.length !== 0;\n }\n\n /**\n * Determines whether group expense type line has expense rules or not.\n *\n * @param group Group.\n * @param typeLine Expense type line.\n * @returns true if expense type line has rules, false otherwise.\n */\n public hasRules(\n group: ExpensesViewGroup,\n typeLine: ExpensesViewTypeLine,\n ): boolean {\n return (\n group.type !== ExpensesGroupType.actual &&\n !!typeLine.account?.id &&\n typeLine.rules.length !== 0\n );\n }\n\n /**\n * Returns whether it is allowed to edit slot or not\n *\n * @param group Slot's group.\n * @param entry Slot itself.\n * @returns true if slot is editable, false otherwise.\n */\n public isSlotEditable(group: ExpensesViewGroup, entry: DateValue): boolean {\n const isEstimate = group.type === ExpensesGroupType.estimate;\n const isForecast = group.type === ExpensesGroupType.forecast;\n const entryEndDate = this.getSlotEndDate(entry);\n const isPastBreakpoint = entryEndDate >= this.forecastBreakpoint;\n return isEstimate || (isForecast && isPastBreakpoint);\n }\n\n /**\n * Returns whether it is allowed to edit rule slot or not.\n *\n * @param group Slot's group.\n * @param expenseRule slot's group.\n * @param entry Slot itself.\n * @returns true if rule slot is editable, false otherwise.\n */\n public isRuleSlotEditable(\n group: ExpensesViewGroup,\n expenseRule: RecurringExpenseRuleDto,\n entry: RuleDateValue,\n ): boolean {\n const isEditable = this.isSlotEditable(group, entry);\n const entryStartDate = this.getSlotStartDate(entry);\n const entryEndDate = this.getSlotEndDate(entry);\n const ruleStartDate = this.getRuleStartDate(expenseRule);\n const ruleEndDate = this.getRuleEndDate(expenseRule);\n const isFixed =\n expenseRule.calculationMethod !== RuleCalculationMethod.Percent;\n const isInRulePeriod =\n entryStartDate >= ruleStartDate && entryEndDate <= ruleEndDate;\n return isEditable && isFixed && isInRulePeriod;\n }\n\n /**\n * Returns slot scaled start date.\n *\n * @param entry Slot which we try to find date from.\n * @returns Slot scaled start date.\n */\n public getSlotStartDate(entry: DateValue): string {\n const date = DateTime.fromISO(entry.date);\n const unit = getUnitFromPlanningScale(this.planningScale);\n return date.startOf(unit).toISODate();\n }\n\n /**\n * Returns slot scaled end date.\n *\n * @param entry Slot which we try to find date from.\n * @returns Slot scaled end date.\n */\n public getSlotEndDate(entry: DateValue): string {\n const date = DateTime.fromISO(entry.date);\n const unit = getUnitFromPlanningScale(this.planningScale);\n return date.endOf(unit).toISODate();\n }\n\n /**\n * Determines whether group expense rule line has deviation indicator or not.\n *\n * @param group Group.\n * @param ruleLine Expense rule line.\n * @returns true if expense rule line has deviation indicator, false otherwise.\n */\n public hasDeviationIndicator(\n group: ExpensesViewGroup,\n ruleLine: ExpensesViewRuleLine,\n ) {\n return (\n (group.type === ExpensesGroupType.estimate ||\n group.type === ExpensesGroupType.forecast) &&\n ruleLine.entries.some((e) => e.deviatesFromBase === true)\n );\n }\n\n /**\n * Loads calendar data.\n *\n * @param sectionTypes Section types.\n * @param silent Determines whether to block UI or not.\n */\n private load(sectionTypes?: ExpensesSectionType[], silent = false) {\n if (silent) {\n this.blockUI.start();\n } else {\n this.loading$.next(true);\n }\n\n this.dataService.loadSections(this.interval, sectionTypes).then(() => {\n this.changesSubject.next();\n if (silent) {\n this.blockUI.stop();\n } else {\n this.loading$.next(false);\n }\n });\n }\n\n /**\n * Updates dates used by view.\n * */\n private updateDates(): void {\n const slotInfo = this.navigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slotGroups = slotInfo.groups;\n this.slots = slotInfo.slots;\n\n this.rightTableWidth = this.getTableWidth();\n }\n\n /**\n * Gets Rule scaled start date.\n *\n * @param expenseRule Recurring expense rule.\n * @returns Rule scaled start date.\n */\n private getRuleStartDate(expenseRule: RecurringExpenseRuleDto): string {\n const date = DateTime.fromISO(expenseRule.startDate);\n const unit = getUnitFromPlanningScale(this.planningScale);\n return date.startOf(unit).toISODate();\n }\n\n /**\n * Gets Rule scaled end date.\n *\n * @param expenseRule Recurring expense rule.\n * @returns Rule scaled end date.\n */\n private getRuleEndDate(expenseRule: RecurringExpenseRuleDto): string {\n const date = DateTime.fromISO(expenseRule.endDate);\n const unit = getUnitFromPlanningScale(this.planningScale);\n return date.endOf(unit).toISODate();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ProjectExpensesCalendarDataService } from './core/project-expenses-calendar-data.service';\nimport { ProjectExpensesCalendarGroupFilterService } from './core/project-expenses-calendar-group-filter.service';\nimport { ProjectExpensesCalendarSlotInfoService } from './core/project-expenses-calendar-slot-info.service';\nimport { ProjectExpensesCalendarService } from './core/project-expenses-calendar.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectExpensesService } from '../project-expenses.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ExpensesAccountFilterService } from '../shared/core/expenses-account-filter.service';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\n\n@Component({\n selector: 'wp-project-expenses-calendar',\n templateUrl: './project-expenses-calendar.component.html',\n styleUrls: ['./project-expenses-calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectExpensesService,\n ProjectExpensesCalendarService,\n ProjectExpensesCalendarDataService,\n ProjectExpensesCalendarSlotInfoService,\n ProjectExpensesCalendarGroupFilterService,\n ExpensesAccountFilterService,\n ScheduleNavigationService,\n GridService,\n FreezeTableService,\n ],\n standalone: false,\n})\nexport class ProjectExpensesCalendarComponent implements OnInit, OnDestroy {\n public trackById(index: number, row: any): string {\n if (row.id) {\n return row.id;\n } else {\n return row.type;\n }\n }\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProjectExpensesCalendarService,\n public groupFilterService: ProjectExpensesCalendarGroupFilterService,\n public expensesDataService: ProjectExpensesCalendarDataService,\n private accountFilterService: ExpensesAccountFilterService,\n private financialAccountsService: FinancialAccountsService,\n private projectExpensesService: ProjectExpensesService,\n private projectCardService: ProjectCardService,\n private changeDetector: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.projectCardService.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.service.reload());\n this.service.changes$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.changeDetector.detectChanges();\n });\n this.groupFilterService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.changeDetector.detectChanges();\n });\n this.financialAccountsService.projectExpensesAccountsNotIncludedInBalance$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((accounts) => {\n this.accountFilterService.updateAccountsNotIncludedInBalance(accounts);\n });\n this.projectExpensesService.init();\n this.service.init();\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n this.projectExpensesService.dispose();\n this.destroyed$.next();\n }\n}\n","\n \n\n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
    \n {{ 'projects.projects.card.expenses.calendar.analytics' | translate }}\n \n {{ 'projects.projects.card.expenses.calendar.total' | translate }}\n
    \n
    \n\n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
    \n {{ section.title }}\n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n
    \n
    \n\n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectExpensesSharedModule } from '../shared/project-expenses-shared.module';\nimport { ProjectExpensesCalendarComponent } from './project-expenses-calendar.component';\nimport { ProjectExpensesCalendarGroupFilterComponent } from './shared/project-expenses-calendar-group-filter/project-expenses-calendar-group-filter.component';\nimport { ProjectExpensesCalendarLeftGroupComponent } from './shared/project-expenses-calendar-left-group/project-expenses-calendar-left-group.component';\nimport { ProjectExpensesCalendarRightGroupComponent } from './shared/project-expenses-calendar-right-group/project-expenses-calendar-right-group.component';\nimport { ProjectExpensesCalendarSlotInfoComponent } from './shared/project-expenses-calendar-slot-info/project-expenses-calendar-slot-info.component';\nimport { ProjectExpensesCalendarToolbarComponent } from './shared/project-expenses-calendar-toolbar/project-expenses-calendar-toolbar.component';\n\n@NgModule({\n declarations: [\n ProjectExpensesCalendarComponent,\n ProjectExpensesCalendarToolbarComponent,\n ProjectExpensesCalendarLeftGroupComponent,\n ProjectExpensesCalendarRightGroupComponent,\n ProjectExpensesCalendarSlotInfoComponent,\n ProjectExpensesCalendarGroupFilterComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ScheduleNavigationModule,\n ProjectExpensesSharedModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.expenses.calendar',\n url: '/calendar',\n component: ProjectExpensesCalendarComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n exports: [ProjectExpensesCalendarComponent],\n})\nexport class ProjectExpensesCalendarModule {}\n","import { Component } from '@angular/core';\nimport { ExpensesGroupType } from '../../../models/expenses-view.model';\nimport { ProjectExpensesCalendarGroupFilterService } from '../../core/project-expenses-calendar-group-filter.service';\n\n@Component({\n selector: 'wp-project-expenses-calendar-group-filter',\n templateUrl: './project-expenses-calendar-group-filter.component.html',\n standalone: false,\n})\nexport class ProjectExpensesCalendarGroupFilterComponent {\n constructor(public service: ProjectExpensesCalendarGroupFilterService) {}\n\n public onToggle(group: ExpensesGroupType) {\n this.service.toggleGroup(group);\n }\n}\n","
    \n \n \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport {\n ExpensesGroupType,\n ExpensesViewGroup,\n ExpensesViewRuleLine,\n ExpensesViewTaskLine,\n ExpensesViewTypeLine,\n} from '../../../models/expenses-view.model';\nimport { ProjectExpensesCalendarService } from '../../core/project-expenses-calendar.service';\nimport _ from 'lodash';\nimport { ProjectExpensesService } from 'src/app/projects/card/project-expenses/project-expenses.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpProjectExpensesCalendarLeftGroup]',\n templateUrl: './project-expenses-calendar-left-group.component.html',\n styleUrls: ['./project-expenses-calendar-left-group.component.scss'],\n standalone: false,\n})\nexport class ProjectExpensesCalendarLeftGroupComponent\n implements OnInit, OnDestroy\n{\n @Input() group: ExpensesViewGroup;\n @Input() showOther = true;\n\n /**\n * Determines whether group has task lines or other line expense type lines or not.\n *\n * @returns true if group has task lines or other line expense type lines, false otherwise.\n */\n public get hasLines(): boolean {\n const hasTaskLines = this.group.taskLines.length !== 0;\n const hasOtherLineTypes =\n !!this.group.otherLine && this.group.otherLine.typeLines.length !== 0;\n return hasTaskLines || hasOtherLineTypes;\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly ExpensesGroupType = ExpensesGroupType;\n\n private ruleEstimateBeingUpdatedMap: Dictionary = {};\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public projectExpensesService: ProjectExpensesService,\n private service: ProjectExpensesCalendarService,\n private notification: NotificationService,\n private changeDetectorRef: ChangeDetectorRef,\n private messageService: MessageService,\n ) {}\n\n ngOnInit(): void {\n this.service.toggle$\n .pipe(\n filter((id) => id === this.group.id),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.changeDetectorRef.detectChanges();\n });\n this.service.changes$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.recalculateTotals();\n this.changeDetectorRef.detectChanges();\n });\n\n this.recalculateTotals();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n trackByTaskId = (index: number, row: ExpensesViewTaskLine) => row.task.id;\n\n trackByTypeId = (index: number, row: ExpensesViewTypeLine) => row.account?.id;\n\n trackByRuleId = (index: number, row: ExpensesViewRuleLine) => row.rule.id;\n\n /**\n * Gets expandable row icon CSS class.\n *\n * @param isExpanded Determines whether row is expanded or not.\n * @returns CSS class.\n * */\n public getExpandableRowIconClass(isExpanded: boolean): string {\n return isExpanded ? 'bi-chevron-down' : 'bi-chevron-right';\n }\n\n /**\n * Gets expand/collapse all icon CSS class.\n *\n * @param isExpanded Determines whether row is expanded or not.\n * @returns CSS class.\n * */\n public getToggleAllIconClass(isExpanded: boolean): string {\n return isExpanded ? 'bi-chevron-double-down' : 'bi-chevron-double-right';\n }\n\n /**\n * Gets line offset CSS style.\n *\n * @param indent Line indent.\n * @param isExpandable Indicates whether line is expandable or not. Additional offset is added for not expandable lines.\n * @returns CSS style value.\n * */\n public getLineOffsetStyle(indent: number, isExpandable = true): string {\n return 25 + 15 * indent + (!isExpandable ? 21 : 0) + 'px';\n }\n\n /**\n * Determines whether group task line has expense type lines or not.\n *\n * @param taskLine Task line.\n * @returns true if task line has expense type lines, false otherwise.\n */\n public hasExpenseTypes(taskLine: ExpensesViewTaskLine): boolean {\n return this.service.hasExpenseTypes(taskLine);\n }\n\n /**\n * Determines whether group expense type line has expense rules or not.\n *\n * @param group Group.\n * @param typeLine Expense type line.\n * @returns true if expense type line has rules, false otherwise.\n */\n public hasRules(\n group: ExpensesViewGroup,\n typeLine: ExpensesViewTypeLine,\n ): boolean {\n return this.service.hasRules(group, typeLine);\n }\n\n /**\n * Determines whether group expense rule line has deviation indicator or not.\n *\n * @param group Group.\n * @param ruleLine Expense rule line.\n * @returns true if expense rule line has deviation indicator, false otherwise.\n */\n public hasDeviationIndicator(\n group: ExpensesViewGroup,\n ruleLine: ExpensesViewRuleLine,\n ) {\n return this.service.hasDeviationIndicator(group, ruleLine);\n }\n\n /**\n * Determines whether group expense rule line estimate entries are being updated or not.\n *\n * @param ruleId Rule ID.\n * @returns true if expense rule estimate entries are being updated, false otherwise.\n */\n public isRuleEstimateBeingUpdated(ruleId: string): boolean {\n return this.ruleEstimateBeingUpdatedMap[ruleId] === true;\n }\n\n /**\n * Updates Recurring expense rule estimate entries.\n *\n * @param ruleId Rule ID.\n */\n public onUpdateExpenseRuleEstimates(ruleId: string) {\n if (this.isRuleEstimateBeingUpdated(ruleId)) {\n return;\n }\n\n this.messageService\n .confirmLocal(\n 'projects.projects.recurringExpenseRules.modal.messages.updateEstimateConfirmation',\n )\n .then(\n () => {\n this.ruleEstimateBeingUpdatedMap[ruleId] ??= true;\n this.projectExpensesService\n .updateExpenseRuleEstimates(ruleId)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n delete this.ruleEstimateBeingUpdatedMap[ruleId];\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.ruleEstimateBeingUpdatedMap[ruleId] = false;\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Toggles group (expand/collapse).\n * */\n public onExpand() {\n this.group.isExpanded = !this.group.isExpanded;\n this.group.isAllExpanded = this.checkExpandedAll();\n this.service.toggleGroup(this.group.id);\n }\n\n /**\n * Toggles group and all child (expand/collapse).\n * */\n public onExpandAll() {\n this.group.isAllExpanded = !this.group.isAllExpanded;\n this.group.isExpanded = this.group.isAllExpanded;\n this.group.taskLines?.forEach((task) => {\n task.isExpanded = this.group.isAllExpanded;\n task.typeLines.forEach((line) => {\n line.isExpanded = this.group.isAllExpanded;\n });\n });\n this.service.toggleGroup(this.group.id);\n this.group.otherLine.typeLines.forEach((line) => {\n line.isExpanded = this.group.isAllExpanded;\n });\n }\n\n /**\n * Checks if group and all its nested items are expanded or not.\n *\n * @returns true if all items are expanded\n * */\n private checkExpandedAll(): boolean {\n if (!this.group.isExpanded) {\n return false;\n }\n\n if (\n this.group.taskLines?.some(\n (task) =>\n !task.isExpanded ||\n task.typeLines.some(\n (line) => this.hasRules(this.group, line) && !line.isExpanded,\n ),\n )\n ) {\n return false;\n }\n\n if (\n this.group.otherLine?.typeLines.some(\n (line) => this.hasRules(this.group, line) && !line.isExpanded,\n )\n ) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Toggles line (expand/collapse).\n * */\n public onLineExpand(line: ExpensesViewTaskLine | ExpensesViewTypeLine) {\n line.isExpanded = !line.isExpanded;\n this.group.isAllExpanded = this.checkExpandedAll();\n this.service.toggleGroup(this.group.id);\n }\n\n /**\n * Toggles other group (expand/collapse).\n * */\n public onToggleGroupOther() {\n this.service.toggleGroupOther(this.group);\n }\n\n /**\n * Recalculates group and task line totals.\n */\n public recalculateTotals() {\n this.group.taskLines.forEach((taskLine) => {\n taskLine.total = _.sumBy(taskLine.typeLines, 'total');\n });\n this.group.total = _.sumBy(this.group.taskLines, 'total');\n\n if (this.group.otherLine) {\n const otherTypeLines = this.group.otherLine.typeLines;\n this.group.otherLine.total = _.sumBy(otherTypeLines, 'total');\n }\n if (this.showOther) {\n this.group.total += this.group.otherLine?.total ?? 0;\n }\n }\n}\n","\n \n
    \n \n \n \n \n {{ group.title }}\n \n \n {{\n (group.isAllExpanded ? 'shared.actions.collapseAll' : 'shared.actions.expandAll')\n | translate\n }}\n \n \n
    \n \n {{ group.total | zeroToNull | number: '1.2-2' }}\n\n\n\n \n \n \n \n \n \n \n {{ taskLine.title }}\n \n \n {{ taskLine.total | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n \n \n \n \n \n {{ typeLine.title }}\n \n \n {{ typeLine.total | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n {{ typeLine.innerLine.title }}\n \n \n {{ typeLine.innerLine.total | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n \n \n {{ ruleLine.title }}\n \n \n \n \n \n \n {{ ruleLine.title }}\n \n \n \n \n {{ ruleLine.total | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n \n\n \n \n \n \n
    \n \n {{\n group.otherLine.title\n }}\n \n
    \n \n \n {{ (showOther ? group.otherLine.total : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n \n \n \n \n {{ typeLine.title }}\n \n \n {{ (showOther ? typeLine.total : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n {{ typeLine.innerLine.title }}\n \n \n {{ (showOther ? typeLine.innerLine.total : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n {{ ruleLine.title }}\n \n \n \n {{ (showOther ? ruleLine.total : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DateValue, RuleDateValue } from '../../../models/expenses-data.model';\nimport {\n ExpensesGroupType,\n ExpensesViewGroup,\n ExpensesViewInnerTypeLine,\n ExpensesViewRuleLine,\n ExpensesViewTaskLine,\n ExpensesViewTypeLine,\n} from '../../../models/expenses-view.model';\nimport { ProjectExpensesCalendarDataService } from '../../core/project-expenses-calendar-data.service';\nimport { SlotInfo } from '../../core/project-expenses-calendar-slot-info.service';\nimport { ProjectExpensesCalendarService } from '../../core/project-expenses-calendar.service';\nimport { ProjectExpensesCalendarSlotInfoComponent } from '../project-expenses-calendar-slot-info/project-expenses-calendar-slot-info.component';\nimport { RecurringExpenseRuleDto } from 'src/app/shared/models/entities/projects/recurring-expense-rule-dto.model';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpProjectExpensesCalendarRightGroup]',\n templateUrl: './project-expenses-calendar-right-group.component.html',\n styleUrls: ['./project-expenses-calendar-right-group.component.scss'],\n standalone: false,\n})\nexport class ProjectExpensesCalendarRightGroupComponent\n implements OnInit, OnDestroy\n{\n @Input() group: ExpensesViewGroup;\n @Input() showOther = true;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly ExpensesGroupType = ExpensesGroupType;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProjectExpensesCalendarService,\n private dataService: ProjectExpensesCalendarDataService,\n private changeDetector: ChangeDetectorRef,\n private translate: TranslateService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.service.toggle$\n .pipe(\n filter((id) => id === this.group.id),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.changeDetector.detectChanges();\n });\n this.service.changes$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.recalculateEntries();\n });\n\n this.recalculateEntries();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n trackByTaskId = (index: number, row: ExpensesViewTaskLine) => row.task.id;\n\n trackByTypeId = (index: number, row: ExpensesViewTypeLine) => row.account?.id;\n\n trackByRuleId = (index: number, row: ExpensesViewRuleLine) => row.rule?.id;\n\n trackById = (index: number, row: any) => row.id;\n\n public hasRules(\n group: ExpensesViewGroup,\n typeLine: ExpensesViewTypeLine,\n ): boolean {\n return this.service.hasRules(group, typeLine);\n }\n\n public isSlotEditable(group: ExpensesViewGroup, entry: DateValue) {\n return this.service.isSlotEditable(group, entry);\n }\n\n public isRuleSlotEditable(\n group: ExpensesViewGroup,\n expenseRule: RecurringExpenseRuleDto,\n entry: RuleDateValue,\n ) {\n return this.service.isRuleSlotEditable(group, expenseRule, entry);\n }\n\n /**\n * Opens popup for passed entry\n *\n * @param group - group which entry is from\n * @param taskLine - task line which entry is from\n * @param typeLine - type lines which entry is from\n * @param ruleLine - expense rule lines which entry is from\n * @param entry - entry itself\n * @param event - mouse event\n */\n public openPopup(\n group: ExpensesViewGroup,\n taskLine: ExpensesViewTaskLine,\n typeLine: ExpensesViewTypeLine | ExpensesViewInnerTypeLine,\n ruleLine: ExpensesViewRuleLine,\n entry: DateValue | RuleDateValue,\n event: MouseEvent,\n ) {\n if (\n !!ruleLine?.rule &&\n !this.isRuleSlotEditable(group, ruleLine.rule, entry as RuleDateValue)\n ) {\n return;\n }\n if (!this.isSlotEditable(group, entry)) {\n return;\n }\n const section = this.dataService.getSectionByGroup(group);\n const taskId = taskLine ? taskLine.task.id : null;\n const account = typeLine ? typeLine.account : null;\n const dateTo = this.service.getSlotEndDate(entry);\n const groupedLaborCosts = this.getGroupedLaborCosts(\n group,\n taskLine,\n typeLine,\n entry,\n );\n\n const expenseRule = ruleLine?.rule ?? null;\n const isInnerLine = !!typeLine && !typeLine['rules'];\n const target = event.target;\n this.infoPopupService.open({\n target,\n data: {\n component: ProjectExpensesCalendarSlotInfoComponent,\n params: {\n sectionType: section.type,\n projectId: this.dataService.projectId,\n projectTaskId: taskId,\n account,\n isInnerLine,\n expenseRule,\n groupedLaborCosts,\n dateFrom: entry.date,\n dateTo,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Recalculates group entries\n *\n * @private\n */\n private recalculateEntries() {\n const getTaskTypeLineEntries = (\n typeLines: ExpensesViewTypeLine[],\n ): DateValue[] => _.flatten(typeLines.map((typeLine) => typeLine.entries));\n const getTypeLineGroupEntries = (\n typeLine: ExpensesViewTypeLine,\n ): DateValue[] =>\n _.flatten([\n ...(typeLine.innerLine?.entries ?? []),\n ...typeLine.rules.flatMap((l) => l.entries),\n ]);\n\n // Init Group, Task and Type slots\n this.group.entries = this.service.getFilledSlots();\n this.group.taskLines.forEach((taskLine) => {\n taskLine.typeLines.forEach((typeLine) => {\n typeLine.entries = this.service.getFilledSlots(typeLine.entries);\n if (typeLine.innerLine) {\n typeLine.innerLine.entries = this.service.getFilledSlots(\n typeLine.innerLine.entries,\n );\n }\n typeLine.rules.forEach((ruleLine) => {\n ruleLine.entries = this.service.getRuleFilledSlots(ruleLine.entries);\n });\n });\n taskLine.entries = this.service.getFilledSlots(taskLine.entries);\n });\n if (this.group.otherLine) {\n this.group.otherLine.typeLines.forEach((typeLine) => {\n typeLine.entries = this.service.getFilledSlots(typeLine.entries);\n if (typeLine.innerLine) {\n typeLine.innerLine.entries = this.service.getFilledSlots(\n typeLine.innerLine.entries,\n );\n }\n typeLine.rules.forEach((ruleLine) => {\n ruleLine.entries = this.service.getRuleFilledSlots(ruleLine.entries);\n });\n });\n this.group.otherLine.entries = this.service.getFilledSlots(\n this.group.otherLine.entries,\n );\n }\n\n // Calculate TaskLine total entries by TypeLine entries\n this.group.taskLines.forEach((taskLine) => {\n // Calculate TypeLine group total entries by inner line and Rule entries.\n taskLine.typeLines\n .filter((typeLine) => this.service.hasRules(this.group, typeLine))\n .forEach((typeLine) => {\n const typeLineGroupEntries = getTypeLineGroupEntries(typeLine);\n typeLine.entries.forEach((typeLineEntry) => {\n typeLineEntry.amount = 0;\n const entriesByDate = typeLineGroupEntries.filter(\n (entry) => entry.date === typeLineEntry.date,\n );\n typeLineEntry.amount += _.sumBy(entriesByDate, 'amount');\n });\n });\n const typeLineEntries = getTaskTypeLineEntries(taskLine.typeLines);\n taskLine.entries.forEach((taskLineEntry) => {\n taskLineEntry.amount = 0;\n const entriesByDate = typeLineEntries.filter(\n (typeLineEntry) => typeLineEntry.date === taskLineEntry.date,\n );\n taskLineEntry.amount += _.sumBy(entriesByDate, 'amount');\n });\n });\n if (this.showOther && !!this.group.otherLine) {\n // Calculate Other TypeLine group total entries by inner line and Rule entries.\n this.group.otherLine.typeLines\n .filter((typeLine) => this.service.hasRules(this.group, typeLine))\n .forEach((typeLine) => {\n const typeLineGroupEntries = getTypeLineGroupEntries(typeLine);\n typeLine.entries.forEach((typeLineEntry) => {\n typeLineEntry.amount = 0;\n const entriesByDate = typeLineGroupEntries.filter(\n (entry) => entry.date === typeLineEntry.date,\n );\n typeLineEntry.amount += _.sumBy(entriesByDate, 'amount');\n });\n });\n const typeLineEntries = getTaskTypeLineEntries(\n this.group.otherLine.typeLines ?? [],\n );\n this.group.otherLine.entries.forEach((taskLineEntry) => {\n taskLineEntry.amount = 0;\n const entriesByDate = typeLineEntries.filter(\n (typeLineEntry) => typeLineEntry.date === taskLineEntry.date,\n );\n taskLineEntry.amount += _.sumBy(entriesByDate, 'amount');\n });\n }\n\n // Calculate Group total entries by TaskLine entries\n this.group.entries.forEach((entry) => {\n entry.amount = 0;\n this.group.taskLines.forEach((taskLine) => {\n const entriesByDate = taskLine.entries.filter(\n (taskLineEntry) => taskLineEntry.date === entry.date,\n );\n entry.amount += _.sumBy(entriesByDate, 'amount');\n });\n\n if (this.showOther) {\n const otherEntriesByDate = this.group.otherLine?.entries.filter(\n (otherLineEntry) => otherLineEntry.date === entry.date,\n );\n entry.amount += _.sumBy(otherEntriesByDate, 'amount');\n }\n });\n this.changeDetector.detectChanges();\n }\n\n /**\n * Gets grouped labor costs\n *\n * @private\n * @param group - group which labor costs are from\n * @param taskLine - task line which labor costs are from\n * @param typeLine - type line that assumed to be labor cost\n * @param entry - entry which contains labor costs\n * @returns Grouped labor costs.\n */\n private getGroupedLaborCosts(\n group: ExpensesViewGroup,\n taskLine: ExpensesViewTaskLine,\n typeLine: ExpensesViewTypeLine | ExpensesViewInnerTypeLine,\n entry: DateValue,\n ): SlotInfo {\n const laborCostType = {\n id: null,\n name: this.dataService.laborCostTitle,\n } as NamedEntity;\n\n let laborCostAmount = 0;\n const isLaborCost =\n typeLine && FinancialAccount.laborCostIds.includes(typeLine.account.id);\n\n if (isLaborCost) {\n laborCostAmount = entry.amount;\n } else if (taskLine) {\n const laborCostEntries = _.flatten(\n taskLine.typeLines\n .filter((tl) => FinancialAccount.laborCostIds.includes(tl.account.id))\n .map((ftl) => ftl.entries),\n ).filter((lce) => lce.date === entry.date && lce.amount);\n\n laborCostAmount = laborCostEntries\n .map((lce) => lce.amount)\n .reduce((curr, next) => curr + next, 0);\n } else if (group) {\n group.taskLines.forEach((tl) => {\n const laborCostEntries = _.flatten(\n tl.typeLines\n .filter((ttl) =>\n FinancialAccount.laborCostIds.includes(ttl.account.id),\n )\n .map((ftl) => ftl.entries),\n ).filter((lce) => lce.date === entry.date && lce.amount);\n\n laborCostAmount += laborCostEntries\n .map((lce) => lce.amount)\n .reduce((curr, next) => curr + next, 0);\n });\n }\n\n if (!laborCostAmount) {\n return;\n }\n\n return {\n id: Guid.generate(),\n amount: laborCostAmount,\n account: laborCostType,\n } as SlotInfo;\n }\n}\n","\n \n {{ entry.amount | zeroToNull | number: '1.2-2' }}\n \n\n\n \n \n \n {{ taskEntry.amount | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n {{ typeEntry.amount | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n {{ typeEntry.amount | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n
    \n {{ ruleEntry.amount | zeroToNull | number: '1.2-2' }}\n @if (ruleEntry.deviatesFromBase) {\n \n }\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n \n {{ (showOther ? taskEntry.amount : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n {{ (showOther ? typeEntry.amount : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n \n {{ (showOther ? typeEntry.amount : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n {{ (showOther ? typeEntry.amount : 0) | zeroToNull | number: '1.2-2' }}\n \n \n \n \n \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { ProjectCardService } from '../../../../core/project-card.service';\nimport { ExpensesSectionType } from '../../../models/expenses-view.model';\nimport { ExpenseEstimateModalComponent } from '../../../project-expense-estimates/shared/expense-estimate-modal/expense-estimate-modal.component';\nimport {\n ProjectExpensesCalendarSlotInfoService,\n SlotInfo,\n} from '../../core/project-expenses-calendar-slot-info.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectExpenseEstimate } from 'src/app/shared/models/entities/projects/project-expense-estimate.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { RuleCalculationMethod } from 'src/app/shared/models/enums/rule-calculation-method.enum';\n\n@Component({\n selector: 'wp-project-expenses-calendar-slot-info',\n templateUrl: './project-expenses-calendar-slot-info.component.html',\n styleUrls: ['./project-expenses-calendar-slot-info.component.scss'],\n standalone: false,\n})\nexport class ProjectExpensesCalendarSlotInfoComponent\n implements OnInit, OnDestroy\n{\n @Input() params: any;\n\n public slotInfo: SlotInfo[] = [];\n public laborCostInfo: SlotInfo;\n\n public isShown: boolean;\n public isLoading$ = new BehaviorSubject(true);\n\n public get projectCurrencyCode() {\n return this._projectCurrencyCode;\n }\n\n /**\n * Checks if Slot creation is allowed on popup or not.\n *\n * @returns true if creation is allowed, false otherwise.\n * */\n public get createAllowed(): boolean {\n if (this.params.expenseRule || this.params.isAutomatic) {\n return false;\n }\n return this.editAllowed();\n }\n\n private project: Project;\n private _projectCurrencyCode: string;\n private projectVersion: ProjectVersion;\n\n private defaultTask: ProjectTask;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private injector: Injector,\n private service: ProjectExpensesCalendarSlotInfoService,\n private projectTasksService: ProjectTasksService,\n private projectCardService: ProjectCardService,\n private changeDetector: ChangeDetectorRef,\n private modal: NgbModal,\n private infoPopupService: InfoPopupService,\n ) {}\n\n ngOnInit(): void {\n this.projectCardService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n this._projectCurrencyCode = this.project.currency.alpha3Code;\n });\n\n this.open();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Checks if Slot edit is allowed on popup or not.\n *\n * @param slot Slot to check. If not passed, general access rights will be checked.\n * @returns true if edit is allowed, false otherwise.\n * */\n public editAllowed(slot?: SlotInfo): boolean {\n if (\n (!!slot?.expenseRule &&\n slot.expenseRule.calculationMethod === RuleCalculationMethod.Percent) ||\n slot?.isAutomatic\n ) {\n return false;\n }\n if (!this.project) {\n return true;\n }\n\n let editAllowed: boolean;\n switch (this.params.sectionType) {\n case ExpensesSectionType.expenses:\n editAllowed = this.project.expenseEstimateEditAllowed;\n break;\n }\n\n return editAllowed && this.projectVersion.editAllowed;\n }\n\n /**\n * Opens Slot popup with loaded data.\n * */\n public open(): void {\n this.service.sectionType = this.params.sectionType;\n this.service.projectId = this.params.projectId;\n this.projectVersion = this.service.versionCardService.projectVersion;\n\n this.setDefaultTask();\n\n this.isShown = true;\n this.changeDetector.detectChanges();\n\n const laborCostSelected =\n this.params.account && this.params.account.id === null;\n if (laborCostSelected) {\n this.isLoading$.next(false);\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n\n return;\n }\n\n this.service\n .load(\n this.params.projectTaskId,\n this.params.account,\n this.params.expenseRule,\n this.params.isInnerLine,\n this.params.dateFrom,\n this.params.dateTo,\n )\n .then((loaded) => {\n this.slotInfo = loaded;\n this.isLoading$.next(false);\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n });\n }\n\n /**\n * Opens Modal window in create mode and saves entered data.\n * */\n public onCreate(): void {\n this.isShown = false;\n this.infoPopupService.close();\n this.openModal().then(\n (filled: SlotInfo) => {\n filled.id = Guid.generate();\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n filled,\n this.params.projectId,\n );\n\n this.slotInfo.push(filled);\n\n const data = {\n id: filled.id,\n projectTaskId: filled.projectTask.id,\n accountId: filled.account.id,\n expenseRuleId: filled.expenseRule?.id ?? null,\n date: filled.date,\n amount: filled.amount,\n description: filled.description,\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n data,\n this.params.projectId,\n );\n\n this.service.insert(data).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n },\n () => null,\n );\n }\n\n /**\n * Opens Modal window in edit mode and saves entered data.\n *\n * @param info Slot to edit.\n * */\n public onEdit(info: SlotInfo): void {\n this.isShown = false;\n this.infoPopupService.close();\n this.openModal(info).then(\n (filled) => {\n const index = this.slotInfo.findIndex((i) => i.id === filled.id);\n this.slotInfo[index] = filled as SlotInfo;\n\n const data = {\n id: filled.id,\n projectTaskId: filled.projectTask.id,\n accountId: filled.account.id,\n expenseRuleId: filled.expenseRule?.id ?? null,\n date: filled.date,\n amount: filled.amount,\n description: filled.description,\n };\n if (filled.isAutomatic) {\n data['isAutomatic'] = filled.isAutomatic;\n }\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n data,\n this.params.projectId,\n );\n\n this.service.update(data).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n },\n () => null,\n );\n }\n\n /**\n * Removes entity from memory and on server.\n *\n * @param info Slot to remove.\n * */\n public onRemove(info: SlotInfo): void {\n if (!this.editAllowed(info)) {\n return;\n }\n this.slotInfo = this.slotInfo.filter((i) => i.id !== info.id);\n this.service.delete(info.id).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n }\n\n private openModal(info?: SlotInfo): Promise {\n const ref = (() => {\n switch (this.params.sectionType) {\n case ExpensesSectionType.expenses:\n return this.modal.open(ExpenseEstimateModalComponent, {\n injector: this.injector,\n });\n }\n })();\n const instance = ref.componentInstance;\n instance.projectId = this.params.projectId;\n instance.projectVersion = this.projectVersion;\n instance.projectCurrencyCode = this.projectCurrencyCode;\n\n if (info) {\n instance.readonly = !this.editAllowed(info) || !info.account?.id;\n instance.entry = info as ProjectExpenseEstimate;\n return ref.result;\n }\n instance.entry = {\n date: this.params.dateTo,\n projectTask: this.defaultTask as NamedEntity,\n account: !this.params.account?.id ? null : this.params.account,\n expenseRule: this.params.expenseRule ?? null,\n isAutomatic: this.params.isAutomatic,\n };\n return ref.result;\n }\n\n private setDefaultTask() {\n this.projectTasksService\n .getProjectTasks(this.project.id, this.projectVersion)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((tasks) => {\n const currTask = tasks.find((t) => t.id === this.params.projectTaskId);\n const leadTask = tasks.find((t) => !t.leadTaskId);\n this.defaultTask = currTask ?? leadTask;\n });\n }\n}\n","@if (!(isLoading$ | async)) {\n
    \n

    \n {{ 'shared.noDisplayData' | translate }}\n

    \n
    \n\n \n \n \n \n \n \n \n\n \n \n \n {{ slot.date | date: 'shortDate' }}\n \n \n \n {{ slot.account?.name }}\n \n \n \n \n \n\n \n \n \n \n \n \n \n
    \n {{ slot.amount | wpCurrency: projectCurrencyCode }}\n
    {{ laborCostInfo.amount | wpCurrency }}\n {{ laborCostInfo.account?.name }}\n
    \n\n
    \n

    \n \n

    \n
    \n}\n\n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ProjectExpensesCalendarService } from '../../core/project-expenses-calendar.service';\nimport { ProjectExpensesService } from 'src/app/projects/card/project-expenses/project-expenses.service';\n\n@Component({\n selector: 'wp-project-expenses-calendar-toolbar',\n templateUrl: './project-expenses-calendar-toolbar.component.html',\n styles: [':host {display: block}'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectExpensesCalendarToolbarComponent {\n @Input() disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly planningScale = PlanningScale;\n\n constructor(\n public projectExpensesService: ProjectExpensesService,\n public service: ProjectExpensesCalendarService,\n ) {}\n}\n","
    \n \n \n\n @if (!service.readonly) {\n \n {{ 'projects.projects.recurringExpenseRules.actions.addRule' | translate }}\n \n }\n\n
    \n \n \n
    \n
    \n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-project-expenses',\n templateUrl: './project-expenses.component.html',\n standalone: false,\n})\nexport class ProjectExpensesComponent {}\n","\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectExpenseEstimatesModule } from './project-expense-estimates/project-expense-estimates.module';\nimport { ProjectExpensesCalendarModule } from './project-expenses-calendar/project-expenses-calendar.module';\nimport { ProjectExpensesComponent } from './project-expenses.component';\nimport { RecurringExpenseRuleModalComponent } from 'src/app/projects/card/project-expenses/recurring-expense-rule-modal/recurring-expense-rule-modal.component';\n\n@NgModule({\n declarations: [ProjectExpensesComponent, RecurringExpenseRuleModalComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProjectExpenseEstimatesModule,\n ProjectExpensesCalendarModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.expenses',\n url: '/expenses',\n component: ProjectExpensesComponent,\n redirectTo: 'project.expenses.calendar',\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectExpensesModule {}\n","import { Injectable, Injector } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { RecurringExpenseRuleModalComponent } from 'src/app/projects/card/project-expenses/recurring-expense-rule-modal/recurring-expense-rule-modal.component';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\n\n@Injectable()\nexport class ProjectExpensesService {\n private ruleModalClosedSubject = new Subject();\n public ruleModalClosed$ = this.ruleModalClosedSubject.asObservable();\n private ruleEstimateUpdatedSubject = new Subject();\n public ruleEstimateUpdated$ = this.ruleEstimateUpdatedSubject.asObservable();\n\n private _readonly: boolean;\n\n private project: Project;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private injector: Injector,\n private projectService: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private data: DataService,\n private modal: NgbModal,\n ) {}\n\n /**\n * Inits service subscriptions.\n */\n public init() {\n this.projectService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n this._readonly =\n !project.expenseEstimateEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n });\n }\n\n /**\n * Disposes all subscriptions.\n * */\n public dispose() {\n this.destroyed$.next();\n }\n\n /**\n * Opens Recurring expense rule modal.\n *\n * @param ruleId Rule ID. If passed, the existing Rule is opened in edit mode.\n */\n public openExpenseRuleModal(ruleId: string | null = null): void {\n const ref = this.modal.open(RecurringExpenseRuleModalComponent, {\n injector: this.injector,\n });\n const instance =\n ref.componentInstance as RecurringExpenseRuleModalComponent;\n instance.ruleId = ruleId;\n instance.projectId = this.project.id;\n instance.projectVersion = this.versionCardService.projectVersion;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.readonly = this._readonly;\n\n ref.result.then(\n () => {\n this.ruleModalClosedSubject.next();\n },\n () => null,\n );\n }\n\n /**\n * Updates Recurring expense rule estimate entries.\n *\n * @param ruleId Rule ID.\n */\n public updateExpenseRuleEstimates(ruleId: string): Observable {\n return this.data\n .collection('RecurringExpenseRules')\n .entity(ruleId)\n .action('UpdateRuleEstimate')\n .execute()\n .pipe(tap(() => this.ruleEstimateUpdatedSubject.next()));\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RuleModalSavingState {\n none = 0,\n saveRuleAndEstimate = 2,\n delete = 3,\n}\n\nexport const RuleModalSavingStateMap = {\n none: RuleModalSavingState.none,\n saveRuleAndEstimate: RuleModalSavingState.saveRuleAndEstimate,\n delete: RuleModalSavingState.delete,\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, Observable, pipe, Subject } from 'rxjs';\nimport { FormGroupService } from 'src/app/shared/services/form-group.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n RuleCalculationMethod,\n RuleCalculationMethods,\n} from 'src/app/shared/models/enums/rule-calculation-method.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n RuleCalculationBase,\n RuleCalculationBases,\n} from 'src/app/shared/models/enums/rule-calculation-base.enum';\nimport { RecurringExpenseFrequencies } from 'src/app/shared/models/enums/recurring-expense-frequency.enum';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { RecurringExpenseRule } from 'src/app/shared/models/entities/projects/recurring-expense-rule.model';\nimport { camelCase, cloneDeep } from 'lodash';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n RuleModalSavingState,\n RuleModalSavingStateMap,\n} from 'src/app/projects/card/project-expenses/recurring-expense-rule-modal/enums/rule-modal-saving-state.enum';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\n\n@Component({\n selector: 'wp-recurring-expenses-modal',\n templateUrl: './recurring-expense-rule-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RecurringExpenseRuleModalComponent implements OnInit, OnDestroy {\n @Input() ruleId: string | null = null;\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() projectCurrencyCode: string;\n @Input() readonly: boolean;\n\n public collection = this.data.collection('RecurringExpenseRules');\n\n public form = this.fb.group({\n id: null,\n crossId: null,\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: [null, Validators.maxLength(Constants.formTextMaxLength)],\n account: [null, Validators.required],\n projectTask: [null, Validators.required],\n calculationMethod: [null, Validators.required],\n calculationBase: null,\n amount: null,\n percent: null,\n frequency: [null, Validators.required],\n startDate: null,\n endDate: null,\n isWholeTask: true,\n });\n\n /** Component loading state. */\n public isLoading$ = new BehaviorSubject(true);\n /** Component saving state. */\n public savingState$ = new BehaviorSubject(\n RuleModalSavingState.none,\n );\n\n /** Determines if Rule has estimate entries or not. */\n public get hasEstimates() {\n return this._hasEstimates;\n }\n\n /** Is `true` when Percent Calculation method is selected, `false` otherwise. */\n public get isPercentRule() {\n return (\n this.form.controls.calculationMethod.value?.id ===\n RuleCalculationMethod.Percent\n );\n }\n\n /** Is `true` when Working Capital Calculation base is selected, `false` otherwise. */\n public get isWorkingCapitalBase() {\n return (\n this.form.controls.calculationBase.value?.id ===\n RuleCalculationBase.WorkingCapital\n );\n }\n\n /** Whole Task form control value. */\n public get isWholeTask() {\n return this.form.controls.isWholeTask.value === true;\n }\n\n /** Recurring expense rule Calculation method values. */\n public get calculationMethods() {\n return this._calculationMethods;\n }\n\n /**\n * Recurring expense rule Calculation base values.\n *\n * @remarks Depends on Project task kind selected (summary or not).\n * */\n public get calculationBases() {\n return this._calculationBases;\n }\n\n /** Recurring expense rule Frequency values. */\n public get frequencies() {\n return this._frequencies;\n }\n\n public readonly ruleModalSavingStateMap = RuleModalSavingStateMap;\n\n private ruleQuery = {\n select: [\n 'id',\n 'name',\n 'crossId',\n 'isActive',\n 'created',\n 'modified',\n 'projectId',\n 'versionId',\n 'description',\n 'calculationMethod',\n 'calculationBase',\n 'amount',\n 'percent',\n 'frequency',\n 'startDate',\n 'endDate',\n 'isWholeTask',\n 'hasEstimates',\n ],\n expand: {\n account: {\n select: ['id', 'name'],\n },\n projectTask: {\n select: [\n 'id',\n 'name',\n 'indent',\n 'leadTaskId',\n 'structNumber',\n 'number',\n ],\n },\n },\n };\n\n private rule: RecurringExpenseRule;\n\n private _hasEstimates = false;\n\n private _mainTask: ProjectTask;\n private _calculationMethods: Array;\n private _calculationBases: Array;\n private _revenueCalculationBase: NamedEntity;\n private _frequencies: Array;\n private _isProgramValueChange = false;\n private isCreatingMode = false;\n private isTrivialUpdate = true;\n private formInitData: Record;\n private trivialUpdateFields: Partial[] = [\n 'name',\n 'description',\n ];\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public financialAccountsService: FinancialAccountsService,\n private projectTasksService: ProjectTasksService,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n private formGroupService: FormGroupService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initVars();\n\n if (this.ruleId) {\n this.loadRule();\n } else {\n this.initForm();\n this.isLoading$.next(false);\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Modal Save Rule and Estimate button click event handler.\n * Creates new/Updates Rule and its Estimate entries.\n * */\n public saveRuleAndEstimate(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isTrivialUpdate = true;\n const ruleData = this.form.getRawValue();\n for (const key in ruleData) {\n if (ruleData[key] !== this.formInitData[key]) {\n this.isTrivialUpdate = this.trivialUpdateFields.includes(\n key as keyof RecurringExpenseRule,\n );\n\n if (!this.isTrivialUpdate) {\n break;\n }\n }\n }\n\n if (!this.isTrivialUpdate && !this.isCreatingMode) {\n this.message\n .confirmLocal(\n 'projects.projects.recurringExpenseRules.modal.messages.updateConfirmation',\n )\n .then(\n () => this.save(),\n () => null,\n );\n } else {\n this.save();\n }\n }\n\n /**\n * Modal Delete button click event handler.\n * Deletes the Recurring expense rule.\n * */\n public delete(): void {\n this.message\n .confirmLocal(\n 'projects.projects.recurringExpenseRules.modal.messages.deleteConfirmation',\n )\n .then(\n () => {\n this.savingState$.next(RuleModalSavingState.delete);\n this.updateFormState(true);\n this.detectChanges();\n\n this.collection\n .entity(this.ruleId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projects.recurringExpenseRules.modal.messages.deleteCompleted',\n );\n this.savingState$.next(RuleModalSavingState.none);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.updateFormState(false);\n this.savingState$.next(RuleModalSavingState.none);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Modal Cancel/Cross button click event handler.\n * Closes the active modal.\n * */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Inits variables.\n * */\n private initVars(): void {\n // Init enum select items.\n const enumValueKeyPrefix =\n 'projects.projects.recurringExpenseRules.modal.props.';\n this._calculationMethods = this.getEnumSelectItems(\n RuleCalculationMethods,\n `${enumValueKeyPrefix}calculationMethod.values.`,\n );\n this._calculationBases = this.getEnumSelectItems(\n RuleCalculationBases,\n `${enumValueKeyPrefix}calculationBase.values.`,\n );\n this._revenueCalculationBase = this._calculationBases.find(\n (x) => x.id === RuleCalculationBase.Revenue,\n );\n this._frequencies = this.getEnumSelectItems(\n RecurringExpenseFrequencies,\n `${enumValueKeyPrefix}frequency.values.`,\n );\n }\n\n /**\n * Initializes Recurring expense rule form group.\n * */\n private initForm(): void {\n if (!this.ruleId) {\n const ruleId = Guid.generate();\n this.rule = {\n id: ruleId,\n crossId: ruleId,\n description: null,\n name: '',\n account: null,\n projectTask: null,\n calculationMethod: RuleCalculationMethod.Fixed,\n amount: null,\n frequency: null,\n isWholeTask: true,\n };\n\n this.isCreatingMode = true;\n }\n\n const rule = cloneDeep(this.rule);\n rule.calculationMethod = this._calculationMethods.find(\n (x) => x.id === this.rule.calculationMethod,\n );\n rule.calculationBase = this._calculationBases.find(\n (x) => x.id === this.rule.calculationBase,\n );\n rule.frequency = this._frequencies.find(\n (x) => x.id === this.rule.frequency,\n );\n rule.startDate = this.rule.startDate ?? null;\n rule.endDate = this.rule.endDate ?? null;\n\n this.form.patchValue(rule);\n this.formInitData = this.form.getRawValue();\n\n this.handleCalculationMethodChange(rule.calculationMethod);\n this.handleIsWholeTaskChange(rule.isWholeTask);\n\n if (this.readonly) {\n this.form.disable();\n } else {\n this.projectTasksService\n .getProjectTasks(this.projectId, this.projectVersion)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((tasks) => {\n this._mainTask = tasks.find((t) => !t.leadTaskId);\n });\n\n if (!this._hasEstimates) {\n this.form.controls.projectTask.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: ProjectTask) =>\n this.handleProjectTaskChange(value),\n );\n\n this.form.controls.calculationBase.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.handleCalculationBaseChange());\n } else {\n this.form.controls.account.disable();\n this.form.controls.projectTask.disable();\n }\n\n this.form.controls.calculationMethod.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: NamedEntity) =>\n this.handleCalculationMethodChange(value),\n );\n\n this.form.controls.isWholeTask.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => this.handleIsWholeTaskChange(value));\n\n FormHelper.controlDatePair(\n this.form,\n 'startDate',\n 'endDate',\n takeUntil(this.destroyed$),\n );\n }\n }\n\n /**\n * Loads Recurring expense rule.\n * */\n private loadRule(): void {\n this.isLoading$.next(true);\n this.detectChanges();\n\n this.collection\n .entity(this.ruleId)\n .get(this.ruleQuery)\n .subscribe({\n next: (rule) => {\n this.rule = rule;\n this.isLoading$.next(false);\n this._hasEstimates = rule.hasEstimates;\n const isProject = ProjectVersionUtil.isWorkProjectVersion(\n this.projectVersion,\n );\n // Forbid editing other version or non-project rule.\n if (\n (!isProject && rule.versionId !== this.projectVersion.id) ||\n (isProject && !!rule.versionId)\n ) {\n this.readonly = true;\n }\n this.initForm();\n this.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading$.next(false);\n this.detectChanges();\n },\n });\n }\n\n /**\n * Gets Observable to Create new/Save the Recurring expense rule.\n * */\n public getSaveRuleObs(): Observable {\n const rule = this.form.getRawValue();\n const calculationMethod = this.form.controls.calculationMethod.value.id;\n const calculationBase = this.isPercentRule\n ? this.form.controls.calculationBase.value.id\n : null;\n const amount = !this.isPercentRule ? rule.amount : null;\n const percent = this.isPercentRule ? rule.percent : null;\n const frequency = this.form.controls.frequency.value.id;\n const startDate = !this.isWholeTask ? rule.startDate : null;\n const endDate = !this.isWholeTask ? rule.endDate : null;\n\n const data =\n !this.isCreatingMode && this.isTrivialUpdate\n ? this.trivialUpdateFields.reduce(\n (result, value) => ({ ...result, [value]: rule[value] }),\n {},\n )\n : {\n id: rule.id,\n name: rule.name,\n crossId: rule.crossId,\n description: rule.description,\n accountId: rule.account.id,\n projectTaskId: rule.projectTask.id,\n calculationMethod,\n calculationBase,\n amount,\n percent,\n frequency,\n startDate,\n endDate,\n isWholeTask: rule.isWholeTask,\n };\n\n if (!this.isTrivialUpdate) {\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n data,\n this.projectId,\n );\n }\n\n if (this.ruleId) {\n return this.isTrivialUpdate\n ? this.collection.entity(this.ruleId).patch(data)\n : this.collection\n .entity(this.ruleId)\n .update(data, { withResponse: true });\n } else {\n return this.collection.insert(data);\n }\n }\n\n /**\n * Triggers change detection.\n * */\n private detectChanges(): void {\n this.cdRef.detectChanges();\n }\n\n private updateFormState(disable: boolean) {\n if (disable) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n }\n\n /**\n * Project task form control value change handler.\n * Updates Recurring expense rule form group.\n *\n * @param task New Project task form control value.\n * */\n private handleProjectTaskChange(task: ProjectTask): void {\n if (task.leadTaskId && this.isWorkingCapitalBase) {\n this.form.controls.calculationBase.setValue(\n this._revenueCalculationBase,\n {\n emitEvent: false,\n },\n );\n }\n }\n\n /**\n * Calculation method form control value change handler.\n * Updates Recurring expense rule form group.\n *\n * @param calculationMethod New Calculation method form control value.\n * */\n private handleCalculationMethodChange(calculationMethod: NamedEntity): void {\n const amountControl = this.form.controls.amount as UntypedFormControl;\n const percentControl = this.form.controls.percent as UntypedFormControl;\n const calculationBaseControl = this.form.controls\n .calculationBase as UntypedFormControl;\n this._isProgramValueChange = true;\n\n switch (calculationMethod.id) {\n case RuleCalculationMethod.Fixed:\n this.formGroupService.toggleFormControlValidators(percentControl);\n this.formGroupService.toggleFormControlValidators(\n amountControl,\n Validators.required,\n );\n this.formGroupService.toggleFormControlValidators(\n calculationBaseControl,\n );\n break;\n case RuleCalculationMethod.Percent:\n this.formGroupService.toggleFormControlValidators(\n percentControl,\n Validators.required,\n );\n this.formGroupService.toggleFormControlValidators(amountControl);\n this.formGroupService.toggleFormControlValidators(\n calculationBaseControl,\n Validators.required,\n );\n break;\n }\n\n this._isProgramValueChange = false;\n }\n\n /**\n * Calculation base form control value change handler.\n * Updates Recurring expense rule form group.\n * */\n private handleCalculationBaseChange(): void {\n const projectTaskControl = this.form.controls\n .projectTask as UntypedFormControl;\n\n if (\n this.isWorkingCapitalBase &&\n !!projectTaskControl.value?.leadTaskId &&\n !!this._mainTask\n ) {\n projectTaskControl.setValue(this._mainTask, {\n emitEvent: false,\n });\n }\n }\n\n /**\n * Whole task form control value change handler.\n * Updates Recurring expense rule form group.\n *\n * @param isWholeTask New Whole task form control value.\n * */\n private handleIsWholeTaskChange(isWholeTask: boolean): void {\n const startDateControl = this.form.controls.startDate as UntypedFormControl;\n const endDateControl = this.form.controls.endDate as UntypedFormControl;\n\n if (isWholeTask === true) {\n this.formGroupService.toggleFormControlValidators(startDateControl);\n this.formGroupService.toggleFormControlValidators(endDateControl);\n } else {\n this.formGroupService.toggleFormControlValidators(\n startDateControl,\n Validators.required,\n );\n this.formGroupService.toggleFormControlValidators(\n endDateControl,\n Validators.required,\n );\n }\n }\n\n /**\n * Gets transformed enum values for select list.\n *\n * @param enumValues Enum values.\n * @param keyPrefix Translation key prefix.\n * @returns Transformed enum values.\n * */\n private getEnumSelectItems(\n enumValues: Array,\n keyPrefix: string,\n ): Array {\n return enumValues.map((e) => ({\n id: e,\n name: this.translate.instant(`${keyPrefix}${camelCase(e)}`),\n }));\n }\n\n private save(): void {\n let messageKey = 'projects.projects.recurringExpenseRules.modal.messages.';\n\n if (this.ruleId) {\n messageKey += !this.isTrivialUpdate\n ? 'updateCompleted'\n : 'ruleUpdateCompleted';\n } else {\n messageKey += 'createCompleted';\n }\n\n this.savingState$.next(RuleModalSavingState.saveRuleAndEstimate);\n this.updateFormState(true);\n this.detectChanges();\n\n this.getSaveRuleObs()\n .pipe(\n !this.isTrivialUpdate\n ? switchMap((rule: RecurringExpenseRule) =>\n this.collection\n .entity(rule.id)\n .action('CreateOrUpdateRuleEstimate')\n .execute(),\n )\n : pipe(),\n takeUntil(this.destroyed$),\n )\n .subscribe({\n next: () => {\n this.notification.successLocal(messageKey);\n this.savingState$.next(RuleModalSavingState.none);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.updateFormState(false);\n this.savingState$.next(RuleModalSavingState.none);\n },\n });\n }\n}\n","\n\n\n
    \n
    \n

    \n {{ 'projects.projects.recurringExpenseRules.modal.header' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n \n\n
    \n \n \n
    \n
    \n\n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ExpensesAccountFilterSettings } from '../../models/expenses-account-filter.settings';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { ExpensesAccountFilterSettingsForm } from '../model/expenses-account-filter-settings-form.model';\nimport { filter } from 'rxjs/operators';\n\n/** Provides methods to work with Expense Financial Accounts filter. */\n@Injectable()\nexport class ExpensesAccountFilterService {\n /** Gets Financial Account display settings. */\n public get settings(): ExpensesAccountFilterSettings {\n return this._settings;\n }\n\n private _changesSubject = new Subject();\n public changes$ = this._changesSubject.asObservable();\n\n private _accountNamesNotIncludedInBalanceSubject = new BehaviorSubject<\n FinancialAccount[]\n >(null);\n public accountNamesNotIncludedInBalance$ =\n this._accountNamesNotIncludedInBalanceSubject\n .asObservable()\n .pipe(filter((v) => !!v));\n\n private readonly _settings: ExpensesAccountFilterSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n this._settings = this.localConfigService.getConfig(\n ExpensesAccountFilterSettings,\n );\n }\n\n /**\n * Builds OData filter for {@link FinancialAccount} entity.\n *\n * @returns OData filter for {@link FinancialAccount}.\n */\n public buildAccountsFilter(): object[] {\n if (!this._settings || !this._accountNamesNotIncludedInBalanceSubject.value)\n return [];\n\n const queryFilter: object[] = [];\n\n const includedInBalanceFilterItem = { ['account/includedInBalance']: true };\n const accountIdsNotIncludedInBalance =\n this._accountNamesNotIncludedInBalanceSubject.value\n .filter((account) =>\n this._settings.includeFinAccountNamesNotIncludedInBalance.includes(\n account.name,\n ),\n )\n .map((account) => account.id);\n\n if (accountIdsNotIncludedInBalance.length) {\n const accountIdsFilter = {\n accountId: {\n in: { type: 'guid', value: accountIdsNotIncludedInBalance },\n },\n };\n queryFilter.push({\n or: {\n ...accountIdsFilter,\n ...includedInBalanceFilterItem,\n },\n });\n } else {\n queryFilter.push(includedInBalanceFilterItem);\n }\n\n return queryFilter;\n }\n\n /**\n * Triggers {@link FinancialAccount.name} (which are not included in balance) list update.\n *\n * @param accountsNotIncludedInBalance List of {@link FinancialAccount.name} (which are not included in balance).\n */\n public updateAccountsNotIncludedInBalance(\n accountsNotIncludedInBalance: FinancialAccount[],\n ): void {\n this._accountNamesNotIncludedInBalanceSubject.next(\n accountsNotIncludedInBalance,\n );\n }\n\n /**\n * Saves the settings and propagates the change to other components.\n *\n * @param settings Financial Account filter settings form value.\n * @param propagateChange Determines whether to propagate the change to other components or not.\n */\n public saveSettings(\n settings: ExpensesAccountFilterSettingsForm,\n propagateChange = true,\n ) {\n this._settings.includeLaborCost = settings.includeLaborCost;\n const accountItems = settings.accountNamesNotIncludedInBalance;\n this._settings.includeFinAccountNamesNotIncludedInBalance = Object.keys(\n accountItems,\n )\n .filter((key) => accountItems[key])\n .map((key) => key);\n\n this.localConfigService.setConfig(\n ExpensesAccountFilterSettings,\n this._settings,\n );\n\n if (propagateChange) {\n this._changesSubject.next();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ExpensesAccountFilterService } from '../core/expenses-account-filter.service';\nimport { ExpensesAccountFilterSettingsForm } from '../model/expenses-account-filter-settings-form.model';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-expenses-account-filter',\n templateUrl: './expenses-account-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ExpensesAccountFilterComponent implements OnInit {\n /** Determines whether Project Expenses Calendar tab is opened or not. */\n @Input() isCalendar = true;\n\n /** Gets form group, consisting of {@link FinancialAccount.name} (which are not included in balance) controls. */\n public get formAccountNamesNotIncludedInBalance(): UntypedFormGroup {\n return this.form.controls\n .accountNamesNotIncludedInBalance as UntypedFormGroup;\n }\n\n /** Gets {@link FinancialAccount.name} (which are not included in balance) list. */\n public get accountNamesNotIncludedInBalance(): string[] {\n return Object.keys(\n this.form.controls.accountNamesNotIncludedInBalance.value,\n );\n }\n\n public form: UntypedFormGroup = this.fb.group({\n includeLaborCost: false,\n accountNamesNotIncludedInBalance: this.fb.group({}),\n });\n\n private _formUpdating = false;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: ExpensesAccountFilterService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.service.accountNamesNotIncludedInBalance$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((accounts) => this.onAccountsLoaded(accounts));\n\n this.form.valueChanges\n .pipe(\n filter(() => !this._formUpdating),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.service.saveSettings(this.form.getRawValue());\n });\n }\n\n /**\n * Handles loaded accounts subscription.\n * @param accounts List of {@link FinancialAccount} (which are not included in balance).\n * */\n private onAccountsLoaded(accounts: FinancialAccount[]): void {\n this._formUpdating = true;\n const settings = this.service.settings;\n const settingsForm = {} as ExpensesAccountFilterSettingsForm;\n let hasRemovedItems = false;\n\n settingsForm.includeLaborCost = settings.includeLaborCost;\n // Init account name items.\n settingsForm.accountNamesNotIncludedInBalance = {};\n accounts.forEach((account) => {\n settingsForm.accountNamesNotIncludedInBalance[account.name] = false;\n });\n\n // Fill account name items from settings.\n settings.includeFinAccountNamesNotIncludedInBalance.forEach((name) => {\n // Check, if settings have any account, which was included in balance.\n if (!accounts.find((account) => account.name === name)) {\n hasRemovedItems = true;\n return;\n }\n\n settingsForm.accountNamesNotIncludedInBalance[name] = true;\n });\n\n const ctrlIncludeLaborCost = this.form.controls.includeLaborCost;\n ctrlIncludeLaborCost.patchValue(settingsForm.includeLaborCost);\n // This control does not make sense outside of Project Expenses Calendar tab.\n if (!this.isCalendar) {\n ctrlIncludeLaborCost.disable();\n }\n\n // Add account name record controls dynamically, since they can only be determined in the runtime.\n Object.keys(settingsForm.accountNamesNotIncludedInBalance).forEach(\n (name) => {\n this.formAccountNamesNotIncludedInBalance.addControl(\n name,\n this.fb.control(settingsForm.accountNamesNotIncludedInBalance[name]),\n );\n },\n );\n\n // Update settings, if they have some accounts, included in balance.\n if (hasRemovedItems) {\n this.service.saveSettings(this.form.getRawValue(), false);\n }\n\n this._formUpdating = false;\n }\n}\n","
    \n \n \n \n\n
    \n
    \n \n \n
    \n @if (accountNamesNotIncludedInBalance.length) {\n
    \n }\n\n
    \n @for (controlName of accountNamesNotIncludedInBalance; track controlName) {\n
    \n \n \n
    \n }\n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StateService } from '@uirouter/angular';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectCardService } from '../../../core/project-card.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-expenses-view-switcher',\n templateUrl: './expenses-view-switcher.component.html',\n styleUrls: ['./expenses-view-switcher.component.scss'],\n standalone: false,\n})\nexport class ExpensesViewSwitcherComponent implements OnInit {\n public control = new FormControl('calendar');\n\n constructor(\n private state: StateService,\n public projectCardService: ProjectCardService,\n ) {}\n\n ngOnInit(): void {\n switch (this.state.current.name) {\n case 'project.expenses.calendar':\n this.control.setValue('calendar');\n break;\n case 'project.expenses.estimates':\n this.control.setValue('estimates');\n break;\n }\n\n this.control.valueChanges.subscribe(() => {\n this.state.go(`project.expenses.${this.control.value}`, {\n routeMode: RouteMode.keep,\n });\n });\n\n this.projectCardService.project$.subscribe((project: Project) => {\n if (\n !project.financeViewAllowed &&\n this.state.current.name === 'project.expenses.calendar'\n ) {\n if (project.expenseEstimateViewAllowed) {\n this.control.setValue('estimates');\n }\n }\n });\n }\n}\n","
    \n \n \n \n \n\n \n \n \n \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ExpensesViewSwitcherComponent } from './expenses-view-switcher/expenses-view-switcher.component';\nimport { ExpensesAccountFilterComponent } from './expenses-account-filter/expenses-account-filter.component';\n\n@NgModule({\n declarations: [ExpensesViewSwitcherComponent, ExpensesAccountFilterComponent],\n imports: [CommonModule, SharedModule],\n providers: [],\n exports: [ExpensesViewSwitcherComponent, ExpensesAccountFilterComponent],\n})\nexport class ProjectExpensesSharedModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { TrendsKpiService } from 'src/app/shared/components/features/overview/trends-kpi/core/trends-kpi.service';\nimport { Subject } from 'rxjs';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-project-overview-analysis',\n templateUrl: './project-overview-analysis.component.html',\n providers: [TrendsKpiService],\n standalone: false,\n})\nexport class ProjectOverviewAnalysisComponent implements OnInit, OnDestroy {\n public project: Project;\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n public get projectVersion(): ProjectVersion {\n const isWorkVersion = this.versionCardService.isWorkProjectVersion();\n const version = this.versionCardService.projectVersion;\n return !isWorkVersion ? version : null;\n }\n\n constructor(\n public service: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private trendsKpiService: TrendsKpiService,\n ) {}\n\n private reload() {\n this.trendsKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n this.service.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProjectOverviewAnalysisComponent } from 'src/app/projects/card/project-overview/project-overview-analysis/project-overview-analysis.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ProjectOverviewAnalysisComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.overview.analysis',\n url: '/analysis',\n component: ProjectOverviewAnalysisComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProjectOverviewAnalysisModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { OverviewKpiService } from 'src/app/shared/components/features/overview/overview-kpi/core/overview-kpi.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-project-overview-kpi',\n templateUrl: './project-overview-kpi.component.html',\n standalone: false,\n})\nexport class ProjectOverviewKpiComponent implements OnInit, OnDestroy {\n public project: Project;\n public kpiType: KpiType;\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n public get nonBillable(): boolean {\n return (\n this.project?.billingType.code === ProjectBillingType.nonBillable.code\n );\n }\n\n public get projectVersion(): ProjectVersion {\n const isWorkVersion = this.versionCardService.isWorkProjectVersion();\n const version = this.versionCardService.projectVersion;\n return !isWorkVersion ? version : null;\n }\n\n constructor(\n public service: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private overviewKpiService: OverviewKpiService,\n ) {}\n\n private reload() {\n this.overviewKpiService.reload();\n }\n\n ngOnInit() {\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n this.service.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n //TODO:\n // if (this.project.state.code === ProjectState.tentative.code) {\n // this.kpiType = KpiType.Estimate;\n // } else {\n // this.kpiType = KpiType.Actual;\n // }\n this.kpiType = KpiType.Actual;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProjectOverviewKpiComponent } from 'src/app/projects/card/project-overview/project-overview-kpi/project-overview-kpi.component';\nimport { OverviewModule } from 'src/app/shared/components/features/overview/overview.module';\n\n@NgModule({\n declarations: [ProjectOverviewKpiComponent],\n imports: [\n CommonModule,\n SharedModule,\n OverviewModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.overview.kpi',\n url: '/kpi',\n component: ProjectOverviewKpiComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProjectOverviewKpiModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ProjectCardService } from '../core/project-card.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-project-overview',\n templateUrl: './project-overview.component.html',\n styleUrls: ['./project-overview.component.scss'],\n standalone: false,\n})\nexport class ProjectOverviewComponent implements OnInit, OnDestroy {\n public activeTab: string;\n public project: Project;\n public readonly commentedEntityCollectionType = CommentedEntityCollectionType;\n\n private readonly destroyed$ = new Subject();\n\n constructor(public service: ProjectCardService) {}\n\n ngOnInit() {\n this.service.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n\n\n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectOverviewComponent } from './project-overview.component';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ProjectOverviewKpiModule } from 'src/app/projects/card/project-overview/project-overview-kpi/project-overview-kpi.module';\nimport { ProjectOverviewAnalysisModule } from 'src/app/projects/card/project-overview/project-overview-analysis/project-overview-analysis.module';\n\n@NgModule({\n declarations: [ProjectOverviewComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProjectOverviewKpiModule,\n ProjectOverviewAnalysisModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.overview',\n url: '/overview',\n component: ProjectOverviewComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n redirectTo: 'project.overview.kpi',\n resolve: [\n {\n token: 'entityType',\n resolveFn: () => 'project',\n },\n ],\n },\n ],\n }),\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProjectOverviewModule {}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectCardService } from '../core/project-card.service';\nimport { PnlService } from 'src/app/shared-features/pnl/pnl.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\n\n@Component({\n selector: 'wp-project-pnl',\n templateUrl: './project-pnl.component.html',\n providers: [PnlService],\n standalone: false,\n})\nexport class ProjectPnlComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n private reloadListener: Subscription;\n private projectSubscription: Subscription;\n\n public get projectVersion(): ProjectVersion {\n return !this.versionCardService.isWorkProjectVersion()\n ? this.versionCardService.projectVersion\n : null;\n }\n\n constructor(\n private pnlService: PnlService,\n private service: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n ) {}\n\n ngOnInit(): void {\n this.projectSubscription = this.service.project$.subscribe(\n (project: Project) => {\n //TODO: check why needs empty subscriber.\n },\n );\n\n this.reloadListener = this.service.reloadTab$.subscribe(() => {\n this.pnlService.reload();\n });\n }\n\n ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n this.projectSubscription.unsubscribe();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectPnlComponent } from './project-pnl.component';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\n\n@NgModule({\n declarations: [ProjectPnlComponent],\n imports: [\n CommonModule,\n SharedModule,\n PnlModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.pnl',\n url: '/pnl',\n component: ProjectPnlComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n exports: [],\n})\nexport class ProjectPnlModule {}\n","import { DateValue } from './rbc-data.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\n\nexport class RbcView {\n revenue: RbcViewSection;\n billing: RbcViewSection;\n collection: RbcViewSection;\n}\n\nexport class RbcViewSection {\n name: string;\n type: RbcSectionType;\n plan: RbcViewGroup;\n estimate: RbcViewGroup;\n actual: RbcViewGroup;\n forecast: RbcViewGroup;\n}\n\nexport class RbcViewGroup {\n id: string;\n name: string;\n type: RbcGroupType;\n isExpanded: boolean;\n total: number;\n entries: DateValue[];\n taskLines: RbcViewTaskLine[];\n otherLine?: RbcViewOtherLine;\n}\n\nexport class RbcViewTaskLine {\n task: ProjectTask;\n total: number;\n entries: DateValue[];\n taskFullName: string;\n indent: number;\n}\n\nexport class RbcViewOtherLine {\n title: string;\n verboseHint: string;\n total: number;\n entries: DateValue[];\n}\n\nexport enum RbcSectionType {\n revenue = 'revenue',\n billing = 'billing',\n collection = 'collection',\n}\n\nexport enum RbcGroupType {\n plan = 'plan',\n estimate = 'estimate',\n actual = 'actual',\n forecast = 'forecast',\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { RbcGroupType, RbcSectionType } from './rbc-view.model';\n\nexport class RbcSettings implements BaseSettings {\n public readonly name = 'RbcSettings';\n public version: number;\n\n /**\n * Calendar planning scale\n */\n public planningScale: PlanningScale;\n\n /**\n * Calendar displayed groups. e.g. ['estimate', 'plan']\n */\n public displayedGroups: RbcGroupType[];\n\n /**\n * Calendar displayed others. e.g. ['expenses': ['estimate', 'plan']]\n * e.g. {'revenue': ['estimate', 'plan']}\n */\n public displayedOthers: Record;\n\n public getDefault(): RbcSettings {\n const defaultDisplayedOthers = {} as Record;\n Object.values(RbcSectionType).forEach((sectionType) => {\n defaultDisplayedOthers[sectionType] = Object.values(RbcGroupType);\n });\n\n return {\n version: 4,\n planningScale: PlanningScale.Week,\n displayedGroups: Object.values(RbcGroupType),\n displayedOthers: defaultDisplayedOthers,\n } as RbcSettings;\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { ProjectBillingService } from '../project-billing.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-project-billing-toolbar',\n templateUrl: './project-billing-toolbar.component.html',\n standalone: false,\n})\nexport class ProjectBillingToolbarComponent extends AbstractToolbar {\n constructor(\n public projectBillingService: ProjectBillingService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public addEntry() {\n this.gridService.execute('addEntry');\n }\n\n public recognize() {\n this.gridService.execute('recognize');\n }\n}\n","
    \n \n
    \n @if (!(gridService.readonly$ | async)) {\n \n \n {{ 'shared.actions.create' | translate }}\n \n }\n\n \n \n \n @if (!(gridService.readonly$ | async)) {\n \n \n \n }\n
    \n\n
    \n @if (projectBillingService.isWorkProjectVersion) {\n \n {{ 'projects.projects.card.billing.actions.createInvoice' | translate }}\n \n }\n\n @if (!(gridService.readonly$ | async)) {\n \n {{ 'shared.actions.clear' | translate }}\n \n }\n
    \n\n
    \n
    \n \n {{ projectBillingService.getCurrentGroupingLabel() }}\n \n
    \n \n {{ 'projects.projects.card.finance.grouping.none' | translate }}\n \n \n {{ 'projects.projects.card.finance.grouping.byTasks' | translate }}\n \n
    \n
    \n
    \n
    \n","import {\n Component,\n DestroyRef,\n inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subscription } from 'rxjs';\nimport { ProjectBillingList } from 'src/app/shared/lists/project-billing.list';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectBillingMode } from 'src/app/shared/models/enums/project-billing-mode.enum';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { ProjectBillingService } from './project-billing.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\nexport const resolveBillingView = (info: ProjectCardService) =>\n info.project.billingEstimationSettings.mode === ProjectBillingMode.automatic\n ? 'withMode'\n : 'default';\n\n@Component({\n selector: 'wp-project-billing',\n templateUrl: './project-billing.component.html',\n providers: [\n SavingQueueService,\n ListService,\n GridService,\n ProjectBillingService,\n FinancialTaskCellService,\n { provide: LIST, useValue: ProjectBillingList },\n {\n provide: VIEW_NAME,\n useFactory: resolveBillingView,\n deps: [ProjectCardService],\n },\n ],\n standalone: false,\n})\nexport class ProjectBillingComponent implements OnInit, OnDestroy {\n private projectSubscription: Subscription;\n private reloadListener: Subscription;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private projectService: ProjectCardService,\n public projectBillingService: ProjectBillingService,\n private savingQueueService: SavingQueueService,\n ) {}\n\n ngOnInit(): void {\n this.projectSubscription = this.projectService.project$.subscribe(\n (project: Project) => {\n this.projectBillingService.setReadonly(\n !project.billingEstimateEditAllowed,\n );\n this.projectBillingService.updateWorkProjectVersionFlag();\n if (\n project.billingEstimationSettings.mode ===\n ProjectBillingMode.automatic\n ) {\n this.savingQueueService.save$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.projectBillingService.load(true));\n }\n },\n );\n\n this.reloadListener = this.projectService.reloadTab$.subscribe(() =>\n this.projectBillingService.load(),\n );\n\n this.projectBillingService.init();\n }\n\n ngOnDestroy(): void {\n this.projectSubscription.unsubscribe();\n this.reloadListener.unsubscribe();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectBillingModalComponent } from './shared/project-billing-modal/project-billing-modal.component';\nimport { ProjectBillingToolbarComponent } from './project-billing-toolbar/project-billing-toolbar.component';\nimport { ProjectBillingComponent } from './project-billing.component';\nimport { ProjectCardSharedModule } from '../../shared/project-card-shared.module';\nimport { ProjectRbcSharedModule } from '../shared/project-rbc-shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ProjectBillingComponent,\n ProjectBillingToolbarComponent,\n ProjectBillingModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n ProjectRbcSharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.rbc.billing',\n url: '/billing',\n component: ProjectBillingComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectBillingModule {}\n","import { Inject, Injectable, Injector, OnDestroy } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { assign, findIndex, orderBy } from 'lodash';\nimport { DateTime } from 'luxon';\nimport { forkJoin, Subject } from 'rxjs';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ProjectBillingToolbarComponent } from './project-billing-toolbar/project-billing-toolbar.component';\nimport { ProjectBillingViewLine } from './shared/model/project-billing-view-line.model';\nimport { ProjectBillingSettings } from './shared/model/project-billing-settings.model';\nimport { ProjectBillingModalComponent } from './shared/project-billing-modal/project-billing-modal.component';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { StateService } from '@uirouter/core';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { InvoiceSettings } from 'src/app/billing/invoices/card/shared/invoice.settings';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectBillingEstimate } from 'src/app/shared/models/entities/projects/project-billing-estimate.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { ProjectBillingMode } from 'src/app/shared/models/enums/project-billing-mode.enum';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n Command,\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridCurrencyColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Injectable()\nexport class ProjectBillingService implements OnDestroy {\n get isWorkProjectVersion() {\n return this._isWorkProjectVersion;\n }\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: ProjectBillingToolbarComponent,\n commands: [\n {\n name: 'addEntry',\n handlerFn: () => this.addEntry(),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'edit',\n handlerFn: (group: UntypedFormGroup) => this.edit(group),\n allowedFn: (row: any) => row && !row.isTaskGroup,\n },\n {\n name: 'delete',\n handlerFn: (row: any) => this.deleteEntry(row.originalId),\n allowedFn: (row: any) =>\n !this.readonly && row && !row.isTaskGroup && !row.isAutomatic,\n },\n {\n name: 'createInvoice',\n handlerFn: () => this.createInvoice(),\n allowedFn: () =>\n this._isWorkProjectVersion &&\n this.project.organization &&\n this.project.billingType.code !== ProjectBillingType.nonBillable.code,\n },\n {\n name: 'clear',\n handlerFn: () => this.clear(),\n allowedFn: () => !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !formGroup.value.isTaskGroup,\n handlerFn: (formGroup: UntypedFormGroup) => this.edit(formGroup),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly &&\n !formGroup.value.isTaskGroup &&\n !formGroup.value.isAutomatic,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteEntry(formGroup.value.originalId),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n public settings: ProjectBillingSettings;\n\n public commands: Command[];\n\n public totals: Dictionary = {};\n\n public readonly: boolean;\n\n public formArray: UntypedFormArray = this.fb.array([]);\n\n project: Project;\n\n private isAutomaticBillingMode = false;\n private entries: ProjectBillingEstimate[] = [];\n private mainTask: ProjectTask;\n private tasks: ProjectTask[] = [];\n private allTasks: ProjectTask[] = [];\n\n /** Суммы по задачам */\n private tasksAmounts: Dictionary = {};\n\n private _isWorkProjectVersion: boolean;\n\n private reloaded$ = new Subject();\n private destroyed$ = new Subject();\n\n private getCollection = () => this.data.collection('ProjectBillingEstimates');\n\n constructor(\n @Inject('entityId') public entityId: string,\n private blockUI: BlockUIService,\n private injector: Injector,\n public autosave: SavingQueueService,\n public modal: NgbModal,\n public state: StateService,\n private data: DataService,\n private fb: UntypedFormBuilder,\n public listService: ListService,\n public gridService: GridService,\n public notification: NotificationService,\n private configService: LocalConfigService,\n private translate: TranslateService,\n private projectTasksService: ProjectTasksService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n financialTaskCellService: FinancialTaskCellService,\n private projectCardService: ProjectCardService,\n private messageService: MessageService,\n ) {\n financialTaskCellService.toggleTaskId$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((id) => {\n this.toggleTask(id);\n });\n financialTaskCellService.projectVersion =\n this.versionCardService.projectVersion;\n }\n\n public toggleTask(taskId: string) {\n const task = this.tasks.find((t) => t.id === taskId);\n task.isExpanded = !task.isExpanded;\n this.updateFormArray();\n }\n\n /** Загрузка главной задачи. */\n public loadMainTask() {\n this.projectTasksService\n .getProjectTasks(this.entityId, this.versionCardService.projectVersion)\n .subscribe({\n next: (tasks: ProjectTask[]) => {\n this.mainTask =\n tasks?.length > 0 ? tasks.find((t) => !t.leadTaskId) : null;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /** Загрузка данных. */\n public load(silent?: boolean): void {\n this.reloaded$.next();\n this.projectTasksService.resetProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n );\n this.autosave.save().then(\n () => {\n if (!silent || this.isAutomaticBillingMode) {\n this.formArray.clear();\n this.totals = null;\n this.gridService.setLoadingState(true);\n }\n\n forkJoin({\n entries: this.getCollection().query(\n this.getQuery(),\n ),\n tasks: this.projectTasksService.getProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n ),\n })\n .pipe(takeUntil(this.reloaded$))\n .subscribe({\n next: (value) => {\n this.entries = value.entries;\n this.allTasks = value.tasks;\n\n this.entries.forEach((e) => {\n e.added = 0;\n });\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n },\n () => null,\n );\n }\n\n public addEntry() {\n const entry: ProjectBillingEstimate = {\n created: DateTime.now().toJSDate(),\n added: new Date().getTime(),\n projectTask:\n this.gridService.selectedGroupValue?.projectTask ?? this.mainTask,\n billingDate: DateTime.now().toISODate(),\n collectionDate: DateTime.now().toISODate(),\n amount: 0,\n id: Guid.generate(),\n description: '',\n isAutomatic: false,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n entry,\n this.entityId,\n );\n\n this.entries.unshift(entry);\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n const indexOfNewEntry = (this.formArray.value as any[]).findIndex(\n (l) => l.id === entry.id,\n );\n\n this.gridService.selectGroup(\n this.formArray.at(indexOfNewEntry) as UntypedFormGroup,\n );\n\n const data = {\n id: entry.id,\n projectTaskId: entry.projectTask.id,\n amount: entry.amount,\n billingDate: entry.billingDate,\n collectionDate: entry.collectionDate,\n description: entry.description,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.getCollection().insert(data),\n );\n }\n\n public deleteEntry(id: string): void {\n this.entries = this.entries.filter((l) => l.id !== id);\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n this.autosave.addToQueue(id, this.getCollection().entity(id).delete());\n }\n\n public edit(group: UntypedFormGroup) {\n const ref = this.modal.open(ProjectBillingModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as ProjectBillingModalComponent;\n\n const groupValue = group.getRawValue();\n instance.entry = groupValue;\n instance.readonly = this.readonly || groupValue.isAutomatic;\n instance.projectId = this.entityId;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.projectVersion = this.versionCardService.projectVersion;\n\n ref.result.then(\n (result) => {\n group.patchValue(result);\n const task = this.tasks.find((t) => t.id === result.projectTask.id);\n this.updateTotalsByTask(task);\n },\n () => null,\n );\n }\n\n /** Создает группу строки. */\n public getLineGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n originalId: null,\n created: null,\n billingDate: [null, Validators.required],\n collectionDate: [null, Validators.required],\n amount: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n projectTask: [null, Validators.required],\n indent: 0,\n isTaskGroup: false,\n isExpanded: true,\n isAutomatic: false,\n });\n\n group.valueChanges\n .pipe(takeUntil(this.reloaded$))\n .subscribe((line: ProjectBillingViewLine) => {\n const entry = this.entries.find((e) => e.id === line.originalId);\n assign(entry, line);\n entry.id = line.originalId;\n\n const data = {\n id: line.originalId,\n projectTaskId: entry.projectTask.id,\n amount: entry.amount,\n billingDate: entry.billingDate,\n collectionDate: entry.collectionDate,\n description: entry.description,\n isAutomatic: entry.isAutomatic,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n data.id,\n this.getCollection().entity(data.id).update(data),\n );\n });\n\n group.controls['amount'].valueChanges\n .pipe(takeUntil(this.reloaded$))\n .subscribe(() => {\n this.updateTotalsByTask(group.value.projectTask);\n });\n\n group.controls['projectTask'].valueChanges\n .pipe(debounceTime(0), takeUntil(this.reloaded$))\n .subscribe(() => {\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n });\n\n return group;\n }\n\n private updateTotalsByTask(projectTask: ProjectTask) {\n // Find lead task.\n const getLeadTask = (task: ProjectTask): ProjectTask => {\n const leadTask = this.tasks.find((t) => t.id === task.leadTaskId);\n if (!leadTask) {\n return task;\n } else {\n return getLeadTask(leadTask);\n }\n };\n\n setTimeout(() => {\n this.calculateTotals();\n\n if (this.settings.grouping) {\n this.applyTotals([getLeadTask(projectTask)]);\n }\n });\n }\n\n /** Calculates Task and general totals. */\n private calculateTotals() {\n this.tasksAmounts = {};\n\n const calculateTasksTotal = (tasks: ProjectTask[]): number => {\n let totalAmount = 0;\n\n tasks.forEach((task) => {\n let amount =\n this.entries\n .filter((e) => e.projectTask.id === task.id)\n ?.reduce((total, entry) => total + entry.amount, 0) ?? 0;\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n amount += calculateTasksTotal(children);\n totalAmount += amount;\n this.tasksAmounts[task.id] = amount;\n });\n\n return totalAmount;\n };\n\n // First level tasks.\n const topTasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n this.totals = {};\n this.totals['amount'] = calculateTasksTotal(topTasks);\n this.totals['projectTask'] = this.entries.length;\n }\n\n /** Обновление структуры задач на основании списка строк. */\n private updateTasks() {\n this.tasks = [];\n\n // Соберем структуру задач.\n this.entries.forEach((entry) => {\n if (\n entry.projectTask &&\n !this.tasks.find((t) => t.id === entry.projectTask.id)\n ) {\n entry.projectTask.isExpanded = true;\n this.tasks.push(entry.projectTask);\n }\n });\n\n // Восстановим разорванные цепочки.\n const restoreLinks = (task: ProjectTask) => {\n if (!task.leadTaskId) {\n return;\n }\n const leadTask = this.allTasks.find((t) => t.id === task.leadTaskId);\n\n // Главную задачу не добавляем - если на нее нет записей, то и в UI не будет.\n if (\n leadTask?.leadTaskId &&\n !this.tasks.find((t) => t.id === leadTask.id)\n ) {\n leadTask.isExpanded = true;\n this.tasks.push(leadTask);\n restoreLinks(leadTask);\n }\n };\n\n this.tasks.forEach((task) => {\n restoreLinks(task);\n });\n }\n\n /** Обновляет форму по данным. */\n private updateFormArray() {\n this.calculateTotals();\n this.formArray.clear();\n this.gridService.detectChanges();\n\n this.autosave.disabled = true;\n const lines: ProjectBillingViewLine[] = [];\n\n if (this.settings.grouping === 'byTasks') {\n let level = 0;\n\n const addLevel = (tasksInLevel: ProjectTask[]) => {\n tasksInLevel\n .sort(naturalSort('structNumber'))\n .forEach((projectTask) => {\n // Add Task row.\n lines.push({\n id: Guid.generate(),\n originalId: projectTask.id,\n created: projectTask.created,\n indent: level,\n amount: this.tasksAmounts[projectTask.id],\n billingDate: null,\n collectionDate: null,\n description: '',\n projectTask,\n isTaskGroup: true,\n isExpanded: projectTask.isExpanded,\n isAutomatic: false,\n });\n\n if (!projectTask.isExpanded) {\n return;\n }\n\n level++;\n\n // Find all rows.\n let entries = this.entries.filter(\n (entry) => entry.projectTask?.id === projectTask.id,\n );\n\n entries = orderBy(\n entries,\n ['added', 'billingDate', 'created'],\n ['desc', 'asc', 'desc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n id: Guid.generate(),\n originalId: entry.id,\n isTaskGroup: false,\n indent: level,\n });\n });\n\n addLevel(\n this.tasks.filter((task) => task.leadTaskId === projectTask.id),\n );\n level--;\n });\n };\n\n // Move all tasks without lead ones to the top level even if it has lead one (chain breaks).\n const tasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n addLevel(tasks);\n } else {\n const entries = orderBy(\n this.entries,\n ['added', 'billingDate', 'created'],\n ['desc', 'asc', 'desc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n indent: 0,\n id: Guid.generate(),\n originalId: entry.id,\n isTaskGroup: false,\n });\n });\n }\n\n // Update grid structure form.\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n\n // If Task has group at index.\n if (line.id === this.formArray.at(index)?.value.id) {\n continue;\n }\n\n const groupIndex = findIndex(\n this.formArray.value,\n (r: any) => r.id === line.id,\n index + 1,\n );\n\n // Group is missing in rows.\n if (groupIndex === -1) {\n const newGroup = this.getLineGroup();\n if (line.isAutomatic) {\n newGroup.disable({ emitEvent: false });\n }\n\n this.formArray.insert(index, newGroup);\n continue;\n }\n\n // Group exists in further rows.\n const group = this.formArray.at(groupIndex);\n this.formArray.removeAt(groupIndex);\n this.formArray.insert(index, group);\n }\n\n // Update form value.\n this.formArray.patchValue(lines, { emitEvent: false });\n\n // Disable group if isTaskGroup = true.\n this.formArray.controls.forEach((group: FormGroup) => {\n if (group.value.isTaskGroup) {\n group.disable({ emitEvent: false });\n }\n });\n\n // Trigger grid change detector.\n this.gridService.detectChanges();\n\n if (this.readonly) {\n this.formArray.disable({ emitEvent: false });\n }\n\n this.autosave.disabled = false;\n }\n\n /** Применяет итоги по задачам без обновления структуры. */\n private applyTotals(tasksToApply: ProjectTask[]) {\n const applyTotals = (tasks: ProjectTask[]) => {\n tasks.forEach((task) => {\n const groupIndex = (this.formArray.getRawValue() as any[]).findIndex(\n (l) => l.isTaskGroup && l.projectTask?.id === task.id,\n );\n\n if (groupIndex !== -1) {\n const group = this.formArray.at(groupIndex) as UntypedFormGroup;\n\n group.controls['amount'].setValue(this.tasksAmounts[task.id], {\n emitEvent: false,\n });\n }\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n applyTotals(children);\n });\n };\n\n applyTotals(tasksToApply);\n\n this.gridService.detectChanges();\n }\n\n /** Возвращает локализованный заголовок текущей группировки. */\n public getCurrentGroupingLabel(): string {\n return this.translate.instant(\n `projects.projects.card.finance.grouping.${this.settings?.grouping}`,\n );\n }\n\n /** Изменение группировки строк. */\n public setGrouping(grouping: any) {\n this.settings.grouping = grouping;\n this.configService.setConfig(ProjectBillingSettings, this.settings);\n this.updateFormArray();\n }\n\n setReadonly(readonly: boolean) {\n this.readonly =\n readonly || !this.versionCardService.projectVersion.editAllowed;\n if (this.readonly) {\n this.formArray.disable();\n this.gridService.detectChanges();\n }\n }\n\n updateWorkProjectVersionFlag() {\n this._isWorkProjectVersion = this.versionCardService.isWorkProjectVersion();\n }\n\n createInvoice() {\n this.blockUI.start();\n const data = {\n organizationId: this.project.organization.id,\n projectId: this.project.id,\n number: '',\n timeLinesGrouping:\n this.configService.getConfig(InvoiceSettings).timeLinesGrouping,\n expenseLinesGrouping:\n this.configService.getConfig(InvoiceSettings).expenseLinesGrouping,\n };\n\n this.data\n .collection('Invoices')\n .action('Insert')\n .execute(data)\n .subscribe({\n next: (response: any) => {\n this.notification.successLocal(\n 'billing.invoices.creation.messages.created',\n );\n this.state.go('invoice', {\n entityId: response,\n routeMode: RouteMode.continue,\n });\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n init() {\n this.settings = this.configService.getConfig(ProjectBillingSettings);\n\n this.autosave.error$.subscribe(() => this.load());\n\n this.projectCardService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n this.isAutomaticBillingMode =\n this.project.billingEstimationSettings?.mode ===\n ProjectBillingMode.automatic;\n const amountColumn = this.gridOptions.view.columns.find(\n (column) => column.name === 'amount',\n ) as GridCurrencyColumn;\n amountColumn.currencyCode = this.project.currency.alpha3Code;\n });\n\n this.load();\n this.loadMainTask();\n }\n\n private getQuery() {\n const query: any = {\n select: [\n 'id',\n 'created',\n 'billingDate',\n 'collectionDate',\n 'amount',\n 'description',\n 'isAutomatic',\n ],\n expand: {\n projectTask: {\n select: [\n 'id',\n 'created',\n 'name',\n 'indent',\n 'leadTaskId',\n 'structNumber',\n ],\n },\n },\n orderBy: ['billingDate', 'created'],\n };\n\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n this.versionCardService.projectVersion,\n this.entityId,\n );\n\n return query;\n }\n private clear() {\n this.messageService\n .confirmLocal('projects.actions.clearDataConfirmation')\n .then(\n () => {\n this.blockUI.start();\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.entityId,\n )\n .action('ClearBillingEstimates')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'shared2.messages.dataSuccessfullyDeleted',\n );\n this.blockUI.stop();\n this.projectCardService.reloadTab();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n ngOnDestroy(): void {\n this.reloaded$.next();\n this.destroyed$.next();\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ProjectBillingSettings implements BaseSettings {\n public readonly name = 'ProjectBillingSettings';\n version: number;\n grouping: 'none' | 'byTasks' = 'none';\n\n getDefault(): ProjectBillingSettings {\n return {\n version: 1,\n grouping: 'byTasks',\n } as ProjectBillingSettings;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectBillingEstimate } from 'src/app/shared/models/entities/projects/project-billing-estimate.model';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectBillingMode } from 'src/app/shared/models/enums/project-billing-mode.enum';\nimport { BillingEstimationSettings } from 'src/app/shared/models/entities/projects/billing-estimation-settings.model';\n\n@Component({\n selector: 'wp-project-billing-modal-modal',\n templateUrl: './project-billing-modal.component.html',\n standalone: false,\n})\nexport class ProjectBillingModalComponent implements OnInit {\n @Input() entry: ProjectBillingEstimate;\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() readonly: boolean;\n @Input() projectCurrencyCode: string;\n\n public get projectBillingEstSettings(): BillingEstimationSettings {\n return this._projectBillingEstSettings;\n }\n\n protected readonly projectBillingMode = ProjectBillingMode;\n\n private readonly _projectBillingEstSettings: BillingEstimationSettings;\n\n public form = this.fb.group({\n id: null,\n billingDate: [null, Validators.required],\n collectionDate: [null, Validators.required],\n amount: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n projectTask: [null, Validators.required],\n isAutomatic: null,\n });\n\n constructor(\n public projectCardService: ProjectCardService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {\n this._projectBillingEstSettings =\n this.projectCardService.project.billingEstimationSettings;\n }\n\n ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.activeModal.close(this.form.getRawValue());\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.form.patchValue(this.entry);\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.controls.isAutomatic.disable();\n }\n }\n}\n","
    \n
    \n

    {{ 'projects.projects.card.billing.modal.header' | translate }}

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n @if (projectBillingEstSettings?.mode === projectBillingMode.automatic) {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n @if (!readonly) {\n \n }\n \n
    \n
    \n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { minBy } from 'lodash';\nimport { Interval } from 'luxon';\nimport { forkJoin, Observable, Subscription } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\nimport {\n RbcCalendarGroupData,\n RbcCalendarSectionData,\n} from '../../models/rbc-data.model';\nimport {\n RbcGroupType,\n RbcSectionType,\n RbcViewGroup,\n RbcViewOtherLine,\n RbcViewSection,\n} from '../../models/rbc-view.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n@Injectable()\nexport class ProjectRbcCalendarDataService {\n public sectionData: Dictionary = {\n revenue: null,\n billing: null,\n collection: null,\n };\n\n private loadingSubscription: Subscription;\n\n constructor(\n @Inject('entityId') public projectId,\n private dataService: DataService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private translate: TranslateService,\n ) {}\n\n /**\n * Loads sections.\n *\n * @param interval - period interval\n * @param planningScale - period scale\n * @param sectionTypes - sections to load\n * @param rebuild - determines if data and view should be rebuilt\n * */\n public loadSections(\n interval: Interval,\n planningScale: PlanningScale,\n sectionTypes?: RbcSectionType[],\n rebuild = true,\n ): Promise> {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n // Save group state.\n const expendedGroups: Dictionary> = {};\n this.getSections().forEach((section) => {\n this.getOrderedGroups(section).forEach((group) => {\n if (group.isExpanded) {\n if (!expendedGroups[section.type]) {\n expendedGroups[section.type] = {};\n }\n expendedGroups[section.type][group.type] = true;\n }\n });\n });\n\n const observables: any = {};\n\n const queryParams: Dictionary = {\n periodStart: interval.start.toISODate(),\n periodFinish: interval.end.toISODate(),\n planningScale: `WP.PlanningScale'${planningScale}'`,\n };\n\n const fn = (st: RbcSectionType): Observable =>\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .function(`GetRbcCalendar${this.getSectionNameForQuery(st)}Section`)\n .query(queryParams);\n\n if (sectionTypes?.length > 0) {\n sectionTypes.forEach((sectionType) => {\n observables[sectionType] = fn(sectionType);\n });\n } else {\n observables.revenue = fn(RbcSectionType.revenue);\n observables.billing = fn(RbcSectionType.billing);\n observables.collection = fn(RbcSectionType.collection);\n }\n\n return new Promise((resolve, reject) => {\n this.loadingSubscription = forkJoin(observables).subscribe(\n (response: any) => {\n if (rebuild) {\n if (sectionTypes?.length > 0) {\n sectionTypes.forEach((sectionType) => {\n this.sectionData[sectionType] = null;\n });\n } else {\n Object.keys(this.sectionData).forEach(\n (section) => (this.sectionData[section] = null),\n );\n }\n }\n\n if (response.revenue) {\n this.updateViewModelForSection(\n response.revenue,\n RbcSectionType.revenue,\n );\n }\n\n if (response.billing) {\n this.updateViewModelForSection(\n response.billing,\n RbcSectionType.billing,\n );\n }\n\n if (response.collection) {\n this.updateViewModelForSection(\n response.collection,\n RbcSectionType.collection,\n );\n }\n\n // Вернуть состояние групп.\n this.getSections().forEach((section) => {\n this.getOrderedGroups(section).forEach((group) => {\n if (\n expendedGroups[section.type] &&\n expendedGroups[section.type][group.type]\n ) {\n group.isExpanded = true;\n }\n });\n });\n\n resolve(this.sectionData);\n },\n );\n });\n }\n\n /**\n * Loads data for specific period\n *\n * @param interval - period interval\n * @param planningScale - period scale\n * @param sectionTypes - sections to load\n * */\n public loadFrame(\n interval: Interval,\n planningScale: PlanningScale,\n sectionTypes?: RbcSectionType[],\n ): Promise> {\n return this.loadSections(interval, planningScale, sectionTypes, false);\n }\n\n /**\n * Returns ordered sections for display\n * */\n public getSections(): RbcViewSection[] {\n const sections: RbcViewSection[] = [];\n\n if (this.sectionData.revenue) {\n sections.push(this.sectionData.revenue);\n }\n\n if (this.sectionData.billing) {\n sections.push(this.sectionData.billing);\n }\n\n if (this.sectionData.collection) {\n sections.push(this.sectionData.collection);\n }\n\n return sections;\n }\n\n /**\n * Returns ordered groups for display\n *\n * @param section - section to get groups from\n * */\n public getOrderedGroups(section: RbcViewSection): RbcViewGroup[] {\n return [section.plan, section.estimate, section.actual, section.forecast];\n }\n\n /**\n * Returns signed delta for forecast group\n *\n * @param group - group to get delta for.\n * At the moment of writing only supports forecast\n * */\n public getGroupSignedDelta(group: RbcViewGroup): number {\n if (group.type !== RbcGroupType.forecast) {\n return;\n }\n const currSection = this.getSectionByGroup(group);\n return group.total - currSection.plan.total;\n }\n\n /**\n * Determines and returns passed group section\n *\n * @param group - groups to find section by\n * */\n public getSectionByGroup(group: RbcViewGroup): RbcViewSection {\n return this.getSections().find(\n (s) =>\n s.actual.id === group.id ||\n s.estimate.id === group.id ||\n s.forecast.id === group.id ||\n s.plan.id === group.id,\n );\n }\n\n /**\n * Returns displayed group object\n *\n * @param dataGroup - group data\n * @param groupType - group type\n * */\n private getViewGroup(\n dataGroup: RbcCalendarGroupData,\n groupType: RbcGroupType,\n ): RbcViewGroup {\n const minTaskIndent =\n minBy(dataGroup.taskLines, (t) => t.task.indent)?.task.indent ?? 0;\n const viewGroup = {\n id: Guid.generate(),\n type: groupType,\n name: this.translate.instant(\n `projects.projects.card.rbc.calendar.groups.${groupType}`,\n ),\n isExpanded: false,\n total: 0,\n entries: [],\n taskLines: dataGroup.taskLines.map((taskLine) => ({\n task: taskLine.task,\n total: taskLine.total,\n entries: taskLine.values,\n taskFullName: `${taskLine.task.structNumber ?? ''} ${\n taskLine.task.name\n }`.trim(),\n indent: taskLine.task.indent - minTaskIndent,\n })),\n otherLine: null,\n };\n const otherType = (from: RbcGroupType) =>\n from === RbcGroupType.forecast ? RbcGroupType.actual : from;\n viewGroup.otherLine = {\n title: this.translate.instant(\n `projects.projects.card.rbc.calendar.other.${otherType(\n groupType,\n )}.title`,\n ),\n verboseHint: this.translate.instant(\n `projects.projects.card.rbc.calendar.other.${otherType(\n groupType,\n )}.verboseHint`,\n ),\n total: dataGroup.otherLine.total,\n entries: dataGroup.otherLine.values,\n } as RbcViewOtherLine;\n\n viewGroup.taskLines.sort(naturalSort('task.structNumber'));\n return viewGroup;\n }\n\n /**\n * Returns view section model to be displayed\n *\n * @param dataSection - data to compose section\n * @param sectionType - section type needed for naming\n */\n private getViewSection(\n dataSection: RbcCalendarSectionData,\n sectionType: RbcSectionType,\n ): RbcViewSection {\n return {\n name: this.translate.instant(\n `projects.projects.card.rbc.calendar.sections.${sectionType}`,\n ),\n type: sectionType,\n actual: this.getViewGroup(dataSection.actualGroup, RbcGroupType.actual),\n estimate: this.getViewGroup(\n dataSection.estimateGroup,\n RbcGroupType.estimate,\n ),\n forecast: this.getViewGroup(\n dataSection.forecastGroup,\n RbcGroupType.forecast,\n ),\n plan: this.getViewGroup(dataSection.planGroup, RbcGroupType.plan),\n };\n }\n\n /**\n * Update section view model to be displayed\n *\n * @param sectionData - server-side data to compose section\n * @param sectionType - section type\n */\n private updateViewModelForSection(\n sectionData: RbcCalendarSectionData,\n sectionType: RbcSectionType,\n ) {\n switch (sectionType) {\n case RbcSectionType.revenue:\n if (!this.sectionData.revenue) {\n this.sectionData[sectionType] = this.getViewSection(\n sectionData,\n sectionType,\n );\n } else {\n this.enrichSectionData(sectionType, sectionData);\n }\n break;\n\n case RbcSectionType.billing:\n if (!this.sectionData.billing) {\n this.sectionData[sectionType] = this.getViewSection(\n sectionData,\n sectionType,\n );\n } else {\n this.enrichSectionData(sectionType, sectionData);\n }\n break;\n\n case RbcSectionType.collection:\n if (!this.sectionData.collection) {\n this.sectionData[sectionType] = this.getViewSection(\n sectionData,\n sectionType,\n );\n } else {\n this.enrichSectionData(sectionType, sectionData);\n }\n break;\n }\n }\n\n /**\n * Enriches current section data with new\n *\n * @param sectionType - section type\n * @param sectionData - section data\n */\n private enrichSectionData(\n sectionType: RbcSectionType,\n sectionData: RbcCalendarSectionData,\n ) {\n this.enrichGroupData(sectionType, RbcGroupType.plan, sectionData.planGroup);\n this.enrichGroupData(\n sectionType,\n RbcGroupType.estimate,\n sectionData.estimateGroup,\n );\n this.enrichGroupData(\n sectionType,\n RbcGroupType.actual,\n sectionData.actualGroup,\n );\n this.enrichGroupData(\n sectionType,\n RbcGroupType.forecast,\n sectionData.forecastGroup,\n );\n }\n\n /**\n * Enriches current group data with new\n *\n * @param sectionType - section type\n * @param groupType - group type\n * @param dataGroup - group data\n */\n private enrichGroupData(\n sectionType: RbcSectionType,\n groupType: RbcGroupType,\n dataGroup: RbcCalendarGroupData,\n ) {\n const group = this.sectionData[sectionType][groupType];\n\n group.taskLines.forEach((task) => {\n const result = dataGroup.taskLines.find(\n (line) => task.task.id === line.task.id,\n );\n\n if (result) {\n task.entries.push(...result.values);\n }\n });\n }\n\n /**\n * Determines and returns section name\n *\n * @param sectionType - section type\n */\n private getSectionNameForQuery(sectionType: RbcSectionType): string {\n return sectionType.charAt(0) + sectionType.slice(1);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { RbcGroupType } from '../../models/rbc-view.model';\nimport { RbcSettings } from '../../models/rbc.settings';\n\n@Injectable()\nexport class ProjectRbcCalendarGroupFilterService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private readonly _selectedGroups: RbcGroupType[] = [];\n public get selectedGroups(): RbcGroupType[] {\n return this._selectedGroups;\n }\n\n public get allGroups(): RbcGroupType[] {\n return Object.values(RbcGroupType);\n }\n\n constructor(private localConfigService: LocalConfigService) {\n const settings = this.localConfigService.getConfig(RbcSettings);\n this._selectedGroups = settings.displayedGroups;\n }\n\n /**\n * Toggles group presence in calendar\n *\n * @param group - group to show/hide\n */\n public toggleGroup(group: RbcGroupType) {\n if (this._selectedGroups.includes(group)) {\n const indexToRemove = this._selectedGroups.indexOf(group);\n this._selectedGroups.splice(indexToRemove, 1);\n\n this.updateConfig();\n this.changesSubject.next();\n return;\n }\n\n this._selectedGroups.push(group);\n this.updateConfig();\n this.changesSubject.next();\n }\n\n /**\n * Updates config. At the moment of writing updates only displayedGroups\n *\n * @private\n */\n private updateConfig() {\n const settings = this.localConfigService.getConfig(RbcSettings);\n settings.displayedGroups = this._selectedGroups;\n this.localConfigService.setConfig(RbcSettings, settings);\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ProjectRevenueEstimate } from 'src/app/shared/models/entities/projects/project-revenue-estimate.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { RbcSectionType } from '../../models/rbc-view.model';\nimport { ProjectBillingEstimate } from 'src/app/shared/models/entities/projects/project-billing-estimate.model';\nimport { map } from 'rxjs/operators';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\n\nexport interface SlotInfo {\n id: string;\n date?: string;\n billingDate?: string;\n collectionDate?: string;\n description: string;\n amount: number;\n projectTask: NamedEntity;\n isAutomatic?: boolean;\n}\n\n@Injectable()\nexport class ProjectRbcCalendarSlotInfoService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n public sectionType: RbcSectionType;\n public projectId: string;\n\n constructor(\n private data: DataService,\n public versionCardService: ProjectVersionCardService,\n private notification: NotificationService,\n ) {}\n\n /* Сообщает об изменениях */\n public propagateChange() {\n const types = [this.sectionType];\n if (this.sectionType === RbcSectionType.billing) {\n types.push(RbcSectionType.collection);\n }\n if (this.sectionType === RbcSectionType.collection) {\n types.push(RbcSectionType.billing);\n }\n this.changesSubject.next(types);\n }\n\n /* Загружает данные в формате SlotInfo */\n public load(\n projectTaskId: string | null,\n from: string,\n to: string,\n ): Promise {\n return new Promise((resolve) => {\n this.getLoadQuery(projectTaskId, from, to).subscribe({\n next: (loaded) => resolve(loaded),\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve([]);\n },\n });\n });\n }\n\n /* Создает сущность с переданными данными */\n public insert(data): Promise {\n return new Promise((resolve) => {\n this.getInsertQuery(data).subscribe({\n next: (inserted) => {\n this.notification.successLocal(this.getCreatedMessage());\n this.propagateChange();\n resolve(inserted);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n /* Модифицирует сущность с переданными данными */\n public update(data): Promise {\n return new Promise((resolve) => {\n this.getUpdateQuery(data).subscribe({\n next: (updated) => {\n this.notification.successLocal(this.getUpdatedMessage());\n this.propagateChange();\n resolve(updated);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n /* Удаляет сущность по Id */\n public delete(id: string): Promise {\n return new Promise((resolve) => {\n this.getDeleteQuery(id).subscribe({\n next: (deleted) => {\n this.notification.successLocal(this.getDeletedMessage());\n this.propagateChange();\n resolve(deleted);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n resolve(null);\n },\n });\n });\n }\n\n private getLoadQuery(\n projectTaskId: string,\n from: string,\n to: string,\n ): Observable {\n const dateFieldName = this.getDateFieldName();\n const queryFilter = [];\n queryFilter.push({\n [dateFieldName]: {\n ge: { type: 'raw', value: from },\n le: { type: 'raw', value: to },\n },\n });\n if (projectTaskId) {\n queryFilter.push({\n projectTaskId: { type: 'guid', value: projectTaskId },\n });\n }\n const queryParams = {\n select: [\n 'id',\n 'date',\n 'billingDate',\n 'collectionDate',\n 'number',\n 'amount',\n 'description',\n 'isAutomatic',\n ],\n filter: queryFilter,\n expand: {\n projectTask: { select: ['id', 'name', 'structNumber'] },\n },\n orderBy: [dateFieldName, 'created'],\n };\n if (!projectTaskId) {\n ProjectVersionUtil.addProjectEntityIdFilter(\n queryParams,\n this.versionCardService.projectVersion,\n this.projectId,\n );\n }\n ProjectVersionUtil.addProjectSelectFields(\n this.versionCardService.projectVersion,\n queryParams.select,\n );\n\n const collection = this.getCollection();\n const query = (() => {\n switch (this.sectionType) {\n case RbcSectionType.revenue:\n return collection.query(queryParams);\n case RbcSectionType.billing:\n return collection.query(queryParams);\n case RbcSectionType.collection:\n return collection.query(queryParams);\n default:\n return collection.query(queryParams);\n }\n })();\n return query.pipe(\n //TODO: check and fix this code\n // @ts-ignore\n map((data: any) =>\n data.map((e) => ({\n id: e.id,\n date: e[dateFieldName],\n billingDate: e.billingDate,\n collectionDate: e.collectionDate,\n description: e.description,\n amount: e.amount,\n projectTask: e.projectTask as NamedEntity,\n isAutomatic: e.isAutomatic,\n })),\n ),\n );\n }\n private getInsertQuery(data): Observable {\n return this.getCollection().insert(data);\n }\n private getUpdateQuery(data): Observable {\n return this.getCollection().entity(data.id).update(data);\n }\n private getDeleteQuery(id): Observable {\n return this.getCollection().entity(id).delete();\n }\n\n private getCollection() {\n switch (this.sectionType) {\n case RbcSectionType.revenue:\n return this.data.collection('ProjectRevenueEstimates');\n case RbcSectionType.billing:\n return this.data.collection('ProjectBillingEstimates');\n case RbcSectionType.collection:\n return this.data.collection('ProjectBillingEstimates');\n default:\n return this.data.collection('ProjectRevenueEstimates');\n }\n }\n private getDateFieldName() {\n switch (this.sectionType) {\n case RbcSectionType.revenue:\n return 'date';\n case RbcSectionType.billing:\n return 'billingDate';\n case RbcSectionType.collection:\n return 'collectionDate';\n }\n }\n\n private getCreatedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.created`;\n }\n private getUpdatedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.edited`;\n }\n private getDeletedMessage(): string {\n return `${this.getTranslationPrefix()}.messages.deleted`;\n }\n private getTranslationPrefix(): string {\n switch (this.sectionType) {\n case RbcSectionType.revenue:\n return 'projects.revenues.estimates';\n case RbcSectionType.billing:\n return 'projects.billings.estimates';\n case RbcSectionType.collection:\n return 'projects.billings.collections';\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport {\n getUnitFromPlanningScale,\n PlanningScale,\n} from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ProjectCardService } from '../../../core/project-card.service';\nimport { DateValue } from '../../models/rbc-data.model';\nimport {\n RbcGroupType,\n RbcSectionType,\n RbcViewGroup,\n} from '../../models/rbc-view.model';\nimport { RbcSettings } from '../../models/rbc.settings';\nimport { ProjectRbcCalendarDataService } from './project-rbc-calendar-data.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ProjectRbcCalendarSlotInfoService } from './project-rbc-calendar-slot-info.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionCardService } from '../../../core/project-version-card.service';\nimport { RevenueEstimatesModalComponent } from 'src/app/projects/card/project-rbc/project-rbc-calendar/revenue-estimates-modal/revenue-estimates-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { ProjectBillingMode } from 'src/app/shared/models/enums/project-billing-mode.enum';\n\n@Injectable()\nexport class ProjectRbcCalendarService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private toggleSubject = new Subject();\n public toggle$ = this.toggleSubject.asObservable();\n\n public loading$ = new BehaviorSubject(true);\n public frameLoading$ = new BehaviorSubject(false);\n\n public leftTableWidth = 400;\n public rightTableWidth;\n\n public slots: Slot[];\n public slotGroups: SlotGroup[];\n\n private project: Project;\n\n private subscriptions: Subscription[] = [];\n private interval: Interval;\n private forecastBreakpoint: string;\n private settings: RbcSettings;\n\n private _readonly: boolean;\n public get readonly(): boolean {\n return this._readonly;\n }\n\n public get planningScale(): PlanningScale {\n return this.settings.planningScale;\n }\n public get displayedOthers(): Record {\n return (\n this.settings.displayedOthers ??\n ({} as Record)\n );\n }\n\n private allSectionTypes = [\n RbcSectionType.revenue,\n RbcSectionType.billing,\n RbcSectionType.collection,\n ];\n\n constructor(\n private dataService: ProjectRbcCalendarDataService,\n private navigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private projectService: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private slotInfoService: ProjectRbcCalendarSlotInfoService,\n private blockUI: BlockUIService,\n private freezeTableService: FreezeTableService,\n private appService: AppService,\n private injector: Injector,\n private modal: NgbModal,\n ) {\n this.subscriptions.push(\n this.projectService.reloadTab$.subscribe(() => this.reload()),\n this.slotInfoService.changes$.subscribe((sectionTypes) => {\n if (\n this.projectService.project.billingEstimationSettings.mode ===\n ProjectBillingMode.automatic\n ) {\n sectionTypes = this.allSectionTypes;\n }\n\n this.load(sectionTypes, true);\n }),\n );\n\n this.forecastBreakpoint = ProjectVersionUtil.getForecastBreakpoint(\n this.versionCardService.projectVersion,\n this.appService.session,\n );\n }\n\n /**\n * Toggles group presence in calendar\n *\n * @param id - group id\n */\n public toggleGroup(id: string) {\n this.toggleSubject.next(id);\n }\n\n /**\n * Show/hide group other data\n *\n * @param group - group to show/hide other from\n */\n public toggleGroupOther(group: RbcViewGroup) {\n const updateOthersInSettings = (\n others: Record,\n ) => {\n this.settings.displayedOthers = others;\n const settings = this.localConfigService.getConfig(RbcSettings);\n settings.displayedOthers = others;\n this.localConfigService.setConfig(RbcSettings, settings);\n };\n\n const section = this.dataService.getSectionByGroup(group);\n const displayedOthers =\n this.settings.displayedOthers ??\n ({} as Record);\n const sectionGroups = displayedOthers[section.type] ?? [];\n if (sectionGroups.includes(group.type)) {\n const indexToRemove = sectionGroups.indexOf(group.type);\n sectionGroups.splice(indexToRemove, 1);\n displayedOthers[section.type] = sectionGroups;\n\n updateOthersInSettings(displayedOthers);\n this.changesSubject.next();\n return;\n }\n sectionGroups.push(group.type);\n displayedOthers[section.type] = sectionGroups;\n\n updateOthersInSettings(displayedOthers);\n this.changesSubject.next();\n }\n\n /**\n * Inits service's navigation, subscriptions and loads calendar\n */\n public init() {\n this.navigationService.init(ScheduleNavigationContext.Rbc);\n\n this.subscriptions.push(\n this.projectService.project$.subscribe((project) => {\n this.project = project;\n this._readonly =\n !this.versionCardService.projectVersion.editAllowed ||\n !project.revenueEstimateEditAllowed ||\n !project.financeViewAllowed ||\n !this.appService.checkFeature(Feature.finance);\n }),\n );\n\n this.subscriptions.push(\n this.navigationService.next$.subscribe(() => {\n this.loadFrame('right');\n }),\n this.navigationService.previous$.subscribe(() => {\n this.loadFrame('left');\n }),\n this.navigationService.jump$.subscribe((date) => {\n this.reload(date);\n }),\n this.navigationService.planningScale$.subscribe(() => {\n this.reload();\n }),\n );\n\n this.reload();\n }\n\n /**\n * Reloads whole calendar\n *\n * @param toDate - data to which calendar should transition\n */\n public reload(toDate?: DateTime) {\n this.settings = this.localConfigService.getConfig(RbcSettings);\n this.interval = this.navigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n this.updateDates();\n this.load();\n }\n\n /**\n * Loads calendar frame\n *\n * @param direction - direction to load frame from\n * */\n public loadFrame(direction: 'left' | 'right') {\n this.frameLoading$.next(true);\n this.blockUI.start();\n\n let shift: DurationLike;\n\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n case PlanningScale.Quarter:\n shift = { year: 1 };\n break;\n case PlanningScale.Year:\n shift = { year: 2 };\n break;\n }\n\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n\n this.dataService\n .loadFrame(loadingInterval, this.settings.planningScale)\n .then(() => {\n this.updateDates();\n\n this.frameLoading$.next(false);\n this.blockUI.stop();\n this.changesSubject.next();\n\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n });\n }\n\n /**\n * Fills and returns slots\n *\n * @param data - DateValue list\n * */\n public getFilledSlots(data: DateValue[] = []): DateValue[] {\n const filledSlots = [];\n\n this.slots.forEach((slot) => {\n const newSlot = {\n id: slot.id,\n date: null,\n amount: 0,\n };\n\n data.forEach((d) => {\n if (d.date === slot.date.toISODate()) {\n newSlot.amount = d.amount;\n }\n });\n\n newSlot.date = slot.date.toISODate();\n filledSlots.push(newSlot);\n });\n\n return filledSlots;\n }\n\n /**\n * Determines and returns slot width\n *\n * @param planningScale - Not required. If not present, service settings are used\n * */\n public getSlotWidth(planningScale?: PlanningScale): number {\n if (!planningScale) {\n planningScale = this.settings.planningScale;\n }\n\n switch (planningScale) {\n case PlanningScale.Day:\n return 90;\n case PlanningScale.Week:\n return 90;\n case PlanningScale.Month:\n return 90;\n case PlanningScale.Quarter:\n return 120;\n case PlanningScale.Year:\n return 90;\n }\n }\n\n /**\n * Determines and returns calendar width\n *\n * @param slotWidth - Not required. If not present, service's getSlotWidth() is used\n * @param countOfSlots - Not required. If not present, service's slots are used\n */\n public getTableWidth(slotWidth?: number, countOfSlots?: number): number {\n if (!slotWidth) {\n slotWidth = this.getSlotWidth();\n }\n if (!countOfSlots) {\n countOfSlots = this.slots.length;\n }\n\n return slotWidth * countOfSlots;\n }\n\n /**\n * Determines whether it is allowed to edit entry or not\n *\n * @param group - group which entry is from\n * @param entry - entry itself\n */\n public isSlotEditable(group: RbcViewGroup, entry: DateValue): boolean {\n const isEstimate = group.type === RbcGroupType.estimate;\n const isForecast = group.type === RbcGroupType.forecast;\n const entryEndDate = this.getSlotEndDate(entry);\n const isPastBreakpoint = entryEndDate >= this.forecastBreakpoint;\n return isEstimate || (isForecast && isPastBreakpoint);\n }\n\n /**\n * Determines and reload entry end date\n *\n * @param entry - entry which end date is determined\n */\n public getSlotEndDate(entry: DateValue): string {\n const date = DateTime.fromISO(entry.date);\n const unit = getUnitFromPlanningScale(this.planningScale);\n return date.endOf(unit).toISODate();\n }\n\n public openRevenueEstimatesModal() {\n const ref = this.modal.open(RevenueEstimatesModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as RevenueEstimatesModalComponent;\n\n instance.projectId = this.dataService.projectId;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.projectVersion = this.versionCardService.projectVersion;\n instance.billingType = this.project.billingType;\n\n ref.result.then(\n () => {\n this.reload();\n },\n () => null,\n );\n }\n\n /**\n * Disposes all subscriptions\n * */\n public dispose() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n /**\n * Loads data for whole calendar\n *\n * @param sectionTypes - section types to load\n * @param silent - determines if should block UI\n */\n private load(sectionTypes?: RbcSectionType[], silent = false) {\n if (silent) {\n this.blockUI.start();\n } else {\n this.loading$.next(true);\n }\n\n this.dataService\n .loadSections(this.interval, this.settings.planningScale, sectionTypes)\n .then(\n () => {\n this.changesSubject.next();\n if (silent) {\n this.blockUI.stop();\n } else {\n this.loading$.next(false);\n }\n },\n () => null,\n );\n }\n\n /**\n * Reloads view dates\n * */\n private updateDates() {\n const slotInfo = this.navigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slotGroups = slotInfo.groups;\n this.slots = slotInfo.slots;\n\n this.rightTableWidth = this.getTableWidth();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ProjectRbcCalendarDataService } from './core/project-rbc-calendar-data.service';\nimport { ProjectRbcCalendarGroupFilterService } from './core/project-rbc-calendar-group-filter.service';\nimport { ProjectRbcCalendarSlotInfoService } from './core/project-rbc-calendar-slot-info.service';\nimport { ProjectRbcCalendarService } from './core/project-rbc-calendar.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-project-rbc-calendar',\n templateUrl: './project-rbc-calendar.component.html',\n styleUrls: ['./project-rbc-calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectRbcCalendarDataService,\n ProjectRbcCalendarService,\n ProjectRbcCalendarSlotInfoService,\n ProjectRbcCalendarGroupFilterService,\n ScheduleNavigationService,\n GridService,\n FreezeTableService,\n ],\n standalone: false,\n})\nexport class ProjectRbcCalendarComponent implements OnInit, OnDestroy {\n @Input() frName = 'rbc';\n @Input() hasHeader = true;\n @Input() hasToolbar = true;\n\n public trackById(index: number, row: any): string {\n if (row.id) {\n return row.id;\n } else {\n return row.type;\n }\n }\n\n constructor(\n public service: ProjectRbcCalendarService,\n public rbcDataService: ProjectRbcCalendarDataService,\n public groupFilterService: ProjectRbcCalendarGroupFilterService,\n private changeDetector: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.service.init();\n this.service.changes$.subscribe(() => {\n this.changeDetector.detectChanges();\n });\n this.groupFilterService.changes$.subscribe(() => {\n this.changeDetector.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n }\n}\n","\n \n\n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
    \n {{ 'projects.projects.card.rbc.calendar.analytics' | translate }}\n \n {{ 'projects.projects.card.rbc.calendar.total' | translate }}\n
    \n
    \n\n
    \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ section.name }}\n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectRbcSharedModule } from '../shared/project-rbc-shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectRbcCalendarComponent } from './project-rbc-calendar.component';\nimport { ProjectRbcCalendarToolbarComponent } from './shared/project-rbc-calendar-toolbar/project-rbc-calendar-toolbar.component';\nimport { ProjectRbcCalendarRightGroupComponent } from './shared/project-rbc-calendar-right-group/project-rbc-calendar-right-group.component';\nimport { ProjectRbcCalendarLeftGroupComponent } from './shared/project-rbc-calendar-left-group/project-rbc-calendar-left-group.component';\nimport { ProjectRbcCalendarSlotInfoComponent } from './shared/project-rbc-calendar-slot-info/project-rbc-calendar-slot-info.component';\nimport { ProjectRbcCalendarGroupFilterComponent } from './shared/project-rbc-calendar-group-filter/project-rbc-group-filter.component';\nimport { RevenueEstimatesModalComponent } from './revenue-estimates-modal/revenue-estimates-modal.component';\n\n@NgModule({\n declarations: [\n ProjectRbcCalendarComponent,\n ProjectRbcCalendarRightGroupComponent,\n ProjectRbcCalendarToolbarComponent,\n ProjectRbcCalendarLeftGroupComponent,\n ProjectRbcCalendarSlotInfoComponent,\n ProjectRbcCalendarGroupFilterComponent,\n RevenueEstimatesModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ScheduleNavigationModule,\n ProjectRbcSharedModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.rbc.calendar',\n url: '/calendar',\n component: ProjectRbcCalendarComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n exports: [ProjectRbcCalendarComponent],\n})\nexport class ProjectRbcCalendarModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { camelCase } from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ProjectRevenueEstimateRequest } from 'src/app/shared/models/entities/projects/project-revenue-estimate-request.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport {\n RevenueEstimateMethod,\n RevenueEstimateMethods,\n} from 'src/app/shared/models/enums/revenue-estimate-calculation-method.enum';\nimport { RevenueEstimateFrequencies } from 'src/app/shared/models/enums/revenue-estimate-frequency.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\n\n@Component({\n selector: 'tmt-revenue-estimates-modal',\n templateUrl: './revenue-estimates-modal.component.html',\n styleUrls: ['./revenue-estimates-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RevenueEstimatesModalComponent implements OnInit, OnDestroy {\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() projectCurrencyCode: string;\n @Input() billingType: ProjectBillingType;\n\n /** Saving data state. */\n public saving$ = new BehaviorSubject(false);\n\n /** Revenue estimate methods enum. */\n public revenueEstimateMethods = RevenueEstimateMethod;\n\n public form = this.fb.group({\n fixedAmount: [null, Validators.required],\n targetProfitability: [null, Validators.required],\n accrualFrequency: [null, Validators.required],\n calculationMethod: [null, Validators.required],\n task: [null, Validators.required],\n isDetailedByStages: false,\n dateStart: [null],\n dateFinish: [null],\n });\n\n /** Estimate revenue frequency values. */\n public get frequencies() {\n return this._frequencies;\n }\n\n /** Estimate revenue calculation methods values. */\n public get calculationMethods() {\n return this._calculationMethods;\n }\n\n /** Selected calculation method. */\n public get calculationMethod() {\n return this.form.controls.calculationMethod.value?.id;\n }\n\n private _frequencies: Array;\n private _calculationMethods: Array;\n\n private calculationMethodsControls = {\n [RevenueEstimateMethod.Fixed]: {\n enable: ['task', 'fixedAmount'],\n disable: ['isDetailedByStages', 'targetProfitability'],\n },\n [RevenueEstimateMethod.BillingRate]: {\n enable: ['isDetailedByStages'],\n disable: ['task', 'targetProfitability', 'fixedAmount'],\n },\n [RevenueEstimateMethod.TargetProfitability]: {\n enable: ['targetProfitability', 'isDetailedByStages'],\n disable: ['task', 'fixedAmount'],\n },\n };\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private notification: NotificationService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initVars();\n this.initSubscriptions();\n\n FormHelper.controlDatePair(\n this.form,\n 'dateStart',\n 'dateFinish',\n takeUntil(this.destroyed$),\n );\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Modal Cancel/Cross button click event handler.\n * Closes the active modal.\n * */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Submit modal handler.\n * Sends data for revenue estimation and closes modal.\n * */\n public ok() {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.saving$.next(true);\n\n const formValue = this.form.value;\n\n const revenueEstimateRequest = {\n accrualFrequency: formValue.accrualFrequency.id,\n calculationMethod: formValue.calculationMethod.id,\n dateStart: formValue.dateStart,\n dateFinish: formValue.dateFinish,\n fixedAmount: formValue.fixedAmount,\n isDetailedByStages: formValue.isDetailedByStages,\n targetProfitability: formValue.targetProfitability,\n taskId: formValue.task?.id,\n } as ProjectRevenueEstimateRequest;\n\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('CalculateEstimatedRevenue')\n .execute(revenueEstimateRequest)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projects.revenues.messages.success',\n );\n this.activeModal.close();\n this.saving$.next(false);\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.saving$.next(false);\n this.cdr.detectChanges();\n },\n });\n }\n\n /**\n * Inits variables.\n * */\n private initVars(): void {\n // Init enum select items.\n const enumValueKeyPrefix = 'projects.projects.revenues.props.';\n this._calculationMethods = this.getEnumSelectItems(\n RevenueEstimateMethods,\n `${enumValueKeyPrefix}calculationMethod.values.`,\n );\n\n this._frequencies = this.getEnumSelectItems(\n RevenueEstimateFrequencies,\n `${enumValueKeyPrefix}frequency.values.`,\n );\n }\n\n private initSubscriptions() {\n this.form.controls.calculationMethod.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.calculationMethodChangeHandler(value.id);\n });\n this.form.controls.task.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((task) => {\n this.form.patchValue({\n dateStart: task.startDate,\n dateFinish: task.endDate,\n });\n });\n }\n\n private calculationMethodChangeHandler(\n calculationMethod: RevenueEstimateMethod,\n ) {\n this.calculationMethodsControls[calculationMethod].enable.forEach(\n (controlName) => {\n this.form.controls[controlName].enable({ emitEvent: false });\n },\n );\n this.calculationMethodsControls[calculationMethod].disable.forEach(\n (controlName) => {\n this.form.controls[controlName].disable({ emitEvent: false });\n },\n );\n\n if (calculationMethod === RevenueEstimateMethod.Fixed) {\n this.form.controls.dateStart.setValidators(Validators.required);\n this.form.controls.dateFinish.setValidators(Validators.required);\n } else {\n this.form.controls.dateStart.clearValidators();\n this.form.controls.dateFinish.clearValidators();\n }\n\n this.form.controls.dateStart.updateValueAndValidity();\n this.form.controls.dateFinish.updateValueAndValidity();\n\n this.cdr.detectChanges();\n }\n\n private projectPeriodChangeHandler(value) {\n if (value) {\n this.form.controls.dateStart.disable();\n this.form.controls.dateFinish.disable();\n } else {\n this.form.controls.dateStart.enable();\n this.form.controls.dateFinish.enable();\n }\n }\n\n /**\n * Gets transformed enum values for select list.\n *\n * @param enumValues Enum values.\n * @param keyPrefix Translation key prefix.\n * @returns Transformed enum values.\n * */\n private getEnumSelectItems(\n enumValues: Array,\n keyPrefix: string,\n ): Array {\n return enumValues.map((e) => ({\n id: e,\n name: this.translate.instant(`${keyPrefix}${camelCase(e)}`),\n }));\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.revenues.modal.header' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n
    \n
    \n\n \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n\n \n
    \n","import { Component } from '@angular/core';\nimport { RbcGroupType } from '../../../models/rbc-view.model';\nimport { ProjectRbcCalendarGroupFilterService } from '../../core/project-rbc-calendar-group-filter.service';\n\n@Component({\n selector: 'wp-project-rbc-group-filter',\n templateUrl: './project-rbc-group-filter.component.html',\n standalone: false,\n})\nexport class ProjectRbcCalendarGroupFilterComponent {\n constructor(public service: ProjectRbcCalendarGroupFilterService) {}\n\n public onToggle(group: RbcGroupType) {\n this.service.toggleGroup(group);\n }\n}\n","
    \n \n \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { RbcGroupType, RbcViewGroup } from '../../../models/rbc-view.model';\nimport { ProjectRbcCalendarDataService } from '../../core/project-rbc-calendar-data.service';\nimport { ProjectRbcCalendarService } from '../../core/project-rbc-calendar.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpProjectRbcCalendarLeftGroup]',\n templateUrl: './project-rbc-calendar-left-group.component.html',\n styleUrls: ['./project-rbc-calendar-left-group.component.scss'],\n standalone: false,\n})\nexport class ProjectRbcCalendarLeftGroupComponent implements OnInit, OnDestroy {\n @Input() group: RbcViewGroup;\n @Input() showOther = true;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly RbcGroupType = RbcGroupType;\n\n private subscriptions: Subscription[] = [];\n\n public get forecastPlanDelta(): number {\n if (this.group.type !== RbcGroupType.forecast) {\n return;\n }\n return this.dataService.getGroupSignedDelta(this.group);\n }\n public get hasLines(): boolean {\n const hasTaskLines = this.group.taskLines.length !== 0;\n const hasOtherLine =\n !!this.group.otherLine && this.group.otherLine.total !== 0;\n return hasTaskLines || hasOtherLine;\n }\n\n constructor(\n public service: ProjectRbcCalendarService,\n private dataService: ProjectRbcCalendarDataService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.service.toggle$\n .pipe(filter((id) => id === this.group.id))\n .subscribe(() => {\n this.changeDetectorRef.detectChanges();\n }),\n this.service.changes$.subscribe(() => {\n this.recalculateTotals();\n this.changeDetectorRef.detectChanges();\n }),\n );\n this.recalculateTotals();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n trackById = (index: number, row: any) => row.task.id;\n\n public onExpand() {\n this.group.isExpanded = !this.group.isExpanded;\n this.service.toggleGroup(this.group.id);\n }\n\n public onToggleGroupOther() {\n this.service.toggleGroupOther(this.group);\n }\n\n public getGroupHintKey(group: RbcViewGroup) {\n const currSection = this.dataService.getSectionByGroup(group);\n return `projects.projects.card.rbc.calendar.groupHints.${currSection.type}.${group.type}`;\n }\n\n /**\n * Recalculates group and task lines' totals\n *\n * @private\n */\n private recalculateTotals() {\n this.group.total = 0;\n this.group.taskLines.forEach((line) => {\n this.group.total += line.total;\n });\n if (this.showOther) {\n this.group.total += this.group.otherLine?.total ?? 0;\n }\n }\n}\n","\n \n
    \n \n {{ group.name }}\n \n
    \n \n \n
    \n 0,\n 'text-danger': forecastPlanDelta < 0\n }\"\n [ngbTooltip]=\"\n 'projects.projects.card.rbc.calendar.groups.warning.delta'\n | translate\n : {\n delta: forecastPlanDelta | unsigned | number: '1.2-2'\n }\n \"\n >\n \n
    \n \n\n\n\n \n \n {{ taskLine.taskFullName }}\n \n \n {{ taskLine.total | zeroToNull | number: '1.2-2' }}\n \n \n\n \n \n \n
    \n \n {{ group.otherLine.title }}\n \n
    \n \n \n {{ (showOther ? group.otherLine.total : 0) | zeroToNull | number: '1.2-2' }}\n \n \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ProjectRbcCalendarService } from '../../core/project-rbc-calendar.service';\nimport { ProjectRbcCalendarDataService } from '../../core/project-rbc-calendar-data.service';\nimport {\n RbcGroupType,\n RbcViewGroup,\n RbcViewTaskLine,\n} from '../../../models/rbc-view.model';\nimport { DateValue } from '../../../models/rbc-data.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ProjectRbcCalendarSlotInfoComponent } from '../project-rbc-calendar-slot-info/project-rbc-calendar-slot-info.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpProjectRbcCalendarRightGroup]',\n templateUrl: './project-rbc-calendar-right-group.component.html',\n styleUrls: ['./project-rbc-calendar-right-group.component.scss'],\n standalone: false,\n})\nexport class ProjectRbcCalendarRightGroupComponent\n implements OnInit, OnDestroy\n{\n @Input() group: RbcViewGroup;\n @Input() showOther = true;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly RbcGroupType = RbcGroupType;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n public service: ProjectRbcCalendarService,\n private dataService: ProjectRbcCalendarDataService,\n private changeDetector: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.service.toggle$\n .pipe(filter((id) => id === this.group.id))\n .subscribe(() => {\n this.changeDetector.detectChanges();\n }),\n this.service.changes$.subscribe(() => {\n this.recalculateEntries();\n }),\n );\n this.recalculateEntries();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n trackById = (index: number, row: any) => row.id;\n\n public isSlotEditable(group: RbcViewGroup, entry: DateValue) {\n return this.service.isSlotEditable(group, entry);\n }\n\n /**\n * Opens popup for passed entry\n *\n * @param group - group which entry is from\n * @param line - line which entry is from\n * @param entry - entry itself\n * @param event - mouse event\n */\n public openPopup(\n group: RbcViewGroup,\n line: RbcViewTaskLine,\n entry: DateValue,\n event: MouseEvent,\n ) {\n if (!this.isSlotEditable(group, entry)) {\n return;\n }\n const section = this.dataService.getSectionByGroup(group);\n const taskId = line ? line.task.id : null;\n const dateTo = this.service.getSlotEndDate(entry);\n\n const target = event.target;\n this.infoPopupService.open({\n target,\n data: {\n component: ProjectRbcCalendarSlotInfoComponent,\n params: {\n sectionType: section.type,\n projectId: this.dataService.projectId,\n projectTaskId: taskId,\n dateFrom: entry.date,\n dateTo,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Recalculates entries\n *\n * @private\n */\n private recalculateEntries() {\n this.group.entries = this.service.getFilledSlots();\n this.group.taskLines.forEach((line) => {\n line.entries = this.service.getFilledSlots(line.entries);\n });\n if (this.group.otherLine) {\n this.group.otherLine.entries = this.service.getFilledSlots(\n this.group.otherLine.entries,\n );\n }\n\n this.group.entries.forEach((entry) => {\n this.group.taskLines.forEach((line) => {\n line.entries.forEach((le) => {\n if (entry.date === le.date) {\n entry.amount += le.amount;\n }\n });\n });\n if (this.showOther) {\n this.group.otherLine?.entries.forEach((le) => {\n if (entry.date === le.date) {\n entry.amount += le.amount;\n }\n });\n }\n });\n this.changeDetector.detectChanges();\n }\n}\n","\n \n {{ entry.amount | zeroToNull | number: '1.2-2' }}\n \n\n\n \n \n {{ entry.amount | zeroToNull | number: '1.2-2' }}\n \n \n\n \n \n \n {{ (showOther ? entry.amount : 0) | zeroToNull | number: '1.2-2' }}\n \n \n\n","import {\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { ProjectRevenueModalComponent } from '../../../project-revenue-estimates/shared/project-revenue-modal/project-revenue-modal.component';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n ProjectRbcCalendarSlotInfoService,\n SlotInfo,\n} from '../../core/project-rbc-calendar-slot-info.service';\nimport { RbcSectionType } from '../../../models/rbc-view.model';\nimport { ProjectBillingModalComponent } from '../../../project-billing-estimates/shared/project-billing-modal/project-billing-modal.component';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ProjectCardService } from '../../../../core/project-card.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ProjectBillingEstimate } from 'src/app/shared/models/entities/projects/project-billing-estimate.model';\nimport { ProjectRevenueEstimate } from 'src/app/shared/models/entities/projects/project-revenue-estimate.model';\n\n@Component({\n selector: 'wp-project-rbc-calendar-slot-info',\n templateUrl: './project-rbc-calendar-slot-info.component.html',\n styleUrls: ['./project-rbc-calendar-slot-info.component.scss'],\n standalone: false,\n})\nexport class ProjectRbcCalendarSlotInfoComponent implements OnInit, OnDestroy {\n @Input() params: any;\n\n private subscriptions: Subscription[] = [];\n public slotInfo: SlotInfo[] = [];\n\n public isShown: boolean;\n public isLoading$ = new BehaviorSubject(true);\n\n private project: Project;\n private projectVersion: ProjectVersion;\n private defaultTask: ProjectTask;\n\n public get projectCurrencyCode() {\n return this.project.currency.alpha3Code;\n }\n\n /**\n * Checks if Slot creation is allowed on popup or not.\n *\n * @returns `true` if creation is allowed, `false` otherwise.\n * */\n public get createAllowed(): boolean {\n if (this.params.isAutomatic === true) {\n return false;\n }\n return this.editAllowed();\n }\n\n constructor(\n private service: ProjectRbcCalendarSlotInfoService,\n private projectTasksService: ProjectTasksService,\n private projectCardService: ProjectCardService,\n private changeDetector: ChangeDetectorRef,\n private modal: NgbModal,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.projectCardService.project$.subscribe((proj) => {\n this.project = proj;\n }),\n );\n\n this.open();\n }\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe);\n }\n\n /**\n * Checks if Slot edit is allowed on popup or not.\n *\n * @param slot Slot to check. If not passed, general access rights will be checked.\n * @returns `true<` if edit is allowed, `false` otherwise.\n * */\n public editAllowed(slot?: SlotInfo): boolean {\n if (slot?.isAutomatic === true) {\n return false;\n }\n if (!this.project) {\n return true;\n }\n let editAllowed: boolean;\n switch (this.params.sectionType) {\n case RbcSectionType.revenue:\n editAllowed = this.project.revenueEstimateEditAllowed;\n break;\n case RbcSectionType.billing:\n editAllowed = this.project.billingEstimateEditAllowed;\n break;\n case RbcSectionType.collection:\n editAllowed = this.project.billingEstimateEditAllowed;\n break;\n }\n\n return editAllowed && this.projectVersion.editAllowed;\n }\n\n /* Открывает окно с загруженными данными */\n public open(): void {\n this.service.sectionType = this.params.sectionType;\n this.service.projectId = this.params.projectId;\n this.projectVersion = this.service.versionCardService.projectVersion;\n\n this.setDefaultTask();\n\n this.isShown = true;\n this.changeDetector.detectChanges();\n\n this.service\n .load(this.params.projectTaskId, this.params.dateFrom, this.params.dateTo)\n .then(\n (loaded) => {\n this.slotInfo = loaded;\n this.isLoading$.next(false);\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n },\n () => null,\n );\n }\n\n /* Открывает модальное окно и сохраняет заполненные данные */\n public onCreate(): void {\n this.isShown = false;\n this.infoPopupService.close();\n this.openModal().then(\n (filled) => {\n filled.id = Guid.generate();\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n filled,\n this.params.projectId,\n );\n this.slotInfo.push(filled as SlotInfo);\n\n const data = {\n id: filled.id,\n projectTaskId: filled.projectTask.id,\n date: filled.date,\n billingDate: filled.billingDate,\n collectionDate: filled.collectionDate,\n amount: filled.amount,\n description: filled.description,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n data,\n this.params.projectId,\n );\n this.service.insert(data).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n },\n () => null,\n );\n }\n\n /* Открывает модальное окно и сохраняет заполненные данные */\n public onEdit(info: SlotInfo): void {\n this.isShown = false;\n this.infoPopupService.close();\n this.openModal(info).then(\n (filled) => {\n const index = this.slotInfo.findIndex((i) => i.id === filled.id);\n this.slotInfo[index] = filled as SlotInfo;\n\n const data = {\n id: filled.id,\n projectTaskId: filled.projectTask.id,\n date: filled.date,\n billingDate: filled.billingDate,\n collectionDate: filled.collectionDate,\n amount: filled.amount,\n description: filled.description,\n };\n if (filled.isAutomatic) {\n data['isAutomatic'] = filled.isAutomatic;\n }\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersion,\n data,\n this.params.projectId,\n );\n\n this.service.update(data).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n },\n () => null,\n );\n }\n\n /* Удаляет сущность из памяти и сервера */\n public onRemove(info: SlotInfo): void {\n if (!this.editAllowed(info)) {\n return;\n }\n this.slotInfo = this.slotInfo.filter((i) => i.id !== info.id);\n this.service.delete(info.id).then(\n () => this.infoPopupService.close(),\n () => null,\n );\n }\n\n private openModal(info?: SlotInfo): Promise {\n const ref = (() => {\n switch (this.params.sectionType) {\n case RbcSectionType.revenue:\n return this.modal.open(ProjectRevenueModalComponent);\n case RbcSectionType.billing:\n case RbcSectionType.collection:\n return this.modal.open(ProjectBillingModalComponent, {\n injector: this.injector,\n });\n }\n })();\n const instance = ref.componentInstance;\n instance.projectId = this.params.projectId;\n instance.projectVersion = this.projectVersion;\n instance.projectCurrencyCode = this.projectCurrencyCode;\n instance.readonly = !this.editAllowed(info);\n\n if (info) {\n instance.entry = info as ProjectBillingEstimate | ProjectRevenueEstimate;\n return ref.result;\n }\n instance.entry = {\n date: this.params.dateTo,\n billingDate: this.params.dateTo,\n collectionDate: this.params.dateTo,\n projectTask: this.defaultTask as NamedEntity,\n isAutomatic: this.params.isAutomatic,\n };\n return ref.result;\n }\n\n private setDefaultTask() {\n this.projectTasksService\n .getProjectTasks(this.params.projectId, this.projectVersion)\n .subscribe((tasks) => {\n const currTask = tasks.find((t) => t.id === this.params.projectTaskId);\n const leadTask = tasks.find((t) => !t.leadTaskId);\n this.defaultTask = currTask ?? leadTask;\n });\n }\n}\n","\n\n@if (!(isLoading$ | async)) {\n @if (slotInfo.length) {\n \n \n \n \n \n \n \n\n \n @for (slot of slotInfo; track slot.id) {\n \n \n {{ slot.date | date: 'shortDate' }}\n \n \n \n \n \n }\n \n
    {{ slot.amount | wpCurrency: projectCurrencyCode }}\n {{ slot.description }}\n \n @if (editAllowed(slot)) {\n \n }\n
    \n } @else {\n
    \n

    \n {{ 'shared.noDisplayData' | translate }}\n

    \n
    \n }\n @if (createAllowed) {\n
    \n

    \n \n

    \n
    \n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ProjectRbcCalendarService } from 'src/app/projects/card/project-rbc/project-rbc-calendar/core/project-rbc-calendar.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\n@Component({\n selector: 'wp-project-rbc-calendar-toolbar',\n templateUrl: './project-rbc-calendar-toolbar.component.html',\n styles: [':host {display: block}'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectRbcCalendarToolbarComponent {\n @Input() disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public readonly PlanningScale = PlanningScale;\n\n constructor(public projectRbcCalendarService: ProjectRbcCalendarService) {}\n}\n","
    \n \n\n \n\n \n {{ 'projects.projects.revenues.actions.addRevenue' | translate }}\n \n\n \n
    \n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-project-rbc',\n templateUrl: './project-rbc.component.html',\n standalone: false,\n})\nexport class ProjectRbcComponent {}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProjectRbcComponent } from './project-rbc.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectRbcCalendarModule } from './project-rbc-calendar/project-rbc-calendar.module';\nimport { ProjectRevenueEstimatesModule } from './project-revenue-estimates/project-revenue-estimates.module';\nimport { ProjectBillingModule } from './project-billing-estimates/project-billing.module';\n\n@NgModule({\n declarations: [ProjectRbcComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProjectRevenueEstimatesModule,\n ProjectBillingModule,\n ProjectRbcCalendarModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.rbc',\n url: '/rbc',\n component: ProjectRbcComponent,\n redirectTo: 'project.rbc.calendar',\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectRbcModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { ProjectRevenueEstimatesService } from './project-revenue-estimates.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-project-revenue-estimates',\n templateUrl: './project-revenue-estimates.component.html',\n providers: [\n SavingQueueService,\n ListService,\n GridService,\n ProjectRevenueEstimatesService,\n FinancialTaskCellService,\n ],\n standalone: false,\n})\nexport class ProjectRevenueEstimatesComponent implements OnInit, OnDestroy {\n private projectSubscription: Subscription;\n private reloadListener: Subscription;\n\n constructor(\n private projectService: ProjectCardService,\n public projectRevenueService: ProjectRevenueEstimatesService,\n private savingQueueService: SavingQueueService,\n ) {}\n\n ngOnInit(): void {\n this.projectSubscription = this.projectService.project$.subscribe(\n (project: Project) => {\n this.projectRevenueService.setReadonly(\n !project.revenueEstimateEditAllowed,\n );\n this.projectRevenueService.updateWorkProjectVersionFlag();\n },\n );\n\n this.reloadListener = this.projectService.reloadTab$.subscribe(() =>\n this.projectRevenueService.load(),\n );\n\n this.projectRevenueService.init();\n }\n\n ngOnDestroy(): void {\n this.projectSubscription.unsubscribe();\n this.reloadListener.unsubscribe();\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { ProjectRevenueToolbarComponent } from './project-revenue-toolbar/project-revenue-toolbar.component';\nimport { ProjectRevenueModalComponent } from './shared/project-revenue-modal/project-revenue-modal.component';\n\nimport { ProjectRevenueEstimatesList } from 'src/app/shared/lists/project-revenue-estimates.list';\nimport { ProjectCardSharedModule } from '../../shared/project-card-shared.module';\nimport { ProjectRevenueEstimatesComponent } from './project-revenue-estimates.component';\nimport { ProjectRbcSharedModule } from '../shared/project-rbc-shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ProjectRevenueEstimatesComponent,\n ProjectRevenueToolbarComponent,\n ProjectRevenueModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n ProjectRbcSharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.rbc.revenue',\n url: '/revenue',\n component: ProjectRevenueEstimatesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ProjectRevenueEstimatesList },\n ],\n },\n ],\n }),\n ],\n})\nexport class ProjectRevenueEstimatesModule {}\n","import { Inject, Injectable, Injector, OnDestroy } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { assign, findIndex, orderBy } from 'lodash';\nimport { DateTime } from 'luxon';\nimport { forkJoin, Subject, Subscription } from 'rxjs';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectRevenueToolbarComponent } from './project-revenue-toolbar/project-revenue-toolbar.component';\nimport { ProjectRevenueSettings } from './shared/model/project-revenue-settings.model';\nimport { ProjectRevenueModalComponent } from './shared/project-revenue-modal/project-revenue-modal.component';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ProjectRevenueEstimateViewLine } from './shared/model/project-revenue-view-line.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { StateService } from '@uirouter/angular';\nimport { AppService } from 'src/app/core/app.service';\nimport { FinancialTaskCellService } from '../../shared/financial-task-cell/financial-task-cell.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectRevenueEstimate } from 'src/app/shared/models/entities/projects/project-revenue-estimate.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { RevenueEstimatesModalComponent } from 'src/app/projects/card/project-rbc/project-rbc-calendar/revenue-estimates-modal/revenue-estimates-modal.component';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport {\n Command,\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridCurrencyColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Injectable()\nexport class ProjectRevenueEstimatesService implements OnDestroy {\n get isWorkProjectVersion() {\n return this._isWorkProjectVersion;\n }\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: ProjectRevenueToolbarComponent,\n commands: [\n {\n name: 'addEntry',\n handlerFn: () => this.addEntry(),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'edit',\n handlerFn: (group: UntypedFormGroup) => this.edit(group),\n allowedFn: (row: any) => row && !row.isTaskGroup,\n },\n {\n name: 'delete',\n handlerFn: (row: any) => this.deleteEntry(row.originalId),\n allowedFn: (row: any) => !this.readonly && row && !row.isTaskGroup,\n },\n {\n name: 'createAct',\n handlerFn: (group: UntypedFormGroup) => this.createAct(group),\n allowedFn: (row: any) =>\n this._isWorkProjectVersion && row && !row.isTaskGroup,\n },\n {\n name: 'clear',\n handlerFn: () => this.clear(),\n allowedFn: () => !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !formGroup.value.isTaskGroup,\n handlerFn: (formGroup: UntypedFormGroup) => this.edit(formGroup),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly && !formGroup.value.isTaskGroup,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteEntry(formGroup.value.originalId),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n public settings: ProjectRevenueSettings;\n\n public commands: Command[];\n\n public totals: Dictionary = {};\n\n public readonly: boolean;\n\n public formArray: UntypedFormArray = this.fb.array([]);\n\n private _revenueEstimateEditAllowed: boolean;\n public get revenueEstimateEditAllowed(): boolean {\n return this._revenueEstimateEditAllowed;\n }\n\n private storageSettingsName = 'projectRevenueSettings';\n\n project: Project;\n\n private entries: ProjectRevenueEstimate[] = [];\n private mainTask: ProjectTask;\n private tasks: ProjectTask[] = [];\n private allTasks: ProjectTask[] = [];\n\n /** Суммы по задачам */\n private tasksAmounts: Dictionary<{ amount: number }> = {};\n\n private _isWorkProjectVersion: boolean;\n\n private loadingSubscription: Subscription;\n private toggleTaskIdSubscription: Subscription;\n\n private destroyed$ = new Subject();\n\n private getCollection = () => this.data.collection('ProjectRevenueEstimates');\n\n constructor(\n @Inject('entityId') public entityId: string,\n private injector: Injector,\n public autosave: SavingQueueService,\n public modal: NgbModal,\n private data: DataService,\n public app: AppService,\n private fb: UntypedFormBuilder,\n public listService: ListService,\n public gridService: GridService,\n public notification: NotificationService,\n private localStorageService: LocalStorageService,\n private translate: TranslateService,\n private projectTasksService: ProjectTasksService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private blockUI: BlockUIService,\n private state: StateService,\n financialTaskCellService: FinancialTaskCellService,\n private projectCardService: ProjectCardService,\n private messageService: MessageService,\n ) {\n this.toggleTaskIdSubscription =\n financialTaskCellService.toggleTaskId$.subscribe((id) => {\n this.toggleTask(id);\n });\n financialTaskCellService.projectVersion =\n this.versionCardService.projectVersion;\n }\n\n public toggleTask(taskId: string) {\n const task = this.tasks.find((t) => t.id === taskId);\n task.isExpanded = !task.isExpanded;\n this.updateFormArray();\n }\n\n public openRevenueEstimatesModal() {\n const ref = this.modal.open(RevenueEstimatesModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as RevenueEstimatesModalComponent;\n\n instance.projectId = this.project.id;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.projectVersion = this.versionCardService.projectVersion;\n instance.billingType = this.project.billingType;\n\n ref.result.then(\n () => {\n this.projectCardService.reloadTab();\n },\n () => null,\n );\n }\n\n /** Загрузка главной задачи. */\n public loadMainTask() {\n this.projectTasksService\n .getProjectTasks(this.entityId, this.versionCardService.projectVersion)\n .subscribe({\n next: (tasks: ProjectTask[]) => {\n this.mainTask =\n tasks?.length > 0 ? tasks.find((t) => !t.leadTaskId) : null;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /** Загрузка данных. */\n public load(): void {\n this.projectTasksService.resetProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n );\n this.autosave.save().then(\n () => {\n this.formArray.clear();\n this.totals = null;\n this.gridService.setLoadingState(true);\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = forkJoin({\n entries: this.getCollection().query(\n this.getQuery(),\n ),\n tasks: this.projectTasksService.getProjectTasks(\n this.entityId,\n this.versionCardService.projectVersion,\n ),\n }).subscribe({\n next: (value) => {\n this.entries = value.entries;\n this.allTasks = value.tasks;\n\n this.entries.forEach((e) => {\n e.added = 0;\n });\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n },\n () => null,\n );\n }\n\n public addEntry() {\n const entry: ProjectRevenueEstimate = {\n created: DateTime.now().toJSDate(),\n added: new Date().getTime(),\n projectTask:\n this.gridService.selectedGroupValue?.projectTask ?? this.mainTask,\n date: DateTime.now().toISODate(),\n amount: 0,\n id: Guid.generate(),\n description: '',\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n entry,\n this.entityId,\n );\n\n this.entries.unshift(entry);\n\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n\n const indexOfNewEntry = (this.formArray.value as any[]).findIndex(\n (l) => l.id === entry.id,\n );\n\n this.gridService.selectGroup(\n this.formArray.at(indexOfNewEntry) as UntypedFormGroup,\n );\n\n const data = {\n projectTaskId: entry.projectTask.id,\n date: entry.date,\n amount: entry.amount,\n id: entry.id,\n description: entry.description,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.getCollection().insert(data),\n );\n }\n\n public deleteEntry(id: string): void {\n this.entries = this.entries.filter((l) => l.id !== id);\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n this.autosave.addToQueue(id, this.getCollection().entity(id).delete());\n }\n\n public edit(group: UntypedFormGroup) {\n const ref = this.modal.open(ProjectRevenueModalComponent, {\n injector: this.injector,\n });\n const instance = ref.componentInstance as ProjectRevenueModalComponent;\n\n instance.entry = group.value;\n instance.readonly = this.readonly;\n instance.projectId = this.entityId;\n instance.projectCurrencyCode = this.project.currency.alpha3Code;\n instance.projectVersion = this.versionCardService.projectVersion;\n\n ref.result.then(\n (result) => {\n group.patchValue(result);\n },\n () => null,\n );\n }\n\n /** Создает группу строки. */\n public getLineGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n originalId: null,\n created: null,\n date: [null],\n amount: [null],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n projectTask: [null, Validators.required],\n indent: 0,\n isTaskGroup: false,\n isExpanded: true,\n });\n\n group.valueChanges.subscribe((line: ProjectRevenueEstimateViewLine) => {\n const entry = this.entries.find((e) => e.id === line.originalId);\n assign(entry, line);\n entry.id = line.originalId;\n\n const data = {\n id: line.originalId,\n projectTaskId: entry.projectTask.id,\n date: entry.date,\n amount: entry.amount,\n description: entry.description,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n data,\n this.entityId,\n );\n\n this.autosave.addToQueue(\n data.id,\n this.getCollection().entity(data.id).update(data),\n );\n });\n\n group.controls['amount'].valueChanges.subscribe(() => {\n this.updateTotalsByTask(group.value.projectTask);\n });\n\n group.controls['projectTask'].valueChanges\n .pipe(debounceTime(0))\n .subscribe(() => {\n this.updateTasks();\n this.calculateTotals();\n this.updateFormArray();\n });\n\n return group;\n }\n\n private updateTotalsByTask(projectTask: ProjectTask) {\n // Найти ведущую задачу.\n const getLeadTask = (task: ProjectTask): ProjectTask => {\n const leadTask = this.tasks.find((t) => t.id === task.leadTaskId);\n if (!leadTask) {\n return task;\n } else {\n return getLeadTask(leadTask);\n }\n };\n\n setTimeout(() => {\n this.calculateTotals();\n\n if (this.settings.grouping) {\n this.applyTotals([getLeadTask(projectTask)]);\n }\n });\n }\n\n /** Рассчитать итоги по задачами и общие итоги. */\n private calculateTotals() {\n this.tasksAmounts = {};\n\n const calculateTasksTotal = (tasks: ProjectTask[]): { amount: number } => {\n let totalAmount = 0;\n\n tasks.forEach((task) => {\n const entries = this.entries.filter(\n (e) => e.projectTask.id === task.id,\n );\n\n let amount =\n entries?.reduce((total, entry) => total + entry.amount, 0) ?? 0;\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n const childrenAmounts = calculateTasksTotal(children);\n\n amount += childrenAmounts.amount;\n\n totalAmount += amount;\n this.tasksAmounts[task.id] = {\n amount,\n };\n });\n\n return { amount: totalAmount };\n };\n\n // Задачи верхнего уровня.\n const topTasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n this.totals = {};\n const totalAmounts = calculateTasksTotal(topTasks);\n this.totals['amount'] = totalAmounts.amount;\n this.totals['projectTask'] = this.entries.length;\n }\n\n /** Обновление структуры задач на основании списка строк. */\n private updateTasks() {\n this.tasks = [];\n\n // Соберем структуру задач.\n this.entries.forEach((entry) => {\n if (\n entry.projectTask &&\n !this.tasks.find((t) => t.id === entry.projectTask.id)\n ) {\n entry.projectTask.isExpanded = true;\n this.tasks.push(entry.projectTask);\n }\n });\n\n // Восстановим разорванные цепочки.\n const restoreLinks = (task: ProjectTask) => {\n if (!task.leadTaskId) {\n return;\n }\n const leadTask = this.allTasks.find((t) => t.id === task.leadTaskId);\n\n // Главную задачу не добавляем - если на нее нет записей, то и в UI не будет.\n if (\n leadTask?.leadTaskId &&\n !this.tasks.find((t) => t.id === leadTask.id)\n ) {\n leadTask.isExpanded = true;\n this.tasks.push(leadTask);\n restoreLinks(leadTask);\n }\n };\n\n this.tasks.forEach((task) => {\n restoreLinks(task);\n });\n }\n\n /** Обновляет форму по данным. */\n private updateFormArray() {\n this.calculateTotals();\n this.formArray.clear();\n this.gridService.detectChanges();\n\n this.autosave.disabled = true;\n const lines: ProjectRevenueEstimateViewLine[] = [];\n\n if (this.settings.grouping === 'byTasks') {\n let level = 0;\n\n const addLevel = (tasksInLevel: ProjectTask[]) => {\n tasksInLevel\n .sort(naturalSort('structNumber'))\n .forEach((projectTask) => {\n // Добавить строку задачи.\n lines.push({\n id: Guid.generate(),\n originalId: projectTask.id,\n created: projectTask.created,\n indent: level,\n amount: this.tasksAmounts[projectTask.id].amount,\n date: null,\n projectTask,\n isTaskGroup: true,\n isExpanded: projectTask.isExpanded,\n });\n\n if (!projectTask.isExpanded) {\n return;\n }\n\n level++;\n\n // Найти все бюджетные строки.\n let entries = this.entries.filter(\n (entry) => entry.projectTask?.id === projectTask.id,\n );\n\n entries = orderBy(\n entries,\n ['added', 'date', 'created'],\n ['desc', 'asc', 'asc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n id: Guid.generate(),\n originalId: entry.id,\n isTaskGroup: false,\n indent: level,\n });\n });\n\n addLevel(\n this.tasks.filter((task) => task.leadTaskId === projectTask.id),\n );\n level--;\n });\n };\n\n // На верхний уровень все задачи без ведущих в коллекции\n // (даже если есть LeadTaskId, т.е. \"обрывки\" цепочек).\n const tasks = this.tasks.filter(\n (task) =>\n !task.leadTaskId ||\n !this.tasks.find((leadTask) => leadTask.id === task.leadTaskId),\n );\n\n addLevel(tasks);\n } else {\n const entries = orderBy(\n this.entries,\n ['added', 'date', 'created'],\n ['desc', 'asc', 'asc'],\n );\n\n entries.forEach((entry) => {\n lines.push({\n ...entry,\n indent: 0,\n id: Guid.generate(),\n originalId: entry.id,\n isTaskGroup: false,\n });\n });\n }\n\n // Скорректировать структуру формы грида.\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n\n // Для задачи в нужной позиции есть группа.\n if (line.id === this.formArray.at(index)?.value.id) {\n continue;\n }\n\n const groupIndex = findIndex(\n this.formArray.value,\n (r: any) => r.id === line.id,\n index + 1,\n );\n\n // Группы нет в списке вообще.\n if (groupIndex === -1) {\n this.formArray.insert(index, this.getLineGroup());\n continue;\n }\n\n // Группа есть, но дальше.\n const group = this.formArray.at(groupIndex);\n this.formArray.removeAt(groupIndex);\n this.formArray.insert(index, group);\n }\n\n // Загрузить данные в форму.\n this.formArray.patchValue(lines, { emitEvent: false });\n\n // Отработать изменение в гриде.\n this.gridService.detectChanges();\n\n if (this.readonly) {\n this.formArray.disable({ emitEvent: false });\n }\n\n this.autosave.disabled = false;\n }\n\n /** Применяет итоги по задачам без обновления структуры. */\n private applyTotals(tasksToApply: ProjectTask[]) {\n const applyTotals = (tasks: ProjectTask[]) => {\n tasks.forEach((task) => {\n const groupIndex = (this.formArray.value as any[]).findIndex(\n (l) => l.isTaskGroup && l.projectTask?.id === task.id,\n );\n\n if (groupIndex !== -1) {\n const group = this.formArray.at(groupIndex) as UntypedFormGroup;\n\n group.controls['amount'].setValue(this.tasksAmounts[task.id].amount, {\n emitEvent: false,\n });\n }\n\n const children = this.tasks.filter((t) => t.leadTaskId === task.id);\n applyTotals(children);\n });\n };\n\n applyTotals(tasksToApply);\n\n this.gridService.detectChanges();\n }\n\n /** Возвращает локализованный заголовок текущей группировки. */\n public getCurrentGroupingLabel(): string {\n return this.translate.instant(\n `projects.projects.card.finance.grouping.${this.settings?.grouping}`,\n );\n }\n\n /** Изменение группировки строк. */\n public setGrouping(grouping: any) {\n this.settings.grouping = grouping;\n this.localStorageService.store(this.storageSettingsName, this.settings);\n\n this.updateFormArray();\n }\n\n setReadonly(readonly: boolean) {\n this.readonly =\n readonly || !this.versionCardService.projectVersion.editAllowed;\n if (this.readonly) {\n this.formArray.disable();\n this.gridService.detectChanges();\n }\n }\n\n updateWorkProjectVersionFlag() {\n this._isWorkProjectVersion = this.versionCardService.isWorkProjectVersion();\n }\n\n createAct(group: UntypedFormGroup) {\n this.blockUI.start();\n const data = {\n date: DateTime.now().toISODate(),\n number: null,\n name: 'new',\n projectId: this.entityId,\n\n lines: [\n {\n description: group.value.description,\n amount: group.value.amount,\n projectTaskId: group.value.projectTask?.id ?? null,\n },\n ],\n };\n\n this.data\n .collection('ActsOfAcceptance')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.blockUI.stop();\n this.notification.successLocal('acts.creation.messages.created');\n\n this.state.go('actOfAcceptance', {\n entityId: response.id,\n routeMode: RouteMode.continue,\n });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n init() {\n this.settings = this.localStorageService.retrieve(this.storageSettingsName);\n if (!this.settings) {\n this.settings = {\n grouping: 'none',\n };\n this.localStorageService.store(this.storageSettingsName, this.settings);\n }\n\n this.autosave.error$.subscribe(() => this.load());\n\n this.projectCardService.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((project) => {\n this.project = project;\n\n this._revenueEstimateEditAllowed =\n this.versionCardService.projectVersion.editAllowed &&\n project.revenueEstimateEditAllowed &&\n project.financeViewAllowed &&\n this.app.checkFeature(Feature.finance);\n\n const amountColumn = this.gridOptions.view.columns.find(\n (column) => column.name === 'amount',\n ) as GridCurrencyColumn;\n amountColumn.currencyCode = this.project.currency.alpha3Code;\n });\n\n this.load();\n this.loadMainTask();\n }\n\n private getQuery() {\n const query: any = {\n select: ['id', 'created', 'date', 'amount', 'description'],\n expand: {\n projectTask: {\n select: [\n 'id',\n 'created',\n 'name',\n 'indent',\n 'leadTaskId',\n 'structNumber',\n ],\n },\n },\n orderBy: ['date', 'created'],\n };\n\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n this.versionCardService.projectVersion,\n this.entityId,\n );\n\n return query;\n }\n\n private clear() {\n this.messageService\n .confirmLocal('projects.actions.clearDataConfirmation')\n .then(\n () => {\n this.blockUI.start();\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.entityId,\n )\n .action('ClearRevenueEstimates')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'shared2.messages.dataSuccessfullyDeleted',\n );\n this.blockUI.stop();\n this.projectCardService.reloadTab();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n ngOnDestroy(): void {\n this.loadingSubscription?.unsubscribe();\n this.toggleTaskIdSubscription?.unsubscribe();\n this.destroyed$.next();\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { ProjectRevenueEstimatesService } from '../project-revenue-estimates.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\n\n@Component({\n selector: 'wp-project-revenue-toolbar',\n templateUrl: './project-revenue-toolbar.component.html',\n standalone: false,\n})\nexport class ProjectRevenueToolbarComponent extends AbstractToolbar {\n constructor(\n public revenueEstimatesService: ProjectRevenueEstimatesService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public addEntry() {\n this.gridService.execute('addEntry');\n }\n\n public recognize() {\n this.gridService.execute('recognize');\n }\n}\n","
    \n \n @if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n \n \n \n \n \n
    \n }\n\n
    \n @if (!(gridService.readonly$ | async) && revenueEstimatesService.isWorkProjectVersion) {\n \n {{ 'projects.projects.card.revenue.actions.createAct' | translate }}\n \n }\n\n @if (!(gridService.readonly$ | async)) {\n \n {{ 'shared.actions.clear' | translate }}\n \n }\n\n @if (revenueEstimatesService.revenueEstimateEditAllowed) {\n \n {{ 'projects.projects.revenues.actions.addRevenue' | translate }}\n \n }\n
    \n\n
    \n
    \n \n {{ revenueEstimatesService.getCurrentGroupingLabel() }}\n \n
    \n \n {{ 'projects.projects.card.finance.grouping.none' | translate }}\n \n \n {{ 'projects.projects.card.finance.grouping.byTasks' | translate }}\n \n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectRevenueEstimate } from 'src/app/shared/models/entities/projects/project-revenue-estimate.model';\n\n@Component({\n selector: 'wp-project-revenue-modal-modal',\n templateUrl: './project-revenue-modal.component.html',\n standalone: false,\n})\nexport class ProjectRevenueModalComponent implements OnInit {\n @Input() entry: ProjectRevenueEstimate;\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() readonly: boolean;\n @Input() projectCurrencyCode: string;\n\n public form = this.fb.group({\n id: null,\n date: [null, Validators.required],\n amount: [null, Validators.required],\n description: [null, [Validators.maxLength(Constants.formTextMaxLength)]],\n projectTask: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.activeModal.close(this.form.value);\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.form.patchValue(this.entry);\n if (this.readonly) {\n this.form.disable();\n }\n }\n}\n","
    \n
    \n

    {{ 'projects.projects.card.revenue.modal.header' | translate }}

    \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { RbcViewSwitcherComponent } from './rbc-view-switcher/rbc-view-switcher.component';\n\n@NgModule({\n declarations: [RbcViewSwitcherComponent],\n imports: [CommonModule, SharedModule],\n providers: [],\n exports: [RbcViewSwitcherComponent],\n})\nexport class ProjectRbcSharedModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StateService } from '@uirouter/angular';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectCardService } from '../../../core/project-card.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-rbc-view-switcher',\n templateUrl: './rbc-view-switcher.component.html',\n styleUrls: ['./rbc-view-switcher.component.scss'],\n standalone: false,\n})\nexport class RbcViewSwitcherComponent implements OnInit {\n public control = new FormControl('calendar');\n\n constructor(\n private state: StateService,\n public projectCardService: ProjectCardService,\n ) {}\n\n ngOnInit(): void {\n switch (this.state.current.name) {\n case 'project.rbc.calendar':\n this.control.setValue('calendar');\n break;\n case 'project.rbc.revenue':\n this.control.setValue('revenue');\n break;\n case 'project.rbc.billing':\n this.control.setValue('billing');\n break;\n }\n\n this.control.valueChanges.subscribe(() => {\n this.state.go(`project.rbc.${this.control.value}`, {\n routeMode: RouteMode.keep,\n });\n });\n\n this.projectCardService.project$.subscribe((project: Project) => {\n if (\n !project.financeViewAllowed &&\n this.state.current.name === 'project.rbc.calendar'\n ) {\n if (project.revenueEstimateViewAllowed) {\n this.control.setValue('revenue');\n } else {\n this.control.setValue('billing');\n }\n }\n });\n }\n}\n","
    \n \n \n \n \n\n \n \n \n \n\n \n \n \n
    \n","import { DestroyRef, Inject, inject, Injectable } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { firstValueFrom, Subscription } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { QueueEntry } from '../models/view-data/queue-entry.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Total } from '../models/view-data/total.model';\nimport {\n ResourceGroup,\n ResourceRequestGroup,\n} from '../models/view-data/resource-group.model';\nimport { TaskLine } from '../models/view-data/task-line.model';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { Interval } from 'luxon';\nimport { ResourcePlanTaskData } from 'src/app/projects/card/project-resources/models/project-resources-data.model';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ResourceRequirementsData } from 'src/app/projects/card/project-resource-requirements/models/data/resource-requirements-data.model';\nimport { ResourceGroupData } from 'src/app/projects/card/project-resource-requirements/models/data/resource-group-data.model';\nimport _ from 'lodash';\nimport { ResourceViewGroupLineEntry } from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { ResourceRequestTemplate } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Injectable()\nexport class ResourceRequirementsDataService {\n /** Prevents sending of entriesToSave to saving queueService. */\n public isAddToSavePrevented: boolean;\n\n private loadingSubscription: Subscription;\n\n private entriesQueueId = Guid.generate();\n private entriesToSave: QueueEntry[] = [];\n private entriesToSaveScale: PlanningScale;\n\n public groups: ResourceGroup[] = [];\n public groupsByResourceRequest: ResourceRequestGroup[] = [];\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId,\n private data: DataService,\n public autosave: SavingQueueService,\n private notification: NotificationService,\n private translateService: TranslateService,\n ) {}\n\n /** Service initialization. */\n public init() {\n this.autosave.delayDuration = 0;\n\n this.autosave.save$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.entriesToSave = this.entriesToSave.filter(\n (entryToSave: QueueEntry) =>\n !data.entries.some(\n (entry: QueueEntry) =>\n entry.date === entryToSave.date &&\n entry.taskId === entryToSave.taskId &&\n entry.teamMemberId === entryToSave.teamMemberId,\n ),\n );\n if (this.isAddToSavePrevented) {\n this.saveCurrentEntriesToSave();\n }\n });\n }\n\n public addEntryToQueue(\n entry: ResourceViewGroupLineEntry,\n taskId: string,\n teamMemberId: string,\n scale: PlanningScale,\n ) {\n let queueEntry = this.entriesToSave.find((e) => e.id === entry.id);\n\n if (!queueEntry) {\n queueEntry = {\n id: entry.id,\n date: entry.date,\n hours: null,\n taskId,\n teamMemberId,\n };\n\n this.entriesToSave = this.entriesToSave.filter(\n (entryToSave: QueueEntry) =>\n entryToSave.date !== queueEntry.date ||\n entryToSave.teamMemberId !== queueEntry.teamMemberId ||\n entryToSave.taskId !== queueEntry.taskId,\n );\n\n this.entriesToSave.push(queueEntry);\n }\n\n queueEntry.hours = entry.hours ?? null;\n\n const dataToSave = _.cloneDeep(this.entriesToSave);\n\n dataToSave.forEach((e) => {\n if (e.hours === null) {\n e.hours = 0;\n }\n delete e.id;\n });\n\n this.entriesToSaveScale = scale;\n\n if (!this.isAddToSavePrevented) {\n this.autosave.addToQueue(\n this.entriesQueueId,\n this.data\n .collection('Projects')\n .entity(this.projectId)\n .action('UpdateResourcePlan')\n .execute({\n scale,\n entries: dataToSave,\n }),\n );\n this.isAddToSavePrevented = true;\n }\n }\n\n /** Sends current entriesToSave to saving queue service. */\n public saveCurrentEntriesToSave() {\n if (!this.autosave.isSaving) {\n this.isAddToSavePrevented = false;\n const dataToSave = _.cloneDeep(this.entriesToSave);\n\n dataToSave.forEach((e) => {\n if (e.hours === null) {\n e.hours = 0;\n }\n delete e.id;\n });\n\n if (this.entriesToSave.length) {\n this.autosave.addToQueue(\n this.entriesQueueId,\n this.data\n .collection('Projects')\n .entity(this.projectId)\n .action('UpdateResourcePlan')\n .execute({\n scale: this.entriesToSaveScale,\n entries: dataToSave,\n }),\n );\n }\n }\n }\n\n public async save(): Promise {\n await this.autosave.save();\n this.entriesToSave = [];\n }\n\n /* Загружает данные для определенного интервала */\n public loadFrame(\n interval: Interval,\n planningScale: PlanningScale,\n slots: Slot[],\n ): Promise {\n return this.loadResourceGroups(interval, planningScale, slots, false);\n }\n\n public loadResourceGroups(\n interval: Interval,\n scale: PlanningScale,\n slots: Slot[],\n rebuild = true,\n ): Promise {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n // Сохранить состояние групп.\n const expandedGroupIds = this.groups\n .filter((g) => g.isExpanded)\n .map((g) => g.id);\n\n const expandedEstimateGroupIds = this.groups\n .filter((g) => g.isEstimateExpanded)\n .map((g) => g.id);\n\n const expandedRequestsGroupIds = this.groupsByResourceRequest\n .filter((g) => g.isExpanded)\n .map((g) => g.id);\n\n if (rebuild) {\n this.groups = [];\n }\n const params = {\n scale: `WP.PlanningScale'${scale}'`,\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n };\n\n return new Promise((resolve, reject) => {\n this.loadingSubscription = this.data\n .collection('Projects')\n .entity(this.projectId)\n .function('GetResourceRequirementsPlan')\n .query(params)\n .subscribe({\n next: (planData) => {\n this.buildGroups(planData, slots, scale);\n this.buildRequestGroups(planData);\n\n this.groupsByResourceRequest.forEach((r) => {\n r.isExpanded = expandedRequestsGroupIds.includes(r.id);\n });\n\n if (this.groupsByResourceRequest.length === 1) {\n this.groupsByResourceRequest[0].isExpanded = true;\n }\n\n this.groups.forEach((g) => {\n g.isExpanded = expandedGroupIds.includes(g.id);\n g.isEstimateExpanded = expandedEstimateGroupIds.includes(g.id);\n });\n\n resolve(this.groups);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n reject();\n },\n });\n });\n }\n\n /**\n * Create resource request.\n *\n * @param teamMemberId TeamMember ID.\n * @returns Data from create request.\n *\n * */\n public async createResourceRequest(teamMemberId: string): Promise {\n try {\n const [template, requestedHours] = await Promise.all([\n firstValueFrom(\n this.data\n .collection('ProjectTeamMembers')\n .entity(teamMemberId)\n .function('GetResourceRequestTemplate')\n .get(),\n ),\n firstValueFrom(\n this.data\n .collection('ProjectTeamMembers')\n .entity(teamMemberId)\n .function('GetGroupedResourcePlanEntries')\n .query({\n scale: `WP.PlanningScale'${PlanningScale.Day}'`,\n }),\n ),\n ]);\n\n const dataToSave = {\n from: template?.from,\n to: template?.to,\n roleId: template?.role?.id ?? null,\n resourcePoolId: template?.resourcePool?.id ?? null,\n projectId: template?.project?.id ?? null,\n teamMemberId: template?.teamMemberId ?? null,\n gradeId: template?.grade?.id ?? null,\n levelId: template?.level?.id ?? null,\n locationId: template?.location?.id ?? null,\n name: '',\n note: '',\n resourceDescription: '',\n scale: PlanningScale.Day,\n requirementEntries: requestedHours,\n };\n\n return await firstValueFrom(\n this.data.collection('ResourceRequests').insert(dataToSave, {\n expand: 'state',\n }),\n );\n } catch (error) {\n this.notification.errorLocal('shared.unknownError');\n return null;\n }\n }\n\n /**\n * Gets group by team member.\n *\n * @param id Team member id.\n * @returns Group with Resource.\n */\n public getGroupByTeamMember(id: string): ResourceGroup {\n return this.groups.find((el) => el.teamMemberId === id);\n }\n\n private buildGroups(\n planData: ResourceRequirementsData,\n slots: Slot[],\n scale: PlanningScale,\n ): void {\n let viewGroups: ResourceGroup[] = [];\n planData.groups.forEach((dataGroup) => {\n const group = this.buildGroup(planData, dataGroup);\n group.totals = this.buildTotals(\n slots,\n scale,\n group.schedule,\n planData.fteSchedule,\n group.totals,\n );\n group.estimateTotals = this.buildTotals(\n slots,\n scale,\n group.schedule,\n planData.fteSchedule,\n group.estimateTotals,\n );\n if (group.resource.type === ResourceType.user) {\n group.availabilityHours = this.buildResourceEntries(\n group.availabilityHours,\n dataGroup.availabilityHours,\n scale,\n slots,\n group.schedule,\n planData.fteSchedule,\n );\n group.bookedHours = this.buildResourceEntries(\n group.bookedHours,\n dataGroup.bookedHours,\n scale,\n slots,\n group.schedule,\n planData.fteSchedule,\n );\n }\n const lines = this.buildLines(planData, dataGroup, group, scale, slots);\n group.tasks.push(...lines);\n const leadTaskLine = group.tasks.find((l) => !l.taskNumber);\n group.tasks = (leadTaskLine ? [leadTaskLine] : []).concat(\n group.tasks.filter((l) => l.taskNumber).sort(naturalSort('name')),\n );\n viewGroups.push(group);\n });\n\n const genericGroups = viewGroups\n .filter((g) => g.resource.type === ResourceType.generic)\n .sort(naturalSort('name'));\n const resourceGroups = viewGroups\n .filter((g) => g.resource.type === ResourceType.user)\n .sort(naturalSort('name'));\n viewGroups = [...genericGroups, ...resourceGroups];\n this.groups = viewGroups;\n }\n\n private buildGroup(\n planData: ResourceRequirementsData,\n dataGroup: ResourceGroupData,\n ): ResourceGroup {\n const resource = planData.resources.find(\n (t) => t.id === dataGroup.resourceId,\n );\n const teamMember = planData.teamMembers.find(\n (tm) => tm.id === dataGroup.teamMemberId,\n );\n const cachedGroup = this.groups.find(\n (g) => g.id === dataGroup.teamMemberId,\n );\n\n const group =\n cachedGroup ??\n ({\n resource,\n name: resource?.name,\n id: teamMember.id,\n teamMemberId: dataGroup.teamMemberId,\n isActive: dataGroup.isActive,\n bookedHoursTotal: dataGroup.bookedHoursTotal,\n bookedHours: [],\n estimateTotal: 0,\n totals: [],\n estimateTotals: [],\n availabilityHours: [],\n tasks: [],\n states: {\n selected: false,\n pending: false,\n },\n } as ResourceGroup);\n\n group.resourceRequests = dataGroup.resourceRequests;\n\n //TODO: check after added resources in API response for generic type groups\n const frameSchedule =\n dataGroup.resourceId && resource.type === ResourceType.user\n ? resource.schedule\n : planData.fteSchedule;\n\n group.schedule = _.uniqBy(\n [...(group.schedule ?? []), ...frameSchedule],\n 'date',\n );\n\n return group;\n }\n\n private buildTotals(\n slots: Slot[],\n scale: PlanningScale,\n schedule: DateHours[],\n fteSchedule: DateHours[],\n totals: Total[],\n ): Total[] {\n const newTotals = [];\n slots.forEach((slot) => {\n const cachedTotal = totals.find((t) => t.slotId === slot.id);\n\n if (cachedTotal) {\n newTotals.push(cachedTotal);\n return;\n }\n\n const slotDate = slot.date.toISODate();\n const total = {\n id: Guid.generate(),\n slotId: slot.id,\n date: slotDate,\n hours: 0,\n nonWorking: false,\n } as Total;\n\n const scheduleDay = schedule.find((t) => t.date === slotDate);\n total.scheduleHours = scheduleDay?.hours ?? 0;\n\n if (scale === PlanningScale.Day) {\n total.nonWorking = !scheduleDay?.hours;\n }\n\n total.fteHours = fteSchedule.find((t) => t.date === slotDate).hours;\n\n newTotals.push(total);\n });\n\n return newTotals;\n }\n\n private buildResourceEntries(\n groupEntries: ResourceViewGroupLineEntry[],\n dataEntries: DateHours[],\n scale: PlanningScale,\n slots: Slot[],\n schedule: DateHours[],\n fteSchedule: DateHours[],\n ): ResourceViewGroupLineEntry[] {\n const entries = [];\n slots.forEach((slot) => {\n const slotDate = slot.date.toISODate();\n const groupEntry = groupEntries.find((t) => t.date === slotDate);\n const dataEntry = dataEntries.find((t) => t.date === slotDate);\n\n if (groupEntry) {\n if (dataEntry) {\n groupEntry.hours = dataEntry.hours;\n }\n entries.push(groupEntry);\n return;\n }\n\n const entry: ResourceViewGroupLineEntry = {\n id: Guid.generate(),\n date: slot.date.toISODate(),\n hours: dataEntry ? dataEntry.hours : 0,\n title: '',\n nonWorking: false,\n scheduleHours: 0,\n fteHours: 0,\n isActual: null,\n };\n\n const scheduleDay = schedule.find(\n (t) => t.date === slot.date.toISODate(),\n );\n if (scale === 'Day') {\n entry.nonWorking = !scheduleDay || scheduleDay.hours === 0;\n }\n\n entry.scheduleHours = scheduleDay ? scheduleDay.hours : 0;\n entry.fteHours = fteSchedule.find(\n (t) => t.date === slot.date.toISODate(),\n ).hours;\n\n entries.push(entry);\n });\n return entries;\n }\n\n private buildLines(\n planData: ResourceRequirementsData,\n dataGroup: ResourceGroupData,\n group: ResourceGroup,\n scale: PlanningScale,\n slots: Slot[],\n ): TaskLine[] {\n const lines = [];\n dataGroup.tasks.forEach((taskData) => {\n const task = planData.tasks.find((t) => t.id === taskData.taskId);\n\n const cachedLine = group.tasks.find((t) => t.taskId === taskData.taskId);\n\n const line =\n cachedLine ??\n ({\n id: Guid.generate(),\n total: taskData.totalHours,\n taskId: taskData.taskId,\n taskNumber: task.number,\n isActive: taskData.isActive,\n extraTotal: 0, // Сумма часов по задаче, помимо суммы за выбранный период.\n name: task.number ? task.number + ' ' + task.name : task.name,\n entries: [],\n isSummaryTask: task.isSummary,\n } as TaskLine);\n\n if (!cachedLine) {\n lines.push(line);\n }\n });\n\n [...group.tasks, ...lines].forEach((line: TaskLine) => {\n const taskData = dataGroup.tasks.find((t) => t.taskId === line.taskId);\n const entries = this.buildEntries(\n planData,\n group,\n taskData,\n line,\n scale,\n slots,\n );\n line.extraTotal = line.total - _.sumBy(entries, 'hours');\n line.entries = entries;\n });\n\n return lines;\n }\n\n private buildEntries(\n planData: ResourceRequirementsData,\n group: ResourceGroup,\n taskData: ResourcePlanTaskData,\n line: TaskLine,\n scale: PlanningScale,\n slots: Slot[],\n ) {\n const entries = [];\n slots.forEach((slot) => {\n const slotDate = slot.date.toISODate();\n const cachedEntry = line.entries.find((t) => t.date === slotDate);\n if (cachedEntry) {\n entries.push(cachedEntry);\n return;\n }\n\n const entry = {\n id: Guid.generate(),\n date: slotDate,\n hours: 0,\n nonWorking: false,\n scheduleHours: 0,\n fteHours: 0,\n limitHours: 24,\n } as ResourceViewGroupLineEntry;\n\n const plannedEntry = (taskData?.planEntries ?? []).find(\n (t) => t.date === slotDate,\n );\n if (plannedEntry) {\n entry.hours = plannedEntry.hours;\n }\n\n const scheduleDay = group.schedule.find((t) => t.date === slotDate);\n if (scale === PlanningScale.Day) {\n entry.nonWorking = !scheduleDay || scheduleDay.hours === 0;\n }\n\n entry.scheduleHours = scheduleDay?.hours ?? 0;\n entry.fteHours = planData.fteSchedule.find(\n (t) => t.date === slot.date.toISODate(),\n )?.hours;\n\n entries.push(entry);\n });\n\n return entries;\n }\n\n private buildRequestGroups(planData: ResourceRequirementsData): void {\n this.groupsByResourceRequest = planData.resourceRequestForGrouping;\n this.groupsByResourceRequest.forEach((g) => {\n g.selectedTeamMemberIds.unshift(g.teamMemberId);\n });\n this.groupsByResourceRequest.push({\n id: 'no-request',\n teamMemberId: null,\n name: this.translateService.instant(\n 'projects.projects.card.resources.columns.withoutRequests',\n ),\n selectedTeamMemberIds: planData.groups\n .filter((g) => {\n let withoutRequest = true;\n\n for (const request of planData.resourceRequestForGrouping) {\n if (\n request.teamMemberId === g.teamMemberId ||\n request.selectedTeamMemberIds.includes(g.teamMemberId)\n ) {\n withoutRequest = false;\n break;\n }\n }\n\n return withoutRequest;\n })\n .map((g) => g.teamMemberId),\n });\n }\n}\n","import { DestroyRef, Inject, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport {\n RequirementsViewMode,\n ResourceRequirementsSettings,\n} from 'src/app/projects/card/project-resource-requirements/models/resource-requirements-settings.model';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ResourceRequirementsDataService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements-data.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { StateService } from '@uirouter/core';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { EntityFilter } from 'src/app/core/navigation.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class ResourceRequirementsService {\n public slots: Slot[];\n public slotGroups: SlotGroup[];\n public readonly: boolean;\n\n // Observables\n private toggleSubject = new Subject();\n public toggle$ = this.toggleSubject.asObservable();\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n private reloadSubject = new BehaviorSubject(null);\n public reload$ = this.reloadSubject.asObservable();\n public selected$ = new Subject();\n public loading$ = new BehaviorSubject(true);\n public frameLoading$ = new BehaviorSubject(false);\n\n private settings: ResourceRequirementsSettings;\n private interval: Interval;\n private project: Project;\n private readonly destroyRef = inject(DestroyRef);\n\n public get planningScale(): PlanningScale {\n return this.settings.planningScale;\n }\n\n public get valueMode(): ValueMode {\n return this.settings.valueMode;\n }\n\n public get currentViewMode(): string {\n return this.settings.viewMode;\n }\n\n constructor(\n @Inject('entityId') public projectId,\n private dataService: ResourceRequirementsDataService,\n private navigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private projectCardService: ProjectCardService,\n private freezeTableService: FreezeTableService,\n private blockUI: BlockUIService,\n private state: StateService,\n private autosave: SavingQueueService,\n ) {}\n\n /** Emits check changes */\n public emitChanges(): void {\n this.changesSubject.next();\n }\n\n /** Reloads data. */\n public reload(toDate?: DateTime) {\n this.settings = this.localConfigService.getConfig(\n ResourceRequirementsSettings,\n );\n this.settings.planningScale = this.navigationService.planningScale;\n this.interval = this.navigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n this.updateDates();\n this.load();\n }\n\n /**\n * Returns table width.\n *\n * @param slotWidth - width of one cell. Optional, otherwise getSlotWidth() service function is used.\n * @param countOfSlots - number of cells. Optional, otherwise slots service variable is used.\n */\n public getTableWidth(\n slotWidth: number = this.getSlotWidth(),\n countOfSlots: number = this.slots.length,\n ): number {\n return slotWidth * countOfSlots;\n }\n\n /**\n * Returns slot width.\n *\n * @param planningScale planning scale. Optional, otherwise service settings are used.\n * */\n public getSlotWidth(\n planningScale: PlanningScale = this.settings.planningScale,\n ): number {\n switch (planningScale) {\n case PlanningScale.Day:\n return 55;\n case PlanningScale.Week:\n return 75;\n case PlanningScale.Month:\n return 90;\n case PlanningScale.Quarter:\n return 120;\n case PlanningScale.Year:\n return 90;\n }\n }\n\n /** Initializes service. */\n public init() {\n this.projectCardService.project$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((project) => {\n this.project = project;\n });\n this.autosave.save$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.updateSavedEntries(data.entries);\n });\n\n this.navigationService.init(ScheduleNavigationContext.ResourceRequirements);\n this.settings = this.localConfigService.getConfig(\n ResourceRequirementsSettings,\n );\n\n this.navigationService.next$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.dataService.save().then(() => this.loadFrame('right')),\n );\n this.navigationService.previous$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.dataService.save().then(() => this.loadFrame('left')),\n );\n this.navigationService.jump$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((date) =>\n this.dataService.save().then(() => this.reload(date)),\n );\n this.navigationService.valueMode$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n this.navigationService.planningScale$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n this.projectCardService.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n\n this.reload();\n }\n\n /**\n * Triggers toggleSubject for refreshing left & right group table component.\n *\n * @param id - group Id.\n */\n public toggleGroup(id: string): void {\n this.toggleSubject.next(id);\n }\n\n /**\n * Navigates to project resource requests.\n * */\n public goToResourceRequests(): void {\n this.state.go(`resourceRequests`, {\n view: 'all',\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.project.name,\n filter: [{ projectId: { type: 'guid', value: this.project.id } }],\n }),\n });\n }\n\n /** Creates resource requests for selected groups */\n public async createResourceRequests(): Promise {\n this.blockUI.start();\n\n const groups = this.dataService.groups.filter((group) => {\n if (group.states.selected) {\n group.states.pending = true;\n return true;\n } else {\n return false;\n }\n });\n\n this.changesSubject.next();\n\n for (const group of groups) {\n const result: Partial =\n await this.dataService.createResourceRequest(group.teamMemberId);\n\n group.states.pending = false;\n group.states.selected = false;\n\n if (result) {\n group.resourceRequests = [].concat(group.resourceRequests).concat([\n {\n id: result.id,\n name: result.name,\n created: result.created,\n requestedHours: result.requestedHours,\n state: result.state,\n },\n ]);\n }\n }\n\n this.blockUI.stop();\n this.changesSubject.next();\n }\n\n /**\n * Saves view mode.\n *\n * @param viewMode 'default' or 'request-group'.\n */\n public setViewMode(viewMode: RequirementsViewMode): void {\n this.settings.viewMode = viewMode;\n this.localConfigService.setConfig(\n ResourceRequirementsSettings,\n Object.assign(this.settings, { viewMode }),\n );\n }\n\n /** Loads resource requirements data. */\n private load(): void {\n this.loading$.next(true);\n\n this.dataService\n .loadResourceGroups(this.interval, this.planningScale, this.slots)\n .then(() => {\n this.changesSubject.next();\n this.loading$.next(false);\n });\n }\n\n /** Updates the selected period start and end dates, slots, and period set in a quick selection. */\n private updateDates(): void {\n const slotInfo = this.navigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n }\n\n /** Loads the data frame for the specified direction.\n *\n * @direction: 'left' | 'right' - direction of loading.\n * */\n private loadFrame(direction: 'left' | 'right'): void {\n this.frameLoading$.next(true);\n this.blockUI.start();\n\n let shift: DurationLike;\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n case PlanningScale.Quarter:\n shift = { year: 1 };\n break;\n case PlanningScale.Year:\n shift = { year: 2 };\n break;\n }\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n this.updateDates();\n\n this.dataService\n .loadFrame(loadingInterval, this.settings.planningScale, this.slots)\n .then(() => {\n this.frameLoading$.next(false);\n this.blockUI.stop();\n this.changesSubject.next();\n\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n });\n }\n\n /** Updates saved entries in the calendar.\n *\n * @param entries saved entries.\n */\n private updateSavedEntries(entries: any[]): void {\n entries.forEach((saved) => {\n const group = this.dataService.groups.find(\n (g) => g.id === saved.teamMemberId,\n );\n if (!group) {\n return;\n }\n\n const taskLine = group.tasks.find((l) => l.taskId === saved.taskId);\n const entry = taskLine?.entries.find((e) => e.date === saved.date);\n if (entry) {\n const prevHours = entry.hours;\n taskLine.total += saved.hours - prevHours;\n entry.cost = saved.cost;\n entry.hours = saved.hours;\n }\n });\n this.changesSubject.next();\n }\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ResourceRequirementsSettings implements BaseSettings {\n public readonly name = 'ResourceRequirementsSettings';\n version: number;\n planningScale: PlanningScale;\n valueMode: ValueMode;\n viewMode: RequirementsViewMode;\n\n getDefault(): ResourceRequirementsSettings {\n return {\n version: 2,\n planningScale: PlanningScale.Week,\n valueMode: ValueMode.Hours,\n viewMode: 'default',\n } as ResourceRequirementsSettings;\n }\n}\n\nexport type RequirementsViewMode = 'default' | 'request-group';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { ProjectCardService } from '../core/project-card.service';\nimport { PlannerCommandService } from 'src/app/shared-features/planner/core/planner-command.service';\nimport { ResourceRequirementsDataService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements-data.service';\nimport { ResourceRequirementsService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResourceRequestGroup } from 'src/app/projects/card/project-resource-requirements/models/view-data/resource-group.model';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n@Component({\n selector: 'wp-project-resource-requirements',\n templateUrl: './project-resource-requirements.component.html',\n styleUrls: ['./project-resource-requirements.component.scss'],\n providers: [\n ResourceRequirementsService,\n ResourceRequirementsDataService,\n ScheduleNavigationService,\n SavingQueueService,\n PlannerCommandService,\n FreezeTableService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectResourceRequirementsComponent implements OnInit {\n @Input() entityId: string;\n @Input() readonly: boolean;\n @Input() periodOffset: number;\n\n public leftTableWidth = 410;\n public selectAllControl = new UntypedFormControl(false);\n public selectedControlCount: number;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public projectCardService: ProjectCardService,\n public service: ResourceRequirementsService,\n public dataService: ResourceRequirementsDataService,\n public navigationService: ScheduleNavigationService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.service.init();\n this.dataService.init();\n\n this.selectAllControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value: boolean) => {\n this.dataService.groups.forEach((group) => {\n group.states.selected = value;\n });\n\n this.selectedControlCount = this.dataService.groups.filter(\n (g) => g.states.selected,\n ).length;\n\n this.service.emitChanges();\n });\n\n this.service.changes$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.service.selected$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.selectedControlCount = this.dataService.groups.filter(\n (g) => g.states.selected,\n ).length;\n\n this.selectAllControl.setValue(\n !this.dataService.groups.some((g) => !g.states.selected),\n { emitEvent: false },\n );\n });\n }\n\n public trackById = (index: number, row: any): string => row.id;\n\n /** Creates resource requests */\n public createResourceRequests(): void {\n this.selectedControlCount = 0;\n this.service.createResourceRequests();\n }\n\n /**\n * Toggles expand state of request group.\n *\n * @param group group for toggle.\n */\n public toggleRequestGroupExpand(group: ResourceRequestGroup): void {\n group.isExpanded = !group.isExpanded;\n }\n}\n","\n
    \n
    \n \n
    \n \n {{ 'projects.projects.card.resourceRequirements.actions.requestList' | translate }}\n \n\n \n \n {{ 'projects.projects.card.resourceRequirements.actions.request' | translate }} ({{\n selectedControlCount\n }})\n \n
    \n
    \n
    \n \n {{\n (service.currentViewMode === 'request-group'\n ? 'projects.projects.card.resources.view.byRequest'\n : 'projects.projects.card.resources.view.default'\n ) | translate\n }}\n \n
    \n \n \n {{ 'projects.projects.card.resources.view.byRequest' | translate }}\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n @if (service.currentViewMode === 'default') {\n \n }\n \n \n \n \n \n \n \n @if (service.currentViewMode === 'default') {\n \n
    \n \n
    \n \n }\n
    \n \n \n \n \n
    \n {{\n (service.currentViewMode === 'request-group'\n ? 'projects.projects.card.resources.columns.resourceByRequest'\n : 'projects.projects.card.resources.columns.resource'\n ) | translate\n }}\n \n {{ 'projects.projects.card.team.columns.request.header' | translate }}\n \n Σ\n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n @if (service.currentViewMode === 'request-group') {\n @for (request of dataService.groupsByResourceRequest; track $index) {\n \n \n \n \n \n \n\n \n @for (teamMemberId of request.selectedTeamMemberIds; track $index) {\n \n }\n \n }\n } @else {\n @for (group of dataService.groups; track group) {\n \n }\n }\n
    \n \n \n {{ request.name }}\n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n \n
    \n\n
    \n \n \n \n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n\n @if (service.currentViewMode === 'request-group') {\n @for (request of dataService.groupsByResourceRequest; track $index) {\n \n \n \n \n \n\n \n @for (teamMemberId of request.selectedTeamMemberIds; track $index) {\n \n }\n \n }\n } @else {\n @for (group of dataService.groups; track group) {\n \n }\n }\n \n
    \n\n
    \n
    \n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectCardSharedModule } from '../shared/project-card-shared.module';\nimport { ProjectResourceRequirementsComponent } from 'src/app/projects/card/project-resource-requirements/project-resource-requirements.component';\nimport { PlannerModule } from 'src/app/shared-features/planner/planner.module';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\n// eslint-disable-next-line max-len\nimport { ResourceRequirementsLeftGroupComponent } from 'src/app/projects/card/project-resource-requirements/resource-requirements-left-group/resource-requirements-left-group.component';\n// eslint-disable-next-line max-len\nimport { ResourceRequirementsRightGroupComponent } from 'src/app/projects/card/project-resource-requirements/resource-requirements-right-group/resource-requirements-right-group.component';\nimport { RequestCellComponent } from 'src/app/projects/card/project-resource-requirements/resource-requirements-left-group/request-cell/request-cell.component';\n\n@NgModule({\n declarations: [\n ProjectResourceRequirementsComponent,\n ResourceRequirementsLeftGroupComponent,\n RequestCellComponent,\n ResourceRequirementsRightGroupComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n PlannerModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.resourceRequirements',\n url: '/resource-requirements',\n component: ProjectResourceRequirementsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ScheduleNavigationModule,\n ],\n})\nexport class ProjectResourceRequirementsModule {}\n","import {\n Component,\n Injector,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nimport { RawParams, StateService } from '@uirouter/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport _ from 'lodash';\n\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { ResourceRequestModalComponent } from 'src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component';\nimport { ProjectTeamService } from 'src/app/projects/card/project-team/project-team.service';\n\n@Component({\n selector: 'tmt-request-cell',\n templateUrl: './request-cell.component.html',\n styleUrls: ['./request-cell.component.scss'],\n providers: [ProjectTeamService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RequestCellComponent implements OnChanges {\n @Input() public resourceRequests: Partial[];\n @Input() public teamMemberId: string;\n\n public stateParams: RawParams = {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n };\n\n constructor(\n private navigationService: NavigationService,\n private stateService: StateService,\n private modal: NgbModal,\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n private translateService: TranslateService,\n private datePipe: DatePipe,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['resourceRequests']) {\n this.resourceRequests = _.orderBy(\n this.resourceRequests,\n [\n (rr) => ResourceRequest.systemStateIds.includes(rr.state.id),\n 'created',\n ],\n ['asc', 'desc'],\n );\n }\n }\n\n /** Opens resource request. */\n public openResourceRequest(requestId: string): void {\n this.stateService.go('resourceRequest', {\n navigation: this.stateParams.navigation,\n routeMode: this.stateParams.routeMode,\n entityId: requestId,\n });\n }\n\n /** Creates resource request. */\n public createRequest(): void {\n const modalRef = this.modal.open(ResourceRequestModalComponent, {\n size: 'xl',\n injector: this.injector,\n });\n\n (modalRef.componentInstance as ResourceRequestModalComponent).teamMemberId =\n this.teamMemberId;\n\n modalRef.result.then(\n (request: ResourceRequest) => {\n this.openResourceRequest(request.id);\n },\n () => null,\n );\n }\n\n public getHint(request: Partial): string {\n return `${request.name}, ${this.translateService.instant(\n 'shared.props.created',\n )}: ${this.datePipe.transform(\n request.created,\n 'shortDate',\n )}, ${this.translateService.instant(\n 'resources.requests.props.requestedHours',\n )}: ${(request.requestedHours ?? 0).toFixed(\n 2,\n )} ${this.translateService.instant('shared.unitHour')}`;\n }\n}\n","\n \n\n\n
    \n
    \n \n\n \n
    \n\n
    \n \n\n
    \n\n \n \n {{ request.created | date: 'shortDate' }}\n \n ({{ request.requestedHours | plannerFormat }} {{ 'shared.unitHour' | translate }})\n \n \n \n \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Injector,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { sumBy } from 'lodash';\nimport { filter } from 'rxjs/operators';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ResourceGroup } from 'src/app/projects/card/project-resource-requirements/models/view-data/resource-group.model';\nimport { ResourceRequirementsService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtResourceRequirementsLeftGroup]',\n templateUrl: './resource-requirements-left-group.component.html',\n styleUrls: ['./resource-requirements-left-group.component.scss'],\n host: {\n class: 'group-left',\n },\n standalone: false,\n})\nexport class ResourceRequirementsLeftGroupComponent implements OnInit {\n @Input({ required: true }) public group: ResourceGroup;\n\n public selectControl: UntypedFormControl = new UntypedFormControl();\n\n private destroyRef = inject(DestroyRef);\n\n trackById = (_: number, row: any): string => row.taskId;\n\n constructor(\n public service: ResourceRequirementsService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.selectControl.setValue(this.group.states.selected, {\n emitEvent: false,\n });\n\n this.selectControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((v) => {\n this.group.states.selected = v;\n this.service.selected$.next(this.group.id);\n });\n\n this.service.toggle$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n filter((id) => id === this.group.id),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n\n this.service.changes$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.selectControl.setValue(this.group.states.selected, {\n emitEvent: false,\n });\n this.recalculateTotals();\n this.cdr.detectChanges();\n });\n\n this.recalculateTotals();\n }\n\n /** Expands or collapses group. */\n public expandGroup() {\n this.group.isExpanded = !this.group.isExpanded;\n this.service.toggleGroup(this.group.id);\n }\n\n /** Expands or collapses group estimate. */\n public expandGroupEstimate() {\n this.group.isEstimateExpanded = !this.group.isEstimateExpanded;\n this.service.toggleGroup(this.group.id);\n }\n\n /** Recalculates tasks totals. */\n public recalculateTotals() {\n this.group.estimateTotal = sumBy(this.group.tasks, 'total');\n }\n\n /** Opens user info popup. */\n public openUserInfo(userId: string) {\n /* Привязка к элементу, у которого виден центр. По умолчанию span */\n const userNameDiv = document.getElementById(userId);\n const userNameDivWidth = userNameDiv.offsetWidth;\n\n const userNameSpan = document.getElementById(`${userId}-name`);\n const userNameSpanWidth = userNameSpan.offsetWidth;\n\n const target =\n userNameDivWidth < userNameSpanWidth ? userNameDiv : userNameSpan;\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n protected readonly ResourceType = ResourceType;\n}\n","\n\n \n
    \n \n
    \n \n \n
    \n \n \n\n \n
    \n \n \n
    \n \n {{ group.name }}\n
    \n
    \n
    \n\n \n \n
    \n
    {{ group.name }}
    \n
    \n
    \n\n \n \n \n \n \n \n \n\n\n\n \n \n \n
    \n \n {{ 'projects.projects.card.resourceRequirements.rows.availability' | translate }}\n \n \n
    \n \n \n \n\n\n\n \n \n \n
    \n \n {{ 'projects.projects.card.resourceRequirements.rows.booked' | translate }}\n \n \n
    \n \n \n {{ group.bookedHoursTotal | plannerFormat }}\n\n\n\n \n \n
    \n \n \n \n
    \n \n {{ 'projects.projects.card.resourceRequirements.rows.estimate' | translate }}\n \n \n
    \n \n \n {{ group.estimateTotal | plannerFormat }}\n\n\n \n \n \n \n \n
    \n
    \n {{ line.name }}\n
    \n
    \n \n \n \n {{ line.total | plannerFormat }}\n \n \n\n \n \n \n \n \n \n \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport { sumBy } from 'lodash';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { ResourceGroup } from 'src/app/projects/card/project-resource-requirements/models/view-data/resource-group.model';\nimport { ResourceRequirementsService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements.service';\nimport { ResourceRequirementsDataService } from 'src/app/projects/card/project-resource-requirements/core/resource-requirements-data.service';\nimport { Subject } from 'rxjs';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtResourceRequirementsRightGroup]',\n templateUrl: './resource-requirements-right-group.component.html',\n styleUrls: ['./resource-requirements-right-group.component.scss'],\n providers: [CellsOrchestratorService],\n standalone: false,\n})\nexport class ResourceRequirementsRightGroupComponent\n implements OnInit, OnDestroy\n{\n @Input({ required: true }) group: ResourceGroup;\n @Input({ required: true }) valueMode: ValueMode;\n @Input({ required: true }) scale: PlanningScale;\n @Input() isShowTaskDuration: boolean;\n\n public formLines: UntypedFormArray = this.fb.array([]);\n public formBooking: UntypedFormArray = this.fb.array([]);\n public propagationMode = PropagationMode;\n\n private wasBuilt = false;\n private destroyed$ = new Subject();\n\n public trackById = (_: number, row: any): string => row.id;\n public trackByValueId = (_: number, row: any): string => row.value.id;\n\n constructor(\n public service: ResourceRequirementsService,\n public projectCardService: ProjectCardService,\n private dataService: ResourceRequirementsDataService,\n private cellsOrchestrator: CellsOrchestratorService,\n private fb: UntypedFormBuilder,\n private changeDetector: ChangeDetectorRef,\n private cellsOrchestratorService: CellsOrchestratorService,\n ) {}\n\n ngOnInit(): void {\n this.service.toggle$\n .pipe(\n takeUntil(this.destroyed$),\n filter((id) => id === this.group.id),\n )\n .subscribe(() => this.rebuild());\n this.service.changes$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.rebuild();\n this.recalculateTotals();\n });\n\n this.cellsOrchestratorService.massValueChangeInProgress$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((inProgress: boolean) => {\n if (inProgress) {\n this.dataService.isAddToSavePrevented = inProgress;\n return;\n }\n if (!inProgress && this.dataService.isAddToSavePrevented) {\n this.dataService.saveCurrentEntriesToSave();\n }\n });\n\n this.rebuild();\n this.recalculateTotals();\n }\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Indicates that requirement hours exceeds available resource capacity.\n *\n * @param hours hours of total cell.\n * @param index cell's number in row.\n * @returns `true` if hours exceeds, `false` otherwise.\n */\n public isRequirementOverAvailable(hours: number, index: number): boolean {\n return (\n this.group.resource &&\n hours > 0 &&\n hours > this.group.availabilityHours[index]?.hours\n );\n }\n\n /** Calculates totals by lines & slots. */\n private recalculateTotals() {\n //Estimate totals\n this.group.estimateTotals.forEach((t) => {\n t.hours = 0;\n });\n this.group.tasks.forEach((line) => {\n line.total = line.extraTotal;\n for (let entryIndex = 0; entryIndex < line.entries.length; entryIndex++) {\n const entry = line.entries[entryIndex];\n if (entry.hours > 0) {\n this.group.estimateTotals[entryIndex].hours += entry.hours;\n line.total += entry.hours;\n }\n }\n });\n //Totals\n this.group.totals.forEach((t, i) => {\n t.hours = this.group.estimateTotals[i].hours;\n });\n if (this.group.resource?.type === 'User') {\n this.group.estimateTotals.forEach((t, index) => {\n this.group.totals[index].hours =\n this.group.estimateTotals[index].hours -\n this.group.bookedHours[index].hours;\n });\n }\n this.group.estimateTotal = sumBy(this.group.tasks, 'total');\n this.changeDetector.detectChanges();\n }\n\n /** Rebuilds form controls. */\n private rebuild() {\n if (!this.group.isExpanded || !this.group.isEstimateExpanded) {\n return;\n }\n if (!this.wasBuilt) {\n this.wasBuilt = true;\n this.rebuildBooking();\n this.rebuildLines();\n }\n if (this.wasBuilt) {\n this.updateBooking();\n this.updateLines();\n }\n this.recalculateTotals();\n }\n\n /** Rebuilds tasks form controls. */\n private rebuildLines() {\n this.formLines = this.fb.array([]);\n for (const line of this.group.tasks) {\n const array = this.fb.array([]);\n this.formLines.push(array);\n\n if (this.projectCardService.isLineBlocked(line)) {\n array.disable({ emitEvent: false });\n }\n for (const entry of line.entries) {\n const control = this.fb.control(entry);\n if (this.projectCardService.isEntryBlocked(entry)) {\n control.disable();\n }\n array.push(control);\n control.valueChanges.subscribe(() => {\n this.dataService.addEntryToQueue(\n control.value,\n line.taskId,\n this.group.teamMemberId,\n this.scale,\n );\n });\n }\n }\n this.cellsOrchestrator.init();\n\n this.formLines.valueChanges.subscribe(() => {\n this.recalculateTotals();\n });\n\n //TODO: c этим определенно нужно что-то придумать\n // if (!this.group.isEditable || this.service.readonly) {\n // this.formLines.disable({ emitEvent: false });\n // }\n\n this.changeDetector.detectChanges();\n }\n\n /** Updates tasks form controls. */\n private updateLines() {\n this.group.tasks.forEach((line, lineIndex) => {\n let formLine = this.formLines.at(lineIndex) as UntypedFormArray;\n if (!formLine) {\n this.wasBuilt = false;\n this.rebuildLines();\n formLine = this.formLines.at(lineIndex) as UntypedFormArray;\n }\n const isLineBlocked = this.projectCardService.isLineBlocked(line);\n isLineBlocked\n ? formLine.disable({ emitEvent: false })\n : formLine.enable({ emitEvent: false });\n\n line.entries.forEach((entry, entryIndex) => {\n const formEntry = formLine.at(entryIndex);\n if (formEntry) {\n formEntry.setValue(entry, { emitEvent: false });\n if (!isLineBlocked) {\n this.projectCardService.isEntryBlocked(entry)\n ? formEntry.disable({ emitEvent: false })\n : formEntry.enable({ emitEvent: false });\n }\n } else {\n const control = this.fb.control(entry);\n if (this.projectCardService.isEntryBlocked(entry)) {\n control.disable({ emitEvent: false });\n }\n formLine.push(control, { emitEvent: false });\n control.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.dataService.addEntryToQueue(\n control.value,\n line.taskId,\n this.group.teamMemberId,\n this.service.planningScale,\n );\n });\n }\n });\n });\n }\n\n /** Rebuilds booking form controls. */\n private updateBooking() {\n this.group.bookedHours.forEach((book, bookIndex) => {\n const formEntry = this.formBooking.at(bookIndex);\n if (formEntry) {\n formEntry.setValue(book, { emitEvent: false });\n } else {\n const control = this.fb.control(book);\n this.formBooking.push(control, { emitEvent: false });\n //TODO: сохранение и права на редактирование букинга\n // control.valueChanges.subscribe(() => {\n // this.dataService.addEntryToQueue(\n // control.value,\n // book.taskId,\n // this.group.teamMemberId,\n // this.service.planningScale\n // );\n // });\n }\n });\n }\n\n /** Updates booking form controls. */\n private rebuildBooking() {\n this.formBooking = this.fb.array([]);\n for (const book of this.group.bookedHours) {\n const control = this.fb.control(book);\n this.formBooking.push(control);\n control.valueChanges.subscribe(() => {\n this.dataService.addEntryToQueue(\n control.value,\n book.taskId,\n this.group.teamMemberId,\n this.scale,\n );\n });\n }\n this.cellsOrchestrator.init();\n\n this.formLines.valueChanges.subscribe(() => {\n this.recalculateTotals();\n });\n\n //TODO: c этим определенно нужно что-то придумать\n // if (!this.group.isEditable || this.service.readonly) {\n // this.formLines.disable({ emitEvent: false });\n // }\n\n this.changeDetector.detectChanges();\n }\n}\n","\n\n @for (total of group.totals; track total) {\n 0,\n negative: total.hours < 0,\n }\"\n [attr.data-test-date]=\"total.date\"\n >\n \n {{ total.hours > 0 ? '+' : null\n }}{{ total.hours | plannerFormat: valueMode : total.scheduleHours : total.fteHours }}\n \n @if (isRequirementOverAvailable(total.hours, $index)) {\n \n }\n \n }\n\n\n \n \n {{ entry.hours | plannerFormat: service.valueMode : entry.scheduleHours : entry.fteHours }}\n \n \n \n \n {{ entry.hours | plannerFormat: service.valueMode : entry.scheduleHours : entry.fteHours }}\n \n \n \n \n {{ total.hours | plannerFormat: valueMode : total.scheduleHours : total.fteHours }}\n \n \n\n\n\n \n \n \n \n\n \n \n {{ 'projects.projects.card.resources.messages.thereAreNoTasks' | translate }}\n \n \n\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { PlannerCommandService } from 'src/app/shared-features/planner/core/planner-command.service';\nimport { Command } from 'src/app/shared-features/planner/models/command.model';\nimport { projectTaskWarnings } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport {\n ResourceViewGroup,\n ResourceViewGroupLine,\n} from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { MovePlanFormComponent } from 'src/app/projects/card/project-resources/move-plan-form/move-plan-form.component';\n\n@Injectable()\nexport class ProjectResourcesCalendarCommandService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n constructor(\n @Inject('entityId') public projectId,\n private modalService: NgbModal,\n private message: MessageService,\n private translate: TranslateService,\n private blockUI: BlockUIService,\n private notification: NotificationService,\n private autosave: SavingQueueService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private plannerCommandService: PlannerCommandService,\n private notificationService: NotificationService,\n private dataService: ProjectResourceDataService,\n ) {\n plannerCommandService.command$.subscribe((command) => {\n this.execute(command);\n });\n }\n\n public getGroupCommands(group: ResourceViewGroup): Command[] {\n const commands: Command[] = [];\n return commands;\n }\n\n public getLineCommands(\n group: ResourceViewGroup,\n line: ResourceViewGroupLine,\n ): Command[] {\n const commands: Command[] = [];\n\n if (!this.dataService.readonly) {\n commands.push({\n title: this.translate.instant(\n 'projects.projects.card.resources.actions.removeAll',\n ),\n name: 'removeResourcePlan',\n line,\n group,\n });\n }\n\n return commands;\n }\n\n public getRequestCommands(): Command[] {\n const commands: Command[] = [];\n return commands;\n }\n\n /** Выполнить команду. */\n public execute(command: Command) {\n this.autosave.save().then(() => {\n switch (command.name) {\n case 'removeResourcePlan':\n this.removeResourcePlan(command['group'], command['line']);\n break;\n }\n });\n }\n\n /** Удалить все данные распределения плана с члена команды. */\n public removeResourcePlan(\n group: ResourceViewGroup,\n line: ResourceViewGroupLine,\n ) {\n this.message\n .confirmLocal(\n 'components.projectResourcesCalendarCommandService.messages.deletionConfirm',\n )\n .then(() => {\n this.blockUI.start();\n\n const data = {\n taskId: line.taskId,\n teamMemberId: group.teamMember.id,\n };\n\n return this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('ClearResourcePlan')\n .execute(data, undefined, {\n undoRedoSessionId: this.dataService.undoRedoSessionId,\n })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'components.projectResourcesCalendarCommandService.messages.entriesWereDeleted',\n );\n this.blockUI.stop();\n group.extraTotal -= line.extraTotal;\n group.totalHours -= line.totalHours;\n group.totalCost -= line.totalCost;\n line.extraTotal = 0;\n line.totalHours = 0;\n line.totalCost = 0;\n line.entries.forEach((entry) => {\n entry.hours = 0;\n entry.cost = 0;\n });\n this.changesSubject.next();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n });\n }\n\n /** Сместить план. */\n public movePlan(\n projectId: string,\n teamMembers: ProjectTeamMember[],\n ): Promise {\n const injector = Injector.create({\n providers: [\n {\n provide: ProjectVersionCardService,\n useValue: this.versionCardService,\n },\n ],\n });\n const ref = this.modalService.open(MovePlanFormComponent, {\n size: 'lg',\n injector,\n });\n const instance = ref.componentInstance as MovePlanFormComponent;\n instance.teamMembers = teamMembers;\n instance.projectId = projectId;\n return ref.result;\n }\n\n /** Очистить план. */\n public clearPlan() {\n this.message\n .confirmLocal('projects.actions.clearDataConfirmationUndoAble')\n .then(() => {\n this.blockUI.start();\n\n return this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('ClearResourcePlan')\n .execute({}, undefined, {\n undoRedoSessionId: this.dataService.undoRedoSessionId,\n })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'shared2.messages.dataSuccessfullyDeleted',\n );\n this.blockUI.stop();\n this.changesSubject.next();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n });\n }\n\n /** Shows warnings.\n *\n * @param warnings warnings after saving.\n */\n public showWarnings(warnings: { [key: string]: boolean }): void {\n projectTaskWarnings.forEach((warning) => {\n if (warnings[warning]) {\n this.notificationService.warningLocal(\n `components.projectTaskWarnings.${warning}`,\n );\n }\n });\n }\n}\n","import { DestroyRef, inject, Inject, Injectable } from '@angular/core';\nimport { sumBy, uniqBy } from 'lodash';\nimport { DateTime, Interval } from 'luxon';\nimport { Subscription } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\nimport { ProjectResourcesHelper } from 'src/app/projects/card/project-resources/core/project-resources.helper';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport {\n ResourcePlanData,\n ResourcePlanEntry,\n ResourcePlanGroupData,\n ResourcePlanTaskData,\n TaskInfo,\n} from 'src/app/projects/card/project-resources/models/project-resources-data.model';\nimport {\n ResourceViewGroup,\n ResourceViewGroupLine,\n ResourceViewGroupLineEntry,\n ResourceViewGroupLineTotal,\n ResourceViewTeamMember,\n} from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class ProjectResourceDataService {\n public undoRedoSessionId: string;\n\n // Cached Data\n public groups: ResourceViewGroup[] = [];\n public teamMembers: ResourceViewTeamMember[] = [];\n public otherActualGroup: ResourceViewGroup | null; // for forecast plan mode\n\n /** Prevents sending of entriesToSave to saving queueService. */\n public isAddToSavePrevented: boolean;\n\n private _isForecastMode: boolean;\n public get isForecastMode(): boolean {\n return this._isForecastMode;\n }\n public set isForecastMode(isForecastMode) {\n this._isForecastMode = isForecastMode;\n }\n\n private _readonly: boolean;\n public get readonly(): boolean {\n return this._readonly;\n }\n\n // Subscriptions\n private loadingSubscription: Subscription;\n\n // Queue\n private entriesQueueId = Guid.generate();\n private entriesToSave: ResourcePlanEntry[] = [];\n private entriesToSaveScale: PlanningScale;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private autosave: SavingQueueService,\n private notification: NotificationService,\n private translate: TranslateService,\n ) {}\n\n /** Service initialization. */\n public init(): void {\n this.autosave.delayDuration = 0;\n\n this.autosave.save$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.entriesToSave = this.entriesToSave.filter(\n (entryToSave: ResourcePlanEntry) =>\n !data.entries.some(\n (entry: ResourcePlanEntry) =>\n entry.date === entryToSave.date &&\n entry.taskId === entryToSave.taskId &&\n entry.teamMemberId === entryToSave.teamMemberId,\n ),\n );\n if (this.isAddToSavePrevented) {\n this.saveCurrentEntriesToSave();\n }\n });\n }\n\n /** Sends current entriesToSave to saving queue service. */\n public saveCurrentEntriesToSave(): void {\n if (!this.autosave.isSaving) {\n this.isAddToSavePrevented = false;\n if (this.entriesToSave.length) {\n this.autosave.addToQueue(\n this.entriesQueueId,\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('UpdateResourcePlan')\n .execute(\n {\n scale: this.entriesToSaveScale,\n entries: this.entriesToSave,\n },\n undefined,\n {\n undoRedoSessionId: this.undoRedoSessionId,\n },\n ),\n );\n }\n }\n }\n\n /**\n * Updates project task dates in the groups lines.\n *\n * @param tasks tasks for updating.\n * @param planningScale planning scale of entries view.\n */\n public updateTasksDates(\n tasks: TaskInfo[],\n planningScale: PlanningScale,\n ): void {\n tasks.forEach((task) => {\n this.groups.forEach((group) => {\n group.lines.forEach((line) => {\n if (line.taskId === task.id) {\n line.entries.forEach((entry) => {\n entry.taskStartDate = task.startDate ?? entry.taskStartDate;\n entry.taskEndDate = task.endDate ?? entry.taskEndDate;\n entry.taskDurationPercent =\n ProjectResourcesHelper.getTaskDurationPercent(\n planningScale,\n entry.date,\n entry.taskStartDate,\n entry.taskEndDate,\n );\n entry.backgroundStyle = ProjectResourcesHelper.getBackgroundStyle(\n entry.taskDurationPercent,\n );\n });\n }\n });\n });\n });\n }\n\n /**\n * Updates readonly state.\n *\n * @param resourcePlanEditAllowed - determines if edit allowed.\n */\n public updateReadOnly(resourcePlanEditAllowed: boolean): void {\n this._readonly =\n !resourcePlanEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n }\n\n /**\n * Loads data from specific interval.\n *\n * @param interval - interval to load data.\n * @param planningScale - data planning scale.\n * @param slots - calendar slots.\n */\n public loadFrame(\n interval: Interval,\n planningScale: PlanningScale,\n slots: Slot[],\n ): Promise {\n return this.loadResourceGroups(interval, planningScale, slots, false);\n }\n\n /** Loads resources. */\n public loadResourceGroups(\n interval: Interval,\n scale: PlanningScale,\n slots: Slot[],\n rebuild = true,\n ): Promise {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n // Save groups states\n const expandedGroupIds = this.groups\n .filter((g) => g.isExpanded)\n .map((g) => g.id);\n\n const params = {\n scale: `WP.PlanningScale'${scale}'`,\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n isForecast: this.isForecastMode ? 'true' : 'false',\n };\n\n return new Promise((resolve, reject) => {\n this.loadingSubscription = this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .function('GetResourcePlan')\n .query(params)\n .subscribe({\n next: (planData) => {\n if (rebuild) {\n this.groups = [];\n this.otherActualGroup = null;\n }\n this.updateTeamMembers(planData);\n this.buildGroups(planData, scale, slots);\n\n // Return groups states\n this.groups.forEach(\n (g) => (g.isExpanded = expandedGroupIds.includes(g.id)),\n );\n\n resolve(this.groups);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n reject();\n },\n });\n });\n }\n\n /**\n * Adds entry to saving queue.\n *\n * @param entry - entry to save.\n * @param line - line entry is from.\n * @param group - group entry is from.\n * @param scale - current scale.\n */\n public addEntryToQueue(\n entry: ResourceViewGroupLineEntry,\n line: ResourceViewGroupLine,\n group: ResourceViewGroup,\n scale: PlanningScale,\n ): void {\n const queueEntry: ResourcePlanEntry = {\n date: entry.date,\n hours: entry.hours ?? null,\n cost: entry.cost,\n taskId: line.taskId,\n teamMemberId: group.teamMember.id,\n };\n if (queueEntry.hours === null) {\n queueEntry.hours = 0;\n queueEntry.cost = 0;\n // NOTE: subtract cost of deleted entry\n line.totalCost -= entry.cost;\n entry.cost = 0;\n }\n\n this.entriesToSave = this.entriesToSave.filter(\n (entryToSave: ResourcePlanEntry) =>\n entryToSave.date !== queueEntry.date ||\n entryToSave.teamMemberId !== queueEntry.teamMemberId ||\n entryToSave.taskId !== queueEntry.taskId,\n );\n this.entriesToSave.push(queueEntry);\n this.entriesToSaveScale = scale;\n\n if (!this.isAddToSavePrevented) {\n this.autosave.addToQueue(\n this.entriesQueueId,\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('UpdateResourcePlan')\n .execute(\n {\n scale,\n entries: this.entriesToSave,\n },\n undefined,\n {\n undoRedoSessionId: this.undoRedoSessionId,\n },\n ),\n );\n this.isAddToSavePrevented = true;\n }\n }\n\n /** Trigger save all entries in queue. */\n public async save(): Promise {\n await this.autosave.save();\n this.entriesToSave = [];\n }\n\n /**\n * Updates team members. Adds new if not present in memory.\n *\n * @param planData - server-side data.\n * @private\n */\n private updateTeamMembers(planData: ResourcePlanData): void {\n planData.teamMembers.forEach((tm) => {\n const cachedTeamMember = this.teamMembers.find((ctm) => ctm.id === tm.id);\n if (cachedTeamMember) {\n return;\n }\n\n const resource = tm.resourceId\n ? planData.resources.find((t) => t.id === tm.resourceId)\n : null;\n this.teamMembers.push({\n id: tm.id,\n resource,\n name: resource?.name,\n });\n });\n }\n\n /**\n * Builds and organizes groups based on plan data, scale, and slots.\n *\n * @param planData - The server-side data containing the plan information.\n * @param scale - The scale at which the planning is being done.\n * @param slots - An array of slots.\n */\n private buildGroups(\n planData: ResourcePlanData,\n scale: PlanningScale,\n slots: Slot[],\n ): void {\n let viewGroups: ResourceViewGroup[] = [];\n planData.groups.forEach((dataGroup) => {\n const group = this.buildGroup(planData, dataGroup);\n group.totals = this.buildTotals(planData, group, scale, slots);\n\n const lines = this.buildLines(planData, dataGroup, group, scale, slots);\n group.lines.push(...lines);\n group.extraTotal = sumBy(group.lines, 'extraTotal');\n\n const leadTaskLine = group.lines.find((l) => !l.taskNumber);\n group.lines = (leadTaskLine ? [leadTaskLine] : []).concat(\n group.lines.filter((l) => l.taskNumber).sort(naturalSort('name')),\n );\n viewGroups.push(group);\n });\n if (this.isForecastMode) {\n // Other Actual Group\n this.otherActualGroup = this.buildOtherGroup(planData, scale, slots);\n } else {\n this.otherActualGroup = null;\n }\n\n const unassignedGroup = viewGroups.filter((g) => !g.resource);\n const genericGroups = viewGroups\n .filter((g) => g.resource?.type === ResourceType.generic)\n .sort(naturalSort('name'));\n const userGroups = viewGroups\n .filter((g) => g.resource?.type === ResourceType.user)\n .sort(naturalSort('name'));\n viewGroups = [...unassignedGroup, ...genericGroups, ...userGroups];\n this.groups = viewGroups;\n }\n\n /**\n * Builds a group based on the plan data and group data.\n *\n * @param planData - The server-side data containing the plan information.\n * @param groupData - The data of the group to be built.\n * @returns The built group.\n */\n private buildGroup(\n planData: ResourcePlanData,\n groupData: ResourcePlanGroupData,\n ): ResourceViewGroup {\n const resource = planData.resources.find(\n (r) => r.id === groupData.resourceId,\n );\n const role = planData.roles.find((r) => r.id === groupData.roleId);\n const teamMember = planData.teamMembers.find(\n (tm) => tm.id === groupData.teamMemberId,\n );\n\n const cachedGroup = this.groups.find(\n (g) => g.id === groupData.teamMemberId,\n );\n const group =\n cachedGroup ??\n ({\n id: teamMember.id,\n name: resource?.name,\n isEditable: true,\n isActive: groupData.isActive,\n totalHours: 0,\n totalCost: 0,\n extraTotal: 0,\n\n resource,\n role,\n teamMember,\n\n lines: [],\n totals: [],\n } as ResourceViewGroup);\n\n const frameSchedule =\n groupData.resourceId && resource.schedule?.length\n ? resource.schedule\n : planData.fteSchedule;\n group.schedule = uniqBy(\n [...(group.schedule ?? []), ...frameSchedule],\n 'date',\n );\n return group;\n }\n\n /**\n * Builds the total hours and costs for each slot in the group.\n *\n * @param planData - The server-side data containing the plan information.\n * @param group - The view group for which to build the totals.\n * @param scale - The current planning scale (e.g., day, week, month).\n * @param slots - The date slots for which to build the totals.\n * @returns An array of ResourceViewGroupLineTotal objects, each representing the total hours and costs for a slot.\n * @private\n */\n private buildTotals(\n planData: ResourcePlanData,\n group: ResourceViewGroup,\n scale: PlanningScale,\n slots: Slot[],\n ): ResourceViewGroupLineTotal[] {\n const totals = [];\n\n // Determine if we are in forecast mode and if there are any slots in the past or today.\n let isActual = this.isForecastMode\n ? slots.some(\n (slot) => slot.date.toISODate() <= DateTime.now().toISODate(),\n )\n : false;\n\n slots.forEach((slot) => {\n // Check if there's a cached total for this slot.\n const cachedTotal = this.isForecastMode\n ? group.totals.find(\n (ct) =>\n ct.slotId === slot.id && !totals.map((t) => t.id).includes(ct.id),\n )\n : group.totals.find((t) => t.slotId === slot.id);\n\n if (cachedTotal) {\n totals.push(cachedTotal);\n // If in forecast mode and the slot is today, mark it as not actual.\n if (slot.today) {\n isActual = false;\n }\n return;\n }\n\n // Create a new total for the slot.\n const slotDate = slot.date.toISODate();\n const total = {\n id: Guid.generate(),\n slotId: slot.id,\n date: slotDate,\n hours: 0,\n nonWorking: false,\n isActual, // For forecast mode\n } as ResourceViewGroupLineTotal;\n // If in forecast mode and the slot is today, mark it as not actual.\n if (slot.today) {\n isActual = false;\n }\n\n // Find the schedule hours for the slot date.\n const viewSchedule = group.schedule.find((s) => s.date === slotDate);\n total.scheduleHours = viewSchedule?.hours ?? 0;\n // Mark the slot as non-working if the scale is day and there are no schedule hours.\n if (scale === PlanningScale.Day) {\n total.nonWorking = !viewSchedule?.hours;\n }\n\n // Find the total FTE hours for the slot date.\n const slotTotal = group.totals.find((t) => t.date === slotDate);\n const dataFteSchedule = planData.fteSchedule.find(\n (s) => s.date === slotDate,\n );\n total.fteHours = slotTotal?.fteHours ?? dataFteSchedule?.hours;\n totals.push(total);\n });\n return totals;\n }\n\n /**\n * Builds lines for the view group based on plan data and slots.\n *\n * @param planData - Server-side data for the resource plan.\n * @param dataGroup - Server-side data for the resource plan group.\n * @param group - View group for which lines are being built.\n * @param scale - Current planning scale.\n * @param slots - Date slots for the planning period.\n * @returns An array of ResourceViewGroupLine objects.\n * @private\n */\n private buildLines(\n planData: ResourcePlanData,\n dataGroup: ResourcePlanGroupData,\n group: ResourceViewGroup,\n scale: PlanningScale,\n slots: Slot[],\n ): ResourceViewGroupLine[] {\n const lines = [];\n\n // Iterate through each task data in the data group.\n dataGroup.tasks.forEach((taskData: ResourcePlanTaskData) => {\n const task = planData.tasks.find((t) => t.id === taskData.taskId);\n const tariff = taskData.assignmentTariffId\n ? planData.tariffs.find(\n (tariff) => tariff.id === taskData.assignmentTariffId,\n )\n : null;\n const cachedLine = group.lines.find((l) => l.taskId === taskData.taskId);\n let name = task.number ? task.number + ' ' + task.name : task.name;\n if (tariff) {\n name += ` (${tariff.name})`;\n }\n const line =\n cachedLine ??\n ({\n id: Guid.generate(),\n totalHours: taskData.totalHours,\n taskId: taskData.taskId,\n taskNumber: task.number,\n isActive: taskData.isActive,\n extraTotal: 0, // Total hours for the task outside the selected period.\n totalCost: taskData.totalCost,\n name,\n entries: [],\n taskStartDate: task.startDate,\n taskEndDate: task.endDate,\n isSummaryTask: task.isSummary,\n assignmentId: taskData.assignmentId,\n } as ResourceViewGroupLine);\n // If the line is new, add it to the lines array.\n if (!cachedLine) {\n lines.push(line);\n }\n });\n\n // Rebuild slots for both new and existing lines.\n [...group.lines, ...lines].forEach((line) => {\n const taskData = dataGroup.tasks.find((t) => t.taskId === line.taskId);\n const entries = this.buildEntries(\n planData,\n group,\n taskData,\n line,\n scale,\n slots,\n );\n line.extraTotal = line.totalHours - sumBy(entries, 'hours');\n line.entries = entries;\n });\n\n return lines;\n }\n\n /**\n * Builds entries for a resource view group line based on the given parameters.\n *\n * @param planData - The server-side data for the resource plan.\n * @param group - The resource view group for which the entries are being built.\n * @param taskData - The task data for the specific task being processed.\n * @param line - The resource view group line for which the entries are being built.\n * @param scale - The current planning scale.\n * @param slots - The date slots for which entries are being built.\n * @returns An array of ResourceViewGroupLineEntry objects representing the entries for the given line.\n * @private\n */\n private buildEntries(\n planData: ResourcePlanData,\n group: ResourceViewGroup,\n taskData: ResourcePlanTaskData,\n line: ResourceViewGroupLine,\n scale: PlanningScale,\n slots: Slot[],\n ): ResourceViewGroupLineEntry[] {\n const entries = [];\n\n // Determine if the entries should start as actual or forecast based on the current mode and slot dates.\n let isActual = this.isForecastMode\n ? slots.some(\n (slot) => slot.date.toISODate() <= DateTime.now().toISODate(),\n )\n : false;\n\n slots.forEach((slot) => {\n const slotDate = slot.date.toISODate();\n const cachedEntry = line.entries.find(\n (e) =>\n e.date === slotDate &&\n (!this.isForecastMode || !entries.map((x) => x.id).includes(e.id)),\n );\n if (cachedEntry) {\n entries.push(cachedEntry);\n // Adjust isActual flag for forecast mode if the current slot is today.\n if (slot.today) {\n isActual = false;\n }\n return;\n }\n\n const entry = {\n id: Guid.generate(),\n date: slotDate,\n hours: 0,\n cost: 0,\n isActual,\n taskStartDate: line.taskStartDate,\n taskEndDate: line.taskEndDate,\n taskDurationPercent: null,\n } as ResourceViewGroupLineEntry;\n\n let plannedEntry = (taskData?.planEntries ?? []).find(\n (t) => t.date === slotDate,\n );\n\n // Adjust plannedEntry for the current period if in forecast mode and the slot is today.\n if (this.isForecastMode && slot.today) {\n const currentPeriodEntries = (taskData?.planEntries ?? []).filter(\n (t) => t.date === slotDate,\n );\n\n plannedEntry = currentPeriodEntries?.find(\n (e) => !!e.isActual === isActual,\n );\n }\n\n if (plannedEntry) {\n entry.hours = plannedEntry.hours;\n entry.cost = plannedEntry.cost;\n entry.isActual = isActual; // Adjust isActual for forecast mode.\n }\n\n // Adjust isActual flag for forecast mode if the current slot is today.\n if (slot.today) {\n isActual = false;\n }\n\n const viewSchedule = group.schedule.find((s) => s.date === slotDate);\n entry.scheduleHours = viewSchedule?.hours ?? 0;\n\n // Determine non-working days based on the planning scale.\n if (scale === PlanningScale.Day) {\n entry.nonWorking = !viewSchedule?.hours;\n }\n\n const slotTotal = group.totals.find((t) => t.date === slotDate);\n const dataFteSchedule = planData.fteSchedule.find(\n (s) => s.date === slotDate,\n );\n entry.fteHours = slotTotal?.fteHours ?? dataFteSchedule?.hours;\n entry.limitHours = group.resource?.type === 'Generic' ? 2400 : 24;\n entries.push(entry);\n });\n\n return entries;\n }\n\n /**\n * Builds the 'Other Actual' group for the resource view.\n *\n * @param planData The resource plan data containing information about the 'Other Actual' group.\n * @param scale The planning scale used for the project.\n * @param slots The array of slots for which the 'Other Actual' group is being built.\n * @returns The constructed or updated 'Other Actual' group.\n */\n private buildOtherGroup(\n planData: ResourcePlanData,\n scale: PlanningScale,\n slots: Slot[],\n ): ResourceViewGroup {\n const otherActualGroup =\n this.otherActualGroup ??\n ({\n id: Guid.generate(),\n name: this.translate.instant(\n 'projects.projects.card.resources.columns.otherActual.header',\n ),\n verboseHint: this.translate.instant(\n 'projects.projects.card.resources.columns.otherActual.verboseHint',\n ),\n lines: [],\n totals: [],\n schedule: planData.fteSchedule,\n totalHours: planData.otherActual.totalHours,\n totalCost: planData.otherActual.totalCost,\n isActive: true,\n isOther: true,\n } as ResourceViewGroup);\n // Extend schedule if frame was loaded\n otherActualGroup.schedule = uniqBy(\n [...(otherActualGroup.schedule ?? []), ...planData.fteSchedule],\n 'date',\n );\n\n otherActualGroup.totals = this.buildTotals(\n planData,\n otherActualGroup,\n scale,\n slots,\n );\n slots.forEach((slot) => {\n const actualEntries = planData.otherActual.entries.filter(\n (e) => e.date === slot.date.toISODate(),\n );\n if (!actualEntries.length) {\n return;\n }\n\n const actualTotals = otherActualGroup.totals.filter((t) => t.isActual);\n const actualTotalSlot = actualTotals.find(\n (at) => at.date === slot.date.toISODate(),\n );\n actualTotalSlot.hours = sumBy(actualEntries, 'hours');\n actualTotalSlot.cost = sumBy(actualEntries, 'cost');\n });\n return otherActualGroup;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { filter } from 'rxjs';\nimport {\n ResourceGeneralCellAssignment,\n ResourceGeneralCellTask,\n ResourceGeneralCellType,\n} from 'src/app/projects/card/project-resources/models/project-resources-grid-view.model';\n\nimport {\n ResourceViewGroup,\n ResourceViewGroupLine,\n} from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Injectable()\nexport class ProjectResourcesGridDataService {\n public formArray = this.fb.array([]);\n constructor(\n public dataService: ProjectResourceDataService,\n private fb: UntypedFormBuilder,\n private projectResourceService: ProjectResourceService,\n ) {\n projectResourceService.changes$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.updateGrid());\n projectResourceService.loading$\n .pipe(\n filter((isLoading) => isLoading),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.formArray.clear());\n }\n\n /**\n * Toggles the view of group lines for a given group ID.\n * If the group is expanded, it inserts form groups for each line.\n * If the group is not expanded, it removes form groups for each line.\n *\n * @param groupId The ID of the group to toggle.\n */\n public toggleGroupLineView(groupId: string): void {\n const group = this.dataService.groups.find((g) => g.id === groupId);\n const formGroupIndex = this.formArray.controls.findIndex(\n (g) => g.value.general.id === group.id,\n );\n if (group.isExpanded) {\n // If the group is expanded and has no lines, insert a single empty form group for the group.\n if (!group.lines.length) {\n this.formArray.insert(\n formGroupIndex + 1,\n this.getResourceFormGroup(\n this.prepareResourceGeneralCell('task', group),\n ),\n );\n } else {\n // If the group is expanded and has lines, insert a form group for each line.\n group.lines.forEach((line, index) => {\n const preparedGridViewLine = this.prepareResourceGeneralCell(\n 'task',\n group,\n line,\n );\n this.formArray.insert(\n formGroupIndex + index + 1,\n this.getResourceFormGroup(preparedGridViewLine),\n );\n });\n }\n } else {\n // If the group is not expanded and has no lines, remove the form group for the group.\n if (!group.lines.length) {\n this.formArray.removeAt(formGroupIndex + 1);\n } else {\n // If the group is not expanded and has lines, remove the form group for each line.\n group.lines.forEach(() => {\n const formGroupIndex = this.formArray.controls.findIndex(\n (g) =>\n g.value.general.groupId === group.id &&\n g.value.general.type === 'task',\n );\n this.formArray.removeAt(formGroupIndex);\n });\n }\n }\n }\n\n /**\n * Updates the grid by clearing the existing form array and rebuilding it based on the current state of groups and lines.\n *\n * This method iterates through each group in the data service, prepares a form group for the group itself, and adds it to the form array.\n * If the group is expanded, it then iterates through each line in the group, prepares a form group for the line, and adds it to the form array.\n * Additionally, if the application is in forecast mode and there is an 'otherActual' group with total hours, a form group is prepared and added for this group as well.\n */\n private updateGrid(): void {\n this.formArray.clear(); // Clear the existing form array to start fresh\n this.dataService.groups.forEach((group) => {\n // Prepare and add a form group for the group itself\n const preparedGridViewGroup = this.prepareResourceGeneralCell(\n 'assignment',\n group,\n );\n this.formArray.push(this.getResourceFormGroup(preparedGridViewGroup));\n // If the group is not expanded, skip adding lines\n if (!group.isExpanded) return;\n\n if (!group.lines.length) {\n // If the group is expanded and has no lines, insert a single empty form group for the group.\n this.formArray.push(\n this.getResourceFormGroup(\n this.prepareResourceGeneralCell('task', group),\n ),\n );\n } else {\n // Add form groups for each line in the expanded group\n group.lines.forEach((line) => {\n const preparedGridViewLine = this.prepareResourceGeneralCell(\n 'task',\n group,\n line,\n );\n this.formArray.push(this.getResourceFormGroup(preparedGridViewLine));\n });\n }\n });\n // Add a form group for the 'otherActual' group if in forecast mode and it has total hours\n if (\n this.dataService.isForecastMode &&\n this.dataService.otherActualGroup?.totalHours\n ) {\n const otherActualGroup = this.prepareResourceGeneralCell(\n 'otherActual',\n this.dataService.otherActualGroup,\n );\n this.formArray.push(this.getResourceFormGroup(otherActualGroup));\n }\n }\n\n /**\n * This method creates a form group for a resource.\n * If a group is provided, it uses the group's data. Otherwise, it initializes the form group with null values.\n *\n * @param group - The group to create the form group for. If not provided, the form group will be initialized with null values.\n * @returns The created form group.\n */\n private getResourceFormGroup(\n group?: Partial,\n ): UntypedFormGroup {\n const formGroup = this.fb.group({\n id: Guid.generate(),\n general: group ?? null,\n totalHours: group?.totalHours ?? null,\n });\n return formGroup;\n }\n\n /**\n * Prepares a resource general cell based on the provided type, group, and optional line.\n *\n * This method constructs a partial object that combines properties from both ResourceGeneralCellAssignment and ResourceGeneralCellTask.\n * The properties included depend on the type parameter, which can be 'assignment', 'otherActual', or 'task'.\n *\n * @param type - The type of the resource general cell to prepare. Determines which properties are included.\n * @param group - The group to which the resource general cell belongs.\n * @param line - Optional. The line within the group to which the resource general cell belongs.\n * @returns A partial object that combines properties from ResourceGeneralCellAssignment and ResourceGeneralCellTask.\n */\n private prepareResourceGeneralCell(\n type: ResourceGeneralCellType,\n group: ResourceViewGroup,\n line?: ResourceViewGroupLine,\n ): Partial {\n const isAssignmentOrOtherActual =\n type === 'assignment' || type === 'otherActual';\n const isTask = type === 'task';\n\n const commonData = this.getCommonData(\n isAssignmentOrOtherActual,\n group,\n type,\n line,\n );\n const assignmentData = isAssignmentOrOtherActual\n ? this.getAssignmentData(group)\n : {};\n const taskData = isTask ? this.getTaskData(group, line) : {};\n\n return {\n ...commonData,\n ...assignmentData,\n ...taskData,\n };\n }\n\n /**\n * Retrieves common data for a resource general cell based on the provided parameters.\n *\n * @param isAssignmentOrOtherActual - Boolean indicating if the cell is for an assignment or other actual.\n * @param group - The ResourceViewGroup object.\n * @param type - The type of the resource general cell.\n * @param line - Optional ResourceViewGroupLine object.\n * @returns An object containing common properties for the resource general cell.\n */\n private getCommonData(\n isAssignmentOrOtherActual: boolean,\n group: ResourceViewGroup,\n type: ResourceGeneralCellType,\n line?: ResourceViewGroupLine,\n ) {\n return {\n id: line?.id ?? group.id,\n type,\n name: isAssignmentOrOtherActual ? group.name : (line?.name ?? null),\n totalHours: isAssignmentOrOtherActual\n ? group.totalHours\n : (line?.totalHours ?? null),\n totalCost: isAssignmentOrOtherActual\n ? group.totalCost\n : (line?.totalCost ?? null),\n extraTotal: isAssignmentOrOtherActual\n ? group.extraTotal\n : (line?.extraTotal ?? null),\n isActive: isAssignmentOrOtherActual\n ? group.isActive\n : (line?.isActive ?? null),\n };\n }\n\n /**\n * Returns assignment data if the given condition is true, otherwise returns an empty object.\n *\n * @param group - The ResourceViewGroup object.\n * @returns An object containing assignment data if isAssignmentOrOtherActual is true, otherwise an empty object.\n */\n private getAssignmentData(group: ResourceViewGroup) {\n return {\n verboseHint: group.verboseHint,\n isEditable: group.isEditable,\n isExpanded: group.isExpanded,\n isOther: group.isOther,\n resource: group.resource,\n role: group.role,\n teamMember: group.teamMember,\n };\n }\n\n /**\n * Returns task data if the given condition is true, otherwise returns an empty object.\n *\n * @param group - The ResourceViewGroup object.\n * @param line - Optional ResourceViewGroupLine object.\n * @returns An object containing task data if isTask is true, otherwise an empty object.\n */\n private getTaskData(group: ResourceViewGroup, line: ResourceViewGroupLine) {\n return {\n groupId: group.id,\n taskId: line?.taskId,\n taskNumber: line?.taskNumber,\n isSummaryTask: line?.isSummaryTask,\n };\n }\n}\n","import { DateTime, Interval } from 'luxon';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\nexport class ProjectResourcesHelper {\n /**\n * Get background style which uses in the cell.\n *\n * @param taskDurationPercent\n *\n * @return background style\n * */\n public static getBackgroundStyle(\n taskDurationPercent: number | number[],\n ): string {\n if (Array.isArray(taskDurationPercent)) {\n return `linear-gradient(\n to right,\n #ffffff00 0%,\n #ffffff00 ${taskDurationPercent[0]}%,\n var(--cell-allowed-time-color) ${taskDurationPercent[0]}%,\n var(--cell-allowed-time-color) ${\n taskDurationPercent[0] + taskDurationPercent[1]\n }%,\n #ffffff00 ${taskDurationPercent[0] + taskDurationPercent[1]}%,\n #ffffff00 100%\n )`;\n } else {\n return `linear-gradient(\n ${taskDurationPercent > 0 ? 'to right' : 'to left'},\n var(--cell-allowed-time-color) 0%,\n var(--cell-allowed-time-color) ${Math.abs(taskDurationPercent)}%,\n #ffffff00 ${Math.abs(taskDurationPercent)}%,\n #ffffff00 100%\n )`;\n }\n }\n\n /**\n * Get the allowed task time from period as a percentage.\n *\n * For Day scale always return 0 or 100.\n * For Week and Month return array of 3 numbers:\n * 1. percentage of time until the task start;\n * 2. percentage of the task time;\n * 3. percentage of time after the task end.\n *\n * @param scale Day, Month or Year.\n * @param periodDate Start date of period.\n * @param taskStartDate Start date of task.\n * @param taskEndDate End date of task.\n *\n * @return percents\n * */\n public static getTaskDurationPercent(\n scale: PlanningScale,\n periodDate: string,\n taskStartDate: string,\n taskEndDate: string,\n ): number | number[] {\n const plannedDate = DateTime.fromISO(periodDate);\n const startDate = DateTime.fromISO(taskStartDate).startOf('day');\n const endDate = DateTime.fromISO(taskEndDate).endOf('day');\n\n if (scale === PlanningScale.Day) {\n if (plannedDate.diff(startDate, ['days']).toObject().days < 0) {\n return 0;\n }\n\n if (plannedDate.diff(endDate, ['days']).toObject().days <= 0) {\n return 100;\n }\n }\n\n if (scale === PlanningScale.Month || scale === PlanningScale.Week) {\n const plannedDateEnd = plannedDate\n .set({\n day:\n scale === PlanningScale.Month\n ? plannedDate.daysInMonth\n : plannedDate.day + 6,\n })\n .endOf('day');\n\n const plannedInterval = Interval.fromDateTimes(\n plannedDate,\n plannedDateEnd,\n );\n const taskInterval = Interval.fromDateTimes(startDate, endDate);\n const taskIntersection: Interval | null =\n taskInterval.intersection(plannedInterval);\n\n if (taskIntersection) {\n return [\n Interval.fromDateTimes(plannedDate, taskIntersection.start).splitBy({\n day: 1,\n }).length,\n taskIntersection.splitBy({ day: 1 }).length,\n Interval.fromDateTimes(taskIntersection.end, plannedDateEnd).splitBy({\n day: 1,\n }).length,\n ].map((el) =>\n Number(\n ((el / plannedInterval.splitBy({ day: 1 }).length) * 100).toFixed(\n 1,\n ),\n ),\n );\n }\n }\n\n return 0;\n }\n\n /**\n * Get end date of period by planning scale.\n *\n * @param date Date should be the beginning of the period by scale\n * (e.g. Monday for a week; January, April, July, October for a quarter)\n * @param planningScale `PlanningScale`\n *\n * @return end date.\n * @throws If `date` is not valid, return exception.\n * */\n public static getEndDateByScale(\n date: string,\n planningScale: PlanningScale,\n ): string | null {\n const dateStart = DateTime.fromISO(date).startOf('day');\n let dateEnd: DateTime;\n\n switch (planningScale) {\n case PlanningScale.Day:\n return date;\n case PlanningScale.Week:\n if (!dateStart.equals(dateStart.startOf('week'))) {\n throw new Error(\n 'The beginning of the week is invalid. It should be Monday.',\n );\n } else {\n dateEnd = dateStart.endOf('week');\n break;\n }\n case PlanningScale.Month:\n if (!dateStart.equals(dateStart.startOf('month'))) {\n throw new Error(\n 'The beginning of the month is invalid. It should be first day.',\n );\n } else {\n dateEnd = dateStart.endOf('month');\n break;\n }\n case PlanningScale.Quarter:\n if (!dateStart.equals(dateStart.startOf('quarter'))) {\n throw new Error(\n 'The beginning of the quarter is invalid. It should be January, April, July or October.',\n );\n } else {\n dateEnd = dateStart.endOf('quarter');\n break;\n }\n case PlanningScale.Year:\n if (!dateStart.equals(dateStart.startOf('year'))) {\n throw new Error(\n 'The beginning of the year is invalid. It should be 1st January.',\n );\n } else {\n dateEnd = dateStart.endOf('year');\n break;\n }\n }\n\n return dateEnd.weekday > 5\n ? dateEnd.set({ weekday: 5 }).toISODate()\n : dateEnd.toISODate();\n }\n}\n","import { DestroyRef, inject, Inject, Injectable } from '@angular/core';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ResourcePlanSlot } from 'src/app/projects/card/project-resources/models/forecast-slot';\nimport { ProjectResourceSettings } from 'src/app/projects/card/project-resources/models/project-resource-settings.model';\nimport { ResourceForecastCalendarPlannerSettings } from 'src/app/projects/card/project-resources/models/resource-forecast-calendar-settings.model';\nimport { ResourcePlannerSettings } from 'src/app/projects/card/project-resources/models/resource-planner-settings.model';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport {\n ScheduleNavigationContext,\n ScheduleNavigationService,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport _ from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectResourcesCalendarCommandService } from 'src/app/projects/card/project-resources/core/project-resources-calendar-command.service';\nimport { UndoRedoService } from 'src/app/shared/services/undo-redo/undo-redo.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Injectable()\nexport class ProjectResourceService {\n private toggleSubject = new Subject();\n public toggle$ = this.toggleSubject.asObservable();\n\n public loading$ = new BehaviorSubject(true);\n public frameLoading$ = new BehaviorSubject(false);\n\n private isShowTaskDuration = new BehaviorSubject(true);\n public isShowTaskDuration$ = this.isShowTaskDuration.asObservable();\n\n public changes$ = new Subject();\n\n public leftTableWidth = 410;\n public rightTableWidth;\n\n public slots: ResourcePlanSlot[];\n public slotGroups: SlotGroup[];\n public slotTotals = [];\n public slotWidth: number;\n\n private interval: Interval;\n\n public get planningScale(): PlanningScale {\n return this.settings.planningScale;\n }\n public get valueMode(): ValueMode {\n return this.settings.valueMode;\n }\n public get showOtherActual(): boolean {\n return this.dataService.isForecastMode\n ? (this.settings as ResourceForecastCalendarPlannerSettings)\n .showOtherActual\n : false;\n }\n public get currentPeriodSlot() {\n return this.slots.find((slot) => slot.today);\n }\n\n public get totalHours(): number {\n let calculatedGroups = this.dataService.groups;\n if (this.showOtherActual) {\n calculatedGroups = [\n ...calculatedGroups,\n this.dataService.otherActualGroup,\n ];\n }\n return _.sumBy(calculatedGroups, 'totalHours');\n }\n public get totalCost(): number {\n let calculatedGroups = this.dataService.groups;\n if (this.showOtherActual) {\n calculatedGroups = [\n ...calculatedGroups,\n this.dataService.otherActualGroup,\n ];\n }\n return _.sumBy(calculatedGroups, 'totalCost');\n }\n\n private _settings:\n | ResourceForecastCalendarPlannerSettings\n | ResourcePlannerSettings;\n private set settings(\n settings: ResourceForecastCalendarPlannerSettings | ResourcePlannerSettings,\n ) {\n this._settings = settings;\n this.slotWidth = this.getSlotWidth();\n }\n private get settings():\n | ResourceForecastCalendarPlannerSettings\n | ResourcePlannerSettings {\n return this._settings;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId,\n private localStorageService: LocalConfigService,\n private navigationService: ScheduleNavigationService,\n private dataService: ProjectResourceDataService,\n private appService: AppService,\n private localConfigService: LocalConfigService,\n private projectCardService: ProjectCardService,\n private undoRedoService: UndoRedoService,\n private commandService: ProjectResourcesCalendarCommandService,\n private autosave: SavingQueueService,\n private blockUI: BlockUIService,\n private gridService: GridService,\n ) {\n this.isShowTaskDuration.next(\n localStorageService.getConfig(ProjectResourceSettings).isShowTaskDuration,\n );\n }\n\n /**\n * Initializes the service with the given destroy reference and forecast mode.\n *\n * @param {boolean} [isForecastMode=false] - Determines if the service should operate in forecast mode. Defaults to false.\n */\n public init(isForecastMode: boolean): void {\n // Clears the groups data and sets the forecast mode.\n this.dataService.groups.length = 0;\n this.dataService.isForecastMode = isForecastMode;\n\n this.initNavigationService(isForecastMode);\n\n // Subscribes to planning scale changes and reloads the data on change.\n this.navigationService.planningScale$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n\n // Subscribes to navigation events and reloads or saves data accordingly.\n this.navigationService.next$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.dataService.save().then(() => this.loadFrame('right')),\n );\n this.navigationService.previous$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() =>\n this.dataService.save().then(() => this.loadFrame('left')),\n );\n this.navigationService.jump$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((date) =>\n this.dataService.save().then(() => this.reload(date)),\n );\n this.navigationService.valueMode$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n this.projectCardService.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.dataService.save().then(() => this.reload()));\n this.projectCardService.project$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((project: Project) => {\n this.dataService.updateReadOnly(project.resourcePlanEditAllowed);\n });\n this.commandService.changes$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n this.autosave.save$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n if (data.warnings) {\n this.commandService.showWarnings(data.warnings);\n }\n\n // Silent reload after undo/redo.\n if (data.resourcePlanEntry) {\n this.load(true);\n return;\n }\n\n const updatedTasks = data.tasks ?? data.projectTask;\n if (updatedTasks) {\n this.dataService.updateTasksDates(updatedTasks, this.planningScale);\n }\n\n if (data.entries) {\n this.updateSavedEntries(data.entries);\n }\n });\n this.reload();\n\n // Sets the saving queue service for undo/redo operations.\n this.undoRedoService.setSavingQueue(this.autosave);\n }\n\n public initNavigationService(isForecastMode: boolean): void {\n // If in forecast mode, initializes the navigation service for resources calendar.\n if (isForecastMode) {\n this.navigationService.init(ScheduleNavigationContext.ResourcesCalendar);\n // Sets the planning scale based on the forecast period from the app service session.\n const forecastPeriod = this.appService.session.forecastPeriod;\n const scaleFromForecastPeriod = PlanningScale[forecastPeriod];\n this.navigationService.setPlanningScale(\n scaleFromForecastPeriod ?? PlanningScale.Day,\n );\n // Sets the service settings to ResourceForecastCalendarPlannerSettings.\n this.settings = this.localConfigService.getConfig(\n ResourceForecastCalendarPlannerSettings,\n );\n } else {\n // If not in forecast mode, initializes the navigation service for resources.\n this.navigationService.init(ScheduleNavigationContext.Resources);\n // Sets the service settings to ResourcePlannerSettings.\n this.settings = this.localConfigService.getConfig(\n ResourcePlannerSettings,\n );\n }\n }\n\n /** Shows/hides other actual data. */\n public toggleShowOtherActual(): void {\n if (!this.dataService.isForecastMode) {\n return;\n }\n\n (this.settings as ResourceForecastCalendarPlannerSettings).showOtherActual =\n !(this.settings as ResourceForecastCalendarPlannerSettings)\n .showOtherActual;\n const settings = this.localConfigService.getConfig(\n ResourceForecastCalendarPlannerSettings,\n );\n settings.showOtherActual = (\n this.settings as ResourceForecastCalendarPlannerSettings\n ).showOtherActual;\n this.localConfigService.setConfig(\n ResourceForecastCalendarPlannerSettings,\n settings,\n );\n this.updateSlotTotals();\n }\n\n /** Opens \"Move Plan\" modal. */\n public movePlan(): void {\n this.dataService.save().then(\n () => {\n this.commandService\n .movePlan(this.projectId, this.dataService.teamMembers as any[])\n .then(\n () => this.reload(),\n () => null,\n );\n },\n () => null,\n );\n }\n\n /** Updates slot totals. */\n public updateSlotTotals(): void {\n this.dataService.groups.forEach((group) => {\n group.totals.forEach((t) => {\n t.hours = 0;\n t.cost = 0;\n });\n\n group.lines.forEach((line) => {\n line.totalHours = line.extraTotal;\n for (\n let entryIndex = 0;\n entryIndex < line.entries.length;\n entryIndex++\n ) {\n const entry = line.entries[entryIndex];\n if (entry.hours > 0) {\n group.totals[entryIndex].hours += entry.hours;\n group.totals[entryIndex].cost += entry.cost;\n line.totalHours += entry.hours;\n }\n }\n });\n\n group.totalHours = _.sumBy(group.lines, 'totalHours');\n group.totalCost = _.sumBy(group.lines, 'totalCost');\n });\n\n let calculatedGroups = this.dataService.groups;\n if (this.dataService.isForecastMode && this.showOtherActual) {\n calculatedGroups = [\n ...calculatedGroups,\n this.dataService.otherActualGroup,\n ];\n }\n\n const totals = _.flatten(calculatedGroups.map((g) => g.totals));\n this.slotTotals = this.slots.map((s) => {\n let slotTotals;\n if (this.dataService.isForecastMode) {\n slotTotals = totals.filter(\n (t) => t.slotId === s.id && t.isActual === s.isActual,\n );\n } else {\n slotTotals = totals.filter((t) => t.slotId === s.id);\n }\n\n return {\n id: s.id,\n hours: _.sumBy(slotTotals, 'hours'),\n cost: _.sumBy(slotTotals, 'cost'),\n nonWorking: false,\n today: s.today, //for forecast\n };\n });\n }\n\n /** Clears resource plan. */\n public clearPlan(): void {\n this.dataService.save().then(() => {\n this.commandService.clearPlan();\n });\n }\n\n /**\n * Loads calendar frame.\n *\n * @param direction - direction in which frame is loaded.\n * */\n private loadFrame(direction: 'left' | 'right'): void {\n this.frameLoading$.next(true);\n this.blockUI.start();\n\n let shift: DurationLike;\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n case PlanningScale.Quarter:\n shift = { year: 1 };\n break;\n case PlanningScale.Year:\n shift = { year: 2 };\n break;\n }\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n this.updateDates();\n\n this.dataService\n .loadFrame(loadingInterval, this.settings.planningScale, this.slots)\n .then(() => {\n this.updateSlotTotals();\n this.frameLoading$.next(false);\n this.blockUI.stop();\n this.changes$.next();\n\n setTimeout(() => {\n this.gridService.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.gridService.freezeTableService.scrollToLeft();\n } else {\n this.gridService.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.gridService.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n });\n }\n\n /**\n * Reloads whole calendar.\n *\n * @param toDate - date to which calendar should transition to.\n */\n private reload(toDate?: DateTime): void {\n if (this.dataService.isForecastMode) {\n this.settings = this.localConfigService.getConfig(\n ResourceForecastCalendarPlannerSettings,\n );\n } else {\n this.settings = this.localConfigService.getConfig(\n ResourcePlannerSettings,\n );\n }\n\n this.interval = this.navigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n this.updateDates();\n this.load();\n }\n\n /**\n * Loads data for whole calendar.\n *\n * @param silent - determines if UI should be blocked.\n */\n private load(silent = false): void {\n if (silent) {\n this.blockUI.start();\n } else {\n this.loading$.next(true);\n }\n\n this.dataService\n .loadResourceGroups(this.interval, this.planningScale, this.slots)\n .then(() => {\n this.updateSlotTotals();\n this.changes$.next();\n if (silent) {\n this.blockUI.stop();\n } else {\n this.loading$.next(false);\n }\n });\n }\n\n /**\n * Updates saved entries in the calendar.\n *\n * @param entries saved entries.\n */\n private updateSavedEntries(entries: any[]): void {\n entries.forEach((saved) => {\n const group = this.dataService.groups.find(\n (g) => g.id === saved.teamMemberId,\n );\n if (!group) {\n return;\n }\n\n const taskLine = group.lines.find((l) => l.taskId === saved.taskId);\n let entry;\n if (this.dataService.isForecastMode) {\n entry = taskLine?.entries.find(\n (e) => e.date === saved.date && !e.isActual,\n );\n } else {\n entry = taskLine?.entries.find((e) => e.date === saved.date);\n }\n if (entry) {\n const prevCost = entry.cost;\n taskLine.totalCost += saved.cost - prevCost;\n entry.cost = saved.cost;\n entry.hours = saved.hours;\n }\n });\n this.updateSlotTotals();\n this.changes$.next();\n }\n\n /**\n * Toggles group.\n *\n * @param id - group id.\n */\n public toggleGroup(id: string): void {\n this.toggleSubject.next(id);\n }\n\n /**\n * Calculates the total width of the table based on the width of each slot and the number of slots.\n *\n * @param slotWidth - The width of each slot. Defaults to the service's slotWidth if not provided.\n * @param countOfSlots - The number of slots. Defaults to the length of the service's slots array if not provided.\n * @returns The total width of the table.\n */\n public getTableWidth(slotWidth?: number, countOfSlots?: number): number {\n if (!slotWidth) {\n slotWidth = this.slotWidth;\n }\n if (!countOfSlots) {\n countOfSlots = this.slots?.length ?? 0;\n }\n\n return slotWidth * countOfSlots;\n }\n\n /**\n * Set isShowTaskDuration value.\n *\n * @param value Show or not show.\n */\n public setShowTaskDuration(value: boolean): void {\n const settings = this.localStorageService.getConfig(\n ProjectResourceSettings,\n );\n\n if (settings.isShowTaskDuration === value) {\n return;\n }\n\n settings.isShowTaskDuration = value;\n this.localStorageService.setConfig(ProjectResourceSettings, settings);\n\n this.isShowTaskDuration.next(settings.isShowTaskDuration);\n }\n\n /** Updates view dates. */\n private updateDates(): void {\n const slotInfo = this.navigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slotGroups = slotInfo.groups;\n this.slots = slotInfo.slots;\n\n if (this.dataService.isForecastMode) {\n this.updateForecastDates();\n }\n\n this.rightTableWidth = this.getTableWidth();\n }\n\n /**\n * Updates the forecast dates for the slots.\n *\n * This method determines the default value for the `isActual` property of each slot based on whether there are any past slots, including today's slot.\n * If there are past slots, `isActual` is set to `true` for all slots. Otherwise, `isActual` is set to `false` and not changed.\n *\n * Additionally, if the current period slot is present in the frame, it duplicates today's slot and adjusts the `isActual` property accordingly.\n *\n * Finally, it updates the slot count for the group containing the duplicated slot, if present.\n */\n private updateForecastDates(): void {\n // Determine the default value for isActual based on the presence of past slots.\n const defaultIsActual = this.slots.some(\n (slot) => slot.date.toISODate() <= DateTime.now().toISODate(),\n );\n this.slots.forEach((slot) => (slot.isActual = defaultIsActual));\n\n // Duplicate today's slot if it's present in the frame and adjust isActual accordingly.\n const currentPeriodSlot = this.currentPeriodSlot;\n const currentPeriodSlotIndex = this.slots.indexOf(currentPeriodSlot);\n if (currentPeriodSlot) {\n this.slots\n .filter((_slot, index) => index < currentPeriodSlotIndex)\n .forEach((slot) => (slot.isActual = true));\n this.slots\n .filter((_slot, index) => index > currentPeriodSlotIndex)\n .forEach((slot) => (slot.isActual = false));\n // Insert a duplicate of today's slot with a unique id and isActual set to false.\n this.slots.splice(currentPeriodSlotIndex + 1, 0, {\n ...currentPeriodSlot,\n id: currentPeriodSlot.id + 1,\n isActual: false,\n });\n }\n\n // Update the slot count for the group containing the duplicated slot, if present.\n let groupsSlotsCount = 0;\n let isGroupExtended = false;\n this.slotGroups.forEach((slotGroup) => {\n if (!isGroupExtended) {\n groupsSlotsCount += slotGroup.slotsCount;\n if (\n currentPeriodSlot &&\n currentPeriodSlotIndex + 1 <= groupsSlotsCount\n ) {\n slotGroup.slotsCount += 1;\n isGroupExtended = true;\n }\n }\n });\n }\n\n /**\n * Calculates and returns the width of a slot based on the planning scale.\n *\n * @returns The width of a slot in pixels.\n */\n private getSlotWidth(): number {\n if (!this.settings?.planningScale) return 0;\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n return 55;\n case PlanningScale.Week:\n return 75;\n case PlanningScale.Month:\n return 90;\n case PlanningScale.Quarter:\n return 120;\n case PlanningScale.Year:\n return 90;\n }\n }\n}\n","import { StateDeclaration, StateObject } from '@uirouter/core';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Настройка ресурсного плана. */\nexport class ProjectResourceSettings implements BaseSettings {\n public readonly name = 'ProjectResourceSettings';\n version: number;\n toggler: string | StateObject | StateDeclaration;\n isShowTaskDuration: boolean;\n isForecastMode: boolean;\n\n getDefault(): ProjectResourceSettings {\n return {\n version: 4,\n toggler: 'project.resources.forecastCalendar',\n isShowTaskDuration: true,\n isForecastMode: false,\n } as ProjectResourceSettings;\n }\n}\n","import { ResourceGeneralCellComponent } from 'src/app/projects/card/project-resources/resource-general-cell/resource-general-cell.component';\nimport { ResourceTotalHoursCellComponent } from 'src/app/projects/card/project-resources/resource-total-hours-cell/resource-total-hours-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const projectResourcesList: List = {\n name: 'projectResources',\n version: 1,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'general',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Component,\n },\n {\n column: 'totalHours',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Component,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'general',\n header: 'components.projectResourcesList.props.general',\n hint: 'components.projectResourcesList.props.general',\n type: GridColumnType.Component,\n component: ResourceGeneralCellComponent,\n readonlyComponent: ResourceGeneralCellComponent,\n total: TotalType.Component,\n },\n {\n name: 'totalHours',\n header: 'components.projectResourcesList.props.totalHours.short',\n hint: 'components.projectResourcesList.props.totalHours.value',\n type: GridColumnType.Component,\n component: ResourceTotalHoursCellComponent,\n readonlyComponent: ResourceTotalHoursCellComponent,\n total: TotalType.Component,\n },\n ],\n dataColumns: [],\n};\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Настройка ресурсного плана. */\nexport class ResourceForecastCalendarPlannerSettings implements BaseSettings {\n public readonly name = 'ResourceForecastCalendarPlannerSettings';\n version: number;\n\n planningScale: PlanningScale;\n\n valueMode: ValueMode;\n\n /** Смещение периода от текущего. */\n periodOffset: number;\n\n showOtherActual: boolean;\n\n getDefault(): ResourceForecastCalendarPlannerSettings {\n return {\n version: 4,\n planningScale: PlanningScale.Day,\n valueMode: ValueMode.Hours,\n periodOffset: 0,\n showOtherActual: false,\n } as ResourceForecastCalendarPlannerSettings;\n }\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Настройка ресурсного плана. */\nexport class ResourcePlannerSettings implements BaseSettings {\n public readonly name = 'ResourcePlannerSettings';\n version: number;\n\n planningScale: PlanningScale;\n\n valueMode: ValueMode;\n\n /** Смещение периода от текущего. */\n periodOffset: number;\n\n getDefault(): ResourcePlannerSettings {\n return {\n version: 2,\n planningScale: PlanningScale.Day,\n valueMode: ValueMode.Hours,\n periodOffset: 0,\n } as ResourcePlannerSettings;\n }\n}\n","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { DateTime } from 'luxon';\nimport { forkJoin } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Component({\n selector: 'wp-move-plan-form',\n templateUrl: './move-plan-form.component.html',\n styleUrls: ['./move-plan-form.component.scss'],\n standalone: false,\n})\nexport class MovePlanFormComponent implements OnInit {\n private _teamMembers: ProjectTeamMember[] = [];\n @Input() set teamMembers(obj: ProjectTeamMember[]) {\n this._teamMembers = cloneDeep(obj);\n }\n get teamMembers(): ProjectTeamMember[] {\n return this._teamMembers;\n }\n\n @Input() projectId: string;\n\n thereIsNoPlan: boolean;\n isSaving = false;\n isLoading = false;\n\n allTeamMembersSelector = new UntypedFormControl(true);\n allTasksSelector = new UntypedFormControl(true);\n\n public taskLines = this.fb.array([]);\n public teamMemberLines = this.fb.array([]);\n\n form: UntypedFormGroup = this.fb.group({\n from: [null, Validators.required],\n to: [null, Validators.required],\n });\n\n public viewTableStyle: Dictionary = {};\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private messages: MessageService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private tasksService: ProjectTasksService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {}\n\n public openUserInfo(id: string) {\n const userId = id;\n const target = document.getElementById(`user-${id}`);\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n public resize(event: ResizedEvent) {\n this.viewTableStyle['display'] = 'table';\n this.viewTableStyle['width'] = event.newRect.width + 'px';\n }\n\n public selectAllTasks() {\n this.taskLines.controls.forEach((task: UntypedFormGroup) => {\n task.controls['isSelected'].setValue(this.allTasksSelector.value, {\n emitEvent: false,\n });\n });\n }\n\n public selectAllTeamMembers() {\n this.teamMemberLines.controls.forEach((resourceGroup: UntypedFormGroup) => {\n resourceGroup.controls['isSelected'].setValue(\n this.allTeamMembersSelector.value,\n {\n emitEvent: false,\n },\n );\n });\n }\n\n public hasSelectedData() {\n return (\n !this.teamMemberLines.value.every((m: any) => !m.isSelected) &&\n !this.taskLines.value.every((m: any) => !m.isSelected) &&\n !this.thereIsNoPlan\n );\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const moveRequest = {\n from: this.form.value.from,\n to: this.form.value.to,\n teamMemberIds: this.teamMemberLines.value\n .filter((m) => m.isSelected)\n .map((m) => m.id),\n projectTaskIds: this.taskLines.value\n .filter((t: any) => t.isSelected)\n .map((t) => t.id),\n };\n\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('WP.MovePlan')\n .execute(moveRequest)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projects.card.resources.movePlanForm.messages.moved',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.messages.errorDetailed(error);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n public loadData() {\n this.tasksService.resetProjectTasks(\n this.projectId,\n this.versionCardService.projectVersion,\n );\n\n this.isLoading = true;\n\n forkJoin({\n earliestPlannedDate: this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .function('GetEarliestPlannedDate')\n .get(),\n tasks: this.tasksService.getProjectTasks(\n this.projectId,\n this.versionCardService.projectVersion,\n 10,\n ),\n }).subscribe((result) => {\n if (!result.earliestPlannedDate) {\n this.thereIsNoPlan = true;\n }\n this.form.controls['from'].setValue(result.earliestPlannedDate);\n\n const tasks = result.tasks.sort(naturalSort('structNumber'));\n\n tasks.forEach((task) => {\n task.name = task.structNumber\n ? `${task.structNumber} ${task.name}`\n : task.name;\n (task as any).isSelected = true;\n this.taskLines.push(this.fb.group(task));\n });\n\n this.allTasksSelector.setValue(true);\n\n this.isLoading = false;\n });\n }\n\n public isMoveLeft(): boolean {\n return (\n this.form.value.from &&\n this.form.value.to &&\n DateTime.fromISO(this.form.value.from) >\n DateTime.fromISO(this.form.value.to)\n );\n }\n\n ngOnInit(): void {\n this.loadData();\n\n const genericMembers = this.teamMembers\n .filter((g) => g.resource.resourceType === ResourceType.generic)\n .sort(naturalSort('name'));\n const resourceMembers = this.teamMembers\n .filter((g) => g.resource.resourceType !== ResourceType.generic)\n .sort(naturalSort('name'));\n this.teamMembers = [...genericMembers, ...resourceMembers];\n\n this.teamMembers.forEach((teamMember) => {\n (teamMember as any).isSelected = true;\n this.teamMemberLines.push(this.fb.group(teamMember));\n });\n this.selectAllTeamMembers();\n\n this.allTasksSelector.valueChanges.subscribe(() => this.selectAllTasks());\n this.allTeamMembersSelector.valueChanges.subscribe(() =>\n this.selectAllTeamMembers(),\n );\n\n this.taskLines.valueChanges.subscribe(() => {\n this.allTasksSelector.setValue(false, { emitEvent: false });\n });\n\n this.teamMemberLines.valueChanges.subscribe(() => {\n this.allTeamMembersSelector.setValue(false, { emitEvent: false });\n });\n }\n}\n"," \n@if (!isLoading) {\n
    \n
    \n

    \n {{ 'projects.projects.card.resources.movePlanForm.header' | translate }}\n

    \n \n
    \n
    \n @if (!thereIsNoPlan) {\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{ 'projects.projects.card.resources.movePlanForm.properties.help' | translate }}\n \n
    \n @if (isMoveLeft()) {\n

    \n {{\n 'projects.projects.card.resources.movePlanForm.properties.moveLeftWarning'\n | translate\n }}\n

    \n }\n
    \n
    \n
    \n
    \n \n \n \n \n \n {{\n 'projects.projects.card.resources.movePlanForm.properties.task' | translate\n }}\n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n @for (task of taskLines.controls; track task.value.id) {\n \n \n
    \n \n
    \n \n \n
    {{ task.value.name }}
    \n \n \n }\n @if (!taskLines?.length) {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n \n \n
    \n
    \n
    \n \n \n \n \n \n {{\n 'projects.projects.card.resources.movePlanForm.properties.resource'\n | translate\n }}\n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n @for (teamMember of teamMemberLines.controls; track teamMember.value.id) {\n \n \n
    \n \n
    \n \n \n
    \n @if (teamMember.value.resource) {\n \n
    {{ teamMember.value.name }}
    \n }\n @if (!teamMember.value.resource) {\n \n
    {{ teamMember.value.name }}
    \n }\n
    \n \n \n }\n @if (!teamMemberLines.length) {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n \n \n
    \n
    \n
    \n }\n @if (thereIsNoPlan) {\n
    \n {{ 'projects.projects.card.resources.movePlanForm.thereIsNoPlan' | translate }}\n
    \n }\n
    \n \n
    \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Renderer2,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, merge } from 'rxjs';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { AbstractRightSide } from 'src/app/shared-features/grid/abstract-right-side.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n@Component({\n selector: 'tmt-project-resource-right-side',\n styleUrl: './project-resource-right-side.component.scss',\n templateUrl: './project-resource-right-side.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectResourceRightSideComponent extends AbstractRightSide {\n public isShowTaskDuration: boolean;\n\n constructor(\n container: ElementRef,\n gridService: GridService,\n freezeTableService: FreezeTableService,\n renderer: Renderer2,\n public projectResourceService: ProjectResourceService,\n public projectResourceDataService: ProjectResourceDataService,\n public projectCardService: ProjectCardService,\n public cdr: ChangeDetectorRef,\n ) {\n super(container, gridService, freezeTableService, renderer);\n merge(gridService.detectChanges$, projectResourceService.changes$)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.cdr.detectChanges());\n\n projectResourceService.isShowTaskDuration$\n .pipe(\n filter((isShow) => isShow !== this.isShowTaskDuration),\n takeUntilDestroyed(),\n )\n .subscribe((value) => {\n this.isShowTaskDuration = value;\n this.cdr.markForCheck();\n });\n }\n}\n","
    \n \n \n @for (slot of projectResourceService.slots; track slot.id) {\n \n }\n \n \n \n @for (group of projectResourceService.slotGroups; track group.id) {\n \n {{ group.header }}\n \n }\n \n \n @for (slot of projectResourceService.slots; track slot.id) {\n \n {{ slot.header }}\n @if (projectResourceDataService.isForecastMode) {\n @if (slot.isActual) {\n \n {{ 'projects.projects.card.resources.info.Actual' | translate | lowercase }}\n \n } @else {\n \n {{ 'projects.projects.card.resources.info.Estimate' | translate | lowercase }}\n \n }\n }\n \n }\n \n \n \n
    \n\n
    \n \n @if (!(projectResourceService.loading$ | async)) {\n \n @for (slot of projectResourceService.slots; track slot.id) {\n \n }\n \n @if (\n !projectResourceDataService.groups.length &&\n !projectResourceDataService.otherActualGroup &&\n !(projectResourceService.loading$ | async)\n ) {\n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n }\n @for (group of projectResourceDataService.groups; track group.id) {\n \n }\n \n @if (projectResourceDataService.otherActualGroup?.totalHours) {\n \n }\n }\n \n
    \n\n
    \n \n @if (!(projectResourceService.loading$ | async)) {\n \n @for (slot of projectResourceService.slots; track slot.id) {\n \n }\n \n \n \n @for (slot of projectResourceService.slotTotals; track slot.id) {\n \n {{ slot.hours | plannerFormat }}\n \n }\n \n \n @if ((projectCardService.project$ | async).financeViewAllowed) {\n \n @for (slot of projectResourceService.slotTotals; track slot.id) {\n \n {{ slot.cost | zeroToNull | number: '1.0-0' }}\n \n }\n \n }\n }\n \n
    \n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport { sumBy } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { ProjectResourcesHelper } from 'src/app/projects/card/project-resources/core/project-resources.helper';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ResourcePlanSlot } from 'src/app/projects/card/project-resources/models/forecast-slot';\nimport { ResourceViewGroup } from 'src/app/projects/card/project-resources/models/project-resources-view.model';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtProjectResourcesCalendarRightGroup]',\n templateUrl: './project-resources-calendar-right-group.component.html',\n styleUrls: ['./project-resources-calendar-right-group.component.scss'],\n providers: [CellsOrchestratorService],\n standalone: false,\n})\nexport class ProjectResourcesCalendarRightGroupComponent\n implements OnInit, OnDestroy\n{\n @Input() group: ResourceViewGroup;\n @Input() valueMode: ValueMode;\n @Input() scale: PlanningScale;\n @Input() isShowTaskDuration: boolean;\n\n // For forecast logic\n @Input() currentPeriodSlot: ResourcePlanSlot | null = null;\n @Input() static = false;\n @Input() empty = false;\n\n public formLines: UntypedFormArray = this.fb.array([]);\n\n public readonly propagationMode = PropagationMode;\n\n private wasBuilt = false;\n\n private destroyed$ = new Subject();\n\n constructor(\n public service: ProjectResourceService,\n public projectCardService: ProjectCardService,\n public dataService: ProjectResourceDataService,\n private cellsOrchestrator: CellsOrchestratorService,\n private fb: UntypedFormBuilder,\n private changeDetector: ChangeDetectorRef,\n private cellsOrchestratorService: CellsOrchestratorService,\n ) {}\n\n ngOnInit(): void {\n this.service.toggle$\n .pipe(\n takeUntil(this.destroyed$),\n filter((id) => id === this.group.id),\n )\n .subscribe(() => this.recalculateEntries());\n\n this.service.changes$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.recalculateEntries();\n this.recalculateTotals();\n });\n\n this.cellsOrchestratorService.massValueChangeInProgress$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((inProgress: boolean) => {\n if (inProgress) {\n this.dataService.isAddToSavePrevented = inProgress;\n return;\n }\n if (!inProgress && this.dataService.isAddToSavePrevented) {\n this.dataService.saveCurrentEntriesToSave();\n }\n });\n\n this.recalculateEntries();\n this.recalculateTotals();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public isToday(date: string): boolean {\n return this.currentPeriodSlot?.date?.toISODate() === date;\n }\n\n /** Рассчитывает итоги по строкам и слотам. */\n private recalculateTotals() {\n if (this.static) {\n return;\n }\n this.group.totals.forEach((t) => {\n t.hours = 0;\n t.cost = 0;\n });\n\n this.group.lines.forEach((line) => {\n line.totalHours = line.extraTotal;\n for (let entryIndex = 0; entryIndex < line.entries.length; entryIndex++) {\n const entry = line.entries[entryIndex];\n if (entry.hours > 0) {\n this.group.totals[entryIndex].hours += entry.hours;\n this.group.totals[entryIndex].cost += entry.cost;\n line.totalHours += entry.hours;\n }\n }\n });\n\n this.group.totalHours = sumBy(this.group.lines, 'totalHours');\n this.group.totalCost = sumBy(this.group.lines, 'totalCost');\n this.changeDetector.detectChanges();\n }\n\n private recalculateEntries() {\n if (!this.group.isExpanded || this.static) {\n return;\n }\n\n if (!this.wasBuilt) {\n this.wasBuilt = true;\n this.rebuildLines();\n }\n if (this.wasBuilt) {\n this.updateLines();\n }\n this.recalculateTotals();\n }\n\n private rebuildLines() {\n this.formLines = this.fb.array([]);\n for (const line of this.group.lines) {\n const array = this.fb.array([]);\n this.formLines.push(array);\n\n for (const entry of line.entries) {\n const control = this.fb.control(entry);\n if (this.projectCardService.isEntryBlocked(entry)) {\n control.disable({ emitEvent: false });\n }\n array.push(control);\n control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.dataService.addEntryToQueue(\n control.value,\n line,\n this.group,\n this.scale,\n );\n });\n }\n if (this.projectCardService.isLineBlocked(line)) {\n array.disable({ emitEvent: false });\n }\n }\n this.cellsOrchestrator.init();\n\n this.formLines.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.recalculateTotals();\n this.service.updateSlotTotals();\n });\n\n if (!this.group.isEditable || this.dataService.readonly) {\n this.formLines.disable({ emitEvent: false });\n }\n\n this.changeDetector.detectChanges();\n }\n\n private updateLines() {\n this.group.lines.forEach((line, lineIndex) => {\n let formLine = this.formLines.at(lineIndex) as UntypedFormArray;\n if (!formLine) {\n this.wasBuilt = false;\n this.rebuildLines();\n formLine = this.formLines.at(lineIndex) as UntypedFormArray;\n }\n const isLineBlocked = this.projectCardService.isLineBlocked(line);\n if (isLineBlocked) {\n formLine.disable({ emitEvent: false });\n } else {\n formLine.enable({ emitEvent: false });\n }\n\n // Cut unused cells\n if (formLine.controls.length > line.entries.length) {\n formLine.controls.length = line.entries.length;\n }\n\n line.entries.forEach((entry, entryIndex) => {\n entry.taskDurationPercent =\n ProjectResourcesHelper.getTaskDurationPercent(\n this.scale,\n entry.date,\n entry.taskStartDate,\n entry.taskEndDate,\n );\n\n entry.backgroundStyle = ProjectResourcesHelper.getBackgroundStyle(\n entry.taskDurationPercent,\n );\n\n const formEntry = formLine.at(entryIndex);\n if (formEntry) {\n formEntry.setValue(entry, { emitEvent: false });\n if (!isLineBlocked) {\n if (this.projectCardService.isEntryBlocked(entry)) {\n formEntry.disable({ emitEvent: false });\n } else {\n formEntry.enable({ emitEvent: false });\n }\n }\n } else {\n const control = this.fb.control(entry);\n if (this.projectCardService.isEntryBlocked(entry)) {\n control.disable({ emitEvent: false });\n }\n formLine.push(control, { emitEvent: false });\n control.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.dataService.addEntryToQueue(\n control.value,\n line,\n this.group,\n this.service.planningScale,\n );\n });\n }\n });\n });\n }\n}\n","\n\n @for (total of group.totals; track total.id) {\n \n {{\n (!empty ? total.hours : 0) | plannerFormat: valueMode : total.scheduleHours : total.fteHours\n }}\n \n }\n\n\n@if (group.isExpanded) {\n @for (line of group.lines; track line.id; let lineIndex = $index) {\n \n @for (\n entry of $any(formLines.at(lineIndex))?.controls;\n track entry.value.id;\n let dayIndex = $index\n ) {\n @if (\n dataService.isForecastMode &&\n (entry.value.isActual ||\n (!line?.assignmentId && projectCardService.project.isAutoPlanning))\n ) {\n \n {{\n (!empty ? entry?.value.hours : 0)\n | plannerFormat: valueMode : entry.value.scheduleHours : entry.value.fteHours\n }}\n \n } @else {\n \n }\n }\n \n }\n @if (!group.lines.length) {\n \n \n {{ 'projects.projects.card.resources.messages.thereAreNoTasks' | translate }}\n \n \n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { VisibleParts } from 'src/app/shared-features/schedule-navigation';\n\n@Component({\n selector: 'tmt-project-resource-toolbar',\n templateUrl: './project-resource-toolbar.component.html',\n styleUrl: './project-resource-toolbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectResourceToolbarComponent extends AbstractToolbar {\n public get scheduleNavigationParts(): VisibleParts[] {\n return this.defaultScheduleNavigationParts.filter(\n (part) =>\n !this.projectResourceDataService.isForecastMode ||\n part !== VisibleParts.planningScaleSelector,\n );\n }\n private readonly defaultScheduleNavigationParts: VisibleParts[] = [\n VisibleParts.calendar,\n VisibleParts.valueModeSelector,\n VisibleParts.planningScaleSelector,\n ];\n\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n public projectResourceService: ProjectResourceService,\n public projectResourceDataService: ProjectResourceDataService,\n ) {\n super(gridService, cdr);\n }\n}\n","
    \n
    \n \n \n \n \n @if (!projectResourceDataService.readonly) {\n
    \n
    \n \n {{ 'shared.actions.clear' | translate }}\n \n
    \n
    \n }\n \n
    \n \n \n \n \n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectResourceSettings } from 'src/app/projects/card/project-resources/models/project-resource-settings.model';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\n\n@Component({\n selector: 'wp-project-resources-calendar-toggler',\n templateUrl: './project-resources-calendar-toggler.component.html',\n styleUrls: ['./project-resources-calendar-toggler.component.scss'],\n standalone: false,\n})\nexport class ProjectResourcesCalendarTogglerComponent {\n constructor(\n public routerGlobals: UIRouterGlobals,\n public projectResourceDataService: ProjectResourceDataService,\n public projectResourceService: ProjectResourceService,\n private localConfigService: LocalConfigService,\n private projectCardService: ProjectCardService,\n ) {}\n\n /**\n * Sets the view mode for the project resources and reinitialize navigationService\n *\n * @param isForecastMode - A boolean indicating whether the forecast mode should be enabled.\n */\n public setViewMode(isForecastMode: boolean): void {\n if (this.projectResourceDataService.isForecastMode === isForecastMode)\n return;\n\n const settings = this.localConfigService.getConfig(ProjectResourceSettings);\n settings.isForecastMode = isForecastMode;\n this.localConfigService.setConfig(ProjectResourceSettings, settings);\n\n this.projectResourceDataService.isForecastMode = isForecastMode;\n this.projectResourceService.initNavigationService(isForecastMode);\n this.projectCardService.reloadTab();\n }\n}\n","
    \n @for (\n mode of [\n { isForecast: true, label: 'forecast' },\n { isForecast: false, label: 'estimate' }\n ];\n track mode.isForecast\n ) {\n \n {{ 'projects.projects.card.resources.view.' + mode.label | translate }}\n
    \n }\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { projectResourcesList } from 'src/app/projects/card/project-resources/models/project-resources.list';\nimport { ProjectResourcesCalendarCommandService } from 'src/app/projects/card/project-resources/core/project-resources-calendar-command.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { ProjectResourcesGridDataService } from 'src/app/projects/card/project-resources/core/project-resources-grid-data.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { PlannerCommandService } from 'src/app/shared-features/planner/core/planner-command.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { UndoRedoService } from 'src/app/shared/services/undo-redo/undo-redo.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectResourceSettings } from 'src/app/projects/card/project-resources/models/project-resource-settings.model';\nimport { ProjectResourceRightSideComponent } from 'src/app/projects/card/project-resources/project-resource-right-side/project-resource-right-side.component';\nimport { ProjectResourceToolbarComponent } from 'src/app/projects/card/project-resources/project-resource-toolbar/project-resource-toolbar.component';\nimport { ResourceTotalCellComponent } from 'src/app/projects/card/project-resources/resource-total-cell/resource-total-cell.component';\n\n@Component({\n selector: 'tmt-project-resources',\n styleUrl: './project-resources.component.scss',\n templateUrl: './project-resources.component.html',\n providers: [\n SavingQueueService,\n ProjectResourceService,\n ProjectResourceDataService,\n ProjectResourcesGridDataService,\n ProjectResourcesCalendarCommandService,\n ScheduleNavigationService,\n PlannerCommandService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: projectResourcesList },\n GridService,\n ListService,\n ],\n standalone: false,\n})\nexport class ProjectResourcesComponent implements OnInit, OnDestroy {\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.none,\n rightSideComponent: ProjectResourceRightSideComponent,\n toolbar: ProjectResourceToolbarComponent,\n commands: [{ name: 'setUserView', handlerFn: () => this.setUserView() }],\n view: this.listService.getGridView(),\n };\n\n public readonly totals = {\n general: ResourceTotalCellComponent,\n totalHours: ResourceTotalCellComponent,\n };\n\n constructor(\n public dataService: ProjectResourceDataService,\n public gridDataService: ProjectResourcesGridDataService,\n public projectResourceService: ProjectResourceService,\n public projectCardService: ProjectCardService,\n private undoRedoService: UndoRedoService,\n private listService: ListService,\n private localConfigService: LocalConfigService,\n ) {}\n\n public async ngOnInit(): Promise {\n this.dataService.undoRedoSessionId = await firstValueFrom(\n this.undoRedoService.startUndoRedoSession(),\n );\n this.dataService.init();\n this.projectResourceService.init(\n this.localConfigService.getConfig(ProjectResourceSettings).isForecastMode,\n );\n }\n\n public ngOnDestroy(): void {\n this.undoRedoService.abortUndoRedoSession(\n this.dataService.undoRedoSessionId,\n );\n }\n\n /** Opens view configuration dialog. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n },\n () => null,\n );\n }\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectResourcesComponent } from './project-resources.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { UndoRedoButtonsComponent } from 'src/app/shared/services/undo-redo/undo-redo-buttons/undo-redo-buttons.component';\nimport { ResourceTotalCellComponent } from 'src/app/projects/card/project-resources/resource-total-cell/resource-total-cell.component';\nimport { MovePlanFormComponent } from 'src/app/projects/card/project-resources/move-plan-form/move-plan-form.component';\nimport { ProjectResourceRightSideComponent } from 'src/app/projects/card/project-resources/project-resource-right-side/project-resource-right-side.component';\nimport { ProjectResourcesCalendarRightGroupComponent } from 'src/app/projects/card/project-resources/project-resource-right-side/project-resources-calendar-right-group/project-resources-calendar-right-group.component';\nimport { ProjectResourceToolbarComponent } from 'src/app/projects/card/project-resources/project-resource-toolbar/project-resource-toolbar.component';\nimport { ProjectResourcesCalendarTogglerComponent } from 'src/app/projects/card/project-resources/project-resources-calendar-toggler/project-resources-calendar-toggler.component';\nimport { ResourceGeneralCellComponent } from 'src/app/projects/card/project-resources/resource-general-cell/resource-general-cell.component';\nimport { ResourceTotalHoursCellComponent } from 'src/app/projects/card/project-resources/resource-total-hours-cell/resource-total-hours-cell.component';\nimport { ResourcesViewFormComponent } from 'src/app/projects/card/project-resources/resources-view-form/resources-view-form.component';\nimport { PlannerModule } from 'src/app/shared-features/planner/planner.module';\n\n@NgModule({\n declarations: [\n ProjectResourcesComponent,\n ResourceGeneralCellComponent,\n ResourceTotalHoursCellComponent,\n ResourceTotalCellComponent,\n MovePlanFormComponent,\n ProjectResourcesCalendarTogglerComponent,\n ResourcesViewFormComponent,\n ProjectResourcesCalendarRightGroupComponent,\n ProjectResourceRightSideComponent,\n ProjectResourceToolbarComponent,\n ],\n imports: [\n ScheduleNavigationModule,\n UndoRedoButtonsComponent,\n CommonModule,\n SharedModule,\n GridModule,\n PlannerModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.resources',\n url: '/resources',\n component: ProjectResourcesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectResourcesModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n Input,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport {\n ResourceViewGroup,\n ResourceViewGroupLine,\n} from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { ProjectResourcesGridDataService } from 'src/app/projects/card/project-resources/core/project-resources-grid-data.service';\nimport {\n ResourceGeneralCellAssignment,\n ResourceGeneralCellTask,\n} from 'src/app/projects/card/project-resources/models/project-resources-grid-view.model';\nimport { Command } from 'src/app/shared-features/planner/models/command.model';\nimport { ProjectResourcesCalendarCommandService } from 'src/app/projects/card/project-resources/core/project-resources-calendar-command.service';\n\n@Component({\n selector: 'tmt-resource-general-cell',\n styleUrls: ['./resource-general-cell.component.scss'],\n templateUrl: './resource-general-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceGeneralCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public readonly resourceType = ResourceType;\n\n public readonly: boolean;\n\n public get controlValue(): ResourceGeneralCellAssignment &\n ResourceGeneralCellTask {\n return this.formGroup.controls[this.column.name].value;\n }\n\n private _rowState: {\n commands: Command[];\n isHover: boolean;\n isMenuOpened: boolean;\n };\n public get rowState(): {\n commands: Command[];\n isHover: boolean;\n isMenuOpened: boolean;\n } {\n return this._rowState;\n }\n\n private groupId: string;\n private correspondingGroup: ResourceViewGroup;\n private correspondingLine: ResourceViewGroupLine | null;\n\n constructor(\n public renderer: Renderer2,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n public elRef: ElementRef,\n public projectResourceService: ProjectResourceService,\n private projectResourceDataService: ProjectResourceDataService,\n private projectResourcesGridDataService: ProjectResourcesGridDataService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private commandService: ProjectResourcesCalendarCommandService,\n ) {\n this.gridService.detectChanges$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n this.initProps();\n }\n\n /**\n * Toggles the expansion state of the group.\n *\n * @param currentValue The current expansion state of the group.\n */\n public expandGroup(currentValue: boolean): void {\n this.correspondingGroup.isExpanded = !currentValue;\n this.formGroup.controls[this.column.name].setValue({\n ...this.controlValue,\n isExpanded: !currentValue,\n });\n this.projectResourcesGridDataService.toggleGroupLineView(\n this.controlValue.id,\n );\n this.cdr.detectChanges();\n //Change rightSide component\n if (this.correspondingGroup.isExpanded) {\n this.projectResourceService.toggleGroup(this.controlValue.id);\n } else {\n this.gridService.detectChanges();\n }\n }\n\n /**\n * Updates the row state to reflect whether it is currently visible or not.\n *\n * @param isVisible A boolean indicating whether the row is visible or not.\n */\n public changeRowStateView(isVisible: boolean): void {\n this.rowState.isHover = isVisible;\n this.cdr.detectChanges();\n }\n\n /**\n * Opens the user information popup.\n *\n * @param userId The ID of the user for whom to open the information popup.\n */\n public openUserInfo(userId: string): void {\n const userNameDiv = document.getElementById(userId);\n const userNameDivWidth = userNameDiv.offsetWidth;\n\n const userNameSpan = document.getElementById(`${userId}-name`);\n const userNameSpanWidth = userNameSpan.offsetWidth;\n\n const target =\n userNameDivWidth < userNameSpanWidth ? userNameDiv : userNameSpan;\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Toggles the visibility of other actual resources. */\n public toggleShowOtherActual(): void {\n this.projectResourceService.toggleShowOtherActual();\n this.gridService.detectChanges();\n }\n\n /** Initializes the component's properties based on the control value. */\n private initProps(): void {\n this.groupId =\n this.controlValue.type === 'assignment'\n ? this.controlValue.id\n : this.controlValue.groupId;\n\n this.correspondingGroup =\n this.controlValue.type === 'otherActual'\n ? this.projectResourceDataService.otherActualGroup\n : this.projectResourceDataService.groups.find(\n (g) => g.id === this.groupId,\n );\n\n this.correspondingLine =\n this.controlValue.type === 'assignment'\n ? null\n : this.correspondingGroup.lines.find(\n (l) => l.taskId === this.controlValue.taskId,\n );\n\n this._rowState = {\n commands:\n this.controlValue.type === 'assignment'\n ? this.commandService.getGroupCommands(this.correspondingGroup)\n : this.commandService.getLineCommands(\n this.correspondingGroup,\n this.correspondingLine,\n ),\n isHover: false,\n isMenuOpened: false,\n };\n }\n}\n","@if (controlValue.type === 'assignment') {\n \n
    \n \n
    \n\n @if (controlValue.resource?.type === resourceType.user) {\n \n
    \n \n {{ controlValue.name }}\n
    \n
    \n {{ controlValue.role?.name }}\n
    \n \n }\n\n @if (!controlValue.resource || controlValue.resource?.type === resourceType.generic) {\n @if (controlValue.name) {\n \n }\n
    \n \n {{ controlValue.name ?? 'projects.projects.card.resources.unassigned' | translate }}\n
    \n
    \n {{ controlValue.role?.name }}\n
    \n \n }\n\n \n \n}\n\n@if (controlValue.type === 'task' && controlValue.taskId) {\n \n
    \n {{ controlValue.name }}\n
    \n @if (rowState && controlValue.id) {\n \n }\n \n}\n\n@if (controlValue.type === 'otherActual') {\n
    \n \n \n
    \n\n \n {{ controlValue.name }}\n \n @if (controlValue.verboseHint) {\n \n }\n \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractTotalCell } from 'src/app/shared-features/grid/grid-cell/abstract-total-cell.directive';\n\n@Component({\n selector: 'tmt-resource-total-cell',\n styleUrls: ['./resource-total-cell.component.scss'],\n templateUrl: './resource-total-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceTotalCellComponent extends AbstractTotalCell {\n constructor(\n public projectCardService: ProjectCardService,\n public projectResourceService: ProjectResourceService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n projectResourceService.changes$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n}\n","@switch (column.name) {\n @case ('general') {\n
    \n {{ 'components.resourceTotalCellComponent.props.hours' | translate }}\n
    \n @if ((projectCardService.project$ | async).financeViewAllowed) {\n
    \n {{ 'components.resourceTotalCellComponent.props.laborCost' | translate }}\n
    \n }\n }\n @case ('totalHours') {\n \n {{ projectResourceService.totalHours | plannerFormat }}\n \n\n @if ((projectCardService.project$ | async).financeViewAllowed) {\n \n {{ projectResourceService.totalCost | zeroToNull | number: '1.0-0' }}\n \n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\nimport { ProjectResourceDataService } from 'src/app/projects/card/project-resources/core/project-resources-data.service';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'tmt-resource-total-hours-cell',\n styleUrls: ['./resource-total-hours-cell.component.scss'],\n templateUrl: './resource-total-hours-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceTotalHoursCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public readonly resourceType = ResourceType;\n\n public readonly: boolean;\n\n public get controlValue(): number {\n return this.formGroup.controls[this.column.name].value;\n }\n\n constructor(\n public renderer: Renderer2,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n public elRef: ElementRef,\n public projectResourceService: ProjectResourceService,\n public projectResourceDataService: ProjectResourceDataService,\n ) {\n merge(this.projectResourceService.changes$, this.gridService.detectChanges$)\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n}\n","@if (\n controlValue &&\n (formGroup.controls.general.value.type !== 'otherActual' ||\n projectResourceService.showOtherActual)\n) {\n {{ controlValue | number }} \n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectResourceService } from 'src/app/projects/card/project-resources/core/project-resources.service';\n\n@Component({\n selector: 'wp-resources-view-form',\n templateUrl: './resources-view-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourcesViewFormComponent implements OnInit, OnDestroy {\n public checkboxes = ['isShowTaskDuration'];\n public form: UntypedFormGroup = this.fb.group(\n this.checkboxes.reduce(\n (result: Record, value) => ({\n ...result,\n [value]: true,\n }),\n {},\n ),\n );\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private service: ProjectResourceService,\n ) {}\n\n public ngOnInit(): void {\n this.service.isShowTaskDuration$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.form.setValue({\n isShowTaskDuration: value,\n });\n });\n\n this.form.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((data) => {\n this.service.setShowTaskDuration(data['isShowTaskDuration']);\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n \n \n \n
    \n @for (item of checkboxes; track item) {\n
    \n \n \n
    \n }\n
    \n
    \n","import { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nimport { MembersCellComponent } from 'src/app/projects/card/shared/members-cell/members-cell.component';\nimport { MembersReadonlyCellComponent } from 'src/app/projects/card/shared/members-cell/members-readonly-cell.component';\n\nexport const PROJECT_TARIFF_LIST: List = {\n name: 'projectTariffs',\n version: 1,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'value',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: false,\n width: 150,\n },\n {\n column: 'expiryDate',\n visibleByDefault: false,\n width: 150,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'assignments',\n visibleByDefault: true,\n width: 300,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 90,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.StringControl,\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n propagationMode: PropagationMode.onExitFromEditing,\n forceCellUpdating: true,\n },\n {\n name: 'value',\n type: GridColumnType.Currency,\n header: 'projects.projects.tariffs.columns.value.header',\n hint: 'projects.projects.tariffs.columns.value.hint',\n fixedWidth: true,\n forceCellUpdating: true,\n },\n {\n name: 'effectiveDate',\n header: 'shared.columns.effectiveDate.title',\n hint: 'shared.columns.effectiveDate.hint',\n type: GridColumnType.Date,\n forceCellUpdating: true,\n },\n {\n name: 'expiryDate',\n header: 'shared.columns.expiryDate.title',\n hint: 'shared.columns.expiryDate.hint',\n type: GridColumnType.Date,\n forceCellUpdating: true,\n },\n {\n name: 'description',\n type: GridColumnType.StringControl,\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'assignments',\n header: 'projects.projects.tariffs.columns.assignments.header',\n hint: 'projects.projects.tariffs.columns.assignments.hint',\n type: GridColumnType.Component,\n component: MembersCellComponent,\n readonlyComponent: MembersReadonlyCellComponent,\n getDefaultValue: () => [],\n forceCellUpdating: true,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.BooleanControl,\n forceCellUpdating: true,\n },\n ],\n};\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ProjectTariffsSettings implements BaseSettings {\n public readonly name = 'ProjectTariffsSettings';\n public version: number;\n public onlyActive: boolean;\n\n public getDefault(): ProjectTariffsSettings {\n return {\n version: 1,\n onlyActive: false,\n } as ProjectTariffsSettings;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\n\n@Component({\n selector: 'tmt-project-tariffs-client-tariff-filter',\n template: '',\n standalone: false,\n})\nexport class ProjectTariffsClientTariffFilterComponent\n implements FilterDetails\n{\n @Input() values: any;\n public detailsForm: UntypedFormGroup = null;\n}\n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ProjectTariffsClientTariffFilterComponent } from './project-tariffs-client-tariff-filter.component';\n\n@Injectable()\nexport class ProjectTariffsClientTariffFilterService extends FilterService {\n public override component: Type =\n ProjectTariffsClientTariffFilterComponent;\n public override hasViewSelector = false;\n public override placeholder =\n 'projects.projects.tariffs.addClientsTariffsModal.filter.ph';\n\n protected override getDefaultValues(): Record {\n return {\n text: '',\n isActive: true,\n };\n }\n\n public override getODataFilter(): Record[] {\n const result: Record[] = [\n {\n isActive: true,\n },\n ];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text.trim());\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n });\n }\n return result;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport _ from 'lodash';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionCardService } from '../../core/project-version-card.service';\nimport { MassOperationHelper } from 'src/app/shared/helpers/mass-operation.helper';\nimport { ProjectTariffsClientTariffFilterService } from './filter/project-tariffs-client-tariff-filter.service';\nimport { ProjectTariffsService } from '../services/project-tariffs.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ClientTariff } from 'src/app/clients/shared/client-tariff.model';\nimport {\n ProjectTariff,\n ProjectTariffRate,\n} from '../models/project-tariff.model';\nimport {\n TariffRate,\n TariffRatesHelper,\n} from 'src/app/shared/modules/tariff-rates/helpers/tariff-rates.helper';\n\n@Component({\n selector: 'tmt-project-tariffs-client-tariff-modal',\n templateUrl: './project-tariffs-client-tariff-modal.component.html',\n styleUrl: './project-tariffs-client-tariff-modal.component.scss',\n providers: [\n {\n provide: FilterService,\n useClass: ProjectTariffsClientTariffFilterService,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectTariffsClientTariffModalComponent implements OnInit {\n @ViewChild('leftTbl') private leftTbl: ElementRef;\n\n @Input() projectId: string;\n @Input() organizationId: string;\n\n public isSaving$ = new BehaviorSubject(false);\n public isLoading$ = new BehaviorSubject(false);\n public leftTableStyles: Record = {};\n public availableTariffs: ClientTariff[] = [];\n public selectedTariffs: ClientTariff[] = [];\n\n private destroyed$ = new Subject();\n\n constructor(\n private filterService: FilterService,\n private notificationService: NotificationService,\n private activeModal: NgbActiveModal,\n private dataService: DataService,\n private projectVersionCardService: ProjectVersionCardService,\n private projectTariffsService: ProjectTariffsService,\n ) {}\n\n ngOnInit(): void {\n this.loadTariffsFromOrganization();\n\n this.filterService.values$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.loadTariffsFromOrganization());\n }\n\n /* Resizes nested table. */\n public resizeLeftTbl(): void {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n /**\n * Adds tariff to selected tariffs list.\n *\n * @param tariff tariff for adding to selected tariffs list.\n * @param index tariff's index for removing from available tariffs list.\n */\n public selectTariff(tariff: ClientTariff, index: number): void {\n this.selectedTariffs.push(tariff);\n this.selectedTariffs = _.sortBy(this.selectedTariffs, ['name']);\n this.availableTariffs.splice(index, 1);\n }\n\n /**\n * Removes tariff from selected tariffs list.\n *\n * @param tariff tariff for adding to available tariffs list.\n * @param index tariff's index for removing from selected tariffs list.\n */\n public removeTariff(tariff: ClientTariff, index: number): void {\n this.availableTariffs.push(tariff);\n this.selectedTariffs.splice(index, 1);\n\n this.availableTariffs = _.sortBy(this.availableTariffs, ['name']);\n }\n\n /* Adds tariffs to project from organization. */\n public addTariffsFromOrganization(): void {\n const tariffs: ProjectTariff[] = [];\n\n this.selectedTariffs.forEach((tariff: ClientTariff) => {\n const projectTariff: Partial = {\n id: Guid.generate(),\n name: tariff.name,\n description: tariff.description,\n isActive: tariff.isActive,\n assignments: [],\n rates: tariff.rates.map((rate) => {\n const newRate: Partial = {\n ...rate,\n id: Guid.generate(),\n };\n\n return newRate as ProjectTariffRate;\n }),\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersionCardService.projectVersion,\n projectTariff,\n this.projectId,\n );\n\n tariffs.push(projectTariff as ProjectTariff);\n });\n\n this.isSaving$.next(true);\n\n const massOperationHelper = new MassOperationHelper(\n tariffs.map((tariff: ProjectTariff) =>\n this.dataService.collection('ProjectTariffs').insert(tariff),\n ),\n { takeUntil: takeUntil(this.destroyed$) },\n );\n massOperationHelper\n .start()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((progress) => {\n if (progress === 100) {\n const successActionsCount = massOperationHelper.completedCount;\n if (massOperationHelper.errors.length) {\n if (\n successActionsCount &&\n massOperationHelper.errors.find(\n (error) =>\n error.result.code === Exception.Common_NameMustBeUnique.code,\n )\n ) {\n this.notificationService.warningLocal(\n 'projects.projects.tariffs.addClientsTariffsModal.messages.addedOnlyUnique',\n );\n }\n\n const uniqueErrors = new Set();\n massOperationHelper.errors.forEach((error) => {\n uniqueErrors.add(error.result?.message || 'shared.unknownError');\n });\n uniqueErrors.forEach((error: string) => {\n this.notificationService.error(error);\n });\n } else if (successActionsCount === tariffs.length) {\n this.notificationService.successLocal(\n 'projects.projects.tariffs.addClientsTariffsModal.messages.added',\n );\n }\n this.activeModal.close();\n this.isSaving$.next(false);\n }\n });\n }\n\n private getCurrencyCode(actualRate: TariffRate): string | null {\n return (\n this.projectTariffsService.currencies.find(\n (c) => c.id === actualRate?.currencyId,\n )?.alpha3Code ?? null\n );\n }\n\n /* Loads organization's tariffs from API. */\n private loadTariffsFromOrganization(): void {\n this.availableTariffs = [];\n this.isLoading$.next(true);\n\n const query: Record = {\n select: ['id', 'name', 'isActive', 'description'],\n expand: {\n rates: {\n select: ['id', 'value', 'effectiveDate', 'currencyId'],\n },\n },\n filter: this.filterService.getODataFilter(),\n };\n\n this.dataService\n .collection('Organizations')\n .entity(this.organizationId)\n .collection('OrganizationTariffs')\n .query(query)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (data: ClientTariff[]) => {\n this.availableTariffs = data;\n this.availableTariffs.forEach((tariff: ClientTariff) => {\n const actualRate = TariffRatesHelper.getActualRate(tariff.rates);\n Object.defineProperty(tariff, 'actualRate', {\n enumerable: false,\n writable: true,\n value: {\n value: actualRate.value,\n currencyCode: this.getCurrencyCode(actualRate),\n effectiveDate: actualRate.effectiveDate,\n },\n });\n });\n this.isLoading$.next(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isLoading$.next(false);\n },\n });\n }\n\n /* Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.tariffs.addClientsTariffsModal.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n {{ 'projects.projects.tariffs.columns.value.header' | translate }}\n \n \n {{ 'shared.columns.effectiveDate.title' | translate }}\n \n \n \n \n
    \n {{ 'shared.props.name' | translate }}\n \n {{ 'shared.props.description' | translate }}\n
    \n
    \n \n \n \n \n {{ 'shared.props.name' | translate }}\n \n \n {{ 'projects.projects.tariffs.columns.value.header' | translate }}\n \n \n {{ 'shared.columns.effectiveDate.title' | translate }}\n \n \n {{ 'shared.props.description' | translate }}\n \n \n \n \n @for (tariff of availableTariffs; track tariff.id) {\n \n \n {{ tariff.name }}\n \n \n {{ tariff['actualRate'].value | wpCurrency: tariff['actualRate'].currencyCode }}\n \n \n {{ tariff['actualRate'].effectiveDate | date: 'shortDate' }}\n \n \n {{ tariff.description }}\n \n \n } @empty {\n @if (!(isLoading$ | async)) {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n }\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n @for (tariff of selectedTariffs; track tariff.id) {\n
    \n
    \n {{ tariff.name }}\n
    \n\n \n
    \n } @empty {\n
    \n {{ 'projects.projects.tariffs.addClientsTariffsModal.noDisplayData' | translate }}\n
    \n }\n
    \n
    \n
    \n
    \n
    \n @if (selectedTariffs.length) {\n \n {{ 'shared.actions.add' | translate }}\n \n }\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject } from 'rxjs';\nimport _ from 'lodash';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { uniqByKey } from 'src/app/shared/validators/uniq-by-key';\nimport { currencyValueRequiredValidator } from 'src/app/shared/validators/currency-value-required';\n\nimport {\n ProjectTariff,\n ProjectTariffRate,\n} from 'src/app/projects/card/project-tariffs/models/project-tariff.model';\nimport { ProjectTariffsService } from 'src/app/projects/card/project-tariffs/services/project-tariffs.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\n\n@Component({\n selector: 'tmt-project-tariff-modal',\n templateUrl: './project-tariff-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectTariffModalComponent implements OnInit {\n @Input() public tariff: ProjectTariff;\n\n public project: Project;\n public currencies: Currency[];\n public isSaving$ = new BehaviorSubject(false);\n public isLoading$ = new BehaviorSubject(true);\n public isRateDateNotUniq: boolean;\n\n public form: UntypedFormGroup = this.fb.group({\n id: Guid.generate(),\n name: ['', Validators.required],\n description: null,\n assignments: null,\n isActive: true,\n initialRate: this.fb.group({\n id: Guid.generate(),\n currencyId: [null],\n value: [null],\n effectiveDate: [null],\n }),\n rates: this.fb.array([]),\n });\n\n public get rates(): UntypedFormArray {\n return this.form.controls['rates'] as UntypedFormArray;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId: string,\n public projectCardService: ProjectCardService,\n public projectTariffsService: ProjectTariffsService,\n public projectVersionCardService: ProjectVersionCardService,\n private notificationService: NotificationService,\n private dataService: DataService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n const ratesForm = this.form.get('rates');\n ratesForm.addValidators(() =>\n uniqByKey(this.form.get('rates') as UntypedFormArray, 'effectiveDate'),\n );\n ratesForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isRateDateNotUniq = ratesForm.hasError('notUniq');\n });\n\n this.project = this.projectCardService.project;\n this.currencies = this.projectTariffsService.currencies;\n\n if (this.tariff) {\n this.form.patchValue(this.tariff);\n this.getProjectTariffRates();\n } else {\n this.form.get('initialRate').patchValue({\n currencyId: this.project.currency.id,\n value: {\n value: 0,\n currencyCode: this.project.currency.alpha3Code,\n },\n });\n this.isLoading$.next(false);\n }\n\n if (this.projectTariffsService.readonly) {\n this.form.disable();\n }\n }\n\n /** Accepts of modal window.*/\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.isRateDateNotUniq) {\n this.notificationService.warningLocal(\n 'projects.projects.tariffs.messages.dateNotUniq',\n );\n\n return;\n }\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n\n return;\n }\n\n this.isSaving$.next(true);\n\n const projectTariff = this.projectTariffsService.prepareTariffData(\n this.form.getRawValue(),\n );\n\n if (this.tariff) {\n this.updateTariff(projectTariff);\n } else {\n this.createTariff(projectTariff);\n }\n }\n\n /** Closes modal window without save. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n private getProjectTariffRates(): void {\n this.dataService\n .collection('ProjectTariffs')\n .query({\n select: ['id'],\n expand: [\n {\n rates: {\n select: [\n 'currencyId',\n 'effectiveDate',\n 'expiryDate',\n 'id',\n 'isActive',\n 'projectTariffId',\n 'value',\n ],\n },\n },\n ],\n filter: [\n {\n id: {\n type: 'guid',\n value: this.tariff.id,\n },\n },\n ],\n })\n .subscribe({\n next: (data) => {\n this.tariff.rates = data[0].rates;\n this.tariff.rates = _.orderBy(this.tariff.rates, ['effectiveDate']);\n this.tariff.rates.forEach((rate) => {\n const code = this.currencies.find(\n (currency) => currency.id === rate.currencyId,\n )?.alpha3Code;\n\n if (!rate.effectiveDate) {\n this.form.get('initialRate').patchValue({\n ...rate,\n value: {\n value: rate.value,\n currencyCode: code,\n },\n });\n } else {\n (this.form.get('rates') as UntypedFormArray).insert(\n 0,\n this.getRateFormGroup({\n ...rate,\n value: {\n value: rate.value,\n currencyCode: code,\n },\n }),\n );\n }\n });\n\n this.isLoading$.next(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isLoading$.next(false);\n },\n });\n }\n\n private updateTariff(tariffDTO: Partial): void {\n this.dataService\n .collection('ProjectTariffs')\n .entity(this.form.value.id)\n .update(tariffDTO)\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'projects.projects.tariffs.messages.edited',\n );\n this.activeModal.close(tariffDTO);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving$.next(false);\n },\n });\n }\n\n private createTariff(tariffDTO: Partial): void {\n this.dataService\n .collection('ProjectTariffs')\n .insert(tariffDTO)\n .subscribe({\n next: (tariff) => {\n this.notificationService.successLocal(\n 'projects.projects.tariffs.messages.created',\n );\n this.activeModal.close(tariff);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving$.next(false);\n },\n });\n }\n\n private getRateFormGroup(\n rate?: Partial | any,\n ): UntypedFormGroup {\n return this.fb.group({\n id: rate?.id ?? Guid.generate(),\n currencyId: rate?.currencyId,\n value: [rate?.value, currencyValueRequiredValidator()],\n effectiveDate: [rate?.effectiveDate, Validators.required],\n });\n }\n}\n","@if (isLoading$ | async) {\n \n} @else {\n
    \n
    \n

    \n {{ tariff?.name ?? 'projects.projects.tariffs.modal.header.create' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n
    \n \n \n \n {{ 'projects.projects.tariffs.messages.initialRate' | translate }}\n \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n @if (!projectTariffsService.readonly) {\n \n {{ (tariff ? 'shared.actions.save' : 'shared.actions.create') | translate }}\n \n }\n\n \n
    \n
    \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport _ from 'lodash';\nimport { DateTime } from 'luxon';\nimport { DatePipe } from '@angular/common';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionCardService } from '../../core/project-version-card.service';\nimport { MassOperationHelper } from 'src/app/shared/helpers/mass-operation.helper';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n ProjectTariff,\n ProjectTariffRate,\n} from '../models/project-tariff.model';\nimport { RateMatricesLinesFilterService } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.service';\nimport { RateMatrixLine } from 'src/app/settings-app/rate-matrix/model/rate-matrix-line.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport { Analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { FormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { RateMatrixStructureCollection } from 'src/app/settings-app/rate-matrix/model/rate-matrix-structure.enum';\nimport { RateMatricesFilter } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-filter.model';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\n\n@Component({\n selector: 'tmt-project-tariffs-rate-matrices-modal',\n templateUrl: './project-tariffs-rate-matrices-modal.component.html',\n styleUrl: './project-tariffs-rate-matrices-modal.component.scss',\n providers: [\n {\n provide: FilterService,\n useClass: RateMatricesLinesFilterService,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectTariffsRateMatricesModalComponent implements OnInit {\n @ViewChild('leftTbl') private leftTbl: ElementRef;\n\n @Input() projectId: string;\n\n public isSaving$ = new BehaviorSubject(false);\n public isLoading$ = new BehaviorSubject(false);\n public isLoadingMatrices$ = new BehaviorSubject(false);\n public leftTableStyles: Record = {};\n public availableLines: (RateMatrixLine & {\n name?: string;\n uniqueName?: string;\n })[] = [];\n public selectedLines: (RateMatrixLine & {\n name?: string;\n uniqueName?: string;\n })[] = [];\n public loadedPartly: boolean;\n public loadLimit = 250;\n public form: UntypedFormGroup;\n public rateMatrices: RateMatrix[] = [];\n public rateMatrixStructureCollection = RateMatrixStructureCollection;\n public baseCurrency: Currency;\n\n private destroyed$ = new Subject();\n\n constructor(\n public appService: AppService,\n public filterService: FilterService,\n private notificationService: NotificationService,\n private activeModal: NgbActiveModal,\n private dataService: DataService,\n private projectVersionCardService: ProjectVersionCardService,\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n private datePipe: DatePipe,\n private currenciesService: CurrenciesService,\n ) {}\n\n ngOnInit(): void {\n this.form = this.fb.group({\n rateMatrix: null,\n });\n this.form\n .get('rateMatrix')\n .valueChanges.pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.changeFilterValues(value);\n });\n this.loadMatrices();\n\n this.filterService.values$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.filterService.values.rateMatrix) {\n this.loadRateMatrixLines();\n }\n });\n\n this.currenciesService.currencies$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: Currency[]) => {\n this.baseCurrency = value.find(\n (item) =>\n item.alpha3Code ===\n this.appService.session.configuration.baseCurrencyCode,\n );\n });\n }\n\n /* Resizes nested table. */\n public resizeLeftTbl(): void {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n /**\n * Adds line to selected lines list.\n *\n * @param line line for adding to selected lines list.\n * @param index line's index for removing from available lines list.\n */\n public selectLine(\n line: RateMatrixLine & { name?: string; uniqueName?: string },\n index: number,\n ): void {\n line.name = this.generateName(line);\n this.selectedLines.push(line);\n this.selectedLines = _.sortBy(this.selectedLines, ['name']);\n this.availableLines.splice(index, 1);\n this.setSelectedLinesNames(line.name);\n }\n\n /**\n * Removes line from selected lines list.\n *\n * @param line line for adding to available lines list.\n * @param index line's index for removing from selected lines list.\n */\n public removeLine(line: RateMatrixLine, index: number): void {\n if (line.rateMatrix.id === this.form.value.rateMatrix.id) {\n this.availableLines.push(line);\n this.availableLines = _.sortBy(this.availableLines, ['name']);\n }\n this.selectedLines.splice(index, 1);\n this.setSelectedLinesNames(this.generateName(line));\n }\n\n /* Adds tariffs to project from rate matrices lines. */\n public addTariffsFromRateMatrixLines(): void {\n const projectTariffs: ProjectTariff[] = [];\n\n this.selectedLines.map(\n (line: RateMatrixLine & { name: string; uniqueName: string }) => {\n const projectTariff: Partial = {\n id: Guid.generate(),\n name: line.uniqueName,\n isActive: true,\n assignments: [],\n rates: [\n {\n currencyId: this.baseCurrency.id,\n effectiveDate: null,\n id: Guid.generate(),\n value: +line.rate,\n } as ProjectTariffRate,\n ],\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersionCardService.projectVersion,\n projectTariff,\n this.projectId,\n );\n\n projectTariffs.push(projectTariff as ProjectTariff);\n },\n );\n\n this.isSaving$.next(true);\n\n const massOperationHelper = new MassOperationHelper(\n projectTariffs.map((tariff: ProjectTariff) =>\n this.dataService.collection('ProjectTariffs').insert(tariff),\n ),\n { takeUntil: takeUntil(this.destroyed$) },\n );\n massOperationHelper\n .start()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((progress) => {\n if (progress === 100) {\n const successActionsCount = massOperationHelper.completedCount;\n if (massOperationHelper.errors.length) {\n if (\n successActionsCount &&\n massOperationHelper.errors.find(\n (error) =>\n error.result.code === Exception.Common_NameMustBeUnique.code,\n )\n ) {\n this.notificationService.warningLocal(\n 'projects.projects.tariffs.addRateMatricesTariffsModal.messages.addedOnlyUnique',\n );\n }\n\n const uniqueErrors = new Set();\n massOperationHelper.errors.forEach((error) => {\n uniqueErrors.add(error.result?.message || 'shared.unknownError');\n });\n uniqueErrors.forEach((error: string) => {\n this.notificationService.error(error);\n });\n } else if (successActionsCount === projectTariffs.length) {\n this.notificationService.successLocal(\n 'projects.projects.tariffs.addRateMatricesTariffsModal.messages.added',\n );\n }\n this.activeModal.close();\n this.isSaving$.next(false);\n }\n });\n }\n\n /* Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /* Loads rate matrices lines from API. */\n private loadRateMatrixLines(): void {\n this.availableLines = [];\n this.isLoading$.next(true);\n this.loadedPartly = false;\n\n const expand = {\n rateMatrix: {},\n };\n for (const key of this.filterService.values.rateMatrix\n .rateMatrixStructure) {\n expand[key] = { select: ['id', 'name'] };\n }\n\n const query: Record = {\n select: ['id', 'rate'],\n expand,\n filter: [...this.filterService.getODataFilter(), { rate: { gt: 0 } }],\n top: this.loadLimit,\n orderBy: this.filterService.values.rateMatrix.rateMatrixStructure\n .map((item) => `${item}/name`)\n .join(', '),\n };\n\n this.dataService\n .collection('RateMatrixLines')\n .query(query)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (data: RateMatrixLine[]) => {\n this.availableLines = data.filter(\n (item) => !this.selectedLines.find((line) => line.id === item.id),\n );\n this.loadedPartly = data.length === this.loadLimit;\n this.isLoading$.next(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isLoading$.next(false);\n },\n });\n }\n\n /**\n * Generates line's name.\n *\n * @param line selected line.\n * @returns line's name.\n */\n private generateName(line: RateMatrixLine): string {\n return line.rateMatrix.rateMatrixStructure\n .filter((item) => line[_.lowerFirst(item)])\n .map((item) => line[_.lowerFirst(item)].name)\n .join(' > ');\n }\n\n /**\n * Sets unique names for selected lines.\n *\n * @param name generated name.\n */\n private setSelectedLinesNames(name: string): void {\n this.selectedLines\n .filter((item) => item.name === name)\n .map((item, i) =>\n i ? (item.uniqueName = `${name} (${i + 1})`) : (item.uniqueName = name),\n );\n }\n\n /* Loads rate matrices list. */\n private loadMatrices(): void {\n this.isLoadingMatrices$.next(true);\n this.dataService\n .collection('RateMatrices')\n .query({\n filter: {\n typeId: { type: 'guid', value: RateMatrix.billingRateTypeId },\n stateId: { type: 'guid', value: RateMatrix.activeStateId },\n },\n orderBy: 'expiryDate',\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (data: RateMatrix[]) => {\n this.isLoadingMatrices$.next(false);\n data.map((item) => {\n const from = item.effectiveDate\n ? this.datePipe.transform(\n new Date(item.effectiveDate),\n 'shortDate',\n )\n : '∞';\n const to = item.expiryDate\n ? this.datePipe.transform(new Date(item.expiryDate), 'shortDate')\n : '∞';\n if (item.effectiveDate || item.expiryDate) {\n item.name += ` (${from} — ${to})`;\n }\n });\n this.rateMatrices = data;\n const actualMatrix =\n data.length === 1\n ? data[0]\n : (data.find(\n (item) =>\n DateTime.fromISO(item.expiryDate).endOf('day') >=\n DateTime.now() || !item.expiryDate,\n ) ?? null);\n if (actualMatrix) {\n actualMatrix.rateMatrixStructure =\n actualMatrix.rateMatrixStructure.map(\n (item) => (item = _.lowerFirst(item) as Analytics),\n );\n }\n this.form.patchValue({ rateMatrix: actualMatrix });\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isLoadingMatrices$.next(false);\n },\n });\n }\n\n /**\n * Changes filter values on matrix change.\n *\n * @param value rate matrix value.\n */\n private changeFilterValues(value: RateMatrix): void {\n if (!value) {\n return;\n }\n value.rateMatrixStructure = value.rateMatrixStructure.map(\n (item) => (item = _.lowerFirst(item) as Analytics),\n );\n const values: RateMatricesFilter = {\n text: this.filterService.values.text,\n rateMatrix: value,\n };\n for (const key of value.rateMatrixStructure) {\n values[key] = this.filterService.values[key] ?? null;\n }\n\n this.filterService.changeValues(values);\n this.cdr.markForCheck();\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.tariffs.addRateMatricesTariffsModal.header' | translate }}\n

    \n \n
    \n
    \n \n @if (!(isLoadingMatrices$ | async) && form.value.rateMatrix) {\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n }\n @if (!(isLoadingMatrices$ | async) && !form.value.rateMatrix) {\n
    \n {{ 'projects.projects.tariffs.addRateMatricesTariffsModal.emptyMatrices' | translate }}\n
    \n }\n @if (form.value.rateMatrix) {\n
    \n
    \n \n \n \n @for (item of form.value.rateMatrix?.rateMatrixStructure; track item) {\n \n {{ 'shared.rateMatrices.' + item | translate }}\n \n }\n \n {{ 'shared.rateMatrices.rate' | translate }}\n \n \n \n \n
    \n \n \n \n @for (item of form.value.rateMatrix?.rateMatrixStructure; track item) {\n \n {{ 'shared.rateMatrices.' + item | translate }}\n \n }\n \n {{ 'shared.rateMatrices.rate' | translate }}\n \n \n \n \n @for (line of availableLines; track line.id) {\n \n @for (item of form.value.rateMatrix?.rateMatrixStructure; track item) {\n \n {{ line[item]?.name }}\n \n }\n \n {{ +line.rate | wpCurrency: baseCurrency?.alpha3Code }}\n \n \n } @empty {\n @if (!(isLoading$ | async)) {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n }\n @if (loadedPartly) {\n \n \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit }\n }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n \n \n }\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n @for (line of selectedLines; track line.id) {\n
    \n
    \n {{ line.uniqueName }}\n
    \n\n \n
    \n } @empty {\n
    \n {{\n 'projects.projects.tariffs.addRateMatricesTariffsModal.noDisplayData' | translate\n }}\n
    \n }\n
    \n
    \n
    \n }\n
    \n
    \n @if (selectedLines.length) {\n \n {{ 'shared.actions.add' | translate }}\n \n }\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { merge } from 'rxjs';\n\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\n\nimport { ProjectTariffsService } from 'src/app/projects/card/project-tariffs/services/project-tariffs.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\n\n@Component({\n selector: 'tmt-project-tariffs-toolbar',\n templateUrl: './project-tariffs-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectTariffsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public isActiveControl = new UntypedFormControl(false);\n\n constructor(\n public projectCardService: ProjectCardService,\n protected override gridService: GridService,\n protected override cdr: ChangeDetectorRef,\n private projectTariffService: ProjectTariffsService,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n\n merge(this.gridService.detectChanges$, this.gridService.selectedGroup$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.detectChanges());\n\n this.isActiveControl.setValue(\n this.projectTariffService.settings.onlyActive,\n {\n emitEvent: false,\n },\n );\n\n this.isActiveControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.projectTariffService.saveSettings({ onlyActive: value });\n this.projectTariffService.load();\n });\n }\n}\n","
    \n
    \n @if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n
    \n
    \n
    \n @if (projectCardService.project?.organization?.id) {\n \n {{ 'projects.projects.tariffs.actions.addTariffsFromClient' | translate }}\n \n }\n \n {{ 'projects.projects.tariffs.actions.addTariffsFromRateMatrices' | translate }}\n \n
    \n
    \n \n
    \n
    \n }\n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n @if (!(gridService.readonly$ | async)) {\n \n \n \n }\n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { merge, startWith } from 'rxjs';\n\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\n\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectTariffsService } from 'src/app/projects/card/project-tariffs/services/project-tariffs.service';\nimport { PROJECT_TARIFF_LIST } from 'src/app/projects/card/project-tariffs/models/project-tariff.list';\n\n@Component({\n selector: 'tmt-project-tariffs',\n template: ``,\n styleUrl: './project-tariffs.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectTeamService,\n ProjectTariffsService,\n SavingQueueService,\n GridService,\n ListService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: PROJECT_TARIFF_LIST },\n ],\n standalone: false,\n})\nexport class ProjectTariffsComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public projectTariffsService: ProjectTariffsService,\n private projectCardService: ProjectCardService,\n private savingQueueService: SavingQueueService,\n ) {}\n\n public ngOnInit(): void {\n merge(this.projectCardService.reloadTab$, this.savingQueueService.error$)\n .pipe(startWith(true), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.projectTariffsService.load());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { UIRouterModule } from '@uirouter/angular';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { TariffRatesModule } from 'src/app/shared/modules/tariff-rates/tariff-rates.module';\n\nimport { ProjectCardSharedModule } from 'src/app/projects/card/shared/project-card-shared.module';\n\nimport { ProjectTariffsComponent } from './project-tariffs.component';\nimport { ProjectTariffsToolbarComponent } from './project-tariffs-toolbar/project-tariffs-toolbar.component';\nimport { ProjectTariffModalComponent } from './project-tariffs-modal/project-tariff-modal.component';\nimport { ProjectTariffsClientTariffModalComponent } from './project-tariffs-client-tariff-modal/project-tariffs-client-tariff-modal.component';\nimport { ProjectTariffsRateMatricesModalComponent } from './project-tariffs-rate-matrices-modal/project-tariffs-rate-matrices-modal.component';\n\n@NgModule({\n declarations: [\n ProjectTariffsComponent,\n ProjectTariffsToolbarComponent,\n ProjectTariffModalComponent,\n ProjectTariffsClientTariffModalComponent,\n ProjectTariffsRateMatricesModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n TariffRatesModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.tariffs',\n url: '/tariffs',\n component: ProjectTariffsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectTariffsModule {}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n Injector,\n inject,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { filter, forkJoin } from 'rxjs';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { CurrencyValue } from 'src/app/shared/models/entities/settings/currency-value.model';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport {\n TariffRate,\n TariffRatesHelper,\n} from 'src/app/shared/modules/tariff-rates/helpers/tariff-rates.helper';\n\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectTariffsSettings } from 'src/app/projects/card/project-tariffs/models/project-tariffs.settings';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\n\nimport {\n ProjectTariff,\n ProjectTariffAssignment,\n ProjectTariffDTO,\n} from '../models/project-tariff.model';\nimport { ProjectTariffModalComponent } from '../project-tariffs-modal/project-tariff-modal.component';\nimport { ProjectTariffsToolbarComponent } from '../project-tariffs-toolbar/project-tariffs-toolbar.component';\nimport { ProjectTariffsClientTariffModalComponent } from '../project-tariffs-client-tariff-modal/project-tariffs-client-tariff-modal.component';\nimport { ProjectTariffsRateMatricesModalComponent } from 'src/app/projects/card/project-tariffs/project-tariffs-rate-matrices-modal/project-tariffs-rate-matrices-modal.component';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n@Injectable()\nexport class ProjectTariffsService {\n public settings: ProjectTariffsSettings;\n public currencies: Currency[];\n public formArray = this.fb.array([]);\n public gridOptions: GridOptions = {\n sorting: false,\n clientTotals: true,\n resizableColumns: true,\n selectionType: SelectionType.row,\n toolbar: ProjectTariffsToolbarComponent,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.createTariff();\n },\n },\n {\n name: 'openAddTariffsFromClientModal',\n handlerFn: () => {\n this.openAddTariffsFromClientModal();\n },\n },\n {\n name: 'openAddTariffsFromRateMatricesModal',\n handlerFn: () => {\n this.openAddTariffsFromRateMatricesModal();\n },\n },\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup: UntypedFormGroup) => !!formGroup,\n handlerFn: () => {\n this.editTariff(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) => !!formGroup,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteTariff(formGroup.getRawValue()),\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => true,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.editTariff(formGroup.getRawValue());\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteTariff(formGroup.getRawValue()),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n private destroyRef = inject(DestroyRef);\n /** Prevents autosaving. */\n private isStopSaving = false;\n\n public get readonly(): boolean {\n return (\n !this.projectCardService.project.tariffsEditAllowed ||\n !this.projectVersionCardService.projectVersion.editAllowed\n );\n }\n\n constructor(\n @Inject('entityId') public projectId: string,\n private projectCardService: ProjectCardService,\n private projectTeamService: ProjectTeamService,\n private projectVersionCardService: ProjectVersionCardService,\n private projectVersionDataService: ProjectVersionDataService,\n private currenciesService: CurrenciesService,\n private listService: ListService,\n private gridService: GridService,\n private dataService: DataService,\n private savingQueueService: SavingQueueService,\n private notificationService: NotificationService,\n private localConfigService: LocalConfigService,\n private fb: UntypedFormBuilder,\n private modal: NgbModal,\n private injector: Injector,\n ) {\n this.settings = localConfigService.getConfig(ProjectTariffsSettings);\n this.projectTeamService.assignmentTitleWithoutUnits = true;\n }\n\n /** Loads project tariffs. */\n public load(): void {\n this.savingQueueService.save().then(\n () => {\n this.gridService.setLoadingState(true);\n this.formArray.clear();\n\n const query: any = {\n expand: [\n {\n assignments: {\n select: ['*'],\n },\n },\n ],\n filter: [],\n };\n\n if (this.settings.onlyActive) {\n query.filter.push({\n isActive: true,\n });\n }\n\n forkJoin([\n this.projectVersionDataService\n .projectCollectionEntity(\n this.projectVersionCardService.projectVersion,\n this.projectId,\n )\n .collection('ProjectTariffs')\n .query(query),\n this.projectTeamService.getTeamMembers(\n this.projectVersionCardService.projectVersion,\n ),\n this.currenciesService.currencies$,\n ]).subscribe({\n next: (value) => {\n const [tariffs, teamMembers, currencies] = value;\n this.currencies = currencies as Currency[];\n\n tariffs.sort(naturalSort('name'));\n\n tariffs.forEach((tariff) => {\n tariff.assignments.forEach((assignment) => {\n assignment.projectTeamMember = teamMembers.find(\n (t) => t.id === assignment.projectTeamMemberId,\n );\n });\n\n this.formArray.push(this.getTariffFormGroup(tariff));\n });\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n },\n () => null,\n );\n }\n\n /** Opens modal window for creating tariff. */\n public createTariff(): void {\n const modalRef = this.modal.open(ProjectTariffModalComponent, {\n injector: this.injector,\n });\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /** Opens modal window for adding tariffs from client. */\n public openAddTariffsFromClientModal(): void {\n const ref = this.modal.open(ProjectTariffsClientTariffModalComponent, {\n size: 'xxl',\n injector: this.injector,\n });\n const instance =\n ref.componentInstance as ProjectTariffsClientTariffModalComponent;\n instance.projectId = this.projectId;\n instance.organizationId = this.projectCardService.project.organization.id;\n ref.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /** Opens modal window for adding tariffs from rate matrices. */\n public openAddTariffsFromRateMatricesModal(): void {\n const ref = this.modal.open(ProjectTariffsRateMatricesModalComponent, {\n size: 'xxl',\n injector: this.injector,\n });\n const instance =\n ref.componentInstance as ProjectTariffsRateMatricesModalComponent;\n instance.projectId = this.projectId;\n ref.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Opens modal window for editing tariff.\n *\n * @param tariff editing tariff.\n */\n public editTariff(tariff: ProjectTariff): void {\n const modalRef = this.modal.open(ProjectTariffModalComponent, {\n injector: this.injector,\n });\n\n (modalRef.componentInstance as ProjectTariffModalComponent).tariff = tariff;\n\n modalRef.result.then(\n (tariff) => {\n const actualRate = TariffRatesHelper.getActualRate(tariff.rates);\n const tariffFormGroup = this.formArray.controls.find(\n (control) => control.getRawValue().id === tariff.id,\n ) as UntypedFormGroup;\n\n this.gridService.clearSelectedGroups();\n\n this.isStopSaving = true;\n tariffFormGroup.patchValue({\n ...tariff,\n value: this.getCurrencyValue(actualRate),\n effectiveDate: actualRate?.effectiveDate,\n });\n this.isStopSaving = false;\n\n this.gridService.detectChanges();\n },\n () => null,\n );\n }\n\n /**\n * Deletes tariff.\n *\n * @param tariff tariff.\n */\n public deleteTariff(tariff: ProjectTariff): void {\n this.dataService\n .collection('ProjectTariffs')\n .entity(tariff.id)\n .delete()\n .subscribe({\n next: () => {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === tariff.id,\n );\n this.formArray.removeAt(index);\n\n this.gridService.selectGroup(\n (this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null) as UntypedFormGroup,\n );\n\n this.gridService.detectChanges();\n this.notificationService.successLocal(\n 'projects.projects.tariffs.messages.deleted',\n );\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Saves settings.\n *\n * @param value Project tariffs settings.\n */\n public saveSettings(value: Partial): void {\n this.settings = Object.assign(this.settings, value);\n this.localConfigService.setConfig(ProjectTariffsSettings, this.settings);\n }\n\n /** Transforms data to project tariff.\n *\n * @param formData `formGroup` value.\n *\n * @returns project tariff.\n */\n public prepareTariffData(formData: any): ProjectTariff {\n const assignments: ProjectTariffAssignment[] =\n formData.assignments?.map((memberValue: any) => ({\n id: memberValue?.id,\n projectTariffId: formData.id,\n projectTeamMemberId: memberValue.projectTeamMember?.id,\n projectTeamMember: memberValue.projectTeamMember,\n isAllTeamRole: memberValue.isAllTeamRole,\n })) ?? [];\n\n const projectTariff: Partial = {\n id: formData.id,\n name: formData.name,\n description: formData.description,\n isActive: formData.isActive,\n assignments,\n };\n\n if (formData.rates) {\n projectTariff.rates = formData.rates\n .concat([formData.initialRate])\n .map((rateValue: any) => ({\n id: rateValue.id,\n currencyId:\n this.currencies.find(\n (currency) =>\n currency.alpha3Code === rateValue.value?.currencyCode,\n )?.id ?? this.projectCardService.project.currency.id,\n value: rateValue.value?.value ?? 0,\n effectiveDate: rateValue.effectiveDate,\n }));\n }\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.projectVersionCardService.projectVersion,\n projectTariff,\n this.projectId,\n );\n\n return projectTariff as ProjectTariff;\n }\n\n private getTariffFormGroup(tariff: ProjectTariffDTO): UntypedFormGroup {\n const tariffGroup = this.fb.group({\n id: tariff.id,\n name: [\n tariff.name,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n value: {\n value: tariff.rate ?? null,\n currencyCode: tariff.currency?.alpha3Code,\n },\n effectiveDate: tariff?.effectiveDate,\n expiryDate: tariff?.expiryDate,\n description: tariff.description,\n isActive: tariff.isActive,\n assignments: [tariff.assignments],\n });\n\n tariffGroup.valueChanges\n .pipe(\n filter(() => !this.isStopSaving),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((formData) => {\n if (tariffGroup.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.entityNotSaved',\n );\n return;\n }\n\n const projectTariff = this.prepareTariffData(formData);\n delete projectTariff.id;\n\n this.savingQueueService.addToQueue(formData.id, () =>\n this.dataService\n .collection('ProjectTariffs')\n .entity(formData.id)\n .patch(projectTariff),\n );\n });\n\n return tariffGroup;\n }\n\n private getCurrencyValue(rate: TariffRate): CurrencyValue {\n return {\n value: rate?.value ?? null,\n currencyCode:\n this.currencies.find((c) => c.id === rate?.currencyId)?.alpha3Code ??\n null,\n };\n }\n\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n}\n","import { DestroyRef, Injectable, inject, signal } from '@angular/core';\nimport _ from 'lodash';\nimport { DateTime } from 'luxon';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n GraphNode,\n TimelineGraph,\n} from 'src/app/projects/card/project-tasks/shared/models/timeline-graph.model';\nimport {\n ProjectTask,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectTasksDataService } from './project-tasks-data.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ScheduleService } from 'src/app/core/schedule.service';\n\n@Injectable()\nexport class ProjectTaskDependenciesService {\n private allowedLeftMarkerTaskIdsSubject = new BehaviorSubject<\n string[] | null\n >(null);\n public allowedLeftMarkerTaskIds$ =\n this.allowedLeftMarkerTaskIdsSubject.asObservable();\n private allowedRightMarkerTaskIdsSubject = new BehaviorSubject<\n string[] | null\n >(null);\n public allowedRightMarkerTaskIds$ =\n this.allowedRightMarkerTaskIdsSubject.asObservable();\n\n private isCreatingDependencySubject = new BehaviorSubject(false);\n public isCreatingDependency$ =\n this.isCreatingDependencySubject.asObservable();\n\n public dependencyGraph: TimelineGraph;\n\n private get defaultAllowedNodes(): GraphNode[] {\n if (!this.dataService.tasks?.length) return [];\n return [\n ...this.dataService.tasks.map(\n (task) => ({ id: task.id, type: 'start' }) as GraphNode,\n ),\n ...this.dataService.tasks.map(\n (task) => ({ id: task.id, type: 'finish' }) as GraphNode,\n ),\n ];\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private dataService: ProjectTasksDataService,\n private scheduleService: ScheduleService,\n ) {\n this.dataService.syncDependencies$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.syncDependencyGraph());\n }\n\n /**\n * Sets the list of allowed task nodes for dependency markers.\n *\n * @param allowedTaskNodes - The list of allowed task nodes.\n */\n public setAllowedMarkerTaskIds(allowedTaskNodes: GraphNode[]) {\n this.allowedLeftMarkerTaskIdsSubject.next(\n allowedTaskNodes.filter((m) => m.type === 'start').map((m) => m.id),\n );\n this.allowedRightMarkerTaskIdsSubject.next(\n allowedTaskNodes.filter((m) => m.type === 'finish').map((m) => m.id),\n );\n }\n\n /** Sets default taskIds list of allowed dependency markers. */\n public setDefaultAllowedMarkerTaskIds(): void {\n if (this.isCreatingDependencySubject.getValue()) return;\n\n this.allowedLeftMarkerTaskIdsSubject.next(\n this.defaultAllowedNodes\n .filter((m) => m.type === 'start')\n .map((m) => m.id),\n );\n this.allowedRightMarkerTaskIdsSubject.next(\n this.defaultAllowedNodes\n .filter((m) => m.type === 'finish')\n .map((m) => m.id),\n );\n }\n\n /** Turns on/turn off creating dependency property. */\n public setIsCreatingDependency(isCreating: boolean) {\n this.isCreatingDependencySubject.next(isCreating);\n }\n\n /**\n * Retrieves the list of allowed predecessor task nodes based on the specified dependency type and task ID.\n *\n * @param taskId - The ID of the task for which to find allowed predecessor task nodes.\n * @param dependencyType - The type of dependency to consider for filtering allowed predecessor task nodes.\n * @param isRemoveExistingPredecessorTasks - Optional flag indicating whether to remove existing predecessor tasks from the allowed list. Defaults to true.\n * @param targetTasks - Optional list of target tasks to consider for allowed predecessor task nodes. If not provided, the default allowed nodes are used.\n * @returns An array of GraphNode objects representing the allowed predecessor task nodes.\n */\n public getAllowedPredecessorTaskNodes(\n taskId: string,\n dependencyType: ProjectTaskDependencyType,\n targetTasks?: ProjectTask[],\n ): GraphNode[] {\n let allowedNodes: GraphNode[];\n let dependentNode: GraphNode;\n\n // Determine the source of allowed nodes based on the presence of targetTasks\n if (targetTasks) {\n allowedNodes = [\n ...targetTasks.map((t) => ({ id: t.id, type: 'start' }) as GraphNode),\n ...targetTasks.map((t) => ({ id: t.id, type: 'finish' }) as GraphNode),\n ];\n } else {\n allowedNodes = this.defaultAllowedNodes;\n }\n\n // Filter allowed nodes based on the dependency type and set the dependent node\n switch (dependencyType) {\n case ProjectTaskDependencyType.finishToStart:\n allowedNodes = allowedNodes.filter((n) => n.type === 'finish');\n dependentNode = { id: taskId, type: 'start' };\n break;\n case ProjectTaskDependencyType.finishToFinish:\n allowedNodes = allowedNodes.filter((n) => n.type === 'finish');\n dependentNode = { id: taskId, type: 'finish' };\n break;\n case ProjectTaskDependencyType.startToFinish:\n allowedNodes = allowedNodes.filter((n) => n.type === 'start');\n dependentNode = { id: taskId, type: 'finish' };\n break;\n case ProjectTaskDependencyType.startToStart:\n allowedNodes = allowedNodes.filter((n) => n.type === 'start');\n dependentNode = { id: taskId, type: 'start' };\n break;\n default:\n return [];\n }\n\n // Remove marker ids which provides circular dependency\n allowedNodes = this.removeViolationMarkers(\n dependentNode,\n allowedNodes,\n false,\n targetTasks,\n );\n\n return allowedNodes;\n }\n\n /**\n * Filters the dependency markers based on the predecessor node.\n *\n * @param predecessorNode - The predecessor node to filter the markers.\n */\n public filterDependencyMarkers(predecessorNode: GraphNode): void {\n let allowedNodes = this.defaultAllowedNodes;\n\n allowedNodes = allowedNodes.filter((node) =>\n this.dependencyGraph.checkIsPathAllowed(predecessorNode, node),\n );\n\n this.setAllowedMarkerTaskIds(allowedNodes);\n }\n\n /**\n * Determines if task is allowed to increase its level considering existing\n * dependencies and returns corresponding boolean value. If any existing\n * dependency within branch became circular, increase is not allowed.\n *\n * @param taskId - task under test.\n * @param tasks - project tasks after increase.\n * @param graph - dependency graph after increase.\n */\n public checkIfIncreaseAllowed(\n taskId: string,\n tasks: ProjectTask[],\n graph: TimelineGraph,\n ): boolean {\n const task = tasks.find((t) => t.id === taskId);\n const childTasks = this.getAllChildTasks(task.id, tasks);\n const branchTasks = [task, ...childTasks];\n const anyDependencyIsCircular = branchTasks.some((bt) =>\n bt.dependencies.some((d) => {\n const beginNodeType =\n d.type === ProjectTaskDependencyType.startToFinish ||\n d.type === ProjectTaskDependencyType.startToStart\n ? 'start'\n : 'finish';\n const endNodeType =\n d.type === ProjectTaskDependencyType.startToStart ||\n d.type === ProjectTaskDependencyType.startToFinish\n ? 'start'\n : 'finish';\n const beginNode: GraphNode = { id: bt.id, type: beginNodeType };\n const endNode: GraphNode = { id: d.predecessorId, type: endNodeType };\n\n return graph.checkIsPathAllowed(beginNode, endNode);\n }),\n );\n return !anyDependencyIsCircular;\n }\n\n /** Checks has task dependent tasks.\n *\n * @param taskId task id for checking\n * @returns availability of the dependent tasks for the project task\n */\n public checkHasDependentTasks(taskId: string): boolean {\n return !!this.dataService.tasks.find((task) =>\n task.dependencies.find(\n (dependency) => dependency.predecessorId === taskId,\n ),\n );\n }\n\n /**\n * Returns date limited by task own dependencies and it summary tasks dependencies.\n *\n * @param task target task\n * @param exceptionTaskIds Exclude dependencies of predecessor tasks of this array.\n * @returns min allowed date for target task\n */\n public findMinStartAllowedDate(\n task: ProjectTask,\n exceptionTaskIds?: string[],\n ): DateTime {\n /** Return min start allowed date by dependency chain. */\n const findDateByDependencies = (handleTask: ProjectTask): string => {\n if (handleTask.dependencies.length) {\n const predecessorTasks = this.dataService.tasks.filter((t) =>\n handleTask.dependencies\n .map((dependency) => dependency.predecessorId)\n .filter((predecessorId) => {\n if (exceptionTaskIds?.length) {\n return !exceptionTaskIds.includes(predecessorId);\n } else {\n return true;\n }\n })\n .includes(t.id),\n );\n\n return _.max([\n ...predecessorTasks.map((predecessorTask) => predecessorTask.endDate),\n ]);\n } else {\n return null;\n }\n };\n\n /** Returns min start allowed date by dependency chain of summary tasks. */\n const findDateBySummaryTask = (handleTask: ProjectTask): string | null => {\n if (!handleTask.leadTaskId) {\n return null;\n }\n\n const leadTask = this.dataService.tasks.find(\n (t) => t.id === handleTask.leadTaskId,\n );\n if (exceptionTaskIds?.includes(leadTask?.id)) {\n return null;\n }\n\n if (!leadTask.dependencies.length) {\n return findDateBySummaryTask(leadTask);\n }\n\n const predecessorTasks = this.dataService.tasks.filter((t) =>\n leadTask.dependencies\n .map((dependency) => dependency.predecessorId)\n .includes(t.id),\n );\n\n return _.max([\n ...predecessorTasks.map((predecessorTask) => predecessorTask.endDate),\n ]);\n };\n\n const dateByDependencies = findDateByDependencies(task);\n const dateBySummaryTask = findDateBySummaryTask(task);\n\n const minDate = DateTime.fromISO(\n _.max([dateByDependencies, dateBySummaryTask]),\n ).plus({ days: 1 });\n\n return minDate;\n }\n\n /**\n * Builds a TimelineGraph from the provided array of ProjectTask objects.\n *\n * @param tasks - The array of ProjectTask objects to build the graph from.\n * @returns A new TimelineGraph instance constructed from the provided tasks.\n */\n public buildGraph(tasks: ProjectTask[]): TimelineGraph {\n return new TimelineGraph(tasks, this.scheduleService);\n }\n\n /** Synchronizes current task dependencies state with the graph. */\n public syncDependencyGraph() {\n this.dependencyGraph = new TimelineGraph(\n this.dataService.tasks,\n this.scheduleService,\n );\n const criticalPathElements = this.dependencyGraph.getCriticalPathElements();\n this.dataService.criticalDependencies$.next(\n criticalPathElements.dependencies,\n );\n this.dataService.criticalTaskIds$.next(criticalPathElements.taskIds);\n }\n\n /**\n * Returns all child task chain in the flat array.\n *\n * @param leadTaskId - id of the task for which searches child tasks\n * @param targetTasks - project tasks array for search (default uses array from data service)\n * @returns all child tasks\n */\n public getAllChildTasks(\n leadTaskId: string,\n targetTasks?: ProjectTask[],\n ): ProjectTask[] {\n const tasks = targetTasks ? targetTasks : this.dataService.tasks;\n if (!this.dataService.checkIsLeadTask(leadTaskId, targetTasks)) {\n return [];\n }\n\n const findFirstLevelChildren = (taskId: string) =>\n tasks.filter((t) => t.leadTaskId === taskId);\n\n return findFirstLevelChildren(leadTaskId).flatMap((childTask) => [\n childTask,\n ...this.getAllChildTasks(childTask.id, targetTasks),\n ]);\n }\n\n /**\n * Removes nodes that would violate dependency rules from the allowed nodes list.\n *\n * @param targetNode - The target node to check against for circular dependencies.\n * @param allowedNodes - The list of nodes to filter for circular dependencies.\n * @param isNodePredecessor - Indicates if the node is a predecessor or dependent. Defaults to true.\n * @param targetTasks - Optional list of target tasks to use for creating a custom dependency graph. Defaults to undefined.\n * @returns A list of allowed nodes.\n */\n private removeViolationMarkers(\n targetNode: GraphNode,\n allowedNodes: GraphNode[],\n isNodePredecessor = true,\n targetTasks?: ProjectTask[],\n ): GraphNode[] {\n const taskIdsToFilter = [];\n\n let dependencyGraph: TimelineGraph;\n\n if (targetTasks) {\n dependencyGraph = new TimelineGraph(targetTasks, this.scheduleService);\n } else {\n dependencyGraph = this.dependencyGraph;\n }\n\n allowedNodes.forEach((node) => {\n const [beginNode, endNode] = isNodePredecessor\n ? [targetNode, node]\n : [node, targetNode];\n\n const allowed = dependencyGraph.checkIsPathAllowed(beginNode, endNode);\n\n if (!allowed) {\n taskIdsToFilter.push(node);\n }\n });\n\n allowedNodes = _.difference(allowedNodes, taskIdsToFilter);\n return allowedNodes;\n }\n\n /**\n * Returns all summary task chain in the flat array.\n *\n * @param taskId - id of the task for which searches summary tasks.\n * @param targetTasks - project tasks array for search (default uses array from data service).\n * @param excludeMain - determines whether to exclude main task from resulting tasks.\n * @returns all parent tasks.\n */\n private getAllSummaryTasks(\n taskId: string,\n targetTasks?: ProjectTask[],\n excludeMain = false,\n ): ProjectTask[] {\n const tasks = targetTasks ? targetTasks : this.dataService.tasks;\n const task = tasks.find((t) => t.id === taskId);\n if (!task.leadTaskId) {\n return [];\n }\n\n const findFirstLevelSummaryTask = (childTask: ProjectTask) => [\n tasks.find((t) => t.id === childTask.leadTaskId),\n ];\n\n let summaryTasks = findFirstLevelSummaryTask(task).flatMap(\n (summaryTask) => [\n summaryTask,\n ...this.getAllSummaryTasks(summaryTask.id, targetTasks),\n ],\n );\n if (excludeMain) {\n summaryTasks = summaryTasks.filter((st) => !!st.leadTaskId);\n }\n return summaryTasks;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { BehaviorSubject, forkJoin, Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport {\n ProjectTask,\n ProjectTaskAssignment,\n ProjectTaskDependency,\n ProjectTaskType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectVersionDataService } from '../../../project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from '../../../project-versions/project-version-util';\nimport { ProjectVersionCardService } from '../../core/project-version-card.service';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { ProjectTasksCommandsService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-commands.service';\nimport { ProjectTaskView } from 'src/app/projects/card/project-tasks/shared/models/project-task-view.enum';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Injectable()\nexport class ProjectTasksDataService {\n private destroyed$ = new Subject();\n\n public undoRedoSessionId: string;\n\n /** Reload data subject */\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n\n /** Loading data subject */\n private isLoadingSubject = new Subject();\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n /** Update data subject */\n private updateSubject = new Subject();\n public update$ = this.updateSubject.asObservable();\n\n /** Sync dependencies subject. */\n private syncDependenciesSubject = new Subject();\n public syncDependencies$ = this.syncDependenciesSubject.asObservable();\n\n public readonly = false;\n public isInherited = false;\n\n public formArray: UntypedFormArray = this.fb.array([]);\n public totals: Dictionary = {};\n\n public readonly projectTaskView = ProjectTaskView;\n\n // Represents the dates changed in the timeline. If true, no need add a duration for task moving.\n public timelineDateChanges: { startDate: boolean; endDate: boolean } = {\n startDate: false,\n endDate: false,\n };\n\n public project: Project;\n\n public getTasksCollection = () => this.data.collection('ProjectTasks');\n\n public summaryFields = [\n 'plannedHours',\n 'plannedCost',\n 'estimatedHours',\n 'estimatedCost',\n 'actualHours',\n 'actualCost',\n 'percentComplete',\n ];\n\n public summaryEditableFields = ['estimatedHours'];\n\n /** Loaded task list. Includes all tasks of the project. */\n public tasks: ProjectTask[];\n public members: ProjectTeamMember[];\n\n public deletingTaskIds: string[] = [];\n public creatingTaskIds: string[] = [];\n\n public isShowMainTask$ = new BehaviorSubject(true);\n public isShowPlannedTasks$ = new BehaviorSubject(false);\n public isShowCriticalPath$ = new BehaviorSubject(false);\n\n public criticalDependencies$ = new BehaviorSubject<\n {\n taskId: string;\n dependency: ProjectTaskDependency;\n }[]\n >([]);\n public criticalTaskIds$ = new BehaviorSubject([]);\n\n private loadingSubscription: Subscription;\n private blockFormGroupChangeListener = false;\n\n constructor(\n @Inject('entityId') public entityId: string,\n public scheduleService: ScheduleService,\n private commands: ProjectTasksCommandsService,\n private projectTeamService: ProjectTeamService,\n private autosave: SavingQueueService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private customFieldService: CustomFieldService,\n private projectCardService: ProjectCardService,\n private translateService: TranslateService,\n private blockUI: BlockUIService,\n ) {}\n\n /** Returns actual task row version.\n *\n * @param taskId id of the target task\n * @returns row version of the target task\n */\n public getRowVersion = (taskId: string): string =>\n this.getTask(taskId).rowVersion;\n\n /**\n * Reloads data\n */\n public reload() {\n this.reloadSubject.next();\n }\n\n /**\n * Loads project data with optional loading bar display.\n *\n * @param isShowLoadingBar Flag to show loading bar (default: true)\n */\n public load(isShowLoadingBar = true) {\n this.projectTeamService.reset(this.versionCardService.projectVersion);\n this.autosave.save().then(\n () => {\n if (isShowLoadingBar) {\n this.formArray.clear();\n this.totals = null;\n this.tasks = [];\n }\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n if (isShowLoadingBar) {\n this.setIsLoading(true);\n } else {\n this.blockUI.start();\n }\n\n /** Generate a request. */\n const query = this.getTasksQuery();\n this.loadingSubscription = forkJoin({\n members: this.projectTeamService.getTeamMembers(\n this.versionCardService.projectVersion,\n ),\n totalTasks: this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.entityId,\n )\n .function('GetTasks')\n .query(null, query),\n }).subscribe({\n next: (result) => {\n this.members = result.members;\n this.tasks = result.totalTasks as ProjectTask[];\n // Prepares tasks for view.\n this.tasks.forEach((totalTask) => {\n this.prepareTaskPropertyForView(totalTask);\n // Set task percent complete\n totalTask.percentComplete =\n totalTask.estimatedHours && totalTask.actualHours\n ? totalTask.actualHours / totalTask.estimatedHours\n : 0;\n totalTask.estimatedHours ??= null;\n totalTask.actualHours ??= null;\n totalTask.plannedStartDate ??= null;\n totalTask.plannedEndDate ??= null;\n });\n\n // Expands main task.\n const mainTask = this.tasks.find((task) => !task.leadTaskId);\n this.addExpanded(mainTask?.id);\n\n this.updateSummaryValues();\n this.updateView();\n this.syncDependenciesSubject.next();\n\n if (isShowLoadingBar) {\n this.setIsLoading(false);\n } else {\n this.blockUI.stop();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n if (isShowLoadingBar) {\n this.setIsLoading(false);\n } else {\n this.blockUI.stop();\n }\n },\n });\n },\n () => null,\n );\n }\n\n /** Change some properties in the task for work with them in the UI.\n *\n * @param task task for modify.\n */\n public prepareTaskPropertyForView(task: Partial): void {\n if (task.updatedAssignments) {\n task.projectTaskAssignments = task.updatedAssignments;\n }\n Object.keys(task).forEach((key) => {\n switch (key) {\n case 'projectTaskAssignments':\n task.projectTaskAssignments.forEach((ass) => {\n if (ass.projectTeamMemberId) {\n ass.projectTeamMember = this.members.find(\n (m) => m.id === ass.projectTeamMemberId,\n );\n }\n });\n break;\n }\n });\n }\n\n /** Determines if the task is leading.\n *\n * @param taskId - id of the looking task\n * @param targetTasks - project tasks array for search (default uses array from this service)\n */\n public checkIsLeadTask(taskId: string, targetTasks?: ProjectTask[]): boolean {\n const tasks = targetTasks ? targetTasks : this.tasks;\n if (tasks.length === 1) {\n return false;\n }\n return taskId ? !!tasks.find((task) => task.leadTaskId === taskId) : false;\n }\n\n /**\n * Returns tasks query for request and enriches query with custom fields.\n *\n * @returns tasks query for request\n */\n private getTasksQuery() {\n const query: any = {\n select: [\n 'id',\n 'name',\n 'description',\n 'number',\n 'indent',\n 'leadTaskId',\n 'allowTimeEntry',\n 'startDate',\n 'endDate',\n 'estimatedCost',\n 'estimatedHours',\n 'plannedCost',\n 'plannedHours',\n 'actualCost',\n 'actualHours',\n 'isActive',\n 'rowVersion',\n 'dependencies',\n 'structNumber',\n 'type',\n 'effortDriven',\n 'duration',\n 'isMilestone',\n 'plannedStartDate',\n 'plannedEndDate',\n 'categoryId',\n ],\n expand: [\n {\n projectTaskAssignments: {\n select: [\n 'id',\n 'isAllTeamRole',\n 'isUnassigned',\n 'projectTariffId',\n 'projectTeamMemberId',\n 'units',\n ],\n expand: [\n {\n projectTariff: {\n select: ['id', 'name'],\n },\n },\n ],\n },\n },\n ],\n };\n\n ProjectVersionUtil.addProjectSelectFields(\n this.versionCardService.projectVersion,\n query.select,\n );\n this.customFieldService.enrichQuery(query, 'ProjectTask');\n\n return query;\n }\n\n /** Adds task to expanded tasks list. */\n public addExpanded(id: string) {\n if (!this.projectCardService.expandedTasks.includes(id)) {\n this.projectCardService.expandedTasks.push(id);\n }\n }\n\n /** Updates summary values for collapsible cells. */\n public updateSummaryValues(): void {\n if (!this.tasks.length) {\n return;\n }\n\n this.tasks.forEach((task) => {\n this.summaryFields.forEach((f) => {\n task[`${f}Sum`] = 0;\n });\n });\n\n let maxIndent = _.maxBy(this.tasks, (t) => t.indent).indent;\n while (maxIndent !== -1) {\n const tasksInIndent = this.tasks.filter((t) => t.indent === maxIndent);\n\n tasksInIndent.forEach((task) => {\n this.summaryFields.forEach((f) => {\n task[`${f}Sum`] += task[f] ?? 0;\n });\n\n // Add a value to the main task.\n if (task.leadTaskId) {\n const leadTask = this.tasks.find((t) => t.id === task.leadTaskId);\n this.summaryFields.forEach((f) => {\n leadTask[`${f}Sum`] += task[`${f}Sum`] ?? 0;\n });\n }\n });\n maxIndent--;\n }\n\n this.tasks.forEach((task) => {\n this.summaryFields.forEach((f) => {\n task[`${f}Sum`] = task[`${f}Sum`] === 0 ? null : task[`${f}Sum`];\n });\n });\n\n this.updatePercentCompleteSums();\n }\n\n /**\n * Updates the formArray based on tasks.\n */\n public updateView() {\n // Построить список задач, который должен быть отображен.\n const visibleTasks = this.getVisibleTasks();\n\n // Обновить структурные номера.\n this.commands.updateStructNumbers(\n this.tasks.filter((task) => !task.leadTaskId),\n this.tasks,\n );\n\n // Обновить суммарные значения.\n this.updateSummaryValues();\n\n // Обновить итоги.\n this.updateTotals();\n\n // Скорректировать структуру формы грида.\n for (let index = 0; index < visibleTasks.length; index++) {\n const task = visibleTasks[index];\n\n // Для задачи в нужной позиции есть группа.\n if (task.id === this.formArray.at(index)?.value.id) {\n continue;\n }\n\n const groupIndex = _.findIndex(\n this.formArray.value,\n (r: any) => r.id === task.id,\n index + 1,\n );\n\n // Группы нет в списке вообще.\n if (groupIndex === -1) {\n this.formArray.insert(index, this.getFormGroup());\n continue;\n }\n\n // Группа есть, но дальше.\n const group = this.formArray.at(groupIndex);\n this.formArray.removeAt(groupIndex);\n this.formArray.insert(index, group);\n }\n\n // Убрать \"лишние\" группы.\n while (visibleTasks.length !== this.formArray.controls.length) {\n this.formArray.removeAt(this.formArray.controls.length - 1);\n }\n\n // Загрузить данные в форму.\n this.blockFormGroupChangeListener = true;\n this.formArray.patchValue(visibleTasks);\n this.blockFormGroupChangeListener = false;\n\n this.updatePlanningFields();\n\n // Disable name and description for main task.\n const rootTaskIndex = 0;\n const rootTaskFormGroup = this.formArray.at(\n rootTaskIndex,\n ) as UntypedFormGroup;\n if (rootTaskFormGroup) {\n if (this.isShowMainTask$.getValue()) {\n rootTaskFormGroup.controls.name.disable({\n emitEvent: false,\n });\n rootTaskFormGroup.controls.description.disable({\n emitEvent: false,\n });\n } else {\n rootTaskFormGroup.controls.name.enable({\n emitEvent: false,\n });\n rootTaskFormGroup.controls.description.enable({\n emitEvent: false,\n });\n }\n }\n\n // Отработать изменение в гриде.\n this.detectChanges();\n }\n\n /** Returns are there expanded tasks. */\n public isExpanded(id: string): boolean {\n return this.projectCardService.expandedTasks.includes(id);\n }\n\n /** Patches task by saving queue.\n *\n * @param taskId task id.\n * @param taskToPatch task patch DTO.\n */\n public addSavingQueuePatch(\n taskId: string,\n taskToPatch: Partial,\n ) {\n this.autosave.addToQueuePatch(\n taskId,\n () => this.getRowVersion(taskId),\n (taskDTO: Partial) =>\n this.data.collection('ProjectTasks').entity(taskId).patch(taskDTO, {\n withResponse: true,\n undoRedoSessionId: this.undoRedoSessionId,\n }),\n taskToPatch,\n !taskToPatch.startDate &&\n !taskToPatch.endDate &&\n !taskToPatch.duration &&\n !taskToPatch.projectTaskAssignments,\n );\n }\n\n /** Returns a form group for project tasks.\n *\n * @param addSubscriptions Flag to add subscriptions to form controls (default: true).\n * @returns A form group for project tasks.\n */\n public getFormGroup(addSubscriptions = true): UntypedFormGroup {\n const group = this.fb.group({\n id: null,\n isExpanded: null,\n leadTaskId: null,\n indent: null,\n description: null,\n structNumber: null,\n name: new UntypedFormControl({\n value: '',\n disabled: this.isInherited,\n }),\n duration: null,\n startDate: null,\n endDate: null,\n plannedHours: null,\n plannedCost: null,\n estimatedHours: null,\n estimatedCost: null,\n actualHours: null,\n actualCost: null,\n percentComplete: null,\n allowTimeEntry: null,\n isActive: new UntypedFormControl({\n value: false,\n disabled: this.isInherited,\n }),\n projectTaskAssignments: null,\n dependencies: null,\n effortDriven: null,\n type: null,\n isMilestone: null,\n plannedStartDate: null,\n plannedEndDate: null,\n categoryId: null,\n });\n\n this.summaryFields.forEach((f) => {\n const control = new UntypedFormControl({ value: null });\n\n group.addControl(`${f}Sum`, control);\n });\n\n this.customFieldService.enrichFormGroup(group, 'ProjectTask');\n\n if (addSubscriptions) {\n this.summaryEditableFields.forEach((f) => {\n group.controls[f].valueChanges\n .pipe(\n filter(() => !this.blockFormGroupChangeListener),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n setTimeout(() => {\n this.updateSummaryValues();\n this.applySummaryValues();\n this.updateTotals();\n });\n });\n });\n\n group.controls['type'].valueChanges\n .pipe(\n filter(() => !this.blockFormGroupChangeListener),\n takeUntil(this.destroyed$),\n )\n .subscribe((value) => {\n if (value.id === ProjectTaskType.fixedWork) {\n group.controls.effortDriven.setValue(true, { emitEvent: false });\n group.controls.effortDriven.disable({ emitEvent: false });\n } else {\n group.controls.effortDriven.enable({ emitEvent: false });\n }\n });\n\n group.valueChanges\n .pipe(\n filter(() => !this.blockFormGroupChangeListener),\n takeUntil(this.destroyed$),\n )\n .subscribe((groupValue) => {\n const task = this.getTask(groupValue.id);\n const oldTask = _.cloneDeep(task);\n const groupRawValue = group.getRawValue();\n Object.assign(task, groupRawValue);\n\n // Repair task field values to initial type.\n // Form array works with named entity, but data service has string.\n task.type = groupRawValue.type.id;\n\n const taskPartsToPatch = this.getTaskPartsToPatch(oldTask, task);\n\n taskPartsToPatch.forEach((part) => {\n this.addSavingQueuePatch(task.id, part);\n });\n });\n }\n\n return group;\n }\n\n /** Returns all visible tasks in hierarchy */\n public getVisibleTasks(): ProjectTask[] {\n const visibleTasks: ProjectTask[] = [];\n const traverse = (renderTasks: ProjectTask[]) => {\n const sortedTasks = _.sortBy(renderTasks, ['number']);\n sortedTasks.forEach((task) => {\n const childTasks = this.tasks.filter((t) => t.leadTaskId === task.id);\n if (childTasks.length > 0) {\n task.isExpanded = this.isExpanded(task.id);\n } else {\n task.isExpanded = null;\n }\n\n visibleTasks.push(task);\n if (task.isExpanded) {\n traverse(childTasks);\n }\n });\n };\n const tasks = this.tasks.filter((task) => !task.leadTaskId);\n traverse(tasks);\n return this.isShowMainTask$.getValue()\n ? visibleTasks\n : visibleTasks.filter((task) => task.leadTaskId);\n }\n\n /** Gets a task to save. */\n public getTaskToSave(taskId: string): any {\n const task = this.getTask(taskId);\n const taskForSaving: any = _.pick(task, this.getUpdateFields());\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n taskForSaving,\n this.entityId,\n );\n\n this.customFieldService.assignValues(taskForSaving, task, 'ProjectTask');\n\n if (task.projectTaskAssignments) {\n taskForSaving.projectTaskAssignments = this.getAssignmentsDTO(\n task.projectTaskAssignments,\n );\n }\n\n return taskForSaving;\n }\n\n /** Updates the totals line. */\n private updateTotals(): void {\n this.totals = {};\n this.summaryFields.forEach((field) => (this.totals[field] = 0));\n this.totals['name'] = 0;\n\n const currencyFields = ['plannedCost', 'estimatedCost', 'actualCost'];\n const projectCurrencyCode =\n this.projectCardService.project.currency.alpha3Code;\n currencyFields.forEach((field) => {\n (this.totals[field] as any) = {\n value: 0,\n currencyCode: projectCurrencyCode,\n };\n });\n\n this.tasks.forEach((task) => {\n this.summaryFields.forEach((field) => {\n if (_.isObject(this.totals[field])) {\n (this.totals[field] as any).value += task[field] ?? 0;\n } else {\n this.totals[field] += task[field] ?? 0;\n }\n });\n this.totals['name']++;\n });\n }\n\n private getUpdateFields(): string[] {\n const updateFields = [\n 'id',\n 'name',\n 'description',\n 'number',\n 'allowTimeEntry',\n 'leadTaskId',\n 'rowVersion',\n 'isActive',\n 'endDate',\n 'startDate',\n 'duration',\n 'projectTaskAssignments',\n 'dependencies',\n 'effortDriven',\n 'type',\n 'estimatedHours',\n 'isMilestone',\n 'categoryId'\n ];\n\n ProjectVersionUtil.addProjectSelectFields(\n this.versionCardService.projectVersion,\n updateFields,\n );\n\n return updateFields;\n }\n\n /**\n * Updates type and planning fields for task form.\n */\n private updatePlanningFields() {\n this.formArray.controls.forEach((fg: FormGroup) => {\n const taskValue = fg.getRawValue();\n fg.controls.type.setValue(\n {\n id: taskValue.type as ProjectTaskType,\n name: this.translateService.instant(\n `enums.taskTypes.${taskValue.type}`,\n ),\n },\n { emitEvent: false },\n );\n\n if (this.project.isAutoPlanning) {\n if (this.isSummaryTask(taskValue)) {\n fg.controls.estimatedHours.disable({ emitEvent: false });\n } else {\n fg.controls.estimatedHours.enable({ emitEvent: false });\n }\n fg.controls.type.enable({ emitEvent: false });\n } else {\n fg.controls.estimatedHours.disable({ emitEvent: false });\n fg.controls.type.disable({ emitEvent: false });\n fg.controls.effortDriven.disable({ emitEvent: false });\n }\n\n if (this.project.isAutoPlanning && this.isSummaryTask(taskValue)) {\n fg.controls.projectTaskAssignments.disable({ emitEvent: false });\n } else {\n fg.controls.projectTaskAssignments.enable({ emitEvent: false });\n }\n\n if (taskValue.type === ProjectTaskType.fixedWork) {\n fg.controls.effortDriven.setValue(true, { emitEvent: false });\n fg.controls.effortDriven.disable({ emitEvent: false });\n } else {\n fg.controls.effortDriven.enable({ emitEvent: false });\n }\n });\n }\n\n /** Обновляет значения для \"схопываемых\" ячеек.\n * Дублирует updateView но затрагивает меньшее число ячеек для обновления.\n */\n private applySummaryValues() {\n const controls = this.formArray.controls;\n controls.forEach((formGroup: UntypedFormGroup) => {\n const task = this.tasks.find((t) => t.id === formGroup.value.id);\n this.summaryFields.forEach((field) => {\n const name = `${field}Sum`;\n if (task[name] !== formGroup.value[name]) {\n formGroup.controls[name].setValue(task[name], { emitEvent: false });\n }\n });\n });\n }\n\n /** Returns task by id. */\n public getTask(id: string): ProjectTask {\n return this.tasks.find((task) => task.id === id);\n }\n\n /** Sets the download status. */\n public setIsLoading(isLoading: boolean) {\n this.isLoadingSubject.next(isLoading);\n }\n\n /** Runs a changes detection */\n public detectChanges() {\n this.updateSubject.next();\n }\n\n /** Unsubscribes from all possible subscriptions of the service. */\n public dispose() {\n this.loadingSubscription?.unsubscribe();\n this.destroyed$.next();\n }\n\n /**\n * Prepares task parts for patching based on the differences between the old and new task.\n *\n * @param oldTask The old task to compare.\n * @param newTask The new task to compare.\n * @returns An array of partial ProjectTask objects representing the parts to patch.\n */\n public getTaskPartsToPatch(\n oldTask: ProjectTask,\n newTask: ProjectTask,\n ): Partial[] {\n const changedFields = this.getChangedFields(oldTask, newTask);\n\n const taskToSaving = this.getTaskToSave(newTask.id);\n\n this.enrichListWithRequiredFields(changedFields, newTask.type);\n const taskForPatching: Partial = _.pick(\n taskToSaving,\n changedFields,\n );\n\n const oldTaskAssignmentsDTO = this.getAssignmentsDTO(\n oldTask.projectTaskAssignments,\n );\n if (!taskForPatching.projectTaskAssignments) {\n return [taskForPatching];\n }\n\n // Handle projectTaskAssignments\n if (\n taskForPatching.projectTaskAssignments &&\n !_.isEqual(oldTaskAssignmentsDTO, taskForPatching.projectTaskAssignments)\n ) {\n const newAssignmentsParts = this.getAssignmentsParts(\n oldTaskAssignmentsDTO,\n taskForPatching.projectTaskAssignments,\n );\n delete taskForPatching.projectTaskAssignments;\n const partsToPatch = [];\n if (Object.keys(taskForPatching).length) {\n partsToPatch.push(taskForPatching);\n }\n\n newAssignmentsParts.forEach((assignments) =>\n partsToPatch.push({\n projectTaskAssignments: assignments,\n }),\n );\n\n return partsToPatch;\n } else {\n return [];\n }\n }\n\n /**\n * Converts project task assignments to DTO format.\n *\n * @param projectTaskAssignments The project task assignments to convert.\n * @returns An array of ProjectTaskAssignment objects in DTO format.\n */\n private getAssignmentsDTO(\n projectTaskAssignments: ProjectTaskAssignment[],\n ): ProjectTaskAssignment[] {\n const assignmentsDTO = [];\n projectTaskAssignments.forEach((assignment: ProjectTaskAssignment) => {\n assignmentsDTO.push({\n id: assignment.id,\n projectTeamMemberId: assignment.projectTeamMember\n ? assignment.projectTeamMember.id\n : null,\n isAllTeamRole: assignment.isAllTeamRole,\n isUnassigned: assignment.isUnassigned,\n units: assignment.units,\n projectTariffId: assignment.projectTariffId,\n });\n });\n\n if (!projectTaskAssignments.length && this.project.isAutoPlanning) {\n assignmentsDTO.push({\n id: Guid.generate(),\n projectTeamMemberId: null,\n isAllTeamRole: false,\n isUnassigned: true,\n units: null,\n projectTariffId: null,\n });\n }\n return assignmentsDTO;\n }\n\n /** Updates summary percent complete of project tasks. */\n private updatePercentCompleteSums() {\n this.tasks.forEach((task) => {\n task['percentCompleteSum'] =\n task['estimatedHoursSum'] && task['actualHoursSum']\n ? task['actualHoursSum'] / task['estimatedHoursSum']\n : 0;\n });\n }\n\n /**\n * Identifies and separates project task assignments into parts based on changes.\n *\n * This method takes two arrays of project task assignments, old and new, and identifies\n * the changes between them. It then separates these changes into distinct parts based\n * on the type of change: deletions, changes to member ID, additions and changes to units. Each part is\n * an array of project task assignments that have undergone a specific type of change.\n *\n * @param oldAssignments The original project task assignments.\n * @param newAssignments The updated project task assignments.\n * @returns An array of arrays, where each inner array represents a part of changes.\n */\n private getAssignmentsParts(\n oldAssignments: ProjectTaskAssignment[],\n newAssignments: ProjectTaskAssignment[],\n ): ProjectTaskAssignment[][] {\n // Sort arrays for correct isEqual comparing\n oldAssignments = _.sortBy(oldAssignments, 'id');\n newAssignments = _.sortBy(newAssignments, 'id');\n\n const parts: ProjectTaskAssignment[][] = [];\n\n // Processing deletions\n const deleteAssignmentsPart = [];\n newAssignments.forEach((newAss) => {\n const preservedAss = oldAssignments.find((ass) => ass.id === newAss.id);\n if (preservedAss) {\n deleteAssignmentsPart.push(preservedAss);\n }\n });\n if (!_.isEqual(deleteAssignmentsPart, oldAssignments)) {\n parts.push(deleteAssignmentsPart);\n }\n\n // Processing changes to member ID or changes to tariff\n const changedMemberIdPart = structuredClone(deleteAssignmentsPart);\n newAssignments.forEach((newAss) => {\n const newMemberPreservedAss = changedMemberIdPart.find(\n (ass) =>\n ass.id === newAss.id &&\n (ass.projectTeamMemberId !== newAss.projectTeamMemberId ||\n ass.projectTariffId !== newAss.projectTariffId),\n );\n if (newMemberPreservedAss) {\n newMemberPreservedAss.projectTeamMemberId = newAss.projectTeamMemberId;\n newMemberPreservedAss.projectTariffId = newAss.projectTariffId;\n }\n });\n if (!_.isEqual(changedMemberIdPart, deleteAssignmentsPart)) {\n parts.push(changedMemberIdPart);\n }\n\n // Processing additions\n const addAssignmentsPart = structuredClone(changedMemberIdPart);\n newAssignments.forEach((newAss) => {\n const preservedAss = oldAssignments.find((ass) => ass.id === newAss.id);\n if (!preservedAss) {\n addAssignmentsPart.push(newAss);\n }\n });\n if (!_.isEqual(addAssignmentsPart, changedMemberIdPart)) {\n parts.push(addAssignmentsPart);\n }\n\n // Processing changes to units\n const changedUnitsPart = structuredClone(addAssignmentsPart);\n newAssignments.forEach((newAss) => {\n const newMemberPreservedAss = changedUnitsPart.find(\n (ass) => ass.id === newAss.id && ass.units !== newAss.units,\n );\n if (newMemberPreservedAss) {\n newMemberPreservedAss.units = newAss.units;\n }\n });\n if (!_.isEqual(changedUnitsPart, addAssignmentsPart)) {\n parts.push(changedUnitsPart);\n }\n\n return parts;\n }\n\n /** Returns list of the keys with not equal task and new task values.\n *\n * @param task old task.\n * @param newTask new task.\n * @returns list of the keys.\n */\n private getChangedFields(task: ProjectTask, newTask: ProjectTask): string[] {\n const keysToSave: string[] = [];\n Object.keys(task).forEach((key) => {\n if (!_.isEqual(task[key], newTask[key])) {\n keysToSave.push(key);\n }\n });\n return keysToSave;\n }\n\n /** Enriches task fields with request required fields.\n *\n * @param fields initial fields\n * @param type updated task type\n */\n private enrichListWithRequiredFields(\n fields: string[],\n type: ProjectTaskType,\n ): void {\n if (fields.includes('startDate') && !fields.includes('duration')) {\n if (this.timelineDateChanges.startDate) {\n this.timelineDateChanges.startDate = false;\n } else {\n fields.push('duration');\n }\n }\n\n if (\n this.project.isAutoPlanning &&\n type === ProjectTaskType.fixedDuration &&\n fields.includes('endDate') &&\n !fields.includes('duration')\n ) {\n if (this.timelineDateChanges.endDate) {\n this.timelineDateChanges.endDate = false;\n } else {\n fields.push('duration');\n }\n }\n }\n\n /**\n * Returns is target task summary.\n *\n * @param task target task.\n * @returns is task summary.\n */\n private isSummaryTask(task: ProjectTask): boolean {\n return !!this.tasks.find((t) => t.leadTaskId === task.id);\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectVersionCardService } from '../../core/project-version-card.service';\nimport { ProjectTasksDataService } from './project-tasks-data.service';\nimport { TaskCardModalComponent } from '../shared/task-card-modal/task-card-modal.component';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport _ from 'lodash';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ProjectTasksCommandsService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-commands.service';\nimport {\n ProjectTaskSettings,\n TaskAdditionalViewSettings,\n} from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/project-task-settings.model';\nimport { taskMaxLevel } from 'src/app/projects/card/project-tasks/shared/models/project-task-constants';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { OffCanvasEntry } from 'src/app/shared/models/off-canvas/off-canvas-entry.interface';\n\n@Injectable()\nexport class TasksGridActionsService {\n /** Levels of show task view. */\n public get levels(): number[] {\n const array = [...Array(taskMaxLevel).keys()].map((i) => i + 1);\n if (!this.taskDataService.isShowMainTask$.getValue()) {\n array.shift();\n }\n return array;\n }\n\n constructor(\n @Inject('entityId') public projectId,\n public taskDataService: ProjectTasksDataService,\n private commands: ProjectTasksCommandsService,\n private autosave: SavingQueueService,\n private injector: Injector,\n private versionCardService: ProjectVersionCardService,\n private blockUI: BlockUIService,\n private dependenciesService: ProjectTaskDependenciesService,\n private projectCardService: ProjectCardService,\n private localConfigService: LocalConfigService,\n private offCanvasService: OffCanvasService,\n ) {\n const config = this.localConfigService.getConfig(ProjectTaskSettings);\n this.taskDataService.isShowMainTask$.next(config.isShowMainTask);\n this.taskDataService.isShowPlannedTasks$.next(config.isShowPlanTasks);\n this.taskDataService.isShowCriticalPath$.next(config.isShowCriticalPath);\n }\n\n /** Expand/collapse of task. */\n public toggleTask(formGroup: UntypedFormGroup) {\n if (formGroup.value.isExpanded) {\n this.removeExpanded(formGroup.value.id);\n this.taskDataService.updateView();\n } else {\n this.taskDataService.addExpanded(formGroup.value.id);\n this.taskDataService.updateView();\n }\n }\n\n /**\n * Sets additional view settings.\n *\n * @param value settings.\n *\n * */\n public setAdditionalViewSettings(value: TaskAdditionalViewSettings): void {\n const settings = this.localConfigService.getConfig(ProjectTaskSettings);\n settings.isShowMainTask = value.isShowMainTask;\n settings.isShowPlanTasks = value.isShowPlanTasks;\n settings.isShowCriticalPath = value.isShowCriticalPath;\n this.localConfigService.setConfig(ProjectTaskSettings, settings);\n\n if (\n this.taskDataService.isShowMainTask$.getValue() !== value.isShowMainTask\n ) {\n this.taskDataService.isShowMainTask$.next(value.isShowMainTask);\n this.setLevel(1);\n }\n if (\n this.taskDataService.isShowPlannedTasks$.getValue() !==\n value.isShowPlanTasks\n ) {\n this.taskDataService.isShowPlannedTasks$.next(value.isShowPlanTasks);\n }\n if (\n this.taskDataService.isShowCriticalPath$.getValue() !==\n value.isShowCriticalPath\n ) {\n this.taskDataService.isShowCriticalPath$.next(value.isShowCriticalPath);\n }\n }\n\n /** Remove task from expanded project task list. */\n private removeExpanded(id: string) {\n const index = this.projectCardService.expandedTasks.indexOf(id);\n if (index !== -1) {\n this.projectCardService.expandedTasks.splice(index, 1);\n }\n }\n\n /** Expand/collapse of task till level. */\n public setLevel(level: number) {\n this.projectCardService.expandedTasks = [];\n const handle = (renderTasks: any[], l: number) => {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let index = 0; index < renderTasks.length; index++) {\n if (l < level) {\n this.taskDataService.addExpanded(renderTasks[index].id);\n }\n const childTasks = this.taskDataService.tasks.filter(\n (task) => task.leadTaskId === renderTasks[index].id,\n );\n handle(childTasks, l + 1);\n }\n };\n\n const tasks = this.taskDataService.tasks.filter((task) => !task.leadTaskId);\n handle(tasks, 0);\n\n this.taskDataService.updateView();\n }\n\n /** Create project task. */\n public create(currentTaskId: string, createChild: boolean): string {\n if (this.taskDataService.creatingTaskIds.length) {\n return;\n }\n const newTask = this.commands.create(\n currentTaskId,\n createChild,\n this.taskDataService.tasks,\n );\n if (createChild) {\n this.taskDataService.addExpanded(currentTaskId);\n }\n\n newTask.type = this.taskDataService.project.defaultTaskType;\n\n this.taskDataService.updateView();\n\n this.dependenciesService.syncDependencyGraph();\n\n this.taskDataService.creatingTaskIds.push(newTask.id);\n\n this.autosave.addToQueue(\n newTask.id,\n this.taskDataService\n .getTasksCollection()\n .insert(this.taskDataService.getTaskToSave(newTask.id), undefined, {\n undoRedoSessionId: this.taskDataService.undoRedoSessionId,\n }),\n );\n\n return newTask.id;\n }\n\n /** Return is task creating allowed. */\n public checkIsCreatingAllowed(): boolean {\n return !this.taskDataService.readonly && !this.taskDataService.isInherited;\n }\n\n /**\n * Return is task status changing allowed.\n *\n * @returns is allowed.\n */\n public checkIsStatusChangingAllowed(): boolean {\n return !this.taskDataService.readonly && !this.taskDataService.isInherited;\n }\n\n /** Return is task child creating allowed.\n *\n * @param taskId target task id.\n * @returns is creating child task allowed.\n */\n public checkIsChildCreatingAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n this.commands.isCommandAllowed(\n 'createChild',\n taskId,\n this.taskDataService.tasks,\n )\n );\n }\n\n /**\n * Opens project task edit off canvas.\n *\n * @param taskId selected task id.\n */\n public edit(taskId: string): void {\n const options: OffCanvasEntry = {\n content: {\n component: TaskCardModalComponent,\n componentParams: {\n inputs: {\n task: this.taskDataService.getTask(taskId),\n readonly: this.taskDataService.readonly,\n isInherited: this.taskDataService.isInherited,\n projectVersion: this.versionCardService.projectVersion,\n autoPlanning: this.taskDataService.project.isAutoPlanning,\n },\n injector: Injector.create({\n providers: [\n {\n provide: 'entityId',\n useValue: this.projectId,\n },\n ],\n parent: this.injector,\n }),\n },\n },\n exclude: '.project-task-edit-btn, wp-tasks-grid tbody tr',\n };\n\n if (this.offCanvasService.offCanvasEntry) {\n this.offCanvasService.reRenderContent(options.content);\n return;\n }\n\n this.offCanvasService.openOffCanvas(options);\n }\n\n /**\n * Duplicates task\n *\n * @param taskId - id of a task to duplicate\n * @returns index of new task\n * @private\n */\n public duplicateTask(taskId: string): number {\n const newTask = this.commands.copy(taskId, this.taskDataService.tasks);\n this.taskDataService.updateView();\n\n const index = (this.taskDataService.formArray.value as any[]).findIndex(\n (t) => t.id === newTask.id,\n );\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.taskDataService\n .getTasksCollection()\n .insert(this.taskDataService.getTaskToSave(newTask.id), undefined, {\n undoRedoSessionId: this.taskDataService.undoRedoSessionId,\n }),\n );\n return index;\n }\n\n /**+\n * Deletes project tasks.\n *\n * @param taskIds deleting task ids.\n */\n public delete(taskIds: string[]): void {\n this.taskDataService.detectChanges();\n taskIds.forEach((taskId) => {\n this.taskDataService.deletingTaskIds.push(taskId);\n this.autosave.addToQueue(\n taskId,\n this.taskDataService.getTasksCollection().entity(taskId).delete({\n withResponse: true,\n undoRedoSessionId: this.taskDataService.undoRedoSessionId,\n }),\n );\n });\n this.blockUI.start();\n }\n\n /** Return is task deleting allowed. */\n public checkIsDeletingAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n !this.blockUI.isActive &&\n this.commands.isCommandAllowed(\n 'delete',\n taskId,\n this.taskDataService.tasks,\n ) &&\n !this.dependenciesService.checkHasDependentTasks(taskId)\n );\n }\n\n /** Increase project task level. */\n public increaseTaskLevel(taskId: string) {\n const oldTask = _.cloneDeep(this.taskDataService.getTask(taskId));\n this.commands.increaseLevel(this.taskDataService.tasks, taskId);\n const newTask = this.taskDataService.getTask(taskId);\n\n this.taskDataService.updateView();\n\n const taskPartsToPatch = this.taskDataService.getTaskPartsToPatch(\n oldTask,\n newTask,\n );\n\n taskPartsToPatch.forEach((part) => {\n // API restrict to send number after changed task level\n if (Object.keys(part).includes('number')) {\n delete part.number;\n }\n this.taskDataService.addSavingQueuePatch(taskId, part);\n });\n }\n\n /** Return is increase task level allowed. */\n public checkIsIncreaseAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n this.commands.isCommandAllowed(\n 'increaseLevel',\n taskId,\n this.taskDataService.tasks,\n )\n );\n }\n\n /** Decrease project task level. */\n public decreaseTaskLevel(taskId: string) {\n const oldTask = _.cloneDeep(this.taskDataService.getTask(taskId));\n this.commands.decreaseLevel(this.taskDataService.tasks, taskId);\n const newTask = this.taskDataService.getTask(taskId);\n this.taskDataService.addExpanded(\n this.taskDataService.getTask(taskId).leadTaskId,\n );\n this.taskDataService.updateView();\n\n const taskPartsToPatch = this.taskDataService.getTaskPartsToPatch(\n oldTask,\n newTask,\n );\n\n taskPartsToPatch.forEach((part) => {\n // API restrict to send number after changed task level\n if (Object.keys(part).includes('number')) {\n delete part.number;\n }\n this.taskDataService.addSavingQueuePatch(taskId, part);\n });\n }\n\n /** Return is decrease task level allowed. */\n public checkIsDecreaseAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n this.commands.isCommandAllowed(\n 'decreaseLevel',\n taskId,\n this.taskDataService.tasks,\n ) &&\n this.dependenciesService.dependencyGraph.checkIfDecreaseAllowed(taskId)\n );\n }\n\n /** Down project task position. */\n public downTaskPosition(taskId: string) {\n const oldTask = _.cloneDeep(this.taskDataService.getTask(taskId));\n this.commands.down(this.taskDataService.tasks, taskId);\n const newTask = this.taskDataService.getTask(taskId);\n\n this.taskDataService.updateView();\n\n this.saveTaskByDiffs(oldTask, newTask);\n }\n\n /** Return is down project task position allowed. */\n public checkIsDownAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n this.commands.isCommandAllowed('down', taskId, this.taskDataService.tasks)\n );\n }\n\n /** Up project task position. */\n public upTaskPosition(taskId: string) {\n const oldTask = _.cloneDeep(this.taskDataService.getTask(taskId));\n this.commands.up(this.taskDataService.tasks, taskId);\n const newTask = this.taskDataService.getTask(taskId);\n\n this.taskDataService.updateView();\n\n this.saveTaskByDiffs(oldTask, newTask);\n }\n\n /** Return is up project task position allowed. */\n public checkIsUpAllowed(taskId: string): boolean {\n return (\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited &&\n this.commands.isCommandAllowed('up', taskId, this.taskDataService.tasks)\n );\n }\n\n /**\n * Switches task status (isActive).\n *\n * @param taskId id of target task.\n */\n public switchTaskStatus(taskId: string): void {\n const newTask = this.taskDataService.getTask(taskId);\n const oldTask = _.cloneDeep(newTask);\n newTask.isActive = !newTask.isActive;\n\n this.taskDataService.updateView();\n\n this.saveTaskByDiffs(oldTask, newTask);\n }\n\n /**\n * Saves the task by comparing the old and new task.\n *\n * @param oldTask The old task to compare.\n * @param newTask The new task to compare.\n */\n private saveTaskByDiffs(oldTask: ProjectTask, newTask: ProjectTask): void {\n const taskPartsToPatch = this.taskDataService.getTaskPartsToPatch(\n oldTask,\n newTask,\n );\n taskPartsToPatch.forEach((part) =>\n this.taskDataService.addSavingQueuePatch(newTask.id, part),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { TasksGridComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-grid.component';\n\n@NgModule({\n imports: [\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.tasks.timeline',\n url: '/timeline',\n component: TasksGridComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n exports: [],\n})\nexport class ProjectTasksTimelineModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { firstValueFrom, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectCardService } from '../core/project-card.service';\nimport { ProjectVersionCardService } from '../core/project-version-card.service';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport {\n ProjectTask,\n projectTaskWarnings,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport {\n Exception,\n SavingQueueException,\n} from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { UndoRedoService } from 'src/app/shared/services/undo-redo/undo-redo.service';\nimport { EntityState } from 'src/app/shared/models/entities/entity.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { ProjectTasksCommandsService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/project-tasks-commands.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MetaEntityPropertyType } from 'src/app/shared/models/entities/settings/metamodel.model';\n\n/** Project tasks. */\n@Component({\n selector: 'wp-project-tasks',\n templateUrl: './project-tasks.component.html',\n styleUrls: ['./project-tasks.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectTeamService,\n ProjectTasksDataService,\n SavingQueueService,\n TasksGridActionsService,\n ProjectTasksCommandsService,\n ProjectTaskDependenciesService,\n ],\n standalone: false,\n})\nexport class ProjectTasksComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n private service: ProjectCardService,\n private taskDataService: ProjectTasksDataService,\n private versionCardService: ProjectVersionCardService,\n private dependenciesService: ProjectTaskDependenciesService,\n private scheduleService: ScheduleService,\n private autosave: SavingQueueService,\n private notificationService: NotificationService,\n private undoRedoService: UndoRedoService,\n private cdr: ChangeDetectorRef,\n private customFieldService: CustomFieldService,\n private blockUI: BlockUIService,\n ) {}\n\n public async ngOnInit(): Promise {\n this.taskDataService.undoRedoSessionId = await firstValueFrom(\n this.undoRedoService.startUndoRedoSession(),\n );\n this.undoRedoService.setSavingQueue(this.autosave);\n\n this.autosave.delayDuration = 0;\n this.initProjectTasks();\n this.initSummaryFieldLists();\n\n /** Подписка на перезагрузку данных */\n this.service.reloadTab$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.taskDataService.load(false));\n\n this.autosave.error$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((error: SavingQueueException) => {\n if (error.code === Exception.BtDeleteException.code) {\n const deletingTaskIndex =\n this.taskDataService.deletingTaskIds.findIndex(\n (id) => id === error.savingQueueId,\n );\n if (deletingTaskIndex !== -1) {\n this.taskDataService.deletingTaskIds.splice(deletingTaskIndex, 1);\n }\n return;\n }\n this.taskDataService.creatingTaskIds = [];\n this.taskDataService.load();\n });\n\n this.autosave.save$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((data: any) => {\n if (!data) return;\n\n const updateView = () => {\n this.taskDataService.updateView();\n this.cdr.markForCheck();\n };\n\n //UndoRedo logic\n data.projectTask?.forEach((updatedTask: ProjectTask) => {\n this.taskDataService.prepareTaskPropertyForView(updatedTask);\n if (updatedTask.entityState === EntityState.added) {\n this.taskDataService.tasks.push(updatedTask);\n return;\n }\n if (updatedTask.entityState === EntityState.deleted) {\n const index = this.taskDataService.tasks.findIndex(\n (task) => task.id === updatedTask.id,\n );\n if (index !== -1) {\n this.taskDataService.tasks.splice(index, 1);\n }\n return;\n }\n this.assignUpdatedTaskProperty(updatedTask);\n updateView();\n });\n\n // Updating task logic\n this.updateTasksAfterSaving(data);\n\n updateView();\n this.dependenciesService.syncDependencyGraph();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.taskDataService.dispose();\n this.undoRedoService.abortUndoRedoSession(\n this.taskDataService.undoRedoSessionId,\n );\n }\n\n /** Assigned updated fields to task in the data service.\n *\n * @param updatedTask updated task.\n */\n private assignUpdatedTaskProperty(updatedTask): void {\n const task = this.taskDataService.getTask(updatedTask.id);\n Object.keys(updatedTask).forEach((key) => {\n if (key in task || key === 'rowVersion') {\n task[key] = updatedTask[key];\n }\n });\n task.percentComplete =\n task.estimatedHours && task.actualHours\n ? task.actualHours / task.estimatedHours\n : 0;\n }\n\n /** Initialize of project task data. */\n private initProjectTasks() {\n this.service.project$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((result) => {\n this.scheduleService.initScheduleScheme(result.schedule);\n this.taskDataService.project = result;\n this.taskDataService.readonly =\n !result.tasksEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n this.taskDataService.isInherited = !!result.sourceProject;\n\n this.taskDataService.load();\n });\n }\n\n /** Shows change task warnings\"\n *\n * @param projectTaskDTO response from server after project task data changes\n */\n private showProjectTaskWarnings(projectTaskDTO: ProjectTask) {\n projectTaskWarnings.forEach((warning) => {\n if (projectTaskDTO[warning]) {\n this.notificationService.warningLocal(\n `components.projectTaskWarnings.${warning}`,\n );\n }\n });\n }\n\n /** Enriches summary field list with custom fields. */\n private initSummaryFieldLists(): void {\n // NOTE: add custom properties to collapsable columns\n const summaryCustomFields = this.customFieldService\n .getList('ProjectTask')\n .filter(\n (f) =>\n f.type === MetaEntityPropertyType.decimal ||\n f.type === MetaEntityPropertyType.integer,\n )\n .map((f) => f.name);\n\n this.taskDataService.summaryFields =\n this.taskDataService.summaryFields.concat(summaryCustomFields);\n this.taskDataService.summaryEditableFields =\n this.taskDataService.summaryEditableFields.concat(summaryCustomFields);\n }\n\n /**\n * Removes task from from data array.\n *\n * @param id removing task id.\n */\n private removeTaskFromData(id: string): void {\n const index = this.taskDataService.tasks.findIndex((t) => t.id === id);\n this.taskDataService.tasks.splice(index, 1);\n }\n\n /**\n * Updates tasks after saving.\n *\n * @param data Data containing updated task information.\n */\n private updateTasksAfterSaving(data: any): void {\n const currentTask = this.taskDataService.getTask(data.id);\n if (currentTask) {\n this.taskDataService.prepareTaskPropertyForView(data);\n this.assignUpdatedTaskProperty(data);\n }\n\n // Check is task in deleting process\n const isTaskDeleting = this.taskDataService.deletingTaskIds.includes(\n data.id,\n );\n if (isTaskDeleting) {\n const deletingTaskIdIndex =\n this.taskDataService.deletingTaskIds.findIndex((id) => id === id);\n this.taskDataService.deletingTaskIds.splice(deletingTaskIdIndex, 1);\n if (!this.taskDataService.deletingTaskIds.length) this.blockUI.stop();\n this.removeTaskFromData(data.id);\n const isSummary = this.taskDataService.checkIsLeadTask(data.id);\n if (isSummary) {\n const allChildTaskIds = this.dependenciesService\n .getAllChildTasks(data.id)\n .map((task) => task.id);\n allChildTaskIds.forEach((id) => this.removeTaskFromData(id));\n }\n }\n // Check is task in creating process\n const isTaskCreating = this.taskDataService.creatingTaskIds.includes(\n data.id,\n );\n if (isTaskCreating) {\n const creatingTaskIdIndex =\n this.taskDataService.creatingTaskIds.findIndex((id) => id === data.id);\n this.taskDataService.creatingTaskIds.splice(creatingTaskIdIndex, 1);\n }\n\n this.showProjectTaskWarnings(data);\n\n const updatedTasks = data.updatedTasks as ProjectTask[];\n updatedTasks?.forEach((updatedTask: ProjectTask) => {\n this.taskDataService.prepareTaskPropertyForView(updatedTask);\n\n this.assignUpdatedTaskProperty(updatedTask);\n });\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectCardSharedModule } from '../shared/project-card-shared.module';\nimport { ProjectTasksComponent } from './project-tasks.component';\nimport { ProjectTaskSharedModule } from './shared/project-tasks-shared.module';\nimport { TasksMainModule } from './tasks-main.module';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { ProjectTasksTimelineModule } from 'src/app/projects/card/project-tasks/project-tasks-timeline.module';\nimport { ProjectTaskSettings } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/project-task-settings.model';\n\n@NgModule({\n declarations: [ProjectTasksComponent],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n ProjectTasksTimelineModule,\n ProjectTaskSharedModule,\n TasksMainModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.tasks',\n url: '/tasks',\n component: ProjectTasksComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n dynamic: true,\n redirectTo: (trans) => {\n const app = trans.injector().get(AppService);\n const hasPermission = app.checkEntityPermission(\n 'ProjectTask',\n PermissionType.Read,\n );\n const localConfigService = trans.injector().get(LocalConfigService);\n return hasPermission\n ? localConfigService.getConfig(ProjectTaskSettings).toggler\n : 'project';\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectTasksModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport class ProjectTaskConstants {\n public static indentWidth = 18;\n}\n\nexport const TASKS_VIEW = new InjectionToken('tasksView');\n\n/** Max available project task level for client application. */\nexport const taskMaxLevel = 7;","/** View of project task module. */\nexport enum ProjectTaskView {\n table = 'table',\n timeline = 'timeline',\n}\n\n/** View of table for using with grid list service. */\nexport enum ProjectTaskTableView {\n timelineDefault = 'timelineDefault',\n timelineNoAutoPlanning = 'timelineNoAutoPlanning',\n tableDefault = 'tableDefault',\n tableNoAutoPlanning = 'tableNoAutoPlanning',\n}\n","import { DateTime } from 'luxon';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport {\n ProjectTask,\n ProjectTaskDependency,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\n\n/** Uses for check circular dependency in the project tasks and task dependency chain search. */\nexport class TimelineGraph {\n /** All graph nodes and outgoing edges. Each node determines start or finish one of task. Each edge determines dependency. */\n private graph = new Map();\n\n /** All graph nodes and incoming edges. Each node determines start or finish one of task. Each edge determines dependency. */\n private predecessorGraph = new Map();\n\n private mainTaskId: string;\n private tasks: ProjectTask[];\n private scheduleService: ScheduleService;\n\n private criticalDependencies: {\n taskId: string;\n dependency: ProjectTaskDependency;\n }[] = [];\n private criticalTaskIds: string[] = [];\n\n constructor(tasks: ProjectTask[], scheduleService: ScheduleService) {\n this.mainTaskId = tasks.find((t) => !t.leadTaskId).id;\n this.tasks = structuredClone(tasks);\n this.scheduleService = scheduleService;\n\n this.initGraph();\n this.initPredecessorGraph();\n this.initCriticalPathTasksAndDependencies();\n }\n\n /**\n * Checks if a path is allowed between two nodes in the graph.\n *\n * @param beginNode - The starting node of the path.\n * @param endNode - The ending node of the path.\n * @returns True if the path is allowed, false otherwise.\n */\n public checkIsPathAllowed(beginNode: GraphNode, endNode: GraphNode): boolean {\n // There can be only one dependency between two tasks.\n if (\n this.tasks\n .find((t) => t.id === beginNode.id)\n .dependencies.some((d) => d.predecessorId === endNode.id) ||\n this.tasks\n .find((t) => t.id === endNode.id)\n .dependencies.some((d) => d.predecessorId === beginNode.id)\n ) {\n return false;\n }\n\n // A summary task can only have FS and SS dependencies.\n if (this.checkIsLeadTask(endNode.id) && endNode.type === 'finish') {\n return false;\n }\n\n // The 'start' node of a task cannot affect the node that affects the 'finish' node of the task.\n if (\n beginNode.type === 'start' &&\n this.checkIfPathExists(endNode, { id: beginNode.id, type: 'finish' })\n ) {\n return false;\n }\n\n // There is no path from 'endNode' to 'beginNode'.\n if (this.checkIfPathExists(endNode, beginNode)) {\n return false;\n }\n\n // Within the same hierarchy, a summary/child relationship can only exist between tasks at the same level.\n const allSummaryTasks = this.getAllSummaryTasks(beginNode.id);\n const allChildrenTasks = this.getAllChildTasks(beginNode.id);\n if (\n [...allSummaryTasks, ...allChildrenTasks].some((t) => t.id === endNode.id)\n ) {\n return false;\n }\n\n // Path is allowed if all checks passed.\n return true;\n }\n\n /**\n * Determines if a task is allowed to decrease its level considering existing dependencies.\n *\n * @param taskId - The ID of the task to check.\n * @returns A boolean indicating whether the task is allowed to decrease its level.\n */\n public checkIfDecreaseAllowed(taskId: string): boolean {\n const task = this.tasks.find((t) => t.id === taskId);\n const newLeadTask = this.tasks.find(\n (t) =>\n t.indent === task.indent &&\n t.number === task.number - 1 &&\n t.leadTaskId === task.leadTaskId,\n );\n if (!newLeadTask) return false;\n\n // New summary task can only have FS and SS dependencies\n if (\n newLeadTask.dependencies.some(\n (d) =>\n d.type === ProjectTaskDependencyType.finishToFinish ||\n d.type === ProjectTaskDependencyType.startToFinish,\n )\n ) {\n return false;\n }\n\n const taskStartNode: GraphNode = { id: task.id, type: 'start' };\n const taskEndNode: GraphNode = { id: task.id, type: 'finish' };\n const newLeadTaskStartNode: GraphNode = {\n id: newLeadTask.id,\n type: 'start',\n };\n const newLeadTaskEndNode: GraphNode = {\n id: newLeadTask.id,\n type: 'finish',\n };\n\n // Check if the new lead task has dependencies on any task in the task hierarchy\n if (this.checkIfPathExists(taskStartNode, newLeadTaskStartNode)) {\n return false;\n }\n\n // Check if any task in the task hierarchy depends on the end of new lead task\n if (this.checkIfPathExists(newLeadTaskEndNode, taskEndNode)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Retrieves the critical path elements, including task IDs and their dependencies.\n *\n * @returns An object containing two arrays:\n * - taskIds: An array of task IDs that are part of the critical path.\n * - dependencies: An array of objects, each containing a taskId and its corresponding dependency.\n */\n public getCriticalPathElements(): {\n taskIds: string[];\n dependencies: {\n taskId: string;\n dependency: ProjectTaskDependency;\n }[];\n } {\n return {\n taskIds: this.criticalTaskIds,\n dependencies: this.criticalDependencies,\n };\n }\n\n /**\n * Checks if a path exists between two nodes in the graph.\n *\n * @param beginNode - Beginning node.\n * @param endNode - Ending node.\n * @returns True if a path exists, false otherwise.\n */\n private checkIfPathExists(beginNode: GraphNode, endNode: GraphNode): boolean {\n if (beginNode.id === endNode.id) return true;\n\n // Prevent dependencies with main task\n if ([beginNode, endNode].some((n) => n.id === this.mainTaskId)) {\n return true;\n }\n\n const beginNodeKey = this.getGraphKey(beginNode);\n const endNodeKey = this.getGraphKey(endNode);\n\n let pathExist = false;\n // Map is used to mark the current node as visited\n const visited = new Set();\n const stack = [];\n\n // Push the current node to the stack which stores the result\n stack.push(beginNodeKey);\n\n // Traverse through the nodes until the stack is empty\n while (stack.length > 0 && !pathExist) {\n const nodeKey = stack.pop();\n\n // Mark the task as visited\n visited.add(nodeKey);\n\n // For take into account task duration preserving, needs to check start node dependencies.\n const nodeInfo = this.graph.get(nodeKey);\n let checkingDependencies = nodeInfo.dependencies;\n if (nodeInfo.nodeType === 'finish') {\n const startNode: GraphNode = {\n id: nodeInfo.task.id,\n type: 'start',\n };\n const taskSecondNodeInfo = this.graph.get(this.getGraphKey(startNode));\n if (!visited.has(this.getGraphKey(startNode))) {\n checkingDependencies = [\n ...checkingDependencies,\n ...taskSecondNodeInfo.dependencies.filter(\n (d) => !d.sticky && d.node.id !== nodeInfo.task.id,\n ),\n ];\n }\n }\n\n // Recur for all the nodes adjacent (by dependency) to this tasks\n checkingDependencies.forEach((dep) => {\n // Break the cycle if circularity already found\n if (pathExist) {\n return;\n }\n // Path exist check\n if (this.getGraphKey(dep.node) === endNodeKey) {\n pathExist = true;\n return;\n }\n // If the node are not visited\n if (!visited.has(this.getGraphKey(dep.node))) {\n // Push the current node to the stack which stores the result\n stack.push(this.getGraphKey(dep.node));\n }\n });\n }\n\n return pathExist;\n }\n\n /** Initializes the graph structure for the timeline. */\n private initGraph(): void {\n // Create a Map to store tasks for O(1) lookup\n const taskMap = new Map(this.tasks.map((task) => [task.id, task]));\n\n // Create a Map to store child tasks for each parent\n const childrenMap = new Map();\n\n // Create a Map to store dependent tasks for each task\n const dependentTasksMap = new Map();\n\n this.tasks.forEach((task) => {\n if (task.leadTaskId) {\n if (!childrenMap.has(task.leadTaskId)) {\n childrenMap.set(task.leadTaskId, []);\n }\n childrenMap.get(task.leadTaskId).push(task);\n }\n\n task.dependencies?.forEach((dep) => {\n if (!dependentTasksMap.has(dep.predecessorId)) {\n dependentTasksMap.set(dep.predecessorId, []);\n }\n dependentTasksMap.get(dep.predecessorId).push(task);\n });\n });\n\n this.tasks.forEach((task) => {\n const startNode: GraphNode = { id: task.id, type: 'start' };\n const finishNode: GraphNode = { id: task.id, type: 'finish' };\n\n const startNodeDeps: GraphDependency[] = [];\n const finishNodeDeps: GraphDependency[] = [];\n\n const childrenTasks = childrenMap.get(task.id) || [];\n\n childrenTasks.forEach((childTask) => {\n const dep = {\n node: {\n id: childTask.id,\n type: 'start' as GraphNodeType,\n },\n min: 0,\n sticky: true,\n task: childTask,\n };\n startNodeDeps.push(dep);\n });\n\n if (task.leadTaskId) {\n const leadTask = taskMap.get(task.leadTaskId);\n const dep = {\n node: {\n id: task.leadTaskId,\n type: 'finish' as GraphNodeType,\n },\n min: 0,\n sticky: true,\n task: leadTask,\n };\n finishNodeDeps.push(dep);\n }\n\n startNodeDeps.unshift({\n node: {\n id: task.id,\n type: 'finish' as GraphNodeType,\n },\n min: 0,\n task,\n });\n\n const dependentTasks = dependentTasksMap.get(task.id) || [];\n\n dependentTasks.forEach((dependentTask) => {\n dependentTask.dependencies.forEach((dep) => {\n if (dep.predecessorId !== task.id) return;\n switch (dep.type) {\n case ProjectTaskDependencyType.finishToStart:\n case ProjectTaskDependencyType.startToStart:\n case ProjectTaskDependencyType.finishToFinish:\n case ProjectTaskDependencyType.startToFinish: {\n const graphDep = {\n node: {\n id: dependentTask.id,\n type:\n dep.type === ProjectTaskDependencyType.finishToStart ||\n dep.type === ProjectTaskDependencyType.startToStart\n ? 'start'\n : ('finish' as GraphNodeType),\n },\n min:\n dep.type === ProjectTaskDependencyType.finishToStart ? 1 : 0,\n task: dependentTask,\n };\n (dep.type === ProjectTaskDependencyType.finishToStart ||\n dep.type === ProjectTaskDependencyType.finishToFinish\n ? finishNodeDeps\n : startNodeDeps\n ).push(graphDep);\n break;\n }\n }\n });\n });\n\n const startNodeInfo = {\n task,\n nodeType: 'start' as GraphNodeType,\n dependencies: startNodeDeps,\n };\n const finishNodeInfo = {\n task,\n nodeType: 'finish' as GraphNodeType,\n dependencies: finishNodeDeps,\n };\n\n this.graph.set(this.getGraphKey(startNode), startNodeInfo);\n this.graph.set(this.getGraphKey(finishNode), finishNodeInfo);\n });\n }\n\n /**\n * Checks if a task is a lead task.\n *\n * @param taskId - The ID of the task to check.\n * @returns True if the task is a lead task, false otherwise.\n */\n private checkIsLeadTask(taskId: string): boolean {\n return this.tasks.some((t) => t.leadTaskId === taskId);\n }\n\n /**\n * Generates a unique key for a given GraphNode.\n *\n * This method combines the type and id of a GraphNode to create a unique string identifier.\n *\n * @param node - The GraphNode for which to generate the key.\n * @returns A string representing the unique key for the given GraphNode.\n */\n private getGraphKey(node: GraphNode): string {\n return `${node.type}-${node.id}`;\n }\n\n /**\n * Gets the corresponding date key for a given node type.\n *\n * @param type - The type of the graph node ('start' or 'finish').\n * @returns The corresponding date key ('startDate' for 'start' nodes, 'endDate' for 'finish' nodes).\n */\n private getNodeCorrespondingDateKey(type: GraphNodeType): string {\n return type === 'finish' ? 'endDate' : 'startDate';\n }\n\n /** Initializes the predecessor graph for the timeline. */\n private initPredecessorGraph(): void {\n const getTask = (id: string) => this.tasks.find((t) => t.id === id);\n this.tasks.forEach((task) => {\n const startNode: GraphNode = { id: task.id, type: 'start' };\n const finishNode: GraphNode = { id: task.id, type: 'finish' };\n\n const startNodeDeps: GraphDependency[] = [];\n\n //SS dependency from lead task\n if (task.leadTaskId) {\n const predecessorTask = getTask(task.leadTaskId);\n const dep = {\n node: {\n id: task.leadTaskId,\n type: 'start' as GraphNodeType,\n },\n min: 0,\n sticky: true,\n task: predecessorTask,\n };\n startNodeDeps.push(dep);\n }\n\n //FF dependencies from children tasks\n const finishNodeDeps: GraphDependency[] = this.tasks\n .filter((t) => t.leadTaskId === task.id)\n .map((t) => {\n const dep = {\n node: {\n id: t.id,\n type: 'finish' as GraphNodeType,\n },\n min: 0,\n sticky: true,\n task: t,\n };\n return dep;\n });\n\n //FS dependency from self start date\n finishNodeDeps.unshift({\n node: {\n id: task.id,\n type: 'start' as GraphNodeType,\n },\n min: 0,\n task,\n });\n\n task.dependencies?.forEach((dep) => {\n switch (dep.type) {\n case ProjectTaskDependencyType.finishToStart: {\n const predecessorTask = getTask(dep.predecessorId);\n const graphDep = {\n node: {\n id: dep.predecessorId,\n type: 'finish' as GraphNodeType,\n },\n min: 1,\n task: predecessorTask,\n };\n startNodeDeps.push(graphDep);\n break;\n }\n case ProjectTaskDependencyType.startToStart: {\n const predecessorTask = getTask(dep.predecessorId);\n const graphDep = {\n node: {\n id: dep.predecessorId,\n type: 'start' as GraphNodeType,\n },\n min: 0,\n task: predecessorTask,\n };\n startNodeDeps.push(graphDep);\n break;\n }\n\n case ProjectTaskDependencyType.finishToFinish: {\n const predecessorTask = getTask(dep.predecessorId);\n const graphDep = {\n node: {\n id: dep.predecessorId,\n type: 'finish' as GraphNodeType,\n },\n min: 0,\n task: predecessorTask,\n };\n finishNodeDeps.push(graphDep);\n break;\n }\n case ProjectTaskDependencyType.startToFinish: {\n const predecessorTask = getTask(dep.predecessorId);\n const graphDep = {\n node: {\n id: dep.predecessorId,\n type: 'start' as GraphNodeType,\n },\n min: 0,\n task: predecessorTask,\n };\n finishNodeDeps.push(graphDep);\n break;\n }\n }\n });\n\n const startNodeInfo = {\n task,\n nodeType: 'start' as GraphNodeType,\n dependencies: startNodeDeps,\n };\n const finishNodeInfo = {\n task,\n nodeType: 'finish' as GraphNodeType,\n dependencies: finishNodeDeps,\n };\n\n this.predecessorGraph.set(this.getGraphKey(startNode), startNodeInfo);\n this.predecessorGraph.set(this.getGraphKey(finishNode), finishNodeInfo);\n });\n }\n\n /**\n * Returns all child task chain in the flat array.\n *\n * @param leadTaskId - id of the task for which searches child tasks\n * @returns all child tasks\n */\n private getAllChildTasks(leadTaskId: string): ProjectTask[] {\n if (!this.checkIsLeadTask(leadTaskId)) {\n return [];\n }\n\n const findFirstLevelChildren = (taskId: string) =>\n this.tasks.filter((t) => t.leadTaskId === taskId);\n\n return findFirstLevelChildren(leadTaskId).flatMap((childTask) => [\n childTask,\n ...this.getAllChildTasks(childTask.id),\n ]);\n }\n\n /**\n * Returns all summary task chain in the flat array.\n *\n * @param taskId - id of the task for which searches summary tasks.\n * @param targetTasks - project tasks array for search (default uses array from data service).\n * @param excludeMain - determines whether to exclude main task from resulting tasks.\n * @returns all parent tasks.\n */\n private getAllSummaryTasks(\n taskId: string,\n excludeMain = false,\n ): ProjectTask[] {\n const task = this.tasks.find((t) => t.id === taskId);\n if (!task.leadTaskId) {\n return [];\n }\n\n const findFirstLevelSummaryTask = (childTask: ProjectTask) => [\n this.tasks.find((t) => t.id === childTask.leadTaskId),\n ];\n\n let summaryTasks = findFirstLevelSummaryTask(task).flatMap(\n (summaryTask) => [\n summaryTask,\n ...this.getAllSummaryTasks(summaryTask.id),\n ],\n );\n if (excludeMain) {\n summaryTasks = summaryTasks.filter((st) => !!st.leadTaskId);\n }\n return summaryTasks;\n }\n\n /** Initializes the critical path in the graph. */\n private initCriticalPathTasksAndDependencies(): void {\n // Define the starting node for the traversal\n const beginNode: GraphNode = { id: this.mainTaskId, type: 'finish' };\n const beginNodeKey = this.getGraphKey(beginNode);\n\n // Initialize data structures for the traversal\n const visited = new Set(); // Keeps track of visited nodes\n const stack = []; // Stack for depth-first search\n const criticalDependencies: {\n taskId: string;\n dependency: ProjectTaskDependency;\n }[] = []; // Stores critical dependencies\n const criticalTaskIds = new Set(); // Stores IDs of critical tasks\n\n // Start the traversal from the beginning node\n stack.push(beginNodeKey);\n while (stack.length > 0) {\n const nodeKey = stack.pop();\n // Retrieve information about the current node and its dependencies\n const nodeInfo = this.graph.get(nodeKey);\n const finishNodeKey = this.getGraphKey({\n id: nodeInfo.task.id,\n type: 'finish',\n });\n if (\n nodeInfo.nodeType === 'start' &&\n !visited.has(finishNodeKey) &&\n !this.checkIsLeadTask(nodeInfo.task.id) // Summary task has not SF and FF dependencies\n ) {\n stack.push(finishNodeKey);\n continue;\n }\n\n visited.add(nodeKey);\n\n const nodeInfoDate = DateTime.fromISO(\n nodeInfo.task[this.getNodeCorrespondingDateKey(nodeInfo.nodeType)],\n );\n const dependentNodeInfo = this.predecessorGraph.get(nodeKey);\n\n const criticalDeps = dependentNodeInfo.dependencies.filter((dep) => {\n if (dep.task.id === nodeInfo.task.id) {\n return true;\n }\n const depNodeDate = DateTime.fromISO(\n dep.task[this.getNodeCorrespondingDateKey(dep.node.type)],\n );\n const depNodeDateNotWorking = this.scheduleService.getClosestWorkDay(\n depNodeDate.plus({ days: dep.min }),\n 'right',\n );\n return depNodeDateNotWorking.equals(nodeInfoDate);\n });\n\n // Skip if no critical dependency is found\n if (!criticalDeps.length) continue;\n\n criticalDeps.forEach((criticalDependency) => {\n // Process the next node in the critical path\n const nextNodeInfo = this.graph.get(\n this.getGraphKey(criticalDependency.node),\n );\n if (nextNodeInfo.task.id === dependentNodeInfo.task.id) {\n criticalTaskIds.add(nextNodeInfo.task.id);\n // All of the summary task for critical task are critical too\n this.getAllSummaryTasks(nextNodeInfo.task.id)\n .map((t) => t.id)\n .forEach((id) => criticalTaskIds.add(id));\n } else if (!criticalDependency.sticky) {\n // Determine the type of dependency based on node types\n if (nodeInfo.nodeType === 'start') {\n if (nextNodeInfo.nodeType === 'finish') {\n criticalDependencies.push({\n taskId: dependentNodeInfo.task.id,\n dependency: {\n predecessorId: nextNodeInfo.task.id,\n type: ProjectTaskDependencyType.finishToStart,\n },\n });\n } else {\n criticalDependencies.push({\n taskId: dependentNodeInfo.task.id,\n dependency: {\n predecessorId: nextNodeInfo.task.id,\n type: ProjectTaskDependencyType.startToStart,\n },\n });\n }\n } else {\n if (nextNodeInfo.nodeType === 'finish') {\n criticalDependencies.push({\n taskId: dependentNodeInfo.task.id,\n dependency: {\n predecessorId: nextNodeInfo.task.id,\n type: ProjectTaskDependencyType.finishToFinish,\n },\n });\n } else {\n criticalDependencies.push({\n taskId: dependentNodeInfo.task.id,\n dependency: {\n predecessorId: nextNodeInfo.task.id,\n type: ProjectTaskDependencyType.startToFinish,\n },\n });\n }\n }\n }\n\n if (!visited.has(this.getGraphKey(criticalDependency.node))) {\n // Add the next node to the stack for processing\n stack.push(\n this.getGraphKey({\n id: nextNodeInfo.task.id,\n type: nextNodeInfo.nodeType,\n }),\n );\n }\n });\n }\n\n // Store the results of the traversal\n this.criticalDependencies = criticalDependencies;\n criticalTaskIds.delete(this.mainTaskId);\n this.criticalTaskIds = [...criticalTaskIds];\n }\n}\n\nexport interface GraphNode {\n id: string;\n type: GraphNodeType;\n}\n\nexport interface GraphNodeInfo {\n earliestDate?: DateTime; // Earliest possible date\n nodeType: GraphNodeType;\n task: ProjectTask;\n dependencies: GraphDependency[];\n}\n\nexport interface GraphDependency {\n node: GraphNode;\n min: number; // Determines min dependency offset (1 just for FS dependencies)\n sticky?: boolean; // Determines sticky dependency between boundary children and lead task. It means that parent task must fit to their children tasks.\n task: ProjectTask;\n}\n\nexport type GraphNodeType = 'start' | 'finish';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectCardSharedModule } from '../../shared/project-card-shared.module';\nimport { TaskCardModalComponent } from './task-card-modal/task-card-modal.component';\nimport { TasksViewSwitcherComponent } from './tasks-view-switcher/tasks-view-switcher.component';\nimport { TaskAssignmentsComponent } from './task-card-modal/task-assignments/task-assignments.component';\nimport { AssignmentTableComponent } from './task-card-modal/task-assignments/assignments-table/assignments-table.component';\nimport { TasksViewFormComponent } from 'src/app/projects/card/project-tasks/shared/tasks-view-form/tasks-view-form.component';\nimport { TaskCollapsibleCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-cell.component';\nimport { TaskCollapsibleReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-readonly-cell.component';\nimport { TaskDateCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-cell.component';\nimport { TaskDateReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-readonly-cell.component';\nimport { TaskDurationCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-cell.component';\nimport { TaskDurationReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-readonly-cell.component';\nimport { TaskNameCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-cell.component';\nimport { TaskNameReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-readonly-cell.component';\nimport { TaskPredecessorCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-cell.component';\nimport { TaskPredecessorReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-readonly-cell.component';\nimport { TasksGridComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-grid.component';\nimport { TasksReportModalComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-report-modal/tasks-report-modal.component';\nimport { TasksToolbarComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-toolbar/tasks-toolbar.component';\nimport { TaskTimelineRightGroupComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/task-timeline-right-group.component';\nimport { TimelineEntryComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/task-timeline-right-group/timeline-entry/timeline-entry.component';\nimport { TimelineRightSideComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/timeline-right-side.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { UndoRedoButtonsComponent } from 'src/app/shared/services/undo-redo/undo-redo-buttons/undo-redo-buttons.component';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { CheckboxComponent } from 'src/app/shared/components/controls/checkbox/checkbox.component';\nimport { AccordionStateDirective } from 'src/app/shared/directives/accordion-state/accordion-state.directive';\nimport { TaskFlagCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component';\nimport { TaskFlagReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-readonly-cell.component';\n\n@NgModule({\n declarations: [\n TasksViewSwitcherComponent,\n TaskCardModalComponent,\n TaskAssignmentsComponent,\n AssignmentTableComponent,\n TasksViewFormComponent,\n TasksGridComponent,\n TasksToolbarComponent,\n TaskNameCellComponent,\n TaskNameReadonlyCellComponent,\n TaskDateCellComponent,\n TaskDateReadonlyCellComponent,\n TaskCollapsibleCellComponent,\n TaskCollapsibleReadonlyCellComponent,\n TasksReportModalComponent,\n TaskDurationCellComponent,\n TaskDurationReadonlyCellComponent,\n TaskPredecessorCellComponent,\n TaskPredecessorReadonlyCellComponent,\n TimelineRightSideComponent,\n TaskTimelineRightGroupComponent,\n TimelineEntryComponent,\n TaskFlagCellComponent,\n TaskFlagReadonlyCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n GridModule,\n UndoRedoButtonsComponent,\n ScheduleNavigationModule,\n UIRouterModule,\n CheckboxComponent,\n AccordionStateDirective,\n ],\n providers: [],\n exports: [\n TasksViewSwitcherComponent,\n TaskCardModalComponent,\n TasksViewFormComponent,\n ],\n})\nexport class ProjectTaskSharedModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@Component({\n selector: 'tmt-assignment-primary-tariff',\n imports: [SharedModule],\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssignmentTariffCellComponent implements OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public resourceType: ResourceType;\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private projectVersionCardService: ProjectVersionCardService,\n public projectCardService: ProjectCardService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.formGroup.controls.projectTeamMember.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.detectChanges());\n }\n\n /**\n * Generates a query object for fetching project tariffs based on the current team member and project context.\n *\n * @returns An object representing the query for fetching project tariffs.\n */\n public getProjectTariffQuery(): object {\n const teamMember = this.formGroup.controls.projectTeamMember.value;\n const query = {\n select: ['id', 'name'],\n filter: [],\n };\n\n if (teamMember) {\n query.filter.push({\n assignments: {\n any: {\n or: [\n {\n projectTeamMemberId: {\n type: 'guid',\n value: teamMember.id,\n },\n },\n {\n isAllTeamRole: true,\n },\n ],\n },\n },\n });\n }\n\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n this.projectVersionCardService.projectVersion,\n this.projectCardService.project.id,\n );\n\n return query;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AssignmentTariffCellComponent } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignment-tariff-cell/assignment-tariff-cell.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@Component({\n selector: 'tmt-assignment-primary-tariff',\n imports: [SharedModule],\n template: `{{ control?.getRawValue()?.name }}`,\n styles: `\n span {\n padding: 0 12px;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssignmentTariffReadonlyCellComponent extends AssignmentTariffCellComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { ProjectTaskAssignmentsView } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/model/task-assignments-view.enum';\nimport { PROJECT_TASK_ASSIGNMENTS_LIST } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/model/task-assignments.list';\nimport { AssignmentsToolbarComponent } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignments-toolbar/assignments-toolbar.component';\nimport { TaskAssignmentsService } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-assignments.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridSelectControlColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport const resolveTaskAssignmentsView = (info: ProjectCardService) =>\n info.project.billingType.code === ProjectBillingType.nonBillable.code\n ? ProjectTaskAssignmentsView.nonBillable\n : ProjectTaskAssignmentsView.default;\n\n@Component({\n selector: 'tmt-assignments-table',\n templateUrl: './assignments-table.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n GridService,\n ListService,\n { provide: LIST, useValue: PROJECT_TASK_ASSIGNMENTS_LIST },\n {\n provide: VIEW_NAME,\n useFactory: resolveTaskAssignmentsView,\n deps: [ProjectCardService],\n },\n ],\n standalone: false,\n})\nexport class AssignmentTableComponent implements OnInit {\n @Input() assignmentRows: UntypedFormArray;\n\n public assignmentsGridOptions: GridOptions;\n\n constructor(\n @Inject(LIST) private list: List,\n public taskAssignmentsService: TaskAssignmentsService,\n public gridService: GridService,\n private projectTasksDataService: ProjectTasksDataService,\n private projectCardService: ProjectCardService,\n private listService: ListService,\n private offCanvasService: OffCanvasService,\n ) {\n this.offCanvasService.offCanvasWidth$\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this.gridService.freezeTableService?.redraw();\n });\n }\n\n public ngOnInit(): void {\n if (this.taskAssignmentsService.readonly) {\n this.assignmentRows.disable({ emitEvent: false });\n } else {\n this.assignmentRows.enable({ emitEvent: false });\n }\n\n const memberColumn = this.list.columns.find(\n (c) => c.name === 'projectTeamMember',\n ) as GridSelectControlColumn;\n memberColumn.values = this.getAvailableMembers;\n\n this.assignmentsGridOptions = {\n selectionType: SelectionType.row,\n toolbar: AssignmentsToolbarComponent,\n resizableColumns: true,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.taskAssignmentsService.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.assignmentRows.removeAt(index);\n },\n },\n ],\n commands: [\n {\n name: 'addAssignmentsLine',\n allowedFn: () => !this.taskAssignmentsService.readonly,\n handlerFn: () => this.addAssignmentsLine(),\n },\n {\n name: 'deleteAssignment',\n allowedFn: () => !this.taskAssignmentsService.readonly,\n handlerFn: () => this.deleteAssignment(),\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n ],\n view: this.listService.getGridView(),\n };\n }\n\n /** Adds new assignment line in the table. */\n public addAssignmentsLine(): void {\n const group = this.taskAssignmentsService.getAssignmentFormGroup();\n this.assignmentRows.insert(0, group);\n this.gridService.selectGroup(group);\n }\n\n /** Deletes assignment from array. */\n public deleteAssignment(): void {\n if (!this.gridService.selectedGroup$.getValue()) {\n return;\n }\n const index = this.assignmentRows.controls.findIndex(\n (control) => control.value.id === this.gridService.selectedGroupValue.id,\n );\n this.assignmentRows.removeAt(index);\n if (this.assignmentRows.controls.length) {\n this.gridService.selectGroup(\n this.assignmentRows.controls[0] as UntypedFormGroup,\n );\n }\n }\n\n /** Returns available project team members.\n *\n * @returns available members.\n */\n private getAvailableMembers = (): Partial[] => {\n let members: Partial[] =\n this.projectTasksDataService.members.sort(naturalSort('name'));\n\n if (this.projectCardService.project.isAutoPlanning) {\n members = members.filter(\n (member) => member?.resource?.resourceType !== ResourceType.department,\n );\n }\n\n members.forEach((member) => {\n if (!member.isActive) {\n member.name = StringHelper.getCrossedOutString(member.name);\n }\n });\n\n const assignedMemberIds = [];\n this.taskAssignmentsService.task.projectTaskAssignments.forEach(\n (assignments) => {\n if (assignments.projectTeamMember?.id) {\n assignedMemberIds.push(assignments.projectTeamMember.id);\n }\n },\n );\n return members.filter((member) => !assignedMemberIds.includes(member.id));\n };\n\n /**\n * Opens view configuration dialog\n *\n * @private\n * */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.assignmentsGridOptions.view = this.listService.getGridView();\n },\n () => null,\n );\n }\n}\n","\n","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { TranslateStubModule } from 'src/app/testing/translate-stub.module';\n\n@Component({\n selector: 'tmt-task-dependencies-toolbar',\n imports: [TranslateStubModule, AsyncPipe],\n templateUrl: `./assignments-toolbar.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssignmentsToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!gridService.readonly) {\n
    \n
    \n \n \n {{ 'shared2.actions.addLine' | translate }}\n \n \n \n \n
    \n \n \n \n
    \n}\n","export enum ProjectTaskAssignmentsView {\n default = 'default',\n nonBillable = 'nonBillable',\n}\n","import { AssignmentTariffCellComponent } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignment-tariff-cell/assignment-tariff-cell.component';\nimport { AssignmentTariffReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/assignments-table/assignment-tariff-cell/assignment-tariff-readonly-cell.component';\nimport { ProjectTaskAssignmentsView } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/model/task-assignments-view.enum';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridNumberControlColumn,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { List } from 'src/app/shared/models/inner/list';\n\nexport const PROJECT_TASK_ASSIGNMENTS_LIST: List = {\n name: 'projectTasksAssignments',\n version: 1,\n views: [\n {\n name: ProjectTaskAssignmentsView.default,\n resizableColumns: true,\n columns: [\n {\n column: 'projectTeamMember',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'projectTariff',\n visibleByDefault: false,\n width: 180,\n },\n {\n column: 'units',\n visibleByDefault: true,\n width: 130,\n },\n ],\n },\n {\n name: ProjectTaskAssignmentsView.nonBillable,\n resizableColumns: true,\n columns: [\n {\n column: 'projectTeamMember',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'units',\n visibleByDefault: true,\n width: 130,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'projectTeamMember',\n header: 'shared2.props.resource',\n hint: 'shared2.props.resource',\n placeholder: 'shared2.props.resource',\n type: GridColumnType.SelectControl,\n fixedWidth: true,\n allowNull: false,\n },\n {\n name: 'projectTariff',\n header: 'components.assignmentTableComponent.groups.projectTariff',\n hint: 'components.assignmentTableComponent.groups.projectTariff',\n component: AssignmentTariffCellComponent,\n readonlyComponent: AssignmentTariffReadonlyCellComponent,\n type: GridColumnType.Component,\n width: '180px',\n },\n {\n name: 'units',\n header: 'components.assignmentTableComponent.groups.units',\n hint: 'components.assignmentTableComponent.groups.units',\n type: GridColumnType.NumberControl,\n controlType: 'percent',\n contentType: GridColumnType.Percent,\n propagationMode: PropagationMode.onExitFromEditing,\n min: 0,\n allowNull: false,\n width: '130px',\n },\n ],\n dataColumns: [],\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport _ from 'lodash';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport { merge, Subject } from 'rxjs';\nimport { TaskAssignmentsService } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-assignments.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-task-assignments',\n templateUrl: './task-assignments.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TaskAssignmentsService],\n standalone: false,\n})\nexport class TaskAssignmentsComponent implements OnInit, OnDestroy {\n @Input() task: ProjectTask;\n @Input() readonly: boolean;\n @Input() assignmentsFormGroup: UntypedFormGroup;\n\n public assignmentFormGroup: UntypedFormGroup = this.fb.group({\n allTeamAssignment: false,\n assignmentRows: this.fb.array([]),\n });\n\n public get assignmentRows(): UntypedFormArray {\n return this.assignmentFormGroup.controls.assignmentRows as UntypedFormArray;\n }\n\n private assignmentsChangingFromModal = false;\n\n private destroyed$ = new Subject();\n private stopSubscriptionsSubject$ = new Subject();\n\n constructor(\n public gridService: GridService,\n public projectCardService: ProjectCardService,\n private fb: UntypedFormBuilder,\n private taskAssignmentsService: TaskAssignmentsService,\n ) {}\n\n ngOnInit(): void {\n this.prepareAssignments();\n\n if (this.assignmentsFormGroup.disabled) {\n this.readonly = true;\n }\n if (this.readonly) {\n this.assignmentFormGroup.disable({ emitEvent: false });\n }\n this.taskAssignmentsService.readonly = this.readonly;\n this.taskAssignmentsService.task = this.task;\n\n if (!this.readonly) {\n this.initCardGroupChangesSubscription();\n this.initExternalChangesSubscription();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private initCardGroupChangesSubscription(): void {\n this.assignmentFormGroup.valueChanges\n .pipe(\n map((formResult) => {\n if (formResult.allTeamAssignment) {\n return [\n {\n id: Guid.generate(),\n isAllTeamRole: true,\n isUnassigned: false,\n projectTeamMemberId: null,\n units: null,\n projectTariff: null,\n },\n ];\n }\n return formResult.assignmentRows\n .filter((row) => row.projectTeamMember)\n .map((assignmentRow) => ({\n id: assignmentRow.id,\n isAllTeamRole: false,\n isUnassigned: false,\n projectTeamMember: assignmentRow.projectTeamMember,\n projectTeamMemberId:\n assignmentRow.projectTeamMember.resource?.id ?? null,\n units: assignmentRow.units ?? null,\n projectTariff: assignmentRow.projectTariff,\n projectTariffId: assignmentRow.projectTariff?.id ?? null,\n }));\n }),\n filter(\n (newAssignments) =>\n !_.isEqual(\n this.task.projectTaskAssignments\n .map(\n (assignment) =>\n assignment.id +\n (assignment.projectTeamMemberId ?? '') +\n (assignment.units ?? '') +\n (assignment.projectTariffId ?? ''),\n )\n .sort(),\n newAssignments\n .map(\n (newAssignment) =>\n newAssignment.id +\n (newAssignment.projectTeamMemberId ?? '') +\n (newAssignment.units ?? '') +\n (newAssignment.projectTariffId ?? ''),\n )\n .sort(),\n ),\n ),\n takeUntil(merge(this.destroyed$, this.stopSubscriptionsSubject$)),\n )\n .subscribe((newAssignments) => {\n this.assignmentsChangingFromModal = true;\n this.assignmentsFormGroup.setValue(newAssignments);\n });\n }\n\n /** Prepares assignments form group for assignment tab. */\n private prepareAssignments(): void {\n this.task.projectTaskAssignments.sort(\n naturalSort('projectTeamMember.name'),\n );\n\n if (this.task.projectTaskAssignments.some((ass) => ass.isUnassigned)) {\n return;\n }\n\n if (this.task.projectTaskAssignments.some((ass) => ass.isAllTeamRole)) {\n this.assignmentFormGroup.controls.allTeamAssignment.setValue(true, {\n emitEvent: false,\n });\n return;\n }\n\n this.task.projectTaskAssignments.forEach((assignment) => {\n const assignmentGroup =\n this.taskAssignmentsService.getAssignmentFormGroup(assignment);\n\n this.assignmentRows.push(assignmentGroup, { emitEvent: false });\n });\n }\n\n /** Inits listener of main formArray assignments changing. */\n private initExternalChangesSubscription(): void {\n this.assignmentsFormGroup.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n if (this.assignmentsChangingFromModal) {\n this.assignmentsChangingFromModal = false;\n } else {\n const newAssignmentsIds = value.map((assignment) => assignment.id);\n const existAssignmentsIds = this.assignmentRows.value\n .filter((row) => row.projectTeamMember)\n .map((assignment) => assignment.id);\n const isEqualRows = _.isEqual(\n newAssignmentsIds.sort(),\n existAssignmentsIds.sort(),\n );\n\n if (!isEqualRows) {\n this.rebuildAssignments();\n }\n }\n });\n }\n\n /** Rebuilds dependencies table. */\n private rebuildAssignments() {\n this.stopSubscriptionsSubject$.next();\n this.assignmentRows.clear();\n this.prepareAssignments();\n this.initCardGroupChangesSubscription();\n }\n}\n","
    \n @if (!projectCardService.project.isAutoPlanning) {\n
    \n \n \n
    \n }\n\n @if (!assignmentFormGroup.value.allTeamAssignment) {\n \n }\n
    \n","import { Injectable, OnDestroy } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport {\n ProjectTask,\n ProjectTaskAssignment,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Injectable()\nexport class TaskAssignmentsService implements OnDestroy {\n public task: ProjectTask;\n public readonly: boolean;\n\n public allTeamCode = 'allTeam';\n\n private destroyed$ = new Subject();\n\n constructor(\n private projectTasksDataService: ProjectTasksDataService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Returns assignment form group for table.\n *\n * @returns assignment form group\n */\n public getAssignmentFormGroup(\n assignment?: ProjectTaskAssignment,\n ): UntypedFormGroup {\n const formGroup = this.fb.group({\n id: Guid.generate(),\n isAllTeamRole: false,\n isUnassigned: false,\n projectTeamMember: [null, Validators.required],\n units: null,\n projectTariff: null,\n });\n\n if (assignment) {\n const projectTeamMember =\n assignment.projectTeamMember ??\n this.projectTasksDataService.members.find(\n (member) => member.id === assignment.projectTeamMemberId,\n );\n if (!projectTeamMember.isActive) {\n projectTeamMember.name = StringHelper.getCrossedOutString(\n projectTeamMember.name,\n );\n }\n\n const assignmentItem = {\n id: assignment.id,\n isAllTeamRole: false,\n isUnassigned: false,\n units: assignment.units,\n projectTariff: assignment.projectTariff,\n projectTeamMember,\n };\n formGroup.patchValue(assignmentItem, { emitEvent: false });\n\n if (\n projectTeamMember.resource?.resourceType === ResourceType.department\n ) {\n //TODO: remove setTimeout if possible\n setTimeout(() => {\n formGroup.controls.projectTariff.disable({ emitEvent: false });\n formGroup.controls.units.disable({ emitEvent: false });\n });\n }\n }\n\n formGroup.controls.projectTeamMember.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n formGroup.controls.projectTariff.setValue(null, {\n emitEvent: false,\n });\n if (value.resource?.resourceType === ResourceType.department) {\n formGroup.controls.units.setValue(null, { emitEvent: false });\n formGroup.controls.units.disable({ emitEvent: false });\n formGroup.controls.projectTariff.disable({ emitEvent: false });\n } else {\n if (\n formGroup.controls.units.getRawValue() === null ||\n this.task.effortDriven\n ) {\n formGroup.controls.units.setValue(1, { emitEvent: false });\n }\n formGroup.controls.units.enable({ emitEvent: false });\n formGroup.controls.projectTariff.enable({ emitEvent: false });\n }\n if (value.isActive === false) {\n value.name = StringHelper.getCrossedOutString(value.name);\n }\n });\n\n return formGroup;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { TranslateStubModule } from 'src/app/testing/translate-stub.module';\n\n@Component({\n selector: 'tmt-task-dependencies-toolbar',\n imports: [TranslateStubModule],\n templateUrl: './task-dependencies-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaskDependenciesToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!gridService.readonly) {\n
    \n
    \n \n \n {{ 'shared2.actions.addLine' | translate }}\n \n \n \n \n
    \n
    \n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport {\n AVAILABLE_DEPENDENCY_TYPES,\n PROJECT_TASK_TYPES,\n ProjectTask,\n ProjectTaskDependency,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { merge, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport { difference } from 'lodash';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridSelectControlColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { TaskDependenciesToolbarComponent } from 'src/app/projects/card/project-tasks/shared/task-card-modal/task-assignments/task-dependencies-toolbar/task-dependencies-toolbar.component';\n\n@Component({\n selector: 'wp-task-card-modal',\n templateUrl: './task-card-modal.component.html',\n styleUrls: ['./task-card-modal.component.scss'],\n providers: [GridService],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaskCardModalComponent implements OnInit, OnDestroy {\n @Input() task: ProjectTask;\n @Input() projectVersion: ProjectVersion;\n @Input() readonly: boolean;\n @Input() isInherited: boolean;\n @Input() autoPlanning: boolean;\n\n public feature = Feature;\n\n public propagationMode = PropagationMode;\n\n public taskTypes: NamedEntity[] = [];\n\n public form: UntypedFormGroup;\n public dependencies: UntypedFormArray = this.fb.array([]);\n public gridOptions: GridOptions;\n public isSummaryTask = false;\n\n public readonly constants = Constants;\n\n private dependenciesChangingFromModal = false;\n public dependencyTypes: NamedEntity[];\n\n private destroyed$ = new Subject();\n private stopSubscriptionsSubject$ = new Subject();\n\n constructor(\n @Inject('entityId') public projectId,\n public app: AppService,\n public projectTasksDataService: ProjectTasksDataService,\n public gridService: GridService,\n public scheduleService: ScheduleService,\n private fb: UntypedFormBuilder,\n private dependenciesService: ProjectTaskDependenciesService,\n private translateService: TranslateService,\n private offCanvasService: OffCanvasService,\n ) {}\n\n public ngOnInit(): void {\n this.offCanvasService.offCanvasActionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.projectTasksDataService.load(false);\n });\n this.offCanvasService.offCanvasActionPanelService.setHasAutosave(true);\n this.offCanvasService.offCanvasWidth$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.gridService.freezeTableService?.redraw();\n });\n this.projectTasksDataService.syncDependencies$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.task = this.projectTasksDataService.getTask(this.task.id);\n this.form.patchValue(this.task);\n });\n\n this.dependencyTypes = AVAILABLE_DEPENDENCY_TYPES.filter(\n (type) =>\n // Lead task can only has FS or SS dependencies\n !this.projectTasksDataService.checkIsLeadTask(this.task.id) ||\n type === ProjectTaskDependencyType.finishToStart ||\n type === ProjectTaskDependencyType.startToStart,\n ).map((e) => ({\n id: e,\n name: this.translateService.instant(`shared2.props.${e}.value`),\n }));\n\n const taskFormGroup = this.projectTasksDataService.formArray.controls.find(\n (taskGroup) => taskGroup.value.id === this.task.id,\n ) as UntypedFormGroup;\n if (this.readonly) {\n const isolatedFormGroup =\n this.projectTasksDataService.getFormGroup(false);\n isolatedFormGroup.patchValue(taskFormGroup.getRawValue());\n isolatedFormGroup.disable({ emitEvent: false });\n this.form = isolatedFormGroup;\n } else {\n this.form = taskFormGroup;\n }\n\n this.gridOptions = {\n selectionType: SelectionType.row,\n toolbar: TaskDependenciesToolbarComponent,\n resizableColumns: true,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.dependencies.removeAt(index);\n },\n },\n ],\n commands: [\n {\n name: 'create',\n allowedFn: () => !this.readonly,\n handlerFn: () => this.addDependencyLine(),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly && !!formGroup,\n handlerFn: () => this.deleteDependency(),\n },\n ],\n view: {\n name: 'default',\n columns: [\n {\n name: 'predecessorControl',\n header: 'components.taskCardModalComponent.props.predecessorTask',\n hint: 'components.taskCardModalComponent.props.predecessorTask',\n placeholder:\n 'components.taskCardModalComponent.props.predecessorTask',\n type: GridColumnType.SelectControl,\n values: this.getAvailablePredecessorTasks,\n width: '330px',\n },\n ],\n },\n };\n\n const dependencyTypeColumn = {\n name: 'dependencyType',\n header: 'components.taskCardModalComponent.props.dependencyType',\n hint: 'components.taskCardModalComponent.props.dependencyType',\n type: GridColumnType.SelectControl,\n allowNull: false,\n values: this.dependencyTypes,\n width: '330px',\n };\n\n this.gridOptions.view.columns.push(dependencyTypeColumn);\n\n this.prepareDependencies();\n this.initExternalChangesSubscription();\n\n PROJECT_TASK_TYPES.forEach((taskType) =>\n this.taskTypes.push({\n id: taskType,\n name: this.translateService.instant(`enums.taskTypes.${taskType}`),\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Adds new dependency line in the table. */\n public addDependencyLine(): void {\n const group = this.getDependencyFormGroup();\n this.dependencies.insert(0, group);\n this.gridService.selectGroup(group);\n }\n\n /** Deletes dependency from dependency array. */\n public deleteDependency(): void {\n if (!this.gridService.selectedGroupValue) {\n return;\n }\n const index = this.dependencies.controls.findIndex(\n (control) => control.value.id === this.gridService.selectedGroupValue.id,\n );\n this.dependencies.removeAt(index);\n }\n\n /** Prepares dependencies form array for table. */\n private prepareDependencies(): void {\n this.task.dependencies.forEach((dependency: ProjectTaskDependency) => {\n const predecessorTask: ProjectTask =\n this.projectTasksDataService.tasks.find(\n (t) => t.id === dependency.predecessorId,\n );\n const predecessorControl: NamedEntity = {\n id: predecessorTask?.id,\n name: `${predecessorTask?.structNumber} ${predecessorTask?.name}`,\n };\n const dependencyType = this.dependencyTypes.find(\n (t) => t.id === dependency.type,\n );\n\n const group = this.getDependencyFormGroup();\n group.patchValue(\n { predecessorControl, dependencyType },\n { emitEvent: false },\n );\n\n if (this.readonly) {\n group.disable({ emitEvent: false });\n }\n\n this.dependencies.push(group);\n });\n\n this.dependencies.valueChanges\n .pipe(\n map((newDependencies) => {\n newDependencies = newDependencies.filter(\n (d) => d.predecessorControl?.id,\n );\n return newDependencies.map((d) => ({\n type: d.dependencyType.id,\n predecessorId: d.predecessorControl.id,\n }));\n }),\n filter(\n (newDependencies) =>\n !_.isEqual(this.form.controls.dependencies.value, newDependencies),\n ),\n takeUntil(merge(this.destroyed$, this.stopSubscriptionsSubject$)),\n )\n .subscribe((newDependencies) => {\n this.dependenciesChangingFromModal = true;\n this.form.controls.dependencies.setValue(newDependencies);\n });\n }\n\n /** Returns dependency form group for table.\n *\n * @returns dependency form group\n */\n private getDependencyFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n dependencyType: [this.dependencyTypes[0], Validators.required],\n predecessorControl: [null, Validators.required],\n });\n }\n\n /** Returns available predecessor tasks for new dependency.\n *\n * @returns available predecessor tasks in NamedEntity list format\n */\n private getAvailablePredecessorTasks = (): NamedEntity[] => {\n const type = this.gridService.selectedGroupValue.dependencyType.id;\n const allowedTaskIds = this.dependenciesService\n .getAllowedPredecessorTaskNodes(this.task.id, type)\n .map((node) => node.id);\n\n // Current predecessor task ids (the project task card level, not saved)\n const existPredecessorIds = this.dependencies.value\n .filter((d) => d.dependencyType.id === type)\n .flatMap((dependency) => dependency.predecessorControl?.id)\n .filter((id) => !!id);\n const availablePredecessorTaskIds = difference(\n allowedTaskIds,\n existPredecessorIds,\n );\n return this.projectTasksDataService.tasks\n .filter((task) => availablePredecessorTaskIds.includes(task.id))\n .map((task) => ({\n id: task.id,\n name: `${task.structNumber} ${task.name}`,\n }));\n };\n\n /** Inits listener of main formArray dependencies changing. */\n private initExternalChangesSubscription() {\n if (!this.readonly) {\n this.form.controls.dependencies.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n if (this.dependenciesChangingFromModal) {\n this.dependenciesChangingFromModal = false;\n } else {\n const newValueStringArray = value.map(\n (dependency) => dependency.predecessorId + dependency.type,\n );\n const existValueStringArray = this.dependencies.value\n .filter((d) => d.predecessorControl)\n .map(\n (dependency) =>\n dependency.predecessorControl?.id +\n dependency.dependencyType.id,\n );\n const isEqual = _.isEqual(\n newValueStringArray,\n existValueStringArray,\n );\n\n if (!isEqual) {\n this.rebuildDependencies();\n }\n }\n });\n }\n }\n\n /** Rebuilds dependencies table. */\n private rebuildDependencies() {\n this.stopSubscriptionsSubject$.next();\n this.dependencies.clear();\n this.prepareDependencies();\n }\n}\n","
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n \n
    \n\n \n \n \n
    \n\n @if (task.leadTaskId) {\n
    \n \n
    \n }\n\n
    \n \n \n
    \n \n
    \n
    \n \n\n
    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n\n @if (this.app.getCustomFields('ProjectTask').length || autoPlanning) {\n
    \n

    \n \n

    \n
    \n
    \n \n @if (autoPlanning) {\n
    \n \n \n
    \n
    \n \n \n
    \n }\n\n
    \n \n
    \n
    \n
    \n
    \n
    \n }\n \n
    \n","import { cloneDeep, sortBy } from 'lodash';\nimport { Injectable } from '@angular/core';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { TransitionService } from '@uirouter/angular';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { ProjectTaskSettings } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/project-task-settings.model';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport {\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { taskMaxLevel } from 'src/app/projects/card/project-tasks/shared/models/project-task-constants';\n\n/** Сервис реализует команды управления задачами проекта. */\n@Injectable()\nexport class ProjectTasksCommandsService {\n constructor(\n private transitionService: TransitionService,\n private localConfigService: LocalConfigService,\n private customFieldService: CustomFieldService,\n private projectCardService: ProjectCardService,\n ) {\n const settings = this.localConfigService.getConfig(ProjectTaskSettings);\n this.transitionService.onSuccess({}, (trans) => {\n const state = trans.targetState().identifier();\n\n if (state.toString().includes('project.tasks')) {\n settings.toggler = trans.targetState().name();\n this.localConfigService.setConfig(ProjectTaskSettings, settings);\n }\n });\n }\n\n /** Повысить уровень задачи. */\n public increaseLevel(tasks: ProjectTask[], taskId: string) {\n const task = tasks.find((t) => t.id === taskId);\n\n if (!task.leadTaskId || task.indent <= 1) {\n return;\n }\n\n const taskLead = tasks.find((t) => t.id === task.leadTaskId);\n\n // Пересчет номеров текущей ветки (-1 все что ниже).\n let upTasks = tasks.filter((t) => t.leadTaskId === task.leadTaskId);\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < upTasks.length; i++) {\n if (upTasks[i].number > task.number) {\n tasks.find((t) => t.id === upTasks[i].id).number--;\n }\n }\n\n // Пересчет новой ветки текущей ветки (+1 все что ниже).\n const downTasks = tasks.filter((t) => t.leadTaskId === taskLead.leadTaskId);\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < downTasks.length; i++) {\n if (downTasks[i].number > taskLead.number) {\n tasks.find((t) => t.id === downTasks[i].id).number++;\n }\n }\n\n task.leadTaskId = taskLead.leadTaskId;\n task.number = taskLead.number + 1;\n task.indent--;\n\n const taskForIndentIncrease = tasks.filter((t) => t.leadTaskId === task.id);\n this.changeLevel(taskForIndentIncrease, -1, tasks);\n\n // Перерасчет структурных номеров\n upTasks = tasks.filter((t) => t.leadTaskId === taskLead.leadTaskId);\n\n this.updateStructNumbers(upTasks, tasks);\n }\n\n /** Понизить уровень задачи. */\n public decreaseLevel(tasks: ProjectTask[], taskId: string) {\n const task = tasks.find((t) => t.id === taskId);\n\n if (!task.leadTaskId || task.number <= 0 || task.indent <= 0) {\n return;\n }\n\n const taskAbove = tasks.find(\n (t) => t.number === task.number - 1 && t.leadTaskId === task.leadTaskId,\n );\n const maxNumber = this.maxNumberInLevel(taskAbove.id, tasks);\n task.indent++;\n task.leadTaskId = taskAbove.id;\n task.number = maxNumber + 1;\n\n let upTasks = tasks.filter((t) => t.leadTaskId === task.id);\n this.changeLevel(upTasks, 1, tasks);\n\n // Пересчет номеров предыдущей ветки.\n upTasks = tasks.filter((t) => t.leadTaskId === taskAbove.leadTaskId);\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < upTasks.length; i++) {\n if (upTasks[i].number > taskAbove.number) {\n tasks.find((t) => t.id === upTasks[i].id).number--;\n }\n }\n\n // Перерасчет структурных номеров.\n upTasks = tasks.filter((t) => t.leadTaskId === taskAbove.leadTaskId);\n this.updateStructNumbers(upTasks, tasks);\n }\n\n /** Переместить задачу вверх в списке. */\n public up(tasks: ProjectTask[], taskId: string) {\n const task = tasks.find((t) => t.id === taskId);\n\n if (!task.leadTaskId || task.number <= 0) {\n return;\n }\n\n const taskAbove = tasks.find(\n (t) => t.number === task.number - 1 && t.leadTaskId === task.leadTaskId,\n );\n task.number--;\n taskAbove.number++;\n\n // Перерасчет структурных номеров\n const upTasks = tasks.filter((t) => !t.leadTaskId);\n this.updateStructNumbers(upTasks, tasks);\n }\n\n /** Переместить задачу вниз в списке. */\n public down(tasks: ProjectTask[], taskId: string): ProjectTask {\n const task = tasks.find((t) => t.id === taskId);\n\n const maxNumber = this.maxNumberInLevel(task.leadTaskId, tasks);\n\n if (!task.leadTaskId || maxNumber < 1 || task.number === maxNumber) {\n return;\n }\n\n const taskBelow = tasks.find(\n (t) => t.number === task.number + 1 && t.leadTaskId === task.leadTaskId,\n );\n task.number++;\n taskBelow.number--;\n\n // Перерасчет структурных номеров.\n const upTasks = tasks.filter((t) => !t.leadTaskId);\n this.updateStructNumbers(upTasks, tasks);\n\n return taskBelow;\n }\n\n /** Возвращает максимальный номер задачи в конкретной ветке. */\n public maxNumberInLevel(leadTaskId: string, tasks: ProjectTask[]) {\n const tasksInLevel = tasks.filter((t) => t.leadTaskId === leadTaskId);\n let max = -1;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < tasksInLevel.length; i++) {\n if (tasksInLevel[i].number > max) {\n max = tasksInLevel[i].number;\n }\n }\n return max;\n }\n\n /** Обновление структурных номеров в ветке. */\n public updateStructNumbers(tasks: ProjectTask[], allTask: ProjectTask[]) {\n const orderedTasks = sortBy(tasks, ['number']);\n let i = 0;\n orderedTasks.forEach((task) => {\n i++;\n let number: string;\n if (task.leadTaskId) {\n const leadTask = allTask.find((t) => t.id === task.leadTaskId);\n\n if (leadTask.structNumber) {\n number = leadTask.structNumber + '.' + i;\n } else {\n number = i.toString();\n }\n } else {\n number = '';\n }\n\n const sTask = allTask.find((t) => t.id === task.id);\n sTask.structNumber = number;\n\n // Ищем подчиненные задачи и отправляем их на обновление.\n const childTasks = allTask.filter((t) => t.leadTaskId === task.id);\n this.updateStructNumbers(childTasks, allTask);\n });\n }\n\n public changeLevel(\n tasks: ProjectTask[],\n delta: number,\n allTask: ProjectTask[],\n ) {\n tasks.forEach((task) => {\n const sTask = allTask.find((t) => t.id === task.id);\n sTask.indent = sTask.indent + delta;\n\n // Ищем подчиненные задачи и отправляем их на обновление.\n const childTasks = allTask.filter((t) => t.leadTaskId === task.id);\n this.changeLevel(childTasks, delta, allTask);\n });\n }\n\n /**\n * Checks if a specific command is allowed for a given task.\n *\n * @param command The command to check.\n * @param taskId The ID of the task to check the command for.\n * @param tasks The array of tasks to check against.\n * @returns A boolean indicating if the command is allowed.\n */\n public isCommandAllowed(\n command: string,\n taskId: string,\n tasks: ProjectTask[],\n ): boolean {\n const task: ProjectTask = taskId\n ? tasks.find((t) => t.id === taskId)\n : null;\n if (!task) return false;\n\n switch (command) {\n case 'delete':\n return this.canDelete(task);\n case 'up':\n return this.canMoveUp(task);\n case 'down':\n return this.canMoveDown(task, tasks);\n case 'increaseLevel':\n return this.canIncreaseLevel(task);\n case 'decreaseLevel':\n return this.canDecreaseLevel(task, tasks);\n case 'createChild':\n return this.canCreateChild(task);\n default:\n return false;\n }\n }\n\n /** Создание новой задачи. */\n public create(\n currentTaskId: string,\n createChild: boolean,\n tasks: ProjectTask[],\n ): ProjectTask {\n const taskId = Guid.generate();\n\n const projectTaskAssignments = [];\n const isAutoPlanning = this.projectCardService.project.isAutoPlanning;\n projectTaskAssignments.push({\n id: Guid.generate(),\n isAllTeamRole: !isAutoPlanning,\n isUnassigned: isAutoPlanning,\n projectTaskId: taskId,\n });\n\n const task: ProjectTask = {\n id: taskId,\n crossId: taskId,\n number: 0,\n structNumber: '',\n isExpanded: null,\n leadTaskId: null,\n indent: 0,\n name: '',\n description: '',\n startDate: null,\n endDate: null,\n duration: null,\n allowTimeEntry: true,\n actualCost: null,\n actualHours: null,\n isActive: true,\n projectTaskAssignments,\n dependencies: [],\n type: null,\n effortDriven: false,\n categoryId: null,\n };\n\n if (createChild) {\n const currentTask = tasks.find((t) => t.id === currentTaskId);\n const maxNumber = this.maxNumberInLevel(currentTaskId, tasks);\n task.indent = currentTask.indent + 1;\n task.number = maxNumber + 1;\n task.leadTaskId = currentTaskId;\n task.startDate = currentTask.startDate;\n task.endDate = currentTask.startDate;\n } else {\n const mainTask = tasks.find((t) => !t.leadTaskId);\n if (!currentTaskId || currentTaskId === mainTask.id) {\n const maxNumber = this.maxNumberInLevel(mainTask.id, tasks);\n task.indent = 1;\n task.number = maxNumber + 1;\n task.leadTaskId = mainTask.id;\n task.startDate = mainTask.startDate;\n task.endDate = mainTask.startDate;\n } else {\n const currentTask = tasks.find((t) => t.id === currentTaskId);\n task.number = currentTask.number + 1;\n\n // Задачи в ветке, в которую вставляем новую задачу.\n let upTasks = tasks.filter(\n (t) => t.leadTaskId === currentTask.leadTaskId,\n );\n upTasks = sortBy(upTasks, ['number']);\n\n upTasks.forEach((upTask) => {\n if (\n upTask.number >= currentTask.number &&\n upTask.id !== currentTask.id\n ) {\n upTask.number++;\n }\n });\n\n const leadTask = tasks.find((t) => t.id === currentTask.leadTaskId);\n task.leadTaskId = currentTask.leadTaskId;\n task.indent = currentTask.indent;\n task.startDate = leadTask.startDate;\n task.endDate = leadTask.startDate;\n }\n }\n\n const customFields = this.customFieldService.getList('ProjectTask');\n customFields.forEach((f) => {\n if (f.viewConfiguration.formDefaultValue) {\n switch (f.type) {\n case MetaEntityPropertyType.decimal:\n task[`${f.name}`] = parseFloat(\n f.viewConfiguration.formDefaultValue,\n );\n task[`${f.name}Sum`] = parseFloat(\n f.viewConfiguration.formDefaultValue,\n );\n break;\n case MetaEntityPropertyType.integer:\n task[`${f.name}`] = parseInt(f.viewConfiguration.formDefaultValue);\n task[`${f.name}Sum`] = parseInt(\n f.viewConfiguration.formDefaultValue,\n );\n break;\n case MetaEntityPropertyType.directory:\n task[`${(f as MetaEntityDirectoryProperty).keyProperty}`] =\n f.viewConfiguration.formDefaultValue;\n break;\n default:\n task[`${f.name}`] = f.viewConfiguration.formDefaultValue;\n }\n }\n });\n tasks.push(task);\n\n // Перерасчет структурных номеров.\n const updatingTasks = tasks.filter((t) => t.leadTaskId === task.leadTaskId);\n this.updateStructNumbers(updatingTasks, tasks);\n\n return task;\n }\n\n public copy(originalTaskId: string, tasks: ProjectTask[]): ProjectTask {\n const originalTask = tasks.find((t) => t.id === originalTaskId);\n const task = cloneDeep(originalTask);\n\n task.isExpanded = true;\n task.plannedHours = null;\n task.actualHours = null;\n task.plannedCost = null;\n\n if (task.projectTaskAssignments) {\n task.projectTaskAssignments.forEach((assignment) => {\n assignment.id = Guid.generate();\n });\n }\n\n task.id = Guid.generate();\n task.number = originalTask.number + 1;\n\n // Задачи в ветке, в которую вставляем новую задачу.\n let upTasks = tasks.filter((t) => t.leadTaskId === originalTask.leadTaskId);\n upTasks = sortBy(upTasks, ['number']);\n\n upTasks.forEach((upTask: ProjectTask) => {\n if (upTask.number >= task.number && upTask.id !== task.id) {\n upTask.number++;\n }\n });\n\n tasks.push(task);\n\n // Перерасчет структурных номеров.\n const updatingTasks = tasks.filter((t) => t.leadTaskId === task.leadTaskId);\n this.updateStructNumbers(updatingTasks, tasks);\n\n return task;\n }\n\n /**\n * Checks if a task can be deleted.\n *\n * @param task The task to check.\n * @returns A boolean indicating if the task can be deleted.\n */\n private canDelete(task: ProjectTask): boolean {\n return !!task.leadTaskId;\n }\n\n /**\n * Checks if a task can be moved up.\n *\n * @param task The task to check.\n * @returns A boolean indicating if the task can be moved up.\n */\n private canMoveUp(task: ProjectTask): boolean {\n return task.leadTaskId && task.number > 0;\n }\n\n /**\n * Checks if a task can be moved down.\n *\n * @param task The task to check.\n * @param tasks The array of tasks to check against.\n * @returns A boolean indicating if the task can be moved down.\n */\n private canMoveDown(task: ProjectTask, tasks: ProjectTask[]): boolean {\n return (\n task.leadTaskId &&\n task.number < this.maxNumberInLevel(task.leadTaskId, tasks)\n );\n }\n\n /**\n * Checks if a task's level can be increased.\n *\n * @param task The task to check.\n * @returns A boolean indicating if the task's level can be increased.\n */\n private canIncreaseLevel(task: ProjectTask): boolean {\n return task.leadTaskId && task.indent > 1 && !task['plannedHoursSum'];\n }\n\n /**\n * Checks if a task's level can be decreased.\n *\n * @param task The task to check.\n * @param tasks The array of tasks to check against.\n * @returns A boolean indicating if the task's level can be decreased.\n */\n private canDecreaseLevel(task: ProjectTask, tasks: ProjectTask[]): boolean {\n return (\n task.leadTaskId &&\n task.indent > 0 &&\n task.number > 0 &&\n this.getMaxIndent(task, tasks) < taskMaxLevel - 1 &&\n !task['plannedHoursSum']\n );\n }\n\n /**\n * Checks if a child task can be created for a given task.\n *\n * @param task The task to check.\n * @returns A boolean indicating if a child task can be created.\n */\n private canCreateChild(task: ProjectTask): boolean {\n return task.indent < taskMaxLevel - 1;\n }\n\n /**\n * Calculates the maximum indent level of a task and its children.\n *\n * @param task The task to start from.\n * @param tasks The array of tasks to check against.\n * @returns The maximum indent level.\n */\n private getMaxIndent(task: ProjectTask, tasks: ProjectTask[]): number {\n let max = task.indent;\n const children = tasks.filter((t) => t.leadTaskId === task.id);\n\n if (children.length === 0) {\n return max;\n }\n\n children.forEach((child) => {\n const elMax = this.getMaxIndent(child, tasks);\n if (max < elMax) {\n max = elMax;\n }\n });\n\n return max;\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { View } from 'src/app/shared/models/inner/view';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, META_ENTITY_TYPE, VIEW_NAME } from 'src/app/shared/tokens';\n\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { TaskCollapsibleCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-cell.component';\nimport { TaskCollapsibleReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-readonly-cell.component';\nimport {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport {\n GridComponentColumn,\n GridColumnType,\n GridStringControlColumn,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Injectable()\nexport class ProjectTasksListService extends ListService {\n constructor(\n @Inject(LIST) list: List,\n @Inject(VIEW_NAME) viewName: string,\n @Optional() @Inject(META_ENTITY_TYPE) metaEntityType: string,\n appService: AppService,\n modalService: NgbModal,\n @Optional() filterService: FilterService,\n ) {\n super(\n list,\n viewName,\n metaEntityType,\n appService,\n filterService,\n modalService,\n );\n }\n\n /** Расширяет текущий список и все его представления дополнительными колонками (полями). */\n public override extendListWithCustomFields(): void {\n const fields = this.appService\n .getCustomFields('ProjectTask')\n .filter((f) => f.viewConfiguration.isShownInEntityLists);\n\n // Добавляем колонки данных.\n fields.forEach((field: MetaEntityBaseProperty) => {\n const name =\n field.type === MetaEntityPropertyType.directory\n ? (field as MetaEntityDirectoryProperty).keyProperty\n : field.name;\n\n if (this.list.columns.find((c) => c.name === name)) {\n return;\n }\n\n const local = field.viewConfiguration.label;\n\n switch (field.type) {\n case MetaEntityPropertyType.decimal:\n case MetaEntityPropertyType.integer:\n this.list.columns.push({\n name,\n type: GridColumnType.Component,\n contentType:\n field.type === MetaEntityPropertyType.decimal\n ? GridColumnType.Decimal\n : GridColumnType.Integer,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n fixedWidth: true,\n header: local,\n hint: local,\n availableTotals: [TotalType.Sum],\n });\n break;\n case MetaEntityPropertyType.string:\n case MetaEntityPropertyType.url:\n case MetaEntityPropertyType.phone:\n case MetaEntityPropertyType.email:\n this.list.columns.push({\n name,\n type: GridColumnType.StringControl,\n fixedWidth: true,\n header: local,\n hint: local,\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n extendedType:\n field.type !== MetaEntityPropertyType.string\n ? field.type.toLowerCase()\n : undefined,\n });\n break;\n case MetaEntityPropertyType.dateOnly:\n this.list.columns.push({\n name,\n type: GridColumnType.DateControl,\n fixedWidth: true,\n header: local,\n hint: local,\n forceCellUpdating: true,\n });\n break;\n case MetaEntityPropertyType.directory:\n this.list.columns.push({\n name,\n header: local,\n hint: local,\n type: GridColumnType.SelectControl,\n fixedWidth: true,\n directory: (field as MetaEntityDirectoryProperty).directoryId,\n isIdMode: true,\n forceCellUpdating: true,\n });\n break;\n default:\n return;\n }\n\n this.list.views.forEach((view: View) => {\n if (view.columns.find((c) => c.column === name)) {\n return;\n }\n\n view.columns.push({\n column: name,\n width: 120,\n totalByDefault: TotalType.Sum,\n visibleByDefault: false,\n });\n });\n });\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\n@Component({\n selector: 'tmt-flag-cell',\n styleUrls: ['./task-category-cell.component.scss'],\n templateUrl: './task-category-cell.component.html',\n standalone: false,\n})\nexport class TaskFlagCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n private destroyRef = inject(DestroyRef);\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n constructor(\n public service: GridService,\n public cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n}\n","\n","import { Component } from '@angular/core';\nimport { TaskFlagCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component';\n\n@Component({\n selector: 'tmt-flag-readonly-cell',\n styleUrls: ['./task-category-cell.component.scss'],\n templateUrl: './task-category-readonly-cell.component.html',\n standalone: false,\n})\nexport class TaskFlagReadonlyCellComponent\n extends TaskFlagCellComponent {}","","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n OnInit,\n ViewChild,\n OnDestroy,\n} from '@angular/core';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport {\n GridColumn,\n GridColumnType,\n GridNumberControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n NumberBoxComponent,\n NumberBoxType,\n} from 'src/app/shared/components/controls/number-box/number-box.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\n\n@Component({\n selector: 'wp-task-collapsible-cell',\n templateUrl: './task-collapsible-cell.component.html',\n styleUrls: ['./task-collapsible-cell.component.scss'],\n standalone: false,\n})\nexport class TaskCollapsibleCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n public type: NumberBoxType;\n\n public propagationMode = PropagationMode;\n\n public precision: number;\n\n private destroyed$ = new Subject();\n\n @ViewChild('numberBox') numberBox: NumberBoxComponent;\n\n public get viewValue(): number {\n return this.formGroup.value.isExpanded\n ? this.formGroup.value[this.column.name]\n : this.formGroup.value[`${this.column.name}Sum`];\n }\n\n constructor(\n public service: GridService,\n public projectCardService: ProjectCardService,\n private ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n switch (this.column.contentType) {\n case GridColumnType.Work:\n this.type = 'work';\n break;\n case GridColumnType.Decimal:\n this.type = 'decimal';\n break;\n case GridColumnType.Integer:\n this.type = 'integer';\n break;\n }\n\n this.precision = (this.column as GridNumberControlColumn).precision;\n\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n this.formGroup.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewRef,\n inject,\n} from '@angular/core';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport {\n GridColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { AppService } from 'src/app/core/app.service';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { DecimalPipe, PercentPipe } from '@angular/common';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-task-collapsible-readonly-cell',\n template: `
    {{ getValue() }}
    `,\n styleUrls: ['./task-collapsible-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class TaskCollapsibleReadonlyCellComponent\n implements GridComponentCell, OnInit\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n @Input() currencyCode: string;\n\n private destroyRef = inject(DestroyRef);\n\n public get task(): ProjectTask {\n return this.formGroup.value;\n }\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n constructor(\n private app: AppService,\n public service: GridService,\n public ref: ChangeDetectorRef,\n private currencyPipe: WpCurrencyPipe,\n private workPipe: WorkPipe,\n private decimalPipe: DecimalPipe,\n private percentPipe: PercentPipe,\n private projectTasksDataService: ProjectTasksDataService,\n public projectCardService: ProjectCardService,\n private renderer: Renderer2,\n private elRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n if (\n !this.projectTasksDataService.summaryEditableFields.includes(\n this.column.name,\n )\n ) {\n this.control.disable({ emitEvent: false });\n }\n\n this.updateStyles();\n\n this.service.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.updateStyles();\n this.ref.detectChanges();\n }\n });\n this.formGroup.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n /**\n * Retrieves the formatted value based on the column type.\n *\n * @returns {string} The formatted value as a string.\n */\n public getValue(): string {\n const value: number = this.task.isExpanded\n ? this.formGroup.getRawValue()[this.column.name]\n : this.formGroup.getRawValue()[`${this.column.name}Sum`];\n\n switch (this.column.contentType) {\n case GridColumnType.Currency:\n return this.currencyPipe.transform(\n value,\n this.projectCardService.project.currency.alpha3Code ??\n this.app.session.configuration.baseCurrencyCode,\n );\n case GridColumnType.Work:\n return this.workPipe.transform(value);\n case GridColumnType.Decimal:\n return this.decimalPipe.transform(value, '1.2-2');\n case GridColumnType.Integer:\n return this.decimalPipe.transform(value, '1.0');\n case GridColumnType.Percent:\n return value ? this.percentPipe.transform(value, '1.0-2') : '';\n }\n }\n\n /** Update custom css styles. */\n private updateStyles(): void {\n if (this.control.disabled) {\n this.renderer.addClass(this.elRef.nativeElement.firstChild, 'disabled');\n } else {\n this.renderer.removeClass(\n this.elRef.nativeElement.firstChild,\n 'disabled',\n );\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { DateBoxComponent } from 'src/app/shared/components/controls/date-box/date-box.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ScheduleService } from 'src/app/core/schedule.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-task-date-cell',\n styleUrls: ['./task-date-cell.component.scss'],\n templateUrl: './task-date-cell.component.html',\n standalone: false,\n})\nexport class TaskDateCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n @Input() allowNull: boolean;\n\n @ViewChild('dateBox') dateBox: DateBoxComponent;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n private destroyed$ = new Subject();\n\n constructor(\n public projectTasksDataService: ProjectTasksDataService,\n public renderer: Renderer2,\n public service: GridService,\n public cdr: ChangeDetectorRef,\n public elRef: ElementRef,\n public scheduleService: ScheduleService,\n ) {}\n\n ngOnInit(): void {\n this.updateStyles();\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updateStyles();\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Update custom css styles. */\n private updateStyles() {\n const gridCell = this.renderer.parentNode(this.elRef.nativeElement);\n if (\n this.column.name === 'endDate' &&\n this.projectTasksDataService.checkIsLeadTask(this.formGroup.value.id)\n ) {\n this.control.disable({ emitEvent: false, onlySelf: true });\n this.renderer.addClass(gridCell, 'disabled');\n } else {\n this.control.enable({ emitEvent: false, onlySelf: true });\n this.renderer.removeClass(gridCell, 'disabled');\n }\n }\n}\n","\n","import { Component } from '@angular/core';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { TaskDateCellComponent } from './task-date-cell.component';\n\n@Component({\n selector: 'tmt-task-date-readonly-cell',\n styleUrls: ['./task-date-cell.component.scss'],\n templateUrl: './task-date-readonly-cell.component.html',\n standalone: false,\n})\nexport class TaskDateReadonlyCellComponent\n extends TaskDateCellComponent\n implements GridComponentCell {}\n","\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { DurationBoxComponent } from 'src/app/shared/components/controls/duration-box/duration-box.component';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-task-duration-cell',\n styleUrls: ['./task-duration-cell.component.scss'],\n templateUrl: './task-duration-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskDurationCellComponent\n implements GridComponentCell, OnInit, AfterViewInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n @ViewChild('durationBox') durationBox: DurationBoxComponent;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n /* Task duration min value. */\n public readonly durationMinValue = 1;\n\n public readonly: boolean;\n\n private destroyed$ = new Subject();\n\n constructor(\n public projectTasksDataService: ProjectTasksDataService,\n public renderer: Renderer2,\n public service: GridService,\n public cdr: ChangeDetectorRef,\n public elRef: ElementRef,\n ) {}\n\n ngOnInit(): void {\n this.updateStyles();\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updateStyles();\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n if (this.initialValue !== undefined) {\n this.durationBox?.setUserValue(this.initialValue);\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Updates custom css styles. */\n private updateStyles(): void {\n const gridCell = this.renderer.parentNode(this.elRef.nativeElement);\n if (\n this.column.name === 'duration' &&\n this.projectTasksDataService.checkIsLeadTask(this.formGroup.value.id)\n ) {\n this.control.disable({ emitEvent: false, onlySelf: true });\n this.renderer.addClass(gridCell, 'disabled');\n } else {\n this.control.enable({ emitEvent: false, onlySelf: true });\n this.renderer.removeClass(gridCell, 'disabled');\n }\n }\n}\n","\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { TaskDurationCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-cell.component';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-task-duration-readonly-cell',\n styleUrls: ['./task-duration-cell.component.scss'],\n templateUrl: './task-duration-readonly-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskDurationReadonlyCellComponent\n extends TaskDurationCellComponent\n implements GridComponentCell {}\n","\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n ChangeDetectionStrategy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { ProjectTaskConstants } from 'src/app/projects/card/project-tasks/shared/models/project-task-constants';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-task-name-cell',\n templateUrl: './task-name-cell.component.html',\n styleUrls: ['./task-name-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskNameCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n @ViewChild('input') input: TextBoxComponent;\n\n public readonly constants = Constants;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n ) {}\n\n public toggle() {\n this.service.execute('toggle', this.formGroup);\n }\n\n getIndent() {\n const width =\n ProjectTaskConstants.indentWidth * this.formGroup.value.indent;\n const value = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'padding-left': width + 'px',\n };\n return value;\n }\n\n ngOnInit(): void {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","
    \n \n
    \n\n\n\n {{ control.value }}\n\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { TaskNameCellComponent } from './task-name-cell.component';\n\n@Component({\n selector: 'wp-task-name-readonly-cell',\n templateUrl: './task-name-readonly-cell.component.html',\n styleUrls: ['./task-name-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskNameReadonlyCellComponent\n extends TaskNameCellComponent\n implements GridComponentCell {}\n","
    \n \n
    \n\n {{ control.value }}\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { PredecessorBoxComponent } from 'src/app/projects/card/shared/predecessor-box/predecessor-box.component';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-task-predecessor-cell',\n styleUrls: ['./task-predecessor-cell.component.scss'],\n templateUrl: './task-predecessor-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskPredecessorCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n @ViewChild('predecessorBox') predecessorBox: PredecessorBoxComponent;\n\n public readonly: boolean;\n public taskId: string;\n public tasks: ProjectTask[];\n private destroyed$ = new Subject();\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n constructor(\n public projectTasksDataService: ProjectTasksDataService,\n public renderer: Renderer2,\n public service: GridService,\n public cdr: ChangeDetectorRef,\n public elRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n this.taskId = this.formGroup.getRawValue()?.id;\n this.tasks = this.projectTasksDataService.tasks;\n\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { TaskPredecessorCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-cell.component';\n\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-task-predecessor-readonly-cell',\n styleUrls: ['./task-predecessor-cell.component.scss'],\n templateUrl: './task-predecessor-readonly-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskPredecessorReadonlyCellComponent\n extends TaskPredecessorCellComponent\n implements GridComponentCell, AfterViewInit\n{\n public ngAfterViewInit(): void {\n this.predecessorBox.setDisabledState(true);\n }\n}\n","\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { TasksToolbarComponent } from './tasks-toolbar/tasks-toolbar.component';\nimport { Subject, Subscription } from 'rxjs';\nimport {\n FormGroup,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { HttpClient } from '@angular/common/http';\nimport { saveAs } from 'file-saver';\nimport { filter, map, pairwise, take, takeUntil } from 'rxjs/operators';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ProjectTasksListService } from './project-tasks-list.service';\nimport { PROJECT_TASK_LIST } from 'src/app/shared/lists/project-task.list';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PROJECT_TASK_TYPES } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { GridComponent } from 'src/app/shared-features/grid/grid.component';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { TasksReportModalComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-report-modal/tasks-report-modal.component';\nimport { TimelineRightSideComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/timeline-right-side.component';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport {\n ProjectTaskTableView,\n ProjectTaskView,\n} from 'src/app/projects/card/project-tasks/shared/models/project-task-view.enum';\nimport { TASKS_VIEW } from 'src/app/projects/card/project-tasks/shared/models/project-task-constants';\nimport { MembersBoxComponent } from 'src/app/projects/card/shared/members-box/members-box.component';\nimport { PredecessorBoxComponent } from 'src/app/projects/card/shared/predecessor-box/predecessor-box.component';\nimport {\n GridCurrencyColumn,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { ImageExport } from 'src/app/shared/helpers/image-export/image-export.helper';\nimport { CropInfo } from 'src/app/shared/helpers/image-export/crop-info.interface';\nimport { ProjectTaskExport } from 'src/app/projects/card/project-tasks/shared/models/project-task-export.model';\nimport { LogService } from 'src/app/core/log.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DOCUMENT } from '@angular/common';\nimport { TaskFlagCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component';\nimport { FlagBoxComponent } from 'src/app/projects/card/shared/flag-box/flag-box.component';\n\nexport const resolveTasksView = (info: UIRouterGlobals) =>\n info.current.url === '/timeline'\n ? ProjectTaskView.timeline\n : ProjectTaskView.table;\n\nexport const resolveAutoPlanningView = (\n info: ProjectCardService,\n info2: UIRouterGlobals,\n) => {\n const isAutoPlanning = info.project.isAutoPlanning;\n\n const url = info2.current.url;\n if (url === '/timeline') {\n return isAutoPlanning\n ? ProjectTaskTableView.timelineDefault\n : ProjectTaskTableView.timelineNoAutoPlanning;\n }\n return isAutoPlanning\n ? ProjectTaskTableView.tableDefault\n : ProjectTaskTableView.tableNoAutoPlanning;\n};\n\n/** Project tasks. */\n@Component({\n selector: 'wp-tasks-grid',\n templateUrl: './tasks-grid.component.html',\n styleUrls: ['./tasks-grid.component.scss'],\n providers: [\n ProjectTeamService,\n GridService,\n { provide: ListService, useClass: ProjectTasksListService },\n { provide: LIST, useValue: PROJECT_TASK_LIST },\n {\n provide: VIEW_NAME,\n useFactory: resolveAutoPlanningView,\n deps: [ProjectCardService, UIRouterGlobals],\n },\n {\n provide: TASKS_VIEW,\n useFactory: resolveTasksView,\n deps: [UIRouterGlobals],\n },\n ],\n standalone: false,\n})\nexport class TasksGridComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() entityId: string;\n @ViewChild('grid') grid: GridComponent;\n\n /** Grid properties. */\n public gridOptions: GridOptions = {\n sorting: false,\n resizableColumns: true,\n toolbar: TasksToolbarComponent,\n rightSideComponent:\n this.tasksView === ProjectTaskView.timeline\n ? TimelineRightSideComponent\n : null,\n clientTotals: false,\n selectionType: SelectionType.range,\n keyboardEvents: true,\n commands: [\n {\n name: 'create',\n handlerFn: (id: string) => {\n const newTaskId = this.tasksGridActionsService.create(id, false);\n const newTaskGroup =\n (this.taskDataService.formArray.controls.find(\n (group) => group.value.id === newTaskId,\n ) as UntypedFormGroup) ?? null;\n this.gridService.selectGroup(newTaskGroup);\n this.setActiveNameCell(newTaskGroup);\n },\n allowedFn: () =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsCreatingAllowed(),\n keyCode: 'Insert',\n },\n {\n name: 'edit',\n handlerFn: (id) => this.tasksGridActionsService.edit(id),\n allowedFn: (id) =>\n this.gridService.selectedGroupsValue.length === 1 && id !== null,\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n {\n name: 'toggle',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.toggleTask(formGroup),\n },\n {\n name: 'setLevel',\n handlerFn: (level: number) =>\n this.tasksGridActionsService.setLevel(level),\n },\n {\n name: 'increaseLevel',\n handlerFn: (id) => this.tasksGridActionsService.increaseTaskLevel(id),\n allowedFn: (id) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsIncreaseAllowed(id),\n },\n {\n name: 'decreaseLevel',\n handlerFn: (id) => this.tasksGridActionsService.decreaseTaskLevel(id),\n allowedFn: (id) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsDecreaseAllowed(id),\n },\n {\n name: 'up',\n handlerFn: (id) => this.tasksGridActionsService.upTaskPosition(id),\n allowedFn: (id) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsUpAllowed(id),\n },\n {\n name: 'down',\n handlerFn: (id) => this.tasksGridActionsService.downTaskPosition(id),\n allowedFn: (id) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsDownAllowed(id),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: () => {\n const taskIdsForDeleting = this.getTaskIdsForDeleting();\n this.tasksGridActionsService.delete(taskIdsForDeleting);\n\n const nextTaskGroup = this.getTaskFormGroupForSelect(\n this.taskDataService.formArray.controls as UntypedFormGroup[],\n taskIdsForDeleting,\n );\n\n this.gridService.selectGroup(nextTaskGroup);\n this.setActiveNameCell(nextTaskGroup);\n },\n allowedFn: () => {\n const selectedTaskIds = this.gridService.selectedGroups$\n .getValue()\n ?.map((taskGroup) => taskGroup.value.id);\n return (\n selectedTaskIds.length &&\n selectedTaskIds.every((taskId) =>\n this.tasksGridActionsService.checkIsDeletingAllowed(taskId),\n )\n );\n },\n },\n {\n name: 'exportTo',\n handlerFn: (taskExport: ProjectTaskExport) => {\n if (taskExport === 'Excel') {\n this.downloadTasksReport();\n } else {\n this.exportTo(taskExport);\n }\n },\n },\n ],\n rowContextMenu: [\n {\n name: 'create',\n label: 'shared.actions.create',\n handlerFn: (formGroup: UntypedFormGroup) => {\n const newTaskId = this.tasksGridActionsService.create(\n formGroup.value.id,\n false,\n );\n const newTaskGroup =\n (this.taskDataService.formArray.controls.find(\n (group) => group.value.id === newTaskId,\n ) as UntypedFormGroup) ?? null;\n this.gridService.selectGroup(newTaskGroup);\n },\n allowedFn: () =>\n this.gridService.selectedGroupsValue?.length === 1 &&\n this.tasksGridActionsService.checkIsCreatingAllowed(),\n iconClass: 'bi bi-plus-lg bi-15',\n },\n {\n name: 'createChild',\n label: 'components.tasksGridComponent.actions.createChild',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.create(formGroup.value.id, true),\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsChildCreatingAllowed(\n formGroup.value.id,\n ),\n },\n {\n name: 'duplicate',\n label: 'shared.actions.duplicate',\n handlerFn: (formGroup: UntypedFormGroup) => {\n const newTaskIndex = this.tasksGridActionsService.duplicateTask(\n formGroup.value.id,\n );\n this.gridService.selectGroup(\n this.taskDataService.formArray.at(newTaskIndex) as UntypedFormGroup,\n );\n this.gridService.detectChanges();\n },\n\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.taskDataService.getTask(formGroup.value.id)?.leadTaskId &&\n !this.taskDataService.readonly &&\n !this.taskDataService.isInherited,\n },\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.edit(formGroup.value.id),\n allowedFn: () => this.gridService.selectedGroupsValue?.length === 1,\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: () => {\n const taskIdsForDeleting = this.getTaskIdsForDeleting();\n this.tasksGridActionsService.delete(taskIdsForDeleting);\n this.gridService.selectGroup(null);\n },\n allowedFn: () => {\n const selectedTaskIds = this.gridService.selectedGroups$\n .getValue()\n ?.map((taskGroup) => taskGroup.value.id);\n return selectedTaskIds.every((taskId) =>\n this.tasksGridActionsService.checkIsDeletingAllowed(taskId),\n );\n },\n iconClass: 'bi bi-trash3',\n },\n {\n name: 'clear',\n label: 'shared.actions.clear',\n handlerFn: () => {\n this.gridService.clearSelectedRangeCells();\n },\n allowedFn: () =>\n !this.taskDataService.readonly && !this.taskDataService.isInherited,\n },\n {\n name: 'increaseLevel',\n label: 'shared2.actions.increaseLevel',\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.tasksGridActionsService.increaseTaskLevel(formGroup.value.id);\n this.gridService.detectChanges();\n },\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsIncreaseAllowed(\n formGroup.value.id,\n ),\n iconClass: 'bi bi-arrow-bar-left',\n },\n {\n name: 'decreaseLevel',\n label: 'shared2.actions.decreaseLevel',\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.tasksGridActionsService.decreaseTaskLevel(formGroup.value.id);\n this.gridService.detectChanges();\n },\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsDecreaseAllowed(\n formGroup.value.id,\n ),\n iconClass: 'bi bi-arrow-bar-right',\n },\n {\n name: 'up',\n label: 'shared2.actions.moveUp',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.upTaskPosition(formGroup.value.id),\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsUpAllowed(formGroup.value.id),\n iconClass: 'bi bi-arrow-bar-up',\n },\n {\n name: 'down',\n label: 'shared2.actions.moveDown',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.downTaskPosition(formGroup.value.id),\n allowedFn: (formGroup: UntypedFormGroup) =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsDownAllowed(formGroup.value.id),\n iconClass: 'bi bi-arrow-bar-down',\n },\n {\n name: 'isActive',\n label: (formGroup: UntypedFormGroup) =>\n formGroup.controls.isActive.value\n ? 'shared2.actions.complete'\n : 'shared2.actions.open',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.tasksGridActionsService.switchTaskStatus(formGroup.value.id),\n allowedFn: () =>\n this.gridService.selectedGroupsValue?.length < 2 &&\n this.tasksGridActionsService.checkIsStatusChangingAllowed(),\n },\n ],\n copyPasteParsers: [\n {\n columnName: 'dependencies',\n parseTextToValue: PredecessorBoxComponent.parseTextToValue,\n },\n {\n columnName: 'projectTaskAssignments',\n parseTextToValue: MembersBoxComponent.parseTextToValue,\n },\n {\n columnName: 'categoryId',\n parseTextToValue: FlagBoxComponent.parseTextToValue,\n },\n ],\n view: this.listService.getGridView(),\n };\n\n private project: Project;\n private destroyed$ = new Subject();\n private projectSubscription: Subscription;\n\n constructor(\n @Inject(TASKS_VIEW) public tasksView: ProjectTaskView,\n @Inject(DOCUMENT) private document: Document,\n private service: ProjectCardService,\n private versionCardService: ProjectVersionCardService,\n private listService: ListService,\n private gridService: GridService,\n private modal: NgbModal,\n private blockUI: BlockUIService,\n private message: MessageService,\n private httpClient: HttpClient,\n public taskDataService: ProjectTasksDataService,\n public tasksGridActionsService: TasksGridActionsService,\n private translateService: TranslateService,\n private elRef: ElementRef,\n private offCanvasService: OffCanvasService,\n private logService: LogService,\n private notificationService: NotificationService,\n ) {}\n\n public ngOnInit(): void {\n this.projectSubscription = this.service.project$.subscribe(\n (project: Project) => {\n this.project = project;\n if (this.grid) {\n this.grid.toolbarInputs = { project };\n }\n this.setColumnsCurrency();\n this.setColumnsOptions();\n this.gridService.detectChanges();\n },\n );\n\n /**\n * Subscription to loading indication.\n * */\n this.taskDataService.isLoading$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isLoading: boolean) =>\n this.gridService.setLoadingState(isLoading),\n );\n\n /**\n * Subscription to changes.\n * */\n this.taskDataService.update$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.gridService.detectChanges());\n\n this.gridService.selectedGroup$\n .pipe(\n pairwise(),\n filter(\n ([lastGroup, newGroup]) =>\n this.offCanvasService.offCanvasEntry &&\n lastGroup.getRawValue().id !== newGroup.getRawValue().id,\n ),\n map(([_, newGroup]) => newGroup),\n takeUntil(this.destroyed$),\n )\n .subscribe((group: FormGroup) => {\n this.tasksGridActionsService.edit(group.getRawValue().id);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.taskDataService.project) {\n this.grid.toolbarInputs = { project: this.taskDataService.project };\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.projectSubscription.unsubscribe();\n }\n\n private setColumnsOptions() {\n const gridView = this.listService.getGridView();\n\n const taskTypeColumn = gridView.columns.find(\n (col) => col.name === 'type',\n ) as GridSelectControlColumn;\n\n if (taskTypeColumn) {\n const taskTypes = [];\n // TODO: remove filter after fixed units realize\n PROJECT_TASK_TYPES.forEach((taskType) =>\n taskTypes.push({\n id: taskType,\n name: this.translateService.instant(`enums.taskTypes.${taskType}`),\n }),\n );\n\n taskTypeColumn.values = taskTypes;\n }\n\n this.gridOptions.view = gridView;\n }\n\n /**\n * Opens view configuration dialog\n *\n * @private\n * */\n private setUserView() {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.taskDataService.load();\n this.setColumnsCurrency();\n this.setColumnsOptions();\n },\n () => null,\n );\n }\n\n /**\n * Downloads task report\n *\n * @private\n */\n private downloadTasksReport() {\n const url = `${AppConfigService.config.api.url}/ProjectTasksReport/GetProjectTasksExcel`;\n\n const ref = this.modal.open(TasksReportModalComponent);\n\n ref.result.then(\n (settings) => {\n this.blockUI.start();\n\n const params = {\n projectId: this.taskDataService.project.id,\n versionId: !this.versionCardService.isWorkProjectVersion()\n ? this.versionCardService.projectVersion.id\n : null,\n kpiKinds: settings.kpiKinds,\n kpiTypes: settings.kpiTypes,\n };\n\n this.httpClient\n .post(url, params, {\n responseType: 'blob',\n })\n .subscribe({\n next: (data) => {\n saveAs(data, `Project tasks Report.xlsx`);\n this.blockUI.stop();\n },\n error: async (error) => {\n const isPromise = !!error && typeof error.then === 'function';\n\n if (isPromise) {\n const errorText = await error;\n const errorObj = JSON.parse(errorText);\n this.message.error(errorObj.error.message);\n this.blockUI.stop();\n } else {\n this.message.error(error.message);\n this.blockUI.stop();\n }\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Exports the project tasks grid as picture.\n *\n * @param taskExport - The format to export the project tasks grid to.\n */\n private exportTo(taskExport: Exclude): void {\n // Clear the selected group\n this.gridService.selectGroup(null);\n // Async await of selection reset\n setTimeout(() => {\n const tableContainer = this.document.querySelector(\n '[name=\"table-container\"]',\n ) as HTMLElement;\n const tableContainerRect = tableContainer.getBoundingClientRect();\n\n const scrollHeader = this.document.querySelector(\n '[name=\"scroll-table-header\"]',\n );\n const scrollHeaderRect = scrollHeader.getBoundingClientRect();\n\n const scrollFooter = this.document.querySelector(\n '[name=\"scroll-table-footer\"]',\n );\n const scrollFooterRect = scrollFooter.getBoundingClientRect();\n\n // Add some elements out of viewport to excluded for html2canvas\n const elementsToExportIgnore = Array.from(\n tableContainer.querySelectorAll('table, td'),\n ).filter((el) => {\n const rect = el.getBoundingClientRect();\n return (\n rect.top > scrollFooterRect.bottom ||\n rect.bottom < scrollHeaderRect.top\n );\n });\n\n elementsToExportIgnore.forEach((el) => {\n el.setAttribute('data-html2canvas-ignore', 'true');\n });\n\n const removeExcludeAttributes = () => {\n elementsToExportIgnore.forEach((el) => {\n el.removeAttribute('data-html2canvas-ignore');\n });\n };\n\n const cropInfo = {\n height:\n scrollFooterRect.top + scrollFooterRect.height - scrollHeaderRect.top,\n top: Math.max(0, scrollHeaderRect.top - tableContainerRect.top),\n width:\n this.tasksView === 'table'\n ? scrollHeaderRect.width\n : tableContainerRect.width,\n };\n\n this.blockUI.start();\n ImageExport.exportElement(\n tableContainer,\n taskExport,\n 'project-tasks',\n cropInfo,\n ).then(\n () => {\n this.blockUI.stop();\n switch (taskExport) {\n case 'PNG':\n case 'JPEG':\n this.notificationService.successLocal(\n 'components.tasksGridComponent.messages.tableSuccessDownloaded',\n );\n break;\n case 'Clipboard':\n this.notificationService.successLocal(\n 'components.tasksGridComponent.messages.tableSuccessCopied',\n );\n break;\n }\n removeExcludeAttributes();\n },\n (err) => {\n this.blockUI.stop();\n this.logService.error(err);\n switch (taskExport) {\n case 'PNG':\n case 'JPEG':\n this.notificationService.successLocal(\n 'components.tasksGridComponent.messages.tableDownloadError',\n );\n break;\n case 'Clipboard':\n this.notificationService.successLocal(\n 'components.tasksGridComponent.messages.tableCopyError',\n );\n break;\n }\n removeExcludeAttributes();\n },\n );\n });\n }\n\n /**\n * Sets columns currency\n *\n * @private\n */\n private setColumnsCurrency() {\n const amountColumns = this.gridOptions.view.columns.filter(\n (column) =>\n column.name === 'actualCost' ||\n column.name === 'plannedCost' ||\n column.name === 'estimatedCost',\n );\n amountColumns.forEach((column) => {\n const financialColumn = column as GridCurrencyColumn;\n financialColumn.currencyCode = this.project.currency.alpha3Code;\n });\n this.gridService.detectChanges();\n }\n\n /**\n * Retrieves task ids for deleting. Lead task deletes with it children task.\n *\n * @returns An array of task IDs that for deleting.\n */\n private getTaskIdsForDeleting(): string[] {\n const selectedTasks = this.gridService.selectedGroups$\n .getValue()\n ?.map((taskGroup) => taskGroup.value);\n return selectedTasks\n .filter((task) => !selectedTasks.find((t) => t.id === task.leadTaskId))\n .map((t) => t.id);\n }\n\n /**\n * Get next task to be highlighted after deletion.\n *\n * @param tasks - project tasks form array.\n * @param deletedTaskIds - An array of task IDs that were deleted.\n * @returns The form group of the next task to be selected, or `null` if no tasks remain.\n */\n private getTaskFormGroupForSelect(\n tasks: UntypedFormGroup[],\n deletedTaskIds: string[],\n ): UntypedFormGroup | null {\n const remainingTasks = tasks.filter(\n (task) => !deletedTaskIds.includes(task.value.id),\n );\n\n if (!remainingTasks.length) {\n return null;\n }\n\n const minDeletedIndex = tasks.findIndex((task) =>\n deletedTaskIds.includes(task.value.id),\n );\n\n if (minDeletedIndex === -1 || minDeletedIndex >= remainingTasks.length) {\n return remainingTasks[remainingTasks.length - 1];\n }\n\n return remainingTasks[minDeletedIndex];\n }\n\n /**\n * Activates the name cell of form group and sets focus to the grid table.\n *\n * @param formGroup - The form group containing the `name` control to be activated.\n */\n private setActiveNameCell(formGroup: UntypedFormGroup): void {\n this.gridService.setActiveControl(\n formGroup.controls.name as UntypedFormControl,\n );\n\n this.elRef.nativeElement.querySelector('[name=\"left\"]').firstChild.focus();\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormGroup, UntypedFormBuilder } from '@angular/forms';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { TasksReportModalSettings } from './tasks-report-modal.settings';\n\n@Component({\n selector: 'wp-tasks-report-modal',\n templateUrl: './tasks-report-modal.component.html',\n standalone: false,\n})\nexport class TasksReportModalComponent implements OnInit {\n public form = this.fb.group({\n kpiKinds: this.fb.group({}),\n kpiTypes: this.fb.group({}),\n });\n public settings: TasksReportModalSettings;\n\n public get kpiKinds(): string[] {\n return Object.values(KpiKind).filter(\n (x) => x !== 'Duration' && x !== 'Billing',\n );\n }\n public get kpiTypes(): string[] {\n return Object.values(KpiType);\n }\n\n constructor(\n public app: AppService,\n private customFieldService: CustomFieldService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private localConfigService: LocalConfigService,\n ) {\n this.settings = localConfigService.getConfig(TasksReportModalSettings);\n Object.values(KpiKind).forEach((x) => {\n (this.form.controls.kpiKinds as FormGroup).addControl(\n x,\n this.fb.control(false),\n );\n });\n Object.values(KpiType).forEach((x) => {\n (this.form.controls.kpiTypes as FormGroup).addControl(\n x,\n this.fb.control(false),\n );\n });\n }\n\n public ok() {\n const data = {\n kpiKinds: [],\n kpiTypes: [],\n } as TasksReportModalSettings;\n\n Object.values(KpiType).forEach((x) => {\n if ((this.form.controls.kpiTypes as FormGroup).value[x]) {\n data.kpiTypes.push(x);\n }\n });\n\n Object.values(KpiKind).forEach((x) => {\n if ((this.form.controls.kpiKinds as FormGroup).value[x]) {\n data.kpiKinds.push(x);\n }\n });\n\n this.localConfigService.setConfig(TasksReportModalSettings, data);\n\n this.activeModal.close(data);\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.settings.kpiTypes.forEach((x) =>\n (this.form.controls.kpiTypes as FormGroup).controls[x].setValue(true),\n );\n this.settings.kpiKinds.forEach((x) =>\n (this.form.controls.kpiKinds as FormGroup).controls[x].setValue(true),\n );\n }\n}\n","
    \n
    \n

    \n {{ 'projects.tasksReport.modal.headers.excelExport' | translate }}\n

    \n\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n \n\n \n \n \n
    \n
    \n \n \n
    \n \n \n
    \n
    \n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\n\nexport class TasksReportModalSettings implements BaseSettings {\n public readonly name = 'TasksReportModalSettings';\n version: number;\n kpiKinds: KpiKind[];\n kpiTypes: KpiType[];\n getDefault = (): TasksReportModalSettings =>\n ({\n version: 1,\n kpiKinds: Object.values(KpiKind),\n kpiTypes: Object.values(KpiType),\n }) as TasksReportModalSettings;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n} from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { VisibleParts } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-parts.enum';\nimport { TASKS_VIEW } from 'src/app/projects/card/project-tasks/shared/models/project-task-constants';\nimport { ProjectTaskView } from 'src/app/projects/card/project-tasks/shared/models/project-task-view.enum';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge } from 'rxjs';\nimport { ProjectTaskExport } from 'src/app/projects/card/project-tasks/shared/models/project-task-export.model';\n\n@Component({\n selector: 'wp-tasks-toolbar',\n templateUrl: './tasks-toolbar.component.html',\n styleUrls: ['./tasks-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TasksToolbarComponent extends AbstractToolbar {\n @Input() project: Project;\n\n public createCanBeExecuted = false;\n public editCanBeExecuted = false;\n public deleteCanBeExecuted = false;\n public increaseLevelCanBeExecuted = false;\n public decreaseLevelCanBeExecuted = false;\n public upCanBeExecuted = false;\n public downCanBeExecuted = false;\n\n public readonly planningScale = PlanningScale;\n public visibleParts = [\n VisibleParts.calendar,\n VisibleParts.planningScaleSelector,\n ];\n public readonly projectTaskExports: ProjectTaskExport[] = [\n 'Excel',\n 'PNG',\n 'JPEG',\n 'Clipboard',\n ];\n\n constructor(\n @Inject(TASKS_VIEW) public tasksView: ProjectTaskView,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n public taskActionsService: TasksGridActionsService,\n public projectTasksDataService: ProjectTasksDataService,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n\n merge(this.gridService.selectedGroup$, this.gridService.detectChanges$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const selectedGroup = this.gridService.selectedGroup$.getValue();\n if (!selectedGroup) {\n this.createCanBeExecuted = this.gridService.canBeExecuted(\n 'create',\n selectedGroup?.value.id,\n );\n this.editCanBeExecuted = false;\n this.deleteCanBeExecuted = false;\n this.increaseLevelCanBeExecuted = false;\n this.decreaseLevelCanBeExecuted = false;\n this.upCanBeExecuted = false;\n this.downCanBeExecuted = false;\n } else {\n this.createCanBeExecuted = this.gridService.canBeExecuted(\n 'create',\n selectedGroup.value.id,\n );\n this.editCanBeExecuted = this.gridService.canBeExecuted(\n 'edit',\n selectedGroup.value.id,\n );\n this.deleteCanBeExecuted = this.gridService.canBeExecuted(\n 'delete',\n selectedGroup.value.id,\n );\n this.increaseLevelCanBeExecuted = this.gridService.canBeExecuted(\n 'increaseLevel',\n selectedGroup.value.id,\n );\n this.decreaseLevelCanBeExecuted = this.gridService.canBeExecuted(\n 'decreaseLevel',\n selectedGroup.value.id,\n );\n this.upCanBeExecuted = this.gridService.canBeExecuted(\n 'up',\n selectedGroup.value.id,\n );\n this.downCanBeExecuted = this.gridService.canBeExecuted(\n 'down',\n selectedGroup.value.id,\n );\n }\n this.cdr.detectChanges();\n });\n }\n}\n","
    \n \n @if (tasksView === projectTasksDataService.projectTaskView.timeline) {\n \n }\n\n
    \n \n  {{ 'shared.actions.create' | translate }}\n \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
    \n\n \n \n
    \n @for (level of taskActionsService.levels; track level; let index = $index) {\n \n }\n
    \n
    \n\n @if (project?.sourceProject) {\n
    \n {{ 'components.tasksToolbarComponent.props.tasksInheritFrom' | translate }}: \n {{\n project.sourceProject.name\n }}\n
    \n }\n\n \n\n \n \n  \n \n
    \n @for (export of projectTaskExports; track export) {\n \n {{\n 'components.tasksToolbarComponent.actions.exportTo' + export + '.short' | translate\n }} \n \n }\n
    \n \n\n
    \n \n \n \n \n
    \n\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { FteScheduleService } from 'src/app/core/fte-schedule.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { filter } from 'rxjs/operators';\nimport { ProjectTaskDependency } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { FreezeTableScrollOptions } from 'src/app/shared/directives/freeze-table/freeze-table.interface';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\n\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { TimelineCellEntry } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline-entry.interface';\nimport { TimelineSettings } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline.settings';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuService } from 'src/app/core/menu.service';\n\n/** Timeline data service. */\n@Injectable()\nexport class ProjectTaskTimelineService {\n public slots: Slot[] = [];\n public slotGroups: SlotGroup[] = [];\n\n public settings: TimelineSettings;\n\n public taskHintNames: Record = {\n taskName: '',\n dates: '',\n projectTaskDuration: '',\n percentComplete: '',\n assignments: '',\n };\n\n /** Cell entries. */\n private entriesSubject = new BehaviorSubject(null);\n public entries$ = this.entriesSubject.asObservable().pipe(filter((e) => !!e));\n\n public interval: Interval;\n\n /** Task updating command. */\n private updateTasksSubject = new Subject();\n public updateTasks$ = this.updateTasksSubject.asObservable();\n\n /** Navigation service subscriptions. */\n private scheduleNavigationSubscriptions: Subscription = new Subscription();\n\n /** Getting FTE schedule subscription */\n private fteScheduleSubscription: Subscription;\n\n /** Gaps for timeline slots. */\n private smallGap = 19;\n private bigGap = 81;\n\n private get projectStartDate(): DateTime | undefined {\n if (this.dataService.tasks && this.dataService.tasks.length) {\n const mainTask = this.dataService.tasks.find((task) => !task.leadTaskId);\n return DateTime.fromISO(mainTask.startDate);\n }\n }\n\n private get projectEndDate(): DateTime | undefined {\n if (this.dataService.tasks && this.dataService.tasks.length) {\n const mainTask = this.dataService.tasks.find((task) => !task.leadTaskId);\n return DateTime.fromISO(mainTask.endDate);\n }\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n private scheduleNavigationService: ScheduleNavigationService,\n private blockUI: BlockUIService,\n private freezeTableService: FreezeTableService,\n private localConfigService: LocalConfigService,\n private fteScheduleService: FteScheduleService,\n private notification: NotificationService,\n private projectCardService: ProjectCardService,\n public dataService: ProjectTasksDataService,\n public tasksGridActionsService: TasksGridActionsService,\n private menuService: MenuService,\n private translateService: TranslateService,\n ) {\n this.freezeTableService.scroll$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.menuService.close();\n });\n }\n\n /** Shift timeline interval. */\n public shiftTimelineInterval(direction: 'left' | 'right'): void {\n this.blockUI.start();\n\n let shift: DurationLike;\n\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { weeks: 16 };\n break;\n }\n\n switch (direction) {\n case 'left':\n this.interval = this.interval.set({\n start: this.interval.start.minus(shift),\n });\n this.interval = this.interval.set({\n end: this.interval.end.minus(shift),\n });\n break;\n case 'right':\n this.interval = this.interval.set({\n start: this.interval.start.plus(shift),\n });\n this.interval = this.interval.set({\n end: this.interval.end.plus(shift),\n });\n break;\n }\n\n this.projectCardService.projectTaskTimelineInterval = this.interval;\n\n this.updateSlots();\n this.blockUI.stop();\n this.freezeTableService.autoScroll(direction);\n }\n\n /**\n * Reloads the timeline based on the provided parameters.\n *\n * @param planningScale The planning scale to set for the timeline.\n * @param toDate The target date to navigate to.\n */\n public reloadTimeline(\n planningScale?: PlanningScale,\n toDate?: DateTime,\n ): void {\n this.gridService.selectGroup(null);\n\n if (planningScale) {\n this.projectCardService.timelineScrollPosition = null;\n this.settings.planningScale = planningScale;\n this.interval = this.getDefaultProjectInterval();\n }\n if (toDate) {\n this.interval = this.getTimelineInterval(\n this.settings.planningScale,\n toDate,\n );\n }\n if (!planningScale && !toDate) {\n this.interval = this.projectCardService.projectTaskTimelineInterval;\n } else {\n this.projectCardService.projectTaskTimelineInterval = this.interval;\n }\n\n this.updateSlots();\n this.updateEntries();\n\n if (toDate) {\n this.scrollToSelector(toDate);\n } else {\n this.initScrollPosition();\n }\n }\n\n /** Update tasks. */\n public updateTasks(): void {\n this.updateTasksSubject.next();\n }\n\n /** Unsubscribe of service subscriptions. */\n public dispose(): void {\n this.scheduleNavigationSubscriptions.unsubscribe();\n if (this.fteScheduleSubscription) {\n this.fteScheduleSubscription.unsubscribe();\n }\n }\n\n /** Initialize timeline. */\n public initTimeline(): void {\n if (this.projectCardService.projectTaskTimelineInterval) {\n this.interval = this.projectCardService.projectTaskTimelineInterval;\n } else {\n this.interval = this.getDefaultProjectInterval();\n this.projectCardService.projectTaskTimelineInterval = this.interval;\n }\n\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n\n this.updateEntries();\n }\n\n /** Sets timeline scroll position. */\n public initScrollPosition(): void {\n if (this.projectCardService.timelineScrollPosition !== null) {\n this.freezeTableService.autoScroll(\n this.projectCardService.timelineScrollPosition,\n );\n return;\n }\n\n const today = DateTime.now();\n let dateToScrolling = today;\n if (+today < +this.projectStartDate) {\n dateToScrolling = this.projectStartDate;\n }\n if (+today >= +this.projectStartDate && +today <= +this.projectEndDate) {\n dateToScrolling = today;\n }\n if (+today > +this.projectEndDate) {\n dateToScrolling = this.projectEndDate;\n }\n this.scrollToSelector(dateToScrolling);\n }\n\n /** Initialize service. */\n public init(): void {\n /** Take current settings. */\n this.settings = this.localConfigService.getConfig(TimelineSettings);\n\n /** Initialize settings context in the navigation service. */\n this.scheduleNavigationService.init(\n ScheduleNavigationContext.ProjectTasksTimeline,\n );\n\n /** Subscriptions. */\n this.scheduleNavigationSubscriptions.add(\n this.scheduleNavigationService.previous$.subscribe(() => {\n this.shiftTimelineInterval('left');\n this.updateEntries();\n }),\n );\n\n this.scheduleNavigationSubscriptions.add(\n this.scheduleNavigationService.next$.subscribe(() => {\n this.shiftTimelineInterval('right');\n this.updateEntries();\n }),\n );\n\n this.scheduleNavigationSubscriptions.add(\n this.scheduleNavigationService.jump$.subscribe((date) => {\n this.reloadTimeline(null, date);\n }),\n );\n\n this.scheduleNavigationSubscriptions.add(\n this.scheduleNavigationService.planningScale$.subscribe(\n (planningScale) => {\n this.projectCardService.timelineScrollPosition = null;\n this.reloadTimeline(planningScale);\n },\n ),\n );\n\n this.translateTaskHintNames();\n }\n\n /**\n * Adds dependency to task.\n *\n * @param taskFormGroup target task.\n * @param newDependency new task dependency.\n */\n public addDependency(\n taskFormGroup: UntypedFormGroup,\n newDependency: ProjectTaskDependency,\n ): void {\n const currentDependencies = taskFormGroup.controls.dependencies;\n if (\n currentDependencies.value.find(\n (dependency) =>\n dependency.predecessorId === newDependency.predecessorId &&\n dependency.type === newDependency.type,\n )\n ) {\n return;\n }\n\n currentDependencies.setValue([...currentDependencies.value, newDependency]);\n }\n\n /** Updates right group cells. */\n private updateEntries(): void {\n const dateFrom = this.interval.start;\n const dateTo = this.interval.end;\n const scale = this.settings.planningScale;\n\n if (this.fteScheduleSubscription) {\n this.fteScheduleSubscription.unsubscribe();\n }\n\n this.blockUI.start();\n this.fteScheduleSubscription = this.fteScheduleService\n .getSchedule(\n this.dataService.project.schedule.id,\n scale,\n dateFrom.toISODate(),\n dateTo.toISODate(),\n )\n .subscribe({\n next: (schedule) => {\n const entries = [];\n for (const slot of this.slots) {\n const fteHours =\n schedule.find((s) => s.date === slot.date.toISODate())?.hours ??\n 0;\n entries.push({\n date: slot.date.toISODate(),\n id: slot.id,\n nonWorking: fteHours === 0,\n fteHours,\n });\n }\n this.entriesSubject.next(entries);\n this.updateTasks();\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.entriesSubject.next([]);\n this.blockUI.stop();\n\n this.notification.error(error.message);\n },\n });\n }\n\n /** Updates slots. */\n private updateSlots(): void {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n }\n\n /**\n * Returns timeline interval for project dates.\n *\n * @returns time interval.\n */\n private getDefaultProjectInterval(): Interval {\n const planningScale = this.settings.planningScale;\n return this.getTimelineInterval(planningScale);\n }\n\n /**\n * Returns interval for project task timeline for selected scale and interval.\n *\n * @param scale scale of interval.\n * @param date target date.\n *\n * @returns interval for timeline view.\n */\n private getTimelineInterval(scale: PlanningScale, date?: DateTime): Interval {\n const today = DateTime.now().startOf('day');\n const projectStartDate = this.projectStartDate ?? today;\n const projectEndDate = this.projectEndDate ?? today;\n\n let leftGap: number;\n let rightGap: number;\n if (!date) {\n if (+today < +projectStartDate) {\n date = projectStartDate;\n leftGap = this.smallGap;\n rightGap = this.bigGap;\n }\n if (+today >= +projectStartDate && +today <= +projectEndDate) {\n date = today;\n leftGap = this.smallGap;\n rightGap = this.bigGap;\n }\n if (+today > +projectEndDate) {\n date = projectEndDate;\n leftGap = this.bigGap;\n rightGap = this.smallGap;\n }\n } else {\n if (+date <= +projectEndDate) {\n leftGap = this.smallGap;\n rightGap = this.bigGap;\n } else {\n leftGap = this.bigGap;\n rightGap = this.smallGap;\n }\n }\n\n let startPeriod: DateTime = date;\n let endPeriod: DateTime = date;\n switch (scale) {\n case PlanningScale.Day:\n startPeriod = date.minus({ days: leftGap }).startOf('week');\n endPeriod = date.plus({ days: rightGap }).endOf('week');\n break;\n case PlanningScale.Week:\n startPeriod = date.startOf('week').minus({ weeks: leftGap });\n endPeriod = date.endOf('week').plus({ weeks: rightGap });\n break;\n case PlanningScale.Month:\n startPeriod = date.startOf('month').minus({ weeks: leftGap });\n endPeriod = date.endOf('month').plus({ weeks: rightGap });\n break;\n }\n return Interval.fromDateTimes(startPeriod, endPeriod);\n }\n\n /**\n * Scroll to date.\n *\n * @param toDate target date.\n * @note If auto scroll to selector will not work, possible to calculate scroll position in px by slot information.\n */\n private scrollToSelector(toDate: DateTime): void {\n switch (this.settings.planningScale) {\n case PlanningScale.Week:\n toDate = toDate.startOf('week');\n break;\n case PlanningScale.Month:\n toDate = toDate.startOf('month');\n break;\n }\n const selectorToScroll = toDate\n ? '[data-slot-date=\"' + toDate.toISODate() + '\"]'\n : 'th.slot-active';\n const scrollOption: FreezeTableScrollOptions = {\n selector: selectorToScroll,\n behavior: 'auto',\n };\n this.freezeTableService.redraw();\n this.freezeTableService.autoScroll(scrollOption);\n }\n\n /** Translates task hint names. */\n private translateTaskHintNames(): void {\n Object.keys(this.taskHintNames).forEach((key) => {\n const keyToTranslate =\n key === 'projectTaskDuration' || key === 'percentComplete'\n ? key + '.value'\n : key;\n this.taskHintNames[key] = this.translateService.instant(\n `shared2.props.${keyToTranslate}`,\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { ProjectTaskTimelineService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/project-task-timeline.service';\n\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\n@Injectable()\nexport class TimelinePositionService {\n /** Slot min date. */\n public get slotMinDate(): DateTime | null {\n return this.projectTaskTimelineService.slots[0]?.date ?? null;\n }\n\n /** Current planning scale for timeline. */\n public get planningScale(): PlanningScale {\n return this.projectTaskTimelineService.settings.planningScale;\n }\n\n /** Timeline slot width based on scale. */\n public readonly timelineSlotWidth = {\n day: 45,\n week: 56,\n month: 90,\n };\n\n /** Milestone task strip size in px. */\n public readonly milestoneSize = 18;\n public get halfOfMilestoneSize(): number {\n return this.milestoneSize / 2;\n }\n\n /** Slot width for current planning scale. */\n public get slotWidth(): number {\n switch (this.planningScale) {\n case PlanningScale.Day:\n return this.timelineSlotWidth.day;\n case PlanningScale.Week:\n return this.timelineSlotWidth.week;\n case PlanningScale.Month:\n return this.timelineSlotWidth.month;\n }\n }\n\n constructor(public projectTaskTimelineService: ProjectTaskTimelineService) {}\n\n /**\n * Returns absolute position from left timeline side to target date.\n *\n * @param date target date.\n *\n * @returns position in px or null if have no one slot.\n */\n public getPosition(date: DateTime): number | null {\n if (!this.slotMinDate) {\n return null;\n }\n switch (this.planningScale) {\n case PlanningScale.Day:\n return (\n -this.slotMinDate.diff(date, 'day').days * this.timelineSlotWidth.day\n );\n case PlanningScale.Week:\n return (\n -this.slotMinDate.diff(date, 'week').weeks *\n this.timelineSlotWidth.week\n );\n case PlanningScale.Month:\n return (\n -this.slotMinDate.diff(date, 'month').months *\n this.timelineSlotWidth.month\n );\n default:\n throw new Error(`Invalid scale: ${this.planningScale}`);\n }\n }\n\n /**\n * Returns width for task strip based of it dates.\n *\n * @param startDate task start date.\n * @param endDate task end date.\n * @param isMilestone is task milestone.\n * @param isLeadTask is task lead.\n *\n * @returns task width in px.\n */\n public getWidth(\n startDate: DateTime,\n endDate: DateTime,\n isMilestone?: boolean,\n isLeadTask?: boolean,\n ): number | null {\n //endDate + 1day needs for last day full painting\n const baseWidth =\n this.getPosition(endDate.plus({ days: 1 })) - this.getPosition(startDate);\n if (!isMilestone) return baseWidth;\n return isMilestone && isLeadTask\n ? baseWidth + this.halfOfMilestoneSize\n : this.milestoneSize;\n }\n\n /**\n * Returns days count from period from start date to date based on target date plus strip width in px.\n *\n * @param date target date.\n * @param diffX strip width in px.\n *\n * @returns days count.\n */\n public getDays(date: DateTime, diffX: number): number {\n let newDate;\n switch (this.planningScale) {\n case PlanningScale.Day:\n newDate = date.plus({ days: diffX / this.slotWidth });\n break;\n case PlanningScale.Week:\n newDate = date.plus({ weeks: diffX / this.slotWidth });\n break;\n case PlanningScale.Month:\n newDate = date.plus({ months: diffX / this.slotWidth });\n break;\n }\n const days = newDate.diff(date, 'days').days;\n return Math.round(days);\n }\n\n /**\n * Returns day width in px for target date.\n *\n * @param date target date.\n *\n * @returns width in px.\n */\n public getDayWidth(date: DateTime): number {\n switch (this.planningScale) {\n case PlanningScale.Day:\n return this.timelineSlotWidth.day;\n case PlanningScale.Week:\n return this.timelineSlotWidth.week / 7;\n case PlanningScale.Month:\n return this.timelineSlotWidth.month / date.daysInMonth;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DateTime, Interval } from 'luxon';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport {\n ProjectTaskDependency,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ProjectTaskTimelineService } from './project-task-timeline.service';\nimport { Coordinates, DragContext } from 'src/app/shared/services/drag-drop';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { TimelinePositionService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-position.service';\nimport {\n GraphicQuadrant,\n DependencyCoordinates,\n ArrowDirection,\n} from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/dependency-coordinates.interface';\nimport { ProjectTaskViewParams } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline-entry.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/** Timeline rendering service. */\n@Injectable()\nexport class TimelineRenderingService {\n /** Standard table row height. */\n public rowHeight = 35;\n\n /** Timeline canvas for creating dependency. */\n public dynamicCanvas: HTMLCanvasElement;\n\n /** Timeline canvas for painting dependencies. */\n public dependenciesCanvas: HTMLCanvasElement;\n\n /** Timeline canvas for painting critical path. */\n public criticalPathCanvas: HTMLCanvasElement;\n\n public hiddenDependenciesLineWidth = 40;\n\n private readonly lineColor = '#c8c8c8';\n private readonly highlightColor = 'rgba(67, 87, 173, 0.8)';\n\n private readonly criticalColor = '#ff5a5a';\n\n public get slotWidth(): number {\n return this.timelinePositionService.slotWidth;\n }\n\n public get dragContext(): DragContext {\n const canvasPosition = this.dependenciesCanvas.getBoundingClientRect();\n const dragContext: DragContext = {\n leftOffset: canvasPosition.left,\n topOffset: canvasPosition.top,\n };\n return dragContext;\n }\n\n /** Planning scale. */\n public get planningScale(): PlanningScale {\n return this.projectTaskTimelineService.settings.planningScale;\n }\n\n /** Current board slots. */\n public get slots(): Slot[] {\n return this.projectTaskTimelineService.slots;\n }\n\n /** Current board work interval. */\n public get interval(): Interval {\n return this.projectTaskTimelineService.interval;\n }\n\n constructor(\n public projectTaskTimelineService: ProjectTaskTimelineService,\n public taskDataService: ProjectTasksDataService,\n private timelinePositionService: TimelinePositionService,\n public gridService: GridService,\n ) {}\n\n /**\n * Returns current table width.\n *\n * @returns table width in px.\n */\n public getDataTableWidth(): number | null {\n if (!this.slots) {\n return null;\n }\n return this.slotWidth * this.slots.length + 1;\n }\n\n /**\n * Returns current table height.\n *\n * @returns table height in px.\n */\n public getDataTableHeight(): number {\n return this.taskDataService.formArray?.length * this.rowHeight;\n }\n\n /**\n * Clears the dynamic canvas by removing all existing content.\n *\n * @returns The 2D rendering context of the critical path canvas.\n */\n public clearCreateDynamicCanvas(): CanvasRenderingContext2D {\n const ctx = this.dynamicCanvas.getContext('2d');\n ctx.clearRect(0, 0, this.dynamicCanvas.width, this.dynamicCanvas.height);\n return ctx;\n }\n\n /** Highlights the dependencies of selected task. */\n public highlightTaskDependencies(): void {\n const ctx = this.clearCreateDynamicCanvas();\n\n /** Set line styles. */\n ctx.strokeStyle = this.highlightColor;\n ctx.lineWidth = 2;\n ctx.fillStyle = this.highlightColor;\n\n const selectedTask = this.gridService.selectedGroupValue;\n if (selectedTask) {\n /** Highlight task own dependencies. */\n selectedTask.dependencies.forEach((dependency) => {\n this.drawDependency(selectedTask.id, dependency, ctx);\n });\n\n /** Highlight task predecessor dependencies. */\n const predecessorDependencies: {\n id: string;\n dependency: ProjectTaskDependency;\n }[] = [];\n this.taskDataService.tasks.forEach((task) => {\n task.dependencies.forEach((dependency) => {\n if (dependency.predecessorId === selectedTask.id) {\n predecessorDependencies.push({ id: task.id, dependency });\n }\n });\n });\n if (predecessorDependencies) {\n predecessorDependencies.forEach((predecessorDependency) => {\n this.drawDependency(\n predecessorDependency.id,\n predecessorDependency.dependency,\n ctx,\n );\n });\n }\n }\n }\n\n /** Draws the critical path dependencies on the critical path canvas. */\n public drawCriticalPathDependencies(): void {\n const ctx = this.clearCriticalPathCanvas();\n\n ctx.strokeStyle = this.criticalColor;\n ctx.lineWidth = 2;\n ctx.fillStyle = this.criticalColor;\n\n this.taskDataService.criticalDependencies$\n .getValue()\n .forEach((dependency) => {\n this.drawDependency(dependency.taskId, dependency.dependency, ctx);\n });\n }\n\n /**\n * Clears the critical path canvas by removing all existing content.\n *\n * @returns The 2D rendering context of the critical path canvas.\n */\n public clearCriticalPathCanvas(): CanvasRenderingContext2D {\n const canvas = this.criticalPathCanvas as HTMLCanvasElement;\n const ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n return ctx;\n }\n\n /** Draws the dependencies of showed tasks. */\n public drawDependencies(): void {\n const canvas = this.dependenciesCanvas as HTMLCanvasElement;\n const ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n /** Set line styles. */\n ctx.strokeStyle = this.lineColor;\n ctx.lineWidth = 2;\n ctx.fillStyle = this.lineColor;\n\n this.taskDataService.tasks?.forEach((task) => {\n task.dependencies?.forEach((dependency) => {\n this.drawDependency(task.id, dependency, ctx);\n });\n });\n }\n\n /**\n * Draws a dependency line between two tasks on the canvas.\n * @param dependentTaskId - The ID of the dependent task.\n * @param dependency - The dependency object containing information about the relationship.\n * @param canvasContext - The 2D rendering context of the canvas.\n */\n private drawDependency(\n dependentTaskId: string,\n dependency: ProjectTaskDependency,\n canvasContext: CanvasRenderingContext2D,\n ): void {\n // Get view parameters for both tasks\n const dependentTaskViewParams = this.getTaskViewParams(dependentTaskId);\n const predecessorTaskViewParams = this.getTaskViewParams(\n dependency.predecessorId,\n );\n if (!predecessorTaskViewParams && !dependentTaskViewParams) return;\n\n /**\n * Helper function to get the coordinates of a task's start or end point.\n * @param params - The view parameters of the task.\n * @param isStart - Whether to get the start (true) or end (false) point of the task.\n * @returns The coordinates of the point, or null if params are not available.\n */\n const getTaskPointCoordinates = (\n params: ProjectTaskViewParams | null,\n isStart: boolean,\n ): { x: number; y: number } | null => {\n if (!params) return null;\n const x = isStart\n ? params.taskLeftOffset\n : params.taskLeftOffset + params.taskWidth;\n const y = this.rowHeight * params.taskIndex + this.rowHeight / 2;\n return { x, y };\n };\n\n // Determine start and end points based on dependency type.\n const start = getTaskPointCoordinates(\n predecessorTaskViewParams,\n dependency.type === ProjectTaskDependencyType.startToStart ||\n dependency.type === ProjectTaskDependencyType.startToFinish,\n );\n const end = getTaskPointCoordinates(\n dependentTaskViewParams,\n dependency.type === ProjectTaskDependencyType.startToStart ||\n dependency.type === ProjectTaskDependencyType.finishToStart,\n );\n\n if (!start && !end) return;\n\n // If both start and end points are available, draw the dependency line.\n if (start && end) {\n this.drawDependencyLine(\n { startX: start.x, startY: start.y, endX: end.x, endY: end.y },\n dependency.type,\n canvasContext,\n );\n return;\n }\n\n // Handle cases where one of the tasks is not visible.\n let startX, endX, startY, endY;\n const point = start || end;\n const isStart = !!start;\n\n if (point) {\n startY = endY = point.y;\n const offset = this.hiddenDependenciesLineWidth;\n\n // Determine start and end X coordinates based on dependency type.\n switch (dependency.type) {\n case ProjectTaskDependencyType.finishToStart:\n [startX, endX] = isStart\n ? [point.x, point.x + offset]\n : [point.x - offset, point.x];\n break;\n case ProjectTaskDependencyType.startToStart:\n [startX, endX] = isStart\n ? [point.x, point.x - offset]\n : [point.x - offset, point.x];\n break;\n case ProjectTaskDependencyType.startToFinish:\n [startX, endX] = isStart\n ? [point.x, point.x - offset]\n : [point.x + offset, point.x];\n break;\n case ProjectTaskDependencyType.finishToFinish:\n [startX, endX] = isStart\n ? [point.x, point.x + offset]\n : [point.x + offset, point.x];\n break;\n }\n }\n\n // Draw a straight line for the visible part of the dependency.\n this.drawStraightLine(\n {\n startX,\n startY,\n endX,\n endY,\n },\n canvasContext,\n );\n }\n\n /**\n * Returns task view params.\n *\n * @param taskId target task id.\n * @returns task timeline view params.\n */\n private getTaskViewParams(taskId: string): ProjectTaskViewParams {\n const taskIndex = this.taskDataService.formArray.value.findIndex(\n (task) => task.id === taskId,\n );\n if (taskIndex < 0) {\n return null;\n }\n\n const taskData = this.taskDataService.tasks.find(\n (task) => task.id === taskId,\n );\n\n /** Params for task width. */\n const startDate = DateTime.fromISO(taskData.startDate);\n const endDate = DateTime.fromISO(taskData.endDate);\n\n const isLeadTask = this.taskDataService.checkIsLeadTask(taskId);\n const isCommonMilestoneTask = taskData.isMilestone && !isLeadTask;\n const isLeadMilestoneTask = taskData.isMilestone && isLeadTask;\n\n let taskWidth = this.timelinePositionService.getWidth(\n startDate,\n endDate,\n taskData.isMilestone,\n isLeadTask,\n );\n\n const positionDate = isCommonMilestoneTask ? endDate : startDate;\n let taskLeftOffset = this.timelinePositionService.getPosition(positionDate);\n\n // Align common milestone task with right border of last day.\n if (isCommonMilestoneTask) {\n taskLeftOffset +=\n this.timelinePositionService.getDayWidth(positionDate) -\n this.timelinePositionService.halfOfMilestoneSize;\n }\n\n // Align milestone summary task with small native with milestone view width.\n if (\n isLeadMilestoneTask &&\n taskWidth - this.timelinePositionService.halfOfMilestoneSize <\n this.timelinePositionService.halfOfMilestoneSize\n ) {\n const baseTaskWidth = this.timelinePositionService.getWidth(\n startDate,\n endDate,\n );\n const taskParamsCorrectionValue =\n this.timelinePositionService.halfOfMilestoneSize - baseTaskWidth;\n taskLeftOffset -= taskParamsCorrectionValue;\n taskWidth += taskParamsCorrectionValue;\n }\n\n return { taskIndex, taskWidth, taskLeftOffset, isLeadTask };\n }\n\n /**\n * Finds quadrant of end point in relation to start point.\n *\n * @param deltaX point delta x position.\n * @param deltaY point delta y position.\n * @returns graphic quadrant number.\n */\n private findQuadrant(deltaX: number, deltaY: number): GraphicQuadrant {\n if (deltaX >= 0 && deltaY >= 0) {\n return GraphicQuadrant.second;\n }\n if (deltaX < 0 && deltaY >= 0) {\n return GraphicQuadrant.first;\n }\n if (deltaX < 0 && deltaY < 0) {\n return GraphicQuadrant.fourth;\n }\n if (deltaX >= 0 && deltaY < 0) {\n return GraphicQuadrant.third;\n }\n }\n\n /**\n * Draws straight dependency line on the canvas element.\n *\n * @param coordinates line points coordinates.\n * @param ctx canvas context.\n */\n private drawStraightLine(\n { startX, startY, endX, endY }: DependencyCoordinates,\n ctx: CanvasRenderingContext2D,\n ): void {\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(endX, endY);\n ctx.stroke();\n\n if (startY === endY) {\n const arrowDirection =\n startX < endX ? ArrowDirection.right : ArrowDirection.left;\n this.addArrow(arrowDirection, { x: endX, y: endY }, ctx);\n }\n }\n\n /**\n * Adds arrow to line.\n *\n * @param direction arrow direction.\n * @param coordinates point coordinates.\n * @param ctx canvas context for painting.\n */\n private addArrow(\n direction: ArrowDirection,\n { x, y }: Coordinates,\n ctx: CanvasRenderingContext2D,\n ): void {\n const size = this.rowHeight / 6;\n const offset = size * Math.tan(Math.PI / 4);\n const sign = direction === ArrowDirection.right ? -1 : 1;\n\n ctx.beginPath();\n ctx.moveTo(x, y);\n ctx.lineTo(x + sign * size, y - offset);\n ctx.lineTo(x + sign * size, y + offset);\n ctx.fill();\n ctx.closePath();\n }\n\n /**\n * Draws a dependency line on the canvas based on the given coordinates, dependency type, and context.\n * @param coordinates The start and end coordinates of the dependency line.\n * @param dependencyType The type of dependency (e.g., finish-to-start, start-to-start).\n * @param ctx The canvas rendering context.\n */\n private drawDependencyLine(\n coordinates: DependencyCoordinates,\n dependencyType: ProjectTaskDependencyType,\n ctx: CanvasRenderingContext2D,\n ): void {\n const deltaX = coordinates.startX - coordinates.endX;\n const deltaY = coordinates.startY - coordinates.endY;\n const arcRadius = this.rowHeight / 4;\n\n const quadrant = this.findQuadrant(deltaX, deltaY);\n\n ctx.beginPath();\n ctx.moveTo(coordinates.startX, coordinates.startY);\n const drawQuadrantDependencyLine = {\n [GraphicQuadrant.first]: this.drawFirstQuadrantDependencyLine,\n [GraphicQuadrant.second]: this.drawSecondQuadrantDependencyLine,\n [GraphicQuadrant.third]: this.drawThirdQuadrantDependencyLine,\n [GraphicQuadrant.fourth]: this.drawFourthQuadrantDependencyLine,\n };\n drawQuadrantDependencyLine[quadrant].call(\n this,\n coordinates,\n dependencyType,\n ctx,\n arcRadius,\n deltaX,\n );\n ctx.lineTo(coordinates.endX, coordinates.endY);\n ctx.stroke();\n ctx.closePath();\n\n const arrowDirection =\n dependencyType === ProjectTaskDependencyType.finishToFinish ||\n dependencyType === ProjectTaskDependencyType.startToFinish\n ? ArrowDirection.left\n : ArrowDirection.right;\n this.addArrow(\n arrowDirection,\n { x: coordinates.endX, y: coordinates.endY },\n ctx,\n );\n }\n\n /**\n * Draws a dependency line in the first quadrant.\n * @param coordinates The start and end coordinates of the dependency line.\n * @param dependencyType The type of dependency.\n * @param ctx The canvas rendering context.\n * @param arcRadius The radius of the arc used in drawing curves.\n * @param deltaX The difference between start and end X coordinates.\n */\n private drawFirstQuadrantDependencyLine(\n coordinates: DependencyCoordinates,\n dependencyType: ProjectTaskDependencyType,\n ctx: CanvasRenderingContext2D,\n arcRadius: number,\n deltaX: number,\n ) {\n switch (dependencyType) {\n case ProjectTaskDependencyType.finishToStart: {\n if (Math.abs(deltaX) <= 2 * arcRadius) {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI * 0.5,\n true,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.startY - 3 * arcRadius,\n arcRadius,\n Math.PI * 0.5,\n Math.PI,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.endY + arcRadius,\n arcRadius,\n -Math.PI,\n -Math.PI * 0.5,\n );\n } else {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n 0,\n true,\n );\n ctx.arc(\n coordinates.startX + 2 * arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n -Math.PI,\n -Math.PI * 0.5,\n );\n }\n break;\n }\n case ProjectTaskDependencyType.startToStart: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.endY + arcRadius,\n arcRadius,\n -Math.PI,\n -Math.PI * 0.5,\n );\n break;\n }\n case ProjectTaskDependencyType.finishToFinish: {\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n 0,\n true,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n 0,\n -Math.PI * 0.5,\n true,\n );\n break;\n }\n case ProjectTaskDependencyType.startToFinish: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI * 0.5,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.startY - 3 * arcRadius,\n arcRadius,\n Math.PI * 0.5,\n 0,\n true,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n 0,\n -Math.PI * 0.5,\n true,\n );\n break;\n }\n }\n }\n\n /**\n * Draws a dependency line in the second quadrant.\n * @param coordinates The start and end coordinates of the dependency line.\n * @param dependencyType The type of dependency.\n * @param ctx The canvas rendering context.\n * @param arcRadius The radius of the arc used in drawing curves.\n * @param deltaX The difference between start and end X coordinates.\n */\n private drawSecondQuadrantDependencyLine(\n coordinates: DependencyCoordinates,\n dependencyType: ProjectTaskDependencyType,\n ctx: CanvasRenderingContext2D,\n arcRadius: number,\n deltaX: number,\n ) {\n switch (dependencyType) {\n case ProjectTaskDependencyType.finishToStart: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI * 0.5,\n true,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.startY - 3 * arcRadius,\n arcRadius,\n Math.PI * 0.5,\n Math.PI,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n Math.PI,\n -Math.PI * 0.5,\n );\n break;\n }\n case ProjectTaskDependencyType.startToStart: {\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n -Math.PI,\n -Math.PI * 0.5,\n );\n break;\n }\n case ProjectTaskDependencyType.finishToFinish: {\n ctx.arc(\n coordinates.startX + arcRadius,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n 0,\n true,\n );\n ctx.arc(\n coordinates.startX + arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n 0,\n -Math.PI * 0.5,\n true,\n );\n break;\n }\n case ProjectTaskDependencyType.startToFinish: {\n if (Math.abs(deltaX) <= 2 * arcRadius) {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n -Math.PI * 0.5,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.startY - 3 * arcRadius,\n arcRadius,\n Math.PI * 0.5,\n 0,\n true,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n 0,\n -Math.PI * 0.5,\n true,\n );\n } else {\n ctx.arc(\n coordinates.startX,\n coordinates.startY - arcRadius,\n arcRadius,\n Math.PI * 0.5,\n Math.PI,\n );\n ctx.arc(\n coordinates.startX - 2 * arcRadius,\n coordinates.endY + arcRadius,\n arcRadius,\n 0,\n -Math.PI * 0.5,\n true,\n );\n }\n break;\n }\n }\n }\n\n /**\n * Draws a dependency line in the third quadrant.\n * @param coordinates The start and end coordinates of the dependency line.\n * @param dependencyType The type of dependency.\n * @param ctx The canvas rendering context.\n * @param arcRadius The radius of the arc used in drawing curves.\n * @param deltaX The difference between start and end X coordinates.\n */\n private drawThirdQuadrantDependencyLine(\n coordinates: DependencyCoordinates,\n dependencyType: ProjectTaskDependencyType,\n ctx: CanvasRenderingContext2D,\n arcRadius: number,\n deltaX: number,\n ) {\n switch (dependencyType) {\n case ProjectTaskDependencyType.finishToStart: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI * 0.5,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.startY + 3 * arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n -Math.PI,\n true,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n -Math.PI,\n Math.PI * 0.5,\n true,\n );\n break;\n }\n case ProjectTaskDependencyType.startToStart: {\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n -Math.PI,\n true,\n );\n ctx.arc(\n coordinates.endX - arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n -Math.PI,\n Math.PI * 0.5,\n true,\n );\n break;\n }\n case ProjectTaskDependencyType.finishToFinish: {\n ctx.arc(\n coordinates.startX + arcRadius,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n 0,\n );\n ctx.arc(\n coordinates.startX + arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n 0,\n Math.PI * 0.5,\n );\n break;\n }\n case ProjectTaskDependencyType.startToFinish: {\n if (Math.abs(deltaX) <= 2 * arcRadius) {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI * 0.5,\n true,\n );\n ctx.arc(\n coordinates.startX + arcRadius,\n coordinates.startY + 3 * arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n 0,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n 0,\n Math.PI * 0.5,\n );\n } else {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI,\n true,\n );\n ctx.arc(\n coordinates.startX - 2 * arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n 0,\n Math.PI * 0.5,\n );\n }\n break;\n }\n }\n }\n\n /**\n * Draws a dependency line in the fourth quadrant.\n * @param coordinates The start and end coordinates of the dependency line.\n * @param dependencyType The type of dependency.\n * @param ctx The canvas rendering context.\n * @param arcRadius The radius of the arc used in drawing curves.\n * @param deltaX The difference between start and end X coordinates.\n */\n private drawFourthQuadrantDependencyLine(\n coordinates: DependencyCoordinates,\n dependencyType: ProjectTaskDependencyType,\n ctx: CanvasRenderingContext2D,\n arcRadius: number,\n deltaX: number,\n ) {\n switch (dependencyType) {\n case ProjectTaskDependencyType.finishToStart: {\n /** Correction of drawing occasion with small day width. */\n if (Math.abs(deltaX) <= 2 * arcRadius) {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI * 0.5,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.startY + 3 * arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n -Math.PI,\n true,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.endY - arcRadius,\n arcRadius,\n Math.PI,\n Math.PI * 0.5,\n true,\n );\n } else {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n 0,\n );\n ctx.arc(\n coordinates.startX + 2 * arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n -Math.PI,\n Math.PI * 0.5,\n true,\n );\n }\n break;\n }\n case ProjectTaskDependencyType.startToStart: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI,\n true,\n );\n ctx.arc(\n coordinates.startX,\n coordinates.endY - arcRadius,\n arcRadius,\n -Math.PI,\n Math.PI * 0.5,\n true,\n );\n break;\n }\n case ProjectTaskDependencyType.finishToFinish: {\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n 0,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n 0,\n Math.PI * 0.5,\n );\n break;\n }\n case ProjectTaskDependencyType.startToFinish: {\n ctx.arc(\n coordinates.startX,\n coordinates.startY + arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n Math.PI * 0.5,\n true,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.startY + 3 * arcRadius,\n arcRadius,\n -Math.PI * 0.5,\n 0,\n );\n ctx.arc(\n coordinates.endX + arcRadius,\n coordinates.endY - arcRadius,\n arcRadius,\n 0,\n Math.PI * 0.5,\n );\n break;\n }\n }\n }\n}\n","/** Dependency points coordinates for canvas element. */\nexport interface DependencyCoordinates {\n startX: number;\n startY: number;\n endX: number;\n endY: number;\n}\n\n/** Quadrant of end point in relation to start point. */\nexport enum GraphicQuadrant {\n first = 1,\n second = 2,\n third = 3,\n fourth = 4,\n}\n\nexport enum ArrowDirection {\n right = 'right',\n left = 'left',\n}\n","import { StateDeclaration, StateObject } from '@uirouter/core';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Project task settings. */\nexport class ProjectTaskSettings\n implements BaseSettings, TaskAdditionalViewSettings\n{\n public readonly name = 'ProjectTaskSettings';\n version: number;\n toggler: string | StateObject | StateDeclaration;\n isShowMainTask: boolean;\n isShowPlanTasks: boolean;\n isShowCriticalPath: boolean;\n\n getDefault(): ProjectTaskSettings {\n return {\n version: 8,\n toggler: 'project.tasks.table',\n isShowMainTask: true,\n isShowPlanTasks: false,\n isShowCriticalPath: false,\n } as ProjectTaskSettings;\n }\n}\n\nexport interface TaskAdditionalViewSettings {\n isShowMainTask: boolean;\n isShowPlanTasks: boolean;\n isShowCriticalPath: boolean;\n}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Project task timeline settings. */\nexport class TimelineSettings implements BaseSettings {\n public readonly name = 'TimelineSettings';\n version: number;\n planningScale: PlanningScale = PlanningScale.Day;\n\n public getDefault(): TimelineSettings {\n return {\n version: 1,\n planningScale: PlanningScale.Day,\n } as TimelineSettings;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { ProjectTaskTimelineService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/project-task-timeline.service';\nimport { TimelineRenderingService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-rendering.service';\nimport { TimelineCellEntry } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline-entry.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpTaskTimelineRightGroup]',\n templateUrl: './task-timeline-right-group.component.html',\n styleUrls: ['./task-timeline-right-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskTimelineRightGroupComponent {\n @Input() taskFormGroup: UntypedFormGroup;\n\n public entries: TimelineCellEntry[];\n constructor(\n public gridService: GridService,\n public service: ProjectTaskTimelineService,\n public timelineRenderingService: TimelineRenderingService,\n ) {}\n\n public trackById(index: number, row: any): any {\n return row.id;\n }\n}\n","\n\n \n
    \n \n
    \n \n \n \n @for (entry of service.entries$ | async; track entry.id) {\n \n }\n \n \n
    \n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DateTime } from 'luxon';\nimport { take } from 'rxjs/operators';\nimport {\n ProjectTask,\n ProjectTaskDependency,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport {\n DragContext,\n DragDropService,\n} from 'src/app/shared/services/drag-drop';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ProjectTaskTimelineService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/project-task-timeline.service';\nimport { TimelinePositionService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-position.service';\nimport { TimelineRenderingService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-rendering.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { DatePipe, PercentPipe } from '@angular/common';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { GraphNodeType } from 'src/app/projects/card/project-tasks/shared/models/timeline-graph.model';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'wp-timeline-entry',\n templateUrl: './timeline-entry.component.html',\n styleUrls: ['./timeline-entry.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimelineEntryComponent implements OnInit {\n @Input() taskFormGroup: UntypedFormGroup;\n @ViewChild('taskStrip') taskStrip: ElementRef;\n\n /** Left shift (means start position on the board). */\n public left: number;\n\n /** Plan task left shift. */\n public plannedTaskLeft: number;\n\n /** Task width. */\n public width: number;\n\n /** Plan task width. */\n public plannedTaskWidth: number;\n\n public isMilestone: boolean;\n\n /** Breakpoint for outside brackets. */\n public widthBreakpoint = 15;\n\n public plannedTaskStyles: Record = {};\n\n public get percentCompleteStyle(): string | null {\n const percentComplete = this.taskFormGroup.getRawValue().isActive\n ? this.percentCompleteForView\n : 1;\n\n return percentComplete\n ? `linear-gradient(\n 90deg,\n var(--main-task-color) 0%,\n var(--main-task-color) ${percentComplete * 100}%,\n var(--secondary-task-color) ${percentComplete * 100}%,\n var(--secondary-task-color) 100%\n )`\n : null;\n }\n\n public get percentCompleteForView(): number | null {\n if (this.taskFormGroup.value.isExpanded) {\n return (this.taskFormGroup.getRawValue().percentComplete ??= null);\n } else {\n return (this.taskFormGroup.getRawValue().percentCompleteSum ??= null);\n }\n }\n\n /** Return is task lead. */\n public get isLeadTask(): boolean {\n return this.dataService.checkIsLeadTask(this.taskFormGroup.value.id);\n }\n\n private _hiddenLeftSideDeps: ProjectTask[];\n public get hiddenLeftSideDeps(): ProjectTask[] {\n return this._hiddenLeftSideDeps;\n }\n private _hiddenLeftSideDepsTitle: string;\n public get hiddenLeftSideDepsTitle(): string {\n return this._hiddenLeftSideDepsTitle;\n }\n\n private _hiddenRightSideDeps: ProjectTask[];\n public get hiddenRightSideDeps(): ProjectTask[] {\n return this._hiddenRightSideDeps;\n }\n private _hiddenRightSideDepsTitle: string;\n public get hiddenRightSideDepsTitle(): string {\n return this._hiddenRightSideDepsTitle;\n }\n\n private _taskHint: string;\n public get taskHint(): string {\n return this._taskHint;\n }\n\n private _plannedTaskHint: string;\n public get plannedTaskHint(): string {\n return this._plannedTaskHint;\n }\n\n /** Determines is some drag&drop action in progress (task drag, task resizing or dependency creating). */\n private isDragAndDropBusy: boolean;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n public service: ProjectTaskTimelineService,\n private dragDropService: DragDropService,\n public timelineRenderingService: TimelineRenderingService,\n public dataService: ProjectTasksDataService,\n public dependenciesService: ProjectTaskDependenciesService,\n public timelinePositionService: TimelinePositionService,\n private translateService: TranslateService,\n private projectTeamService: ProjectTeamService,\n private datePipe: DatePipe,\n private percentPipe: PercentPipe,\n private versionCardService: ProjectVersionCardService,\n private elementRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n this.initSubscribes();\n this.updateTaskView();\n\n merge(\n this.dataService.criticalTaskIds$,\n this.dataService.isShowCriticalPath$,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const mainTaskColorVarName = '--main-task-color';\n const secondaryTaskColorVarName = '--secondary-task-color';\n const baseMainTaskColor = 'rgba(70, 90, 170, 0.8)';\n const baseSecondaryTaskColor = 'rgba(140, 160, 250, 0.8)';\n const criticalMainTaskColor = '#ff0000ad';\n const criticalSecondaryTaskColor = '#ff000070';\n if (\n this.dataService.isShowCriticalPath$.getValue() &&\n this.dataService.criticalTaskIds$\n .getValue()\n .includes(this.taskFormGroup.value.id)\n ) {\n this.elementRef.nativeElement.style.setProperty(\n mainTaskColorVarName,\n criticalMainTaskColor,\n );\n this.elementRef.nativeElement.style.setProperty(\n secondaryTaskColorVarName,\n criticalSecondaryTaskColor,\n );\n } else {\n this.elementRef.nativeElement.style.setProperty(\n mainTaskColorVarName,\n baseMainTaskColor,\n );\n this.elementRef.nativeElement.style.setProperty(\n secondaryTaskColorVarName,\n baseSecondaryTaskColor,\n );\n }\n });\n }\n\n /**\n * Begins drag of task.\n *\n * @param startEvent pointer event.\n * @param task html task element.\n * @returns\n */\n public initDrag(startEvent: PointerEvent, task: HTMLElement): void {\n startEvent.preventDefault();\n if (this.isDragAndDropBusy) {\n return;\n }\n this.isDragAndDropBusy = true;\n\n if (this.dataService.readonly) {\n return;\n }\n\n /** Select task. */\n this.gridService.selectGroup(this.taskFormGroup);\n\n /** Dragging subscription. */\n this.dragDropService\n .drag(startEvent)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ diffX }) => {\n task.style.left = `${this.left + diffX}px`;\n },\n });\n\n /** End of dragging subscription. */\n this.dragDropService.dragEnd$\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ diffX }) => {\n const startDate = DateTime.fromISO(\n this.taskFormGroup.value.startDate,\n );\n const roundedDaysCount = this.timelinePositionService.getDays(\n startDate,\n diffX,\n );\n if (roundedDaysCount) {\n if (this.isMilestone && !this.isLeadTask) {\n this.left =\n this.timelinePositionService.getPosition(\n DateTime.fromISO(this.taskFormGroup.value.endDate),\n ) +\n this.timelinePositionService.getDayWidth(\n this.taskFormGroup.value.endDate,\n ) -\n this.timelinePositionService.halfOfMilestoneSize;\n } else {\n this.left = this.timelinePositionService.getPosition(startDate);\n }\n\n this.updateTaskDates(roundedDaysCount, roundedDaysCount);\n } else {\n task.style.left = `${this.left}px`;\n task.style.width = `${this.width}px`;\n }\n this.timelineRenderingService.highlightTaskDependencies();\n this.cdr.detectChanges();\n this.isDragAndDropBusy = false;\n },\n });\n }\n\n /**\n * Begins resize of task.\n *\n * @param startEvent pointer event.\n * @param task html task element.\n * @param side side of task strip.\n */\n public initResize(\n startEvent: PointerEvent,\n task: HTMLElement,\n side: string,\n ): void {\n startEvent.preventDefault();\n if (this.isDragAndDropBusy) {\n return;\n }\n this.isDragAndDropBusy = true;\n\n /** Select task. */\n this.gridService.selectGroup(this.taskFormGroup);\n\n const startDate = DateTime.fromISO(this.taskFormGroup.value.startDate);\n const endDate = DateTime.fromISO(this.taskFormGroup.value.endDate);\n const taskDuration = endDate.diff(startDate, 'days').plus({ day: 1 });\n\n /** Dragging subscription. */\n this.dragDropService\n .drag(startEvent)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ diffX }) => {\n if (side === 'left') {\n const rightBorderDayWidth =\n this.timelinePositionService.getDayWidth(endDate);\n /** Check min width. */\n if (this.width - diffX >= rightBorderDayWidth) {\n task.style.left = `${this.left + diffX}px`;\n task.style.width = `${this.width - diffX}px`;\n } else {\n task.style.left = `${this.timelinePositionService.getPosition(\n endDate,\n )}px`;\n task.style.width = `${rightBorderDayWidth}px`;\n }\n } else {\n const leftBorderDayWidth =\n this.timelinePositionService.getDayWidth(startDate);\n /** Check min width. */\n if (this.width + diffX >= leftBorderDayWidth) {\n task.style.width = `${this.width + diffX}px`;\n } else {\n task.style.width = `${leftBorderDayWidth}px`;\n }\n }\n },\n });\n\n /** End of dragging subscription. */\n this.dragDropService.dragEnd$\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ diffX }) => {\n let roundedDaysCount;\n if (side === 'left') {\n roundedDaysCount = this.timelinePositionService.getDays(\n startDate,\n diffX,\n );\n if (roundedDaysCount) {\n if (taskDuration.days - roundedDaysCount <= 0) {\n roundedDaysCount = taskDuration.days - 1;\n }\n this.left = this.timelinePositionService.getPosition(startDate);\n this.updateTaskDates(roundedDaysCount, null);\n }\n } else {\n roundedDaysCount = this.timelinePositionService.getDays(\n endDate,\n diffX,\n );\n if (roundedDaysCount) {\n if (taskDuration.days + roundedDaysCount <= 0) {\n roundedDaysCount = -taskDuration.days + 1;\n }\n this.updateTaskDates(null, roundedDaysCount);\n }\n }\n if (!roundedDaysCount) {\n task.style.left = `${this.left}px`;\n task.style.width = `${this.width}px`;\n }\n this.timelineRenderingService.highlightTaskDependencies();\n this.cdr.detectChanges();\n this.isDragAndDropBusy = false;\n },\n });\n }\n\n /**\n * Creates task depending.\n *\n * @param startEvent pointer event.\n * @param task html task element.\n * @param createType task dependency creating type.\n * @param taskId id of the task.\n */\n public initCreateDepend(\n startEvent: PointerEvent,\n task: HTMLElement,\n dependencyMarkerType: GraphNodeType,\n taskId: string,\n ): void {\n startEvent.preventDefault();\n if (this.isDragAndDropBusy) {\n return;\n }\n this.isDragAndDropBusy = true;\n\n /** Select task. */\n this.gridService.selectGroup(this.taskFormGroup);\n\n const canvas = this.timelineRenderingService.dynamicCanvas;\n const canvasPosition = canvas.getBoundingClientRect();\n const dragContext: DragContext = {\n leftOffset: canvasPosition.left,\n topOffset: canvasPosition.top,\n };\n\n const taskPosition = task.getBoundingClientRect();\n let beginPointCoordinates = { x: null, y: null };\n switch (dependencyMarkerType) {\n case 'finish':\n beginPointCoordinates = {\n x: taskPosition.left + taskPosition.width - dragContext.leftOffset,\n y: taskPosition.top + taskPosition.height / 2 - dragContext.topOffset,\n };\n break;\n case 'start':\n beginPointCoordinates = {\n x: taskPosition.left - dragContext.leftOffset,\n y: taskPosition.top + taskPosition.height / 2 - dragContext.topOffset,\n };\n }\n\n const predecessorNode = { id: taskId, type: dependencyMarkerType };\n // Show allowed dependency markers\n this.dependenciesService.filterDependencyMarkers(predecessorNode);\n this.dependenciesService.setIsCreatingDependency(true);\n\n /** Dragging subscription. */\n this.dragDropService\n .drag(startEvent, dragContext)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ x, y }) => {\n const ctx = canvas.getContext('2d');\n /** Set line styles. */\n ctx.strokeStyle = 'rgba(67, 87, 173, 0.8)';\n ctx.lineWidth = 2;\n\n this.timelineRenderingService.highlightTaskDependencies();\n ctx.beginPath();\n ctx.moveTo(beginPointCoordinates.x, beginPointCoordinates.y);\n ctx.lineTo(x, y);\n ctx.stroke();\n },\n });\n\n /** End of dragging subscription. */\n this.dragDropService.dragEnd$\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: ({ target }) => {\n const targetElement = target as HTMLElement;\n const targetElementType = targetElement.dataset.type;\n const targetElementId = targetElement.dataset.id;\n\n if (targetElementType === 'start' || targetElementType === 'finish') {\n const targetFormGroup = this.dataService.formArray.controls.find(\n (taskGroup) => taskGroup.value.id === targetElementId,\n ) as UntypedFormGroup;\n switch (dependencyMarkerType) {\n case 'finish': {\n let dependency: ProjectTaskDependency;\n if (targetElementType === 'start') {\n dependency = {\n predecessorId: this.taskFormGroup.value.id,\n type: ProjectTaskDependencyType.finishToStart,\n };\n } else {\n dependency = {\n predecessorId: this.taskFormGroup.value.id,\n type: ProjectTaskDependencyType.finishToFinish,\n };\n }\n\n this.service.addDependency(targetFormGroup, dependency);\n break;\n }\n\n case 'start': {\n let dependency: ProjectTaskDependency;\n if (targetElementType === 'finish') {\n dependency = {\n predecessorId: this.taskFormGroup.value.id,\n type: ProjectTaskDependencyType.startToFinish,\n };\n } else {\n dependency = {\n predecessorId: this.taskFormGroup.value.id,\n type: ProjectTaskDependencyType.startToStart,\n };\n }\n this.service.addDependency(targetFormGroup, dependency);\n break;\n }\n }\n }\n this.timelineRenderingService.clearCreateDynamicCanvas();\n this.timelineRenderingService.drawDependencies();\n this.timelineRenderingService.highlightTaskDependencies();\n // Hide allowed dependency markers\n this.dependenciesService.setIsCreatingDependency(false);\n this.dependenciesService.setDefaultAllowedMarkerTaskIds();\n this.cdr.detectChanges();\n this.isDragAndDropBusy = false;\n },\n });\n }\n\n /**\n * Returns the styles for the right side strip of the lead task based on its completion status and milestone properties.\n *\n * @returns A record containing CSS style properties and their values for the right side strip.\n */\n public getLeadTaskRightSideStripStyles(): Record {\n return {\n 'background-color':\n this.percentCompleteForView >= 1 ||\n !this.taskFormGroup.getRawValue().isActive\n ? 'var(--main-task-color)'\n : 'var(--secondary-task-color)',\n width: this.isMilestone\n ? this.timelinePositionService.milestoneSize + 'px'\n : '',\n height: this.isMilestone\n ? this.timelinePositionService.milestoneSize + 'px'\n : '',\n right: this.isMilestone\n ? -this.timelinePositionService.halfOfMilestoneSize + 'px'\n : '',\n };\n }\n\n /**\n * Updates start/end task dates.\n *\n * @param startDayShift start day shift in days.\n * @param endDayShift end day shift in days.\n */\n private updateTaskDates(startDayShift: number, endDayShift: number): void {\n if (!startDayShift && !endDayShift) {\n return;\n }\n\n let datesForUpdate = {};\n if (endDayShift && !startDayShift) {\n const endDate = DateTime.fromISO(this.taskFormGroup.value.endDate);\n const newEndDate = endDate.plus({ days: endDayShift });\n datesForUpdate = {\n ...datesForUpdate,\n endDate: newEndDate.toISODate(),\n };\n this.dataService.timelineDateChanges.endDate = true;\n }\n\n if (startDayShift) {\n const startDate = DateTime.fromISO(this.taskFormGroup.value.startDate);\n const newStartDate = startDate.plus({ days: startDayShift });\n datesForUpdate = {\n ...datesForUpdate,\n startDate: newStartDate.toISODate(),\n };\n if (!endDayShift) {\n this.dataService.timelineDateChanges.startDate = true;\n }\n }\n\n this.taskFormGroup.patchValue(datesForUpdate);\n }\n\n /** Updates task view. */\n private updateTaskView(): void {\n /** Params for task width. */\n const startDate = DateTime.fromISO(\n this.taskFormGroup.getRawValue().startDate,\n );\n const endDate = DateTime.fromISO(this.taskFormGroup.getRawValue().endDate);\n\n /** Is hit in the visible board part. */\n if (this.isTaskStripVisible(startDate, endDate)) {\n this.isMilestone = this.taskFormGroup.getRawValue().isMilestone;\n const isCommonMilestoneTask = this.isMilestone && !this.isLeadTask;\n const positionDate = isCommonMilestoneTask ? endDate : startDate;\n this.left = this.timelinePositionService.getPosition(positionDate);\n if (isCommonMilestoneTask) {\n this.left +=\n this.timelinePositionService.getDayWidth(positionDate) -\n this.timelinePositionService.halfOfMilestoneSize;\n }\n this.width = isCommonMilestoneTask\n ? this.timelinePositionService.milestoneSize\n : this.timelinePositionService.getWidth(startDate, endDate);\n\n /** Restore task styles. */\n const taskElement = this.taskStrip;\n if (taskElement) {\n taskElement.nativeElement.style.left = `${this.left}px`;\n taskElement.nativeElement.style.width = `${this.width}px`;\n }\n } else {\n this.width = null;\n }\n this.updateHiddenDependencies();\n\n this.updateTaskHint();\n\n this.updatePlannedTaskView();\n this.updatePlannedTaskHint();\n\n this.cdr.detectChanges();\n }\n\n /** Updates the view for the planned task. */\n private updatePlannedTaskView(): void {\n const taskValue = this.taskFormGroup.getRawValue();\n if (\n this.versionCardService.projectVersion.masterBaseline ||\n !taskValue.plannedStartDate ||\n !taskValue.plannedEndDate\n ) {\n this.plannedTaskWidth = null;\n return;\n }\n const startDate = DateTime.fromISO(taskValue.plannedStartDate);\n const endDate = DateTime.fromISO(taskValue.plannedEndDate);\n if (this.isTaskStripVisible(startDate, endDate)) {\n this.plannedTaskLeft =\n this.timelinePositionService.getPosition(startDate);\n this.plannedTaskWidth = this.timelinePositionService.getWidth(\n startDate,\n endDate,\n );\n let top = '';\n if (this.width) {\n if (this.isLeadTask) {\n top = '8px';\n } else {\n top = '13px';\n }\n } else {\n top = '28px';\n }\n this.plannedTaskStyles = {\n width: this.plannedTaskWidth + 'px',\n left: this.plannedTaskLeft + 'px',\n top,\n };\n } else {\n this.plannedTaskWidth = null;\n }\n }\n\n /**\n * Determines if the task strip is visible within the timeline slots.\n *\n * @param startDate - The start date of the task.\n * @param endDate - The end date of the task.\n * @returns A boolean indicating whether the task strip is visible.\n */\n private isTaskStripVisible(startDate: DateTime, endDate: DateTime): boolean {\n const slotMinDate = this.service.slots[0]?.date;\n const slotMaxDate = this.service.slots[this.service.slots.length - 1]?.date;\n return (\n (slotMinDate <= startDate && startDate <= slotMaxDate) ||\n (slotMinDate <= endDate && endDate <= slotMaxDate) ||\n (startDate < slotMinDate && endDate > slotMaxDate)\n );\n }\n\n /** Updates the task hint. */\n private updateTaskHint(): void {\n const taskValue = this.taskFormGroup.getRawValue();\n let hint = '';\n hint += `${this.service.taskHintNames.taskName}: ${taskValue.name}\\n`;\n hint += `${this.service.taskHintNames.dates}: ${this.datePipe.transform(taskValue.startDate, 'shortDate')} — ${this.datePipe.transform(taskValue.endDate, 'shortDate')}\\n`;\n hint += `${this.service.taskHintNames.projectTaskDuration}: ${taskValue.duration} ${this.translateService.instant('shared.duration.day')}\\n`;\n hint += `${this.service.taskHintNames.percentComplete}: ${this.percentPipe.transform(taskValue.percentComplete, `1.0-1`)}\\n`;\n\n const taskAssignmentsString = this.projectTeamService.getAssignmentsString(\n taskValue.projectTaskAssignments,\n 3,\n );\n hint += `${this.service.taskHintNames.assignments}: ${taskAssignmentsString ?? ''}`;\n\n this._taskHint = hint;\n }\n\n /** Updates the planned task hint. */\n private updatePlannedTaskHint(): void {\n const taskValue = this.taskFormGroup.getRawValue();\n let hint = '';\n const startDateString = this.datePipe.transform(\n taskValue.plannedStartDate,\n 'shortDate',\n );\n const endDateString = this.datePipe.transform(\n taskValue.plannedEndDate,\n 'shortDate',\n );\n hint += `${this.service.taskHintNames.dates}: ${startDateString} — ${endDateString}\\n`;\n this._plannedTaskHint = hint;\n }\n\n /** Subscribes initialization. */\n private initSubscribes(): void {\n this.service.updateTasks$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateTaskView();\n });\n }\n\n /** Updates hidden dependencies markers. */\n private updateHiddenDependencies(): void {\n if (!this.width) {\n return;\n }\n const filterHiddenPredecessorTask: (\n type: ProjectTaskDependencyType,\n ) => ProjectTask[] = (type: ProjectTaskDependencyType) =>\n this.taskFormGroup.value.dependencies\n ?.filter((d) => d.type === type)\n .filter(\n (dependency) =>\n !this.dataService.formArray.value.find(\n (task) => task.id === dependency.predecessorId,\n ),\n )\n .map((dependency) =>\n this.dataService.getTask(dependency.predecessorId),\n );\n\n const filterHiddenDependentTasks: (\n type: ProjectTaskDependencyType,\n ) => ProjectTask[] = (type: ProjectTaskDependencyType) =>\n this.dataService.tasks\n ?.filter(\n (task) =>\n !this.dataService.formArray.value.some(\n (visibleTask) => visibleTask.id === task.id,\n ),\n )\n .filter((hiddenTask) =>\n hiddenTask.dependencies?.some(\n (d) =>\n d.type === type &&\n d.predecessorId === this.taskFormGroup.value.id,\n ),\n );\n\n const predecessorFS = filterHiddenPredecessorTask(\n ProjectTaskDependencyType.finishToStart,\n );\n const predecessorSS = filterHiddenPredecessorTask(\n ProjectTaskDependencyType.startToStart,\n );\n const predecessorFF = filterHiddenPredecessorTask(\n ProjectTaskDependencyType.finishToFinish,\n );\n const predecessorSF = filterHiddenPredecessorTask(\n ProjectTaskDependencyType.startToFinish,\n );\n\n const dependentSF = filterHiddenDependentTasks(\n ProjectTaskDependencyType.startToFinish,\n );\n const dependentSS = filterHiddenDependentTasks(\n ProjectTaskDependencyType.startToStart,\n );\n const dependentFF = filterHiddenDependentTasks(\n ProjectTaskDependencyType.finishToFinish,\n );\n const dependentFS = filterHiddenDependentTasks(\n ProjectTaskDependencyType.finishToStart,\n );\n\n this._hiddenLeftSideDeps = [\n ...predecessorFS,\n ...predecessorSS,\n ...dependentSF,\n ...dependentSS,\n ];\n\n this._hiddenRightSideDeps = [\n ...predecessorSF,\n ...predecessorFF,\n ...dependentFS,\n ...dependentFF,\n ];\n\n const hiddenDependentsDescription = this.translateService.instant(\n 'components.timelineEntryComponent.props.hiddenDependencies.value',\n );\n\n /**\n * Generates a string representation of a list of dependent tasks.\n *\n * @param depsTasks - An array of ProjectTask objects representing the dependent tasks.\n * @param type - A string indicating the type of dependency.\n * @returns A string representation of the dependency list.\n */\n const generateDependencyList = (\n depsTasks: ProjectTask[],\n type: ProjectTaskDependencyType,\n ): string => {\n if (!depsTasks.length) return '';\n let dependencyList = '';\n dependencyList += `\\t${this.translateService.instant(`shared2.props.${type}.value`)}\\n`;\n\n dependencyList += depsTasks\n .map((task) => `\\t\\t${task.structNumber} - ${task.name};\\n`)\n .join('');\n return dependencyList;\n };\n\n let rightSideTitle = `${hiddenDependentsDescription} - ${this._hiddenRightSideDeps.length}.\\n`;\n if (predecessorSF.length || predecessorFF.length) {\n rightSideTitle += `${this.translateService.instant(`components.timelineEntryComponent.groups.incoming`)}:\\n`;\n rightSideTitle += generateDependencyList(\n predecessorSF,\n ProjectTaskDependencyType.startToFinish,\n );\n rightSideTitle += generateDependencyList(\n predecessorFF,\n ProjectTaskDependencyType.finishToFinish,\n );\n }\n if (dependentFS.length || dependentFF.length) {\n rightSideTitle += `${this.translateService.instant(`components.timelineEntryComponent.groups.outgoing`)}:\\n`;\n rightSideTitle += generateDependencyList(\n dependentFS,\n ProjectTaskDependencyType.finishToStart,\n );\n rightSideTitle += generateDependencyList(\n dependentFF,\n ProjectTaskDependencyType.finishToFinish,\n );\n }\n this._hiddenRightSideDepsTitle = rightSideTitle;\n\n let leftSideTitle = `${hiddenDependentsDescription} - ${this._hiddenLeftSideDeps.length}.\\n`;\n if (predecessorFS.length || predecessorSS.length) {\n leftSideTitle += `${this.translateService.instant(`components.timelineEntryComponent.groups.incoming`)}:\\n`;\n leftSideTitle += generateDependencyList(\n predecessorFS,\n ProjectTaskDependencyType.finishToStart,\n );\n leftSideTitle += generateDependencyList(\n predecessorSS,\n ProjectTaskDependencyType.startToStart,\n );\n }\n if (dependentSF.length || dependentSS.length) {\n leftSideTitle += `${this.translateService.instant(`components.timelineEntryComponent.groups.outgoing`)}:\\n`;\n leftSideTitle += generateDependencyList(\n dependentSF,\n ProjectTaskDependencyType.startToFinish,\n );\n leftSideTitle += generateDependencyList(\n dependentSS,\n ProjectTaskDependencyType.startToStart,\n );\n }\n this._hiddenLeftSideDepsTitle = leftSideTitle;\n }\n}\n","@if (width && hiddenLeftSideDeps?.length) {\n \n {{ hiddenLeftSideDeps.length }}\n {{ 'components.timelineEntryComponent.props.hiddenDependencies.short' | translate }}
    \n \n}\n@if (width) {\n \n @if (\n (dependenciesService.allowedLeftMarkerTaskIds$ | async)?.includes(taskFormGroup.value.id)\n ) {\n
    \n
    \n \n }\n\n @if (isLeadTask) {\n \n \n \n }\n @if (!isLeadTask && !taskFormGroup.value.isMilestone) {\n \n \n }\n\n @if (\n (dependenciesService.allowedRightMarkerTaskIds$ | async)?.includes(taskFormGroup.value.id)\n ) {\n
    \n
    \n \n }\n \n}\n@if (width && hiddenRightSideDeps?.length) {\n \n {{ hiddenRightSideDeps.length }}\n {{ 'components.timelineEntryComponent.props.hiddenDependencies.short' | translate }}\n \n}\n\n@if ((dataService.isShowPlannedTasks$ | async) && plannedTaskWidth) {\n
    \n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { asyncScheduler, filter, take, throttleTime } from 'rxjs';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { ProjectTasksDataService } from 'src/app/projects/card/project-tasks/core/project-tasks-data.service';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport { ProjectTaskTimelineService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/project-task-timeline.service';\nimport { TimelinePositionService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-position.service';\nimport { TimelineRenderingService } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/core/timeline-rendering.service';\nimport { AbstractRightSide } from 'src/app/shared-features/grid/abstract-right-side.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n@Component({\n selector: 'tmt-timeline-right-side',\n templateUrl: './timeline-right-side.component.html',\n styleUrl: './timeline-right-side.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ProjectTaskTimelineService,\n TimelineRenderingService,\n TimelinePositionService,\n ],\n standalone: false,\n})\nexport class TimelineRightSideComponent\n extends AbstractRightSide\n implements AfterViewInit, OnDestroy\n{\n //** Canvas includes dynamic draws. */\n @ViewChild('dynamicCanvas') dynamicCanvas: ElementRef;\n //** Canvas includes all of visible dependencies. */\n @ViewChild('dependenciesCanvas') dependenciesCanvas: ElementRef;\n //** Canvas includes all of critical path dependencies. */\n @ViewChild('criticalPathCanvas') criticalPathCanvas: ElementRef;\n\n public get taskFormArrayGroups(): UntypedFormGroup[] {\n return this.taskDataService.formArray.controls as UntypedFormGroup[];\n }\n\n // Audit time for events in milliseconds.\n private auditTime = 15;\n private throttle = throttleTime(this.auditTime, asyncScheduler, {\n leading: true,\n trailing: true,\n });\n\n constructor(\n container: ElementRef,\n gridService: GridService,\n freezeTableService: FreezeTableService,\n renderer: Renderer2,\n public taskDataService: ProjectTasksDataService,\n public tasksGridActionsService: TasksGridActionsService,\n public timelineRenderingService: TimelineRenderingService,\n public service: ProjectTaskTimelineService,\n private cdr: ChangeDetectorRef,\n private dependenciesService: ProjectTaskDependenciesService,\n private projectCardService: ProjectCardService,\n ) {\n super(container, gridService, freezeTableService, renderer);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n this.dependenciesService.setDefaultAllowedMarkerTaskIds();\n /** Check changes subscription. */\n this.taskDataService.update$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.dependenciesService.setDefaultAllowedMarkerTaskIds();\n this.cdr.detectChanges();\n this.service.updateTasks();\n\n // Drop selection if current selected task no more existing (after undo occasion)\n if (\n this.taskDataService.tasks.every(\n (task) => task.id !== this.gridService.selectedGroupValue?.id,\n )\n ) {\n this.gridService.selectGroup(null);\n }\n });\n\n /** Set default timeline by reload btn. */\n this.projectCardService.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.service.reloadTimeline();\n });\n\n this.service.init();\n if (this.taskDataService.tasks?.length) {\n this.service.initTimeline();\n }\n\n this.cdr.detectChanges();\n\n this.gridService.loading$\n .pipe(\n filter((x) => !x),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (!this.service.slots.length && this.taskDataService.tasks?.length) {\n this.service.initTimeline();\n }\n this.service.initScrollPosition();\n });\n\n this.freezeTableService.currentScrollPosition$\n .pipe(\n this.throttle,\n filter(() => !!this.service.slots.length),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((currentScrollPosition: number | null) => {\n this.projectCardService.timelineScrollPosition = currentScrollPosition;\n });\n }\n\n public ngAfterViewInit(): void {\n this.timelineRenderingService.dynamicCanvas =\n this.dynamicCanvas.nativeElement;\n this.timelineRenderingService.dependenciesCanvas =\n this.dependenciesCanvas.nativeElement;\n this.timelineRenderingService.criticalPathCanvas =\n this.criticalPathCanvas.nativeElement;\n\n this.timelineRenderingService.drawDependencies();\n this.service.updateTasks$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.detectChanges();\n this.timelineRenderingService.drawDependencies();\n this.timelineRenderingService.highlightTaskDependencies();\n if (this.taskDataService.isShowCriticalPath$.getValue()) {\n this.timelineRenderingService.drawCriticalPathDependencies();\n }\n });\n\n this.taskDataService.criticalDependencies$\n .pipe(\n filter(() => this.taskDataService.isShowCriticalPath$.getValue()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n this.timelineRenderingService.drawCriticalPathDependencies();\n });\n\n this.taskDataService.isShowCriticalPath$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.cdr.detectChanges();\n if (value) {\n this.timelineRenderingService.drawCriticalPathDependencies();\n } else {\n this.timelineRenderingService.clearCriticalPathCanvas();\n }\n });\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.timelineRenderingService.highlightTaskDependencies();\n });\n\n this.taskDataService.isShowMainTask$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((isShow) => {\n if (\n !isShow &&\n this.gridService.selectedGroup$.getValue() &&\n !this.gridService.selectedGroupValue?.leadTaskId\n ) {\n this.gridService.selectGroup(null);\n this.cdr.detectChanges();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.service.dispose();\n }\n}\n","
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n \n \n @for (group of service.slotGroups; track group.id) {\n \n {{ group.header }}\n \n }\n \n \n @for (slot of service.slots; track slot.id) {\n \n {{ slot.header }}\n \n }\n \n \n \n
    \n\n
    \n \n @if (gridService.loading$ | async) {\n \n \n \n \n \n }\n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n @for (taskFormGroup of taskFormArrayGroups; track taskFormGroup.value.id) {\n \n }\n \n \n \n \n
    \n\n
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n @if (!(taskDataService.isLoading$ | async)) {\n \n \n \n \n \n }\n \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { StateService } from '@uirouter/core';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { TasksGridActionsService } from 'src/app/projects/card/project-tasks/core/tasks-grid-actions.service';\nimport { ProjectTaskSettings } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/project-task-settings.model';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'tmt-tasks-view-form',\n templateUrl: './tasks-view-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TasksViewFormComponent implements OnInit {\n public checkboxes: string[] = [\n 'isShowMainTask',\n 'isShowPlanTasks',\n 'isShowCriticalPath',\n ];\n public hiddenCheckboxes: string[] = [];\n public form: UntypedFormGroup = this.fb.group(\n this.checkboxes.reduce(\n (result: Record, value) => ({\n ...result,\n [value]: true,\n }),\n {},\n ),\n );\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private projectTasksActionsService: TasksGridActionsService,\n private localConfigService: LocalConfigService,\n private state: StateService,\n ) {}\n\n public ngOnInit(): void {\n if (this.state.current.name === 'project.tasks.table') {\n this.hiddenCheckboxes.push('isShowPlanTasks');\n this.hiddenCheckboxes.push('isShowCriticalPath');\n }\n\n const config = this.localConfigService.getConfig(ProjectTaskSettings);\n this.form.setValue({\n isShowMainTask: config.isShowMainTask,\n isShowPlanTasks: config.isShowPlanTasks,\n isShowCriticalPath: config.isShowCriticalPath,\n });\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.projectTasksActionsService.setAdditionalViewSettings(data);\n });\n }\n}\n","
    \n \n \n \n
    \n @for (item of checkboxes; track item) {\n @if (!hiddenCheckboxes.includes(item)) {\n
    \n \n \n
    \n }\n }\n
    \n
    \n","import { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StateService } from '@uirouter/angular';\nimport { ProjectCardService } from '../../../core/project-card.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { ProjectTaskView } from 'src/app/projects/card/project-tasks/shared/models/project-task-view.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-tasks-view-switcher',\n templateUrl: './tasks-view-switcher.component.html',\n styleUrls: ['./tasks-view-switcher.component.scss'],\n standalone: false,\n})\nexport class TasksViewSwitcherComponent implements OnInit {\n public readonly projectTaskView = ProjectTaskView;\n\n public control = new FormControl(this.projectTaskView.table);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public app: AppService,\n private state: StateService,\n public projectCardService: ProjectCardService,\n ) {}\n\n public ngOnInit(): void {\n switch (this.state.current.name) {\n case 'project.tasks.table':\n this.control.setValue(this.projectTaskView.table);\n break;\n case 'project.tasks.timeline':\n this.control.setValue(this.projectTaskView.timeline);\n break;\n }\n\n this.control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.state.go(`project.tasks.${this.control.value}`, {\n routeMode: RouteMode.keep,\n });\n });\n }\n}\n","
    \n \n \n\n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { TasksGridComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/tasks-grid.component';\n\n@NgModule({\n imports: [\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.tasks.table',\n url: '/table',\n component: TasksGridComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class TasksMainModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-add-resources-modal-toolbar',\n templateUrl: './add-resources-modal-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AddResourceModalToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n \n \n \n \n
    \n","import { Component, inject } from '@angular/core';\nimport _ from 'lodash';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { filterResourceTypes } from 'src/app/projects/card/project-team/add-resources-modal/models/filter-resource-types';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { AddResourceModalToolbarComponent } from 'src/app/projects/card/project-team/add-resources-modal/add-resources-modal-toolbar/add-resources-modal-toolbar.component';\nimport { ResourcesFilterService } from 'src/app/shared/modules/resources-filter/resources-filter.service';\nimport { Resource } from 'src/app/shared/models/entities/settings/resource.model';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { RESOURCES_LIST } from 'src/app/resources/resources.list';\nimport { AddEntitiesModalComponent } from 'src/app/shared/components/add-entities-modal/add-entities-modal.component';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Adding resources modal window. */\n@Component({\n selector: 'tmt-add-resources-modal',\n templateUrl:\n '../../../../shared/components/add-entities-modal/add-entities-modal.component.html',\n styleUrls: [\n '../../../../shared/components/add-entities-modal/add-entities-modal.component.scss',\n ],\n providers: [\n { provide: FilterService, useClass: ResourcesFilterService },\n GridService,\n ListService,\n { provide: VIEW_NAME, useValue: 'addResourceModal' },\n { provide: LIST, useValue: RESOURCES_LIST },\n ],\n standalone: false,\n})\nexport class AddResourcesModalComponent extends AddEntitiesModalComponent {\n public readonly filterResourceTypes = filterResourceTypes;\n\n protected override fieldToSortOnClient = 'resource.name';\n protected override selectionLimitWarning =\n 'projects.projects.card.team.messages.30limit';\n protected override modalWindowHeader =\n 'projects.projects.card.team.addResourcesModal.header';\n protected override noDisplayDataMessage =\n 'projects.projects.card.team.addResourcesModal.noDisplayData';\n protected override hasAvatar = true;\n\n private readonly resourcesForTeamFilterNames = [\n 'department',\n 'resourcePool',\n 'role',\n 'legalEntity',\n 'competence',\n 'level',\n 'grade',\n 'location',\n ];\n private readonly versionCardService = inject(ProjectVersionCardService);\n private readonly versionDataService = inject(ProjectVersionDataService);\n\n constructor() {\n super();\n\n this.gridOptions.toolbar = AddResourceModalToolbarComponent;\n }\n\n /** Saves data. */\n protected override ok(): void {\n this.isSaving.set(true);\n\n const team = [];\n this.selectedEntities.forEach((resource: Resource) => {\n const member = {\n resourceId: resource.id,\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n member,\n this.parentEntityId,\n );\n\n team.push(member);\n });\n\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.parentEntityId,\n )\n .action('UpdateTeam')\n .execute({ team })\n .subscribe({\n next: () => {\n this.isSaving.set(false);\n this.notification.successLocal(\n 'projects.projects.card.team.messages.membersWereAdded',\n );\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /** Loads data. */\n protected override load(): void {\n this.availableEntities = [];\n this.isLoading.set(true);\n this.loadedPartly.set(false);\n\n const oDataParams = {\n select: ['id', 'name', 'resourceType', 'isActive'],\n expand: [\n { department: { select: ['id', 'name'] } },\n { role: { select: ['id', 'name'] } },\n { resourcePool: { select: ['id', 'name'] } },\n { level: { select: ['id', 'name'] } },\n { grade: { select: ['id', 'name'] } },\n { legalEntity: { select: ['id', 'name'] } },\n { location: { select: ['id', 'name'] } },\n { competence: { select: ['id', 'name'] } },\n { currentRate: { select: ['valueBC'] } },\n ],\n filter: [],\n orderBy: ['name'],\n top: this.loadingLimit,\n };\n\n oDataParams.filter.push({\n resourceType: { ne: ResourceType.generic },\n });\n oDataParams.filter.push({ isActive: true });\n\n const existedFilter = {\n teamMembers: {\n all: {},\n },\n };\n\n const projectOrVersionId = this.versionCardService.isWorkProjectVersion()\n ? this.parentEntityId\n : this.versionCardService.projectVersion.id;\n const projectOrVersionPropertyName =\n this.versionCardService.isWorkProjectVersion()\n ? 'projectId'\n : 'versionId';\n\n existedFilter.teamMembers.all[projectOrVersionPropertyName] = {\n ne: { type: 'guid', value: projectOrVersionId },\n };\n\n oDataParams.filter.push(existedFilter);\n\n if (this.selectedEntities?.length) {\n oDataParams.filter.push([\n `not (id in (${this.selectedEntities.map((r) => r.id).join(',')}))`,\n ]);\n }\n\n const resourceTypeConditions = [];\n this.filterResourceTypes.forEach((type) => {\n if (\n this.filterService.values.resourceTypes &&\n this.filterService.values.resourceTypes[type]\n ) {\n resourceTypeConditions.push({\n resourceType: _.upperFirst(type),\n });\n }\n });\n oDataParams.filter.push({ or: resourceTypeConditions });\n\n if (this.filterService.values.text) {\n oDataParams.filter.push({\n 'tolower(name)': {\n contains: this.filterService.values.text.toLowerCase(),\n },\n });\n }\n\n this.resourcesForTeamFilterNames.forEach((name) => {\n if (!this.filterService.values[name]?.id) return;\n oDataParams.filter.push({\n [`${name}Id`]: {\n type: 'guid',\n value: this.filterService.values[name]?.id,\n },\n });\n });\n\n this.dataService\n .collection('Resources')\n .query(oDataParams)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (resources: Resource[]) => {\n this.formArray.clear();\n this.availableEntities = resources.filter(\n (resource) =>\n !this.selectedEntities.some((r) => r.id === resource.id),\n );\n\n this.availableEntities.forEach((resource) => {\n const formGroup = this.getEntityFormGroup(resource);\n this.formArray.push(formGroup);\n });\n\n this.isLoading.set(false);\n this.loadedPartly.set(\n this.availableEntities.length === this.loadingLimit,\n );\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading.set(false);\n },\n });\n }\n\n /**\n * Creates a form group for a given resource.\n *\n * @param resource - The resource for which the form group is created.\n * @returns A form group containing the resource details.\n */\n protected override getEntityFormGroup(entity: NamedEntity): UntypedFormGroup {\n const resource = entity as Resource;\n return this.fb.group({\n id: resource.id,\n resource,\n role: resource.role?.name ?? null,\n level: resource.level?.name ?? null,\n department: resource.department?.name ?? null,\n resourcePool: resource.resourcePool?.name ?? null,\n currentRate: resource.currentRate.valueBC,\n competence: resource.competence?.name ?? null,\n grade: resource.grade?.name ?? null,\n legalEntity: resource.legalEntity?.name ?? null,\n location: resource.location?.name ?? null,\n isActive: resource.isActive,\n });\n }\n}\n","import { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\nexport const filterResourceTypes = [\n ResourceType.user.toLowerCase(),\n ResourceType.department.toLowerCase(),\n];\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-assessment-cell',\n templateUrl: './assessment-cell.component.html',\n styleUrls: ['./assessment-cell.component.scss'],\n standalone: false,\n})\nexport class AssessmentCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n constructor(public service: GridService) {}\n}\n","
    \n 0\"\n title=\"{{ 'projects.projects.card.team.columns.assessmentExist' | translate }}\"\n >\n \n
    \n \n \n \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { forkJoin } from 'rxjs';\nimport { uniq } from 'lodash';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\n\n@Component({\n selector: 'wp-generic-assignment-modal',\n templateUrl: './generic-assignment-modal.component.html',\n standalone: false,\n})\nexport class GenericAssignmentModalComponent implements OnInit {\n @Input() memberId: string;\n @Input() projectId: string;\n\n currentResourceIds: string[];\n\n public member: any;\n public role: NamedEntity;\n public isSaving: boolean;\n\n public resourceFilter: any = {\n filter: [],\n };\n\n public loading: boolean;\n\n public form = this.fb.group({\n resource: [null, Validators.required],\n hasRole: true,\n });\n\n rolesReducingAttention: string;\n hasRolesReducing: boolean;\n\n private getTeamMembersCollection = () =>\n this.data.collection('ProjectTeamMembers');\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n this.getTeamMembersCollection()\n .entity(this.member.id)\n .action('AssignUser')\n .execute({\n resourceId: this.form.value.resource.id,\n isVersion: !this.versionCardService.isWorkProjectVersion(),\n })\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n this.notification.successLocal(\n 'projects.projects.card.team.assignUser.messages.assigned',\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n private updateResourceFilter() {\n this.resourceFilter = { filter: [] };\n\n if (this.form.controls.hasRole.value && this.role) {\n this.resourceFilter.filter.push({\n or: [\n {\n additionalUserRoles: {\n any: {\n roleId: { type: 'guid', value: this.role.id },\n },\n },\n },\n {\n roleId: { type: 'guid', value: this.role.id },\n },\n ],\n });\n }\n\n if (this.currentResourceIds.length > 0) {\n const inString = this.currentResourceIds.join(',');\n this.resourceFilter.filter.push([`not (id in (${inString}))`]);\n }\n }\n\n ngOnInit() {\n this.loading = true;\n\n this.form.controls.hasRole.valueChanges.subscribe(() => {\n this.updateResourceFilter();\n });\n\n const teamMembersQuery = {\n select: ['description', 'id'],\n expand: {\n resource: { select: ['id', 'name'] },\n role: { select: ['id', 'name'] },\n },\n };\n const resourceIdsQuery = {\n filter: { resourceId: { ne: null } },\n select: 'resourceId',\n };\n\n forkJoin({\n member: this.getTeamMembersCollection()\n .entity(this.memberId)\n .get(teamMembersQuery),\n resourceIds: this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .collection('ProjectTeamMembers')\n .query(resourceIdsQuery),\n }).subscribe({\n next: (result) => {\n this.member = result.member;\n this.role = this.member?.role;\n this.currentResourceIds = uniq(\n result.resourceIds.map((r) => r.resourceId),\n );\n this.updateResourceFilter();\n this.loading = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading = false;\n },\n });\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'projects.projects.card.team.assignUser.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n

    {{ member.resource?.name }}

    \n
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ 'projects.projects.card.team.assignUser.actions.assign' | translate }}\n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectCardService } from '../../core/project-card.service';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport {\n BehaviorSubject,\n forkJoin,\n merge,\n Observable,\n of,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {\n debounceTime,\n filter,\n map,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { ProjectTeamService } from 'src/app/projects/card/project-team/project-team.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport { DateTime } from 'luxon';\nimport {\n Analytics,\n analytics,\n} from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport _ from 'lodash';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport {\n BoxControlComponent,\n CascadeDependency,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { GenericSettings } from 'src/app/projects/card/project-team/generic-modal/model/generic-setting.model';\nimport { CodedEntity } from 'src/app/shared/models/entities/coded-entity.model';\n\n@Component({\n selector: 'wp-generic-modal',\n templateUrl: './generic-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GenericModalComponent implements OnInit, OnDestroy {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n @Input() editAllowed = true;\n\n @Input() resourceId: string;\n @Input() teamMemberId: string;\n @Input() existingNames: string[];\n\n public isLoading$ = new BehaviorSubject(false);\n private _hasResourceRequest = false;\n public get hasResourceRequest() {\n return this._hasResourceRequest;\n }\n public set hasResourceRequest(val) {\n this._hasResourceRequest = val;\n if (val) {\n this.form.disable();\n this.form.controls.name.enable();\n }\n }\n public mode: 'create' | 'edit' | 'createFromUser';\n\n public strictFillOut = new UntypedFormControl(false);\n\n /** Observables, передающиеся в контролы, по которым при открытии контрола загружаются значения. */\n public levels$: Observable;\n public grades$: Observable;\n\n public isSaving: boolean;\n\n public form = this.fb.group({\n role: null,\n level: null,\n name: [null, [Validators.required, Validators.maxLength(100)]],\n resourcePool: null,\n grade: null,\n location: null,\n costRate: 0,\n staffCount: null,\n primaryTariff: null,\n competence: null,\n legalEntity: null,\n employmentType: null,\n });\n public matrixAnalytics: Analytics[] = [];\n public get otherAnalytics(): Analytics[] {\n return analytics.filter(\n (analytic) => !this.matrixAnalytics.includes(analytic),\n );\n }\n\n private settings: GenericSettings;\n private stopAutoName$ = new Subject();\n private destroyRef = inject(DestroyRef);\n private stopCascadeControls$ = new Subject();\n private autoNameSubscription: Subscription[] = [];\n private rateMatrixId: string | null = null;\n\n constructor(\n @Inject('entityId') public projectId: string,\n public projectCardService: ProjectCardService,\n public projectTeamService: ProjectTeamService,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef,\n private localConfigService: LocalConfigService,\n ) {}\n\n public ngOnInit(): void {\n this.settings = this.localConfigService.getConfig(GenericSettings);\n this.strictFillOut.setValue(\n this.localConfigService.getConfig(GenericSettings).strictFillOut,\n );\n\n this.isLoading$.next(true);\n this.initModal();\n\n this.form.controls.name.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n if (!val) {\n this.subToAutoName();\n } else {\n this.stopAutoName$.next();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.stopAutoName$.next();\n this.stopCascadeControls$.next();\n }\n\n /**\n * Handles the 'OK' action of the modal which involves form submission.\n * Depending on the context (add more or just save), it either creates a new generic resource\n * or updates an existing one.\n *\n * @param {boolean} addMore - Determines whether to add more items after saving or just save and close.\n */\n public ok(addMore: boolean): void {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const formValues = this.form.getRawValue();\n const genericResource = {\n roleId: formValues.role?.id ?? null,\n levelId: formValues.level?.id ?? null,\n resourcePoolId: formValues.resourcePool?.id ?? null,\n name: formValues.name,\n gradeId: formValues.grade?.id ?? null,\n locationId: formValues.location?.id ?? null,\n competenceId: formValues.competence?.id ?? null,\n legalEntityId: formValues.legalEntity?.id ?? null,\n employmentTypeId: formValues.employmentType?.id ?? null,\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n genericResource,\n this.projectId,\n );\n\n if (this.mode === 'edit') {\n const teamMemberPatchRequest = this.data\n .collection('ProjectTeamMembers')\n .entity(this.teamMemberId)\n .patch({\n roleId: formValues.role?.id ?? null,\n primaryTariffId: formValues.primaryTariff?.id ?? null,\n });\n\n const genericPatchRequest = this.data\n .collection('Generics')\n .entity(this.resourceId)\n .patch(genericResource);\n\n forkJoin({\n teamMemberPatchRequest,\n genericPatchRequest,\n }).subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal('shared.messages.saved');\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n } else {\n this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.projectId,\n )\n .action('CreateGeneric')\n .execute({\n generic: genericResource,\n primaryTariffId: formValues.primaryTariff?.id,\n })\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'projects.projects.card.team.messages.membersWereAdded',\n );\n\n if (addMore) {\n this.projectCardService.reloadTab();\n this.existingNames.push(this.form.controls.name.value);\n this.cdr.detectChanges();\n } else {\n this.activeModal.close();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n }\n\n /** Dismisses the active modal without saving any changes. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Retrieves strict values for a given analytic.\n *\n * This function constructs a query to fetch strict values for the specified analytic.\n * It filters the results based on the selected analytics and groups them by the analytic's id and name.\n *\n * @param analytic The analytic for which to retrieve strict values.\n * @returns An observable that emits an array of CodedEntity objects representing the strict values for the given analytic.\n */\n public getStrictValues(analytic: Analytics): Observable {\n const query: any = {\n transform: {\n filter: [\n { rateMatrixId: { type: 'guid', value: this.rateMatrixId } },\n {\n [analytic]: {\n id: { ne: { type: 'guid', value: null } },\n },\n },\n ],\n groupBy: {\n properties: [\n `${analytic}/id`,\n `${analytic}/name`,\n `${analytic}/code`,\n ],\n },\n },\n };\n\n const analyticIndex = this.matrixAnalytics.findIndex((a) => a === analytic);\n const selectedAnalytics = this.matrixAnalytics.filter(\n (a, index) => index < analyticIndex,\n );\n\n // Iterate over the selected analytics and add their values to the query filter\n selectedAnalytics.forEach((a) => {\n const value = this.form.controls[a].value?.id;\n if (!value) return;\n query.transform.filter.push({\n [a]: {\n id: { type: 'guid', value },\n },\n });\n });\n\n return this.data\n .collection('RateMatrixLines')\n .query(query)\n .pipe(\n map((res: Record[]) =>\n res.map((val) => ({\n id: val[analytic]?.id,\n name: val[analytic]?.name ?? '',\n code: val[analytic]?.code ?? '',\n })),\n ),\n );\n }\n\n /**\n * Returns the collection name for the given analytic.\n *\n * @param analytic The analytic for which to retrieve the collection name.\n * @returns The collection name for the given analytic.\n */\n public getMatrixAnalyticCollection(analytic: string): string {\n return analytic === 'legalEntity'\n ? 'LegalEntities'\n : _.upperFirst(analytic) + 's';\n }\n\n /**\n * Initializes the modal with default values or existing project team member data.\n * If not in editing mode, it loads default values for the form controls.\n * If in editing mode, it loads the existing project team member data into the form controls.\n */\n private initModal(): void {\n if (this.mode === 'create') {\n this.getActualMatrixStructure()\n .pipe(switchMap(() => this.loadDefaults()))\n .subscribe({\n next: (response) => {\n if (\n (!this.strictFillOut.value ||\n !this.matrixAnalytics.includes('resourcePool')) &&\n response.pools.length === 1\n ) {\n this.form.controls.resourcePool.patchValue(response.pools[0]);\n }\n if (\n (!this.strictFillOut.value ||\n !this.matrixAnalytics.includes('level')) &&\n response.levels.length === 1\n ) {\n this.form.controls.level.patchValue(response.levels[0]);\n }\n\n if (this.matrixAnalytics.length) {\n this.initStrictFillOut();\n }\n\n this.initUpdateGenericCalculatedInfoSubscriptions();\n\n this.isLoading$.next(false);\n\n this.setCascadeControls();\n\n this.subToAutoName();\n },\n error: () => {\n this.isLoading$.next(false);\n },\n });\n } else {\n this.getActualMatrixStructure()\n .pipe(\n switchMap(() => this.getProjectTeamMember()),\n switchMap((teamMember) => {\n this.form.patchValue(teamMember.resource);\n if (this.mode === 'createFromUser') {\n this.form.controls.name.patchValue(null);\n }\n this.form.controls.primaryTariff.patchValue(\n teamMember.primaryTariff,\n );\n if (this.matrixAnalytics.length) {\n this.initStrictFillOut();\n }\n if (!this.editAllowed) {\n this.form.disable();\n }\n\n return this.generateName(this.mode === 'edit');\n }),\n )\n .subscribe({\n next: (name) => {\n if (name && this.form.controls.name.value.includes(name)) {\n this.subToAutoName();\n }\n this.initUpdateGenericCalculatedInfoSubscriptions();\n this.isLoading$.next(false);\n this.setCascadeControls();\n },\n error: () => {\n this.isLoading$.next(false);\n },\n });\n }\n }\n\n /** Initializes subscriptions to form control value changes to update generic calculated information. */\n private initUpdateGenericCalculatedInfoSubscriptions() {\n this.updateGenericCalculatedInfo();\n merge(\n this.form.controls.location.valueChanges,\n this.form.controls.grade.valueChanges,\n this.form.controls.level.valueChanges,\n this.form.controls.role.valueChanges,\n this.form.controls.resourcePool.valueChanges,\n this.form.controls.competence.valueChanges,\n this.form.controls.legalEntity.valueChanges,\n this.form.controls.employmentType.valueChanges,\n )\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateGenericCalculatedInfo();\n });\n }\n\n /** Updates the generic calculated information based on the form control values. This includes staff count and cost rate. */\n private updateGenericCalculatedInfo(): void {\n const location = this.form.controls.location.getRawValue();\n const level = this.form.controls.level.getRawValue();\n const grade = this.form.controls.grade.getRawValue();\n const role = this.form.controls.role.getRawValue();\n const resourcePool = this.form.controls.resourcePool.getRawValue();\n const competence = this.form.controls.competence.getRawValue();\n const legalEntity = this.form.controls.legalEntity.getRawValue();\n const employmentType = this.form.controls.employmentType.getRawValue();\n\n const params: Record = {\n filter: '@filter',\n };\n const filterObject = {\n roleId: role?.id || null,\n levelId: level?.id || null,\n gradeId: grade?.id || null,\n locationId: location?.id || null,\n resourcePoolId: resourcePool?.id || null,\n competenceId: competence?.id || null,\n legalEntityId: legalEntity?.id || null,\n employmentTypeId: employmentType?.id || null,\n };\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n };\n\n this.data\n .collection('ProjectTeamMembers')\n .function('GetGenericCalculatedInfo')\n .get<{ staffCount: number | null; costRate: number | null }>(\n params,\n null,\n urlParams,\n )\n .subscribe((val) => {\n const staffCount = val.staffCount;\n const staffCountTitle = StringHelper.declOfNum(staffCount, [\n this.translate.instant('shared.employeeDeclensions.v1'),\n this.translate.instant('shared.employeeDeclensions.v2'),\n this.translate.instant('shared.employeeDeclensions.v3'),\n ]);\n const parsedStaffCount = staffCount + ' ' + staffCountTitle;\n\n this.form.controls.staffCount.patchValue(parsedStaffCount);\n this.form.controls.costRate.patchValue(val.costRate);\n });\n }\n\n /**\n * Loads the default resource pools and levels.\n *\n * @returns An observable that emits an object containing arrays of NamedEntity objects for pools and levels.\n */\n private loadDefaults(): Observable<{\n pools: NamedEntity[];\n levels: NamedEntity[];\n }> {\n return forkJoin({\n pools: this.data\n .collection('ResourcePools')\n .query({ filter: { isDefault: true, isActive: true } }),\n levels: this.data\n .collection('Levels')\n .query({ filter: { isActive: true } }),\n });\n }\n\n /**\n * Retrieves the actual matrix structure for rate matrices.\n *\n * @returns An observable that emits a partial array of RateMatrix objects representing the actual matrix structure.\n */\n private getActualMatrixStructure(): Observable> {\n const today = DateTime.now().toISODate();\n const query = {\n filter: {\n typeId: { type: 'guid', value: RateMatrix.costRateTypeId },\n and: [\n {\n or: [\n { effectiveDate: { type: 'raw', value: 'null' } },\n { effectiveDate: { le: { type: 'raw', value: today } } },\n ],\n },\n {\n or: [\n { expiryDate: { ge: { type: 'raw', value: today } } },\n { expiryDate: { type: 'raw', value: 'null' } },\n ],\n },\n ],\n stateId: { type: 'guid', value: RateMatrix.activeStateId },\n },\n orderBy: 'effectiveDate',\n };\n\n return this.data\n .collection('RateMatrices')\n .query(query)\n .pipe(\n tap((matrices: RateMatrix[]) => {\n if (!matrices.length) return;\n // In the array may be just 1 current matrix.\n this.rateMatrixId = matrices[0].id;\n this.matrixAnalytics = matrices[0].rateMatrixStructure.map(\n (item) => (item = _.lowerFirst(item) as Analytics),\n );\n }),\n );\n }\n\n /**\n * Retrieves the project team member data along with related entities.\n *\n * @returns An observable that emits the project team member data.\n */\n private getProjectTeamMember(): Observable {\n const query = {\n expand: {\n resource: {\n select: ['*'],\n expand: {\n grade: {\n select: ['id', 'name', 'levelId', 'code'],\n },\n competence: {\n select: ['id', 'name', 'code'],\n },\n legalEntity: {\n select: ['id', 'name', 'code'],\n },\n level: {\n select: ['id', 'name', 'code'],\n },\n resourcePool: {\n select: ['id', 'name', 'code'],\n },\n location: {\n select: ['id', 'name', 'code'],\n },\n role: {\n select: ['id', 'name', 'code'],\n filter: [{ isActive: true }],\n },\n employmentType: {\n select: ['id', 'name'],\n filter: [{ isActive: true }],\n },\n },\n },\n primaryTariff: {\n select: ['id', 'name'],\n },\n },\n };\n\n return this.data\n .collection('ProjectTeamMembers')\n .entity(this.teamMemberId)\n .get(query);\n }\n\n /** Sets up cascading dependencies between form controls. */\n private setCascadeControls(): void {\n this.cdr.detectChanges();\n this.stopCascadeControls$.next();\n const dependencies: CascadeDependency[] = [];\n if (\n !this.strictFillOut.value ||\n this.matrixAnalytics.every(\n (analytic) => analytic !== 'role' && analytic !== 'competence',\n )\n ) {\n dependencies.push([\n {\n controlName: 'role',\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ]);\n }\n\n if (\n !this.strictFillOut.value ||\n this.matrixAnalytics.every(\n (analytic) => analytic !== 'level' && analytic !== 'grade',\n )\n ) {\n dependencies.push([\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ]);\n }\n FormHelper.cascadeDependency(\n this.form,\n this.cascadeControls,\n dependencies,\n takeUntil(this.stopCascadeControls$),\n );\n }\n\n /**\n * Generates name depending on filled matrix analytics.\n *\n * @param initEditing shows whether first init of modal editing.\n * @returns String observable for switchMap.\n */\n private generateName(initEditing?: boolean): Observable {\n const filledControls = [];\n\n this.matrixAnalytics.forEach((analytic) => {\n if (this.form.controls[analytic].value) {\n filledControls.push(this.form.controls[analytic]);\n }\n });\n\n let generatedName = '';\n\n filledControls.forEach((a, index) => {\n const analytic = filledControls[index]?.value;\n if (!index) {\n generatedName = analytic?.name;\n return;\n }\n generatedName += ` ${analytic.code?.length ? analytic?.code : analytic?.name}`;\n });\n\n if (initEditing) {\n return of(generatedName);\n }\n\n this.form.controls.name.patchValue(this.getUniqueName(generatedName), {\n emitEvent: false,\n });\n\n const uniqueName = this.getUniqueName(generatedName);\n\n return of(uniqueName);\n }\n\n /** Subscribes to controls of matrix analytics and calls generateName function. */\n private subToAutoName(): void {\n this.autoNameSubscription.forEach((subscription) =>\n subscription.unsubscribe(),\n );\n this.matrixAnalytics.forEach((a, index) => {\n this.autoNameSubscription.push(\n this.form.controls[this.matrixAnalytics[index]].valueChanges\n .pipe(\n takeUntil(this.stopAutoName$),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.generateName();\n }),\n );\n });\n }\n\n /**\n * Function returns newGeneratedName if generated name is not unique.\n *\n * @param generatedName name generated by function generateName.\n * @returns newGeneratedName or generatedName.\n */\n private getUniqueName(generatedName: string): string {\n let nameExists = !!this.existingNames.find(\n (name) => name === generatedName,\n );\n\n let newGeneratedName;\n let i = 2;\n while (nameExists) {\n newGeneratedName = `${generatedName} (${i})`;\n nameExists = !!this.existingNames.find(\n (name) => name === newGeneratedName,\n );\n i++;\n }\n\n return newGeneratedName ?? generatedName;\n }\n\n /** Initializes the strict fill-out functionality. */\n private initStrictFillOut(): void {\n this.strictFillOut.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n this.settings.strictFillOut = val;\n this.localConfigService.setConfig(GenericSettings, this.settings);\n if (val) {\n this.initStrictFillOutControls();\n } else {\n this.matrixAnalytics.forEach((analytic) =>\n this.form.controls[analytic].enable(),\n );\n }\n this.setCascadeControls();\n });\n\n if (this.strictFillOut.value) {\n this.initStrictFillOutControls(this.mode === 'create');\n }\n }\n\n /**\n * Initializes the strict fill-out controls.\n *\n * @param {boolean} resetControls - Determines whether to reset the controls to their initial state. Defaults to true.\n */\n private initStrictFillOutControls(resetControls = true): void {\n if (!this.matrixAnalytics.length) return;\n\n this.matrixAnalytics.forEach((analytic, index) => {\n // Subscribe to value changes of the current analytic control\n this.form.controls[analytic].valueChanges\n .pipe(\n filter(() => this.strictFillOut.value),\n // Unsubscribe when strictFillOut is set to false\n takeUntil(this.strictFillOut.valueChanges.pipe(filter((x) => !x))),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n // Reset the values of subsequent analytic controls\n for (let i = index + 1; i < this.matrixAnalytics.length; i++) {\n this.form.controls[this.matrixAnalytics[i]].setValue(null, {\n emitEvent: false,\n });\n }\n\n // If this is the last analytic, return early\n if (index === this.matrixAnalytics.length - 1) return;\n\n // Enable or disable the next analytic control based on the current value\n if (value) {\n this.form.controls[this.matrixAnalytics[index + 1]].enable();\n } else {\n this.form.controls[this.matrixAnalytics[index + 1]].disable();\n }\n });\n\n if (resetControls) {\n // Event emitting is important for reset name by auto name logic and for reset cascade controls filters.\n this.form.controls[this.matrixAnalytics[index]].setValue(null);\n }\n\n if (\n index > 0 &&\n (resetControls ||\n !this.form.controls[this.matrixAnalytics[index - 1]].value ||\n this.form.controls[this.matrixAnalytics[index - 1]].disabled)\n ) {\n this.form.controls[this.matrixAnalytics[index]].disable({\n emitEvent: false,\n });\n }\n });\n }\n}\n","\n
    \n
    \n @if (mode === 'create' || mode === 'createFromUser') {\n

    \n {{ 'projects.projects.card.team.genericModal.header' | translate }}\n

    \n }\n @if (mode === 'edit') {\n

    {{ form.value.name }}

    \n }\n\n \n
    \n
    \n @if (hasResourceRequest) {\n

    \n {{ 'projects.projects.card.team.genericModal.nonEditable' | translate }}\n

    \n }\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n @if (projectCardService.isProjectBillable) {\n
    \n \n \n
    \n }\n
    \n
    \n
    \n
    \n @if (matrixAnalytics?.length) {\n \n @for (analytic of matrixAnalytics; track analytic) {\n @if (strictFillOut.value) {\n \n } @else {\n \n }\n }\n } @else {\n \n }\n
    \n @if (matrixAnalytics?.length) {\n
    \n \n
    \n }\n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n @if (editAllowed) {\n @if (matrixAnalytics.length) {\n
    \n \n \n
    \n }\n\n
    \n @if (mode === 'create' || mode === 'createFromUser') {\n \n {{ 'shared.actions.create' | translate }}\n \n }\n\n @if (mode === 'edit') {\n \n {{ 'shared.actions.save' | translate }}\n \n }\n\n @if (mode === 'create' || mode === 'createFromUser') {\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n }\n
    \n }\n\n \n
    \n\n \n @if (analytic === 'resourcePool') {\n \n } @else {\n
    \n \n \n
    \n }\n
    \n\n \n
    \n \n \n\n \n
    \n \n \n\n \n @if (otherAnalytics?.length) {\n \n\n @for (analytic of otherAnalytics; track analytic) {\n \n }\n }\n \n\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class GenericSettings implements BaseSettings {\n public readonly name = 'GenericSettings';\n public version: number;\n public strictFillOut: boolean;\n\n /**\n * Returns the default settings for GenericSettings.\n *\n * @returns {GenericSettings} The default settings object.\n */\n public getDefault(): GenericSettings {\n return {\n version: 1,\n strictFillOut: false,\n } as GenericSettings;\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\n\n@Component({\n selector: 'tmt-member-modal-cost-toolbar',\n templateUrl: './member-modal-cost-toolbar.component.html',\n standalone: false,\n})\nexport class MemberModalCostToolbarComponent extends AbstractToolbar {\n constructor(\n public service: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(service, cdr);\n }\n}\n","
    \n \n \n {{ 'shared.actions.addLine' | translate }}\n \n
    \n","import {\n Component,\n DestroyRef,\n inject,\n Inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { forkJoin, Observable } from 'rxjs';\nimport { MemberModalCostToolbarComponent } from './member-modal-cost-toolbar/member-modal-cost-toolbar.component';\nimport { DateTime } from 'luxon';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectTeamMemberCostValue } from 'src/app/shared/models/entities/settings/project-team-member-cost-value.model';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { currencyValueRequiredValidator } from 'src/app/shared/validators/currency-value-required';\nimport { ProjectTeamService } from 'src/app/projects/card/project-team/project-team.service';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridCurrencyControlColumn,\n GridDateControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-member-modal',\n templateUrl: './member-modal.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class MemberModalComponent implements OnInit {\n @Input() memberId: string;\n @Input() currencyCode: string;\n @Input() resourceId: string;\n @Input() selectedRoleId: string;\n @Input() existingRoleIds: string[];\n\n public member: ProjectTeamMember;\n public roles$: Observable;\n public isSaving = signal(false);\n public isLoading = signal(false);\n public readonly = signal(false);\n public costReadonly = signal(false);\n public form = this.fb.group({\n name: '',\n isActive: false,\n role: null,\n primaryTariff: null,\n description: ['', [Validators.required, Validators.maxLength(100)]],\n });\n\n public costForm = this.fb.group({\n initialValue: this.fb.group({\n effectiveDate: [null],\n value: [null],\n id: [null],\n currencyId: [null],\n }),\n values: this.fb.array([]),\n });\n\n public get costValuesForm() {\n return this.costForm.controls.values as UntypedFormArray;\n }\n\n public gridOptions: GridOptions = {\n toolbar: MemberModalCostToolbarComponent,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.costReadonly(),\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.removeCost(index);\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.createCost();\n },\n },\n ],\n view: {\n name: 'user-costs',\n columns: [\n {\n name: 'effectiveDate',\n header: 'settings.users.card.cost.columns.effectiveDate',\n hint: 'settings.users.card.cost.columns.effectiveDate',\n type: GridColumnType.DateControl,\n property: 'effectiveDate',\n width: '150px',\n required: true,\n },\n {\n name: 'value',\n header: 'settings.users.card.cost.columns.cost.header',\n hint: 'settings.users.card.cost.columns.cost.header',\n type: GridColumnType.CurrencyControl,\n controlType: 'currency',\n isCurrencyEditable: true,\n required: true,\n property: 'value',\n width: '100%',\n },\n ],\n },\n };\n\n private getTeamMembersCollection = () =>\n this.data.collection('ProjectTeamMembers');\n\n private costValues: ProjectTeamMemberCostValue[];\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public projectId: string,\n public projectTeamService: ProjectTeamService,\n public projectCardService: ProjectCardService,\n private app: AppService,\n private gridService: GridService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private versionCardService: ProjectVersionCardService,\n private activeModal: NgbActiveModal,\n private currenciesService: CurrenciesService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n this.roles$ = this.projectTeamService.getTeamMemberRolesObservable(\n this.resourceId,\n this.projectId,\n this.selectedRoleId,\n );\n }\n\n /** Save the data and close the modal window */\n public ok(): void {\n this.form.markAllAsTouched();\n this.costForm.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.form.invalid || this.costForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.isSaving.set(true);\n\n const costValueFormData = this.costForm.value;\n\n const costValues: any = [];\n\n this.currenciesService.currencies$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((currencies) => {\n if (costValueFormData.initialValue.value.value > 0) {\n const currencyId = currencies.find(\n (currency) =>\n currency.alpha3Code ===\n costValueFormData.initialValue.value.currencyCode,\n ).id;\n\n costValues.push({\n effectiveDate: null,\n id: costValueFormData.initialValue.id,\n value: costValueFormData.initialValue.value.value,\n teamMemberId: this.memberId,\n currencyId,\n });\n }\n\n (costValueFormData.values as ProjectTeamMemberCostValue[]).forEach(\n (rc) => {\n const currencyId = currencies.find(\n (currency) => currency.alpha3Code === rc.value.currencyCode,\n ).id;\n costValues.push({\n effectiveDate: rc.effectiveDate,\n id: rc.id,\n value: rc.value.value,\n teamMemberId: this.memberId,\n currencyId,\n });\n },\n );\n });\n\n const member: any = {\n id: this.member.id,\n description: this.form.value.description,\n resourceId: this.member.resource?.id,\n primaryTariffId: this.form.value.primaryTariff?.id,\n isActive: this.form.value.isActive,\n roleId: this.form.value.role?.id,\n };\n\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n member,\n this.member.projectId,\n );\n\n const observables: any = {};\n\n if (!this.readonly()) {\n observables.member = this.getTeamMembersCollection()\n .entity(this.memberId)\n .update(member);\n }\n\n if (!this.costReadonly()) {\n observables.costValues = this.getTeamMembersCollection()\n .entity(this.memberId)\n .action('WP.UpdateCostValues')\n .execute({ costValues });\n }\n\n forkJoin(observables)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.activeModal.close();\n this.isSaving.set(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /** Close the modal window */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n private load(): void {\n this.isLoading.set(true);\n\n const memberQuery = {\n expand: {\n resource: {\n select: ['*'],\n },\n primaryTariff: {\n select: ['id', 'name'],\n },\n role: { select: ['id', 'name'] },\n },\n };\n\n forkJoin({\n member: this.getTeamMembersCollection()\n .entity(this.memberId)\n .get(memberQuery),\n costValues: this.getTeamMembersCollection()\n .entity(this.memberId)\n .collection('CostValues')\n .query({\n orderBy: 'effectiveDate desc',\n }),\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n this.member = response.member;\n this.costValues = response.costValues;\n\n this.setReadonly();\n this.loadMainForm();\n this.loadCostForm();\n\n this.isLoading.set(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading.set(false);\n },\n });\n }\n\n private setReadonly(): void {\n const projectVersionReadonly =\n !this.versionCardService.projectVersion.editAllowed;\n this.readonly.set(!this.member.editAllowed || projectVersionReadonly);\n this.costReadonly.set(\n !this.member.teamCostEditAllowed || projectVersionReadonly,\n );\n }\n\n private loadMainForm(): void {\n this.member.name = this.member.resource?.name ?? this.member.description;\n\n if (!this.member.resource) {\n this.form.controls.description.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.member.description = this.member.name =\n this.form.controls.description.value;\n });\n } else {\n this.form.controls.description.disable();\n }\n\n if (this.readonly()) {\n this.form.disable();\n }\n\n if (this.member.resource?.resourceType !== ResourceType.user) {\n this.form.controls.role.disable();\n }\n\n this.form.patchValue(this.member);\n }\n\n /** Setting the cost tab. */\n private loadCostForm(): void {\n this.currenciesService.currencies$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((currencies) => {\n // Remove the initial value from the list.\n let initialValue = this.costValues.find(\n (costValue: ProjectTeamMemberCostValue) => !costValue.effectiveDate,\n );\n if (initialValue) {\n const index = this.costValues.indexOf(initialValue);\n this.costValues.splice(index, 1);\n } else {\n initialValue = {\n effectiveDate: null,\n id: Guid.generate(),\n value: null,\n teamMember: null,\n currencyId: currencies.find(\n (c) =>\n c.alpha3Code ===\n this.app.session.configuration.baseCurrencyCode,\n ).id,\n };\n }\n\n const initCostForm = this.costForm.get('initialValue') as FormGroup;\n\n initCostForm.patchValue(initialValue);\n\n const initialValueFilteredCurrency = currencies.find(\n (currency) => currency.id === initialValue.currencyId,\n );\n\n initCostForm.controls.value.setValue(\n {\n value: initCostForm.value.value,\n currencyCode: initialValueFilteredCurrency.alpha3Code,\n },\n { emitEvent: false },\n );\n\n this.costValues.forEach((userCost: ProjectTeamMemberCostValue) => {\n const filteredCurrency = currencies.find(\n (currency) => currency.id === userCost.currencyId,\n );\n const costForm = this.getGridFormGroup(userCost);\n\n costForm.controls.value.setValue(\n {\n value: costForm.value.value,\n currencyCode: filteredCurrency.alpha3Code,\n },\n { emitEvent: false },\n );\n this.costValuesForm.push(costForm);\n });\n\n if (this.costReadonly()) {\n this.costForm.disable();\n }\n\n this.costForm.markAsPristine();\n this.costForm.markAsUntouched();\n });\n }\n\n private getGridFormGroup(row: any): UntypedFormGroup {\n return this.fb.group({\n effectiveDate: [row.effectiveDate, Validators.required],\n value: [row.value, currencyValueRequiredValidator()],\n id: [row.id ? row.id : Guid.generate()],\n currencyId: row.currencyId,\n });\n }\n\n private createCost(): void {\n const group = this.getGridFormGroup({});\n this.costValuesForm.insert(0, group);\n\n group.controls.effectiveDate.setValue(DateTime.now().toISODate());\n group.controls.value.setValue({\n value: 0,\n currencyCode: this.currencyCode,\n });\n\n this.costForm.markAsDirty();\n this.gridService.selectGroup(group);\n }\n\n private removeCost(index: number): void {\n this.costValuesForm.removeAt(index);\n this.costForm.markAsDirty();\n }\n}\n","\n@if (!isLoading()) {\n
    \n
    \n

    \n {{ member.resource.name }}\n

    \n \n
    \n
    \n
      \n
    • \n {{ 'projects.projects.card.team.modal.tabs.main' | translate }}\n \n
      \n
      \n \n @if (member.resource) {\n

      {{ member.resource.name }}

      \n }\n @if (!member.resource) {\n \n }\n
      \n\n \n \n
      \n\n @if (\n projectCardService.isProjectBillable && member.resource?.resourceType !== 'Department'\n ) {\n
      \n \n \n
      \n }\n\n
      \n \n \n
      \n
      \n
    • \n\n @if (member?.teamCostViewAllowed && member.resource?.resourceType === 'User') {\n
    • \n {{ 'projects.projects.card.team.modal.tabs.cost' | translate }}\n \n
      \n \n \n {{\n 'settings.users.card.cost.props.cost.help' | translate\n }}\n
      \n\n \n
      \n
    • \n }\n
    \n\n
    \n
    \n
    \n @if (!readonly() || !costReadonly()) {\n \n {{ 'shared.actions.save' | translate }}\n \n }\n \n
    \n
    \n}\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n Injector,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Component({\n selector: 'wp-member-resource-cell',\n templateUrl: './member-resource-cell.component.html',\n styleUrls: ['./member-resource-cell.component.scss'],\n standalone: false,\n})\nexport class MemberResourceCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public readonly resourceType = ResourceType;\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {\n service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n public getName() {\n const value = this.formGroup.value;\n return value.resource?.name ?? value.description;\n }\n\n public openUserInfo() {\n const userId = this.formGroup.value.resource.id;\n const target = document.getElementById(\n `user-${this.formGroup.value.resource.id}`,\n );\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n}\n","\n @if (formGroup.value.resource?.resourceType === resourceType.user) {\n \n }\n\n @if (formGroup.value.resource?.resourceType === resourceType.department) {\n \n }\n\n @if (formGroup.value.resource?.resourceType === resourceType.generic) {\n \n }\n\n
    \n {{ getName() }}\n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-project-tariffs-cell-readonly',\n template: `\n {{ formGroup.getRawValue()[this.column.name]?.name ?? '' }}\n
    `,\n standalone: false,\n})\nexport class ProjectTariffCellReadonlyComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { ProjectTeamService } from 'src/app/projects/card/project-team/project-team.service';\nimport { GridComponentColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-project-tariffs-cell',\n template: ``,\n standalone: false,\n})\nexport class ProjectTariffCellComponent implements GridComponentCell {\n @Input() column: GridComponentColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public query: Record;\n public readonly: boolean;\n\n constructor(\n @Inject('entityId') public projectId: string,\n private projectTeamService: ProjectTeamService,\n ) {}\n\n public ngOnInit(): void {\n this.readonly =\n this.formGroup.getRawValue().resource?.resourceType === 'Department';\n this.query = this.projectTeamService.getProjectTariffQuery(\n this.projectId,\n this.formGroup.getRawValue().id,\n );\n }\n}\n","import {\n Component,\n DestroyRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { PROJECT_TEAM_MEMBER_LIST } from 'src/app/shared/lists/project-team-member.list';\nimport { TeamToolbarComponent } from './team-toolbar/team-toolbar.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Subscription } from 'rxjs';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MemberModalComponent } from './member-modal/member-modal.component';\nimport { UserAssessmentModalComponent } from './user-assessment-modal/user-assessment-modal.component';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectCardService } from '../core/project-card.service';\nimport { GenericModalComponent } from 'src/app/projects/card/project-team/generic-modal/generic-modal.component';\nimport { GenericAssignmentModalComponent } from './generic-assignment-modal/generic-assignment-modal.component';\nimport { ProjectTeamService } from './project-team.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport _ from 'lodash';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AddResourcesModalComponent } from 'src/app/projects/card/project-team/add-resources-modal/add-resources-modal.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'tmt-project-team',\n templateUrl: './project-team.component.html',\n providers: [\n SavingQueueService,\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: PROJECT_TEAM_MEMBER_LIST },\n ListService,\n GridService,\n ProjectTeamService,\n ],\n standalone: false,\n})\nexport class ProjectTeamComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public readonly = false;\n private reloadListener: Subscription;\n\n public gridOptions: GridOptions = {\n resizableColumns: true,\n selectionType: SelectionType.row,\n toolbar: TeamToolbarComponent,\n clientTotals: true,\n commands: [\n {\n name: 'assignUser',\n handlerFn: (group: UntypedFormGroup) => this.assignUser(group.value),\n allowedFn: (row: any) =>\n !this.readonly &&\n row?.resource?.resourceType === ResourceType.generic,\n },\n {\n name: 'delete',\n handlerFn: (memberId: string) => this.delete(memberId),\n allowedFn: (id) => id !== null,\n },\n {\n name: 'edit',\n handlerFn: (formGroup: UntypedFormGroup) => this.edit(formGroup),\n allowedFn: (id) => id !== null,\n },\n { name: 'setUserView', handlerFn: () => this.setUserView() },\n {\n name: 'addResources',\n handlerFn: () => this.addResources(),\n },\n {\n name: 'createGeneric',\n handlerFn: () => this.createGeneric(),\n },\n {\n name: 'estimate',\n handlerFn: (member: any) => this.estimate(member),\n allowedFn: () =>\n !!this.project && this.versionCardService.isWorkProjectVersion(),\n },\n {\n name: 'createGenericFromUser',\n handlerFn: (group: UntypedFormGroup) =>\n this.createGenericFromUser(group.value),\n allowedFn: (row: any) =>\n !this.readonly && row?.resource?.resourceType === ResourceType.user,\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => true,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.edit(formGroup);\n },\n },\n {\n name: 'assignUser',\n label: 'projects.projects.card.team.actions.assignUser',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly &&\n formGroup.value?.resource?.resourceType === ResourceType.generic,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.assignUser(formGroup.value);\n },\n },\n {\n name: 'disable',\n label: 'projects.projects.card.team.actions.disable',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly && formGroup.value.isActive,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.setStatus(formGroup, false),\n },\n {\n name: 'enable',\n label: 'projects.projects.card.team.actions.enable',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly && !formGroup.value.isActive,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.setStatus(formGroup, true),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.delete(formGroup.value.id),\n },\n ],\n view: this.listService.getGridView(),\n };\n\n project: Project;\n\n private loadingSubscription: Subscription;\n private filterSubscription: Subscription;\n\n private destroyRef = inject(DestroyRef);\n\n private getTeamMembersCollection = () =>\n this.data.collection('ProjectTeamMembers');\n\n constructor(\n public projectTeamService: ProjectTeamService,\n private injector: Injector,\n private autosave: SavingQueueService,\n private projectCardService: ProjectCardService,\n private listService: ListService,\n private gridService: GridService,\n private data: DataService,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private message: MessageService,\n private modal: NgbModal,\n private versionCardService: ProjectVersionCardService,\n private versionDataService: ProjectVersionDataService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n this.projectCardService.project$.subscribe((project: Project) => {\n this.project = project;\n\n this.readonly =\n !project.teamEditAllowed ||\n !this.versionCardService.projectVersion.editAllowed;\n\n this.gridService.detectChanges();\n });\n\n this.reloadListener = this.projectCardService.reloadTab$.subscribe(() =>\n this.load(),\n );\n\n this.autosave.error$.subscribe(() => this.load());\n\n this.filterSubscription = this.projectTeamService.settings$.subscribe(() =>\n this.load(),\n );\n\n this.projectCardService.project$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((project) => {\n this.project = project;\n });\n }\n\n public ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n this.filterSubscription.unsubscribe();\n }\n\n /**\n * Opens a modal for user assessment and reloads data upon successful operation.\n *\n * @param member The member object for which the assessment is to be performed.\n */\n public estimate(member: ProjectTeamMember): void {\n const modalRef = this.modal.open(UserAssessmentModalComponent);\n const instance = modalRef.componentInstance;\n instance.readonly = !this.project.userSkillEstimationEditAllowed;\n instance.member = member;\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Edits a team member's details based on the provided form group.\n * Depending on the resource type of the team member, it either opens a `MemberModalComponent`\n * or a `GenericModalComponent` for editing. After the modal operation, it reloads the team data.\n *\n * @param formGroup The form group containing the team member's data.\n */\n public edit(formGroup: UntypedFormGroup): void {\n this.autosave.save().then(() => {\n if (formGroup.value.resource.resourceType !== ResourceType.generic) {\n const modalRef = this.modal.open(MemberModalComponent, {\n injector: this.injector,\n });\n\n const instance = modalRef.componentInstance;\n instance.memberId = formGroup.value.id;\n instance.resourceId = formGroup.value.resource.id;\n instance.selectedRoleId = formGroup.value.role?.id;\n instance.currencyCode = this.project.currency.alpha3Code;\n instance.existingRoleIds = this.projectTeamService.getRestrictedRoleIds(\n formGroup.value,\n );\n modalRef.result.then(\n () => {\n this.load();\n },\n () => null,\n );\n } else {\n const modalRef = this.modal.open(GenericModalComponent, {\n injector: this.injector,\n size: 'lg',\n });\n const instance = modalRef.componentInstance as GenericModalComponent;\n instance.mode = 'edit';\n instance.teamMemberId = formGroup.value.id;\n instance.resourceId = formGroup.value.resource.id;\n instance.editAllowed =\n this.project.teamEditAllowed &&\n this.versionCardService.projectVersion.editAllowed;\n instance.existingNames = this.projectTeamService.formArray.value.map(\n (teamMember) => teamMember.resource.name,\n );\n modalRef.result.then(\n () => {\n this.load();\n },\n () => null,\n );\n }\n });\n }\n\n /** Loads the project team members. */\n private load(): void {\n this.autosave.save().then(() => {\n this.gridService.setLoadingState(true);\n this.projectTeamService.formArray.clear();\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n const query: any = {\n select: ['id', 'costRate', 'isActive'],\n filter: [],\n expand: {\n resource: {\n select: [\n 'id',\n 'name',\n 'resourceType',\n 'description',\n 'levelId',\n 'resourceType',\n ],\n expand: {\n resourcePool: {\n select: ['id', 'name'],\n },\n legalEntity: {\n select: ['id', 'name'],\n },\n },\n },\n role: {\n select: ['id', 'name'],\n },\n primaryTariff: {\n select: ['id', 'name'],\n },\n currentRate: {\n select: ['valuePC'],\n },\n },\n };\n\n if (this.projectTeamService.settings.onlyActive) {\n query.filter.push({ isActive: true });\n }\n\n this.loadingSubscription = this.versionDataService\n .projectCollectionEntity(\n this.versionCardService.projectVersion,\n this.entityId,\n )\n .collection('ProjectTeamMembers')\n .query(query)\n .subscribe({\n next: (data) => {\n data.forEach((row) => {\n (row as any).resourcePool = row.resource.resourcePool;\n row.name = row.resource.name;\n });\n\n const genericRows = data\n .filter(\n (row) => row.resource.resourceType === ResourceType.generic,\n )\n .sort(naturalSort('name'));\n const resourceRows = data\n .filter(\n (row) => row.resource.resourceType !== ResourceType.generic,\n )\n .sort(naturalSort('name'));\n data = [...genericRows, ...resourceRows];\n\n data.forEach((row) => {\n const group = this.fb.group({\n id: row.id,\n resourcePool: [row.resource.resourcePool],\n description: [row.resource.description],\n currentRate: [row.currentRate?.valuePC ?? null],\n role: row.role,\n isActive: [row.isActive],\n resource: [row.resource],\n\n //Translated type for view.\n localType: [\n this.translate.instant(\n 'enums.teamMemberType.' +\n _.upperFirst(row.resource.resourceType),\n ),\n ],\n\n name: [row.resource.name],\n levelId: [row.resource.levelId],\n projectCurrency: [this.project.currency],\n legalEntity: [row.resource.legalEntity],\n primaryTariff: [row.primaryTariff],\n });\n\n group.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const groupValue = group.value;\n\n const member: any = {\n id: groupValue.id,\n description: groupValue.description,\n primaryTariffId: groupValue.primaryTariff?.id,\n resourceId: groupValue.resource?.id,\n isActive: groupValue.isActive,\n roleId: groupValue.role?.id,\n };\n ProjectVersionUtil.setEntityRootPropertyId(\n this.versionCardService.projectVersion,\n member,\n this.entityId,\n );\n\n if (groupValue.resource) {\n this.autosave.addToQueue(\n groupValue.id,\n this.getTeamMembersCollection()\n .entity(groupValue.id)\n .update(member),\n );\n } else {\n delete member.id;\n\n this.autosave.addToQueue(\n groupValue.id,\n this.getTeamMembersCollection()\n .entity(groupValue.id)\n .patch(member),\n );\n }\n });\n\n this.projectTeamService.formArray.push(group);\n });\n\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n });\n }\n\n /** Sets the user view for the grid and reloads the data. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n\n /**\n * Deletes a team member by their ID and reloads the team data.\n *\n * @param memberId The ID of the team member to be deleted.\n */\n private delete(memberId: string): void {\n this.message\n .confirmLocal('projects.projects.card.team.messages.deletionConfirm')\n .then(\n () => {\n this.getTeamMembersCollection()\n .entity(memberId)\n .delete()\n .subscribe({\n next: () => {\n this.load();\n this.notification.successLocal('shared.messages.deleted');\n },\n error: (error: Exception) =>\n this.notification.error(error.message),\n });\n },\n () => null,\n );\n }\n\n /**\n * Updates the status of a team member and refreshes the grid.\n *\n * @param formGroup The form group containing the team member's data.\n * @param status The new status to be set for the team member.\n */\n private setStatus(formGroup: UntypedFormGroup, status: boolean): void {\n this.getTeamMembersCollection()\n .entity(formGroup.value.id)\n .patch({ isActive: status })\n .subscribe({\n error: (error: Exception) => this.notification.error(error.message),\n });\n\n formGroup.get('isActive').setValue(status);\n this.gridService.detectChanges();\n }\n\n /** Opens a modal for adding resources to the project team and reloads the team data after the operation. */\n private addResources(): void {\n const modalRef = this.modal.open(AddResourcesModalComponent, {\n size: 'xxl',\n injector: this.injector,\n });\n const instance = modalRef.componentInstance as AddResourcesModalComponent;\n instance.parentEntityId = this.entityId;\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /** Opens a modal for creating a generic team member and reloads the team data after the operation. */\n private createGeneric(): void {\n const modalRef = this.modal.open(GenericModalComponent, {\n injector: this.injector,\n size: 'lg',\n });\n const instance = modalRef.componentInstance as GenericModalComponent;\n instance.mode = 'create';\n instance.projectId = this.entityId;\n instance.existingNames = this.projectTeamService.formArray.value.map(\n (teamMember) => teamMember.resource.name,\n );\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Opens a modal for assigning a user to a generic team member and reloads the team data after the operation.\n *\n * @param member The team member object to which the user is to be assigned.\n */\n private assignUser(member: ProjectTeamMember): void {\n const modalRef = this.modal.open(GenericAssignmentModalComponent, {\n injector: this.injector,\n });\n const instance =\n modalRef.componentInstance as GenericAssignmentModalComponent;\n instance.memberId = member.id;\n instance.projectId = this.entityId;\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Opens a modal for creating a generic team member from a user and reloads the team data after the operation.\n *\n * @param member The team member object from which the generic team member is to be created.\n */\n private createGenericFromUser(member: ProjectTeamMember): void {\n const modalRef = this.modal.open(GenericModalComponent, {\n injector: this.injector,\n size: 'lg',\n });\n const instance = modalRef.componentInstance as GenericModalComponent;\n instance.mode = 'createFromUser';\n instance.projectId = this.entityId;\n instance.existingNames = this.projectTeamService.formArray.value.map(\n (teamMember) => teamMember.resource.name,\n );\n instance.teamMemberId = member.id;\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ProjectTeamComponent } from './project-team.component';\nimport { UserAssessmentModalComponent } from './user-assessment-modal/user-assessment-modal.component';\nimport { TeamToolbarComponent } from './team-toolbar/team-toolbar.component';\nimport { AssessmentCellComponent } from './assessment-cell/assessment-cell.component';\nimport { MemberModalComponent } from './member-modal/member-modal.component';\nimport { MemberResourceCellComponent } from './member-resource-cell/member-resource-cell.component';\nimport { ProjectCardSharedModule } from '../shared/project-card-shared.module';\nimport { GenericModalComponent } from 'src/app/projects/card/project-team/generic-modal/generic-modal.component';\nimport { GenericAssignmentModalComponent } from './generic-assignment-modal/generic-assignment-modal.component';\nimport { MemberModalCostToolbarComponent } from './member-modal/member-modal-cost-toolbar/member-modal-cost-toolbar.component';\nimport { ProjectTariffCellComponent } from 'src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell.component';\nimport { ProjectTariffCellReadonlyComponent } from 'src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell-readonly.component';\nimport { AddResourcesModalComponent } from 'src/app/projects/card/project-team/add-resources-modal/add-resources-modal.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { AddResourceModalToolbarComponent } from 'src/app/projects/card/project-team/add-resources-modal/add-resources-modal-toolbar/add-resources-modal-toolbar.component';\n\n@NgModule({\n declarations: [\n ProjectTeamComponent,\n AddResourcesModalComponent,\n MemberResourceCellComponent,\n MemberModalComponent,\n MemberModalCostToolbarComponent,\n UserAssessmentModalComponent,\n GenericAssignmentModalComponent,\n TeamToolbarComponent,\n ProjectTariffCellComponent,\n ProjectTariffCellReadonlyComponent,\n AssessmentCellComponent,\n GenericModalComponent,\n AddResourceModalToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardSharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'project.team',\n url: '/team',\n component: ProjectTeamComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ProjectTeamModule {}\n","import { Injectable } from '@angular/core';\nimport { forkJoin, map, Observable, Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { TeamSettings } from './team-settings.model';\nimport { StateService } from '@uirouter/core';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { ProjectVersionDataService } from 'src/app/projects/project-versions/project-version-data.service';\n\n@Injectable()\nexport class ProjectTeamService {\n public settings$ = new Subject();\n\n public settings: TeamSettings;\n\n public formArray = this.fb.array([]);\n\n constructor(\n private projectVersionCardService: ProjectVersionCardService,\n private projectVersionDataService: ProjectVersionDataService,\n private localConfigService: LocalConfigService,\n private navigationService: NavigationService,\n private state: StateService,\n private dataService: DataService,\n private fb: UntypedFormBuilder,\n ) {\n this.settings = this.localConfigService.getConfig(TeamSettings);\n }\n\n public setFilter(onlyActive: boolean) {\n this.settings.onlyActive = onlyActive;\n this.settings$.next(this.settings);\n this.localConfigService.setConfig(TeamSettings, this.settings);\n }\n\n /** Open resource request. */\n public openResourceRequest(requestId: string) {\n this.state.go('resourceRequest', {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n entityId: requestId,\n });\n }\n\n /**\n * Gets query with filters for `ProjectTariff` select-box.\n *\n * @param projectId project id.\n * @param teamMemberId team member id.\n * @returns ODataQuery.\n */\n public getProjectTariffQuery(\n projectId: string,\n teamMemberId: string,\n ): Record {\n const query = {\n select: ['id', 'name'],\n filter: [],\n };\n\n if (teamMemberId) {\n query.filter.push({\n assignments: {\n any: {\n or: [\n {\n projectTeamMemberId: {\n type: 'guid',\n value: teamMemberId,\n },\n },\n {\n isAllTeamRole: true,\n },\n ],\n },\n },\n });\n }\n\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n this.projectVersionCardService.projectVersion,\n projectId,\n );\n\n return query;\n }\n\n /**\n * Retrieves an observable of team member roles for a given resource.\n *\n * @param resourceId - The ID of the resource for which to retrieve roles.\n * @param projectId - The ID of the project to which the resource belongs.\n * @param selectedRoleId - An optional ID of a role to include in the result, even if it's an existing role.\n * @returns An observable that emits an array of NamedEntity objects representing the roles.\n */\n public getTeamMemberRolesObservable(\n resourceId: string,\n projectId: string,\n selectedRoleId?: string,\n ): Observable {\n const existedRoleIds = this.projectVersionDataService\n .projectCollectionEntity(\n this.projectVersionCardService.projectVersion,\n projectId,\n )\n .collection('ProjectTeamMembers')\n .query({\n select: ['roleId'],\n filter: [{ resourceId: { type: 'guid', value: resourceId } }],\n });\n\n const userRoles = this.dataService\n .collection('Users')\n .entity(resourceId)\n .get({\n select: 'id',\n expand: {\n additionalUserRoles: {\n expand: {\n role: { select: ['id', 'name'], filter: [{ isActive: true }] },\n },\n },\n role: { select: ['id', 'name'] },\n },\n });\n\n return forkJoin({ existedRoleIds, userRoles }).pipe(\n map((data) => {\n const result = data.userRoles.additionalUserRoles.map((userRole) => ({\n id: userRole.role.id,\n name: userRole.role.name,\n }));\n\n // Add the user's primary role if it's not already included in the additional roles\n if (\n data.userRoles.role &&\n !result.some((role) => role.id === data.userRoles.role.id)\n ) {\n result.push(data.userRoles.role);\n }\n\n // Filter out roles that are already assigned to project team members, unless the selectedRoleId is specified\n return result.filter(\n (role) =>\n !data.existedRoleIds\n .map((tm) => tm.roleId)\n .filter((x) => !!x)\n ?.find((id) => id === role.id) ||\n (selectedRoleId && role.id === selectedRoleId),\n );\n }),\n );\n }\n\n /**\n * Return list of restricted to choosing role IDs for target team member.\n * Existing roles are forbidden for the target team member resource.\n *\n * @param teamMember The team member to find role IDs for.\n * @param isCurrentRestricted Whether to include the current role ID in the result.\n * @returns An array of role IDs associated with the specified team member.\n */\n public getRestrictedRoleIds(\n teamMember: ProjectTeamMember,\n isCurrentRestricted = false,\n ): string[] {\n if (teamMember.resource?.resourceType !== ResourceType.user) return [];\n\n const res = this.formArray.value\n .filter((tm) => teamMember.resource.id === tm.resource.id)\n .map((tm) => tm.role?.id)\n .filter((x) => !!x);\n\n if (isCurrentRestricted) return res;\n\n return res.filter((id) => id !== teamMember.role?.id);\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Настройка команды проекта. */\nexport class TeamSettings implements BaseSettings {\n public readonly name = 'TeamSettings';\n version: number;\n onlyActive: boolean;\n\n getDefault(): TeamSettings {\n return {\n version: 1,\n onlyActive: true,\n } as TeamSettings;\n }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { ProjectTeamService } from '../project-team.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-team-toolbar',\n templateUrl: './team-toolbar.component.html',\n standalone: false,\n})\nexport class TeamToolbarComponent extends AbstractToolbar implements OnInit {\n public feature = Feature;\n\n public filterControl = new UntypedFormControl(false);\n\n constructor(\n public app: AppService,\n\n private projectTeamService: ProjectTeamService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n this.filterControl.setValue(this.projectTeamService.settings.onlyActive, {\n emitEvent: false,\n });\n\n this.filterControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.projectTeamService.setFilter(this.filterControl.value);\n });\n }\n}\n","
    \n
    \n @if (!(gridService.readonly$ | async)) {\n
    \n \n  {{\n 'projects.projects.card.team.actions.addResources.label' | translate\n }}\n \n
    \n }\n\n @if (!(gridService.readonly$ | async) && app.checkFeature(feature.genericResources)) {\n \n {{ 'projects.projects.card.team.actions.createGeneric.label' | translate }}\n \n }\n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n @if (!(gridService.readonly$ | async)) {\n \n \n \n }\n
    \n @if (\n app.checkFeature(feature.genericResources) &&\n gridService.selectedGroupValue?.resource?.resourceType === 'Generic'\n ) {\n \n \n  {{ 'projects.projects.card.team.actions.assignUser' | translate }}\n \n }\n @if (\n app.checkFeature(feature.genericResources) &&\n gridService.selectedGroupValue?.resource?.resourceType === 'User'\n ) {\n \n \n  {{ 'components.genericModalComponent.actions.createGenericFromUser' | translate }}\n \n }\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { forkJoin } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'wp-user-assessment-modal',\n templateUrl: './user-assessment-modal.component.html',\n styleUrls: ['./user-assessment-modal.component.scss'],\n standalone: false,\n})\nexport class UserAssessmentModalComponent implements OnInit {\n @Input() member: any;\n @Input() readonly: boolean;\n\n get user(): NamedEntity {\n return this.member.resource;\n }\n\n public isSaving: boolean;\n public isLoading: boolean;\n\n @ViewChild('leftTbl') leftTbl: ElementRef;\n\n public leftTableStyles: Dictionary = {};\n\n public userSkills: any[] = [];\n\n public filterForm = this.fb.group({ name: [''] });\n\n constructor(\n private app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public resizeLeftTbl() {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement as HTMLElement).getBoundingClientRect()\n .width + 'px';\n }\n\n public ok() {\n this.isSaving = true;\n const estimations = [];\n\n this.userSkills.forEach((userSkill: any) => {\n if (userSkill.level > 0) {\n estimations.push({\n skillId: userSkill.skill.id,\n projectTeamMemberId: this.member.id,\n ownerId: this.app.session.user.id,\n level: userSkill.level,\n });\n }\n });\n\n this.data\n .collection('ProjectTeamMembers')\n .entity(this.member.id)\n .action('WP.UpdateSkillsEstimation')\n .execute({\n estimations,\n })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projects.card.team.assessmentModal.messages.estimationSaved',\n );\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n private load() {\n this.userSkills = [];\n this.isLoading = true;\n\n const skillsQuery = {\n select: ['id'],\n expand: { skill: { select: ['id', 'name', 'description'] } },\n filter: [{ userId: { type: 'guid', value: this.user.id } }],\n };\n\n const estimationsQuery = {};\n\n const observables = [\n this.data.collection('UserSkills').query(skillsQuery),\n this.data\n .collection('ProjectTeamMembers')\n .entity(this.member.id)\n .collection('UserSkillEstimationByProjects')\n .query(estimationsQuery),\n ];\n\n forkJoin(observables).subscribe({\n next: (response: [any[], any[]]) => {\n this.userSkills = response[0];\n\n this.userSkills.forEach((userSkill: any) => {\n const estimation = response[1].find(\n (e) => userSkill.skill.id === e.skillId,\n );\n userSkill.level = estimation ? estimation.level : 0;\n });\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n public getUserSkills() {\n return this.userSkills.filter(\n (userSkill: any) =>\n userSkill.skill.name\n .toLowerCase()\n .indexOf(this.filterForm.value.name.toLowerCase()) !== -1,\n );\n }\n\n public removeEstimation(userSkill: any) {\n userSkill.level = 0;\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.load();\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.card.team.assessmentModal.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n\n
    \n {{ user.name }}\n
    \n
    \n
    \n
    \n \n \n \n \n {{\n 'projects.projects.card.team.assessmentModal.columns.availableSkill.header'\n | translate\n }}\n \n \n {{\n 'projects.projects.card.team.assessmentModal.columns.estimation.header'\n | translate\n }}\n \n \n \n \n
    \n
    \n \n \n \n \n {{\n 'projects.projects.card.team.assessmentModal.columns.availableSkill.header'\n | translate\n }}\n \n \n {{\n 'projects.projects.card.team.assessmentModal.columns.estimation.header'\n | translate\n }}\n \n \n \n \n \n \n \n {{ userSkill.skill.name }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-financial-amount-cell',\n templateUrl: './financial-amount-cell.component.html',\n styleUrls: ['./financial-amount-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialAmountCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n public readonly projectCardService: ProjectCardService,\n private cdr: ChangeDetectorRef,\n ) {\n service.detectChanges$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.cdr.detectChanges());\n }\n}\n","@if (formGroup.value.isTaskGroup) {\n \n {{ control.value | wpCurrency: (projectCardService.project$ | async)?.currency.alpha3Code }}\n \n} @else {\n \n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-financial-readonly-amount-cell',\n templateUrl: './financial-amount-readonly-cell.component.html',\n styleUrls: ['./financial-amount-readonly-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialAmountReadonlyCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n public readonly projectCardService: ProjectCardService,\n private cdr: ChangeDetectorRef,\n ) {\n service.detectChanges$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.cdr.detectChanges());\n }\n\n /**\n * Returns an array of CSS classes based on the form group's value.\n *\n * @returns {string[]} An array of CSS classes.\n */\n public getCss(): string[] {\n const css = [];\n\n if (this.formGroup.value.type) {\n css.push(this.formGroup.value.type.code.toLowerCase());\n }\n\n if (this.formGroup.value.isTaskGroup) {\n css.push('task');\n }\n return css;\n }\n}\n","\n {{ control.value | wpCurrency: (projectCardService.project$ | async)?.currency.alpha3Code }}\n
    \n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-financial-non-nullable-amount-cell',\n templateUrl: './financial-non-nullable-amount-cell.component.html',\n styleUrls: ['./financial-amount-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialNonNullableAmountCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n public readonly projectCardService: ProjectCardService,\n private cdr: ChangeDetectorRef,\n ) {\n service.detectChanges$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.cdr.detectChanges());\n }\n}\n","@if (formGroup.value.isTaskGroup) {\n \n {{ control.value | wpCurrency: (projectCardService.project$ | async)?.currency.alpha3Code }}\n \n} @else {\n \n}\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-date-cell',\n templateUrl: './financial-date-cell.component.html',\n standalone: false,\n})\nexport class FinancialDateCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-readonly-date-cell',\n templateUrl: './financial-date-readonly-cell.component.html',\n styleUrls: ['./financial-date-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class FinancialDateReadonlyCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","

    \n {{ control.value | date: 'shortDate' }}\n

    \n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-non-nullable-date-cell',\n templateUrl: './financial-non-nullable-date-cell.component.html',\n standalone: false,\n})\nexport class FinancialNonNullableDateCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-description-cell',\n templateUrl: './financial-description-cell.component.html',\n standalone: false,\n})\nexport class FinancialDescriptionCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-readonly-description-cell',\n templateUrl: './financial-description-readonly-cell.component.html',\n styleUrls: ['./financial-description-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class FinancialDescriptionReadonlyCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","{{ control.value }}\n","import { Component, Input, ChangeDetectorRef, Inject } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\nimport { FinancialTaskCellService } from './financial-task-cell.service';\n\n@Component({\n selector: 'tmt-financial-task-cell',\n templateUrl: './financial-task-cell.component.html',\n styleUrls: ['./financial-task-cell.component.scss'],\n standalone: false,\n})\nexport class FinancialTaskCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n public get groupValue(): any {\n return this.formGroup.getRawValue();\n }\n\n constructor(\n public gridService: GridService,\n public financialTaskCellService: FinancialTaskCellService,\n private projectTasksService: ProjectTasksService,\n private cdr: ChangeDetectorRef,\n @Inject('entityId') public entityId,\n ) {\n this.gridService.detectChanges$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public getTaskFullName(): string {\n return this.projectTasksService.getTaskFullName(\n this.groupValue.projectTask,\n );\n }\n}\n","
    \n @if (groupValue.isTaskGroup) {\n \n
    \n {{ getTaskFullName() }}\n
    \n } @else {\n \n }\n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\n\n@Injectable()\nexport class FinancialTaskCellService {\n public projectVersion: ProjectVersion;\n public toggleTaskId$ = new Subject();\n\n public toggleTask(taskId: string) {\n this.toggleTaskId$.next(taskId);\n }\n}\n","import {\n Component,\n effect,\n ElementRef,\n forwardRef,\n input,\n OnInit,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { CodedEntity } from 'src/app/shared/models/entities/coded-entity.model';\nimport { ProjectTaskCategoriesService } from 'src/app/projects/card/core/project-tasks-categories.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'tmt-flag-box',\n templateUrl: './flag-box.component.html',\n styleUrls: ['./flag-box.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FlagBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n})\nexport class FlagBoxComponent implements ControlValueAccessor, OnInit {\n public control = input();\n public readonly = input(false);\n public disabled = signal(false);\n public storedRows = signal([]);\n public columnIconClasses = signal('');\n public dropdownIconsClasses = signal([]);\n\n private popupId: string;\n private currentId = signal(null);\n private value = signal('');\n private listOpened = signal(false);\n private selectBoxButton = viewChild('selectBoxButton');\n private expandingArea = viewChild>('expandingArea');\n\n constructor(\n private categoriesService: ProjectTaskCategoriesService,\n private infoPopupService: InfoPopupService,\n ) {\n effect(() => {\n const value = this.value();\n const isDisabled = this.disabled();\n this.setColumnIconClasses(value, isDisabled);\n });\n\n effect(() => {\n const category = this.storedRows().find(\n (item) => item.id === this.currentId(),\n );\n this.value.set(category ?? '');\n });\n }\n\n public ngOnInit(): void {\n if (!this.storedRows().length) {\n this.categoriesService.categories$.subscribe((value: CodedEntity[]) => {\n this.storedRows.set(value.filter((item) => item.code !== 'Light'));\n this.setDropdownIconClasses(this.storedRows());\n });\n }\n }\n\n public writeValue(id: string | null): void {\n this.currentId.set(id);\n }\n\n public propagateChange = (value: string) => null;\n public propagateTouch = () => null;\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState(): void {\n if (this.readonly()) {\n this.disabled.set(true);\n }\n }\n\n /**\n * Selects a row and updates the value.\n * @param value The selected CodedEntity.\n */\n public selectRow(value: CodedEntity): void {\n this.listOpened.set(false);\n this.infoPopupService.close(this.popupId);\n this.value.set(value);\n this.propagateChange(value.id);\n }\n\n /** Clears the value. */\n public clearValue(): void {\n this.value.set('');\n this.propagateChange(null);\n }\n\n /** Opens list. */\n public openList(): void {\n if (this.disabled()) return;\n if (this.listOpened()) {\n this.closeList();\n return;\n }\n\n this.listOpened.set(true);\n\n this.popupId = this.infoPopupService.open({\n target: this.selectBoxButton().nativeElement,\n data: {\n templateRef: this.expandingArea(),\n },\n containerStyles: null,\n isHideArrow: true,\n popperModifiers: this.infoPopupService.controlPopperModifiers,\n onDestroy: () => {\n this.closeList();\n this.listOpened.set(false);\n },\n });\n }\n\n /** Closes list. */\n public closeList(): void {\n this.listOpened.set(false);\n this.infoPopupService.close(this.popupId);\n }\n\n /**\n * Converts a string to a GUID if valid.\n * Returns null if empty, or undefined if it doesn't match the GUID format.\n *\n * @param textData - The input string.\n * @returns The GUID string, null, or undefined.\n */\n public static parseTextToValue(textData: string) {\n if (textData === '') return null;\n\n // Check is guid because we don't know categoryId's before load them\n if (!textData.match(Constants.guidRegex)) return;\n return textData;\n }\n\n private setColumnIconClasses(\n item: CodedEntity | '',\n isDisabled: boolean,\n ): void {\n const classes = ['bi'];\n if (!item) {\n classes.push(isDisabled ? 'no-focus' : 'bi-bookmark');\n } else {\n classes.push('bi-bookmark-fill', `text-${item.code.toLowerCase()}`);\n }\n this.columnIconClasses.set(classes.join(' '));\n }\n\n private setDropdownIconClasses(rows: CodedEntity[]): void {\n const rowClasses = rows.map((row) => {\n const classes = [\n 'bi',\n 'bi-bookmark-fill',\n `text-${row.code.toLowerCase()}`,\n ];\n return classes.join(' ');\n });\n this.dropdownIconsClasses.set(rowClasses);\n }\n}\n","
    \n \n \n \n
    \n\n\n
    \n
    \n
    \n \n @for (row of storedRows(); track row) {\n \n }\n
    \n
    \n
    \n
    \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { bottom, createPopper, Instance } from '@popperjs/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport _ from 'lodash';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { defaultResourceTypes } from 'src/app/shared/models/enums/resource-type.enum';\nimport { TextToControlValueParserHelper } from 'src/app/shared-features/grid/core/text-to-control-value-parser.helper';\nimport { ProjectTaskAssignment } from 'src/app/shared/models/entities/projects/project-task.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'wp-members-box',\n templateUrl: './members-box.component.html',\n styleUrls: ['./members-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MembersBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class MembersBoxComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy\n{\n @Input() placeholder: string;\n @Input() projectVersion: ProjectVersion;\n @Input() autofocus?: boolean;\n /** Clear control if initial value === null. */\n @Input() initialValue?: unknown;\n @Input() availableResourceTypes = defaultResourceTypes;\n @Input() isAllTeamAvailable = true;\n\n @ViewChild('input') inputEl: ElementRef;\n @ViewChild('expandingArea') expandingArea: ElementRef;\n @ViewChild('membersBoxContainer') membersBoxContainer: ElementRef;\n @ViewChild('inputSearch') inputSearch: ElementRef;\n\n public memberRows: any[] = [];\n public filteredMemberRows: any[] = [];\n\n public listOpened = false;\n public assignments: ProjectTaskAssignment[];\n public isLoading: boolean;\n public readonly: boolean;\n public searchControl = new UntypedFormControl('');\n public fullNames = '';\n public shortNames = '';\n\n public allTeamCode = 'allTeam';\n\n private popperInstance: Instance;\n private destroyed$ = new Subject();\n\n propagateChange = (list: any[]) => null;\n propagateTouch = () => null;\n\n constructor(\n private projectTeamService: ProjectTeamService,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit(): void {\n this.searchControl.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.filteredMemberRows = value\n ? this.memberRows.filter((row) =>\n row.name.toLowerCase().includes(value.toLowerCase()),\n )\n : this.memberRows;\n });\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus && this.inputEl) {\n this.onInputClick();\n }\n if (!this.readonly && this.initialValue === null) {\n this.clear();\n this.onInputClick();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n writeValue(assignments: any[]): void {\n if (assignments === null) {\n assignments = [];\n }\n if (_.isEqual(assignments, this.assignments)) {\n return;\n }\n\n this.assignments = [];\n\n if (assignments) {\n assignments.forEach((assignment) => {\n this.assignments.push(assignment);\n });\n }\n this.refreshRows();\n this.calculateViewNames();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n\n this.cdr.detectChanges();\n }\n\n /** Input onBlur logic. */\n public onBlur() {\n this.propagateTouch();\n }\n\n /** Input onClick logic. */\n public onInputClick() {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n /** Clears project task assignments. */\n public clear() {\n this.memberRows.forEach((row) => {\n row.use = false;\n });\n\n this.updateAssignments();\n this.propagateChange(this.assignments);\n this.calculateViewNames();\n this.cancel();\n }\n\n /** Closes members list. */\n public cancel() {\n this.listOpened = false;\n }\n\n /** Opens members list. */\n public openList() {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n setTimeout(() => {\n this.inputSearch?.nativeElement.focus();\n });\n this.propagateTouch();\n this.listOpened = true;\n this.refreshRows();\n this.popperInstance = createPopper(\n this.membersBoxContainer.nativeElement,\n this.expandingArea.nativeElement,\n {\n strategy: 'fixed',\n placement: bottom,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n state.elements.reference.getBoundingClientRect().width\n }px`;\n },\n },\n ],\n },\n );\n\n this.show();\n }\n\n /** Drop search string in the dropdown. */\n public clearSearch(): void {\n this.searchControl.setValue('');\n }\n\n /** Adds member to project task assignments. */\n public clickItem(row: any) {\n row.use = !row.use;\n if (row.use) {\n if (row.id === this.allTeamCode) {\n this.memberRows\n .filter((r) => r.id !== this.allTeamCode)\n .forEach((memberRow) => {\n memberRow.use = false;\n });\n } else {\n const allTeam = this.memberRows.find((r) => r.id === this.allTeamCode);\n if (allTeam) {\n allTeam.use = false;\n }\n }\n }\n\n this.updateAssignments();\n this.propagateChange(this.assignments);\n this.calculateViewNames();\n }\n\n /**\n * Parses a JSON string to an array of assignment objects with new GUIDs.\n *\n * @param {string} textData - The JSON string to parse.\n * @returns {Array|undefined} An array of assignment objects with new GUIDs, or undefined if invalid.\n */\n public static parseTextToValue(textData: string) {\n if (textData === '') return [];\n if (\n !TextToControlValueParserHelper.isValidJSONStructure(\n textData,\n ['id', 'isAllTeamRole', 'isUnassigned', 'units'],\n true,\n )\n ) {\n return undefined;\n }\n\n return JSON.parse(textData).map((assignment) => ({\n ...assignment,\n id: Guid.generate(),\n }));\n }\n\n /** Shows expanding area in the popper and update its position. */\n private show() {\n this.renderer.setAttribute(\n this.expandingArea.nativeElement,\n 'data-show',\n '',\n );\n\n this.popperInstance.update();\n this.cdr.detectChanges();\n }\n\n /** Updates project task assignments. */\n private updateAssignments(): void {\n const newAssignments = [];\n\n this.memberRows.forEach((row) => {\n if (row.use === true) {\n let assignment = this.getAssignment(row.id);\n\n if (!assignment) {\n assignment = {\n id: Guid.generate(),\n projectTeamMemberId: row.id === this.allTeamCode ? null : row.id,\n projectTeamMember: row.id === this.allTeamCode ? null : row,\n projectTariffId: null,\n isAllTeamRole: row.id === this.allTeamCode,\n isUnassigned: false,\n units: 1,\n };\n }\n newAssignments.push(assignment);\n }\n });\n this.assignments = newAssignments;\n }\n\n /** Forms rows for expanding area view. */\n private refreshRows() {\n this.isLoading = true;\n this.projectTeamService\n .getTeamMembers(this.projectVersion)\n .subscribe((members) => {\n this.memberRows = [];\n\n members.forEach((member) => {\n this.memberRows.push(member);\n });\n\n this.memberRows = this.memberRows.sort(naturalSort('name'));\n\n this.memberRows = this.memberRows.filter((member) =>\n this.availableResourceTypes.some(\n (type) =>\n !member.isUnassigned && type === member?.resource?.resourceType,\n ),\n );\n\n if (this.isAllTeamAvailable) {\n this.memberRows.unshift({\n id: this.allTeamCode,\n name: this.translate.instant('projects.allTeamRole'),\n });\n }\n\n this.memberRows.forEach((row) => {\n row.use = this.getAssignment(row.id) !== null;\n });\n\n this.memberRows = _.sortBy(this.memberRows, (el) => !el.use);\n\n this.filteredMemberRows = this.memberRows;\n\n this.isLoading = false;\n this.cdr.detectChanges();\n this.popperInstance?.update();\n });\n }\n\n /** Returns assignment.\n *\n * @param memberId member id.\n * @returns\n */\n private getAssignment(memberId: string): ProjectTaskAssignment | null {\n return (\n this.assignments.find(\n (assignment) =>\n (memberId === this.allTeamCode && assignment.isAllTeamRole) ||\n (!assignment.isAllTeamRole &&\n !assignment.isUnassigned &&\n memberId === assignment.projectTeamMember.id),\n ) ?? null\n );\n }\n\n private calculateViewNames(): void {\n this.fullNames = this.projectTeamService.getAssignmentsString(\n this.assignments,\n null,\n );\n this.shortNames = this.projectTeamService.getAssignmentsString(\n this.assignments,\n null,\n this.projectTeamService.maxAssignmentShortNameLength,\n );\n }\n}\n","@if (!readonly) {\n \n \n\n @if (assignments.length) {\n ×\n }\n\n \n\n
    \n @if (listOpened) {\n
    \n
    \n \n \n ×\n \n
    \n \n
    \n @if (!filteredMemberRows.length && !isLoading) {\n
    \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n }\n @if (filteredMemberRows.length) {\n \n \n @for (row of filteredMemberRows; track row.id) {\n \n \n \n \n }\n \n
    \n \n {{ row.name }}
    \n }\n
    \n
    \n }\n
    \n \n}\n@if (readonly && assignments.length) {\n

    \n {{ shortNames }}\n

    \n}\n@if (readonly && !assignments.length) {\n

    \n {{ 'shared.valueNotSelected' | translate }}\n

    \n}\n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Inject,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { SelectionType } from 'src/app/shared-features/grid/models/grid-options.model';\n\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport {\n defaultResourceTypes,\n ResourceType,\n} from 'src/app/shared/models/enums/resource-type.enum';\nimport { ProjectCardService } from 'src/app/projects/card/core/project-card.service';\nimport { LIST } from 'src/app/shared/tokens';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-members-cell',\n templateUrl: './members-cell.component.html',\n standalone: false,\n})\nexport class MembersCellComponent implements GridComponentCell, OnInit {\n @Input() public column: GridColumn;\n @Input() public formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n public autofocus =\n this.gridOrchestratorService?.options?.selectionType !== SelectionType.row;\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n public get projectVersion(): ProjectVersion {\n return this.versionCardService.projectVersion;\n }\n\n public resourceTypes = defaultResourceTypes;\n public isAllTeamAvailable = true;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n private versionCardService: ProjectVersionCardService,\n private gridOrchestratorService: GridOrchestratorService,\n @Optional() private projectCardService: ProjectCardService,\n @Optional() @Inject(LIST) public list: List,\n ) {}\n\n public ngOnInit(): void {\n if (\n this.projectCardService?.project.isAutoPlanning &&\n this.list.name !== 'projectTariffs'\n ) {\n this.resourceTypes = defaultResourceTypes.filter(\n (type) => type !== ResourceType.department,\n );\n this.isAllTeamAvailable = false;\n }\n\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n}\n","\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { ProjectTeamService } from 'src/app/shared/services/project-team.service';\nimport { Subject } from 'rxjs';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-members-readonly-cell',\n template: `
    \n {{ shortNames }}\n
    `,\n styles: [\n `\n div {\n padding-top: 6px;\n padding-bottom: 6px;\n padding-left: 12px;\n padding-right: 12px;\n }\n `,\n ],\n standalone: false,\n})\nexport class MembersReadonlyCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public fullNames = '';\n public shortNames = '';\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n private projectTeamService: ProjectTeamService,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n ) {\n this.gridService.detectChanges$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.calculateViewNames();\n });\n }\n\n public ngOnInit(): void {\n this.calculateViewNames();\n }\n\n private calculateViewNames(): void {\n this.fullNames = this.projectTeamService.getAssignmentsString(\n this.control.value,\n );\n this.shortNames = this.projectTeamService.getAssignmentsString(\n this.control.value,\n null,\n this.projectTeamService.maxAssignmentShortNameLength,\n );\n\n this.cdr.markForCheck();\n }\n}\n","import {\n Component,\n OnInit,\n AfterViewInit,\n OnChanges,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n ViewChild,\n ViewRef,\n Input,\n ElementRef,\n Renderer2,\n Inject,\n SimpleChanges,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { bottom, createPopper, Instance } from '@popperjs/core';\nimport { debounceTime } from 'rxjs/operators';\nimport _ from 'lodash';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport {\n ProjectTask,\n ProjectTaskDependency,\n ProjectTaskDependencyType,\n} from 'src/app/shared/models/entities/projects/project-task.model';\nimport { ProjectTaskDependenciesService } from 'src/app/projects/card/project-tasks/core/project-task-dependencies.service';\nimport { ProjectTaskBoxItem } from './predecessor-box.interface';\nimport { TextToControlValueParserHelper } from 'src/app/shared-features/grid/core/text-to-control-value-parser.helper';\nimport { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-predecessor-box',\n templateUrl: './predecessor-box.component.html',\n styleUrls: ['./predecessor-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PredecessorBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class PredecessorBoxComponent\n implements OnInit, AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor\n{\n @ViewChild('input') private input: ElementRef;\n @ViewChild('inputSearch') private inputSearch: ElementRef;\n @ViewChild('expandingArea') private expandingArea: ElementRef;\n\n @Input() public readonly: boolean;\n @Input() public placeholder: string;\n @Input() public autofocus: boolean;\n @Input() public taskId: string;\n @Input() public tasks: ProjectTask[];\n\n public listOpened = false;\n public filteredTasks: ProjectTaskBoxItem[] = [];\n public allowedTaskIds: string[] = [];\n public title: string | null;\n public titleShort: string | null;\n public searchControl = new FormControl('');\n public propagateChange = (__: any[]) => null;\n public propagateTouch = () => null;\n public dependencies: ProjectTaskDependency[] = [];\n\n private currentTaskIndex: number;\n private popperInstance: Instance;\n private keypressListener: () => void;\n private readonly controlDelay = Constants.textInputClientDebounce;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private dependenciesService: ProjectTaskDependenciesService,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private el: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n private translateService: TranslateService,\n ) {}\n\n public ngOnInit(): void {\n this.initSubscribers();\n this.init();\n }\n\n public ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.onInputClick();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['tasks'] && this.tasks?.length) {\n this.init();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.keypressListener) {\n this.keypressListener();\n }\n }\n\n public writeValue(items: any[]): void {\n if (_.isEqual(this.dependencies, items)) {\n return;\n }\n this.dependencies = _.cloneDeep(items) || [];\n this.updateTitle();\n if (this.listOpened) {\n this.updateTaskOption();\n }\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr.detectChanges();\n }\n }\n\n /** Propagate touch on blur event. */\n public onBlur(): void {\n this.propagateTouch();\n }\n\n /** Input click handler. */\n public onInputClick(): void {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n /**\n * Checkbox click handler\n *\n * @param targetTask - enabled/disabled task\n */\n public itemCLickHandler(\n event: PointerEvent,\n targetTask: ProjectTaskBoxItem,\n ): void {\n if (event.pointerId === 1) {\n event.preventDefault();\n }\n\n targetTask.selected = !targetTask.selected;\n\n if (targetTask.selected) {\n this.dependencies.push({\n type: ProjectTaskDependencyType.finishToStart,\n predecessorId: targetTask.id,\n });\n } else {\n const index = this.dependencies.findIndex(\n (d) => d.predecessorId === targetTask.id,\n );\n if (index > -1) {\n this.dependencies.splice(index, 1);\n }\n if (!this.allowedTaskIds.includes(targetTask.id)) {\n const taskIndex = this.filteredTasks.findIndex(\n (t) => t.id === targetTask.id,\n );\n this.filteredTasks.splice(taskIndex, 1);\n }\n }\n\n this.updateTitle();\n this.propagateChange(this.getControlValue());\n }\n\n /** Drop all dependencies in the task. */\n public clearValues(): void {\n this.dependencies.length = 0;\n this.propagateChange(this.getControlValue());\n this.cancel();\n }\n\n /** Drop search string in the dropdown. */\n public clearSearch(): void {\n this.searchControl.setValue('');\n this.updateTaskOption();\n }\n\n /** Open dropdown. */\n public openList(): void {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.initKeyListener();\n this.input.nativeElement.select();\n this.propagateTouch();\n this.updateTaskOption();\n this.listOpened = true;\n\n this.popperInstance = createPopper(\n this.el.nativeElement,\n this.expandingArea.nativeElement,\n {\n strategy: 'fixed',\n placement: bottom,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n state.elements.reference.getBoundingClientRect().width\n }px`;\n },\n },\n ],\n },\n );\n\n this.show();\n }\n\n /** Cancel handler. */\n public cancel(): void {\n this.listOpened = false;\n this.searchControl.setValue('');\n if (this.keypressListener) {\n this.keypressListener();\n }\n }\n\n /**\n * Parses a JSON string to an object based on specific structure requirements.\n *\n * @param {string} textData - The JSON string to be parsed.\n * @returns {Object[] | undefined} - The parsed JSON object if valid, otherwise undefined.\n */\n public static parseTextToValue(textData: string) {\n if (textData === '') return [];\n if (\n !TextToControlValueParserHelper.isValidJSONStructure(\n textData,\n ['predecessorId', 'type'],\n true,\n )\n ) {\n return undefined;\n }\n\n return JSON.parse(textData);\n }\n\n /** Shows expanding area in the popper and update its position. */\n private show(): void {\n this.renderer.setAttribute(\n this.expandingArea.nativeElement,\n 'data-show',\n '',\n );\n\n this.popperInstance.update();\n\n setTimeout(() => {\n this.inputSearch?.nativeElement.focus();\n });\n\n this.cdr.detectChanges();\n }\n\n private updateTitle(): void {\n const predecessors = {\n [ProjectTaskDependencyType.startToStart]: [],\n [ProjectTaskDependencyType.startToFinish]: [],\n [ProjectTaskDependencyType.finishToFinish]: [],\n [ProjectTaskDependencyType.finishToStart]: [],\n };\n\n this.dependencies?.forEach((d) => {\n const task = this.tasks.find((t) => t.id === d.predecessorId);\n if (task) {\n predecessors[d.type].push(task);\n }\n });\n\n Object.values(predecessors).forEach((list) =>\n list.sort(naturalSort('structNumber')),\n );\n\n this.titleShort = Object.entries(predecessors)\n .flatMap(([type, tasks]) => {\n const translationKey = `shared2.props.${type}.short`;\n return tasks.map(\n (task) =>\n `${task.structNumber}${this.translateService.instant(translationKey)}`,\n );\n })\n .join('; ');\n\n this.title = Object.entries(predecessors)\n .filter(([type, tasks]) => tasks.length)\n .map(([type, tasks]) => {\n const dependencyType = this.translateService.instant(\n `shared2.props.${type}.value`,\n );\n const taskList = tasks\n .map((task) => `\\t${task.structNumber} ${task.name};`)\n .join('\\n');\n return `${dependencyType}\\n${taskList}`;\n })\n .join('\\n');\n }\n\n private updateTaskOption(): void {\n if (!this.tasks.length) {\n return;\n }\n\n this.filteredTasks = this.tasks\n .filter(\n (task) =>\n (this.allowedTaskIds.includes(task.id) ||\n this.dependencies.find(\n (d) =>\n d.predecessorId === task.id &&\n d.type !== ProjectTaskDependencyType.finishToStart,\n )) &&\n (task.name\n .toLowerCase()\n .includes(this.searchControl.value.toLowerCase()) ||\n task.structNumber.includes(this.searchControl.value)),\n )\n .map((task) => ({\n ...task,\n selected: !!this.dependencies.find(\n (el) => el.predecessorId === task.id,\n ),\n }));\n this.filteredTasks.sort(naturalSort('structNumber'));\n this.filteredTasks = _.sortBy(this.filteredTasks, (t) => !t.selected);\n\n this.updateTitle();\n this.cdr.markForCheck();\n }\n\n private getControlValue(): ProjectTaskDependency[] {\n return _.cloneDeep(this.dependencies);\n }\n\n private init(): void {\n this.currentTaskIndex = this.tasks.findIndex((t) => t.id === this.taskId);\n this.dependencies = this.tasks[this.currentTaskIndex].dependencies.slice(0);\n this.updateTitle();\n\n if (this.readonly) return;\n this.allowedTaskIds = this.dependenciesService\n .getAllowedPredecessorTaskNodes(\n this.tasks[this.currentTaskIndex].id,\n ProjectTaskDependencyType.finishToStart,\n this.tasks,\n )\n .map((node) => node.id);\n\n // Add existing predecessor tasks to allowed.\n this.tasks[this.currentTaskIndex].dependencies.forEach((d) => {\n if (!this.allowedTaskIds.includes(d.predecessorId)) {\n this.allowedTaskIds.push(d.predecessorId);\n }\n });\n\n this.cdr.detectChanges();\n }\n\n private initSubscribers(): void {\n this.searchControl.valueChanges\n .pipe(\n debounceTime(this.controlDelay),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.updateTaskOption();\n });\n }\n\n private initKeyListener(): void {\n if (this.keypressListener) {\n this.keypressListener();\n }\n\n this.keypressListener = this.renderer.listen(\n this.document,\n 'keydown',\n (event: KeyboardEvent) => {\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.cancel();\n break;\n }\n },\n );\n }\n}\n","

    \n {{ titleShort }}\n

    \n\n

    \n {{ 'shared.valueNotSelected' | translate }}\n

    \n\n\n \n\n \n ×\n \n\n \n\n
    \n
    \n
    \n \n\n \n ×\n \n
    \n\n
    \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n
    \n \n\n","import { NgModule } from '@angular/core';\nimport { MembersBoxComponent } from './members-box/members-box.component';\nimport { MembersCellComponent } from './members-cell/members-cell.component';\nimport { MembersReadonlyCellComponent } from './members-cell/members-readonly-cell.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { RolesCellComponent } from './roles-cell/roles-cell.component';\nimport { RolesReadonlyCellComponent } from './roles-cell/roles-readonly-cell.component';\nimport { FinancialAmountCellComponent } from './financial-amount-cell/financial-amount-cell.component';\nimport { FinancialAmountReadonlyCellComponent } from './financial-amount-cell/financial-amount-readonly-cell.component';\nimport { FinancialDateCellComponent } from './financial-date-cell/financial-date-cell.component';\nimport { FinancialDateReadonlyCellComponent } from './financial-date-cell/financial-date-readonly-cell.component';\nimport { FinancialDescriptionCellComponent } from './financial-description-cell/financial-description-cell.component';\nimport { FinancialDescriptionReadonlyCellComponent } from './financial-description-cell/financial-description-readonly-cell.component';\nimport { FinancialTaskCellComponent } from './financial-task-cell/financial-task-cell.component';\nimport { FinancialNonNullableDateCellComponent } from './financial-date-cell/financial-non-nullable-date-cell.component';\nimport { FinancialNonNullableAmountCellComponent } from './financial-amount-cell/financial-non-nullable-amount-cell.component';\nimport { RecurringExpenseRuleCellComponent } from 'src/app/projects/card/shared/recurring-expense-rule-cell/recurring-expense-rule-cell.component';\nimport { PredecessorBoxComponent } from 'src/app/projects/card/shared/predecessor-box/predecessor-box.component';\n\n@NgModule({\n declarations: [\n MembersBoxComponent,\n MembersCellComponent,\n MembersReadonlyCellComponent,\n RolesCellComponent,\n RolesReadonlyCellComponent,\n FinancialDateCellComponent,\n FinancialDateReadonlyCellComponent,\n FinancialAmountCellComponent,\n FinancialAmountReadonlyCellComponent,\n FinancialTaskCellComponent,\n FinancialNonNullableDateCellComponent,\n FinancialNonNullableAmountCellComponent,\n FinancialDescriptionCellComponent,\n FinancialDescriptionReadonlyCellComponent,\n RecurringExpenseRuleCellComponent,\n PredecessorBoxComponent,\n ],\n imports: [CommonModule, SharedModule],\n exports: [\n MembersBoxComponent,\n MembersCellComponent,\n MembersReadonlyCellComponent,\n RolesCellComponent,\n RolesReadonlyCellComponent,\n PredecessorBoxComponent,\n ],\n})\nexport class ProjectCardSharedModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewRef,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ProjectExpensesService } from 'src/app/projects/card/project-expenses/project-expenses.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-recurring-expense-rule-cell',\n templateUrl: './recurring-expense-rule-cell.component.html',\n styleUrls: ['./recurring-expense-rule-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RecurringExpenseRuleCellComponent\n implements OnInit, OnDestroy, GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n public projectExpensesService: ProjectExpensesService,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n {{ control.value?.name }}\n\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Observable } from 'rxjs';\nimport { ProjectTeamService } from 'src/app/projects/card/project-team/project-team.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-roles-cell',\n templateUrl: './roles-cell.component.html',\n styleUrls: ['./roles-cell.component.scss'],\n standalone: false,\n})\nexport class RolesCellComponent implements GridComponentCell, OnInit {\n @Input() public column: GridColumn;\n @Input() public formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n public roles$: Observable;\n public readonly = false;\n\n protected readonly ResourceType = ResourceType;\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n @Inject('entityId') public projectId: string,\n private projectTeamService: ProjectTeamService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.formGroup.value?.resource?.id) {\n this.readonly = true;\n return;\n }\n if (this.formGroup.value.resource.resourceType === ResourceType.user) {\n this.roles$ = this.projectTeamService.getTeamMemberRolesObservable(\n this.formGroup.value.resource.id,\n this.projectId,\n this.formGroup.value.role?.id,\n );\n }\n }\n}\n","@if (formGroup.value.resource.resourceType === ResourceType.user) {\n \n} @else {\n
    \n {{ control.value?.name }}\n
    \n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-roles-readonly-cell',\n templateUrl: './roles-readonly-cell.component.html',\n styleUrls: ['./roles-readonly-cell.component.scss'],\n standalone: false,\n})\nexport class RolesReadonlyCellComponent implements GridComponentCell {\n @Input() public column: GridColumn;\n @Input() public formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n}\n","
    \n {{ control.value?.name }}\n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { StateService } from '@uirouter/core';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-copying-project-modal',\n templateUrl: './copying-project-modal.component.html',\n standalone: false,\n})\nexport class CopyingProjectModalComponent implements OnInit {\n @Input() project: Project;\n public isLoading: boolean;\n\n public form = this.fb.group({\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [null, [Validators.maxLength(Constants.formCodeMaxLength)]],\n copyAssignments: true,\n copyTasks: true,\n copyTeam: true,\n copyManagers: true,\n copyRates: true,\n saveSourceLink: false,\n });\n isSaving: boolean;\n\n constructor(\n private state: StateService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n if (!data.copyTeam || !data.copyTasks) {\n data.copyAssignments = false;\n }\n\n this.data\n .collection('Projects')\n .entity(this.project.id)\n .action('WP.Copy')\n .execute(data)\n .subscribe({\n next: (createdId) => {\n this.notification.successLocal(\n 'projects.projects.copyingProject.messages.wasCopied',\n );\n this.isSaving = false;\n this.activeModal.close();\n this.state.go('project', { entityId: createdId });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n /** Загрузка сведений о проекте. */\n public load() {\n this.isLoading = true;\n\n const query = {\n select: ['id', 'name', 'code'],\n expand: [\n { billingType: { select: ['code'] } },\n { sourceProject: { select: ['id'] } },\n ],\n };\n\n this.data\n .collection('Projects')\n .entity(this.project.id)\n .get(query)\n .subscribe({\n next: (project) => {\n this.project = project;\n this.form.patchValue(project);\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n this.load();\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'projects.projects.copyingProject.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n {{ 'shared.actions.copy' | translate }}\n \n \n
    \n
    \n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport {\n ProjectBillingType,\n ProjectBillingTypes,\n} from 'src/app/shared/models/enums/project-billing-type';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-project-filter',\n templateUrl: './project-filter.component.html',\n standalone: false,\n})\nexport class ProjectFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n organization: [null],\n program: [null],\n period: [null],\n manager: [null],\n currency: [null],\n states: [null],\n billingTypes: this.fb.group({\n [ProjectBillingType.nonBillable.code]: [false],\n [ProjectBillingType.tm.code]: [false],\n [ProjectBillingType.fixedBid.code]: [false],\n }),\n });\n\n billingTypes = ProjectBillingTypes;\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n\n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ProjectFilterComponent } from './project-filter.component';\nimport {\n ProjectBillingType,\n ProjectBillingTypes,\n} from 'src/app/shared/models/enums/project-billing-type';\n\n@Injectable()\nexport class ProjectFilterService extends FilterService {\n public override component: Type = ProjectFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder =\n 'components.projectFilterService.filters.textInput';\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n billingTypes: () => (this.billingTypeConditionExist() ? 1 : 0),\n states: () => (this.stateConditionExist() ? 1 : 0),\n };\n\n protected override getDefaultValues = (): any => ({\n text: '',\n organization: null,\n period: null,\n program: null,\n manager: null,\n currency: null,\n states: null,\n billingTypes: {\n [ProjectBillingType.nonBillable.code]: [false],\n [ProjectBillingType.tm.code]: [false],\n [ProjectBillingType.fixedBid.code]: [false],\n },\n });\n\n billingTypeConditionExist(): boolean {\n let allBillingTypesIsTrue = true;\n let allBillingTypesIsFalse = true;\n\n for (const name in this.values.billingTypes) {\n if (this.values.billingTypes[name]) {\n allBillingTypesIsFalse = false;\n } else {\n allBillingTypesIsTrue = false;\n }\n }\n return !allBillingTypesIsTrue && !allBillingTypesIsFalse;\n }\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n project: {\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(code)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n },\n });\n }\n if (this.values.organization) {\n result.push({\n project: {\n organizationId: {\n type: 'guid',\n value: this.values.organization.id,\n },\n },\n });\n }\n\n if (this.values.manager) {\n result.push({\n project: {\n managerId: { type: 'guid', value: this.values.manager.id },\n },\n });\n }\n\n if (this.values.program) {\n result.push({\n project: {\n programId: { eq: { type: 'guid', value: this.values.program.id } },\n },\n });\n }\n\n if (this.values.currency) {\n result.push({\n project: {\n currencyId: { type: 'guid', value: this.values.currency.id },\n },\n });\n }\n\n if (this.billingTypeConditionExist()) {\n const conditions = { project: { or: [] } };\n for (const name in this.values.billingTypes) {\n if (this.values.billingTypes[name]) {\n const id = ProjectBillingTypes.find(\n (x: ProjectBillingType) => x.code === name,\n ).id;\n conditions.project.or.push({\n billingTypeId: { eq: { type: 'guid', value: id } },\n });\n }\n }\n result.push(conditions);\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n project: {\n stateId: { type: 'guid', value: this.values.states[code].id },\n },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subject } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ProjectFilterService } from './project-filter/project-filter.service';\nimport { ProjectSettingsComponent } from '../settings/project-settings.component';\nimport { CopyingProjectModalComponent } from '../copying-project-modal/copying-project-modal.component';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-project-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: ProjectFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class ProjectListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modal: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'projects.projects.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Project',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n {\n name: 'copy',\n title: 'projects.projects.list.actions.copyProject.title',\n hint: 'projects.projects.list.actions.copyProject.hint',\n isBusy: false,\n isVisible: false,\n handler: this.copy,\n },\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('project', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: () => {\n this.service.delete();\n },\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: any) => {\n this.actions.action('card').isShown = rows?.length === 1;\n this.actions.action('copy').isShown = rows?.length === 1;\n });\n }\n\n private create = () => {\n this.modal.open(ProjectSettingsComponent, { size: 'lg' });\n };\n\n private copy = () => {\n const ref = this.modal.open(CopyingProjectModalComponent);\n (ref.componentInstance as CopyingProjectModalComponent).project =\n this.gridService.selectedGroupValue;\n };\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { AutosaveStateService } from 'src/app/shared/services/autosave-state.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectVersionCardService } from './project-version-card.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { StateService } from '@uirouter/angular';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'wp-project-version-card',\n templateUrl: './project-version-card.component.html',\n styleUrls: ['./project-version-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SavingQueueService,\n ProjectTasksService,\n LifecycleService,\n { provide: META_ENTITY_TYPE, useValue: 'ProjectVersion' },\n ProjectVersionCardService,\n ],\n standalone: false,\n})\nexport class ProjectVersionCardComponent implements OnInit, OnDestroy {\n @Input() sourceVersions: ProjectVersion[] = [];\n @Input() sourceVersion: ProjectVersion = null;\n\n collection = this.data.collection('ProjectVersions');\n\n public isReadonly = false;\n\n public projectVersionName: string;\n\n public mainProject: NamedEntity = null;\n\n public activeTab: string;\n public environment = environment;\n\n public form = this.fb.group({\n id: '',\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n corporateTaxRate: [null, [Validators.min(0), Validators.max(10)]], // in percent 10 === 1000%\n sourceVersion: [null, Validators.required],\n masterBaseline: [null, Validators.required],\n });\n\n private openVersionActionName = 'openVersion';\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n /** The project version change subscription cancel subject. */\n private getProjectVersionChangeDestroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') public projectVersionId: string,\n @Inject('projectId') public projectId: string,\n public service: ProjectVersionCardService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n public autosaveStateService: AutosaveStateService,\n private cdr: ChangeDetectorRef,\n public autosave: SavingQueueService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n private customFieldService: CustomFieldService,\n private lifecycleService: LifecycleService,\n private state: StateService,\n ) {\n this.customFieldService.enrichFormGroup(this.form, 'ProjectVersion');\n\n this.lifecycleService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reloadTab());\n }\n\n /**\n * Loads the Project version.\n * */\n private load() {\n this.service.state$.next(CardState.Loading);\n this.getProjectVersionChangeDestroyed$.next();\n\n this.actionService.resetLifecycle();\n this.actionService.actions\n .filter((a) => !a.lifecycle && a.name !== this.openVersionActionName)\n .forEach((a) => this.actionService.action(a.name).hide());\n\n const query = {\n select: [\n 'id',\n 'name',\n 'masterBaseline',\n 'setMasterFlagAllowed',\n 'isActive',\n 'editAllowed',\n 'corporateTaxRate',\n ],\n expand: [\n { sourceVersion: { select: ['id', 'name'] } },\n { mainProject: { select: ['id', 'name'] } },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'ProjectVersion');\n\n this.collection\n .entity(this.projectVersionId)\n .get(query)\n .subscribe({\n next: (projectVersion) => {\n this.projectVersionName = projectVersion.name;\n this.mainProject = projectVersion.mainProject;\n\n this.form.patchValue(projectVersion, { emitEvent: false });\n this.isReadonly = !projectVersion.editAllowed;\n this.updateFormState(this.isReadonly);\n\n this.form.controls.sourceVersion.disable({ emitEvent: false });\n this.updateActionsVisibility(projectVersion);\n this.service.state$.next(CardState.Ready);\n this.cdr.detectChanges();\n this.navigationService.addRouteSegment({\n id: projectVersion.id,\n title: projectVersion.name,\n });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.service.state$.next(CardState.Error);\n },\n });\n }\n\n private updateFormState(disable: boolean) {\n if (disable) {\n this.form.disable({ emitEvent: false });\n } else {\n if (!this.isReadonly) {\n this.form.enable({ emitEvent: false });\n this.formValueChangeSubscribe();\n }\n }\n }\n\n /** Subscribe to form changes for autosaving */\n private formValueChangeSubscribe() {\n this.form.valueChanges\n .pipe(takeUntil(this.getProjectVersionChangeDestroyed$))\n .subscribe(() => {\n const projectVersion = this.form.getRawValue() as ProjectVersion;\n this.projectVersionName = this.form.value.name;\n if (!this.form.valid || this.isReadonly) {\n return;\n }\n const data = {\n name: projectVersion.name,\n corporateTaxRate: projectVersion.corporateTaxRate ?? null,\n };\n\n this.customFieldService.assignValues(\n data,\n projectVersion,\n 'ProjectVersion',\n );\n\n this.autosave.addToQueue(\n this.projectVersionId,\n this.collection.entity(this.projectVersionId).patch(data),\n );\n });\n }\n\n /** Opens project info popup */\n public openProjectInfo() {\n const projectId = this.mainProject.id;\n const target = document.getElementById('mainProject');\n this.infoPopupService.open({\n target,\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Sets the masterBaseline flag to true for the selected Project version.\n * */\n private setMasterBaseline() {\n this.collection\n .entity(this.projectVersionId)\n .action('SetVersionMaster')\n .execute({\n masterBaseline: true,\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projectVersions.card.messages.setMaster',\n );\n this.load();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /** Save name from form header */\n public saveName = (name: string) => this.form.controls.name.patchValue(name);\n\n /** Reloads current tab */\n public reloadTab() {\n this.autosave.save().then(\n () => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n }\n\n private updateActionsVisibility(version: ProjectVersion) {\n this.actionService.action('setMasterBaseline').isShown =\n version.setMasterFlagAllowed && !version.masterBaseline;\n }\n\n ngOnInit() {\n this.load();\n\n this.actionService.set([\n {\n title: 'projects.projectVersions.card.actions.openVersion',\n hint: 'projects.projectVersions.card.actions.openVersion',\n name: this.openVersionActionName,\n isDropDown: false,\n isBusy: false,\n isVisible: true,\n handler: () => {\n this.state.go('project', {\n entityId: this.projectId,\n openVersionId: this.projectVersionId,\n });\n },\n },\n {\n title: 'projects.projectVersions.list.actions.setMaster',\n hint: 'projects.projectVersions.list.actions.setMaster',\n name: 'setMasterBaseline',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.setMasterBaseline(),\n },\n ]);\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n}\n","\n\n\n\n\n\n\n
    \n
    \n
    \n \n
    \n
    \n \n {{ 'projects.projectVersions.card.mainProps.project' | translate }}:\n \n
    \n \n {{ mainProject.name }}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n

    \n  {{\n 'projects.projectVersions.card.props.masterBaseline' | translate\n }}\n

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n\n \n\n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class ProjectVersionCardService {\n public state$ = new ReplaySubject();\n}\n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { FormGroupService } from 'src/app/shared/services/form-group.service';\nimport { ProjectVersionsService } from '../project-versions.service';\nimport { StateService } from '@uirouter/core';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport {\n CreateProjectVersionMode,\n CreateProjectVersionModes,\n} from 'src/app/shared/models/enums/create-project-version-mode.enum';\nimport { CreateProjectVersionModeItem } from 'src/app/shared/models/entities/projects/create-project-version-mode-item.model';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * Represents the Create Project version dialog content.\n * */\n@Component({\n selector: 'tmt-create-project-version-modal',\n templateUrl: './create-project-version-modal.component.html',\n standalone: false,\n})\nexport class CreateProjectVersionModalComponent implements OnInit {\n @Input() moveToCard = false;\n @Input() sourceVersions: ProjectVersion[] = [];\n @Input() sourceVersion: ProjectVersion;\n\n collection = this.data.collection('ProjectVersions');\n\n public isLoading = false;\n public isSaving = false;\n public isSourceVersionCtrlVisible: boolean;\n\n public form = this.fb.group({\n id: '',\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n sourceVersion: [null, Validators.required],\n mode: null,\n });\n\n public get modes(): Array {\n return this._modes;\n }\n\n private _modes: Array;\n private _sourceVersionsCopy: ProjectVersion[] = [];\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: ProjectVersionsService,\n private versionCardService: ProjectVersionCardService,\n private log: LogService,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n private formGroupService: FormGroupService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private state: StateService,\n ) {}\n\n public ngOnInit(): void {\n this._modes = CreateProjectVersionModes.map((m) => ({\n id: Guid.generate(),\n name: this.translate.instant(\n `projects.projectVersions.createProjectVersionModal.props.mode.values.${m[0]\n .toLowerCase()\n .concat(m.slice(1))}`,\n ),\n value: m,\n }));\n this._sourceVersionsCopy = this.sourceVersions.slice();\n\n this.initCreateForm();\n }\n\n /**\n * The modal Ok button click handler.\n * Creates new/Saves the Project version.\n * */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.updateFormState(true);\n this.log.debug('Saving version entity...');\n\n const projectVersion = this.form.getRawValue() as ProjectVersion;\n const mode = this.form.controls.mode.value.value;\n const sourceVersionId =\n !ProjectVersionUtil.isWorkProjectVersion(projectVersion.sourceVersion) &&\n mode === CreateProjectVersionMode.CopyEstimate\n ? projectVersion.sourceVersion.id\n : null;\n\n const data = {\n id: projectVersion.id,\n name: projectVersion.name,\n sourceVersionId,\n mainProjectId: this.sourceVersion.mainProject.id,\n mode,\n };\n\n this.collection\n .action('CreateVersion')\n .execute(data)\n .pipe(\n switchMap(() => this.service.getVersion(this.form.value.id)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (version) => this.okFunc(version),\n error: this.errorFunc,\n });\n }\n\n /**\n * The modal Cancel/Cross button click handler.\n * Closes the active modal.\n * */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Initializes the Project version form group in create mode.\n * */\n private initCreateForm(): void {\n this.isLoading = true;\n this.updateControlVisibility();\n\n const projectVersion = {\n id: Guid.generate(),\n name: '',\n sourceVersion: this.sourceVersion,\n mode: this._modes.find(\n (x) => x.value === CreateProjectVersionMode.CopyEstimate,\n ),\n };\n\n this.form.patchValue(projectVersion);\n\n this.service\n .getVersionNamePrefix(this.sourceVersion.mainProject.id)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (prefix) => {\n projectVersion.name = prefix;\n this.form.patchValue(projectVersion);\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n\n this.form.controls.mode.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.handleModeChange(value);\n });\n }\n\n private updateControlVisibility(): void {\n this.isSourceVersionCtrlVisible =\n this.form.controls.mode.value?.value !== CreateProjectVersionMode.Empty;\n }\n\n private updateFormState(disable: boolean): void {\n if (disable) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n /**\n * Project version mode form control value change handler.\n * Updates Project version form group.\n *\n * @param mode New mode form control value.\n * */\n private handleModeChange(mode: CreateProjectVersionModeItem): void {\n const sourceVersionCtrl = this.form.controls\n .sourceVersion as UntypedFormControl;\n if (mode.value === CreateProjectVersionMode.CopyForecast) {\n this.sourceVersions = this.sourceVersions.filter((x) =>\n ProjectVersionUtil.isWorkProjectVersion(x),\n );\n if (!ProjectVersionUtil.isWorkProjectVersion(sourceVersionCtrl.value)) {\n sourceVersionCtrl.patchValue(this.sourceVersions[0]);\n }\n } else {\n this.sourceVersions = this._sourceVersionsCopy.slice();\n }\n if (mode.value === CreateProjectVersionMode.Empty) {\n this.formGroupService.toggleFormControlValidators(sourceVersionCtrl);\n } else {\n this.formGroupService.toggleFormControlValidators(\n sourceVersionCtrl,\n Validators.required,\n );\n }\n this.updateControlVisibility();\n }\n\n /**\n * The Project version Create success event handler.\n *\n * @param version The created Project version.\n * */\n private okFunc = (version: ProjectVersion): void => {\n this.isSaving = false;\n\n this.notification.successLocal(\n 'projects.projectVersions.createProjectVersionModal.messages.created',\n );\n\n this.activeModal.close();\n if (this.moveToCard) {\n // Slide to the Project version card after creation.\n this.state.go('projectVersion', {\n routeMode: RouteMode.continue,\n entityId: version.id,\n projectId: this.sourceVersion.mainProject.id,\n });\n } else {\n // Open the Project version on the Project card after creation.\n this.versionCardService.openVersionCard(version);\n }\n };\n\n /**\n * The Project version Create error event handler.\n *\n * @param error The error.\n * */\n private errorFunc = (error: Exception): void => {\n this.message.errorDetailed(error);\n this.updateFormState(false);\n this.isSaving = false;\n };\n}\n","\n\n
    \n
    \n

    \n {{ 'projects.projectVersions.createProjectVersionModal.header.create' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectVersionsService } from 'src/app/projects/project-versions/project-versions.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/**\n * Represents the Project versions entity list content.\n * */\n@Component({\n selector: 'wp-project-version-list',\n templateUrl: 'project-version-list.component.html',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ProjectVersionsService,\n ProjectVersionCardService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class ProjectVersionListComponent implements OnInit, OnDestroy {\n private collection = this.data.collection('ProjectVersions');\n private projectsCollection = this.data.collection('Projects');\n\n /** The Project versions main Project. */\n private project: Project = null;\n\n /** The selected Project version. */\n private selectedVersion: ProjectVersion = null;\n\n /** Determines whether the list is editable or not. */\n private readonly = true;\n /** Determines whether the merge action is allowed or not. */\n private mergeAllowed = false;\n\n private currencyCode: string;\n private baseCurrencyCode: string;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n /** The Get Project version subscription cancel subject. */\n private getProjectVersionDestroyed$ = new Subject();\n\n public formName$ = new Subject();\n\n constructor(\n @Inject('projectId') public projectId,\n public versionCardService: ProjectVersionCardService,\n private app: AppService,\n private versionService: ProjectVersionsService,\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private data: DataService,\n private notification: NotificationService,\n private actions: ActionPanelService,\n private translate: TranslateService,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit(): void {\n if (this.projectId) {\n this.service.contextFilter = [\n {\n mainProjectId: { type: 'guid', value: this.projectId },\n },\n ];\n }\n this.baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n this.loadProject();\n this.versionService.load(this.projectId);\n this.initActionPanel();\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: any[]) => {\n if (rows?.length === 1) {\n this.updateActionVisibility(this.gridService.selectedGroupValue);\n } else {\n this.updateActionVisibility(null);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.getProjectVersionDestroyed$.next();\n this.destroyed$.next();\n this.versionCardService.initProjectVersion();\n }\n\n /**\n * Sets the main menu actions.\n * */\n private initActionPanel() {\n // Main menu.\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'projects.projectVersions.list.actions.create',\n handler: () =>\n this.versionService.createVersion(this.selectedVersion, true),\n }),\n {\n title: 'projects.projectVersions.list.actions.merge',\n hint: 'projects.projectVersions.list.actions.merge',\n name: 'merge',\n isDropDown: false,\n iconClass: 'bi bi-sign-merge-left bi-15',\n isBusy: false,\n isVisible: false,\n handler: () =>\n this.versionService.openMergeVersionsDialog(\n this.projectId,\n this.currencyCode,\n ),\n },\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('projectVersion', {\n routeMode: RouteMode.continue,\n entityId: this.gridService.selectedGroupValue.id,\n projectId: this.projectId,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n {\n title: 'projects.projectVersions.list.actions.setMaster',\n hint: 'projects.projectVersions.list.actions.setMaster',\n name: 'setMasterBaseline',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: this.setMasterBaseline,\n },\n ]);\n }\n\n /**\n * Loads the Project entity.\n * */\n private loadProject() {\n this.currencyCode = this.baseCurrencyCode;\n if (this.projectId) {\n const query = {\n select: [\n 'id',\n 'name',\n 'editAllowed',\n 'versionViewAllowed',\n 'versionEditAllowed',\n 'versionMergeAllowed',\n ],\n expand: [{ currency: { select: ['name', 'id', 'alpha3Code'] } }],\n };\n this.projectsCollection\n .entity(this.projectId)\n .get(query)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (project) => {\n this.project = project;\n this.currencyCode =\n project.currency?.alpha3Code ?? this.baseCurrencyCode;\n\n this.formName$.next(\n this.translate.instant('projects.projectVersions.header', {\n projectName: project.name,\n }),\n );\n\n this.versionCardService.updateWorkProjectVersion(project);\n this.readonly = !project.versionEditAllowed;\n this.mergeAllowed = project.versionMergeAllowed;\n\n this.actions.action('create').isShown = !this.readonly;\n this.actions.action('merge').isShown =\n !this.readonly && this.mergeAllowed;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n }\n\n /**\n * Updates the main menu actions visibility state.\n * */\n private updateActionVisibility(row: any) {\n if (row) {\n this.getProjectVersionDestroyed$.next();\n this.selectedVersion = null;\n this.versionService\n .getVersion(row.id)\n .pipe(takeUntil(this.getProjectVersionDestroyed$))\n .subscribe({\n next: (version) => {\n this.selectedVersion = version;\n this.actions.action('card').isShown = true;\n this.actions.action('delete').isShown =\n !this.readonly && version.editAllowed;\n this.actions.action('setMasterBaseline').isShown =\n !this.readonly &&\n version.setMasterFlagAllowed &&\n version.masterBaseline === false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.detectChanges();\n },\n });\n } else {\n this.actions.action('card').isShown = false;\n this.actions.action('delete').isShown = false;\n this.actions.action('setMasterBaseline').isShown = false;\n }\n }\n\n /**\n * Sets the masterBaseline flag to true for the selected Project version.\n * */\n private setMasterBaseline = () => {\n this.collection\n .entity(this.gridService.selectedGroupValue.id)\n .action('SetVersionMaster')\n .execute({\n masterBaseline: true,\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projectVersions.list.messages.setMaster',\n );\n this.service.reload();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n },\n });\n };\n}\n","@if (projectId) {\n \n}\n\n\n","import { Injectable } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\n\n/** Предоставляет методы для работы коллекциями, связанными с проектом или его версиями. */\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectVersionDataService {\n private projectsCollectionName = 'Projects';\n // Определяет соотношения наименований коллекций проекта к его версиям или их связанным сущностям.\n private _collectionMapping: Map = new Map([\n [this.projectsCollectionName, 'ProjectVersions'],\n ]);\n\n constructor(private data: DataService) {}\n\n /**\n * Возвращает коллекцию для отправки запроса по проекту или его версии.\n *\n * @param projectVersion Версия проекта.\n * @param collectionName Наименование коллекции.\n * */\n public collection(projectVersion: ProjectVersion, collectionName: string) {\n return this.data.collection(\n this.fnCollectionName(projectVersion, collectionName),\n );\n }\n\n /**\n * Возвращает сущность коллекции для отправки запроса по проекту или его версии.\n *\n * @param projectVersion Версия проекта.\n * @param projectId ID проекта.\n * */\n public projectCollectionEntity(\n projectVersion: ProjectVersion,\n projectId: string,\n ) {\n const entityId = this.fnProjectEntityId(projectVersion, projectId);\n return this.data\n .collection(\n this.fnCollectionName(projectVersion, this.projectsCollectionName),\n )\n .entity(entityId);\n }\n\n /**\n * Возвращает наименование коллекции проекта или его версии или их связанных сущностей\n * в зависимости от выбранного значения в карточке проекта.\n *\n * @param projectVersion Версия проекта.\n * @param collectionName Наименование коллекции проекта или его связанных сущностей.\n * */\n private fnCollectionName = (\n projectVersion: ProjectVersion,\n collectionName: string,\n ): string => {\n if (!this._collectionMapping.has(collectionName)) {\n throw new Error(`Not found ${collectionName} in mapping`);\n }\n\n return ProjectVersionUtil.isWorkProjectVersion(projectVersion)\n ? collectionName\n : this._collectionMapping.get(collectionName);\n };\n\n /**\n * Возвращает ID проекта или его версии в зависимости от выбранного значения в карточке проекта.\n *\n * @param projectVersion Версия проекта.\n * @param projectId ID проекта.\n * */\n private fnProjectEntityId = (\n projectVersion: ProjectVersion,\n projectId: string,\n ) =>\n ProjectVersionUtil.isWorkProjectVersion(projectVersion)\n ? projectId\n : projectVersion?.id;\n}\n","import { DateTime } from 'luxon';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ForecastPeriod } from 'src/app/shared/models/enums/forecast-period.enum';\nimport { ClientSession } from 'src/app/shared/models/session/client-session.model';\n\n/** Предоставляет методы для работы с сущностями, связанными с проектом или его версиями. */\nexport class ProjectVersionUtil {\n /**\n * Определяет, выбран ли проект или его версия в списке версий для отображения данных в карточке проекта.\n * У \"Рабочей\" версии проекта данные версии не определены.\n * По умолчанию считается выбранной \"Рабочая\" версия проекта.\n *\n * @param projectVersion Версия проекта.\n * */\n public static isWorkProjectVersion(projectVersion: ProjectVersion) {\n return projectVersion?.state == null ?? true;\n }\n\n /**\n * Устанавливает свойства сущности, относящиеся к проекту или его версии.\n *\n * @param projectVersion Версия проекта.\n * @param entity Сущность.\n * @param projectId ID проекта.\n * */\n public static setEntityRootPropertyId(\n projectVersion: ProjectVersion,\n entity: any,\n projectId: string,\n ) {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n Object.assign(entity, { projectId });\n } else {\n Object.assign(entity, { versionId: projectVersion.id });\n }\n }\n\n /**\n * Adds OData query filter to search data by Project/Version ID.\n *\n * @param query OData query.\n * @param projectVersion Project version.\n * @param projectId Project ID.\n * @param includeMaster Indicates whether to include Master Project version to filter or not.\n * */\n public static addProjectEntityIdFilter(\n query: any,\n projectVersion: ProjectVersion,\n projectId: string,\n includeMaster = false,\n ) {\n query.filter ??= [];\n const conditions = { or: [] };\n\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n conditions.or.push({\n projectId: { eq: { type: 'guid', value: projectId } },\n });\n if (includeMaster) {\n conditions.or.push({\n version: {\n and: {\n mainProjectId: { eq: { type: 'guid', value: projectId } },\n masterBaseline: true,\n },\n },\n });\n }\n } else {\n conditions.or.push({\n versionId: { eq: { type: 'guid', value: projectVersion?.id } },\n });\n if (includeMaster) {\n conditions.or.push({\n version: {\n and: {\n mainProjectId: {\n eq: { type: 'guid', value: projectVersion?.mainProject.id },\n },\n masterBaseline: true,\n },\n },\n });\n }\n }\n\n query.filter.push(conditions);\n }\n\n /**\n * Добавляет элемент в фильтр OData запроса для поиска данных по ID версии проекта.\n *\n * @param urlParams OData параметры Url запроса.\n * @param projectVersion Версия проекта.\n * @param assignNull Выставить в null, если версия не выбрана\n * */\n public static addVersionIdQueryParam(\n urlParams: any,\n projectVersion: ProjectVersion,\n assignNull = false,\n ) {\n urlParams ??= {};\n if (!ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n Object.assign(urlParams, { versionId: projectVersion.id });\n } else if (assignNull) {\n Object.assign(urlParams, { versionId: null });\n }\n }\n\n /**\n * Добавляет поля проекта или его версии в список OData запроса для выборки.\n *\n * @param projectVersion Версия проекта.\n * @param select Список полей для выборки в OData.\n * */\n public static addProjectSelectFields(\n projectVersion: ProjectVersion,\n select: string[],\n ) {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n select.push('projectId');\n } else {\n select.push('versionId');\n }\n }\n\n /**\n * Возвращает сохраненный в архиве forecastBreakpoint.\n * Если версия не является снапшотом - берет из сессии.\n *\n * @param projectVersion Версия проекта.\n * @param session Клиентская сессия.\n * */\n public static getForecastBreakpoint(\n projectVersion: ProjectVersion,\n session: ClientSession,\n ): string {\n if (projectVersion?.snapshot?.forecastBreakpoint) {\n return projectVersion?.snapshot?.forecastBreakpoint;\n }\n const forecastPeriod = session.forecastPeriod;\n const now = DateTime.now();\n return (() => {\n switch (forecastPeriod) {\n case ForecastPeriod.Day: {\n return now.startOf('day').toISODate();\n }\n case ForecastPeriod.Week: {\n return now.startOf('week').toISODate();\n }\n case ForecastPeriod.Month: {\n return now.startOf('month').toISODate();\n }\n }\n })();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { ProjectVersionMergeStepType } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-step-type.type';\nimport { GetProjVersionMergeDetails } from 'src/app/projects/project-versions/project-versions-merge-modal/models/get-proj-version-merge-details.model';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { ProjectVersionMergeType } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-type.model';\nimport { ProjectVersionMergeOption } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-option.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjVersionMergeDetailsDto } from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-details-dto.model';\nimport { ProjVersionMergeMode } from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-mode.enum';\nimport { ProjVersionMergeDetailType } from '../models/proj-version-merge-detail-type.model';\n\n/**\n * Provides methods to work with Project versions on merge modal.\n * */\n@Injectable()\nexport class ProjectVersionsMergeModalService {\n collection = this.data.collection('ProjectVersions');\n\n get currentStepType() {\n return this._currentStepType;\n }\n\n get paramSelectionForm() {\n return this._paramSelectionForm;\n }\n\n get paramSelectionValue() {\n return this._paramSelectionValue;\n }\n\n get currencyCode() {\n return this._currencyCode;\n }\n\n set currencyCode(value: string) {\n this._currencyCode = value;\n }\n\n /** The model value in the ParamSelection Merge tool step. */\n private _paramSelectionValue: GetProjVersionMergeDetails = null;\n\n /** The modal content loading state subject. */\n private _isLoading = new BehaviorSubject(false);\n\n /** The ParamSelection form external submit event subject. */\n private _paramSelectionStepSubmitting = new Subject();\n\n /** The ParamSelection form external submit started subject. */\n private _startParamSelectionStepSubmit = new Subject();\n\n /** The ParamSelection form external submit finished subject. */\n private _finishParamSelectionStepSubmit = new Subject();\n\n /** The MergeUpdateDetails Merge tool step model subject. */\n private _mergeUpdateDetails = new BehaviorSubject<{\n dto: ProjVersionMergeDetailsDto;\n hasConflicts: boolean;\n }>({ dto: null, hasConflicts: false });\n\n /** The Merge tool operation finished subject. */\n private _mergeFinished = new Subject();\n\n /** The modal content loading state observable. */\n public isLoading$ = this._isLoading.asObservable();\n\n /** The ParamSelection form external submit event observable. */\n public paramSelectionStepSubmitting$ =\n this._paramSelectionStepSubmitting.asObservable();\n\n /** The ParamSelection form external submit started observable. */\n public startParamSelectionStepSubmit$ =\n this._startParamSelectionStepSubmit.asObservable();\n\n /** The MergeUpdateDetails Merge tool step model observable. */\n public mergeUpdateDetails$ = this._mergeUpdateDetails.asObservable();\n\n /** The Merge tool operation finished observable. */\n public mergeFinished$ = this._mergeFinished.asObservable();\n\n /** The ParamSelection form external submit finished subscription. */\n private _finishParamSelectionStepSubmit$$: Subscription;\n\n /** The available Merge tool step types. */\n private readonly _stepTypes: ProjectVersionMergeStepType[] = [];\n\n /** The current Merge tool step type. */\n private _currentStepType: ProjectVersionMergeStepType = 'paramSelection';\n\n private _currencyCode: string;\n\n /** The FormGroup in the ParamSelection Merge tool step. */\n private _paramSelectionForm = this.fb.group({\n type: [ProjectVersionMergeType.replace.code, Validators.required],\n option: [ProjectVersionMergeOption.default.code, Validators.required],\n source: this.fb.array([]),\n target: this.fb.group({\n version: [null],\n versionName: [null],\n }),\n });\n\n constructor(\n private data: DataService,\n private message: MessageService,\n private fb: UntypedFormBuilder,\n ) {\n this._stepTypes = ['paramSelection', 'mergeUpdateDetails'];\n this._currentStepType = 'paramSelection';\n }\n\n /**\n * Disposes all the resources related with the service.\n * */\n public dispose() {\n this._finishParamSelectionStepSubmit$$?.unsubscribe();\n }\n\n /**\n * Changes the Merge tool step.\n *\n * @param forward\n * The step direction flag.\n * True - forward direction.\n * False - backward direction.\n * */\n public changeStep(forward = true) {\n const currentStepIdx = this._stepTypes.indexOf(this._currentStepType);\n if (currentStepIdx !== -1) {\n const newStepIdx = forward ? currentStepIdx + 1 : currentStepIdx - 1;\n const newStep = this._stepTypes[newStepIdx];\n\n if (forward) {\n // Change to the next step.\n if (newStep === 'mergeUpdateDetails') {\n this._paramSelectionForm.markAllAsTouched();\n\n if (this._paramSelectionForm.valid) {\n // Change the step only after the respective component form submit is finished.\n this._finishParamSelectionStepSubmit$$?.unsubscribe();\n this._finishParamSelectionStepSubmit$$ =\n this._finishParamSelectionStepSubmit.subscribe(() => {\n this._currentStepType = newStep;\n });\n // Trigger the ParamSelection form external submit started.\n this._startParamSelectionStepSubmit.next();\n }\n }\n } else {\n // Change to the previous step.\n if (newStep === 'paramSelection') {\n this._paramSelectionForm.markAsUntouched();\n this._mergeUpdateDetails.next({ dto: null, hasConflicts: false });\n }\n this._currentStepType = newStep;\n }\n }\n }\n\n /**\n * Triggers the ParamSelection form external submit event.\n *\n * @param value The Merge Project version DTO parameters.\n * */\n public submitParamSelectionForm(value: GetProjVersionMergeDetails) {\n // Store the parameters.\n this._paramSelectionValue = value;\n this._paramSelectionStepSubmitting.next();\n }\n\n /**\n * Calls the Project version merge operation depending on selected mode.\n *\n * @param mode\n * The Merge mode.\n * Merge mode values:\n * 1. ShowDiff - Call Merge operation in read-only mode and return the change details.\n * 2. Apply - Call Merge operation.\n * */\n public merge(mode: ProjVersionMergeMode) {\n let actionName = '';\n\n switch (mode) {\n case ProjVersionMergeMode.showDiff:\n actionName = 'GetMergeDetails';\n break;\n case ProjVersionMergeMode.apply:\n actionName = 'Merge';\n break;\n }\n\n this._isLoading.next(true);\n\n this.collection\n .action(actionName)\n .execute(this._paramSelectionValue)\n .subscribe({\n next: (response) => {\n if (ProjVersionMergeMode.showDiff === mode) {\n const hasConflicts =\n (response)?.detail.entries.find(\n (x) => x.type === ProjVersionMergeDetailType.conflict.code,\n ) !== undefined;\n this._mergeUpdateDetails.next({\n dto: response,\n hasConflicts,\n });\n // Trigger the ParamSelection form external submit finished event.\n this._finishParamSelectionStepSubmit.next();\n }\n if (ProjVersionMergeMode.apply === mode) {\n this._mergeFinished.next();\n }\n this._isLoading.next(false);\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this._isLoading.next(false);\n },\n });\n }\n}\n","/** Represents the Merge Project version DTO parameters. */\nexport class GetProjVersionMergeDetails {\n /** The Merge type. */\n type: string;\n\n /** The Merge option. */\n option: string;\n\n /** The Source. */\n source: ProjVersionMergeSource;\n\n /** The Target. */\n target: ProjVersionMergeTarget;\n}\n\n/** Represents the Project version merge source. */\nexport class ProjVersionMergeSource {\n /** The Source project version entries. */\n sourceEntries: Array;\n}\n\n/** Represents the Project version merge target. */\nexport class ProjVersionMergeTarget {\n /**\n * The Target entity type.\n * */\n entityType: string;\n\n /**\n * The Target entity ID.\n * */\n id: string;\n\n /**\n * The Target entity name.\n *\n * @remarks If defined, the new entity with the specified name will be created.\n * */\n name?: string;\n}\n\n/** Represents the Project version merge source entity entry. */\nexport class ProjVersionMergeSourceEntry {\n /** The Source Project version ID. */\n versionId: string;\n\n /**\n * The Source Project version index.\n *\n * @remarks Defines the items order for merge operation.\n * */\n index: number;\n}\n","import { ProjectVersionMergeEnum } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n/** Represents the Project version merge detail diff entity type. */\nexport class ProjVersionMergeDetailEntityType extends ProjectVersionMergeEnum {\n /** Team member. */\n public static get teamMember(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'TeamMember',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.teamMember',\n };\n }\n\n /** Generic. */\n public static get generic(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'Generic',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.generic',\n };\n }\n\n /** Team member cost value. */\n public static get teamMemberCostValue(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'TeamMemberCostValue',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.teamMemberCostValue',\n };\n }\n\n /** Tariff. */\n public static get tariff(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'Tariff',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.tariff',\n };\n }\n\n /** Tariff rate. */\n public static get tariffRate(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'TariffRate',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.tariffRate',\n };\n }\n\n /** Tariff assignment. */\n public static get tariffAssignment(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'TariffAssignment',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.tariffAssignment',\n };\n }\n\n /** Task. */\n public static get task(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'Task',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.task',\n };\n }\n\n /** Task assignment. */\n public static get taskAssignment(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'TaskAssignment',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.taskAssignment',\n };\n }\n\n /** Resource plan entry. */\n public static get resourcePlanEntry(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'ResourcePlanEntry',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.resourcePlanEntry',\n };\n }\n\n /** Recurring Expense rule. */\n public static get recurringExpenseRule(): ProjVersionMergeDetailEntityType {\n return {\n id: Guid.generate(),\n code: 'RecurringExpenseRule',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.entityType.recurringExpenseRule',\n };\n }\n}\n\nexport const ProjVersionMergeDetailEntityTypes: ProjVersionMergeDetailEntityType[] =\n [\n ProjVersionMergeDetailEntityType.teamMember,\n ProjVersionMergeDetailEntityType.generic,\n ProjVersionMergeDetailEntityType.teamMemberCostValue,\n ProjVersionMergeDetailEntityType.tariff,\n ProjVersionMergeDetailEntityType.tariffRate,\n ProjVersionMergeDetailEntityType.tariffAssignment,\n ProjVersionMergeDetailEntityType.task,\n ProjVersionMergeDetailEntityType.taskAssignment,\n ProjVersionMergeDetailEntityType.resourcePlanEntry,\n ProjVersionMergeDetailEntityType.recurringExpenseRule,\n ];\n","import { ProjectVersionMergeEnum } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n/** Represents the Project version merge detail diff type. */\nexport class ProjVersionMergeDetailType extends ProjectVersionMergeEnum {\n /** Add */\n public static get add(): ProjVersionMergeDetailType {\n return {\n id: Guid.generate(),\n code: 'Add',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.detailType.add',\n };\n }\n\n /** Update */\n public static get update(): ProjVersionMergeDetailType {\n return {\n id: Guid.generate(),\n code: 'Update',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.detailType.update',\n };\n }\n\n /** Delete */\n public static get delete(): ProjVersionMergeDetailType {\n return {\n id: Guid.generate(),\n code: 'Delete',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.detailType.delete',\n };\n }\n\n /** Conflict */\n public static get conflict(): ProjVersionMergeDetailType {\n return {\n id: Guid.generate(),\n code: 'Conflict',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.detailType.conflict',\n };\n }\n}\n\nexport const ProjVersionMergeDetailTypes: ProjVersionMergeDetailType[] = [\n ProjVersionMergeDetailType.add,\n ProjVersionMergeDetailType.update,\n ProjVersionMergeDetailType.delete,\n ProjVersionMergeDetailType.conflict,\n];\n","import { ProjectVersionMergeEnum } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n/** Represents the Project version merge KPI kind. */\nexport class ProjVersionMergeKpiKind extends ProjectVersionMergeEnum {\n /** Hours. */\n public static get hours(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Hours',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.hours',\n };\n }\n\n /** Cost. */\n public static get cost(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Cost',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.cost',\n };\n }\n\n /** Revenue. */\n public static get revenue(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Revenue',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.revenue',\n };\n }\n\n /** Billing. */\n public static get billing(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Billing',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.billing',\n };\n }\n\n /** Expenses. */\n public static get expenses(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Expenses',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.expenses',\n };\n }\n\n /** Profitability. */\n public static get profitability(): ProjVersionMergeKpiKind {\n return {\n id: Guid.generate(),\n code: 'Profitability',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.kpiKind.profitability',\n };\n }\n}\n\nexport const ProjVersionMergeKpiKinds: ProjVersionMergeKpiKind[] = [\n ProjVersionMergeKpiKind.hours,\n ProjVersionMergeKpiKind.cost,\n ProjVersionMergeKpiKind.revenue,\n ProjVersionMergeKpiKind.billing,\n ProjVersionMergeKpiKind.expenses,\n ProjVersionMergeKpiKind.profitability,\n];\n","/** Represents the Project version merge operation mode. */\nexport enum ProjVersionMergeMode {\n /** The Show difference merge mode. */\n showDiff,\n /** The Apply merge mode. */\n apply,\n}\n","/** Represents the Base class for Project version merge enums. */\nexport class ProjectVersionMergeEnum {\n id: string;\n code: string;\n name: string;\n}\n","import { ProjectVersionMergeEnum } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n/** Represents the Project version merge option. */\nexport class ProjectVersionMergeOption extends ProjectVersionMergeEnum {\n /**\n * The Default merge option.\n *\n * @remarks Merge source to target.\n * */\n public static get default(): ProjectVersionMergeOption {\n return {\n id: Guid.generate(),\n code: 'Default',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.paramSelection.option.default',\n };\n }\n\n /**\n * The Combine merge option.\n *\n * @remarks Merge several sources to target.\n * */\n public static get combine(): ProjectVersionMergeOption {\n return {\n id: Guid.generate(),\n code: 'Combine',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.paramSelection.option.combine',\n };\n }\n}\n\nexport const ProjectVersionMergeOptions: ProjectVersionMergeOption[] = [\n ProjectVersionMergeOption.default,\n ProjectVersionMergeOption.combine,\n];\n","import { ProjectVersionMergeEnum } from 'src/app/projects/project-versions/project-versions-merge-modal/models/project-version-merge-enum.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n/** Represents the Project version merge operation type. */\nexport class ProjectVersionMergeType extends ProjectVersionMergeEnum {\n /** The Replace merge type. */\n public static get replace(): ProjectVersionMergeType {\n return {\n id: Guid.generate(),\n code: 'Replace',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.paramSelection.type.replace',\n };\n }\n\n /** The Add merge type. */\n public static get add(): ProjectVersionMergeType {\n return {\n id: Guid.generate(),\n code: 'Add',\n name: 'projects.projectVersions.projectVersionsMergeModal.steps.paramSelection.type.add',\n };\n }\n}\n\nexport const ProjectVersionMergeTypes: ProjectVersionMergeType[] = [\n ProjectVersionMergeType.replace,\n ProjectVersionMergeType.add,\n];\n","import {\n ProjVersionMergeDetailsDto,\n ProjVersionMergeKpiEntry,\n} from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-details-dto.model';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n ProjVersionMergeKpiKind,\n ProjVersionMergeKpiKinds,\n} from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-kpi-kind.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ProjectVersionsMergeModalService } from 'src/app/projects/project-versions/project-versions-merge-modal/core/project-versions-merge-modal.service';\nimport { Subject } from 'rxjs';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { DecimalPipe, PercentPipe } from '@angular/common';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { PercentPointPipe } from 'src/app/shared/pipes/percent-point.pipe';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectVersionMergeOption } from '../../models/project-version-merge-option.model';\n\n/**\n * Represents the MergeUpdateDetails Merge tool step Values tab content.\n * */\n@Component({\n selector: 'wp-project-version-merge-details-kpi',\n templateUrl: './project-version-merge-details-kpi.component.html',\n styleUrls: ['./project-version-merge-details-kpi.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectVersionMergeDetailsKpiComponent\n implements OnInit, OnDestroy\n{\n rows = new Array();\n\n /** Flag indicating whether the MergeUpdateDetails model has conflicts or not. */\n public hasConflicts = false;\n\n public readonly projectVersionsMergeModalKey =\n 'projects.projectVersions.projectVersionsMergeModal';\n\n /** The KPI columns. */\n columns: Array = [\n {\n name: 'kind',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.kind`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.kind`,\n width: '100%',\n visible: true,\n },\n {\n name: 'before',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.before`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.before`,\n align: 'text-end',\n width: '100%',\n visible: true,\n },\n {\n name: 'after',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.after`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.after`,\n align: 'text-end',\n width: '100%',\n visible: true,\n },\n {\n name: 'diff',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.diff`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.kpiColumns.diff`,\n align: 'text-end',\n width: '100%',\n visible: true,\n },\n ];\n\n /** The KPI visible columns. */\n displayedColumns: Array = [];\n\n private currencyCode: string;\n\n /** The available KPI kinds. */\n private kpiKinds = ProjVersionMergeKpiKinds;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public mergeModalService: ProjectVersionsMergeModalService,\n translate: TranslateService,\n private cdRef: ChangeDetectorRef,\n private numberPipe: DecimalPipe,\n private workPipe: WorkPipe,\n private percentPipe: PercentPipe,\n private percentPointPipe: PercentPointPipe,\n private wpCurrencyPipe: WpCurrencyPipe,\n ) {\n this.kpiKinds.forEach((x) => (x.name = translate.instant(x.name)));\n }\n\n ngOnInit(): void {\n this.currencyCode = this.mergeModalService.currencyCode;\n this.mergeModalService.mergeUpdateDetails$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((details) => {\n this.hasConflicts = details.hasConflicts;\n this.fillForm(details.dto);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Tracks ngFor columns by name.\n *\n * @param index The column index.\n * @param item The column.\n * @returns The column name.\n * */\n public trackColumn = (index: number, item: any) => item['name'];\n\n /**\n * Tracks ngFor rows by id.\n *\n * @param index The row index.\n * @param item The row.\n * @returns The row id.\n * */\n public trackRow = (index: number, item: any) => item['id'];\n\n /**\n * Fills the Project versions Merge Values form group.\n *\n * @param dto The Merge details DTO.\n * */\n private fillForm(dto: ProjVersionMergeDetailsDto) {\n this.rows = [];\n\n if (!this.hasConflicts) {\n const isCombine =\n ProjectVersionMergeOption.combine.code ===\n this.mergeModalService.paramSelectionValue.option;\n this.columns.forEach((c) => {\n c.visible = !(isCombine && ['before', 'diff'].includes(c.name));\n });\n this.displayedColumns = this.columns.filter((c) => c.visible);\n\n dto?.kpi.estimateEntries.forEach((entry) => {\n const kindName = this.kpiKinds.find((x) => x.code === entry.kind)?.name;\n const row: any = {\n id: Guid.generate(),\n kind: kindName,\n after: this.getEntryField(entry, 'after'),\n };\n if (!isCombine) {\n row.before = this.getEntryField(entry, 'before');\n row.diff = this.getEntryField(entry, 'diff');\n }\n\n this.rows.push(row);\n });\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Gets the KPI entry field transformed with the respective pipe depending on the KPI kind and field itself.\n *\n * @param entry The KPI entry.\n * @param fieldName The KPI entry field name.\n * @returns The KPI entry field transformed with the respective pipe.\n * */\n private getEntryField(entry: ProjVersionMergeKpiEntry, fieldName: string) {\n const fieldNameDiff = 'diff';\n switch (entry.kind) {\n case ProjVersionMergeKpiKind.hours.code:\n if (fieldName !== fieldNameDiff) {\n return this.workPipe.transform(entry[fieldName]);\n } else {\n return this.percentPipe.transform(\n this.getPercentValue(entry, fieldName),\n );\n }\n case ProjVersionMergeKpiKind.cost.code:\n case ProjVersionMergeKpiKind.revenue.code:\n case ProjVersionMergeKpiKind.billing.code:\n case ProjVersionMergeKpiKind.expenses.code:\n if (fieldName !== fieldNameDiff) {\n return this.wpCurrencyPipe.transform(\n entry[fieldName],\n this.currencyCode,\n );\n } else {\n return this.percentPipe.transform(\n this.getPercentValue(entry, fieldName),\n );\n }\n case ProjVersionMergeKpiKind.profitability.code:\n if (fieldName !== fieldNameDiff) {\n return this.percentPipe.transform(entry[fieldName]);\n } else {\n return this.percentPointPipe.transform(entry[fieldName], false);\n }\n default:\n return '';\n }\n }\n\n /**\n * Gets the KPI entry percent field value depending on the other KPI fields.\n *\n * @param entry The KPI entry.\n * @param fieldName The KPI entry field name.\n * @returns Infinity if before = 0, after != 0.\n * NaN if before = 0, after = 0.\n * */\n private getPercentValue(entry: ProjVersionMergeKpiEntry, fieldName: string) {\n if (entry.before === 0) {\n return entry.after !== 0 ? Infinity : NaN;\n }\n\n return entry[fieldName];\n }\n}\n","\n {{\n 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.conflictsText'\n | translate\n }}\n\n\n\n \n \n \n \n {{ column.header | translate }}\n \n \n \n \n \n \n {{ row[column.name] }}\n \n \n \n \n \n \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport {\n ProjVersionMergeDetailEntry,\n ProjVersionMergeDetailsDto,\n} from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-details-dto.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjVersionMergeDetailTypes } from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-detail-type.model';\nimport { ProjVersionMergeDetailEntityTypes } from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-detail-entity-type.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ProjectVersionsMergeModalService } from 'src/app/projects/project-versions/project-versions-merge-modal/core/project-versions-merge-modal.service';\nimport { Subject } from 'rxjs';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/**\n * Represents the MergeUpdateDetails Merge tool step Change details tab content.\n * */\n@Component({\n selector: 'wp-project-version-merge-details-updates',\n templateUrl: './project-version-merge-details-updates.component.html',\n styleUrls: ['./project-version-merge-details-updates.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class ProjectVersionMergeDetailsUpdatesComponent\n implements OnInit, OnDestroy\n{\n formArray = new UntypedFormArray([]);\n\n public readonly projectVersionsMergeModalKey =\n 'projects.projectVersions.projectVersionsMergeModal';\n\n gridOptions: GridOptions = {\n sorting: true,\n selectionType: SelectionType.row,\n view: {\n name: 'mergeDetailsUpdates',\n columns: [\n {\n name: 'entityType',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.entityType`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.entityType`,\n type: GridColumnType.String,\n width: '100%',\n },\n {\n name: 'description',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.description`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.description`,\n type: GridColumnType.String,\n width: '100%',\n },\n {\n name: 'type',\n header: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.type`,\n hint: `${this.projectVersionsMergeModalKey}.steps.mergeUpdateDetails.detailsColumns.type`,\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n order: {\n column: 'entityType',\n reverse: true,\n },\n },\n };\n\n /** The merge detail DTO. */\n private mergeDetailsDto: ProjVersionMergeDetailsDto;\n\n /** The available merge detail types. */\n private detailTypes = ProjVersionMergeDetailTypes;\n\n /** The available merge detail entity types. */\n private detailEntityTypes = ProjVersionMergeDetailEntityTypes;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public mergeModalService: ProjectVersionsMergeModalService,\n translate: TranslateService,\n private gridService: GridService,\n private fb: UntypedFormBuilder,\n ) {\n this.detailTypes.forEach((x) => (x.name = translate.instant(x.name)));\n this.detailEntityTypes.forEach((x) => (x.name = translate.instant(x.name)));\n }\n\n ngOnInit(): void {\n this.mergeModalService.mergeUpdateDetails$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((details) => {\n this.mergeDetailsDto = details.dto;\n this.fillForm(details.dto?.detail.entries);\n });\n this.gridService.order$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((order) => this.orderChanged(order));\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Fills the Project versions Merge Change details form group.\n *\n * @param entries The Change detail entries.\n * @param reorder\n * The entries reorder flag.\n * True - reorder the entries.\n * False - fill the entries and set the default order.\n * */\n private fillForm(\n entries: Array,\n reorder = false,\n ) {\n this.formArray.clear();\n entries?.forEach((entry) => {\n const typeName = !reorder\n ? this.detailTypes.find((x) => x.code === entry.type)?.name\n : entry.type;\n const entityTypeName = !reorder\n ? this.detailEntityTypes.find((x) => x.code === entry.entityType)?.name\n : entry.entityType;\n const group = this.fb.group({\n id: Guid.generate(),\n type: typeName,\n entityType: entityTypeName,\n description: entry.description,\n });\n this.formArray.push(group);\n });\n if (!reorder) {\n this.gridService.setOrder(this.gridOptions.view.order);\n }\n this.gridService.detectChanges();\n }\n\n /**\n * The grid column order change handler.\n * Reorders the rows with the new order.\n *\n * @param order The new order.\n * */\n private orderChanged(order: Order) {\n const entries =\n this.formArray.getRawValue() as Array;\n const sortedEntries = entries.sort((a, b) =>\n ProjectVersionMergeDetailsUpdatesComponent.fnCompareForSort(order, a, b),\n );\n this.fillForm(sortedEntries, true);\n }\n\n /**\n * Compares the Change detail entries in sorting.\n * Uses the order to get the column and the order direction in sorting.\n *\n * @param order The order.\n * @param a The first entry.\n * @param b The second entry.\n * */\n private static fnCompareForSort(\n order: Order,\n a: ProjVersionMergeDetailEntry,\n b: ProjVersionMergeDetailEntry,\n ) {\n const fieldA = a[order.column];\n const fieldB = b[order.column];\n\n if (fieldA < fieldB) {\n return order.reverse ? -1 : 1;\n } else {\n return order.reverse ? 1 : -1;\n }\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport { ProjectVersionsMergeModalService } from 'src/app/projects/project-versions/project-versions-merge-modal/core/project-versions-merge-modal.service';\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/**\n * Represents the MergeUpdateDetails Merge tool step content.\n * */\n@Component({\n selector: 'wp-project-versions-merge-details',\n templateUrl: './project-versions-merge-details.component.html',\n styleUrls: ['./project-versions-merge-details.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class ProjectVersionsMergeDetailsComponent implements OnInit {\n /** The selected tab. */\n public activeTab: string;\n\n /** The available tabs. */\n public tabs: any[] = [\n {\n header:\n 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.tabs.kpi',\n name: 'kpi',\n },\n {\n header:\n 'projects.projectVersions.projectVersionsMergeModal.steps.mergeUpdateDetails.tabs.details',\n name: 'details',\n },\n ];\n\n constructor(public mergeModalService: ProjectVersionsMergeModalService) {}\n\n ngOnInit(): void {\n this.activeTab = this.tabs[0].name;\n }\n\n /**\n * The Tab change handler.\n * Changes the active tab.\n *\n * @param changeEvent The event object.\n * */\n public onNavChange(changeEvent: NgbNavChangeEvent) {\n this.activeTab = changeEvent.nextId;\n }\n}\n"," \n\n
    \n \n\n \n \n \n \n \n \n
    \n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subject } from 'rxjs';\nimport { ProjectVersionsMergeModalService } from 'src/app/projects/project-versions/project-versions-merge-modal/core/project-versions-merge-modal.service';\nimport { ProjVersionMergeMode } from 'src/app/projects/project-versions/project-versions-merge-modal/models/proj-version-merge-mode.enum';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { HttpClient } from '@angular/common/http';\nimport { saveAs } from 'file-saver';\nimport { MessageService } from 'src/app/core/message.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { StateService } from '@uirouter/core';\nimport { ProjectVersionMergeOption } from './models/project-version-merge-option.model';\n\n/**\n * Represents the Project versions Merge tool modal.\n * */\n@Component({\n selector: 'wp-project-versions-merge-form',\n templateUrl: './project-versions-merge-modal.component.html',\n styleUrls: ['./project-versions-merge-modal.component.scss'],\n providers: [ProjectVersionsMergeModalService],\n standalone: false,\n})\nexport class ProjectVersionsMergeModalComponent implements OnInit, OnDestroy {\n @Input() projectId: string;\n @Input() currencyCode: string;\n\n /** Flag indicating whether the MergeUpdateDetails model has conflicts or not. */\n public hasConflicts = false;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public mergeModalService: ProjectVersionsMergeModalService,\n private state: StateService,\n private blockUI: BlockUIService,\n private message: MessageService,\n private activeModal: NgbActiveModal,\n private httpClient: HttpClient,\n ) {}\n\n ngOnInit(): void {\n this.mergeModalService.currencyCode = this.currencyCode;\n // Subscribe to ParamSelection Merge tool external submit event.\n this.mergeModalService.paramSelectionStepSubmitting$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.mergeModalService.merge(ProjVersionMergeMode.showDiff);\n });\n // Subscribe to MergeUpdateDetails Merge tool step model observable.\n this.mergeModalService.mergeUpdateDetails$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((details) => {\n this.hasConflicts = details.hasConflicts;\n });\n // Subscribe to Merge tool operation finished event.\n this.mergeModalService.mergeFinished$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.onMergeFinished());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.mergeModalService.dispose();\n }\n\n /**\n * The Download report button click handler.\n * Calls the report generation and download.\n * */\n public downloadReport() {\n const url = `${AppConfigService.config.api.url}/ProjectVersionMergeDetailsReport/GetMergeDetailsExcel`;\n\n this.blockUI.start();\n\n this.httpClient\n .post(url, this.mergeModalService.paramSelectionValue, {\n responseType: 'blob',\n })\n .subscribe({\n next: (data) => {\n const timestamp = Date.now();\n saveAs(\n data,\n `Project Version merge details Report_${timestamp}.xlsx`,\n );\n this.blockUI.stop();\n },\n error: async (error) => {\n const isPromise = !!error && typeof error.then === 'function';\n if (isPromise) {\n const errorText = await error;\n const errorObj = JSON.parse(errorText);\n this.message.error(errorObj.error.message);\n this.blockUI.stop();\n } else {\n this.message.error(error.message);\n this.blockUI.stop();\n }\n },\n });\n }\n\n /**\n * The modal Cancel button click handler.\n * Closes the active modal.\n * */\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n /**\n * The modal Merge button click handler.\n * Calls the Merge operation.\n * */\n public merge() {\n this.mergeModalService.merge(ProjVersionMergeMode.apply);\n }\n\n /**\n * The modal Merge finished handler.\n * Closes the active modal.\n * If the Combine merge option was selected, moves to the Project card.\n * */\n private onMergeFinished() {\n const paramSelectionValue = this.mergeModalService.paramSelectionValue;\n const isCombineToVersion =\n ProjectVersionMergeOption.combine.code === paramSelectionValue.option &&\n paramSelectionValue.target.entityType === 'ProjectVersion';\n this.activeModal.close();\n if (isCombineToVersion) {\n this.state.go('project', {\n entityId: this.projectId,\n openVersionId: paramSelectionValue.target.id,\n });\n }\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projectVersions.projectVersionsMergeModal.header' | translate }}\n

    \n \n
    \n\n
    \n \n \n \n \n \n \n
    \n\n \n
    \n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ProjectVersionsMergeModalComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-modal.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectVersionsMergeParamSelectionComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-param-selection/project-versions-merge-param-selection.component';\nimport { ProjectVersionsMergeDetailsComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-versions-merge-details.component';\nimport { ProjectVersionMergeDetailsUpdatesComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-updates/project-version-merge-details-updates.component';\nimport { ProjectVersionMergeDetailsKpiComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-details/project-version-merge-details-kpi/project-version-merge-details-kpi.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ProjectVersionsMergeModalComponent,\n ProjectVersionsMergeParamSelectionComponent,\n ProjectVersionsMergeDetailsComponent,\n ProjectVersionMergeDetailsUpdatesComponent,\n ProjectVersionMergeDetailsKpiComponent,\n ],\n imports: [CommonModule, SharedModule, GridModule],\n})\nexport class ProjectVersionsMergeModalModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ProjectVersionCardService } from '../../../card/core/project-version-card.service';\nimport { ProjectVersionsMergeModalService } from '../core/project-versions-merge-modal.service';\nimport { Subject } from 'rxjs';\nimport {\n ProjectVersionMergeType,\n ProjectVersionMergeTypes,\n} from '../models/project-version-merge-type.model';\nimport {\n ProjectVersionMergeOption,\n ProjectVersionMergeOptions,\n} from '../models/project-version-merge-option.model';\nimport { GetProjVersionMergeDetails } from '../models/get-proj-version-merge-details.model';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectVersionUtil } from '../../project-version-util';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FormGroupService } from 'src/app/shared/services/form-group.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionsService } from 'src/app/projects/project-versions/project-versions.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/**\n * Represents the Project versions ParamSelection Merge tool step content.\n * */\n@Component({\n selector: 'wp-project-versions-merge-param-selection',\n templateUrl: './project-versions-merge-param-selection.component.html',\n styleUrls: ['./project-versions-merge-param-selection.component.scss'],\n standalone: false,\n})\nexport class ProjectVersionsMergeParamSelectionComponent\n implements OnInit, OnDestroy\n{\n @Input() projectId: string;\n\n public form = this.mergeModalService.paramSelectionForm;\n\n public versionNameValidators = {\n maxLength: Constants.formNameMaxLength,\n };\n\n /** The available merge operation types. */\n mergeTypes = ProjectVersionMergeTypes;\n\n /** The available merge operation options. */\n mergeOptions = ProjectVersionMergeOptions;\n\n /** The merge operation types states. */\n mergeTypeStates: Dictionary = {\n [ProjectVersionMergeType.replace.code]: null,\n [ProjectVersionMergeType.add.code]: null,\n };\n\n /** The Project versions. */\n projectVersions: Array = [];\n\n /** The Source Project version group controls values. */\n sourceControlValues: Array> = [];\n\n get sourceFormArray() {\n return this.form.controls.source as UntypedFormArray;\n }\n\n get isDefaultMergeOption() {\n return (\n this.form.controls.option.value === ProjectVersionMergeOption.default.code\n );\n }\n\n get isCombineMergeOption() {\n return (\n this.form.controls.option.value === ProjectVersionMergeOption.combine.code\n );\n }\n\n /**\n * Filters the Project versions in list for merge operation.\n *\n * @param version The Project version to filter.\n * */\n private fnFilterVersions = (version: ProjectVersion): boolean =>\n version.isActive === true;\n\n /** The Source controls values change event subscriptions cancel subject. */\n private optionChanged$ = new Subject();\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public versionCardService: ProjectVersionCardService,\n public mergeModalService: ProjectVersionsMergeModalService,\n private versionService: ProjectVersionsService,\n private formGroupService: FormGroupService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.optionChanged$.next();\n }\n\n /**\n * Initializes the Merge Project version parameters form group.\n * */\n private initForm() {\n this.projectVersions = this.versionCardService.projectVersions\n .slice()\n .filter(this.fnFilterVersions);\n\n // Subscribe to ParamSelection Merge tool external submit started event.\n this.mergeModalService.startParamSelectionStepSubmit$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.mergeModalService.submitParamSelectionForm(this.getFormValue());\n });\n this.form.controls.option.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updateForm();\n });\n\n this.updateForm();\n }\n\n /**\n * Updates the Merge Project version parameters form group controls.\n * */\n private updateForm() {\n const sourceItemCount = this.isDefaultMergeOption ? 1 : 2;\n\n // Refresh the Source form group controls.\n if (this.sourceFormArray.length !== sourceItemCount) {\n this.sourceFormArray.clear();\n for (let i = 0; i < sourceItemCount; i++) {\n const group = this.fb.group({\n id: Guid.generate(),\n version: [null, Validators.required],\n });\n this.sourceFormArray.push(group);\n }\n }\n // Refresh the Source form group controls options.\n if (this.sourceControlValues.length !== sourceItemCount) {\n this.sourceControlValues = [];\n for (let i = 0; i < sourceItemCount; i++) {\n this.sourceControlValues.push(this.getSourceControlOptions());\n }\n }\n\n const targetCtrl = this.form.controls.target as UntypedFormGroup;\n const versionNameCtrl = targetCtrl.controls\n .versionName as UntypedFormControl;\n if (this.isDefaultMergeOption) {\n this.optionChanged$.next();\n // Clear the Target control validators.\n this.formGroupService.toggleFormControlValidators(\n versionNameCtrl,\n null,\n true,\n );\n // eslint-disable-next-line guard-for-in\n for (const key in this.mergeTypeStates) {\n this.mergeTypeStates[key] = null;\n }\n } else if (this.isCombineMergeOption) {\n this.sourceFormArray.controls.forEach((ctrl, idx) => {\n ctrl.valueChanges\n .pipe(takeUntil(this.optionChanged$))\n .subscribe((value) => {\n this.updateSourceControlValues(value, idx);\n });\n if (ctrl.value) {\n this.updateSourceControlValues(ctrl.value, idx);\n }\n });\n\n // Set the Target control validators.\n this.formGroupService.toggleFormControlValidators(\n versionNameCtrl,\n Validators.required,\n );\n\n this.mergeTypeStates[ProjectVersionMergeType.replace.code] = 'disabled';\n this.form.controls.type.patchValue(ProjectVersionMergeType.add.code, {\n emitEvent: false,\n });\n\n this.versionService\n .getVersionNamePrefix(this.projectId)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (prefix) => {\n let name: string = versionNameCtrl.value;\n if (!name) {\n name = prefix;\n } else if (name && !name.startsWith(prefix)) {\n name = prefix.concat(name);\n }\n versionNameCtrl.patchValue(name, { emitEvent: false });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n }\n\n /**\n * Excludes the current Source control selected option from the other Source controls options.\n * Restores the original options if the current control value has been cleared.\n *\n * @param value The changed Source control value.\n * @param index The changed Source control index.\n * */\n private updateSourceControlValues(value: any, index: number) {\n for (let i = 0; i < this.sourceControlValues.length; i++) {\n if (i !== index) {\n if (value?.version) {\n // Exclude the current control value from the options.\n this.sourceControlValues[i] = this.getSourceControlOptions().filter(\n (x) => x.id !== value?.version.id,\n );\n } else {\n // Restore the original options.\n this.sourceControlValues[i] = this.getSourceControlOptions();\n }\n }\n }\n }\n\n /**\n * Gets the allowed Source control options.\n * Includes the Project item at the 1st position if the Merge Combine option is selected.\n *\n * @returns The allowed Source control options..\n * */\n private getSourceControlOptions() {\n const values = this.projectVersions.slice();\n if (this.isCombineMergeOption) {\n values.unshift(this.versionCardService.workProjectVersion);\n }\n return values;\n }\n\n /**\n * Gets the Merge Project version parameters from the form group value.\n *\n * @returns the Merge Project version parameters.\n * */\n private getFormValue(): GetProjVersionMergeDetails {\n const value = new GetProjVersionMergeDetails();\n const formValue = this.form.getRawValue();\n\n value.type = formValue.type;\n value.option = formValue.option;\n\n value.source = {\n sourceEntries: formValue.source.map((val, index) => {\n if (ProjectVersionUtil.isWorkProjectVersion(val.version)) {\n return {\n entityType: 'Project',\n id: val.version?.mainProject?.id,\n index,\n };\n } else {\n return {\n entityType: 'ProjectVersion',\n id: val.version?.id,\n index,\n };\n }\n }),\n };\n\n switch (formValue.option) {\n case ProjectVersionMergeOption.default.code:\n value.target = {\n entityType: 'Project',\n id: this.projectId,\n };\n break;\n case ProjectVersionMergeOption.combine.code:\n value.target = {\n entityType: 'ProjectVersion',\n id: Guid.generate(),\n name: formValue.target.versionName,\n };\n break;\n }\n\n return value;\n }\n}\n"," \n\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n
    \n {{\n 'projects.projectVersions.projectVersionsMergeModal.steps.paramSelection.target.project.ph'\n | translate\n }}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CreateProjectVersionModalComponent } from './create-project-version-modal/create-project-version-modal.component';\nimport { ProjectVersionsMergeModalModule } from './project-versions-merge-modal/project-versions-merge-modal.module';\nimport { ProjectVersionListComponent } from './list/project-version-list.component';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { PROJECT_VERSION_LIST } from 'src/app/shared/lists/project-version.list';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { ProjectVersionCardComponent } from './card/project-version-card.component';\nimport { ProjectVersionCardSharedModule } from './shared/project-version-card-shared.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { DataService } from 'src/app/core/data.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\n@NgModule({\n declarations: [\n ProjectVersionListComponent,\n CreateProjectVersionModalComponent,\n ProjectVersionCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'projectsVersions',\n url: '/project-versions/{view:viewName}?{route}&{navigation}&{projectId:guid}',\n component: ProjectVersionListComponent,\n params: {\n routeHeader: 'projects.projectVersions.routeSegment',\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n projectId: null,\n view: 'default',\n },\n resolve: [\n {\n token: 'projectId',\n deps: [Transition],\n resolveFn: StateHelper.resolveProjectId,\n },\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'ProjectVersion' },\n { provide: LIST, useValue: PROJECT_VERSION_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'projectVersion',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'projectVersion',\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n navigation: null,\n },\n url: '/project-versions/{entityId:guid}?{route}&{navigation}&{projectId:guid}',\n component: ProjectVersionCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n {\n provide: 'projectId',\n deps: [Transition, DataService, BlockUIService],\n useFactory: StateHelper.resolveProjectIdForVersionForm,\n },\n ],\n },\n ],\n }),\n ProjectVersionCardSharedModule,\n ProjectVersionsMergeModalModule,\n BaseSharedModule,\n CommentsModule,\n ],\n})\nexport class ProjectVersionsModule {}\n","import { Injectable, Injector } from '@angular/core';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { BehaviorSubject, of, Subject, throwError } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CreateProjectVersionModalComponent } from 'src/app/projects/project-versions/create-project-version-modal/create-project-version-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ProjectVersionCardService } from 'src/app/projects/card/core/project-version-card.service';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { ProjectVersionsMergeModalComponent } from 'src/app/projects/project-versions/project-versions-merge-modal/project-versions-merge-modal.component';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Provides methods to work with Project versions.\n * */\n@Injectable()\nexport class ProjectVersionsService {\n collection = this.data.collection('ProjectVersions');\n\n /** The Project version list subject. */\n private _projectVersions = new Subject();\n\n /** The Project version update in progress subject. */\n private _projectVersionUpdating = new BehaviorSubject(false);\n\n /** The Project version list observable. */\n public projectVersions$ = this._projectVersions.asObservable();\n\n /** The Project version update in progress observable. */\n public projectVersionUpdating$ = this._projectVersionUpdating.asObservable();\n\n /** The Project version loading state observable. */\n public loadingState$ = new BehaviorSubject(false);\n\n private fnGetVersion = (versionId: string): Observable => {\n const query: any = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'masterBaseline',\n 'created',\n 'modified',\n 'editAllowed',\n 'setMasterFlagAllowed',\n ],\n expand: [\n { state: { select: ['id', 'name', 'code', 'style'] } },\n { sourceVersion: { select: ['id', 'name'] } },\n { mainProject: { select: ['id', 'name'] } },\n { snapshot: { select: ['id', 'forecastBreakpoint'] } },\n { createdBy: { select: ['id', 'name'] } },\n ],\n };\n\n return this.collection.entity(versionId).get(query);\n };\n\n private fnGetVersionCount = (mainProjectId?: string): Observable => {\n const query = {\n filter: [],\n };\n if (mainProjectId) {\n query.filter.push({\n mainProjectId: {\n eq: { type: 'guid', value: mainProjectId },\n },\n });\n }\n\n return this.collection.function('$count').query(null, query);\n };\n\n constructor(\n private versionCardService: ProjectVersionCardService,\n private data: DataService,\n private notification: NotificationService,\n private translate: TranslateService,\n private modal: NgbModal,\n ) {}\n\n /**\n * Loads the Project versions.\n * The Project version tree hierarchy is not currently supported.\n * The whole Project version list is loaded.\n *\n * @param projectId The Project ID.\n * */\n public load(projectId: string) {\n this.loadingState$.next(true);\n\n const query: any = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'masterBaseline',\n 'created',\n 'modified',\n ],\n expand: [\n { state: { select: ['id', 'name', 'code', 'style'] } },\n { sourceVersion: { select: ['id', 'name'] } },\n { mainProject: { select: ['id', 'name'] } },\n { snapshot: { select: ['id', 'forecastBreakpoint'] } },\n { createdBy: { select: ['id', 'name'] } },\n ],\n filter: {\n mainProject: {\n id: { eq: { type: 'guid', value: projectId } },\n },\n },\n orderBy: ['name'],\n };\n\n this.collection.query(query).subscribe({\n next: (versions) => {\n this.versionCardService.projectVersions = versions;\n this._projectVersions.next(\n this.versionCardService.sortVersions(versions, true),\n );\n this.loadingState$.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loadingState$.next(false);\n },\n });\n }\n\n /**\n * Gets the Project version.\n *\n * @param versionId The Project version ID.\n * */\n public getVersion(versionId: string) {\n return this.fnGetVersion(versionId);\n }\n\n /**\n * Gets the Project version name prefix.\n *\n * @param mainProjectId The Project ID.\n * */\n public getVersionNamePrefix(mainProjectId?: string): Observable {\n return this.fnGetVersionCount(mainProjectId).pipe(\n map((count) =>\n this.translate.instant(\n `projects.projectVersions.createProjectVersionModal.versionPrefix`,\n { versionCount: count + 1 },\n ),\n ),\n );\n }\n\n /**\n * Opens the modal dialog to create the Project version with the selected source.\n *\n * @param sourceVersion The Project version selected on the Project card.\n * @param moveToCard If true, moves to the Project version card route.\n * Opens the Project version on the Project card otherwise.\n * @default false.\n * */\n public createVersion(sourceVersion: ProjectVersion, moveToCard = false) {\n const version = sourceVersion ?? this.versionCardService.workProjectVersion;\n this.openCreateVersionModal(version, moveToCard);\n }\n\n /**\n * Changes the Project version.\n * Gets the Project version DTO with opened properties to check permissions.\n *\n * @param projectVersion The Project version.\n * */\n public changeVersion(projectVersion: ProjectVersion) {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n this.versionCardService.changeVersion(projectVersion);\n return of(projectVersion);\n } else {\n this._projectVersionUpdating.next(true);\n return this.fnGetVersion(projectVersion.id).pipe(\n tap((version) => {\n this.versionCardService.changeVersion(version);\n this._projectVersionUpdating.next(false);\n }),\n catchError((err) => {\n this._projectVersionUpdating.next(false);\n return throwError(err);\n }),\n );\n }\n }\n\n /**\n * Opens modal dialog to merge Project version(s) into Project/Other Project version.\n *\n * @param projectId Project ID.\n * @param currencyCode Project currency code.\n * */\n public openMergeVersionsDialog(projectId: string, currencyCode: string) {\n const injector = Injector.create({\n providers: [\n {\n provide: ProjectVersionCardService,\n useValue: this.versionCardService,\n },\n {\n provide: ProjectVersionsService,\n useValue: this,\n },\n ],\n });\n\n const ref = this.modal.open(ProjectVersionsMergeModalComponent, {\n size: 'xxl',\n injector,\n });\n\n const instance =\n ref.componentInstance as ProjectVersionsMergeModalComponent;\n instance.projectId = projectId;\n instance.currencyCode = currencyCode;\n }\n\n /**\n * Opens the modal dialog to create the Project version.\n *\n * @param sourceVersion The Source Project version.\n * @param moveToCard If true, moves to the Project version card route.\n * Opens the Project version on the Project card otherwise.\n * */\n private openCreateVersionModal(\n sourceVersion: ProjectVersion,\n moveToCard = false,\n ) {\n const injector = Injector.create({\n providers: [\n {\n provide: ProjectVersionsService,\n useValue: this,\n },\n {\n provide: ProjectVersionCardService,\n useValue: this.versionCardService,\n },\n ],\n });\n\n const ref = this.modal.open(CreateProjectVersionModalComponent, {\n size: 'md',\n injector,\n });\n\n // Create the Project version.\n (ref.componentInstance as CreateProjectVersionModalComponent).moveToCard =\n moveToCard;\n (\n ref.componentInstance as CreateProjectVersionModalComponent\n ).sourceVersions = [\n this.versionCardService.workProjectVersion,\n ...this.versionCardService.projectVersions,\n ];\n (\n ref.componentInstance as CreateProjectVersionModalComponent\n ).sourceVersion = sourceVersion;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SourceProjectVersionReadonlyCellComponent } from './source-project-version-cell/source-project-version-readonly-cell.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n imports: [CommonModule, SharedModule],\n declarations: [SourceProjectVersionReadonlyCellComponent],\n exports: [SourceProjectVersionReadonlyCellComponent],\n})\nexport class ProjectVersionCardSharedModule {}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-source-project-readonly-version-cell',\n templateUrl: './source-project-version-readonly-cell.component.html',\n standalone: false,\n})\nexport class SourceProjectVersionReadonlyCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n private readonly projectLabel = '';\n\n constructor(private translate: TranslateService) {\n this.projectLabel = this.translate.instant(\n 'projects.projectVersions.list.projectLabel',\n );\n }\n\n getValue() {\n return this.control.value ?? this.projectLabel;\n }\n}\n","
    {{ getValue() }}
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PROJECT_LIST } from 'src/app/shared/lists/project.list';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ProjectListComponent } from './list/project-list.component';\nimport {\n VIEW_NAME,\n LIST,\n META_ENTITY_TYPE,\n MULTI_SELECT_LIST,\n MASS_OPERATION_PARAMETERS,\n} from 'src/app/shared/tokens';\nimport { ProjectFilterComponent } from './list/project-filter/project-filter.component';\nimport { ProjectSettingsComponent } from './settings/project-settings.component';\nimport { CopyingProjectModalComponent } from './copying-project-modal/copying-project-modal.component';\nimport { ProjectCardModule } from './card/project-card.module';\nimport { ChangingBillingTypeModalComponent } from './settings/changing-billing-type-modal/changing-billing-type-modal.component';\nimport { ChangingProgramModalComponent } from './settings/changing-program-modal/changing-program-modal.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\n@NgModule({\n declarations: [\n ProjectListComponent,\n ProjectFilterComponent,\n ProjectSettingsComponent,\n ChangingBillingTypeModalComponent,\n CopyingProjectModalComponent,\n ChangingProgramModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ProjectCardModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'projects',\n url: '/projects/{view:viewName}?{navigation}&{route}',\n component: ProjectListComponent,\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'projects.allProjects',\n routeMode: null,\n view: 'all',\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: PROJECT_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n { provide: META_ENTITY_TYPE, useValue: 'Project' },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'project',\n entityPropertyName: 'project',\n } as MassOperationParameters,\n },\n ],\n },\n ],\n }),\n EntityListComponent,\n ],\n})\nexport class ProjectsModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wp-changing-billing-type-modal',\n templateUrl: './changing-billing-type-modal.component.html',\n standalone: false,\n})\nexport class ChangingBillingTypeModalComponent implements OnInit {\n @Input() project: Project;\n\n public form = this.fb.group({\n billingType: [null, Validators.required],\n });\n isSaving: boolean;\n\n public billingTypes: ProjectBillingType[] = [];\n\n constructor(\n private app: AppService,\n private translate: TranslateService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n public get isWarningShown(): boolean {\n return (\n this.form.value?.billingType?.id === ProjectBillingType.nonBillable.id\n );\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = {\n billingTypeId: this.form.value.billingType.id,\n };\n\n this.data\n .collection('Projects')\n .entity(this.project.id)\n .action('WP.ChangeBillingType')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'projects.projects.changingProjectBillingType.messages.billingTypeWasChanged',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit(): void {\n if (this.project.billingType.id !== ProjectBillingType.fixedBid.id) {\n this.billingTypes.push(ProjectBillingType.fixedBid);\n }\n\n if (this.project.billingType.id !== ProjectBillingType.nonBillable.id) {\n this.billingTypes.push(ProjectBillingType.nonBillable);\n }\n\n if (\n this.project.billingType.id !== ProjectBillingType.tm.id &&\n this.app.checkFeature(Feature.billing)\n ) {\n this.billingTypes.push(ProjectBillingType.tm);\n }\n\n this.billingTypes.forEach(\n (rate) => (rate.name = this.translate.instant(rate.name)),\n );\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.changingProjectBillingType.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n

    {{ project.billingType.name }}

    \n
    \n\n
    \n \n \n @if (isWarningShown) {\n
    \n \n {{ 'projects.projects.changingProjectBillingType.messages.warnText' | translate }}\n
    \n }\n
    \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n {{ 'shared.actions.cancel' | translate }}\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { Validators, UntypedFormBuilder, FormGroup } from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\n\n@Component({\n selector: 'tmt-changing-program-modal',\n templateUrl: './changing-program-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ChangingProgramModalComponent implements OnInit {\n @Input() project: Project;\n public form: FormGroup;\n public isSaving: boolean;\n public query: { [key: string]: any } = null;\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.form = this.fb.group({\n program: [null, Validators.required],\n });\n\n if (this.project?.program?.id) {\n this.query = {\n filter: {\n id: {\n ne: { type: 'guid', value: this.project?.program?.id },\n },\n },\n };\n }\n }\n\n /** Change project's program. */\n public change(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n\n if (this.project.program) {\n this.dataService\n .collection('Programs')\n .entity(this.project.program.id)\n .action('ExcludeProject')\n .execute({ projectId: this.project.id })\n .subscribe({\n next: () => {\n this.includeProject();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n this.cdr.markForCheck();\n },\n });\n } else {\n this.includeProject();\n }\n }\n\n /** Include project to program. */\n private includeProject(): void {\n this.dataService\n .collection('Programs')\n .entity(this.form.value?.program?.id)\n .action('IncludeProject')\n .execute({ projectId: this.project.id })\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'projects.projects.changingProgram.messages.programWasChanged',\n );\n this.isSaving = false;\n this.activeModal.close();\n this.cdr.markForCheck();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n this.cdr.markForCheck();\n },\n });\n }\n\n /** Close program changing modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'projects.projects.changingProgram.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n @if (project.program) {\n

    {{ project.program.name }}

    \n } @else {\n

    {{ 'shared.valueNotSelected' | translate }}

    \n }\n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n {{ 'shared.actions.cancel' | translate }}\n \n
    \n
    \n","import {\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n Type,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { ChangingBillingTypeModalComponent } from './changing-billing-type-modal/changing-billing-type-modal.component';\nimport { ChangingProgramModalComponent } from './changing-program-modal/changing-program-modal.component';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AppService } from 'src/app/core/app.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { LogService } from 'src/app/core/log.service';\nimport { DateTime } from 'luxon';\nimport { Schedule } from 'src/app/shared/models/entities/settings/schedule.model';\nimport { BehaviorSubject, forkJoin } from 'rxjs';\nimport { PROJECT_TASK_TYPES } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { UndoRedoService } from 'src/app/shared/services/undo-redo/undo-redo.service';\nimport {\n PROJECT_BILLING_MODES,\n ProjectBillingMode,\n} from 'src/app/shared/models/enums/project-billing-mode.enum';\nimport { DimensionItem } from 'src/app/shared/models/enums/dimension-item.enum';\nimport { DurationMode } from 'src/app/shared/models/enums/duration-mode.enum';\nimport { LegalEntity } from 'src/app/shared/models/entities/settings/legal-entity.model';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { environment } from 'src/environments/environment';\nimport { filter } from 'rxjs/operators';\n\n/**\n * Project settings modal.\n * */\n@Component({\n selector: 'wp-project-settings',\n templateUrl: './project-settings.component.html',\n styleUrls: ['./project-settings.component.scss'],\n standalone: false,\n})\nexport class ProjectSettingsComponent implements OnInit {\n @Input() projectId: string;\n @Input() client: NamedEntity;\n @Input() program: NamedEntity;\n\n public readonly$ = new BehaviorSubject(false);\n public loading$ = new BehaviorSubject(true);\n public saving$ = new BehaviorSubject(false);\n\n public creatingMode: boolean;\n public billingType = ProjectBillingType;\n public billingTypes: ProjectBillingType[] = [];\n\n public dimensionItems = DimensionItem;\n public durationModes = DurationMode;\n public environment = environment;\n\n public form = this.fb.group({\n main: this.fb.group({\n id: '',\n state: null,\n changingBillingTypeAllowed: false,\n hasLinkedInvoices: false,\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n startDate: [null, Validators.required],\n endDate: [null, Validators.required],\n manager: [null, Validators.required],\n organization: null,\n program: null,\n externalUrl: ['', Validators.maxLength(Constants.formTextMaxLength)],\n billingType: null,\n allowTimeEntry: false,\n isAutoPlanning: false,\n skipManagerApprove: false,\n billingTypeId: null,\n schedule: [null, Validators.required],\n defaultTaskType: null,\n }),\n advanced: this.fb.group({\n currency: [null, Validators.required],\n legalEntity: [null, Validators.required],\n billingEstimationSettings: this.fb.group({\n billingMode: null,\n deferment: [null, Validators.required],\n collectionDeferment: [null, Validators.required],\n accumulationPeriod: [null, Validators.required],\n }),\n corporateTaxRate: [null, [Validators.min(0), Validators.max(10)]], // in percent 10 === 1000%\n }),\n });\n\n public mainForm = this.form.controls.main as UntypedFormGroup;\n public advancedForm = this.form.controls.advanced as UntypedFormGroup;\n public billingEstimationSettingsForm = this.advancedForm.controls\n .billingEstimationSettings as UntypedFormGroup;\n\n public okButtonText: string;\n\n public get project(): Project {\n const mainFormRawValue = this.mainFormRawValue;\n const advancedFormRawValue = this.advancedFormRawValue;\n const project = {\n ...mainFormRawValue,\n ...advancedFormRawValue,\n defaultTaskType: mainFormRawValue.defaultTaskType?.id,\n };\n project.billingEstimationSettings.mode =\n this.advancedFormRawValue.billingEstimationSettings.billingMode?.id;\n return project;\n }\n\n public get isBillingPlanningAllowed(): boolean {\n const mainFormRawValue = this.mainFormRawValue;\n const billingTypeId =\n mainFormRawValue.billingTypeId ?? mainFormRawValue.billingType.id;\n return billingTypeId !== ProjectBillingType.nonBillable.id;\n }\n\n public get isBillingPlanningSettingsAllowed(): boolean {\n const billingSettingsFormRawValue = this.billingSettingsFormRawValue;\n return (\n billingSettingsFormRawValue.billingMode?.id ===\n ProjectBillingMode.automatic\n );\n }\n\n public get isAutoPlanning(): boolean {\n const mainFormRawValue = this.mainFormRawValue;\n return mainFormRawValue.isAutoPlanning;\n }\n\n public get canEditProgram(): boolean {\n return this.app.checkEntityPermission('Program', PermissionType.Modify);\n }\n\n private get mainFormRawValue(): any {\n return this.mainForm.getRawValue();\n }\n private get advancedFormRawValue(): any {\n return this.advancedForm.getRawValue();\n }\n private get billingSettingsFormRawValue(): any {\n return this.billingEstimationSettingsForm.getRawValue();\n }\n\n private _taskTypes: NamedEntity[];\n public get taskTypes() {\n return this._taskTypes;\n }\n\n private _billingModes: NamedEntity[];\n public get billingModes() {\n return this._billingModes;\n }\n\n private _originalIsAutoPlanning = false;\n private _msgKeyTmplIsAutoPlanningChanged =\n 'projects.projects.settings.props.taskAutoPlanning.';\n\n private _msgKeyIsAutoPlanningChanged: string | null = null;\n public get msgKeyIsAutoPlanningChanged(): string | null {\n return this._msgKeyIsAutoPlanningChanged;\n }\n\n private _isProgramValueChange = false;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private log: LogService,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private modal: NgbModal,\n private app: AppService,\n private customFieldService: CustomFieldService,\n private undoRedoService: UndoRedoService,\n ) {\n this.customFieldService.enrichFormGroup(this.advancedForm, 'Project');\n\n this.billingTypes.push(ProjectBillingType.fixedBid);\n this.billingTypes.push(ProjectBillingType.nonBillable);\n this.billingTypes.push(ProjectBillingType.tm);\n }\n\n public ngOnInit(): void {\n this.initVars();\n\n if (this.projectId) {\n this.creatingMode = false;\n this.okButtonText = this.translate.instant('shared.actions.save');\n this.load();\n } else {\n this.creatingMode = true;\n this.okButtonText = this.translate.instant('shared.actions.create');\n this.initDefaultProject();\n }\n\n this.billingEstimationSettingsForm.controls.billingMode.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n if (value.id === ProjectBillingMode.manual) {\n this.billingEstimationSettingsForm.controls.deferment.disable({\n emitEvent: false,\n });\n this.billingEstimationSettingsForm.controls.collectionDeferment.disable(\n { emitEvent: false },\n );\n this.billingEstimationSettingsForm.controls.accumulationPeriod.disable(\n { emitEvent: false },\n );\n } else {\n this.billingEstimationSettingsForm.controls.deferment.enable({\n emitEvent: false,\n });\n this.billingEstimationSettingsForm.controls.collectionDeferment.enable(\n { emitEvent: false },\n );\n this.billingEstimationSettingsForm.controls.accumulationPeriod.enable(\n { emitEvent: false },\n );\n }\n });\n\n if (!this.creatingMode) {\n this.mainForm.controls.isAutoPlanning.valueChanges\n .pipe(\n filter(() => !this._isProgramValueChange),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n const isAutoPlanningChanged = value !== this._originalIsAutoPlanning;\n if (isAutoPlanningChanged) {\n const messageKey: string = value\n ? 'enableWarning'\n : 'disableWarning';\n this._msgKeyIsAutoPlanningChanged =\n this._msgKeyTmplIsAutoPlanningChanged.concat(messageKey);\n } else {\n this._msgKeyIsAutoPlanningChanged = null;\n }\n });\n }\n\n FormHelper.controlDatePair(\n this.mainForm,\n 'startDate',\n 'endDate',\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Handles dialog submit. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.saving$.next(true);\n this.log.debug('Saving project entity...');\n\n const okFunc = () => {\n this.saving$.next(false);\n\n if (this.creatingMode) {\n this.notification.successLocal(\n 'projects.projects.settings.messages.created',\n );\n this.state.go('project', { entityId: this.project.id });\n } else {\n this.notification.successLocal(\n 'projects.projects.settings.messages.saved',\n );\n }\n\n this.activeModal.close(this.project);\n };\n\n const errorFunc = (error: Exception) => {\n this.notification.error(error.message);\n this.saving$.next(false);\n };\n\n const project = this.project;\n\n const data = {\n id: project.id,\n name: project.name,\n code: project.code,\n isActive: project.isActive,\n stateId: project.state?.id,\n managerId: project.manager.id,\n description: project.description,\n startDate: project.startDate,\n endDate: project.endDate,\n organizationId: project.organization?.id,\n programId: project.program?.id,\n externalUrl: project.externalUrl,\n allowTimeEntry: project.allowTimeEntry,\n isAutoPlanning: project.isAutoPlanning,\n skipManagerApprove: project.skipManagerApprove,\n billingTypeId: project.billingTypeId ?? project.billingType.id,\n currencyId: project.currency.id,\n legalEntityId: project.legalEntity.id,\n scheduleId: project.schedule.id,\n defaultTaskType: project.defaultTaskType,\n billingEstimationSettings: {\n deferment: project.billingEstimationSettings.deferment,\n collectionDeferment:\n project.billingEstimationSettings.collectionDeferment,\n accumulationPeriod:\n project.billingEstimationSettings.accumulationPeriod,\n mode: project.billingEstimationSettings.mode,\n },\n corporateTaxRate: project.corporateTaxRate ?? null,\n };\n\n if (!this.isBillingPlanningSettingsAllowed) {\n delete data.billingEstimationSettings.deferment;\n delete data.billingEstimationSettings.collectionDeferment;\n delete data.billingEstimationSettings.accumulationPeriod;\n }\n\n this.customFieldService.assignValues(data, project, 'Project');\n\n if (this.creatingMode) {\n this.data\n .collection('Projects')\n .insert(data)\n .subscribe({ next: okFunc, error: errorFunc });\n } else {\n this.data\n .collection('Projects')\n .entity(this.projectId)\n .update(data)\n .subscribe({ next: okFunc, error: errorFunc });\n }\n }\n\n /** Handles dialog close. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Opens a modal based on the property specified. If the property matches 'billingType' or 'program',\n * it opens the respective modal component. After the modal result, it navigates to the 'project' state\n * with the current project ID.\n *\n * @param property The property based on which the modal component is decided.\n */\n public changeProperty(property: string): void {\n let component: Type;\n switch (property) {\n case 'billingType':\n component = ChangingBillingTypeModalComponent;\n break;\n case 'program':\n component = ChangingProgramModalComponent;\n break;\n default:\n return;\n }\n\n const modalRef = this.modal.open(component);\n const instance = modalRef.componentInstance;\n instance.project = this.project;\n\n modalRef.result.then(\n () => {\n this.activeModal.close();\n this.state.go('project', { id: this.mainFormRawValue.id });\n },\n () => null,\n );\n }\n\n /** Loads exist project data. */\n private load(): void {\n this.loading$.next(true);\n\n this.log.debug('Loading project...');\n\n const query = {\n select: [\n 'id',\n 'name',\n 'isActive',\n 'allowTimeEntry',\n 'isAutoPlanning',\n 'skipManagerApprove',\n 'code',\n 'description',\n 'startDate',\n 'endDate',\n 'externalUrl',\n 'changingBillingTypeAllowed',\n 'editAllowed',\n 'hasLinkedInvoices',\n 'defaultTaskType',\n 'deferment',\n 'collectionDeferment',\n 'accumulationPeriod',\n 'billingMode',\n 'billingEstimationSettings',\n 'corporateTaxRate',\n ],\n expand: [\n { state: { select: ['name', 'id'] } },\n { currency: { select: ['name', 'id'] } },\n { billingType: { select: ['name', 'id', 'code'] } },\n { manager: { select: ['name', 'id'] } },\n { program: { select: ['name', 'id'] } },\n { organization: { select: ['name', 'id'] } },\n { schedule: { select: ['name', 'id'] } },\n { legalEntity: { select: ['name', 'id'] } },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'Project');\n\n this.data\n .collection('Projects')\n .entity(this.projectId)\n .get(query)\n .subscribe({\n next: (project) => {\n this._isProgramValueChange = true;\n this._originalIsAutoPlanning = project.isAutoPlanning;\n project.billingType.name = this.translate.instant(\n this.billingTypes.find((t) => t.id === project.billingType.id)\n ?.name,\n );\n\n this.mainForm.patchValue(project);\n this.advancedForm.patchValue(project);\n\n this.billingEstimationSettingsForm.controls.billingMode.setValue(\n this._billingModes.find(\n (mode) => mode.id === project.billingEstimationSettings.mode,\n ) ?? this._billingModes[1],\n );\n\n this.mainForm.controls.defaultTaskType.setValue(\n this._taskTypes.find(\n (type) => type.id === project.defaultTaskType,\n ) ?? this._taskTypes[0],\n );\n\n this.readonly$.next(!project.editAllowed);\n if (this.readonly$.value) {\n this.form.disable({ emitEvent: false });\n } else if (project.hasLinkedInvoices) {\n this.mainForm.controls.organization.disable({ emitEvent: false });\n }\n\n this.loading$.next(false);\n this._isProgramValueChange = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading$.next(false);\n },\n });\n }\n\n /** Initializes a default project with predefined settings and fill the forms with these values. */\n private initDefaultProject(): void {\n this.loading$.next(true);\n const startDate = DateTime.now().toISODate();\n const endDate = DateTime.now().endOf('year').toISODate();\n\n const scheduleQuery = {\n select: ['firstDay', 'daysCount', 'name', 'id', 'scheduleExceptionId'],\n filter: ['isDefault'],\n expand: [\n {\n patternDays: {\n select: ['dayLength', 'dayNumber'],\n orderBy: 'dayNumber',\n },\n scheduleException: {\n select: 'id',\n expand: {\n exceptionDays: {\n select: ['date', 'dayLength'],\n orderBy: 'date',\n },\n },\n },\n },\n ],\n };\n\n forkJoin({\n schedule: this.data\n .collection('Schedules')\n .query(scheduleQuery),\n currencies: this.data.collection('Currencies').query({\n filter: { alpha3Code: this.app.session.configuration.baseCurrencyCode },\n }),\n legalEntities: this.data\n .collection('LegalEntities')\n .query({\n filter: { isDefault: true },\n }),\n }).subscribe({\n next: (value) => {\n this._isProgramValueChange = true;\n const { schedule, currencies, legalEntities } = value;\n\n const project: Project = {\n id: Guid.generate(),\n allowTimeEntry: true,\n isAutoPlanning: false,\n manager: this.app.session.user,\n billingType: ProjectBillingType.fixedBid,\n currency: null,\n startDate,\n endDate,\n code: '',\n name: '',\n legalEntity: null,\n description: '',\n schedule: schedule[0],\n organization: this.client ? this.client : null,\n program: this.program ? this.program : null,\n externalUrl: '',\n skipManagerApprove: false,\n state: null,\n billingTypeId: null,\n defaultTaskType: null,\n billingEstimationSettings: {\n mode: null,\n deferment: 0,\n collectionDeferment: 0,\n accumulationPeriod: 0,\n },\n };\n this._originalIsAutoPlanning = project.isAutoPlanning;\n this.mainForm.patchValue(project);\n this.advancedForm.patchValue(project);\n\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.advancedForm,\n 'Project',\n );\n this.mainForm.controls['billingTypeId'].setValue(\n this.project.billingType.id,\n );\n this.mainForm.controls['defaultTaskType'].setValue(this._taskTypes[0]);\n this.billingEstimationSettingsForm.controls['billingMode'].setValue(\n this._billingModes[1],\n );\n\n this.advancedForm.controls.currency.setValue(currencies[0]);\n this.advancedForm.controls.legalEntity.setValue(legalEntities[0]);\n this.loading$.next(false);\n this._isProgramValueChange = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading$.next(false);\n },\n });\n }\n\n /** Initializes variables related to project settings. */\n private initVars(): void {\n const enumValueKeyPrefix = 'projects.projects.settings.props.';\n\n this._taskTypes = this.getEnumSelectItems(\n // TODO: remove filter after fixed units realize\n PROJECT_TASK_TYPES,\n `${enumValueKeyPrefix}defaultTaskType.values.`,\n );\n\n this._billingModes = this.getEnumSelectItems(\n PROJECT_BILLING_MODES,\n `${enumValueKeyPrefix}billingMode.values.`,\n );\n }\n\n /**\n * Gets transformed enum values for select list.\n *\n * @param enumValues Enum values.\n * @param keyPrefix Translation key prefix.\n * @returns Transformed enum values.\n * */\n private getEnumSelectItems(\n enumValues: Array,\n keyPrefix: string,\n ): Array {\n return enumValues.map((e) => ({\n id: e,\n name: this.translate.instant(`${keyPrefix}${e}`),\n }));\n }\n}\n","\n\n@if (!(loading$ | async)) {\n
    \n
    \n @if (projectId) {\n

    {{ mainForm?.value.name }}

    \n } @else {\n

    \n {{ 'projects.projects.settings.newProject' | translate }}\n

    \n }\n \n
    \n
    \n
      \n
    • \n {{\n 'projects.projects.settings.tabs.main' | translate\n }}\n \n
      \n
      \n
      \n \n \n
      \n
      \n \n
      \n @if (creatingMode) {\n \n @for (type of billingTypes; track type) {\n \n }\n
      \n } @else {\n
      \n {{ project?.billingType.name }}\n
      \n }\n
      \n
      \n \n \n @if (project?.hasLinkedInvoices) {\n
      \n  {{\n 'projects.projects.settings.props.client.clientRestrict' | translate\n }}\n
      \n }\n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n \n
      \n\n
      \n \n \n \n \n \n
      \n\n \n \n \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n @if (!creatingMode || program) {\n
      \n \n
      \n \n
      \n
      \n }\n @if (creatingMode) {\n
       
      \n }\n \n \n \n
      \n \n \n \n
    \n\n
    \n\n \n \n \n \n \n \n \n @if (msgKeyIsAutoPlanningChanged) {\n
    \n {{ msgKeyIsAutoPlanningChanged | translate }}\n
    \n }\n @if (isAutoPlanning) {\n
    \n {{ 'projects.projects.settings.props.defaultTaskType.label' | translate }}\n \n \n \n \n \n
    \n }\n \n \n \n \n
  • \n {{ 'projects.projects.settings.tabs.advanced' | translate }}\n \n
    \n
    \n \n
    \n \n @if (creatingMode) {\n \n } @else {\n
    \n {{ project?.currency.name }}\n
    \n }\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n @if (isBillingPlanningAllowed) {\n
    \n \n
    \n {{ 'projects.projects.settings.props.billingMode.label' | translate }}\n \n \n \n \n \n
    \n @if (isBillingPlanningSettingsAllowed) {\n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n }\n
    \n }\n
    \n \n
    \n
  • \n \n
    \n \n
    \n @if (!(readonly$ | async)) {\n \n {{ okButtonText }}\n \n }\n \n
    \n \n}\n","import { Component, Input } from '@angular/core';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\n\nimport { ResourceRequestService } from 'src/app/resource-requests/shared/resource-request/resource-request.service';\n\n@Component({\n selector: 'tmt-resource-request-card-main',\n templateUrl: './resource-request-card-main.component.html',\n styleUrls: ['./resource-request-card-main.component.scss'],\n standalone: false,\n})\nexport class ResourceRequestCardMainComponent {\n @Input() public entityId: string;\n\n public activeTab: string;\n\n protected readonly commentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n constructor(public resourceRequestService: ResourceRequestService) {}\n}\n","
    \n \n \n
    \n\n\n","import {\n Component,\n OnInit,\n Input,\n Injector,\n OnDestroy,\n ElementRef,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AutosaveStateService } from 'src/app/shared/services/autosave-state.service';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { StateService } from '@uirouter/core';\n\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ResourceRequestService } from 'src/app/resource-requests/shared/resource-request/resource-request.service';\nimport { Subject } from 'rxjs';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { BookingAssistantComponent } from 'src/app/booking/booking-assistant/booking-assistant.component';\nimport { ResourceRequestCalendarService } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n@Component({\n selector: 'wp-resource-request-card',\n templateUrl: './resource-request-card.component.html',\n styleUrls: ['./resource-request-card.component.scss'],\n providers: [\n SavingQueueService,\n FreezeTableService,\n ScheduleNavigationService,\n ResourceRequestService,\n ResourceRequestCalendarService,\n { provide: META_ENTITY_TYPE, useValue: 'ResourceRequest' },\n LifecycleService,\n ],\n standalone: false,\n})\nexport class ResourceRequestCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public state: CardState;\n public tabs: TabLink[] = [];\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public navigation: NavigationService,\n public autosaveStateService: AutosaveStateService,\n public app: AppService,\n public stateService: StateService,\n public service: ResourceRequestService,\n private resourceRequestCalendarService: ResourceRequestCalendarService,\n private modalService: NgbModal,\n private actionService: ActionPanelService,\n private savingQueueService: SavingQueueService,\n private injector: Injector,\n private infoPopupService: InfoPopupService,\n private lifecycleService: LifecycleService,\n private el: ElementRef,\n ) {\n lifecycleService.reload$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.reload();\n });\n }\n\n public ngOnInit(): void {\n this.initActions();\n this.service.load(this.entityId);\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.load(this.entityId);\n this.lifecycleService.reloadLifecycle();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public reload() {\n this.savingQueueService.save().then(() => {\n this.actionService.actions.forEach((a) => (a.isVisible = false));\n this.actionService.propagate();\n this.service.load(this.entityId);\n this.lifecycleService.reloadLifecycle();\n this.actionService.resetLifecycle();\n this.resourceRequestCalendarService.init();\n this.resourceRequestCalendarService.loadFrame(null);\n });\n }\n\n public book(): void {\n this.savingQueueService.save();\n\n const ref = this.modalService.open(BookingAssistantComponent, {\n fullscreen: true,\n modalDialogClass: 'modal-overflow',\n injector: this.injector,\n });\n\n (ref.componentInstance as BookingAssistantComponent).entityId =\n this.entityId;\n\n ref.result.then(\n () => {\n this.reload();\n },\n () => {\n this.reload();\n },\n );\n }\n\n /** Shows info about user. */\n public openOwnerInfo(): void {\n this.infoPopupService.open({\n target: this.el.nativeElement.querySelector('#owner'),\n data: {\n component: UserInfoComponent,\n params: {\n userId: this.service.request.createdBy.id,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Shows info about project. */\n public openProjectInfo(): void {\n this.infoPopupService.open({\n target: this.el.nativeElement.querySelector('#project'),\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId: this.service.request.project.id,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Initiates main actions. */\n private initActions() {\n this.actionService.setHasAutosave(true);\n\n this.actionService.set([\n {\n title: 'resources.requests.actions.assistant.label',\n hint: 'resources.requests.actions.assistant.hint',\n name: 'book',\n iconClass: 'bi bi-people',\n isBusy: false,\n isVisible: false,\n handler: () => this.book(),\n },\n ]);\n\n this.actionService.setAdditional([\n {\n title: 'shared.actions.delete',\n hint: 'resources.requests.hint.delete',\n name: 'delete',\n isBusy: false,\n isVisible: false,\n handler: () => this.delete(),\n },\n ]);\n\n this.service.request$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request: ResourceRequest) => {\n this.actionService.action('delete').isShown =\n request.editAllowed && !request.state.isEntityProtected;\n this.actionService.action('book').isShown = true;\n\n if (request.teamMember?.resource.resourceType !== ResourceType.user) {\n this.tabs = [\n {\n state: 'resourceRequest.main',\n header: 'resources.requests.card.tab.main',\n },\n {\n state: 'resourceRequest.advanced',\n header: 'resources.requests.card.tab.advanced',\n },\n ];\n } else {\n this.tabs.length = 0;\n }\n });\n }\n\n private delete() {\n this.service.delete();\n }\n}\n","\n\n\n\n\n\n@if ((service.state$ | async) === 'Ready') {\n
    \n
    \n
    \n \n
    \n\n
    \n {{ 'resources.requests.props.project' | translate }}:\n
    \n {{ service.request.project?.name }}\n
    \n
    \n\n
    \n {{ 'resources.requests.props.createdBy' | translate }}:\n
    \n {{ service.request?.createdBy?.name }}\n
    \n
    \n\n
    \n \n
    \n
    \n
    \n}\n\n\n
      \n
    • \n \n {{ tab.header | translate }}\n \n
    • \n
    \n\n \n
    \n","import {\n Component,\n OnInit,\n Input,\n Inject,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-request-filter',\n templateUrl: './request-filter.component.html',\n standalone: false,\n})\nexport class RequestFilterComponent implements OnInit, FilterDetails {\n @Input() public values: Record;\n\n public detailsForm = this.fb.group({\n createdBy: [null],\n project: [null],\n role: [null],\n states: [null],\n resourcePool: [null],\n });\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public filterService: FilterService,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.detailsForm.patchValue(this.filterService.values);\n\n this.filterService.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.patchValue(this.filterService.values);\n });\n\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.getRawValue(),\n );\n\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n @if (viewName !== 'myOpen') {\n
    \n \n \n \n
    \n }\n
    \n\n @if (viewName !== 'open' && viewName !== 'myOpen') {\n
    \n
    \n \n
    \n
    \n }\n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { RequestFilterComponent } from './request-filter.component';\n\n@Injectable()\nexport class RequestFilterService extends FilterService {\n public override component: Type = RequestFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'resources.requests.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => {\n const value = {\n text: '',\n role: null,\n project: null,\n createdBy: null,\n states: null,\n resourcePool: null,\n };\n\n return value;\n };\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { project: { 'tolower(name)': { contains: text } } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { role: { 'tolower(name)': { contains: text } } },\n ],\n });\n }\n\n if (this.values.project) {\n result.push({\n projectId: { type: 'guid', value: this.values.project.id },\n });\n }\n\n if (this.values.role) {\n result.push({\n roleId: { type: 'guid', value: this.values.role.id },\n });\n }\n\n if (this.values.resourcePool) {\n result.push({\n resourcePoolId: { type: 'guid', value: this.values.resourcePool.id },\n });\n }\n\n if (this.values.createdBy) {\n result.push({\n createdById: { type: 'guid', value: this.values.createdBy.id },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n}\n","import { Component, OnInit, inject, DestroyRef } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { RequestFilterService } from './request-filter/request-filter.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ResourceRequestModalComponent } from 'src/app/resource-requests/shared/resource-request/modal/resource-request-modal.component';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-resource-request-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: RequestFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class ResourceRequestListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n private stateService: StateService,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'resources.requests.list.actions.create',\n isVisible: true,\n handler: () =>\n this.modalService\n .open(ResourceRequestModalComponent, { size: 'xl' })\n .result.then(\n (entity: Entity) => {\n this.stateService.go('resourceRequest', {\n entityId: entity.id,\n });\n },\n () => null,\n ),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.state.go('resourceRequest', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((rows: any) => {\n this.actionPanelService.action('card').isShown = rows?.length === 1;\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport {\n VIEW_NAME,\n LIST,\n FILTER,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n META_ENTITY_TYPE,\n} from 'src/app/shared/tokens';\nimport { ResourceRequestListComponent } from './list/resource-request-list.component';\nimport { RESOURCE_REQUEST_LIST } from 'src/app/shared/lists/resource-request.list';\nimport { ResourceRequestCardComponent } from './card/resource-request-card.component';\n\nimport { RequestFilterComponent } from './list/request-filter/request-filter.component';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { ResourceRequestModule } from 'src/app/resource-requests/shared/resource-request/resource-request.module';\nimport { ResourceRequestCardMainComponent } from 'src/app/resource-requests/card/resource-request-card-main/resource-request-card-main.component';\nimport { ResourceRequestFormAdvancedComponent } from 'src/app/resource-requests/shared/form-advanced/resource-request-form-advanced.component';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\n@NgModule({\n declarations: [\n ResourceRequestListComponent,\n ResourceRequestCardComponent,\n ResourceRequestCardMainComponent,\n RequestFilterComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ResourceRequestModule,\n BaseSharedModule,\n CommentsModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'resourceRequests',\n url: '/resource-requests/{view:viewName}?{navigation}&{route}&{filter:json}',\n component: ResourceRequestListComponent,\n params: {\n context: null,\n entity: null,\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n routeHeader: 'resources.navigation.requests.header',\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'ResourceRequest' },\n { provide: LIST, useValue: RESOURCE_REQUEST_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'resourceRequest',\n } as MassOperationParameters,\n },\n {\n token: FILTER,\n deps: [Transition],\n resolveFn: StateHelper.resolveFilter,\n },\n ],\n },\n\n {\n name: 'resourceRequest',\n params: {\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n navigation: null,\n },\n url: '/resource-requests/{entityId:guid}?{navigation}&{route}',\n dynamic: true,\n component: ResourceRequestCardComponent,\n redirectTo: (trans) => ({\n state: 'resourceRequest.main',\n params: trans.params(),\n }),\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n {\n token: 'assistantRequestId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'resourceRequest.main',\n url: '/main',\n component: ResourceRequestCardMainComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'resourceRequest.advanced',\n url: '/advanced',\n component: ResourceRequestFormAdvancedComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class ResourceRequestsModule {}\n","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Injector,\n ElementRef,\n Optional,\n NgZone,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormArray,\n FormControl,\n} from '@angular/forms';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport _ from 'lodash';\nimport { Subject, Subscription, firstValueFrom } from 'rxjs';\nimport { debounceTime, startWith, takeUntil, first } from 'rxjs/operators';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { FreezeTableOptions } from 'src/app/shared/directives/freeze-table/freeze-table.interface';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ProjectResourcesHelper } from 'src/app/projects/card/project-resources/core/project-resources.helper';\nimport {\n ResourceRequest,\n ResourceRequestTemplate,\n} from 'src/app/shared/models/entities/resources/resource-request.model';\n\nimport { ResourceRequestService } from '../resource-request/resource-request.service';\nimport { ResourceRequestCalendarService } from './resource-request-calendar.service';\nimport {\n ResourceRequestLine,\n ResourceRequestEvents,\n ResourceRequestMode,\n EventItem,\n TotalsCalcMode,\n} from '../resource-request/resource-request.interface';\nimport {\n BookingEntry,\n BookingResource,\n} from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingService } from 'src/app/booking/booking/core/booking.service';\nimport { BookingRenderingService } from 'src/app/booking/booking/core/booking-rendering.service';\nimport { BookingDataService } from 'src/app/booking/booking/core/booking-data.service';\nimport { BookingManageService } from 'src/app/booking/booking/core/booking-manage.service';\nimport { BookingFilterService } from 'src/app/booking/booking/shared/booking-filter/booking-filter.service';\nimport { BookingViewSettingsService } from 'src/app/booking/booking/shared/booking-view-settings/booking-view-settings.service';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { bookingProviderFactory } from 'src/app/booking/booking-schedule/booking-schedule.component';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-resource-request-calendar',\n templateUrl: './resource-request-calendar.component.html',\n styleUrls: ['./resource-request-calendar.component.scss'],\n providers: [\n NgbActiveModal,\n GridService,\n CellsOrchestratorService,\n BookingService,\n BookingDataService,\n BookingManageService,\n BookingViewSettingsService,\n { provide: FilterService, useClass: BookingFilterService },\n {\n provide: BookingRenderingService,\n deps: [\n AppService,\n BookingDataService,\n ScheduleNavigationService,\n [new Optional(), 'entityData'],\n [new Optional(), 'context'],\n NgZone,\n ],\n useFactory: bookingProviderFactory,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceRequestCalendarComponent implements OnInit {\n @Input() public hasToolbar = true;\n @Input() public freezeTableOptions: FreezeTableOptions;\n @Input() public bookingFreezeTableOptions: FreezeTableOptions;\n @Input() public mode: ResourceRequestMode = 'edit';\n\n public pendingRequest = true;\n public pendingBooking = true;\n public readonly = false;\n public isDeviation = false;\n public isBookingHidden = false;\n public request: ResourceRequest | ResourceRequestTemplate;\n public bookingEntries: BookingEntry[] | null;\n public lines: ResourceRequestLine[] = [];\n public formLines: UntypedFormArray = this.fb.array([]);\n public requestFormLine: UntypedFormArray;\n public switcherControl = new FormControl('new');\n\n private resultFormLine: UntypedFormArray;\n private formLinesSubscription: Subscription;\n private readonly defaultFreezeTableOptions: FreezeTableOptions = {\n inContainerMode: false,\n rootContainerId: 'planner-container',\n name: 'planner',\n syncWith: ['booking', 'planner', 'resources'],\n disableHorizontalScroller: true,\n };\n private readonly destroyed$ = new Subject();\n\n public get requestWithResourcePlan(): boolean {\n return (\n this.request['teamMemberId'] &&\n (this.mode === 'create' ||\n this.mode === 'menuCreate' ||\n this.mode === 'edit')\n );\n }\n\n constructor(\n public resourceRequestCalendarService: ResourceRequestCalendarService,\n private resourceRequestService: ResourceRequestService,\n private cellsOrchestratorService: CellsOrchestratorService,\n private cdr: ChangeDetectorRef,\n private fb: UntypedFormBuilder,\n private infoPopupService: InfoPopupService,\n private messageService: MessageService,\n private injector: Injector,\n private el: ElementRef,\n private bookingService: BookingService,\n private bookingDataService: BookingDataService,\n private bookingViewSettingsService: BookingViewSettingsService,\n private scheduleNavigationService: ScheduleNavigationService,\n bookingFilterService: FilterService,\n ) {\n bookingFilterService.storageName = null;\n this.initFreezeTableOptions();\n }\n\n public ngOnInit(): void {\n this.request = this.resourceRequestService.request;\n this.bookingService.isAssistantTopMode = this.mode === 'assistant';\n this.bookingViewSettingsService.assistantMode = this.mode === 'assistant';\n this.bookingDataService.resourceRequestMode = this.mode;\n this.bookingDataService.resourceRequest =\n this.resourceRequestService.request;\n\n this.resourceRequestCalendarService.mode = this.mode;\n this.resourceRequestCalendarService.loadFrame(null);\n this.initRequestSubscribers();\n this.initBookingSubscribers();\n\n if (!this.isBookingEntryViewAllowed()) {\n this.switcherControl.disable();\n }\n\n if (this.mode === 'create' || this.mode === 'menuCreate') {\n this.scheduleNavigationService.asyncActionBeforeChange = () =>\n this.messageService\n .confirmLocal('resources.requests.actions.requestResourceUpdate')\n .then(\n () => true,\n () => false,\n );\n }\n }\n\n public trackById(index: number, row: any): string {\n return row.id;\n }\n\n /** Resets dateHours in the calendar. */\n public resetData(): void {\n this.messageService\n .confirmLocal('resources.requests.actions.requestResourceUpdate')\n .then(\n () => this.resourceRequestCalendarService.resetEntries(),\n () => null,\n );\n }\n\n /** Opens user info. */\n public openUserInfo(userId: string): void {\n const userNameDiv: HTMLElement = this.el.nativeElement.querySelector(\n `#id${userId}`,\n );\n const userNameSpan: HTMLElement = this.el.nativeElement.querySelector(\n `#id${userId}-name`,\n );\n\n const target =\n userNameDiv.offsetWidth < userNameSpan.offsetWidth\n ? userNameDiv\n : userNameSpan;\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Returns `true`, if entry hours is null or is equal to `0`.\n *\n * @param index Array index.\n * @param row ResourceRequestLine.\n * @param entry DateHours.\n *\n */\n public isValidValue(\n index: number,\n row: ResourceRequestLine,\n entry: DateHours,\n ): boolean {\n return (\n this.mode === 'assistant' &&\n row.id === 'result' &&\n this.requestFormLine.value[index]?.hours &&\n (!entry?.hours || !+entry?.hours?.toFixed(2))\n );\n }\n\n /** Checks if BookingComponent can be shown */\n public isBookingEntryViewAllowed(): boolean {\n return (\n this.mode !== 'create' &&\n this.mode !== 'menuCreate' &&\n this.request['bookingEntryViewAllowed']\n );\n }\n\n private rebuildLines(): void {\n this.bookingEntries = this.resourceRequestCalendarService.bookingEntries;\n this.lines.length = 0;\n this.formLines = this.fb.array([]);\n\n const limitHours =\n (this.request as ResourceRequest).teamMember?.resource.resourceType ===\n ResourceType.user\n ? 24\n : 999;\n\n for (const key in this.resourceRequestCalendarService.entries) {\n if (key === 'result' && !this.bookingEntries.length) {\n continue;\n }\n\n if (key === 'result' || key === 'request') {\n const dateHours = this.resourceRequestCalendarService.entries[key];\n\n this.lines.push({\n id: key,\n total: dateHours.reduce((prev, curr) => prev + curr.hours, 0),\n });\n\n const rowFormArray = this.fb.array([]);\n\n for (const entry of dateHours) {\n const control = this.fb.control({\n ...entry,\n hours: +entry.hours.toFixed(2),\n limitHours,\n });\n\n control.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.resourceRequestCalendarService.addEntryToRequest(value);\n\n if (this.mode === 'edit') {\n this.resourceRequestCalendarService.addEntryToQueue(value);\n }\n });\n\n rowFormArray.push(control);\n }\n\n this.formLines.push(rowFormArray);\n rowFormArray.disable({ emitEvent: false });\n }\n }\n\n this.toggleFormEnable();\n this.calcTotals();\n this.initFormLinesSubscriber();\n this.cellsOrchestratorService.init();\n }\n\n private calcRequestDatesAndHours(value: DateHours[]): void {\n const fromIndex = value.findIndex((el) => !!el.hours);\n const toIndex = _.findLastIndex(value, (el) => !!el.hours);\n\n if (fromIndex > -1 && toIndex > -1) {\n this.resourceRequestService.onChange(\n {\n from: value[fromIndex].date,\n to: ProjectResourcesHelper.getEndDateByScale(\n value[toIndex].date,\n this.resourceRequestCalendarService.planningScale,\n ),\n requestedHours: value.reduce(\n (previousValue, currentValue) => previousValue + currentValue.hours,\n 0,\n ),\n },\n 'create',\n true,\n );\n } else {\n this.resourceRequestService.onChange(\n {\n from: null,\n to: null,\n requestedHours: null,\n },\n 'create',\n true,\n );\n }\n\n this.cdr.markForCheck();\n }\n\n private initFormLinesSubscriber(): void {\n if (this.formLinesSubscription) {\n this.formLinesSubscription.unsubscribe();\n }\n\n this.formLinesSubscription = this.formLines.valueChanges\n .pipe(\n startWith(this.formLines.getRawValue()),\n debounceTime(100),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.calcTotals();\n\n if (this.mode !== 'assistant') {\n this.calcRequestDatesAndHours(\n this.resourceRequestCalendarService.requestDateHours,\n );\n }\n\n if (this.mode === 'create' || this.mode === 'menuCreate') {\n this.resourceRequestService.onChange(\n {\n scale: this.resourceRequestCalendarService.planningScale,\n requirementEntries:\n this.resourceRequestCalendarService.requestDateHours,\n },\n this.mode,\n true,\n );\n }\n\n if (this.requestWithResourcePlan) {\n this.isDeviation =\n this.resourceRequestCalendarService.checkIfHasDeviation();\n }\n\n this.cdr.markForCheck();\n });\n }\n\n private calcTotals(): void {\n const assistantResultLine = [];\n\n this.resourceRequestCalendarService.slots.forEach((slot, index) => {\n const slotEntry = this.requestFormLine.value[index];\n const entry = {\n date: slot.date.toISODate(),\n hours: this.mode === 'assistant' ? (-slotEntry?.hours ?? 0) : 0,\n nonWorking: slotEntry?.nonWorking,\n fteHours: slotEntry?.fteHours,\n scheduleHours: slotEntry?.scheduleHours,\n };\n\n this.bookingDataService.bookingsResourceRequest.forEach((booking) => {\n entry.hours +=\n booking.detailEntries.find((el) => el.date === entry.date)?.hours ??\n 0;\n });\n\n assistantResultLine.push({ ...entry, hours: +entry.hours.toFixed(2) });\n });\n\n if (this.bookingEntries.length) {\n this.resultFormLine.patchValue(assistantResultLine, { emitEvent: false });\n }\n\n this.lines.forEach((line) => {\n if (line.id === 'request') {\n line.total =\n this.resourceRequestCalendarService.requestDateHours.reduce(\n (prev, curr) => prev + curr.hours,\n 0,\n );\n }\n\n if (line.id === 'result') {\n line.total = this.resourceRequestCalendarService.getResultTotal(\n this.mode,\n );\n }\n });\n }\n\n private toggleFormEnable(): void {\n this.requestFormLine = this.formLines.at(\n this.lines.findIndex((value) => value.id === 'request'),\n ) as UntypedFormArray;\n this.resultFormLine = this.formLines.at(\n this.lines.findIndex((value) => value.id === 'result'),\n ) as UntypedFormArray;\n\n if (this.mode === 'result' || this.mode === 'assistant') {\n this.formLines.disable({ emitEvent: false });\n return;\n }\n\n if (this.readonly) {\n this.requestFormLine.disable({ emitEvent: false });\n } else {\n this.requestFormLine.enable({ emitEvent: false });\n }\n }\n\n private async createBookingEntry(resource: NamedEntity): Promise {\n try {\n const result = await firstValueFrom(\n this.bookingDataService.createBookingEntry(\n resource.id,\n this.resourceRequestService.request.project.id,\n this.resourceRequestCalendarService.planningScale,\n ),\n );\n\n if (result) {\n result.resource = resource;\n result.project = this.resourceRequestService.request.project;\n this.bookingService.addNewBookingEntry(result);\n }\n } catch (error) {\n this.bookingService.errorHandlerOnSave(\n error,\n resource,\n this.resourceRequestService.request.project,\n );\n }\n }\n\n private setBookingDataToCalendar(resetResourceIds = false): void {\n this.resourceRequestCalendarService.setBookingEntries(\n this.bookingDataService.bookingsResourceRequest,\n resetResourceIds,\n );\n this.resourceRequestCalendarService.initResourceIds(\n this.bookingDataService.resources.map((r) => r.id),\n );\n\n if (this.mode !== 'assistant') {\n this.bookingDataService.extraBookings =\n this.switcherControl.value === 'current'\n ? null\n : this.resourceRequestCalendarService.bookingEntries;\n }\n }\n\n private initFreezeTableOptions(): void {\n this.freezeTableOptions = this.defaultFreezeTableOptions;\n\n this.bookingFreezeTableOptions = {\n name: 'booking',\n syncWith: ['booking', 'planner', 'resources'],\n };\n }\n\n private initControlSubscribers(): void {\n this.switcherControl.valueChanges\n .pipe(startWith(this.switcherControl.value), takeUntil(this.destroyed$))\n .subscribe((value) => {\n if (value === 'current') {\n this.bookingDataService.extraBookings = null;\n this.bookingService.emitComponentChanges(null);\n } else {\n this.bookingDataService.extraBookings =\n this.resourceRequestCalendarService.bookingEntries;\n\n this.resourceRequestCalendarService.bookingEntries.forEach(\n (bookingEntry) => {\n this.bookingService.emitComponentChanges(\n bookingEntry.resource?.id ?? bookingEntry.resourceId,\n );\n },\n );\n }\n });\n\n if (\n this.resourceRequestService.lifecycleInfo?.currentState.id ===\n ResourceRequest.requestCompletedStateId\n ) {\n this.switcherControl.setValue('current');\n this.switcherControl.disable();\n }\n }\n\n private initRequestSubscribers(): void {\n this.resourceRequestService.request$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request) => {\n if (request.id) {\n const requestResource = request as ResourceRequest;\n this.request = requestResource;\n this.readonly = this.resourceRequestService.readonly;\n } else {\n const requestTemplate = request as ResourceRequestTemplate;\n this.request = requestTemplate;\n }\n\n this.cdr.markForCheck();\n });\n\n this.resourceRequestService.event$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((event: EventItem) => {\n switch (event.name) {\n case ResourceRequestEvents.pendingFrame:\n this.pendingRequest = true;\n this.cdr.markForCheck();\n break;\n case ResourceRequestEvents.reloadFrame:\n this.pendingRequest = true;\n this.resourceRequestCalendarService.init();\n this.bookingService.reload();\n break;\n case ResourceRequestEvents.loadFrame:\n this.pendingRequest = false;\n this.isDeviation =\n this.resourceRequestCalendarService.checkIfHasDeviation();\n this.rebuildLines();\n break;\n case ResourceRequestEvents.updatedRequest:\n this.cdr.markForCheck();\n break;\n case ResourceRequestEvents.addedBookingEntry: {\n const resource = event.data as BookingResource;\n const index = this.bookingDataService.resources.findIndex(\n (el) => el.id === resource.id,\n );\n\n if (index === -1) {\n this.bookingDataService.resources.push(resource);\n this.bookingDataService.schedules[resource.id] =\n resource.schedule;\n this.bookingService.emitDetectChanges(null);\n }\n\n this.setBookingDataToCalendar();\n\n if (\n index === -1 &&\n this.resourceRequestCalendarService.bookingMode ===\n BookingMode.Detailed\n ) {\n this.createBookingEntry(event.data as BookingResource).then(\n () => {\n this.bookingService.toggleGroup(resource.id, true);\n this.rebuildLines();\n },\n );\n } else {\n this.bookingService.toggleGroup(resource.id, true);\n this.rebuildLines();\n }\n\n break;\n }\n case ResourceRequestEvents.removedBookingEntry:\n this.rebuildLines();\n break;\n }\n });\n }\n\n private initBookingSubscribers(): void {\n this.bookingService.recalculateGroup$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.calcTotals();\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.updateBookingEntry,\n value.id,\n );\n });\n\n this.bookingService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.rebuildLines();\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.updateBookingEntry,\n null,\n );\n });\n\n this.bookingService.loading$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((loading) => {\n if (!this.isBookingEntryViewAllowed()) {\n this.pendingBooking = false;\n return;\n }\n\n this.pendingBooking = loading;\n this.bookingService.resourceRequestInterval =\n this.resourceRequestCalendarService.interval;\n\n if (!loading) {\n this.setBookingDataToCalendar(true);\n }\n });\n\n if (this.mode !== 'assistant') {\n this.bookingService.loading$.pipe(first((v) => !v)).subscribe(() => {\n this.isBookingHidden = !this.bookingDataService.resources.length;\n this.freezeTableOptions = Object.assign(\n {},\n !this.isBookingHidden\n ? this.defaultFreezeTableOptions\n : {\n disableHorizontalScroller: false,\n },\n );\n this.cdr.markForCheck();\n\n if (this.hasToolbar) {\n this.initControlSubscribers();\n }\n });\n }\n }\n}\n","\n @if (hasToolbar) {\n
    \n \n\n @if (mode !== 'create' && mode !== 'menuCreate') {\n
    \n \n \n {{ 'resources.actions.showNew' | translate }}\n \n \n \n {{ 'resources.actions.showCurrent' | translate }}\n \n
    \n }\n
    \n }\n \n
    \n
    \n \n \n \n \n {{ mode === 'assistant' ? request.resourceDescription ?? request.role?.name : '' }}\n \n \n Σ\n \n \n \n \n
    \n\n
    \n \n @if (!pendingRequest) {\n \n @for (row of lines; track row.id) {\n \n @if (row.id === 'result') {\n \n {{\n (mode === 'assistant'\n ? 'resources.requests.props.deviationHeader'\n : 'resources.requests.props.resultHeader'\n ) | translate\n }}\n \n }\n\n @if (row.id === 'request') {\n \n
    \n
    \n \n {{ 'resources.booking.entryForm.props.resourceRequest' | translate }}\n \n
    \n\n @if (isDeviation) {\n \n }\n\n @if (requestWithResourcePlan) {\n \n \n \n }\n
    \n \n }\n\n \n {{ row.total | plannerFormat }}\n \n \n }\n \n }\n \n
    \n\n
    \n
    \n\n \n
    \n \n \n \n @for (group of resourceRequestCalendarService.slotGroups; track group.id) {\n \n {{ group.header }}\n \n }\n \n \n @for (slot of resourceRequestCalendarService.slots; track slot) {\n \n {{ slot.header }}\n \n }\n \n \n \n
    \n\n
    \n \n @if (!pendingRequest) {\n \n @for (row of lines; track row.id; let rowIndex = $index) {\n \n @for (\n entry of $any(formLines.at(rowIndex))?.controls;\n track entry;\n let dayIndex = $index\n ) {\n \n }\n \n }\n \n }\n \n
    \n\n
    \n \n \n\n \n \n \n\n \n\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport _ from 'lodash';\nimport { DurationLike, Interval } from 'luxon';\nimport { firstValueFrom, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { FteScheduleService } from 'src/app/core/fte-schedule.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport {\n BookingEntry,\n BookingResource,\n} from 'src/app/shared/models/entities/resources/booking-entry.model';\nimport { BookingDetailEntry } from 'src/app/shared/models/entities/resources/booking-detail-entry.model';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n ScheduleNavigationContext,\n ScheduleNavigationService,\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation';\n\nimport { ResourceRequestService } from 'src/app/resource-requests/shared/resource-request/resource-request.service';\nimport { ResourceViewGroupLineEntry } from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport {\n BookingEntryHours,\n EventItem,\n ResourceRequestDateEntries,\n ResourceRequestEvents,\n ResourceRequestMode,\n TotalsCalcMode,\n} from 'src/app/resource-requests/shared/resource-request/resource-request.interface';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { ResourceRequestSchedule } from 'src/app/resource-requests/shared/calendar/models/resource-request-schedule.model';\n\n@Injectable()\nexport class ResourceRequestCalendarService implements OnDestroy {\n public interval: Interval;\n public planningScale: PlanningScale;\n public valueMode: ValueMode;\n public slots: Slot[];\n public slotGroups: SlotGroup[];\n public schedule: ResourceRequestSchedule[];\n public fteSchedule: DateHours[];\n public mode: ResourceRequestMode;\n /**\n * Object with DateHours[] by key or resourceId\n * 'request' is key for requested dates.\n * 'result' is key for result dates\n * */\n public entries: ResourceRequestDateEntries = {\n request: [],\n result: [],\n };\n public requestDateHours: DateHours[];\n public resourceIds: Set = new Set();\n public bookingEntries: BookingEntry[] = [];\n public totalsCalcMode: TotalsCalcMode = null;\n public bookingMode: BookingMode;\n\n private resourcePlanEntries: DateHours[];\n private entriesQueueId = Guid.generate();\n private entriesToSave: BookingEntryHours[] = [];\n private readonly widthByScale: Record = {\n [PlanningScale.Day]: 45,\n [PlanningScale.Week]: 55,\n [PlanningScale.Month]: 65,\n [PlanningScale.Quarter]: null,\n [PlanningScale.Year]: null,\n };\n private readonly shiftByScale: Record = {\n [PlanningScale.Day]: { weeks: 2 },\n [PlanningScale.Week]: { weeks: 10 },\n [PlanningScale.Month]: { month: 5 },\n [PlanningScale.Quarter]: null,\n [PlanningScale.Year]: null,\n };\n private readonly destroyed$ = new Subject();\n\n public get leftTableWidth(): number {\n return 300;\n }\n\n public get rightTableWidth(): number | null {\n if (!this.slots) {\n return null;\n }\n\n return this.widthByScale[this.planningScale] * this.slots.length + 1;\n }\n\n constructor(\n private resourceRequestService: ResourceRequestService,\n private scheduleNavigationService: ScheduleNavigationService,\n private fteScheduleService: FteScheduleService,\n private blockUIService: BlockUIService,\n private logService: LogService,\n private freezeTableService: FreezeTableService,\n private dataService: DataService,\n private savingQueueService: SavingQueueService,\n appService: AppService,\n ) {\n this.init();\n this.initSubscribers();\n this.bookingMode = appService.session.configuration.bookingMode;\n }\n\n public ngOnDestroy(): void {\n this.savingQueueService.save();\n this.destroyed$.next();\n }\n\n public listenEvents(): Observable {\n return this.resourceRequestService.event$;\n }\n\n /**\n * Checks for deviations of the request from the current estimate\n *\n * @return If found deviation, return `true`, otherwise `false`\n */\n public checkIfHasDeviation(): boolean {\n if (\n !this.resourcePlanEntries ||\n (!this.resourceRequestService.request?.teamMemberId &&\n !this.resourceRequestService.requestTemplate?.teamMemberId)\n ) {\n return false;\n }\n\n const difference = _.differenceWith(\n this.requestDateHours\n .filter((el) => el.hours)\n .map((el) => ({ date: el.date, hours: +el.hours.toFixed(2) })),\n this.resourcePlanEntries.map((el) => ({\n date: el.date,\n hours: +el.hours.toFixed(2),\n })),\n _.isEqual,\n );\n\n const intersection = _.intersectionWith(\n this.requestDateHours\n .filter((el) => el.hours)\n .map((el) => ({ date: el.date, hours: +el.hours.toFixed(2) })),\n this.resourcePlanEntries.map((el) => ({\n date: el.date,\n hours: +el.hours.toFixed(2),\n })),\n _.isEqual,\n );\n\n return (\n !!difference.length ||\n intersection.length !== this.resourcePlanEntries.length\n );\n }\n\n /** Reloads frame data */\n public async resetEntries(): Promise {\n if (this.resourceRequestService.request?.id) {\n await this.resetRequirementEntries().catch(() =>\n this.loadFrame(null, true),\n );\n }\n\n this.loadFrame(null, true);\n }\n\n /**\n * Loads frame of requested hours. By default uses current data.\n *\n * @param direction If `null`, using current interval\n * @param withReload Indicates whether to reload frame data.\n */\n public async loadFrame(\n direction: 'left' | 'right' | null,\n withReload = true,\n ): Promise {\n this.blockUIService.start();\n\n const loadingInterval: Interval = this.getLoadingInterval(direction);\n this.logService.debug(`Load new interval: ${loadingInterval.toISODate()}`);\n\n const promises: [Promise, Promise | DateHours[]] =\n [\n firstValueFrom(\n this.fteScheduleService.getFteSchedule(\n this.planningScale,\n this.interval.start.toISODate(),\n this.interval.end.toISODate(),\n ),\n ),\n withReload\n ? this.resourceRequestService.request?.id\n ? this.getRequirementEntriesRequest()\n : this.getResourcePlanEntries()\n : this.requestDateHours,\n ];\n\n [this.fteSchedule, this.requestDateHours] = await Promise.all(promises);\n\n this.requestDateHours.sort((a, b) => (a.date > b.date ? 1 : -1));\n\n this.resourcePlanEntries = withReload\n ? await this.getResourcePlanEntries()\n : this.resourcePlanEntries;\n\n this.updateDates();\n this.rebuildAllEntries();\n\n // NOTE: Handles by `booking.service` in another mode\n if (direction && (this.mode === 'create' || this.mode === 'menuCreate')) {\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n this.freezeTableService.redraw();\n }, 500);\n }, 10);\n }\n\n this.resourceRequestService.setEvent(ResourceRequestEvents.loadFrame);\n this.blockUIService.stop();\n }\n\n /**\n * Add entry to saving queue.\n *\n * @param entry DateHours.\n *\n * */\n public addEntryToQueue(entry: DateHours): void {\n const queueEntry = {\n date: entry.date,\n hours: entry.hours ?? 0,\n };\n\n const queueEntryIndex = this.entriesToSave.findIndex(\n (el) => el.date === queueEntry.date,\n );\n\n if (queueEntryIndex > -1) {\n this.entriesToSave[queueEntryIndex].hours = queueEntry.hours;\n } else {\n this.entriesToSave.push(queueEntry);\n }\n\n const scale = _.clone(this.planningScale);\n\n this.savingQueueService.addToQueue(this.entriesQueueId, () =>\n this.updateRequirementEntries(scale),\n );\n }\n\n /**\n * Saves additional values when form's `mode` is `'create'`\n *\n * @param entry DateHours.\n *\n * */\n public addEntryToRequest(entry: DateHours): void {\n const entryIndex = this.requestDateHours.findIndex(\n (el) => el.date === entry.date,\n );\n\n if (entryIndex > -1) {\n this.requestDateHours[entryIndex].hours = entry.hours;\n } else {\n this.requestDateHours.push(entry);\n this.requestDateHours.sort((a, b) => (a.date > b.date ? 1 : -1));\n }\n }\n\n /**\n * Sets booking entries and runs rebuild method for them.\n *\n * @param bookingEntries Booking entries.\n * @param resetResourceIds determines needs of reset resourceIds.\n *\n * */\n public setBookingEntries(\n bookingEntries: BookingEntry[],\n resetResourceIds?: boolean,\n ): void {\n this.entries = {\n request: [],\n result: [],\n };\n this.bookingEntries = bookingEntries;\n this.rebuildAllEntries();\n this.resourceRequestService.setEvent(ResourceRequestEvents.loadFrame);\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.loadedBookingEntry,\n );\n\n if (resetResourceIds) {\n this.resourceIds.clear();\n }\n }\n\n /**\n * Sets resource ids.\n *\n * @param ids id collection.\n */\n public initResourceIds(ids: string[]): void {\n ids.forEach((id) => {\n this.resourceIds.add(id);\n });\n }\n\n /**\n * Adds booking entry to resource request.\n *\n * @param resource Resource.\n * @param schedule Resource schedule.\n *\n * */\n public addBookingEntry(resource: NamedEntity, schedule: DateHours[]): void {\n this.resourceIds.add(resource.id);\n\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.addedBookingEntry,\n {\n ...resource,\n schedule,\n },\n );\n }\n\n /** Deletes booking entry from resource request.\n *\n * @param bookingId BookingEntry ID.\n * @param resourceId Resource ID.\n */\n public removeBookingEntry(bookingId: string, resourceId: string): void {\n if (bookingId && this.entries[bookingId]) {\n delete this.entries[bookingId];\n }\n\n this.resourceIds.delete(resourceId);\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.removedBookingEntry,\n resourceId,\n );\n }\n\n /**\n * Gets total from result line.\n *\n * @param mode If mode is `assistant` returns deviation from request otherwise return sum of selected resource.\n *\n * @returns hours.\n * */\n public getResultTotal(mode: ResourceRequestMode): number {\n let resultTotal =\n mode === 'assistant'\n ? -this.requestDateHours.reduce(\n (total, value) => total + value.hours,\n 0,\n )\n : 0;\n\n resultTotal += this.bookingEntries.reduce(\n (total, booking) => total + booking.bookedHours,\n 0,\n );\n\n return +resultTotal.toFixed(2);\n }\n\n /** Inits settings */\n public init(): void {\n this.scheduleNavigationService.init(ScheduleNavigationContext.Booking);\n this.planningScale = this.scheduleNavigationService.planningScale;\n this.valueMode = this.scheduleNavigationService.valueMode;\n this.interval = this.scheduleNavigationService.getInterval(\n this.planningScale,\n );\n this.updateDates();\n }\n\n /**\n * Emits line toggled event.\n *\n * @param id resource id\n * @param isBottomMode booking assistant mode (bottom or top).\n */\n public setLineToggledEvent(id: string, isBottomMode: boolean): void {\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.bookingEntryLineToggled,\n {\n toggledIndex:\n Array.from(this.resourceIds).findIndex((item) => item === id) ?? 0,\n toggledArea: isBottomMode ? 'bottom' : 'top',\n },\n );\n }\n\n private setValueMode(valueMode: ValueMode): void {\n this.valueMode = valueMode;\n this.loadFrame(null);\n }\n\n private setPlanningScale(planningScale: PlanningScale): void {\n this.planningScale = planningScale;\n\n this.interval = this.scheduleNavigationService.getInterval(\n this.planningScale,\n );\n\n this.updateDates();\n this.loadFrame(null);\n }\n\n private updateDates(): void {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this.planningScale,\n );\n\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n }\n\n private buildEntries(\n key: string,\n dateHours: BookingDetailEntry[] | DateHours[],\n schedule?: DateHours[],\n ): void {\n this.entries[key] ??= [];\n this.entries[key].length = 0;\n\n this.slots.forEach((slot) => {\n const slotDate = slot.date.toISODate();\n\n const entry = {\n date: slotDate,\n } as ResourceViewGroupLineEntry;\n\n const dataFteSchedule = this.fteSchedule?.find(\n (s) => s.date === slotDate,\n );\n\n entry.limitHours = 999;\n entry.hours = dateHours.find((el) => el.date === slotDate)?.hours ?? 0;\n entry.nonWorking = dataFteSchedule?.hours === 0;\n entry.fteHours = dataFteSchedule?.hours;\n entry.scheduleHours =\n (key === 'request' || key === 'result'\n ? dataFteSchedule?.hours\n : schedule.find((el) => el.date === slotDate)?.hours) ?? 0;\n\n this.entries[key].push(entry);\n });\n }\n\n private rebuildAllEntries(): void {\n this.buildEntries('result', this.requestDateHours);\n this.buildEntries('request', this.requestDateHours);\n this.bookingEntries.forEach((bookingEntry) => {\n this.buildEntries(\n bookingEntry.id,\n bookingEntry.detailEntries,\n bookingEntry.resource?.schedule,\n );\n\n if (this.totalsCalcMode) {\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.updateBookingEntry,\n bookingEntry.resource?.id ?? bookingEntry.resourceId,\n );\n }\n });\n }\n\n /**\n * Gets new interval depending on direction.\n * Also modifies service's current interval to this new interval.\n *\n * @param direction If `null`, using current interval\n * @returns Luxon `Interval`\n */\n private getLoadingInterval(direction: 'left' | 'right' | null): Interval {\n let loadingInterval: Interval;\n\n if (!direction) {\n loadingInterval = this.interval;\n } else {\n const shift: DurationLike = this.shiftByScale[this.planningScale];\n\n loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (this.planningScale === PlanningScale.Month && direction === 'right') {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n }\n\n return loadingInterval;\n }\n\n private initSubscribers(): void {\n this.scheduleNavigationService.previous$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('left', false);\n });\n\n this.scheduleNavigationService.next$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.loadFrame('right', false);\n });\n\n this.scheduleNavigationService.jump$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((date) => {\n this.interval = this.scheduleNavigationService.getInterval(\n this.planningScale,\n date,\n );\n this.loadFrame(null, false);\n });\n\n this.scheduleNavigationService.planningScale$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((planningScale) => {\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.pendingFrame,\n );\n this.setPlanningScale(planningScale);\n });\n\n this.scheduleNavigationService.valueMode$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((valueMode) => {\n this.resourceRequestService.setEvent(\n ResourceRequestEvents.pendingFrame,\n );\n this.setValueMode(valueMode);\n });\n }\n\n private updateRequirementEntries(\n scale: PlanningScale,\n ): Observable {\n const entries = _.cloneDeep(this.entriesToSave);\n this.entriesToSave.length = 0;\n\n return this.dataService\n .collection('ResourceRequests')\n .entity(this.resourceRequestService.request.id)\n .action('UpdateRequirementEntries')\n .execute({ scale, entries });\n }\n\n private async getResourcePlanEntries(): Promise {\n if (\n !this.resourceRequestService.request?.teamMemberId &&\n !this.resourceRequestService.requestTemplate?.teamMemberId\n ) {\n return [];\n }\n\n return await firstValueFrom(\n this.dataService\n .collection('ProjectTeamMembers')\n .entity(\n this.resourceRequestService.requestTemplate?.teamMemberId ??\n this.resourceRequestService.request?.teamMemberId,\n )\n .function('GetGroupedResourcePlanEntries')\n .query({\n scale: `WP.PlanningScale'${this.planningScale}'`,\n }),\n );\n }\n\n private async getRequirementEntriesRequest(): Promise {\n return await firstValueFrom(\n this.dataService\n .collection('ResourceRequests')\n .entity(this.resourceRequestService.request.id)\n .function('GetGroupedRequirementEntries')\n .query({\n scale: `WP.PlanningScale'${this.planningScale}'`,\n }),\n );\n }\n\n private async resetRequirementEntries(): Promise {\n await firstValueFrom(\n this.dataService\n .collection('ResourceRequests')\n .entity(this.resourceRequestService.request.id)\n .action('UpdateFromProject')\n .execute(),\n );\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormArray } from '@angular/forms';\n\nimport _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\n\nimport { ResourceRequestService } from '../resource-request/resource-request.service';\nimport { ResourceRequestMode } from '../resource-request/resource-request.interface';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-resource-request-form-advanced',\n templateUrl: './resource-request-form-advanced.component.html',\n styleUrls: ['./resource-request-form-advanced.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceRequestFormAdvancedComponent implements OnInit, OnDestroy {\n @Input() public mode: ResourceRequestMode = 'edit';\n\n public readonly = false;\n public formRequirements = this.fb.group({\n preferredResources: this.fb.array([]),\n });\n public request: ResourceRequest;\n\n private readonly destroyed$ = new Subject();\n\n constructor(\n private resourceRequestService: ResourceRequestService,\n private savingQueueService: SavingQueueService,\n private cdr: ChangeDetectorRef,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.resourceRequestService.request$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request: ResourceRequest) => {\n this.request = request;\n this.readonly = this.resourceRequestService.readonly;\n\n request.preferredResources?.forEach((pr) => {\n const group = this.fb.group({\n ...pr,\n });\n\n (\n this.formRequirements.controls\n .preferredResources as UntypedFormArray\n ).push(group, {\n emitEvent: false,\n });\n });\n\n this.toggleFormEnable();\n this.cdr.markForCheck();\n });\n\n this.formRequirements.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.resourceRequestService.onChange(value, this.mode);\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.savingQueueService.save();\n this.destroyed$.next();\n }\n\n private toggleFormEnable(): void {\n if (this.readonly) {\n this.formRequirements.disable({ emitEvent: false });\n } else {\n this.formRequirements.enable({ emitEvent: false });\n }\n }\n}\n","
    \n \n\n","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n ViewChildren,\n QueryList,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport _ from 'lodash';\nimport { Observable, of, filter, switchMap, tap } from 'rxjs';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n ResourceRequest,\n ResourceRequestTemplate,\n ResourceRequestUser,\n} from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { Resource } from 'src/app/shared/models/entities/settings/resource.model';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\n\nimport { ResourceRequestCalendarService } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.service';\nimport { ResourceRequestService } from '../resource-request/resource-request.service';\nimport {\n ResourceRequestEvents,\n ResourceRequestMode,\n} from '../resource-request/resource-request.interface';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\n\n@Component({\n selector: 'tmt-resource-request-form-main',\n templateUrl: './resource-request-form-main.component.html',\n styleUrls: ['./resource-request-form-main.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceRequestFormMainComponent implements OnInit {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n @Input() public mode: ResourceRequestMode = 'edit';\n @Output() public form$ = new EventEmitter();\n\n public readonly = false;\n public form: UntypedFormGroup = this.fb.group({\n id: null,\n state: null,\n opened: null,\n completed: null,\n project: [null, Validators.required],\n role: null,\n competence: null,\n resourcePool: [null, Validators.required],\n from: null,\n to: null,\n requestedHours: null,\n bookedHours: null,\n requirementEntries: null,\n resource: null,\n resourceDescription: null,\n teamMemberId: null,\n grade: null,\n level: null,\n location: null,\n legalEntity: null,\n employmentTypeId: null,\n name: null,\n note: ['', Validators.maxLength(Constants.formTextMaxLength)],\n });\n public users: ResourceRequestUser[] = [];\n public cascadeListener: () => void | null = null;\n public readonly formTextMaxLength: number = Constants.formTextMaxLength;\n\n private destroyRef = inject(DestroyRef);\n\n public get request(): any {\n return this.form.getRawValue();\n }\n\n constructor(\n private resourceRequestService: ResourceRequestService,\n private resourceRequestCalendarService: ResourceRequestCalendarService,\n private dataService: DataService,\n private cdr: ChangeDetectorRef,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.setChangeDetectionFix();\n this.form$.emit(this.form);\n\n this.resourceRequestService.request$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (value.id) {\n const request = value as ResourceRequest;\n this.readonly = this.resourceRequestService.readonly;\n this.form.patchValue(request, { emitEvent: false });\n\n this.users = [\n this.buildUserItem(\n request.teamMember,\n request.teamMember?.resource,\n ),\n ];\n this.form.patchValue(\n {\n resource: this.users[0],\n },\n { emitEvent: false },\n );\n } else {\n const requestTemplate = value as ResourceRequestTemplate;\n this.form.patchValue(requestTemplate, { emitEvent: false });\n\n if (this.mode !== 'menuCreate') {\n this.users = [\n this.buildUserItem(\n {\n id: requestTemplate.teamMemberId,\n description: requestTemplate.resourceDescription,\n },\n requestTemplate.resource,\n ),\n ];\n }\n\n this.form.patchValue(\n {\n resource:\n this.users.find(\n (el) => el.teamMemberId === requestTemplate.teamMemberId,\n ) ?? this.users[0],\n },\n { emitEvent: false },\n );\n }\n\n this.toggleFormEnable();\n this.cdr.markForCheck();\n this.initCascade();\n });\n\n this.resourceRequestService.event$\n .pipe(\n filter((event) => event.name === ResourceRequestEvents.updatedRequest),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.form.patchValue(this.resourceRequestService.request, {\n emitEvent: false,\n });\n this.cdr.markForCheck();\n });\n\n this.resourceRequestService.onChange(this.form.getRawValue(), 'create');\n this.initFormSubscribers();\n }\n\n public ngAfterViewInit(): void {\n this.initCascade();\n }\n\n public trackById(index: number, row: any): string {\n return row.id;\n }\n\n private initCascade(): void {\n if (!this.cascadeControls?.length) {\n return;\n }\n\n if (this.cascadeListener) {\n this.cascadeListener();\n }\n\n this.cascadeListener = FormHelper.cascadeDependency(\n this.form,\n this.cascadeControls,\n [\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n [\n {\n controlName: 'role',\n },\n { controlName: 'competence', dependedProperty: 'roleId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.cdr.detectChanges();\n }\n\n /**\n * Returns `TeamMember` collection.\n *\n * @param projectId\n *\n * @return Observable\n * */\n private getTeamMembers(\n projectId: string,\n ): Observable> {\n if (!projectId) {\n return of([]);\n }\n\n const query: any = {\n select: ['id', 'isActive', 'description'],\n filter: [\n {\n isActive: true,\n resource: {\n resourceType: { ne: ResourceType.department },\n },\n },\n ],\n expand: {\n resource: {\n select: ['id', 'name', 'resourceType'],\n },\n },\n };\n\n ProjectVersionUtil.addProjectEntityIdFilter(query, null, projectId);\n\n return this.dataService\n .collection('ProjectTeamMembers')\n .query>(query);\n }\n\n private initFormSubscribers(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.resourceRequestService.onChange(value, this.mode);\n this.cdr.markForCheck();\n });\n\n if (this.mode === 'menuCreate') {\n this.form.controls.project.valueChanges\n .pipe(\n filter(\n (p) => p.id !== this.resourceRequestService.requestTemplate?.id,\n ),\n switchMap((project: NamedEntity | null) =>\n this.getTeamMembers(project?.id),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n this.users = value.map((el) => this.buildUserItem(el, el.resource));\n this.users.sort(naturalSort('name'));\n this.users = _.sortBy(\n this.users,\n (el) => el.resourceType === ResourceType.generic,\n );\n\n this.form.controls.resource.patchValue(null);\n });\n }\n\n this.form.controls.resource.valueChanges\n .pipe(\n tap((value) => {\n this.form.patchValue({\n level: null,\n grade: null,\n location: null,\n role: null,\n competence: null,\n legalEntity: null,\n teamMemberId: value?.teamMemberId ?? null,\n });\n\n if (this.resourceRequestService.requestTemplate) {\n this.resourceRequestService.requestTemplate.teamMemberId =\n value?.teamMemberId ?? null;\n }\n\n this.toggleResourceFields();\n }),\n switchMap((value) =>\n !value\n ? of(null)\n : this.resourceRequestService.loadResourceRequestTemplate(\n value.teamMemberId,\n false,\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n this.resourceRequestService.onChange(\n this.form.getRawValue(),\n 'menuCreate',\n );\n\n this.resourceRequestCalendarService.loadFrame(null);\n },\n error: () => null,\n });\n }\n\n private buildUserItem(\n teamMember: Partial,\n resource: Partial,\n ): ResourceRequestUser {\n if (!teamMember) {\n return null;\n }\n\n return {\n teamMemberId: teamMember.id,\n id: resource?.id ?? teamMember.id,\n name: resource?.name ?? teamMember.description,\n resourceType: resource.resourceType,\n };\n }\n\n private toggleResourceFields(): void {\n const fieldToDisable: Partial[] = [];\n\n if (this.request.resourcePool) {\n fieldToDisable.push('resourcePool');\n }\n\n if (this.mode !== 'menuCreate') {\n this.form.controls['resource'].disable({ emitEvent: false });\n }\n\n if (\n (this.request.resource &&\n this.request.resource.resourceType !== ResourceType.generic) ||\n this.readonly\n ) {\n fieldToDisable.forEach((key) => {\n this.form.controls[key].disable({ emitEvent: false });\n });\n } else {\n fieldToDisable.forEach((key) => {\n this.form.controls[key].enable({ emitEvent: false });\n });\n }\n }\n\n private toggleFormEnable(): void {\n if (this.readonly) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n\n this.toggleResourceFields();\n }\n\n private setChangeDetectionFix(): void {\n // TODO: check and fix this code\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const origFunc = this.form.markAllAsTouched;\n this.form.markAllAsTouched = function () {\n origFunc.apply(this);\n self.cdr.markForCheck();\n };\n }\n}\n","
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n\n \n \n

    \n {{ 'shared.empty' | translate }}\n

    \n
    \n\n
    \n \n \n
    \n\n \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n \n\n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n \n\n
    \n
    \n \n

    \n {{ request.from | date: 'shortDate' }}\n

    \n
    \n\n
    \n \n

    \n {{ request.to | date: 'shortDate' }}\n

    \n
    \n\n
    \n \n

    \n {{ request.requestedHours | wpWork }}\n

    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n\n\n\n

    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\nimport { ResourceRequestService } from '../resource-request.service';\nimport { ResourceRequestCalendarService } from '../../calendar/resource-request-calendar.service';\n\n@Component({\n selector: 'tmt-resource-request-modal',\n templateUrl: './resource-request-modal.component.html',\n styleUrls: ['./resource-request-modal.component.scss'],\n providers: [\n ResourceRequestService,\n ResourceRequestCalendarService,\n SavingQueueService,\n ScheduleNavigationService,\n FreezeTableService,\n ],\n standalone: false,\n})\nexport class ResourceRequestModalComponent implements OnInit {\n @Input() public teamMemberId: string | null;\n\n public isSaving = false;\n public isBookingUpdate = false;\n\n private formMain: UntypedFormGroup;\n\n constructor(\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n public resourceRequestService: ResourceRequestService,\n ) {}\n\n public ngOnInit(): void {\n if (this.teamMemberId) {\n this.resourceRequestService\n .loadResourceRequestTemplate(this.teamMemberId)\n .subscribe({\n next: (value) => {\n this.isBookingUpdate = !!value.resource;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.cancel();\n },\n });\n } else {\n this.resourceRequestService.onChange({}, 'menuCreate');\n this.resourceRequestService.state$.next(CardState.Ready);\n }\n }\n\n public create(): void {\n this.formMain.markAllAsTouched();\n\n if (this.formMain.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.resourceRequestService.create().subscribe({\n next: (request) => {\n this.isSaving = false;\n this.activeModal.close(request);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n public onForm(form: UntypedFormGroup): void {\n this.formMain = form;\n }\n}\n","\n\n\n
    \n

    \n {{ 'resources.requests.modal.header' | translate }}\n

    \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n
    \n\n \n
    \n\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-preferred-resources-toolbar',\n templateUrl: './preferred-resources-toolbar.component.html',\n standalone: false,\n})\nexport class PreferredResourcesToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared.actions.add' | translate }}\n \n
    \n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PreferredResourcesToolbarComponent } from './preferred-resources-toolbar/preferred-resources-toolbar.component';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridUserControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-preferred-resources',\n templateUrl: './preferred-resources.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PreferredResourcesComponent {\n @Input() entityId: string;\n @Input() readonly: boolean;\n @Input() users: UntypedFormArray = this.fb.array([]);\n\n @Input() roleId: string;\n @Input() resourcePoolId: string;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: PreferredResourcesToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.users.removeAt(index);\n this.users.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const group = this.getGridFormGroup({});\n this.users.push(group);\n this.gridService.selectGroup(group);\n this.users.markAsDirty();\n },\n },\n ],\n view: {\n name: 'users',\n columns: [\n {\n name: 'resource',\n header: 'resources.requests.props.preferredResource',\n hint: 'resources.requests.props.preferredResource',\n type: GridColumnType.UserControl,\n placeholder: 'resources.requests.props.preferredResource',\n query: () => {\n const query = { filter: [] };\n\n if (this.roleId) {\n query.filter.push({\n or: [\n { roleId: { type: 'guid', value: this.roleId } },\n {\n additionalUserRoles: {\n any: {\n roleId: { type: 'guid', value: this.roleId },\n },\n },\n },\n ],\n });\n }\n\n if (this.resourcePoolId) {\n query.filter.push({\n resourcePoolId: {\n type: 'guid',\n value: this.resourcePoolId,\n },\n });\n }\n\n const usersIds: string[] = this.users.value\n .filter((pr) => pr.resource)\n .map((pr) => pr.resource.id);\n\n if (usersIds.length) {\n query.filter.push([`not (id in (${usersIds.join(',')}))`]);\n }\n\n return query;\n },\n width: '100%',\n required: true,\n },\n ],\n },\n };\n\n constructor(\n private gridService: GridService,\n public actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n ) {}\n\n private getGridFormGroup(row: any): UntypedFormGroup {\n return this.fb.group({\n resource: [row.resource],\n id: row.id ? row.id : Guid.generate(),\n });\n }\n}\n","\n","import { ResourceViewGroupLineEntry } from 'src/app/projects/card/project-resources/models/project-resources-view.model';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\nexport type ResourceRequestMode =\n | 'create'\n | 'edit'\n | 'result'\n | 'menuCreate'\n | 'assistant';\n\nexport type TotalsCalcMode = 'new' | 'current';\n\nexport interface ResourceRequestDateEntries {\n [id: 'request' | 'result' | string]: ResourceViewGroupLineEntry[];\n}\n\nexport interface ResourceRequestLine {\n id: string;\n total: number;\n resource?: NamedEntity;\n}\n\nexport interface BookingEntryHours extends DateHours {\n bookingEntryId?: string;\n}\n\nexport interface EventItem {\n name: ResourceRequestEvents;\n data?: T;\n}\n\nexport enum ResourceRequestEvents {\n loadFrame = 'LOAD_FRAME',\n reloadFrame = 'RELOAD_FRAME',\n pendingFrame = 'PENDING_FRAME',\n updatedRequest = 'UPDATED_REQUEST',\n addedBookingEntry = 'ADDED_BOOKING_ENTRY',\n removedBookingEntry = 'REMOVED_BOOKING_ENTRY',\n updateBookingEntry = 'UPDATED_BOOKING_ENTRY',\n loadedBookingEntry = 'LOADED_BOOKING_ENTRY',\n bookingEntryLineToggled = 'BOOKING_ENTRY_LINE_TOGGLED',\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ResourceRequestModalComponent } from './modal/resource-request-modal.component';\n// eslint-disable-next-line max-len\nimport { PreferredResourcesToolbarComponent } from './preferred-resources/preferred-resources-toolbar/preferred-resources-toolbar.component';\nimport { PreferredResourcesComponent } from './preferred-resources/preferred-resources.component';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { PlannerModule } from 'src/app/shared-features/planner/planner.module';\nimport { ResourceRequestCalendarComponent } from 'src/app/resource-requests/shared/calendar/resource-request-calendar.component';\nimport { ResourceRequestFormMainComponent } from 'src/app/resource-requests/shared/form-main/resource-request-form-main.component';\nimport { ResourceRequestFormAdvancedComponent } from 'src/app/resource-requests/shared/form-advanced/resource-request-form-advanced.component';\nimport { BookingModule } from 'src/app/booking/booking/booking.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ResourceRequestModalComponent,\n PreferredResourcesToolbarComponent,\n PreferredResourcesComponent,\n ResourceRequestCalendarComponent,\n ResourceRequestFormMainComponent,\n ResourceRequestFormAdvancedComponent,\n ],\n exports: [\n ResourceRequestModalComponent,\n PreferredResourcesToolbarComponent,\n PreferredResourcesComponent,\n ResourceRequestCalendarComponent,\n ResourceRequestFormMainComponent,\n ResourceRequestFormAdvancedComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ScheduleNavigationModule,\n PlannerModule,\n BookingModule,\n GridModule,\n ],\n})\nexport class ResourceRequestModule {}\n","import { Injectable, OnDestroy, Optional } from '@angular/core';\nimport { Subject, BehaviorSubject, from, Observable, of } from 'rxjs';\nimport { concatMap, filter, map, takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n EventItem,\n ResourceRequestEvents,\n ResourceRequestMode,\n} from 'src/app/resource-requests/shared/resource-request/resource-request.interface';\nimport { LifecycleInfo } from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport {\n ResourceRequest,\n ResourceRequestTemplate,\n} from 'src/app/shared/models/entities/resources/resource-request.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Injectable()\nexport class ResourceRequestService implements OnDestroy {\n private eventSubject = new Subject();\n public event$: Observable = this.eventSubject.asObservable();\n\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private requestSubject: BehaviorSubject<\n ResourceRequest | ResourceRequestTemplate\n > = new BehaviorSubject(null);\n public request$ = this.requestSubject.asObservable().pipe(filter((p) => !!p));\n public request: ResourceRequest | null = null;\n public requestTemplate: ResourceRequestTemplate | null = null;\n public lifecycleInfo: LifecycleInfo;\n\n private oDataLoadParams = {\n expand: {\n state: { select: ['id', 'name', 'code', 'isEntityProtected'] },\n project: { select: ['id', 'name'] },\n resourcePool: { select: ['id', 'name'] },\n role: { select: ['id', 'name'] },\n competence: { select: ['id', 'name'] },\n legalEntity: { select: ['id', 'name'] },\n location: { select: ['name', 'id'] },\n level: { select: ['name', 'id'] },\n grade: { select: ['name', 'id'] },\n teamMember: {\n select: ['id', 'description'],\n expand: {\n resource: {\n select: ['id', 'name', 'resourceType'],\n },\n },\n },\n createdBy: { select: ['id', 'name'] },\n } as any,\n };\n private readonly destroyed$ = new Subject();\n\n public get readonly(): boolean {\n return !this.request.editAllowed || this.request.state?.isEntityProtected;\n }\n\n constructor(\n public navigation: NavigationService,\n private notification: NotificationService,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n @Optional() private lifecycleService: LifecycleService,\n @Optional() private savingQueueService: SavingQueueService,\n ) {\n this.lifecycleService?.lifecycleInfo$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((info) => {\n this.lifecycleInfo = info;\n });\n\n if (savingQueueService) {\n this.savingQueueService.save$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((request: any) => {\n if (request?.rowVersion) {\n this.request.rowVersion = request.rowVersion;\n }\n });\n\n this.savingQueueService.error$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load(this.request.id);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Emits service event */\n public setEvent(event: ResourceRequestEvents, data?: T): void {\n this.eventSubject.next({\n name: event,\n data,\n });\n }\n\n private transformToSave(\n request: Record,\n mode: ResourceRequestMode,\n ): Record {\n if (mode === 'create' || mode === 'menuCreate') {\n return {\n roleId: request?.role?.id ?? null,\n competenceId: request?.competence?.id ?? null,\n legalEntityId: request?.legalEntity?.id ?? null,\n resourcePoolId: request?.resourcePool?.id ?? null,\n projectId: request?.project?.id ?? null,\n teamMemberId: request?.teamMemberId ?? null,\n from: request?.from,\n to: request?.to,\n requirementEntries: request?.requirementEntries\n ?.filter((el) => el.hours)\n ?.map((el) => ({ hours: el.hours, date: el.date })),\n gradeId: request?.grade?.id ?? null,\n levelId: request?.level?.id ?? null,\n locationId: request?.location?.id ?? null,\n name: '',\n resourceDescription: request?.resourceDescription ?? null,\n note: request?.note,\n scale: request?.scale,\n employmentTypeId: request?.employmentTypeId ?? null,\n };\n } else {\n return {\n id: request.id,\n rowVersion: request.rowVersion,\n stateId: request.state?.id,\n roleId: request.role?.id ?? null,\n competenceId: request.competence?.id ?? null,\n legalEntityId: request.legalEntity?.id ?? null,\n resourcePoolId: request.resourcePool?.id ?? null,\n projectId: request.project?.id ?? null,\n teamMemberId: request.teamMemberId,\n name: request.name,\n note: request.note,\n from: request.from,\n to: request.to,\n gradeId: request.grade?.id,\n levelId: request.level?.id,\n locationId: request.location?.id,\n resourceDescription: request.resourceDescription,\n preferredResources: request.preferredResources\n ?.filter((pr) => pr.resource)\n ?.map((pr) => ({ resourceId: pr.resource.id })),\n employmentTypeId: request?.employmentTypeId ?? null,\n };\n }\n }\n\n /** Loads resource request data.\n *\n * @param teamMemberId TeamMember Id.\n * @param setLoading Indicates whether to emit `CardState.Loading` event.\n *\n * @return `ResourceRequestTemplate`\n */\n public loadResourceRequestTemplate(\n teamMemberId: string,\n setLoading = true,\n ): Observable {\n if (setLoading) {\n this.state$.next(CardState.Loading);\n }\n\n return this.data\n .collection('ProjectTeamMembers')\n .entity(teamMemberId)\n .function('GetResourceRequestTemplate')\n .get()\n .pipe(\n map((request) => {\n request.editAllowed = true;\n this.requestTemplate = request;\n this.requestSubject.next(request);\n this.state$.next(CardState.Ready);\n return request;\n }),\n );\n }\n\n public load(entityId: string) {\n this.state$.next(CardState.Loading);\n\n this.oDataLoadParams.expand.preferredResources = {\n select: ['id'],\n expand: {\n resource: {\n select: ['id', 'name'],\n },\n },\n };\n\n this.data\n .collection('ResourceRequests')\n .entity(entityId)\n .get(this.oDataLoadParams)\n .subscribe({\n next: (request) => {\n this.request = request;\n this.requestSubject.next(this.request);\n this.state$.next(CardState.Ready);\n\n this.navigation.addRouteSegment({\n id: request.id,\n title: request.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n /** Handlers formData.\n *\n * @param formData data.\n * @param mode ResourceRequestMode.\n * @param setEvent Indicates whether to emit `updatedRequest` event.\n *\n */\n public onChange(\n formData: Record,\n mode: ResourceRequestMode,\n setEvent = false,\n ): void {\n if (!this.request) {\n this.request = this.transformToSave(\n this.requestTemplate,\n mode,\n ) as ResourceRequest;\n }\n\n for (const key in formData) {\n if (Object.prototype.hasOwnProperty.call(formData, key)) {\n this.request[key] = formData[key];\n }\n }\n\n if (mode === 'edit') {\n this.savingQueueService.addToQueue(this.request.id, () =>\n this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .update(this.transformToSave(this.request, 'edit'), {\n withResponse: true,\n }),\n );\n }\n\n if (setEvent) {\n this.setEvent(ResourceRequestEvents.updatedRequest);\n }\n }\n\n /** Создает запрос (из запроса в контексте сервиса). */\n public create(): Observable {\n return this.data\n .collection('ResourceRequests')\n .insert(this.transformToSave(this.request, 'create'));\n }\n\n public delete() {\n this.message.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.actionService.action('delete').start();\n this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem();\n this.actionService.action('delete').stop();\n },\n error: (error: Exception) => {\n this.actionService.action('delete').stop();\n this.message.error(error.message).then(\n () => this.load(this.request.id),\n () => this.load(this.request.id),\n );\n },\n });\n },\n () => null,\n );\n }\n\n /** Открыть запрос. */\n public open(): Observable {\n return from(this.savingQueueService?.save() ?? of(true)).pipe(\n concatMap(() =>\n this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .action('WP.Open')\n .execute()\n .pipe(map((result) => result as ResourceRequest)),\n ),\n );\n }\n\n /** Отменить запрос. */\n public cancel(): Observable {\n return this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .action('WP.Cancel')\n .execute()\n .pipe(map((result) => result as ResourceRequest));\n }\n\n /** Завершить запрос. */\n public complete(): Observable {\n return this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .action('Complete')\n .execute()\n .pipe(map((result) => result as ResourceRequest));\n }\n\n /** Перевести запрос в черновик. */\n public edit(): Observable {\n return this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .action('Edit')\n .execute()\n .pipe(map((result) => result as ResourceRequest));\n }\n\n clone(): Observable {\n return this.data\n .collection('ResourceRequests')\n .entity(this.request.id)\n .action('Clone')\n .execute()\n .pipe(map((result) => result as ResourceRequest));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { ResourceSummaryFilterSettings } from 'src/app/resource-summary/shared/resource-summary-filter/models/resource-summary-filter-settings';\nimport { catchError, map } from 'rxjs/operators';\nimport { Interval } from 'luxon';\nimport { ResourceSummaryRepresentationService } from 'src/app/resource-summary/shared/resource-summary-representation-settings/core/resource-summary-representation.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport {\n ResourceSummaryEntryMap,\n ResourceSummaryEntryTypeMap,\n} from 'src/app/resource-summary/models/resource-summary-view.model';\nimport {\n ResourceSummaryPageDto,\n ResourceSummaryResourceEntryDto,\n ResourceSummaryResourceFilter,\n} from 'src/app/resource-summary/models/resource-summary-data.model';\n\n/** Provides methods to work with Resource Summary REST API. */\n@Injectable()\nexport class ResourceSummaryDataService {\n /** Gets Value Mode. */\n public get valueMode(): ValueMode {\n return this._valueMode;\n }\n\n /** Sets Value Mode. */\n public set valueMode(value: ValueMode) {\n this._valueMode = value;\n }\n\n /** Gets Resource Summary Pages. */\n public get summaryPages(): ResourceSummaryPageDto[] {\n return this._summaryPages;\n }\n\n /** Gets Resource Summary Entries. */\n public get entries(): ResourceSummaryEntryMap {\n return this._entries;\n }\n\n /** Gets Resource Summary Entry types. */\n public get entryTypes(): ResourceSummaryEntryTypeMap {\n return this._entryTypes;\n }\n\n private _valueMode: ValueMode;\n private _summaryPages: ResourceSummaryPageDto[];\n private _entries: ResourceSummaryEntryMap;\n private _entryTypes: ResourceSummaryEntryTypeMap = {\n timeOff: 'timeOff',\n schedule: 'schedule',\n };\n\n constructor(\n private data: DataService,\n private summaryRepresentationService: ResourceSummaryRepresentationService,\n ) {}\n\n /** Inits Service. */\n public init(): void {\n this._summaryPages = [];\n this._entries = {};\n }\n\n /**\n * Loads Resource Summary page.\n *\n * @param pageNumber Page Number.\n * @param pageSize Page Size.\n * @param filter Filter.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {ResourceSummaryPageDto} list observable.\n * */\n public loadResourceSummaryPage(\n pageNumber: number,\n pageSize: number,\n filter: ResourceSummaryFilterSettings,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable {\n const params: Record = {\n pageNumber,\n pageSize,\n kpiTypes: '@kpiTypes',\n valueMode: `'${valueMode}'`,\n filter: '@filter',\n };\n const filterObject = {\n projectId: filter.project?.id ?? null,\n programId: filter.program?.id ?? null,\n organizationId: filter.client?.id ?? null,\n resourcePoolId: filter.resourcePool?.id ?? null,\n departmentId: filter.department?.value?.id ?? null,\n roleId: filter.role?.id ?? null,\n levelId: filter.level?.id ?? null,\n locationId: filter.location?.id ?? null,\n searchText: filter.searchText,\n mySubordinates: filter.isMySubordinates,\n teamOfMyProjects: filter.isMyProjects,\n includeSubDepartments: filter.department?.includeSubordinates,\n includeNonActiveResources:\n this.summaryRepresentationService.settings.show?.inactiveResources ??\n false,\n includeNonActiveProjects:\n this.summaryRepresentationService.settings.show?.inactiveProjects ??\n false,\n };\n\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@kpiTypes': JSON.stringify(kpiTypes),\n };\n\n return this.data.model\n .function('GetResourceSummaryPage')\n .query(params, null, urlParams)\n .pipe(\n catchError((error: Exception) => throwError(() => error)),\n map((val) => {\n const resources = val as ResourceSummaryPageDto[];\n this._summaryPages = this._summaryPages.concat(resources);\n return resources;\n }),\n );\n }\n\n /**\n * Loads Resource Summary entries frame.\n *\n * @param resourceIds Resource IDs.\n * @param interval Interval.\n * @param planningScale Planning Scale.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {Observable} after list merged with new frame.\n * */\n public loadFrame = (\n resourceIds: string[],\n interval: Interval,\n planningScale: PlanningScale,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable =>\n this.loadResourceSummaryEntries(\n resourceIds,\n interval,\n planningScale,\n kpiTypes,\n valueMode,\n ).pipe(map(() => void 0));\n\n /**\n * Loads Resource Summary entries.\n *\n * @param resourceIds Resource IDs.\n * @param interval Interval.\n * @param planningScale Planning Scale.\n * @param kpiTypes KPI Types.\n * @param valueMode Value Mode.\n * @returns {ResourceSummaryResourceEntryDto} list observable.\n * */\n public loadResourceSummaryEntries(\n resourceIds: string[],\n interval: Interval,\n planningScale: PlanningScale,\n kpiTypes: KpiType[],\n valueMode: ValueMode,\n ): Observable {\n if (!resourceIds.length || !kpiTypes.length) {\n return of([]);\n }\n\n const params: Record = {\n resourcesIds: '@resourcesIds',\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n planningScale: `'${planningScale}'`,\n kpiTypes: '@kpiTypes',\n includeNonActiveProjects: `${\n this.summaryRepresentationService.settings.show?.inactiveProjects ??\n false\n }`,\n valueMode: `'${valueMode}'`,\n };\n\n const urlParams: Record = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@resourcesIds': JSON.stringify(resourceIds),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@kpiTypes': JSON.stringify(kpiTypes),\n };\n\n return this.data.model\n .function('GetResourceSummaryEntries')\n .query(params, null, urlParams)\n .pipe(\n catchError((error: Exception) => throwError(() => error)),\n map((val) => {\n const entries = val;\n entries.forEach((entry) => {\n if (!entry.projectId) {\n entry.projectId = entry.isTimeOffValue\n ? this.entryTypes.timeOff\n : this.entryTypes.schedule;\n }\n this.entries[entry.resourceId] ??= {};\n this.entries[entry.resourceId][entry.projectId] ??= [];\n const existedEntry = this.entries[entry.resourceId][\n entry.projectId\n ].find((e) => JSON.stringify(e) === JSON.stringify(entry));\n if (!existedEntry) {\n this.entries[entry.resourceId][entry.projectId].push(entry);\n }\n });\n return entries;\n }),\n );\n }\n\n /**\n * Gets Resource Summary entries.\n *\n * @param resourceId Resource ID.\n * @param [projectId] Project ID.\n * @returns {ResourceSummaryResourceEntryDto} list.\n * */\n public getResourceSummaryEntries(\n resourceId: string,\n projectId: string | null,\n ): ResourceSummaryResourceEntryDto[] {\n const projectIdWithTimeOff = projectId ?? this.entryTypes.timeOff;\n if (\n !this.entries[resourceId] ||\n !this.entries[resourceId][projectIdWithTimeOff]\n ) {\n return [];\n }\n return this.entries[resourceId][projectIdWithTimeOff];\n }\n}\n","import {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { ResourceSummaryDataService } from 'src/app/resource-summary/core/resource-summary-data.service';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { ResourceSummaryViewSettingsService } from 'src/app/resource-summary/shared/resource-summary-view-settings/core/resource-summary-view-settings.service';\nimport { ResourceSummaryFilterService } from 'src/app/resource-summary/shared/resource-summary-filter/core/resource-summary-filter.service';\nimport { ResourceSummaryViewSettings } from 'src/app/resource-summary/models/resource-summary-view.settings';\nimport { filter, switchMap, takeUntil, throttleTime } from 'rxjs/operators';\nimport { ResourceSummaryRepresentationService } from 'src/app/resource-summary/shared/resource-summary-representation-settings/core/resource-summary-representation.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Provides methods to work with Resource Summary component. */\n@Injectable()\nexport class ResourceSummaryService implements OnDestroy {\n /**\n * Indicates whether all rows are expanded or collapsed.\n *\n * @returns `true` if all rows are expanded, `false` otherwise.\n * */\n public get isAllExpanded(): boolean {\n return (\n this.expandedResourceIds.size ===\n this.summaryDataService.summaryPages.length\n );\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return Object.keys(this.summaryViewSettingsService.settings.show).filter(\n (key) => this.summaryViewSettingsService.settings.show[key],\n ) as KpiType[];\n }\n\n /** Gets Selected KPI Types without Schedule data. */\n public get selectedKpiTypesWithoutSchedule(): KpiType[] {\n return this.selectedKpiTypes.filter(\n (key) => KpiType[key] !== KpiType.Scheduled,\n ) as KpiType[];\n }\n\n /**\n * Indicates whether Actual KPI type is selected or not.\n *\n * @returns `true` if selected, `false` otherwise.\n * */\n public get isActualKpiTypeSelected(): boolean {\n return this.selectedKpiTypes.some((key) => KpiType[key] === KpiType.Actual);\n }\n\n /** Gets Summary Slot Groups. */\n public get slotGroups(): SlotGroup[] {\n return this._slotGroups;\n }\n\n /** Gets Summary Slots. */\n public get slots(): Slot[] {\n return this._slots;\n }\n\n /** Gets Summary View Settings. */\n public get settings(): ResourceSummaryViewSettings {\n return this._settings;\n }\n\n /** Gets Slot width. */\n public get slotWidth(): number {\n return this.getSlotWidth(this._settings.planningScale);\n }\n\n private loadingSubject = new BehaviorSubject(true);\n public loading$ = this.loadingSubject.asObservable();\n\n private detectChangesSubject = new Subject();\n public detectChanges$ = this.detectChangesSubject.asObservable();\n\n private recalculateGroupSubject = new Subject<{\n id: string;\n rebuild?: boolean;\n }>();\n public recalculateGroup$ = this.recalculateGroupSubject.asObservable();\n\n private toggleGroupSubject = new BehaviorSubject<{\n id: string;\n state: boolean;\n }>(null);\n public toggleGroup$ = this.toggleGroupSubject.asObservable();\n\n private readonly scrollThrottlingDuration = 100;\n private readonly pageSize = 30;\n private pageNumber: number;\n private expandedResourceIds: Set = new Set();\n\n private interval: Interval;\n private interval$ = new Subject();\n\n private _allAreLoaded: boolean;\n private _slots: Slot[];\n private _slotGroups: SlotGroup[];\n private _settings: ResourceSummaryViewSettings;\n private _settingsCopy: Record;\n\n private pageReloaded$ = new Subject();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private summaryDataService: ResourceSummaryDataService,\n private summaryViewSettingsService: ResourceSummaryViewSettingsService,\n private summaryRepresentationService: ResourceSummaryRepresentationService,\n private summaryFilterService: ResourceSummaryFilterService,\n private scheduleNavigationService: ScheduleNavigationService,\n private localConfigService: LocalConfigService,\n private freezeTableService: FreezeTableService,\n private chrome: ChromeService,\n private blockUI: BlockUIService,\n private notification: NotificationService,\n ) {}\n\n ngOnDestroy(): void {\n this.pageReloaded$.next();\n }\n\n /** Inits Service. */\n public init(): void {\n this._settingsCopy = { ...this.summaryViewSettingsService.settings.show };\n this._settingsCopy[KpiType.Scheduled] = null;\n this._settings = this.localConfigService.getConfig(\n ResourceSummaryViewSettings,\n );\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n );\n this.summaryDataService.valueMode = this._settings.valueMode;\n\n this.initSubscriptions();\n this.enableLoadingOnScroll();\n this.reload();\n }\n\n /**\n * Reloads the data.\n *\n * @param [toDate] End Date.\n * */\n public reload(toDate?: DateTime): void {\n this.loadingSubject.next(true);\n this.pageReloaded$.next();\n this.toggleGroupSubject.next(null);\n\n this.summaryDataService.init();\n\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n toDate,\n );\n this.updateDates();\n this._allAreLoaded = false;\n this.pageNumber = 0;\n\n this.loadResourceSummaryPage();\n }\n\n /** Toggles all Resource rows. */\n public toggleAllResources(): void {\n const state = !this.isAllExpanded;\n this.summaryDataService.summaryPages.forEach((item) => {\n if (state && !this.expandedResourceIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n\n if (!state && this.expandedResourceIds.has(item.id)) {\n this.toggleGroup(item.id, state);\n }\n });\n\n this.detectChangesSubject.next(null);\n }\n\n /**\n * Toggles Resource Group.\n *\n * @param id Group ID.\n * @param state State flag.\n * */\n public toggleGroup(id: string, state: boolean): void {\n if (state) {\n this.expandedResourceIds.add(id);\n } else {\n this.expandedResourceIds.delete(id);\n }\n\n this.toggleGroupSubject.next({ id, state });\n }\n\n /**\n * Recalculates Resource Group.\n *\n * @param id Group ID.\n * @param [rebuild=false] Indicates whether Group rebuild is required or not.\n * */\n public recalculateGroup(id: string, rebuild = false): void {\n this.recalculateGroupSubject.next({ id, rebuild });\n }\n\n /**\n * Triggers Resource Group change detection.\n *\n * @param id Group ID.\n * */\n public detectGroupChanges(id: string): void {\n this.detectChangesSubject.next(id);\n }\n\n /**\n * Sets Value Mode.\n *\n * @param valueMode New Value Mode.\n * */\n public setValueMode(valueMode: ValueMode): void {\n this._settings.valueMode = valueMode;\n this.summaryDataService.valueMode = this._settings.valueMode;\n this.reload();\n }\n\n /**\n * Sets Planning Scale.\n *\n * @param planningScale New Planning Scale.\n * */\n public setPlanningScale(planningScale: PlanningScale): void {\n this._settings.planningScale = planningScale;\n this.interval = this.scheduleNavigationService.getInterval(\n this._settings.planningScale,\n );\n\n this.updateDates();\n this.reload();\n }\n\n /**\n * Calculates slot width by planning scale.\n *\n * @returns Slot width.\n * @throws Error if scale is invalid.\n * */\n public getSlotWidth(scale: PlanningScale): number {\n switch (scale) {\n case PlanningScale.Day:\n return 75;\n case PlanningScale.Week:\n return 85;\n case PlanningScale.Month:\n return 90;\n default:\n throw new Error(`Invalid scale: ${scale}`);\n }\n }\n\n /**\n * Calculates minimal table width.\n *\n * @returns Minimal table width.\n * */\n public getDataTableWidth = (): number | null =>\n this.slots ? this.slotWidth * this.slots.length + 1 : null;\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.scheduleNavigationService.previous$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.loadFrame('left');\n });\n\n this.scheduleNavigationService.next$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.loadFrame('right');\n });\n\n this.scheduleNavigationService.jump$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((date) => {\n this.reload(date);\n });\n\n this.scheduleNavigationService.planningScale$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((planningScale) => {\n this.setPlanningScale(planningScale);\n });\n\n this.scheduleNavigationService.valueMode$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((valueMode) => {\n this.setValueMode(valueMode);\n });\n\n this.summaryViewSettingsService.settings$\n .pipe(\n filter((viewSettings) => {\n const oldSettings = {\n ...this._settingsCopy,\n };\n\n const newSettings = {\n ...viewSettings.show,\n };\n\n oldSettings[KpiType.Scheduled] = null;\n newSettings[KpiType.Scheduled] = null;\n\n this._settingsCopy = {\n ...viewSettings.show,\n };\n\n const shouldReload =\n JSON.stringify(oldSettings) !== JSON.stringify(newSettings);\n\n if (!shouldReload) {\n // Update component if non-reloadable KPI types have been updated.\n this.detectChangesSubject.next(null);\n }\n\n return shouldReload;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.reload();\n });\n\n this.summaryRepresentationService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n\n this.summaryFilterService.filter$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n }\n\n /** Enables endless page scrolling. */\n private enableLoadingOnScroll(): void {\n const container = this.document.getElementById(\n Constants.defaultRootContainerId,\n );\n const lengthThreshold = 150;\n let lastRemaining = 9999;\n this.chrome.scroll$\n .pipe(\n throttleTime(this.scrollThrottlingDuration, null, {\n leading: true,\n trailing: true,\n }),\n filter(\n () =>\n this._allAreLoaded === false &&\n this.loadingSubject.getValue() === false,\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n const remaining =\n container.scrollHeight -\n (container.clientHeight + container.scrollTop);\n if (remaining < lengthThreshold && remaining - lastRemaining < 0) {\n this.pageNumber++;\n\n this.loadResourceSummaryPage();\n }\n lastRemaining = remaining;\n });\n }\n\n /** Loads Resource Summary page. */\n private loadResourceSummaryPage(): void {\n if (!this.selectedKpiTypes.length) {\n this.loadingSubject.next(false);\n this.detectChangesSubject.next(null);\n return;\n }\n\n this.loadingSubject.next(true);\n this.detectChangesSubject.next(null);\n this.summaryDataService\n .loadResourceSummaryPage(\n this.pageNumber,\n this.pageSize,\n this.summaryFilterService.currentFilter,\n this.selectedKpiTypes,\n this._settings.valueMode,\n )\n .pipe(\n switchMap((resources) => {\n this._allAreLoaded = this.pageSize > resources.length;\n this.loadingSubject.next(false);\n this.blockUI.start();\n\n this.detectChangesSubject.next(null);\n\n if (resources.length) {\n return this.summaryDataService.loadResourceSummaryEntries(\n resources.map((r) => r.id),\n this.interval,\n this._settings.planningScale,\n this.selectedKpiTypes,\n this._settings.valueMode,\n );\n } else {\n return of([]);\n }\n }),\n takeUntil(this.pageReloaded$),\n )\n .subscribe({\n next: () => {\n this.summaryDataService.summaryPages.forEach((r) => {\n this.recalculateGroup(r.id, true);\n });\n\n for (const id of this.expandedResourceIds) {\n if (\n !this.summaryDataService.summaryPages.find((r) => r.id === id)\n ) {\n this.expandedResourceIds.delete(id);\n continue;\n }\n this.toggleGroup(id, true);\n }\n\n this.blockUI.stop();\n this.detectChangesSubject.next(null);\n },\n error: (error: Exception) => {\n this.loadingSubject.next(false);\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Loads Resource Summary entries frame.\n *\n * @param direction Frame Direction.\n * */\n private loadFrame(direction: 'left' | 'right'): void {\n this.blockUI.start();\n\n const shift = this.getFrameShift();\n\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this._settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n\n this.summaryDataService\n .loadFrame(\n this.summaryDataService.summaryPages.map((r) => r.id),\n loadingInterval,\n this._settings.planningScale,\n this.selectedKpiTypes,\n this._settings.valueMode,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.updateDates();\n\n this.summaryDataService.summaryPages.forEach((p) => {\n this.recalculateGroup(p.id, true);\n });\n\n this.blockUI.stop();\n this.detectChangesSubject.next(null);\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Gets Frame duration shift.\n *\n * @returns {DurationLike} Frame duration shift.\n * @throws Error if scale is invalid.\n * */\n private getFrameShift(): DurationLike {\n const scale = this._settings.planningScale;\n switch (scale) {\n case PlanningScale.Day:\n return { weeks: 2 };\n case PlanningScale.Week:\n return { weeks: 10 };\n case PlanningScale.Month:\n return { month: 5 };\n default:\n throw new Error(`Invalid scale: ${scale}`);\n }\n }\n\n /** Updates Slots dates. */\n private updateDates(): void {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this._settings.planningScale,\n );\n\n this._slotGroups = slotInfo.groups;\n this._slots = slotInfo.slots;\n\n this.interval$.next(this.interval);\n }\n}\n","import { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\n/** Represents a Resource Summary View Settings. */\nexport class ResourceSummaryViewSettings implements BaseSettings {\n public readonly name = 'ResourceSummaryViewSettings';\n public version: number;\n /** Planning Scale. */\n public planningScale: PlanningScale;\n /** Value Mode. */\n public valueMode: ValueMode;\n\n public getDefault(): ResourceSummaryViewSettings {\n return {\n version: 3,\n planningScale: PlanningScale.Week,\n valueMode: ValueMode.Hours,\n } as ResourceSummaryViewSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ResourceSummaryDataService } from './core/resource-summary-data.service';\nimport { ResourceSummaryService } from './core/resource-summary.service';\nimport { filter } from 'rxjs/operators';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { ResourceSummaryViewSettingsService } from './shared/resource-summary-view-settings/core/resource-summary-view-settings.service';\nimport { ResourceSummaryRepresentationService } from './shared/resource-summary-representation-settings/core/resource-summary-representation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Resource Summary tab content. */\n@Component({\n selector: 'tmt-resource-summary',\n templateUrl: './resource-summary.component.html',\n styleUrls: ['./resource-summary.component.scss'],\n providers: [\n ScheduleNavigationService,\n FreezeTableService,\n ResourceSummaryDataService,\n ResourceSummaryService,\n ResourceSummaryViewSettingsService,\n ResourceSummaryRepresentationService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryComponent implements OnInit {\n /** Gets Left Table width numeric value. */\n public get leftTableWidth(): number {\n return this._leftTableWidth;\n }\n\n /**\n * Indicates whether KPI Type is required to select or not.\n *\n * @returns `true` if KPI Type is required, `false` otherwise.\n * */\n public get isTypeRequired(): boolean {\n return this._isTypeRequired;\n }\n\n /** Gets NO DATA message localization key. */\n public get noDataMessageKey(): string {\n return this._noDataMessageKey;\n }\n\n private readonly _leftTableWidth = 400;\n\n private _isTypeRequired: boolean;\n private _noDataMessageKey: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public service: ResourceSummaryService,\n public summaryDataService: ResourceSummaryDataService,\n private summaryViewSettingsService: ResourceSummaryViewSettingsService,\n private scheduleNavigationService: ScheduleNavigationService,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.scheduleNavigationService.init(\n ScheduleNavigationContext.ResourceSummary,\n );\n this.updateFields();\n this.service.init();\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.service.detectChanges$\n .pipe(\n filter((id) => !id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.updateFields();\n this.cdRef.detectChanges();\n });\n }\n\n /** Updates template fields. */\n private updateFields(): void {\n this._isTypeRequired = !Object.keys(\n this.summaryViewSettingsService.settings.show,\n ).some((key) => this.summaryViewSettingsService.settings.show[key]);\n this._noDataMessageKey = this._isTypeRequired\n ? 'resources.resourceSummary.noType'\n : 'shared.noDisplayData';\n }\n}\n","
    \n\n\n \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
    \n
    \n {{ 'resources.resourceSummary.columns.resources' | translate }}\n \n \n \n {{\n (service.isAllExpanded\n ? 'shared.actions.collapseAll'\n : 'shared.actions.expandAll'\n ) | translate\n }}\n \n \n
    \n
    Σ
    \n
    \n\n
    \n \n \n \n \n \n \n \n\n @for (summaryPageDto of summaryDataService.summaryPages; track summaryPageDto.id) {\n \n }\n\n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n \n \n @for (group of service.slotGroups; track group.id) {\n \n {{ group.header }}\n \n }\n \n \n @for (slot of service.slots; track slot.id) {\n \n {{ slot.header }}\n \n }\n \n \n \n
    \n\n
    \n \n \n @for (slot of service.slots; track slot.id) {\n \n }\n \n\n @for (summaryPageDto of summaryDataService.summaryPages; track summaryPageDto.id) {\n \n }\n\n \n \n \n {{ noDataMessageKey | translate | uppercase }}\n \n \n \n \n
    \n\n
    \n
    \n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResourceSummaryLeftGroupComponent } from 'src/app/resource-summary/shared/resource-summary-left-group/resource-summary-left-group.component';\nimport { ResourceSummaryRightGroupComponent } from 'src/app/resource-summary/shared/resource-summary-right-group/resource-summary-right-group.component';\nimport { ResourceSummaryToolbarComponent } from 'src/app/resource-summary/shared/resource-summary-toolbar/resource-summary-toolbar.component';\nimport { ResourceSummaryViewSettingsComponent } from 'src/app/resource-summary/shared/resource-summary-view-settings/resource-summary-view-settings.component';\nimport { ResourceSummaryFilterModule } from 'src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter.module';\nimport { ResourceSummaryRepresentationSettingsComponent } from 'src/app/resource-summary/shared/resource-summary-representation-settings/resource-summary-representation-settings.component';\nimport { ResourceSummaryTotalPipe } from 'src/app/resource-summary/shared/pipes/resource-summary-total.pipe';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ScheduleNavigationModule } from 'src/app/shared-features/schedule-navigation/schedule-navigation.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { ResourceSummaryEntryPipe } from 'src/app/resource-summary/shared/pipes/resource-summary-entry.pipe';\nimport { ResourceSummaryComponent } from 'src/app/resource-summary/resource-summary.component';\n\n@NgModule({\n declarations: [\n ResourceSummaryComponent,\n ResourceSummaryLeftGroupComponent,\n ResourceSummaryRightGroupComponent,\n ResourceSummaryToolbarComponent,\n ResourceSummaryViewSettingsComponent,\n ResourceSummaryRepresentationSettingsComponent,\n ResourceSummaryTotalPipe,\n ResourceSummaryEntryPipe,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ScheduleNavigationModule,\n ResourceSummaryFilterModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'usersSummary',\n url: '/users-summary?{navigation}&{route}',\n component: ResourceSummaryComponent,\n params: { routeMode: null, route: ROUTE_DEFAULT_PARAMS },\n },\n ],\n }),\n ],\n})\nexport class ResourceSummaryModule {}\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { ResourceSummaryResourceEntryDto } from 'src/app/resource-summary/models/resource-summary-data.model';\n\n@Pipe({\n name: 'resourceSummaryEntry',\n standalone: false,\n})\nexport class ResourceSummaryEntryPipe implements PipeTransform {\n private readonly templates = {\n decimal: '1.0-2',\n currency: '1.0-0',\n };\n\n constructor(\n private currencyPipe: WpCurrencyPipe,\n private decimalPipe: DecimalPipe,\n ) {}\n\n transform(value: ResourceSummaryResourceEntryDto, mode: ValueMode): string {\n if (value == null || ((value.hours ?? 0) === 0 && (value.cost ?? 0) === 0))\n return null;\n\n switch (mode) {\n case ValueMode.Hours:\n return this.decimalPipe.transform(value.hours, this.templates.decimal);\n case ValueMode.Cost:\n return this.currencyPipe.transform(\n value.cost,\n null,\n this.templates.currency,\n true,\n );\n default:\n return null;\n }\n }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\n\n@Pipe({\n name: 'resourceSummaryTotal',\n standalone: false,\n})\nexport class ResourceSummaryTotalPipe implements PipeTransform {\n private readonly templates = {\n decimal: '1.0-2',\n currency: '1.0-0',\n };\n\n constructor(\n private currencyPipe: WpCurrencyPipe,\n private decimalPipe: DecimalPipe,\n ) {}\n\n transform(value: number, mode: ValueMode): string {\n if (value == null || value === 0) return null;\n\n switch (mode) {\n case ValueMode.Hours:\n return this.decimalPipe.transform(value, this.templates.decimal);\n case ValueMode.Cost:\n return this.currencyPipe.transform(\n value,\n null,\n this.templates.currency,\n true,\n );\n default:\n return null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ResourceSummaryFilterSettings } from 'src/app/resource-summary/shared/resource-summary-filter/models/resource-summary-filter-settings';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\n/** Provides methods to work with Resource Summary Filter. */\n@Injectable()\nexport class ResourceSummaryFilterService {\n /** Current Filter Settings. */\n public get currentFilter(): ResourceSummaryFilterSettings {\n return this._currentFilter;\n }\n\n private filterSubject = new Subject();\n public filter$ = this.filterSubject.asObservable();\n\n private establishFilterSubject =\n new BehaviorSubject(null);\n public establishFilter$ = this.establishFilterSubject.asObservable();\n\n private _currentFilter: ResourceSummaryFilterSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n const config = this.localConfigService.getConfig(\n ResourceSummaryFilterSettings,\n );\n\n this.establishFilter(config);\n }\n\n /**\n * Saves the filter settings and propagates the change to other components.\n *\n * @param filter Filter Settings.\n * */\n public propagateFilterChange(filter: ResourceSummaryFilterSettings): void {\n this._currentFilter = filter;\n this.filterSubject.next(filter);\n this.saveSettings();\n }\n\n /**\n * Sets Component Filter.\n * @param filter Filter Settings.\n * @private\n */\n private establishFilter(filter: ResourceSummaryFilterSettings): void {\n this._currentFilter = filter;\n this.establishFilterSubject.next(filter);\n }\n\n /** Saves the Filter Settings. */\n private saveSettings(): void {\n this.localConfigService.setConfig(\n ResourceSummaryFilterSettings,\n this.currentFilter,\n );\n }\n}\n","import { ResourcePool } from 'src/app/shared/models/entities/settings/resource-pool.model';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { Department } from 'src/app/shared/models/entities/settings/department.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n/** Represents a Resource Summary Filter Settings. */\nexport class ResourceSummaryFilterSettings implements BaseSettings {\n public readonly name = 'ResourceSummaryFilterSettings';\n public version: number;\n /** Project. */\n public project: NamedEntity;\n /** Program. */\n public program: NamedEntity;\n /** Client. */\n public client: NamedEntity;\n /** Resource Pool. */\n public resourcePool: ResourcePool;\n /** Department. */\n public department: ResourceSummaryDepartment;\n /** Role. */\n public role: NamedEntity;\n /** Level. */\n public level: NamedEntity;\n /** Location. */\n public location: NamedEntity;\n /** Search Text. */\n public searchText: string;\n /** Determines whether to filter by User Subordinates or not. */\n public isMySubordinates: boolean;\n /** Determines whether to filter by User Projects Resource Team Members or not. */\n public isMyProjects: boolean;\n\n public getDefault(): ResourceSummaryFilterSettings {\n return {\n version: 1,\n project: null,\n program: null,\n client: null,\n resourcePool: null,\n department: null,\n role: null,\n level: null,\n location: null,\n searchText: '',\n isMySubordinates: false,\n isMyProjects: false,\n } as ResourceSummaryFilterSettings;\n }\n}\n\n/** Represents a Resource Summary Department. */\nexport interface ResourceSummaryDepartment extends Department {\n /** Value. */\n value: NamedEntity;\n /** Determines whether to include User Subordinates or not. */\n includeSubordinates: boolean;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ResourceSummaryFilterService } from 'src/app/resource-summary/shared/resource-summary-filter/core/resource-summary-filter.service';\nimport { ResourceSummaryFilterSettings } from 'src/app/resource-summary/shared/resource-summary-filter/models/resource-summary-filter-settings';\nimport { AppService } from 'src/app/core/app.service';\nimport { HierarchicalBoxComponent } from 'src/app/shared/components/controls/hierarchical-box/hierarchical-box.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Resource Summary Filter Modal Window content. */\n@Component({\n selector: 'tmt-resource-summary-filter-modal',\n templateUrl: './resource-summary-filter-modal.component.html',\n styleUrls: ['./resource-summary-filter-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryFilterModalComponent implements OnInit {\n @Input() filter: ResourceSummaryFilterSettings;\n @ViewChild(HierarchicalBoxComponent)\n private hierarchicalComponent: HierarchicalBoxComponent;\n\n public form = this.fb.group({\n project: null,\n program: null,\n client: null,\n resourcePool: null,\n department: null,\n role: null,\n level: null,\n location: null,\n searchText: '',\n isMySubordinates: false,\n isMyProjects: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public app: AppService,\n public service: ResourceSummaryFilterService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit(): void {\n if (this.filter) {\n this.form.patchValue(this.filter);\n }\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.filter = this.form.getRawValue();\n });\n }\n\n /** Resets filter values. */\n public clearValues(): void {\n this.form.reset({\n searchText: '',\n isMySubordinates: false,\n isMyProjects: false,\n });\n this.hierarchicalComponent.clear();\n }\n\n /**\n * Modal Ok button click event handler.\n * Closes the active modal.\n * */\n public ok = (): void => {\n this.activeModal.close(this.filter);\n };\n\n /**\n * Modal Cancel/Cross button click event handler.\n * Closes the active modal.\n * */\n public cancel = (): void => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'resources.resourceSummary.filter.header' | translate }}\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n\n \n
    \n\n
    \n \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ResourceSummaryFilterService } from 'src/app/resource-summary/shared/resource-summary-filter/core/resource-summary-filter.service';\nimport { ResourceSummaryFilterSettings } from 'src/app/resource-summary/shared/resource-summary-filter/models/resource-summary-filter-settings';\nimport { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { ResourceSummaryFilterModalComponent } from 'src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter-modal/resource-summary-filter-modal.component';\nimport { cloneDeep } from 'lodash';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { UntypedFormBuilder } from '@angular/forms';\n\n/** Represents Resource Summary Filter content. */\n@Component({\n selector: 'tmt-resource-summary-filter',\n templateUrl: './resource-summary-filter.component.html',\n styleUrls: ['./resource-summary-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryFilterComponent implements OnInit {\n /** Gets Filter Conditions count. */\n public get conditionsCount(): number {\n return this._conditionsCount;\n }\n\n /** Gets Filter Conditions Count localized text. */\n public get conditionCountTitle(): string {\n return this._conditionCountTitle;\n }\n\n public textControl = this.fb.control('');\n\n protected readonly textInputMaxLength = Constants.formNameMaxLength;\n\n private readonly textInputMinLength = 3;\n\n private filter: ResourceSummaryFilterSettings;\n private _conditionsCount: number;\n private _conditionCountTitle: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public translate: TranslateService,\n private service: ResourceSummaryFilterService,\n private fb: UntypedFormBuilder,\n private modalService: NgbModal,\n private cdRef: ChangeDetectorRef,\n private injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n /** Opens Modal window to edit filter. */\n public openFilterModal(): void {\n const ref = this.modalService.open(ResourceSummaryFilterModalComponent, {\n size: 'lg',\n injector: this.injector,\n });\n\n const instance =\n ref.componentInstance as ResourceSummaryFilterModalComponent;\n instance.filter = cloneDeep(this.filter);\n\n ref.result.then(\n (filter: ResourceSummaryFilterSettings) => {\n this.filter = filter;\n this.filter.searchText = this.textControl.getRawValue();\n this.updateConditionalCount();\n this.service.propagateFilterChange(this.filter);\n this.cdRef.detectChanges();\n },\n () => null,\n );\n }\n\n /** Clears Text Input value. */\n public clearInput(): void {\n this.textControl.patchValue('');\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.service.establishFilter$\n .pipe(\n filter((settings) => !!settings),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.filter = this.service.currentFilter;\n this.textControl.setValue(this.filter.searchText);\n this.updateConditionalCount();\n this.cdRef.detectChanges();\n });\n\n this.textControl.valueChanges\n .pipe(\n filter((val) => !val.length || val.length >= this.textInputMinLength),\n debounceTime(Constants.textInputDebounce),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((val) => {\n this.filter.searchText = val;\n this.service.propagateFilterChange(this.filter);\n });\n }\n\n /** Updates Filter conditions count. */\n private updateConditionalCount(): void {\n this._conditionsCount = 0;\n if (this.filter) {\n if (this.filter.project) {\n this._conditionsCount++;\n }\n\n if (this.filter.program) {\n this._conditionsCount++;\n }\n\n if (this.filter.client) {\n this._conditionsCount++;\n }\n\n if (this.filter.resourcePool) {\n this._conditionsCount++;\n }\n\n if (this.filter.department?.value) {\n this._conditionsCount++;\n }\n\n if (this.filter.role) {\n this._conditionsCount++;\n }\n\n if (this.filter.level) {\n this._conditionsCount++;\n }\n\n if (this.filter.location) {\n this._conditionsCount++;\n }\n\n if (this.filter.isMyProjects) {\n this._conditionsCount++;\n }\n\n if (this.filter.isMySubordinates) {\n this._conditionsCount++;\n }\n }\n\n this._conditionCountTitle = StringHelper.declOfNum(this._conditionsCount, [\n this.translate.instant('shared.filterConditionDeclensions.v1'),\n this.translate.instant('shared.filterConditionDeclensions.v2'),\n this.translate.instant('shared.filterConditionDeclensions.v3'),\n ]);\n }\n}\n","
    \n
    \n \n ×\n
    \n \n 0\"> {{ conditionsCount }} {{ conditionCountTitle }} \n \n
    \n","import { NgModule } from '@angular/core';\nimport { ResourceSummaryFilterComponent } from 'src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter.component';\nimport { CommonModule } from '@angular/common';\nimport { ResourceSummaryFilterService } from 'src/app/resource-summary/shared/resource-summary-filter/core/resource-summary-filter.service';\nimport { ResourceSummaryFilterModalComponent } from 'src/app/resource-summary/shared/resource-summary-filter/resource-summary-filter-modal/resource-summary-filter-modal.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [\n ResourceSummaryFilterComponent,\n ResourceSummaryFilterModalComponent,\n ],\n exports: [ResourceSummaryFilterComponent],\n imports: [CommonModule, SharedModule],\n providers: [ResourceSummaryFilterService],\n})\nexport class ResourceSummaryFilterModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Injector,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ResourceSummaryViewSettingsService } from 'src/app/resource-summary/shared/resource-summary-view-settings/core/resource-summary-view-settings.service';\nimport { filter } from 'rxjs/operators';\nimport { ResourceSummaryService } from 'src/app/resource-summary/core/resource-summary.service';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { ProjectInfoComponent } from 'src/app/shared/components/features/project-info/project-info.component';\nimport { ResourceSummaryPageDto } from 'src/app/resource-summary/models/resource-summary-data.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Resource Summary Left Grid content. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtResourceSummaryLeftGroup]',\n templateUrl: './resource-summary-left-group.component.html',\n styleUrls: ['./resource-summary-left-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryLeftGroupComponent implements OnInit {\n @Input() summaryPageDto: ResourceSummaryPageDto;\n\n /**\n * Indicates whether row is expanded or collapsed.\n *\n * @returns `true` if row is expanded, `false` otherwise.\n * */\n public get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return this._selectedKpiTypes;\n }\n\n /** Gets Selected KPI Types without Schedule data. */\n public get selectedKpiTypesWithoutSchedule(): KpiType[] {\n return this._selectedKpiTypesWithoutSchedule;\n }\n\n /**\n * Indicates whether Actual KPI type is selected or not.\n *\n * @returns `true` if selected, `false` otherwise.\n * */\n public get isActualKpiTypeSelected(): boolean {\n return this._isActualKpiTypeSelected;\n }\n\n /**\n * Indicates whether Summary Project lines are empty or not.\n *\n * @returns `true` if Project lines are empty, `false` otherwise.\n * */\n public get isProjectLinesEmpty(): boolean {\n const isEmptyLines = !this.summaryPageDto.lines.length;\n const isOnlyTimeOffAndActualTypeNotSelected =\n this.summaryPageDto.lines.length === 1 &&\n !this.summaryPageDto.lines[0].id &&\n this.summaryPageDto.hasTimeOff &&\n !this._isActualKpiTypeSelected;\n return isEmptyLines || isOnlyTimeOffAndActualTypeNotSelected;\n }\n\n protected kpiType = KpiType;\n protected valueMode = ValueMode;\n\n private _isExpanded: boolean;\n private _selectedKpiTypes: KpiType[];\n private _selectedKpiTypesWithoutSchedule: KpiType[];\n private _isActualKpiTypeSelected: boolean;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public summaryService: ResourceSummaryService,\n private summaryViewSettingsService: ResourceSummaryViewSettingsService,\n private cdRef: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n this._selectedKpiTypesWithoutSchedule =\n this.summaryService.selectedKpiTypesWithoutSchedule;\n this._isActualKpiTypeSelected = this.summaryService.isActualKpiTypeSelected;\n }\n\n ngOnInit(): void {\n this.initSubscriptions();\n }\n\n /**\n * Resource info element click handler.\n * Opens Resource Info popup.\n *\n * @param container HTML element container.\n * @param userId User ID.\n * */\n public openResourceInfo(container: HTMLElement, userId: string): void {\n this.infoPopupService.open({\n target: container,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Project info element click handler.\n * Opens Project Info popup.\n *\n * @param container HTML element container.\n * @param projectId Project ID.\n * */\n public openProjectInfo(container: HTMLElement, projectId: string): void {\n this.infoPopupService.open({\n target: container,\n data: {\n component: ProjectInfoComponent,\n params: {\n projectId,\n },\n injector: this.injector,\n },\n });\n }\n\n /**\n * Row toggle click handler.\n * Propagates expand/collapse to Resource Summary component.\n * */\n public onToggleClick(): void {\n this._isExpanded = !this._isExpanded;\n\n this.summaryService.toggleGroup(this.summaryPageDto.id, this.isExpanded);\n this.summaryService.detectGroupChanges(this.summaryPageDto.id);\n }\n\n /**\n * Gets Project Total value.\n *\n * @param projectId Project ID.\n * @param kpiType KPI Type.\n * @returns User Total value.\n * */\n public getProjectTotal(projectId: string, kpiType: KpiType): number | null {\n const line = this.summaryPageDto.lines.find((l) => l.id === projectId);\n return line?.totalValues.find(\n (totalValue) => totalValue.kpiType === kpiType,\n )?.value;\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.summaryService.detectChanges$\n .pipe(\n filter((id) => !id || id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdRef.detectChanges();\n });\n\n this.summaryService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this._isExpanded = event.state;\n });\n\n this.summaryViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n this._selectedKpiTypesWithoutSchedule =\n this.summaryService.selectedKpiTypesWithoutSchedule;\n this._isActualKpiTypeSelected =\n this.summaryService.isActualKpiTypeSelected;\n this.cdRef.detectChanges();\n });\n }\n}\n","@for (selectedKpiType of selectedKpiTypes; track selectedKpiType; let isFirst = $first) {\n \n \n \n
    \n \n
    \n \n \n
    \n \n \n {{ summaryPageDto.name }}\n
    \n \n \n
    \n\n \n {{\n 'resources.resourceSummary.filter.properties.viewSettings.' + selectedKpiType | translate\n }}\n \n \n}\n\n\n @for (project of summaryPageDto.lines; track project.id) {\n \n @for (\n selectedKpiType of selectedKpiTypesWithoutSchedule;\n track selectedKpiType;\n let isFirst = $first\n ) {\n \n \n \n {{ project.name }}\n \n \n\n \n {{\n 'resources.resourceSummary.filter.properties.viewSettings.' + selectedKpiType\n | translate\n }}\n \n\n \n {{\n getProjectTotal(project.id, selectedKpiType)\n | resourceSummaryTotal: summaryService.settings.valueMode\n }}\n \n \n }\n \n }\n\n \n \n
    {{ 'resources.resourceSummary.columns.timeOff' | translate }}
    \n \n\n \n {{ 'resources.resourceSummary.filter.properties.viewSettings.' + kpiType.Actual | translate }}\n \n \n\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ResourceSummaryRepresentationSettings } from 'src/app/resource-summary/shared/resource-summary-representation-settings/models/resource-summary-representation-settings.settings';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\n/** Provides methods to work with Resource Summary View Settings. */\n@Injectable()\nexport class ResourceSummaryRepresentationService {\n /** Gets View Settings. */\n public get settings(): ResourceSummaryRepresentationSettings {\n return this._settings;\n }\n\n private settingsSubject =\n new Subject();\n public settings$ = this.settingsSubject.asObservable();\n\n private _settings: ResourceSummaryRepresentationSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n this._settings = this.localConfigService.getConfig(\n ResourceSummaryRepresentationSettings,\n );\n }\n\n /**\n * Saves the settings and propagates the change to other components.\n *\n * @param settings Settings.\n * */\n public propagateSettingsChange(\n settings: ResourceSummaryRepresentationSettings,\n ): void {\n this._settings = settings;\n this.settingsSubject.next(settings);\n this.saveSettings();\n }\n\n /** Saves the settings. */\n private saveSettings(): void {\n this.localConfigService.setConfig(\n ResourceSummaryRepresentationSettings,\n this.settings,\n );\n }\n}\n","export enum RepresentationType {\n inactiveResources = 'inactiveResources',\n inactiveProjects = 'inactiveProjects',\n}\n","import { RepresentationType } from 'src/app/resource-summary/shared/resource-summary-representation-settings/models/representation-type.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class ResourceSummaryRepresentationSettings implements BaseSettings {\n public readonly name = 'ResourceSummaryRepresentationSettings';\n public version: number;\n /** Show Representation flag map. */\n public show: Record;\n\n public getDefault(): ResourceSummaryRepresentationSettings {\n return {\n version: 2,\n show: {\n [RepresentationType.inactiveResources]: false,\n [RepresentationType.inactiveProjects]: false,\n },\n } as ResourceSummaryRepresentationSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { RepresentationType } from 'src/app/resource-summary/shared/resource-summary-representation-settings/models/representation-type.enum';\nimport { ResourceSummaryRepresentationService } from 'src/app/resource-summary/shared/resource-summary-representation-settings/core/resource-summary-representation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Resource Summary View Settings content. */\n@Component({\n selector: 'tmt-resource-summary-representation-settings',\n templateUrl: './resource-summary-representation-settings.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryRepresentationSettingsComponent implements OnInit {\n /** Gets Form controls. */\n public get formControls(): RepresentationType[] {\n const orderedRepresentationTypes = [\n RepresentationType.inactiveResources,\n RepresentationType.inactiveProjects,\n ];\n return Object.values(orderedRepresentationTypes);\n }\n\n public form: UntypedFormGroup = this.fb.group({\n [RepresentationType.inactiveResources]: false,\n [RepresentationType.inactiveProjects]: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: ResourceSummaryRepresentationService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.form.patchValue(this.service.settings.show);\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const settings = this.service.settings;\n settings.show = this.form.value;\n this.service.propagateSettingsChange(settings);\n });\n }\n}\n","
    \n \n \n \n
    \n @for (control of formControls; track control) {\n
    \n \n \n
    \n }\n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { Slot } from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { ResourceSummaryDataService } from 'src/app/resource-summary/core/resource-summary-data.service';\nimport { ResourceSummaryService } from 'src/app/resource-summary/core/resource-summary.service';\nimport { ResourceSummaryViewSettingsService } from 'src/app/resource-summary/shared/resource-summary-view-settings/core/resource-summary-view-settings.service';\nimport { ResourceSummaryTotal } from 'src/app/resource-summary/models/resource-summary-view.model';\nimport {\n ResourceSummaryPageDto,\n ResourceSummaryResourceEntryDto,\n} from 'src/app/resource-summary/models/resource-summary-data.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport _ from 'lodash';\n\n/** Represents Resource Summary Right Grid content. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtResourceSummaryRightGroup]',\n templateUrl: './resource-summary-right-group.component.html',\n styleUrls: ['./resource-summary-right-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryRightGroupComponent implements OnInit {\n @Input() summaryPageDto: ResourceSummaryPageDto;\n\n /**\n * Indicates whether row is expanded or collapsed.\n *\n * @returns `true` if row is expanded, `false` otherwise.\n * */\n public get isExpanded(): boolean {\n return this._isExpanded;\n }\n\n /** Gets Selected KPI Types. */\n public get selectedKpiTypes(): KpiType[] {\n return this._selectedKpiTypes;\n }\n\n /** Gets Selected KPI Types without Schedule data. */\n public get selectedKpiTypesWithoutSchedule(): KpiType[] {\n return this._selectedKpiTypesWithoutSchedule;\n }\n\n /**\n * Indicates whether Actual KPI type is selected or not.\n *\n * @returns `true` if selected, `false` otherwise.\n * */\n public get isActualKpiTypeSelected(): boolean {\n return this._isActualKpiTypeSelected;\n }\n\n /** Gets Summary Totals. */\n public get totals(): ResourceSummaryTotal[] {\n return this._totals;\n }\n\n /**\n * Indicates whether Summary Project lines are empty or not.\n *\n * @returns `true` if Project lines are empty, `false` otherwise.\n * */\n public get isProjectLinesEmpty(): boolean {\n const isEmptyLines = !this.summaryPageDto.lines.length;\n const isOnlyTimeOffAndActualTypeNotSelected =\n this.summaryPageDto.lines.length === 1 &&\n !this.summaryPageDto.lines[0].id &&\n this.summaryPageDto.hasTimeOff &&\n !this._isActualKpiTypeSelected;\n return isEmptyLines || isOnlyTimeOffAndActualTypeNotSelected;\n }\n\n protected kpiType = KpiType;\n protected valueMode = ValueMode;\n\n private readonly timeColors = {\n common: 'rgba(72, 169, 166, 0.8)',\n overtime: 'rgba(193, 102, 107, 0.8)',\n };\n\n private _isExpanded: boolean;\n private _selectedKpiTypes: KpiType[];\n private _selectedKpiTypesWithoutSchedule: KpiType[];\n private _isActualKpiTypeSelected = false;\n private _totals: ResourceSummaryTotal[];\n private _nonWorkingDays: string[];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public summaryService: ResourceSummaryService,\n private summaryDataService: ResourceSummaryDataService,\n private summaryViewSettingsService: ResourceSummaryViewSettingsService,\n private cdRef: ChangeDetectorRef,\n ) {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n this._selectedKpiTypesWithoutSchedule =\n this.summaryService.selectedKpiTypesWithoutSchedule;\n this._isActualKpiTypeSelected = this.summaryService.isActualKpiTypeSelected;\n }\n\n ngOnInit(): void {\n this.initSubscriptions();\n this.initTotals();\n this.recalculateTotals();\n }\n\n /**\n * Tracks Row by its fields for control flow.\n *\n * @param index Row index.\n * @param entry Row.\n * @returns Row ID.\n * */\n public trackByEntry(\n index: number,\n entry: ResourceSummaryResourceEntryDto,\n ): string {\n return entry.projectId ?? index.toString();\n }\n\n /**\n * Gets Summary Totals by KPI Type.\n *\n * @param kpiType KPI Type.\n * @returns Totals by KPI Type.\n * */\n public getTotalsByKpiType(kpiType: KpiType): ResourceSummaryTotal[] {\n return this._totals.filter((t) => t.kpiType === kpiType);\n }\n\n /**\n * Determines whether Slot Date is weekend or not.\n *\n * @param slot Slot.\n * @returns `true` if weekend, `false` otherwise.\n * */\n public isWeekend(slot: Slot): boolean {\n return !!this._nonWorkingDays.find((d) => d === slot.date.toISODate());\n }\n\n /**\n * Gets Summary Entries by Project ID.\n *\n * @param [projectId] Project ID.\n * @param selectedKpiType Selected KPI Type.\n * @param slot Slot.\n * @returns Resource Summary Entries.\n * */\n public getSummaryEntriesByProjectId(\n projectId: string | null,\n selectedKpiType: KpiType,\n slot: Slot,\n ): ResourceSummaryResourceEntryDto[] {\n const entries = this.summaryDataService.getResourceSummaryEntries(\n this.summaryPageDto.id,\n projectId,\n );\n\n return entries.filter(\n (entry) =>\n entry.kpiType === selectedKpiType &&\n slot.date.toISODate() === entry.date,\n );\n }\n\n /**\n * Gets Summary Total Hours Indicator NG style.\n * @param total Summary Total.\n * @returns Indicator NG style.\n */\n public getSummaryTotalIndicatorStyle(\n total: ResourceSummaryTotal,\n ): Dictionary {\n if (\n !this.summaryViewSettingsService.settings.overtime ||\n total.kpiType === KpiType.Scheduled\n ) {\n return;\n }\n\n let percent = 0;\n total.overtime = false;\n\n if (total.scheduleHours > 0) {\n percent = _.round((total.hours / total.scheduleHours) * 100, 2);\n } else if (total.hours > 0) {\n percent = 100;\n }\n\n if (percent > 100) {\n total.overtime = true;\n }\n\n const color = total.overtime\n ? this.timeColors.overtime\n : this.timeColors.common;\n return {\n background: `linear-gradient(to top, ${color} ${percent}%, var(--bs-total-cell-bg) 0%)`,\n };\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.summaryViewSettingsService.settings$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this._selectedKpiTypes = this.summaryService.selectedKpiTypes;\n this._selectedKpiTypesWithoutSchedule =\n this.summaryService.selectedKpiTypesWithoutSchedule;\n this._isActualKpiTypeSelected =\n this.summaryService.isActualKpiTypeSelected;\n this.initTotals();\n this.recalculateTotals();\n this.cdRef.detectChanges();\n });\n\n this.summaryService.detectChanges$\n .pipe(\n filter((id) => !id || id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdRef.detectChanges();\n });\n\n this.summaryService.recalculateGroup$\n .pipe(\n filter((e) => e.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((e) => {\n if (e.rebuild) {\n this.initTotals();\n }\n this.recalculateTotals();\n });\n\n this.summaryService.toggleGroup$\n .pipe(\n filter((event) => event?.id === this.summaryPageDto.id),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this._isExpanded = event.state;\n });\n }\n\n /** Inits Summary Totals. */\n private initTotals(): void {\n this._totals = [];\n this._nonWorkingDays = [];\n\n const entries =\n this.summaryDataService.entries[this.summaryPageDto.id] ?? {};\n\n const entryTypes = this.summaryDataService.entryTypes;\n const planningScale = this.summaryService.settings.planningScale;\n const valueMode = this.summaryService.settings.valueMode;\n\n for (const slot of this.summaryService.slots) {\n const projectEntry = entries[entryTypes.schedule]?.find(\n (e) => e.date === slot.date.toISODate(),\n );\n const projectEntryData = {\n hours: 0,\n value: 0,\n };\n\n switch (valueMode) {\n case ValueMode.Hours:\n projectEntryData.value = projectEntry?.hours ?? 0;\n projectEntryData.hours = projectEntry?.hours ?? 0;\n break;\n case ValueMode.Cost:\n projectEntryData.value = projectEntry?.cost ?? 0;\n projectEntryData.hours = projectEntry?.hours ?? 0;\n break;\n }\n\n const isNonWorking = projectEntry ? projectEntryData.hours === 0 : false;\n\n if (planningScale === PlanningScale.Day && isNonWorking) {\n this._nonWorkingDays.push(slot.date.toISODate());\n }\n\n for (const selectedKpiType of this.selectedKpiTypes) {\n this.totals.push({\n id: slot.id,\n date: slot.date.toISODate(),\n hours: projectEntryData.value,\n scheduleHours: 0,\n nonWorking: isNonWorking,\n kpiType: selectedKpiType,\n overtime: false,\n });\n }\n }\n }\n\n /** Recalculates Summary Totals. */\n private recalculateTotals(): void {\n const resourceEntries =\n this.summaryDataService.entries[this.summaryPageDto.id];\n if (!resourceEntries) return;\n\n this.totals.forEach((total) => {\n total.hours = 0;\n total.scheduleHours = 0;\n });\n\n const allEntries: ResourceSummaryResourceEntryDto[] = [];\n const allResources = Object.values(resourceEntries);\n const valueMode = this.summaryService.settings.valueMode;\n\n allResources.forEach((currentResourceEntries: []) => {\n currentResourceEntries.forEach((resourceEntry) => {\n allEntries.push(resourceEntry);\n });\n });\n\n allEntries.forEach((entry) => {\n const total = this.totals.find(\n (t) => t.date === entry.date && t.kpiType === entry.kpiType,\n );\n if (total) {\n if (entry.kpiType !== KpiType.Scheduled) {\n const scheduleEntry = allEntries.find(\n (x) =>\n x.resourceId === entry.resourceId &&\n x.date === entry.date &&\n x.kpiType === KpiType.Scheduled,\n );\n\n switch (valueMode) {\n case ValueMode.Hours:\n total.scheduleHours = scheduleEntry?.hours ?? 0;\n break;\n case ValueMode.Cost:\n total.scheduleHours = scheduleEntry?.cost ?? 0;\n break;\n }\n }\n switch (valueMode) {\n case ValueMode.Hours:\n total.hours += entry.hours;\n break;\n case ValueMode.Cost:\n total.hours += entry.cost;\n break;\n }\n }\n });\n }\n}\n","@for (selectedKpiType of selectedKpiTypes; track selectedKpiType) {\n \n @for (total of getTotalsByKpiType(selectedKpiType); track total.id) {\n \n \n {{ total.hours | resourceSummaryTotal: summaryService.settings.valueMode }}\n \n \n }\n \n}\n\n\n @for (project of summaryPageDto.lines; track project.id) {\n \n @for (selectedKpiType of selectedKpiTypesWithoutSchedule; track selectedKpiType) {\n \n \n \n \n \n @for (slot of summaryService.slots; track slot.id) {\n \n @for (\n entry of getSummaryEntriesByProjectId(project.id, selectedKpiType, slot);\n track trackByEntry\n ) {\n \n {{ entry | resourceSummaryEntry: summaryService.settings.valueMode }}\n \n }\n \n }\n \n \n \n \n \n }\n \n }\n\n \n \n \n \n \n @for (slot of summaryService.slots; track slot.id) {\n \n @for (\n entry of getSummaryEntriesByProjectId(null, kpiType.Actual, slot);\n track trackByEntry\n ) {\n \n {{ entry | resourceSummaryEntry: summaryService.settings.valueMode }}\n \n }\n \n }\n \n \n \n \n \n\n \n \n \n\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\n\n/** Represents Resource Summary Toolbar content. */\n@Component({\n selector: 'tmt-resource-summary-toolbar',\n templateUrl: './resource-summary-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryToolbarComponent {\n /** Gets Used Value Modes. */\n public get usedValueModes(): ValueMode[] {\n return [ValueMode.Hours, ValueMode.Cost];\n }\n\n protected readonly PlanningScale = PlanningScale;\n protected readonly ValueMode = ValueMode;\n}\n","
    \n \n \n
    \n \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ResourceSummaryResourceViewSettings } from 'src/app/resource-summary/shared/resource-summary-view-settings/models/resource-summary-resource-view-settings.settings';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\n\n/** Provides methods to work with Resource Summary View Settings. */\n@Injectable()\nexport class ResourceSummaryViewSettingsService {\n /** Gets View Settings. */\n public get settings(): ResourceSummaryResourceViewSettings {\n return this._settings;\n }\n\n private settingsSubject = new Subject();\n public settings$ = this.settingsSubject.asObservable();\n\n private _settings: ResourceSummaryResourceViewSettings;\n\n constructor(private localConfigService: LocalConfigService) {\n this._settings = this.localConfigService.getConfig(\n ResourceSummaryResourceViewSettings,\n );\n }\n\n /**\n * Saves the settings and propagates the change to other components.\n *\n * @param settings Settings.\n * */\n public propagateSettingsChange(\n settings: ResourceSummaryResourceViewSettings,\n ): void {\n this._settings = settings;\n this.settingsSubject.next(settings);\n this.saveSettings();\n }\n\n /** Saves the settings. */\n private saveSettings(): void {\n this.localConfigService.setConfig(\n ResourceSummaryResourceViewSettings,\n this.settings,\n );\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\n\nexport class ResourceSummaryResourceViewSettings implements BaseSettings {\n public readonly name = 'ResourceSummaryResourceViewSettings';\n public version: number;\n /** Show KPI flag map. */\n public show: Record;\n /** Show Overtime flag. */\n public overtime: boolean;\n\n public getDefault(): ResourceSummaryResourceViewSettings {\n return {\n version: 1,\n show: { [KpiType.Plan]: true },\n overtime: false,\n } as ResourceSummaryResourceViewSettings;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ResourceSummaryViewSettingsService } from 'src/app/resource-summary/shared/resource-summary-view-settings/core/resource-summary-view-settings.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Represents Resource Summary View Settings content. */\n@Component({\n selector: 'tmt-resource-summary-view-settings',\n templateUrl: './resource-summary-view-settings.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourceSummaryViewSettingsComponent implements OnInit {\n /** Gets KPI controls. */\n public get kpiControls(): KpiType[] {\n return Object.values(this.orderedKpi);\n }\n\n public form: UntypedFormGroup = this.fb.group({\n [KpiType.Plan]: false,\n [KpiType.Estimate]: false,\n [KpiType.Actual]: false,\n [KpiType.Booked]: false,\n [KpiType.Scheduled]: false,\n overtime: false,\n });\n\n protected kpiType = KpiType;\n\n private orderedKpi = [\n KpiType.Plan,\n KpiType.Estimate,\n KpiType.Actual,\n KpiType.Booked,\n KpiType.Scheduled,\n ];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: ResourceSummaryViewSettingsService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.form.patchValue(this.service.settings.show);\n this.form.controls.overtime.patchValue(this.service.settings.overtime);\n this.initSubscriptions();\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const settings = this.service.settings;\n const formValue = this.form.value;\n this.orderedKpi.forEach((kpi) => (settings.show[kpi] = formValue[kpi]));\n settings.overtime = formValue.overtime;\n this.service.propagateSettingsChange(settings);\n });\n }\n}\n","
    \n \n \n \n
    \n @for (control of kpiControls; track control) {\n
    \n \n \n
    \n }\n
    \n
    \n \n \n
    \n
    \n
    \n","import { Component, OnInit, inject, DestroyRef } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResourcesFilterService } from 'src/app/shared/modules/resources-filter/resources-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-resource-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: ResourcesFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ResourceListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n private filterService: FilterService,\n ) {}\n\n public ngOnInit(): void {\n this.filterService.hasViewSelector = true;\n this.actions.set([\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('resource', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => (this.actions.action('card').isShown = !!row));\n }\n}\n","import { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { MemberResourceCellComponent } from 'src/app/projects/card/project-team/member-resource-cell/member-resource-cell.component';\n\nexport const RESOURCES_LIST: List = {\n version: 2,\n name: 'resources',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'location',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'legalEntity',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'competence',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'level',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'grade',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'addResourceModal',\n resizableColumns: true,\n columns: [\n {\n column: 'resource',\n visibleByDefault: true,\n width: 260,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 280,\n },\n {\n column: 'level',\n visibleByDefault: true,\n width: 220,\n },\n {\n column: 'department',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'resourcePool',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'currentRate',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'competence',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'grade',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'legalEntity',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'location',\n width: 150,\n visibleByDefault: false,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'resource',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.ResourceNavigation,\n navigationType: NavigationType.Resource,\n },\n {\n name: 'location',\n header: 'resources.team.list.columns.location',\n hint: 'resources.team.list.columns.location',\n type: GridColumnType.String,\n },\n {\n name: 'legalEntity',\n type: GridColumnType.String,\n header: 'resources.team.list.columns.legalEntity',\n hint: 'resources.team.list.columns.legalEntity',\n },\n {\n name: 'role',\n header: 'resources.team.list.columns.role',\n hint: 'resources.team.list.columns.role',\n type: GridColumnType.String,\n },\n {\n name: 'competence',\n header: 'resources.team.list.columns.competence',\n hint: 'resources.team.list.columns.competence',\n type: GridColumnType.String,\n },\n {\n name: 'level',\n header: 'resources.team.list.columns.level',\n hint: 'resources.team.list.columns.level',\n type: GridColumnType.String,\n },\n {\n name: 'grade',\n header: 'resources.team.list.columns.grade',\n hint: 'resources.team.list.columns.grade',\n type: GridColumnType.String,\n },\n {\n name: 'resourcePool',\n header: 'resources.team.list.columns.resourcePool',\n hint: 'resources.team.list.columns.resourcePool',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.hint',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ({\n name: 'resource',\n type: GridColumnType.Component,\n component: MemberResourceCellComponent,\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n }),\n {\n name: 'currentRate',\n type: GridColumnType.Currency,\n fixedWidth: true,\n header:\n 'projects.projects.card.team.addResourcesModal.columns.currentCostRate.label',\n hint: 'projects.projects.card.team.addResourcesModal.columns.currentCostRate.ph',\n },\n {\n name: 'department',\n header:\n 'projects.projects.card.team.addResourcesModal.columns.department',\n hint: 'projects.projects.card.team.addResourcesModal.columns.department',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'location',\n field: 'location.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalEntity',\n field: 'legalEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'role.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'competence',\n field: 'competence.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'level',\n field: 'level.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'grade',\n field: 'grade.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'resourcePool',\n field: 'resourcePool.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resourceType',\n field: 'resourceType',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n dataCollection: 'Resources',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ResourceListComponent } from './list/resource-list.component';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { RESOURCES_LIST } from 'src/app/resources/resources.list';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EmployeeCardComponent } from 'src/app/employees/card/employee-card.component';\nimport { EmployeeMainComponent } from 'src/app/employees/card/employee-main/employee-main.component';\nimport { EmployeeWorkOverviewComponent } from 'src/app/employees/card/employee-work-overview/employee-work-overview.component';\nimport { EmployeeTimeOffBalanceComponent } from 'src/app/employees/card/employee-time-off-balance/employee-time-off-balance.component';\nimport { ResourcesFilterModule } from 'src/app/shared/modules/resources-filter/resources-filter.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { EmployeeExperienceOverviewComponent } from 'src/app/employees/card/employee-experience-overview/employee-experience-overview.component';\n\n@NgModule({\n declarations: [ResourceListComponent],\n imports: [\n CommonModule,\n SharedModule,\n ResourcesFilterModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'resources',\n url: '/resources?{navigation}&{route}',\n params: {\n navigation: 'resources.resources',\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: ResourceListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: RESOURCES_LIST },\n ],\n },\n\n {\n name: 'resource',\n url: '/resources/{entityId:guid}?{navigation}&{route}',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: EmployeeCardComponent,\n\n redirectTo: 'resource.main',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'resource.main',\n url: '/main',\n component: EmployeeMainComponent,\n },\n {\n name: 'resource.experienceOverview',\n url: '/experience-overview',\n component: EmployeeExperienceOverviewComponent,\n },\n {\n name: 'resource.overview',\n url: '/overview',\n component: EmployeeWorkOverviewComponent,\n },\n {\n name: 'resource.timeOffBalance',\n url: '/time-off-balance',\n component: EmployeeTimeOffBalanceComponent,\n },\n ],\n }),\n ],\n})\nexport class ResourcesModule {}\n","import { UIRouter, Category, ParamTypeDefinition } from '@uirouter/angular';\nimport { environment } from '../environments/environment';\n\nexport function routerConfigFn(router: UIRouter) {\n const guidParamDefinition: ParamTypeDefinition = {\n encode: (obj) => obj,\n decode: (str) => str,\n is: () => true,\n equals: (a, b) => a === b,\n pattern: /[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}/i,\n };\n\n const viewNameParamDefinition: ParamTypeDefinition = {\n encode: (obj) => obj,\n decode: (str) => str,\n is: (val) => val.length < 35, // couldn't think of anything better to not-guid pattern\n equals: (a, b) => a === b,\n };\n\n const guidOrMyParamDefinition: ParamTypeDefinition = {\n encode: (obj) => obj,\n decode: (str) => str,\n is: () => true,\n equals: (a, b) => a === b,\n pattern: /[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}|my/i,\n };\n\n router.urlService.config.type('guid', guidParamDefinition);\n router.urlService.config.type('guidOrMy', guidOrMyParamDefinition);\n router.urlService.config.type('viewName', viewNameParamDefinition);\n\n if (!environment.production) {\n router.trace.enable(Category.TRANSITION);\n }\n}\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LogService } from 'src/app/core/log.service';\nimport { AuthService } from 'src/app/core/auth.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BehaviorSubject } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-selecting-of-substitute-modal',\n templateUrl: './selecting-of-substitute-modal.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SharedModule, CommonModule, GridModule]\n})\nexport class SelectingOfSubstituteModalComponent implements OnInit {\n public loading$ = new BehaviorSubject(false);\n public formArray = this.fb.array([]);\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n view: {\n name: 'substitutes',\n columns: [\n {\n name: 'user',\n header: 'shared.selectingOfSubstitute.columns.user',\n hint: 'shared.selectingOfSubstitute.columns.user',\n type: GridColumnType.User,\n width: '100%',\n },\n {\n name: 'periodStart',\n header: this.translate.instant(\n 'shared.selectingOfSubstitute.columns.periodStart',\n ),\n hint: this.translate.instant(\n 'shared.selectingOfSubstitute.columns.periodStart',\n ),\n type: GridColumnType.Date,\n width: '130px',\n },\n {\n name: 'periodFinish',\n header: this.translate.instant(\n 'shared.selectingOfSubstitute.columns.periodFinish',\n ),\n hint: this.translate.instant(\n 'shared.selectingOfSubstitute.columns.periodFinish',\n ),\n type: GridColumnType.Date,\n width: '130px',\n },\n ],\n },\n };\n\n constructor(\n private authService: AuthService,\n private translate: TranslateService,\n private log: LogService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n public gridService: GridService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n }\n\n /** Saves data and closes modal. */\n public ok(): void {\n this.notification.successLocal(\n 'shared.selectingOfSubstitute.messages.substitutingStarted',\n );\n this.authService.startSubstituting(\n this.gridService.selectedGroupValue.user.email,\n );\n }\n\n /** Closes modal and dismisses changes. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n private load(): void {\n this.loading$.next(true);\n this.log.debug('Loading co-managers list...');\n\n this.data.model\n .function('GetUsersToSubstitute')\n .query()\n .subscribe({\n next: (data) => {\n data.forEach((row) => {\n this.formArray.push(\n this.fb.group({\n id: row.id,\n user: {\n name: row.name,\n email: row.email,\n id: row.id,\n },\n periodStart: row.periodStart,\n periodFinish: row.periodFinish,\n }),\n );\n });\n\n this.loading$.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading$.next(false);\n },\n });\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'shared.selectingOfSubstitute.header' | translate }}\n

    \n\n \n
    \n
    \n \n
    \n
    \n @if (gridService.selectedGroup$.getValue()) {\n \n }\n \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { HttpClient } from '@angular/common/http';\nimport { MessageService } from 'src/app/core/message.service';\nimport { saveAs } from 'file-saver';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-account-document-link',\n templateUrl: './account-document-link.component.html',\n styleUrls: ['./account-document-link.component.scss'],\n standalone: false,\n})\nexport class AccountDocumentLinkComponent implements OnInit, GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public isVisible = true;\n\n constructor(\n private blockUI: BlockUIService,\n private httpClient: HttpClient,\n private message: MessageService,\n ) {}\n\n ngOnInit() {\n this.isVisible =\n this.column.name !== 'closingDocument' || this.formGroup.value.hasLicense;\n }\n\n public open() {\n const path =\n this.column.name === 'closingDocument'\n ? 'closing-document'\n : 'license-invoice';\n\n const name = this.column.name === 'closingDocument' ? 'Closing' : 'Invoice';\n\n const url = `${AppConfigService.config.api.url}/tenant/${path}/${this.formGroup.value.id}`;\n\n this.blockUI.start();\n this.httpClient.get(url, { responseType: 'blob' }).subscribe({\n next: (data) => {\n saveAs(\n data,\n `Timetta ${name} #${this.formGroup.getRawValue().number}.pdf`,\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n}\n","
    \n \n \n
    \n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { orderBy } from 'lodash';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AccountDocumentLinkComponent } from './account-document-link/account-document-link.component';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AccountDocument } from 'src/app/shared/models/entities/settings/multitenant/account-document.model';\nimport { AccountDocumentStatus } from 'src/app/shared/models/enums/account-document-status';\nimport { EAEUCountries } from 'src/app/shared/helpers/globalization.helper';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumn,\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-account-documents',\n templateUrl: './account-documents.component.html',\n styleUrls: ['./account-documents.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AccountDocumentsComponent implements OnInit {\n @Input() currencyCode: string;\n @Input() countryCode: string;\n\n public gridOptions: GridOptions;\n\n public formArray = this.fb.array([]);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private gridService: GridService,\n private data: DataService,\n private translate: TranslateService,\n ) {}\n\n public ngOnInit(): void {\n this.gridOptions = {\n rowCommands: [\n {\n name: 'cancel',\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.cancel(formGroup.value.id);\n },\n\n allowedFn: (formGroup: UntypedFormGroup) => {\n const doc = formGroup.getRawValue() as any;\n return doc.status.id === AccountDocumentStatus.Issued;\n },\n label: 'settings.account.documents.actions.cancel',\n },\n ],\n view: {\n name: 'documents',\n columns: [\n {\n name: 'date',\n header: 'settings.account.documents.columns.date',\n hint: 'settings.account.documents.columns.date',\n type: GridColumnType.Date,\n width: '120px',\n },\n {\n name: 'number',\n header: 'settings.account.documents.columns.number',\n hint: 'settings.account.documents.columns.number',\n type: GridColumnType.String,\n width: '120px',\n },\n {\n name: 'invoice',\n header: 'settings.account.documents.columns.invoice',\n hint: 'settings.account.documents.columns.invoice',\n type: GridColumnType.Component,\n component: AccountDocumentLinkComponent,\n property: 'number',\n width: '150px',\n },\n {\n name: 'closingDocument',\n header: 'settings.account.documents.columns.closingDocument',\n hint: 'settings.account.documents.columns.closingDocument',\n type: GridColumnType.Component,\n component: AccountDocumentLinkComponent,\n property: 'number',\n width: '150px',\n },\n {\n name: 'amount',\n header: 'settings.account.documents.columns.amount',\n hint: 'settings.account.documents.columns.amount',\n type: GridColumnType.Currency,\n width: '120px',\n currencyCode: this.currencyCode,\n },\n {\n name: 'description',\n header: 'settings.account.documents.columns.description',\n hint: 'settings.account.documents.columns.description',\n type: GridColumnType.String,\n width: '100%',\n },\n {\n name: 'status',\n header: 'settings.account.documents.columns.status',\n hint: 'settings.account.documents.columns.status',\n type: GridColumnType.Entity,\n width: '150px',\n },\n ],\n },\n };\n\n if (EAEUCountries.indexOf(this.countryCode) === -1) {\n this.gridOptions.view.columns.splice(3, 1);\n }\n\n this.reload();\n }\n\n /**\n * Cancels a license order with the specified document ID.\n *\n * @param id The ID of the document to cancel.\n */\n public cancel(id: string): void {\n this.data\n .singleton('Tenant')\n .action('WP.CancelLicenseOrder')\n .execute({ documentId: id })\n .subscribe({\n next: () => {\n this.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /** Reloads the account documents data and updates the form array. */\n private reload(): void {\n this.gridService.setLoadingState(true);\n\n this.formArray.clear();\n\n this.data\n .singleton('Tenant')\n .function('WP.GetAccountDocuments')\n .query()\n .subscribe({\n next: (data: AccountDocument[]) => {\n const documents = orderBy(data, ['number'], ['desc']);\n\n documents.forEach((document: any) => {\n document.status = {\n id: document.status,\n name: this.translate.instant(\n `enums.accountDocumentStatus.${document.status}`,\n ),\n };\n\n document.type = {\n id: document.type,\n name: this.translate.instant(\n `enums.accountDocumentType.${document.type}`,\n ),\n };\n\n this.formArray.push(this.getDocumentFormGroup(document));\n });\n this.gridService.setLoadingState(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n },\n });\n }\n\n /**\n * Creates a form group for a given account document row.\n *\n * @param doc The account document to create the form group for.\n * @returns An UntypedFormGroup representing the account document.\n */\n private getDocumentFormGroup(doc: AccountDocument): UntypedFormGroup {\n const formGroup = new UntypedFormGroup({\n id: new UntypedFormControl(doc.id),\n });\n\n this.gridOptions.view.columns\n .concat([\n {\n name: 'type',\n type: null,\n header: null,\n hint: null,\n },\n {\n name: 'hasLicense',\n type: null,\n header: null,\n hint: null,\n },\n ])\n .forEach((column: GridColumn) => {\n formGroup.addControl(\n column.name,\n new UntypedFormControl(doc[column.name]),\n );\n });\n\n return formGroup;\n }\n}\n","
    \n \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BuySubscriptionModalComponent } from './buy-subscription-modal/buy-subscription-modal.component';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n TenantBillingType,\n TenantOverview,\n TenantState,\n} from 'src/app/shared/models/entities/settings/multitenant/tenant-overview.model';\nimport { BehaviorSubject, Subject, forkJoin, of } from 'rxjs';\nimport {\n LicenseInfo,\n LicenseProductInfo,\n} from 'src/app/shared/models/entities/settings/license-info.model';\nimport { ProductSelectorModalComponent } from 'src/app/shared/components/features/product-selector-modal/product-selector-modal.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Component({\n selector: 'tmt-account',\n templateUrl: './account.component.html',\n styleUrls: ['./account.component.scss'],\n standalone: false,\n})\nexport class AccountComponent implements OnInit, OnDestroy {\n public cardState = CardState;\n\n public isOnPrem = environment.onprem;\n public cardState$ = new BehaviorSubject(CardState.Loading);\n\n public allowBillingManage = false;\n public tenant: TenantOverview;\n public licenseInfo: LicenseInfo;\n public licenseProducts: LicenseProductInfo[];\n\n public tenantState = TenantState;\n public billingType = TenantBillingType;\n private destroyed$ = new Subject();\n\n constructor(\n public app: AppService,\n private data: DataService,\n private actionService: ActionPanelService,\n private modal: NgbModal,\n private notification: NotificationService,\n ) {\n actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n ngOnInit() {\n this.allowBillingManage = this.app.checkPermission(\n 'ManageBilling',\n null,\n PermissionType.Execute,\n );\n if (!this.isOnPrem) {\n this.actionService.set([\n {\n name: 'buy',\n title: 'settings.account.actions.buy',\n hint: 'settings.account.actions.buy',\n isDropDown: false,\n iconClass: 'bi bi-cart',\n isBusy: false,\n isVisible: this.allowBillingManage,\n handler: () => {\n this.buy();\n },\n },\n ]);\n }\n\n this.reload();\n }\n\n reload() {\n this.cardState$.next(CardState.Loading);\n\n forkJoin({\n tenantOverview: this.isOnPrem\n ? of(null)\n : this.data\n .singleton('Tenant')\n .function('GetOverview')\n .get(),\n licenseInfo: this.data.model\n .function('GetLicenseInfo')\n .get(),\n }).subscribe({\n next: (response) => {\n this.tenant = response.tenantOverview;\n this.licenseInfo = response.licenseInfo;\n this.licenseProducts = response.licenseInfo.products.filter(\n (x) => x.limit > 0 || x.used > 0,\n );\n\n this.cardState$.next(CardState.Ready);\n\n this.actionService.action('selectProducts').isShown =\n this.tenant?.billingType === TenantBillingType.trial &&\n this.app.checkPermission(\n 'ManageBilling',\n null,\n PermissionType.Execute,\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.cardState$.next(CardState.Error);\n },\n });\n }\n\n public selectProducts() {\n const ref = this.modal.open(ProductSelectorModalComponent, {\n backdrop: true,\n });\n\n const instance = ref.componentInstance as ProductSelectorModalComponent;\n instance.licenseProducts = this.licenseInfo.products;\n\n ref.result.then(\n () => {\n this.reload();\n },\n () => null,\n );\n }\n\n public buy() {\n const ref = this.modal.open(BuySubscriptionModalComponent, { size: 'lg' });\n ref.result.then(\n () => {\n this.reload();\n },\n () => null,\n );\n }\n}\n","\n\n\n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n 0\">\n \n \n \n \n \n \n \n
    {{ 'settings.account.overview.tenant' | translate }}:\n {{ app.session.configuration.displayName }} ({{\n app.session.configuration.primaryDomain\n }})\n
    {{ 'settings.account.overview.state' | translate }}:{{ tenant?.state }}
    {{ 'settings.account.overview.billingType' | translate }}:\n {{ tenant?.billingType }}\n
    {{ 'settings.account.overview.trialExhaustForecast' | translate }}:{{ tenant?.trialExpiryDate | date: 'shortDate' }}
    {{ 'settings.account.overview.licenseExpiryDate' | translate }}:{{ licenseInfo?.expiryDate | date: 'shortDate' }}
    {{ 'settings.account.overview.bonusAccount' | translate }}:{{ tenant?.currentBalance | wpCurrency: tenant?.currencyCode }}
    {{ 'settings.account.overview.license' | translate }}:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.account.overview.product' | translate }}{{ 'settings.account.overview.limit' | translate }}{{ 'settings.account.overview.used' | translate }}
    {{ product.displayName }}{{ product.limit }}{{ product.used }}
    \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n
    \n\n
    \n \n\n \n {{ 'settings.account.actions.selectProducts' | translate }}\n \n
    \n
    \n
    \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccountComponent } from './account.component';\nimport { AccountDocumentsComponent } from './account-documents/account-documents.component';\nimport { AccountDocumentLinkComponent } from './account-documents/account-document-link/account-document-link.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BuySubscriptionModalComponent } from './buy-subscription-modal/buy-subscription-modal.component';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { BillingInfoComponent } from './buy-subscription-modal/billing-info/billing-info.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n AccountComponent,\n AccountDocumentsComponent,\n AccountDocumentLinkComponent,\n BuySubscriptionModalComponent,\n BillingInfoComponent,\n ],\n imports: [\n GridModule,\n CommonModule,\n SharedModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.account',\n url: '/account',\n component: AccountComponent,\n params: {\n navigation: 'settings.account',\n },\n },\n ],\n }),\n ],\n})\nexport class AccountModule {}\n","import { Component, Input } from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { BillingContact } from 'src/app/shared/models/entities/settings/multitenant/billing-contact.model';\n\n@Component({\n selector: 'tmt-billing-info',\n templateUrl: './billing-info.component.html',\n styleUrls: ['./billing-info.component.scss'],\n standalone: false,\n})\nexport class BillingInfoComponent {\n @Input() billingContact: BillingContact;\n\n constructor(private state: StateService) {}\n\n editBillingInfo() {\n this.state.go('settings.settings.billing');\n }\n}\n","
    \n \n
    \n

    \n {{ 'settings.account.billingInfo.props.currency.label' | translate }}:\n {{ billingContact.currencyCode }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.country.label' | translate }}:\n {{ billingContact.country.name }}\n

    \n\n
    \n
    \n

    \n {{ 'settings.account.billingInfo.props.companyName.label' | translate }}:\n {{ billingContact.organization.name }}\n

    \n
    \n

    \n {{ 'settings.account.billingInfo.props.identificationNumber.label' | translate }}:\n {{ billingContact.organization.identificationNumber }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.bankIdentificationCode.label' | translate }}:\n {{ billingContact.organization.bankIdentificationCode }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.bankAccount.label' | translate }}:\n {{ billingContact.organization.bankAccount }}\n

    \n
    \n
    \n\n
    \n\n

    \n {{ 'settings.account.billingInfo.props.contactName.label' | translate }}:\n {{ billingContact.contact.name }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.contactEmail.label' | translate }}:\n {{ billingContact.contact.email }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.contactPhone.label' | translate }}:\n {{ billingContact.contact.phone }}\n

    \n\n
    \n\n

    \n {{ 'settings.account.billingInfo.props.city.label' | translate }}:\n {{ billingContact.postAddress.city }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.index.label' | translate }}:\n {{ billingContact.postAddress.index }}\n

    \n

    \n {{ 'settings.account.billingInfo.props.address.label' | translate }}:\n {{ billingContact.postAddress.address }}\n

    \n\n
    \n

    \n {{ 'settings.account.billingInfo.props.useEDM.label' | translate }}:\n {{ billingContact.useEDM | wpBoolean }}\n

    \n
    \n
    \n \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport {\n FormArray,\n FormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BillingContact } from 'src/app/shared/models/entities/settings/multitenant/billing-contact.model';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { BehaviorSubject, forkJoin, Subject, Subscription } from 'rxjs';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { HttpClient } from '@angular/common/http';\nimport { MessageService } from 'src/app/core/message.service';\nimport { saveAs } from 'file-saver';\nimport { DateTime } from 'luxon';\nimport { LicenseOrderCalculation } from 'src/app/settings-app/account/buy-subscription-modal/shared/license-order-calculation.model';\nimport {\n LicenseOrderCalculationParams,\n LicenseProductConfiguration,\n} from 'src/app/settings-app/account/buy-subscription-modal/shared/license-order-calculation-params.model';\nimport {\n LicenseInfo,\n LicenseProductInfo,\n} from 'src/app/shared/models/entities/settings/license-info.model';\nimport { max, sortBy } from 'lodash';\nimport { TenantOverview } from 'src/app/shared/models/entities/settings/multitenant/tenant-overview.model';\nimport { LicenseProduct } from 'src/app/shared/models/session/client-session.model';\n\n@Component({\n selector: 'tmt-buy-subscription-modal',\n templateUrl: './buy-subscription-modal.component.html',\n styleUrls: ['./buy-subscription-modal.component.scss'],\n standalone: false,\n})\nexport class BuySubscriptionModalComponent implements OnInit {\n public modeType = ModeType;\n\n private discountHalfYear = 0.07;\n private discountYear = 0.15;\n public minLimits: number[] = [];\n public bonus = 0;\n invoice: any;\n\n private _mode: ModeType = ModeType.newLicense;\n public licenseToUpgrade: TenantLicenseDto | null;\n\n /** List of products visible on the form. */\n public licenseProducts: LicenseProductInfo[];\n\n calcSubscription: Subscription;\n expiryOfLicensingPeriod: string;\n\n get mode(): ModeType {\n return this._mode;\n }\n set mode(value: ModeType) {\n this._mode = value;\n this.setMinCount();\n this.calculate();\n }\n\n public licensePeriods: {\n id: number;\n name: string;\n discount: number;\n }[] = [\n {\n id: 1,\n name: this.translate.instant(\n 'settings.account.createPayment.periods.month',\n ),\n discount: 0,\n },\n {\n id: 6,\n name: this.translate.instant(\n 'settings.account.createPayment.periods.halfYear',\n ),\n discount: this.discountHalfYear,\n },\n {\n id: 12,\n name: this.translate.instant(\n 'settings.account.createPayment.periods.year',\n ),\n discount: this.discountYear,\n },\n ];\n\n public form = this.fb.group({\n products: this.fb.array([]),\n period: [this.licensePeriods[2], Validators.required],\n upgradeDate: [DateTime.now().toISODate(), Validators.required],\n });\n\n public formProducts = this.form.controls.products as FormArray;\n\n billingContact: BillingContact;\n url: string;\n\n public calculation$ = new BehaviorSubject(null);\n public calculating$ = new BehaviorSubject(null);\n public loading$ = new BehaviorSubject(true);\n public saving$ = new Subject();\n\n constructor(\n private notification: NotificationService,\n private translate: TranslateService,\n private data: DataService,\n private state: StateService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private blockUI: BlockUIService,\n private httpClient: HttpClient,\n private message: MessageService,\n ) {}\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.calculate();\n });\n this.load();\n }\n\n /** Gets effective date for new license. */\n public getOrderEffectivePeriod(): string {\n if (this.mode === ModeType.newLicense) {\n if (this.expiryOfLicensingPeriod) {\n return this.translate.instant(\n 'settings.account.createPayment.periodTemplate.newInFuture',\n {\n from: DateTime.fromISO(this.expiryOfLicensingPeriod)\n .plus({ days: 1 })\n .toLocaleString(),\n period: this.form.value.period.name,\n },\n );\n } else {\n return this.translate.instant(\n 'settings.account.createPayment.periodTemplate.new',\n {\n period: this.form.value.period.name,\n },\n );\n }\n }\n\n if (this.mode === ModeType.upgradeLicense) {\n return this.translate.instant(\n 'settings.account.createPayment.periodTemplate.upgrade',\n {\n from: DateTime.fromISO(this.form.value.upgradeDate).toLocaleString(),\n to: DateTime.fromISO(\n this.licenseToUpgrade.expiryDate,\n ).toLocaleString(),\n },\n );\n }\n\n return null;\n }\n\n private setMinCount() {\n this.minLimits = [];\n this.formProducts.controls.forEach((formGroup: FormGroup) => {\n const product = formGroup.value.product as LicenseProduct;\n const productCfg = this.licenseProducts.find(\n (x) => x.product === product,\n );\n\n const count =\n this.mode === ModeType.newLicense\n ? 0\n : max([\n this.licenseToUpgrade?.products.find(\n (x) => x.product === productCfg.product,\n )?.count ?? 0,\n productCfg.used,\n ]);\n\n formGroup.controls.count.clearValidators();\n if (count > 0) {\n this.minLimits.push(count);\n formGroup.controls.count.addValidators([\n Validators.min(count),\n Validators.required,\n ]);\n } else {\n this.minLimits.push(null);\n }\n });\n }\n\n private load() {\n this.loading$.next(true);\n\n forkJoin({\n // Загружаем сведения о плательщике.\n billingContact: this.data\n .singleton('Tenant')\n .function('GetBillingContact')\n .get(),\n\n tenantOverview: this.data\n .singleton('Tenant')\n .function('GetOverview')\n .get(),\n\n // Проверяем возможность создать счет.\n hasActiveInvoice: this.data\n .singleton('Tenant')\n .function('CheckActiveInvoice')\n .get(),\n\n expiryOfLicensingPeriod: this.data\n .singleton('Tenant')\n .function('GetExpiryOfLicensingPeriod')\n .get(),\n\n licenseInfo: this.data.model\n .function('GetLicenseInfo')\n .get(),\n\n licenseToUpgrade: this.data\n .singleton('Tenant')\n .function('GetLicenseToUpgrade')\n .get(),\n }).subscribe({\n next: (response) => {\n if (!response.billingContact.isValid) {\n this.mode = ModeType.error;\n }\n\n if (response.hasActiveInvoice) {\n this.mode = ModeType.activeInvoiceExists;\n }\n\n this.billingContact = response.billingContact;\n this.licenseToUpgrade = response.licenseToUpgrade;\n this.bonus = response.tenantOverview.currentBalance;\n this.expiryOfLicensingPeriod = response.expiryOfLicensingPeriod;\n\n this.licenseProducts = sortBy(\n response.licenseInfo.products,\n (x) => x.displayName,\n );\n\n this.licenseProducts.forEach((productCfg) => {\n const count = max([\n productCfg.used,\n this.licenseToUpgrade?.products.find(\n (x) => x.product === productCfg.product,\n )?.count ?? 0,\n productCfg.used,\n ]);\n\n const cfg: LicenseProductConfiguration = {\n product: productCfg.product,\n count: count === 0 ? null : count,\n };\n\n const formGroup = this.fb.group(cfg);\n\n this.formProducts.push(formGroup);\n });\n\n this.loading$.next(false);\n\n this.setMinCount();\n this.calculate();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading$.next(false);\n },\n });\n }\n\n private calculate() {\n this.calculating$.next(true);\n\n if (this.licenseToUpgrade) {\n let selectedDate = DateTime.fromISO(\n this.form.controls['upgradeDate'].value,\n );\n const minDate = DateTime.max(\n DateTime.now(),\n DateTime.fromISO(this.licenseToUpgrade.effectiveDate),\n );\n const maxDate = DateTime.fromISO(this.licenseToUpgrade.expiryDate);\n\n if (selectedDate < minDate) {\n selectedDate = minDate;\n }\n\n if (selectedDate > maxDate) {\n selectedDate = maxDate;\n }\n this.form.controls['upgradeDate'].setValue(selectedDate.toISODate(), {\n emitEvent: false,\n });\n }\n\n const params: LicenseOrderCalculationParams = {\n products: this.formProducts.value.filter((x) => x.count > 0),\n monthsCount: this.form.value.period.id,\n upgradeDate:\n this.mode === ModeType.upgradeLicense\n ? this.form.value.upgradeDate\n : null,\n };\n\n this.calcSubscription?.unsubscribe();\n\n this.calcSubscription = this.data\n .singleton('Tenant')\n .action('CalculateLicenseOrder')\n .execute(params)\n .subscribe({\n next: (response: LicenseOrderCalculation) => {\n this.calculating$.next(false);\n const calc = new LicenseOrderCalculation();\n calc.amount = response.amount;\n calc.discount = response.discount;\n this.calculation$.next(calc);\n },\n error: () => {\n this.calculation$.next(null);\n this.calculating$.next(false);\n },\n });\n }\n\n public ok() {\n if (this.form.valid) {\n this.saving$.next(true);\n\n const params: LicenseOrderCalculationParams = {\n products: (\n this.formProducts.value as LicenseProductConfiguration[]\n ).filter((p) => p.count > 0),\n monthsCount: this.form.value.period.id,\n upgradeDate:\n this.mode === ModeType.upgradeLicense\n ? this.form.value.upgradeDate\n : null,\n };\n\n this.data\n .singleton('Tenant')\n .action('CreateInvoice')\n .execute(params)\n .subscribe({\n next: (invoice: any) => {\n this.invoice = invoice;\n this.invoice.name = this.translate.instant(\n 'settings.account.createPayment.invoiceNameTemplate',\n {\n number: invoice.number,\n date: DateTime.fromISO(invoice.date).toLocaleString(\n DateTime.DATE_FULL,\n ),\n },\n );\n\n this.saving$.next(false);\n this.mode = ModeType.completed;\n\n this.download();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.saving$.next(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n public download() {\n this.blockUI.start();\n const url = `${AppConfigService.config.api.url}/tenant/license-invoice/${this.invoice.id}`;\n\n this.httpClient.get(url, { responseType: 'blob' }).subscribe({\n next: (data) => {\n saveAs(data, `Timetta Invoice #${this.invoice.number}.pdf`);\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n public editBillingInfo() {\n this.state.go('settings.settings.billing');\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n public close() {\n this.activeModal.close();\n }\n}\n\ninterface TenantLicenseDto {\n effectiveDate: string;\n expiryDate: string;\n products: LicenseProductConfiguration[];\n}\n\nenum ModeType {\n newLicense = 'newLicense',\n upgradeLicense = 'upgradeLicense',\n error = 'error',\n completed = 'completed',\n activeInvoiceExists = 'activeInvoiceExists',\n}\n","\n\n
    \n
    \n

    \n {{ 'settings.account.createPayment.header' | translate }}\n

    \n \n
    \n
    \n \n \n {{ 'settings.account.createPayment.completed' | translate }}

    \n \n
    \n\n \n \n
    \n \n
    \n \n\n \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n

    \n {{ this.form.value.period.discount | percent }}\n

    \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.account.overview.product' | translate }}{{ 'settings.account.overview.limit' | translate }}
    {{ product.displayName }}\n \n
    \n\n

    \n {{ 'settings.account.createPayment.newLicenseHelp' | translate }}\n

    \n
    \n\n \n\n
    \n
    \n \n

    \n
    \n\n
    \n \n

    {{ getOrderEffectivePeriod() }}

    \n
    \n
    \n

    \n {{ 'settings.account.createPayment.amountError' | translate }}\n

    \n\n
    0\">\n \n

    \n {{ bonus | wpCurrency: billingContact.currencyCode }}\n

    \n {{ 'settings.account.createPayment.bonusHelp' | translate }}\n
    \n
    \n\n
    \n \n
    \n
    \n
    \n\n \n
    \n

    \n {{ 'settings.account.createPayment.billingContactIncorrect01' | translate }}

    \n {{ 'settings.account.createPayment.billingContactIncorrect02' | translate }}\n
    \n
    \n \n

    \n
    \n\n \n
    \n

    \n {{ 'settings.account.createPayment.activeInvoiceExists' | translate }}\n

    \n
    \n \n\n
    \n \n {{ 'settings.account.createPayment.create' | translate }}\n \n\n \n {{ 'shared.actions.cancel' | translate }}\n \n\n \n {{ 'shared.actions.close' | translate }}\n \n
    \n
    \n","/** Represents order calculation. */\nexport class LicenseOrderCalculation {\n public amount: number;\n public discount: number | null;\n\n public getAmountToPay(): number {\n return this.amount - this.discount ?? 0;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ActivityCardComponent } from './card/activity-card.component';\nimport { ActivityListComponent } from './list/activity-list.component';\nimport { ActivityCreationComponent } from './creation/activity-creation.component';\nimport { ActivityList } from 'src/app/shared/lists/activity.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ActivityCardComponent,\n ActivityListComponent,\n ActivityCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.activities',\n url: '/activities',\n component: ActivityListComponent,\n params: {\n navigation: 'settings.activities',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ActivityList },\n ],\n },\n\n {\n name: 'settings.activity',\n params: {\n navigation: 'settings.activities',\n },\n url: '/activities/{entityId:guid}',\n component: ActivityCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ActivitiesModule {}\n","import { Component, OnInit, Input, DestroyRef, inject } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Activity } from 'src/app/shared/models/entities/settings/activity.model';\nimport {\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-activity-card',\n templateUrl: './activity-card.component.html',\n standalone: false,\n})\nexport class ActivityCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public state: CardState;\n public isSaving = false;\n\n public activityForm = new UntypedFormGroup({\n name: new UntypedFormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]),\n description: new UntypedFormControl(\n '',\n Validators.maxLength(Constants.formTextMaxLength),\n ),\n isActive: new UntypedFormControl(false),\n });\n public readonly: boolean;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.activityForm.markAllAsTouched();\n\n if (this.activityForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const activity = this.activityForm.value;\n\n const data: any = {\n name: activity.name,\n description: activity.description,\n isActive: activity.isActive,\n };\n\n this.data\n .collection('Activities')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.activityForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.activities.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n private load = (): void => {\n this.state = CardState.Loading;\n this.activityForm.markAsPristine();\n this.activityForm.markAsUntouched();\n\n this.data\n .collection('Activities')\n .entity(this.entityId)\n .get(null)\n .subscribe({\n next: (activity: Activity) => {\n this.activityForm.patchValue(activity);\n this.readonly = !activity.editAllowed;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly\n ? this.activityForm.disable()\n : this.activityForm.enable();\n this.actionService.action('save').isShown = !this.readonly;\n this.state = CardState.Ready;\n\n this.navigationService.addRouteSegment({\n id: activity.id,\n title: activity.name,\n });\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n\n private reload(): void {\n if (!this.activityForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n\n\n\n\n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-activity-creation',\n templateUrl: './activity-creation.component.html',\n standalone: false,\n})\nexport class ActivityCreationComponent {\n isSaving = false;\n activityForm: UntypedFormGroup;\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {\n this.activityForm = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n });\n }\n\n public ok = () => {\n this.activityForm.markAllAsTouched();\n\n if (this.activityForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.activityForm.value;\n\n this.data\n .collection('Activities')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.activities.creation.messages.created',\n );\n this.state.go('settings.activity', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.activities.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActivityCreationComponent } from '../creation/activity-creation.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-activity-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ActivityListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.activities.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Activity',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.activity', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Activity', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(ActivityCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { BillCodesListComponent } from 'src/app/settings-app/bill-codes/list/bill-codes-list.component';\nimport { BillCodeCardComponent } from 'src/app/settings-app/bill-codes/card/bill-code-card.component';\nimport { BillCodeCreationComponent } from 'src/app/settings-app/bill-codes/creation/bill-code-creation.component';\nimport { BILL_CODE_LIST } from 'src/app/settings-app/bill-codes/model/bill-code.list';\n\n@NgModule({\n declarations: [\n BillCodesListComponent,\n BillCodeCardComponent,\n BillCodeCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.billCodes',\n url: '/bill-codes',\n component: BillCodesListComponent,\n params: {\n navigation: 'settings.billCodes',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: BILL_CODE_LIST },\n ],\n },\n\n {\n name: 'settings.billCode',\n params: {\n navigation: 'settings.billCodes',\n },\n url: '/bill-codes/{entityId:guid}',\n component: BillCodeCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class BillCodesModule {}\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { BillCodeCardService } from 'src/app/settings-app/bill-codes/card/bill-code.service';\n\n@Component({\n selector: 'tmt-bill-code-card',\n templateUrl: './bill-code-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [BillCodeCardService],\n standalone: false,\n})\nexport class BillCodeCardComponent implements OnInit {\n constructor(\n public billCodeCardService: BillCodeCardService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n {\n title: 'shared2.actions.save',\n hint: 'shared2.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.billCodeCardService.save(),\n },\n this.actionPanelService.getDefaultAction('setAsDefault', {\n handler: () => this.billCodeCardService.setAsDefault(),\n }),\n ]);\n }\n}\n","\n\n\n\n\n\n @if (billCodeCardService.isDefault()) {\n

    \n  {{\n 'components.billCodeCardComponent.props.usingByDefault' | translate\n }}\n

    \n }\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (!billCodeCardService.readonly()) {\n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n
    \n }\n\n","import { DestroyRef, inject, Inject, Injectable, signal } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BillCode } from 'src/app/settings-app/bill-codes/model/bill-code.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class BillCodeCardService {\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n costAdjustment: 0,\n isActive: false,\n isDefault: false,\n });\n public readonly = signal(\n !this.appService.checkEntityPermission('BillCode', PermissionType.Modify),\n );\n public state = signal(CardState.Loading);\n public isSaving = signal(false);\n public name = signal('');\n public isDefault = signal(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId: string,\n private dataService: DataService,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private navigationService: NavigationService,\n private fb: UntypedFormBuilder,\n private blockUIService: BlockUIService,\n private messageService: MessageService,\n private appService: AppService,\n ) {\n this.load();\n\n this.form.controls.name.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.updateName(value);\n });\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Loads bill code. */\n public load(): void {\n this.state.set(CardState.Loading);\n\n const query = {\n select: [\n 'id',\n 'name',\n 'code',\n 'description',\n 'costAdjustment',\n 'isActive',\n 'isDefault',\n ],\n };\n\n this.dataService\n .collection('BillCodes')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (billCode: BillCode) => {\n this.actionPanelService.action('save').isShown = !this.readonly();\n this.actionPanelService.action('setAsDefault').isShown =\n !this.readonly() && !billCode.isDefault;\n\n this.name.set(billCode.name);\n this.isDefault.set(billCode.isDefault);\n\n this.form.patchValue(billCode);\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.navigationService.addRouteSegment({\n id: billCode.id,\n title: billCode.name,\n });\n this.state.set(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state.set(CardState.Error);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Updates bill code name. */\n public updateName(value: any): void {\n this.name.set(value);\n }\n\n /** Saves bill code. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n this.blockUIService.start();\n this.actionPanelService.action('save').start();\n\n this.dataService\n .collection('BillCodes')\n .entity(this.entityId)\n .patch(this.form.value)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'components.billCodeCardService.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => {\n this.form.markAsPristine();\n this.load();\n },\n () => null,\n );\n }\n }\n\n /** Sets bill code as default. */\n public setAsDefault(): void {\n this.isSaving.set(true);\n this.actionPanelService.action('setAsDefault').start();\n\n this.dataService\n .collection('BillCodes')\n .entity(this.entityId)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.billCodeCardService.messages.hasBeenSetByDefault',\n );\n this.actionPanelService.action('setAsDefault').stop();\n this.actionPanelService.action('setAsDefault').isShown = false;\n this.isSaving.set(false);\n this.isDefault.set(true);\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.actionPanelService.action('setAsDefault').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'tmt-bill-code-creation',\n templateUrl: './bill-code-creation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BillCodeCreationComponent {\n public form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n });\n public isSaving = signal(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /* Creates bill code. */\n public create(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n this.dataService\n .collection('BillCodes')\n .insert(this.form.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'components.billCodeCreationComponent.messages.created',\n );\n this.stateService.go('settings.billCode', {\n entityId: response.id,\n });\n this.isSaving.set(false);\n this.activeModal.close();\n },\n error: (error) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /* Closes bill code creation modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.billCodeCreationComponent.groups.modalHeader' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { BillCodeCreationComponent } from 'src/app/settings-app/bill-codes/creation/bill-code-creation.component';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-bill-codes-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BillCodesListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private gridService: GridService,\n private modalService: NgbModal,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private appService: AppService,\n private entityListService: EntityListService,\n private stateService: StateService,\n private dataService: DataService,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.billCodesListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'BillCode',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.billCode', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: () => this.entityListService.delete(),\n }),\n this.actionPanelService.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'BillCode',\n PermissionType.Modify,\n );\n this.actionPanelService.action('setAsDefault').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'BillCode',\n PermissionType.Modify,\n ) &&\n !row.getRawValue().isDefault;\n });\n }\n\n private setAsDefault(): void {\n this.dataService\n .collection('BillCodes')\n .entity(this.gridService.selectedGroupValue.id)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.billCodeCardService.messages.hasBeenSetByDefault',\n );\n this.entityListService.reload();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n private create(): void {\n this.modalService.open(BillCodeCreationComponent);\n }\n}\n","import { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n DATE_TIME_COLUMN_WIDTH,\n getCodedEntityDataColumns,\n getCodedEntityGridColumns,\n IS_ACTIVE_COLUMN_WIDTH,\n} from 'src/app/shared/helpers/list.helper';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const BILL_CODE_LIST: List = {\n version: 1,\n name: 'billCodes',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'costAdjustment',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n width: IS_ACTIVE_COLUMN_WIDTH,\n visibleByDefault: true,\n },\n {\n column: 'isDefault',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n width: DATE_TIME_COLUMN_WIDTH,\n visibleByDefault: false,\n },\n {\n column: 'modified',\n width: DATE_TIME_COLUMN_WIDTH,\n visibleByDefault: false,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n ...getCodedEntityGridColumns('settings.billCode'),\n {\n name: 'costAdjustment',\n header: 'components.billCodeCardComponent.props.costAdjustment',\n hint: 'components.billCodeCardComponent.props.costAdjustment',\n type: GridColumnType.Percent,\n },\n {\n name: 'description',\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n type: GridColumnType.String,\n },\n {\n name: 'isDefault',\n header: 'shared2.props.isDefault',\n hint: 'shared2.props.isDefault',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n ...getCodedEntityDataColumns(),\n {\n column: 'costAdjustment',\n field: 'costAdjustment',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'BillCodes',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\n\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { NavigationItemsComponent } from 'src/app/shared/components/navigations/navigation-items.component';\nimport { FilterConditionsBuilderComponent } from 'src/app/shared/components/filter-conditions-builder/filter-conditions-builder.component';\n\nimport { BOARDS_LIST } from 'src/app/settings-app/boards/model/boards.list';\nimport { PerformersModule } from 'src/app/settings-app/shared/performers/performers.module';\nimport { BoardCardComponent } from 'src/app/settings-app/boards/card/board-card.component';\nimport { BoardCreationComponent } from 'src/app/settings-app/boards/creation/board-creation.component';\nimport { BoardsListComponent } from 'src/app/settings-app/boards/list/boards-list.component';\nimport { BoardCardMainComponent } from 'src/app/settings-app/boards/card/board-card-main/board-card-main.component';\nimport { BoardCardFilterComponent } from 'src/app/settings-app/boards/card/board-card-filter/board-card-filter.component';\n\n@NgModule({\n declarations: [\n BoardsListComponent,\n BoardCreationComponent,\n BoardCardComponent,\n BoardCardMainComponent,\n BoardCardFilterComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PerformersModule,\n GridModule,\n EntityListComponent,\n FilterConditionsBuilderComponent,\n NavigationItemsComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.boards',\n url: '/boards',\n component: BoardsListComponent,\n params: {\n navigation: 'settings.boards',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: BOARDS_LIST },\n ],\n },\n {\n name: 'settings.board',\n params: {\n navigation: 'settings.boards',\n },\n redirectTo: 'settings.board.main',\n url: '/boards/{entityId:guid}',\n component: BoardCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'settings.board.main',\n url: '/main',\n component: BoardCardMainComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.board.filter',\n url: '/filter',\n component: BoardCardFilterComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class BoardsModule {}\n","import {\n Component,\n ChangeDetectionStrategy,\n OnInit,\n signal,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BoardCardService } from 'src/app/settings-app/boards/card/board-card.service';\n\n@Component({\n selector: 'tmt-board-card-filter',\n templateUrl: './board-card-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardCardFilterComponent implements OnInit {\n public loading = signal(true);\n\n private query = {\n select: ['filter'],\n };\n private destroyRef = inject(DestroyRef);\n\n constructor(public boardCardService: BoardCardService) {}\n\n public ngOnInit(): void {\n this.boardCardService.load(this.query, () => {\n this.loading.set(false);\n this.boardCardService.actionPanelService.action('save').isShown =\n !this.boardCardService.readonly();\n });\n\n this.boardCardService.actionPanelService.run$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((action) => {\n if (action.name === 'save') {\n this.boardCardService.saveFilter();\n }\n });\n }\n}\n","\n@if (!loading()) {\n \n \n @if (!boardCardService.readonly()) {\n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n
    \n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BoardCardService } from 'src/app/settings-app/boards/card/board-card.service';\n\n@Component({\n selector: 'tmt-board-card-main',\n templateUrl: './board-card-main.component.html',\n styleUrl: './board-card-main.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardCardMainComponent implements OnInit {\n public loading = signal(true);\n\n protected readonly boardCardService = inject(BoardCardService);\n\n private query = {\n select: ['navigations'],\n expand: {\n team: {\n select: [\n 'id',\n 'boardId',\n 'userId',\n 'groupId',\n 'permissionSetId',\n 'role',\n ],\n expand: {\n user: { select: ['id', 'name'] },\n group: { select: ['id', 'name'] },\n permissionSet: { select: ['id', 'name'] },\n },\n },\n },\n };\n private destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.boardCardService.load(this.query, () => {\n this.loading.set(false);\n this.boardCardService.actionPanelService.action('save').isShown =\n !this.boardCardService.readonly();\n });\n\n this.boardCardService.actionPanelService.run$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((action) => {\n if (action.name === 'save') {\n this.boardCardService.saveMain();\n }\n });\n }\n}\n","\n@if (!loading()) {\n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n \n @if (!boardCardService.readonly()) {\n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n
    \n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\nimport { StateService } from '@uirouter/core';\n\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\n\nimport { BoardCardService } from 'src/app/settings-app/boards/card/board-card.service';\n\n@Component({\n selector: 'tmt-board-card',\n templateUrl: './board-card.component.html',\n providers: [BoardCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardCardComponent {\n public tabs: TabLink[] = [\n {\n header: 'shared2.groups.main',\n state: 'settings.board.main',\n },\n {\n header: 'shared2.groups.filter',\n state: 'settings.board.filter',\n },\n ];\n\n constructor(\n public boardCardService: BoardCardService,\n public stateService: StateService,\n ) {}\n}\n","\n\n\n@if (boardCardService.state() === 'Ready') {\n \n
      \n @for (tab of tabs; track tab.state) {\n
    • \n \n {{ tab.header | translate }}\n \n
    • \n }\n
    \n \n}\n","import {\n DestroyRef,\n Inject,\n Injectable,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { FormArray, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { first, firstValueFrom } from 'rxjs';\n\nimport _ from 'lodash';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MassOperationHelper } from 'src/app/shared/helpers/mass-operation.helper';\nimport { EntityNavigation } from 'src/app/shared/models/navigation/navigation';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { Filter } from 'src/app/shared/components/filter-conditions-builder';\n\nimport {\n Board,\n BoardPermissionFormResult,\n BoardTeamMember,\n} from 'src/app/settings-app/boards/model/board.model';\n\n@Injectable()\nexport class BoardCardService {\n public filters = signal([]);\n\n private _name = signal(null);\n public name = computed(this._name);\n private _board = signal(null);\n public board = computed(this._board);\n private _readonly = signal(false);\n public readonly = computed(this._readonly);\n private _isSaving = signal(false);\n public isSaving = computed(this._isSaving);\n private _state = signal(CardState.Loading);\n public state = computed(this._state);\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n entityType: ['', Validators.required],\n isActive: false,\n team: new FormArray([]),\n navigations: new FormArray([]),\n });\n public team: Partial[];\n public navigationResponse: EntityNavigation[] = [];\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly boardTeamMemberCollection =\n this.dataService.collection('BoardTeamMembers');\n\n public get permissions(): FormArray {\n return this.form.get('team') as FormArray;\n }\n\n constructor(\n @Inject('entityId') public entityId: string,\n public actionPanelService: ActionPanelService,\n private dataService: DataService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n private appService: AppService,\n private messageService: MessageService,\n private translateService: TranslateService,\n private fb: UntypedFormBuilder,\n ) {\n this.load();\n this.initFormSubscribers();\n this.initActionPanel();\n\n this._readonly.set(\n !this.appService.checkEntityPermission('Board', PermissionType.Modify),\n );\n\n effect(() => {\n if (\n !this.readonly() &&\n !_.isEqual(this.filters(), this._board()?.filter)\n ) {\n this.form.markAsDirty();\n this.form.markAllAsTouched();\n }\n });\n\n effect(() => {\n const readonly = this.readonly();\n\n if (readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.form.get('entityType').disable();\n });\n\n effect(() => {\n if (this.isSaving()) {\n this.actionPanelService.action('save').start();\n } else {\n this.actionPanelService.action('save').stop();\n }\n });\n\n effect(() => {\n const board = this.board();\n\n if (!board || !board.navigations) {\n return;\n }\n\n this.navigationResponse =\n board.navigations.sort(naturalSort('area')) || [];\n this.permissions.clear();\n this.team = board.team.map((item) => ({\n ...item,\n name: item.user?.name ?? item.group?.name ?? item.permissionSet?.name,\n }));\n this.team.forEach((item) => {\n this.permissions.push(\n this.fb.group({\n id: item.id,\n performer: {\n id: this.getMemberId(item),\n type: item.userId\n ? 'user'\n : item.groupId\n ? 'group'\n : item.permissionSetId\n ? 'permissionSet'\n : 'role',\n name:\n item.name ||\n this.translateService.instant(`shared2.props.role${item.role}`),\n },\n }),\n );\n });\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n });\n\n this.form\n .get('navigations')\n .valueChanges.pipe(takeUntilDestroyed())\n .subscribe((value) => {\n this.navigationResponse = value.map((item: any) => ({\n area: item.area?.key,\n group: item.group?.key,\n }));\n });\n }\n\n /**\n * Loads board data.\n *\n * @param query odata query.\n * @param afterTabLoaded callback to perform after tab loaded.\n */\n public load(\n query = {\n select: ['id', 'name', 'isActive', 'entityType'],\n },\n afterTabLoaded: () => void = () => null,\n ): void {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.dataService\n .collection('Boards')\n .entity(this.entityId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (board: Board) => {\n this._board.set({ ...board, ...this._board() });\n this.form.patchValue(this._board());\n\n if (board.id && board.name) {\n this._name.set(board.name);\n this.navigationService.addRouteSegment({\n id: board.id,\n title: board.name,\n });\n }\n\n this.filters.set(_.cloneDeep(board?.filter) ?? []);\n this._state.set(CardState.Ready);\n afterTabLoaded();\n },\n error: (error: Exception) => {\n this._state.set(CardState.Error);\n afterTabLoaded();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Saves board main settings. */\n public async saveMain(): Promise {\n try {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this._isSaving.set(true);\n\n await firstValueFrom(\n this.dataService.collection('Boards').entity(this.entityId).patch({\n name: this.form.value.name,\n isActive: this.form.value.isActive,\n navigations: this.navigationResponse,\n }),\n );\n\n const { inserted, updated, deleted } = this.getSavingArrays();\n\n if (inserted.length || updated.length || deleted.length) {\n const massOperationHelper = new MassOperationHelper(\n deleted\n .map((id: string) =>\n this.boardTeamMemberCollection.entity(id).delete(),\n )\n .concat(\n inserted.map((item: Partial) =>\n this.boardTeamMemberCollection.insert(item),\n ),\n )\n .concat(\n updated.map((item: Partial) =>\n this.boardTeamMemberCollection.entity(item.id).update(item),\n ),\n ),\n { takeUntil: takeUntilDestroyed(this.destroyRef) },\n );\n\n await firstValueFrom(\n massOperationHelper.start().pipe(first((v) => v === 100)),\n );\n\n if (massOperationHelper.errors.length) {\n const uniqueErrors = new Set();\n massOperationHelper.errors.forEach((error) => {\n uniqueErrors.add(\n error.result?.message || 'shared2.messages.unknownError',\n );\n });\n uniqueErrors.forEach((error: string) =>\n this.notificationService.error(error),\n );\n }\n\n /** Updates team after saving. */\n this.team = [];\n this.permissions.value.forEach((item) => {\n this.team.push({\n id: item.id,\n groupId: item.performer.type === 'group' ? item.performer.id : null,\n userId: item.performer.type === 'user' ? item.performer.id : null,\n permissionSetId:\n item.performer.type === 'permissionSet'\n ? item.performer.id\n : null,\n role: item.performer.type === 'role' ? item.performer.id : null,\n });\n });\n }\n\n this.form.markAsPristine();\n this.navigationService.reloadCustomNavigationItems();\n this.notificationService.successLocal(\n 'components.boardCardPermissionsComponent.messages.saved',\n );\n this._isSaving.set(false);\n } catch (error) {\n this._isSaving.set(false);\n this.notificationService.error(error.message);\n }\n }\n\n /** Saves board filter. */\n public saveFilter(): void {\n this._isSaving.set(true);\n\n this.dataService\n .collection('Boards')\n .entity(this.entityId)\n .patch({ filter: this.filters() })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this._isSaving.set(false);\n this.notificationService.successLocal(\n 'components.boardCardFilterComponent.messages.saved',\n );\n },\n error: (error: any) => {\n this._isSaving.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n private getSavingArrays(): BoardPermissionFormResult {\n const result: BoardPermissionFormResult = {\n inserted: [],\n updated: [],\n deleted: [],\n };\n\n for (const item of this.permissions.value) {\n const foundTeamMember = this.team.find(\n (teamMember) => item.id === teamMember.id,\n );\n\n if (foundTeamMember) {\n if (item.performer.id !== this.getMemberId(foundTeamMember)) {\n result.updated.push(\n this.buildTeamMember(item.id, item.performer, true),\n );\n }\n } else {\n result.inserted.push(this.buildTeamMember(item.id, item.performer));\n }\n }\n\n for (const item of this.team) {\n if (!this.permissions.value.some((teamItem) => teamItem.id === item.id)) {\n result.deleted.push(item.id);\n }\n }\n\n return result;\n }\n\n private getMemberId(member: Partial): string {\n return (\n member.userId || member.groupId || member.permissionSetId || member.role\n );\n }\n\n private buildTeamMember(\n itemId: string,\n performer: { id: string; type: string },\n isUpdate?: boolean,\n ): Partial {\n const teamMember: Partial = {\n id: itemId,\n isActive: true,\n boardId: this.entityId,\n };\n\n if (isUpdate) {\n teamMember.groupId = null;\n teamMember.userId = null;\n teamMember.permissionSetId = null;\n teamMember.role = null;\n }\n\n switch (performer.type) {\n case 'group':\n teamMember.groupId = performer.id;\n break;\n case 'user':\n teamMember.userId = performer.id;\n break;\n case 'permissionSet':\n teamMember.permissionSetId = performer.id;\n break;\n case 'role':\n teamMember.role = performer.id;\n }\n\n return teamMember;\n }\n\n /** Reloads view. */\n private reload(): void {\n (!this.form.dirty\n ? Promise.resolve()\n : this.messageService.confirmLocal('shared2.messages.leavePageMessage')\n ).then(\n () => {\n this.actionPanelService.action('save').isShown = false;\n this._state.set(CardState.Loading);\n this.load();\n },\n () => null,\n );\n }\n\n private initFormSubscribers(): void {\n this.form\n .get('name')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((name) => {\n this._name.set(name);\n });\n }\n\n private initActionPanel(): void {\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.actionPanelService.set([\n {\n title: 'shared2.actions.save',\n hint: 'shared2.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => null,\n },\n ]);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n LocalString,\n LocalStringHelper,\n} from 'src/app/shared/models/enums/language.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n selector: 'tmt-board-creation',\n templateUrl: './board-creation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardCreationComponent {\n public form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n entityType: ['', Validators.required],\n });\n public isSaving$ = new BehaviorSubject(false);\n public entityTypes: NamedEntity[] =\n this.appService.session.configuration.metamodel.entities\n .filter((v) => v.usedInBoards)\n .map((metaEntity) => ({\n id: metaEntity.name,\n name: this.getTranslate(metaEntity.displayNames),\n }));\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n private appService: AppService,\n ) {}\n\n /* Creates board. */\n public create(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n\n this.dataService\n .collection('Boards')\n .insert({\n name: this.form.value.name,\n entityType: this.form.value.entityType.id,\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'components.boardCreationComponent.messages.created',\n );\n this.stateService.go('settings.board', {\n entityId: response.id,\n });\n this.isSaving$.next(false);\n this.activeModal.close();\n },\n error: (error) => {\n this.notificationService.error(error.message);\n this.isSaving$.next(false);\n },\n });\n }\n\n /** Closes board creating modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n private getTranslate(translates: LocalString[]): string | undefined {\n return LocalStringHelper.getTranslate(\n translates,\n this.appService.session.language,\n );\n }\n}\n","
    \n
    \n

    \n {{ 'components.boardCreationComponent.groups.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BoardCreationComponent } from 'src/app/settings-app/boards/creation/board-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-boards-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BoardsListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.boardsListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Board',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.board', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n row &&\n this.appService.checkEntityPermission('Board', PermissionType.Modify);\n });\n }\n\n /* Opens board creation modal. */\n private create(): void {\n this.modalService.open(BoardCreationComponent);\n }\n}\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../../../shared/models/inner/list';\nimport { TotalType } from '../../../shared/models/inner/total-type';\n\nexport const BOARDS_LIST: List = {\n version: 1,\n name: 'boards',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'isActive',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'modified',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.board',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n },\n {\n name: 'entityType',\n header: 'components.boardsListComponent.props.entityType.value',\n hint: 'components.boardsListComponent.props.entityType.value',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'entityType',\n field: 'entityType',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Boards',\n};\n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Competence } from 'src/app/shared/models/entities/settings/competence.model';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'tmt-competence-card',\n templateUrl: './competence-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CompetenceCardComponent implements OnInit {\n @Input() entityId: string;\n public readonly: boolean;\n public competenceForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n roleId: ['', Validators.required],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n });\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving$ = new BehaviorSubject(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves competence. */\n public save(): void {\n this.competenceForm.markAllAsTouched();\n\n if (this.competenceForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.actionService.action('save').start();\n\n this.dataService\n .collection('Competences')\n .entity(this.entityId)\n .patch(this.competenceForm.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.competenceForm.markAsPristine();\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.notificationService.successLocal(\n 'settings.competences.card.messages.saved',\n );\n },\n error: (error: any) => {\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /* Loads competences list. */\n private load(): void {\n this.state$.next(CardState.Loading);\n this.competenceForm.markAsPristine();\n this.competenceForm.markAsUntouched();\n this.dataService\n .collection('Competences')\n .entity(this.entityId)\n .get()\n .subscribe({\n next: (competence: Competence) => {\n this.competenceForm.patchValue(competence);\n this.readonly = !competence.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.readonly\n ? this.competenceForm.disable()\n : this.competenceForm.enable();\n this.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: competence.id,\n title: competence.name,\n });\n },\n error: (error: any) => {\n this.state$.next(CardState.Error);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /* Reloads view. */\n private reload(): void {\n if (!this.competenceForm.dirty) {\n this.load();\n } else {\n this.messageService\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n\n\n\n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { CompetenceCardComponent } from './card/competence-card.component';\nimport { CompetenceCreationComponent } from './creation/competence-creation.component';\nimport { CompetencesListComponent } from './list/competences-list.component';\nimport { CompetencesList } from 'src/app/shared/lists/competences.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n CompetencesListComponent,\n CompetenceCardComponent,\n CompetenceCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.competences',\n url: '/competences',\n component: CompetencesListComponent,\n params: {\n navigation: 'settings.competences',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CompetencesList },\n ],\n },\n\n {\n name: 'settings.competence',\n params: {\n navigation: 'settings.competences',\n },\n url: '/competences/{entityId:guid}',\n component: CompetenceCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class CompetencesModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'tmt-competence-creation',\n templateUrl: './competence-creation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CompetenceCreationComponent {\n public competenceForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n roleId: ['', Validators.required],\n });\n public isSaving$ = new BehaviorSubject(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /* Creates competence. */\n public create(): void {\n this.competenceForm.markAllAsTouched();\n\n if (this.competenceForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n\n this.dataService\n .collection('Competences')\n .insert(this.competenceForm.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'settings.competences.creation.messages.created',\n );\n this.stateService.go('settings.competence', {\n entityId: response.id,\n });\n this.isSaving$.next(false);\n this.activeModal.close();\n },\n error: (error) => {\n this.notificationService.error(error.message);\n this.isSaving$.next(false);\n },\n });\n }\n\n /* Closes competence's creating modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'settings.competences.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { CompetenceCreationComponent } from '../creation/competence-creation.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-competences-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CompetencesListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'settings.competences.list.create',\n isVisible: this.appService.checkEntityPermission(\n 'Competence',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.competence', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'Competence',\n PermissionType.Modify,\n );\n });\n }\n\n /* Opens competence's creation modal. */\n private create(): void {\n this.modalService.open(CompetenceCreationComponent);\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CostNormalizationRule } from 'src/app/shared/models/entities/settings/cost-normalization-rule.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CostNormalizationMethod } from 'src/app/shared/models/enums/cost-normalization-method.enum';\nimport { NormalizationRuleTimeOffToolbarComponent } from './normalization-rule-time-off-toolbar/normalization-rule-time-off-toolbar.component';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { CostNormalizationRuleExcludedTimeOffType } from 'src/app/shared/models/entities/settings/cost-normalization-rule-excluded-time-off-type.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-cost-normalization-rule-card',\n templateUrl: './cost-normalization-rule-card.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class CostNormalizationRuleCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public state = signal(CardState.Loading);\n public isSaving = signal(false);\n public readonly = signal(false);\n\n public form = this.fb.group({\n id: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n method: [null, Validators.required],\n isActive: [false],\n isDefault: [false],\n excludedTimeOffTypes: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: NormalizationRuleTimeOffToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly(),\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n (this.form.controls.excludedTimeOffTypes).removeAt(\n index,\n );\n this.form.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'add',\n handlerFn: (timeOffType: NamedEntity) => {\n const group = this.fb.group({\n timeOffTypeName: [timeOffType.name, Validators.required],\n timeOffTypeId: [timeOffType.id, Validators.required],\n id: [Guid.generate()],\n });\n (this.form.controls.excludedTimeOffTypes).push(\n group,\n );\n group.markAsDirty();\n },\n },\n ],\n view: {\n name: 'excludedTimeOffTypes',\n columns: [\n {\n name: 'timeOffTypeName',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n public methods: NamedEntity[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {\n actionService.reload$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.reload());\n }\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.setAsDefault(),\n },\n ]);\n\n for (const key in CostNormalizationMethod) {\n if (Object.prototype.hasOwnProperty.call(CostNormalizationMethod, key)) {\n this.methods.push({\n id: key,\n name: this.translate.instant(\n `enums.costNormalizationMethod.${CostNormalizationMethod[key]}`,\n ),\n });\n }\n }\n\n this.load();\n }\n\n /** Saves the cost normalization rule data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving.set(true);\n this.actionService.action('save').start();\n\n const rule = this.form.value;\n\n const data: any = {\n id: rule.id,\n name: rule.name,\n isActive: rule.isActive,\n method: rule.method.id,\n excludedTimeOffTypes: [],\n };\n\n data.excludedTimeOffTypes = (\n this.form.value.excludedTimeOffTypes as any[]\n ).map((e) => ({ id: e.id, timeOffTypeId: e.timeOffTypeId }));\n\n this.data\n .collection('CostNormalizationRules')\n .entity(this.entityId)\n .update(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.costNormalizationRules.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /** Loads the cost normalization rule data. */\n private load(): void {\n this.state.set(CardState.Loading);\n (this.form.controls.excludedTimeOffTypes).clear();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.data\n .collection('CostNormalizationRules')\n .entity(this.entityId)\n .get({\n expand: { excludedTimeOffTypes: { expand: 'timeOffType' } },\n })\n .subscribe({\n next: (rule: CostNormalizationRule) => {\n this.form.patchValue(rule);\n\n this.form.controls.method.setValue(\n this.methods.find((p) => p.id === rule.method),\n );\n\n rule.excludedTimeOffTypes.forEach(\n (timeOffType: CostNormalizationRuleExcludedTimeOffType) => {\n const group = this.fb.group({\n timeOffTypeName: [timeOffType.timeOffType.name],\n timeOffTypeId: [timeOffType.timeOffType.id],\n id: [timeOffType.id],\n });\n\n (this.form.controls.excludedTimeOffTypes).push(\n group,\n );\n },\n );\n\n this.readonly.set(!rule.editAllowed);\n\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.actionService.action('save').isShown = !this.readonly();\n this.actionService.action('setAsDefault').isShown =\n !this.readonly() && !rule.isDefault;\n\n this.state.set(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: rule.id,\n title: rule.name,\n });\n },\n error: (error: Exception) => {\n this.state.set(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Reloads the component data. */\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n /** Sets the current cost normalization rule as the default rule. */\n private setAsDefault(): void {\n this.data\n .collection('CostNormalizationRules')\n .entity(this.entityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.costNormalizationRules.card.messages.setAsDefault',\n );\n\n this.actionService.action('setAsDefault').isShown = false;\n this.form.controls['isDefault'].setValue(true, { emitEvent: false });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (form.value.isDefault) {\n
    \n

    \n  {{\n 'settings.costNormalizationRules.card.props.usingByDefault' | translate\n }}\n

    \n
    \n }\n\n
    \n \n \n
    \n\n \n \n\n @if (!readonly()) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n\n","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-normalization-rule-time-off-toolbar',\n templateUrl: './normalization-rule-time-off-toolbar.component.html',\n standalone: false,\n})\nexport class NormalizationRuleTimeOffToolbarComponent extends AbstractToolbar {\n public selectedTimeOffTypes: any[] = [];\n public timeOffTypes: NamedEntity[] = [];\n public loading = false;\n constructor(\n public notification: NotificationService,\n private data: DataService,\n cdr: ChangeDetectorRef,\n gridService: GridService,\n ) {\n super(gridService, cdr);\n gridService.formArray.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe((types) => {\n this.selectedTimeOffTypes = types;\n });\n this.selectedTimeOffTypes = gridService.formArray.value;\n }\n\n /**\n * Handles the dropdown open event to fetch and populate time off types.\n *\n * @param $event - The event indicating whether the dropdown is open or not.\n */\n public openChange($event: boolean): void {\n if (!$event) {\n return;\n }\n\n this.loading = true;\n this.timeOffTypes = [];\n const params = {\n filter: { isActive: true },\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n\n this.data\n .collection('TimeOffTypes')\n .query(params)\n .subscribe({\n next: (timeOffTypes: NamedEntity[]) => {\n timeOffTypes.forEach((timeOffType: NamedEntity) => {\n if (\n this.selectedTimeOffTypes.every(\n (selectedTimeOffType: any) =>\n selectedTimeOffType.timeOffTypeId !== timeOffType.id,\n )\n ) {\n this.timeOffTypes.push(timeOffType);\n }\n });\n this.loading = false;\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notification.error(error.message);\n this.cdr.detectChanges();\n },\n });\n }\n\n /**\n * This method is used to select a time off type.\n *\n * @param timeOffType - The time off type to be added.\n */\n public selectTimeOffType(timeOffType: NamedEntity): void {\n this.gridService.execute('add', timeOffType);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n
    \n \n \n {{ 'shared.noOptions' | translate }}\n
    \n @for (timeOffType of timeOffTypes; track timeOffType.id) {\n \n {{ timeOffType.name }}\n \n }\n
    \n \n \n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { CostNormalizationRuleCardComponent } from './card/cost-normalization-rule-card.component';\nimport { CostNormalizationRuleCreationComponent } from './creation/cost-normalization-rule-creation.component';\nimport { CostNormalizationRuleListComponent } from './list/cost-normalization-rule-list.component';\nimport { CostNormalizationRuleList } from 'src/app/shared/lists/cost-normalization-rule.list';\nimport { NormalizationRuleTimeOffToolbarComponent } from './card/normalization-rule-time-off-toolbar/normalization-rule-time-off-toolbar.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n CostNormalizationRuleCardComponent,\n CostNormalizationRuleListComponent,\n CostNormalizationRuleCreationComponent,\n NormalizationRuleTimeOffToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.costNormalizationRules',\n url: '/cost-normalization-rules',\n component: CostNormalizationRuleListComponent,\n params: {\n navigation: 'settings.costNormalizationRules',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CostNormalizationRuleList },\n ],\n },\n\n {\n name: 'settings.costNormalizationRule',\n params: {\n navigation: 'settings.costNormalizationRules',\n },\n url: '/cost-normalization-rules/{entityId:guid}',\n component: CostNormalizationRuleCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class CostNormalizationRuleModule {}\n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-cost-normalization-rule-creation',\n templateUrl: './cost-normalization-rule-creation.component.html',\n standalone: false,\n})\nexport class CostNormalizationRuleCreationComponent {\n public isSaving = false;\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('CostNormalizationRules')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.costNormalizationRules.creation.messages.created',\n );\n this.state.go('settings.costNormalizationRule', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.costNormalizationRules.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { CostNormalizationRuleCreationComponent } from '../creation/cost-normalization-rule-creation.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-cost-normalization-rule-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class CostNormalizationRuleListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private data: DataService,\n private notification: NotificationService,\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.costNormalizationRules.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'CostNormalizationRule',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.costNormalizationRule', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'CostNormalizationRule',\n PermissionType.Modify,\n );\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission(\n 'CostNormalizationRule',\n PermissionType.Modify,\n ) &&\n !row.value.isDefault;\n },\n );\n }\n\n private setAsDefault = () => {\n this.data\n .collection('CostNormalizationRules')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.costNormalizationRules.card.messages.setAsDefault',\n );\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n };\n\n private create = () => {\n this.modalService.open(CostNormalizationRuleCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CurrencyService } from './currency.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { StateService } from '@uirouter/angular';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\n\n/** Карточка валюты. */\n@Component({\n selector: 'tmt-currency-card',\n templateUrl: './currency-card.component.html',\n providers: [CurrencyService],\n standalone: false,\n})\nexport class CurrencyCardComponent implements OnInit {\n public tabs: TabLink[] = [];\n private _baseCurrencyCode: string;\n\n constructor(\n public app: AppService,\n public state: StateService,\n public service: CurrencyService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this._baseCurrencyCode = this.app.session.configuration.baseCurrencyCode;\n this.tabs.push({\n header: 'settings.currencies.card.tabs.main',\n state: 'settings.currency.main',\n });\n\n const query = {\n select: ['id', 'name', 'alpha3Code'],\n };\n this.service.entity.get(query).subscribe({\n next: (currency) => {\n if (currency.alpha3Code !== this._baseCurrencyCode) {\n this.tabs.push({\n header: 'settings.currencies.card.tabs.exchangeRates',\n state: 'settings.currency.exchangeRates',\n });\n }\n if (\n this.tabs.length > 0 &&\n !this.tabs.find((t) => t.state === this.state.current.name)\n ) {\n this.state.go(this.tabs[0].state, this.state.params);\n }\n\n this.service.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: currency.id,\n title: currency.name,\n });\n },\n error: (error: Exception) => {\n this.service.state$.next(CardState.Ready);\n this.notification.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n
    \n
      \n
    • \n {{ tab.header | translate }}\n
    • \n
    \n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { CurrencyExchangeRate } from 'src/app/shared/models/entities/settings/currency-exchange-rate.model';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/** Компонент создания/редактирования курса валюты */\n@Component({\n selector: 'wp-currency-exchange-rate-setting',\n templateUrl: './currency-exchange-rate-setting.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CurrencyExchangeRateSettingComponent implements OnInit {\n @Input() currencyId: string;\n @Input() exchangeRate: CurrencyExchangeRate = null;\n\n public isSaving: boolean;\n\n public form = this.fb.group({\n id: [Guid.generate()],\n effectiveDate: [null, Validators.required],\n exchangeRate: [null, Validators.required],\n });\n\n private exchangeRatesCollection = this.data.collection(\n 'CurrencyExchangeRates',\n );\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n if (this.exchangeRate) {\n this.form.patchValue(this.exchangeRate);\n }\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n if (this.exchangeRate) {\n this.editCurrencyExchangeRate();\n } else {\n this.addCurrencyExchangeRate();\n }\n }\n\n /** Добавление курса валюты */\n private addCurrencyExchangeRate() {\n const data = {\n ...this.form.value,\n isActive: true,\n currencyId: this.currencyId,\n };\n\n this.exchangeRatesCollection.insert(data).subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'settings.currencies.card.props.currencyExchangeRates.setting.creation.created',\n );\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n\n /** Редактирование курса валюты */\n private editCurrencyExchangeRate() {\n const data = {\n effectiveDate: this.form.value.effectiveDate,\n exchangeRate: this.form.value.exchangeRate,\n };\n\n this.exchangeRatesCollection\n .entity(this.exchangeRate.id)\n .patch(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'settings.currencies.card.props.currencyExchangeRates.setting.editing.edited',\n );\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n\n /** Получить имя модального окна */\n public getHeader(): string {\n return this.exchangeRate\n ? 'settings.currencies.card.props.currencyExchangeRates.setting.editing.header'\n : 'settings.currencies.card.props.currencyExchangeRates.setting.creation.header';\n }\n\n /** Получить имя кнопки подтверждения */\n public getActionBtnName(): string {\n return this.exchangeRate ? 'shared.actions.save' : 'shared.actions.create';\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ getActionBtnName() | translate }}\n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n OnInit,\n inject,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { CURRENCY_EXCHANGE_RATES_LIST } from 'src/app/shared/lists/currency-exchange-rates.list';\nimport { CurrencyExchangeRate } from 'src/app/shared/models/entities/settings/currency-exchange-rate.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { CurrencyService } from '../currency.service';\nimport { CurrencyExchangeRateSettingComponent } from 'src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rate-setting/currency-exchange-rate-setting.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\n\n@Component({\n selector: 'wp-currency-exchange-rates',\n templateUrl: './currency-exchange-rates.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: VIEW_NAME, useValue: 'currency' },\n { provide: LIST, useValue: CURRENCY_EXCHANGE_RATES_LIST },\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n SavingQueueService,\n ],\n standalone: false,\n})\nexport class CurrencyExchangeRatesComponent implements OnInit {\n public isLoading = false;\n public isSaving = false;\n\n private exchangeRatesCollection = this.data.collection(\n 'CurrencyExchangeRates',\n );\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public currencyId,\n public gridService: GridService,\n private listService: EntityListService,\n private data: DataService,\n private notification: NotificationService,\n public service: CurrencyService,\n public autosave: SavingQueueService,\n private modal: NgbModal,\n private actionService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.addContextFilter();\n\n if (!this.service.readonly) {\n this.addRowCommands();\n }\n }\n\n /**\n * Deletes exchange rate.\n * @param id\n */\n public deleteExchangeRate(id: string): void {\n this.exchangeRatesCollection\n .entity(id)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.currencies.card.props.currencyExchangeRates.message.deleted',\n );\n this.listService.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Edits exchange rates.\n * @param exchangeRate\n */\n public editExchangeRate(exchangeRate?: CurrencyExchangeRate): void {\n const ref = this.modal.open(CurrencyExchangeRateSettingComponent, {\n size: 'sm',\n });\n ref.componentInstance.currencyId = this.currencyId;\n if (exchangeRate) {\n ref.componentInstance.exchangeRate = exchangeRate;\n }\n\n ref.result.then(\n () => this.listService.reload(),\n () => null,\n );\n }\n\n private addContextFilter(): void {\n this.listService.contextFilter = [\n { currencyId: { eq: { type: 'guid', value: this.currencyId } } },\n ];\n }\n\n private addRowCommands(): void {\n this.listService.rowCommands = [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.editExchangeRate(formGroup.getRawValue()),\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup) =>\n this.deleteExchangeRate(formGroup.value.id),\n },\n ];\n }\n\n private reload(): void {\n this.listService.reload();\n }\n}\n","\n\n
    \n
    \n
    \n \n  {{ 'shared.actions.create' | translate }}\n \n\n \n  {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n\n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n OnInit,\n inject,\n} from '@angular/core';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CurrencyService } from '../currency.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Component({\n selector: 'tmt-currency-main',\n templateUrl: './currency-main.component.html',\n styleUrls: ['./currency-main.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CurrencyMainComponent implements OnInit {\n public cardState$ = new BehaviorSubject(CardState.Loading);\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n alpha3Code: ['', [Validators.required, Validators.maxLength(3)]],\n isActive: new UntypedFormControl(false),\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId,\n private fb: UntypedFormBuilder,\n public actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n public service: CurrencyService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.actionService.action('save').start();\n\n const currency = this.form.value;\n\n const data: any = {\n name: currency.name,\n isActive: currency.isActive,\n alpha3Code: currency.alpha3Code,\n };\n\n this.service.entity\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.currencies.card.messages.saved',\n );\n this.service.updateName(this.form.value.name);\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n private load(): void {\n this.cardState$.next(CardState.Loading);\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n select: ['id', 'name', 'isActive', 'alpha3Code'],\n };\n\n this.service.entity.get(query).subscribe({\n next: (currency) => {\n this.form.patchValue(currency);\n\n if (this.service.readonly) {\n this.form.disable();\n } else {\n this.form.controls.alpha3Code.disable();\n }\n\n this.actionService.action('save').isShown = !this.service.readonly;\n this.cardState$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.cardState$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n}\n","\n\n\n
    \n
    \n \n \n
    \n
    \n \n \n {{ 'settings.currencies.card.props.code.help' | translate }} https://en.wikipedia.org/wiki/ISO_4217\n
    \n
    \n \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { DataService, Entity } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class CurrencyService {\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n public readonly: boolean;\n\n public get entity(): Entity {\n return this.data.collection('Currencies').entity(this.entityId);\n }\n\n constructor(\n @Inject('entityId') public entityId,\n private notification: NotificationService,\n private data: DataService,\n ) {\n this.reload();\n }\n\n /** Updates name in form. */\n public updateName(value: any) {\n this.nameSubject.next(value);\n }\n\n /** Reloads main properties. */\n public reload(): void {\n this.entity\n .get({ select: ['id', 'name', 'editAllowed'] })\n .subscribe({\n next: (currency) => {\n this.updateName(currency.name);\n this.readonly = !currency.editAllowed;\n },\n error: (error: Exception) => {\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-currency-creation',\n templateUrl: './currency-creation.component.html',\n standalone: false,\n})\nexport class CurrencyCreationComponent {\n isSaving = false;\n activityForm: UntypedFormGroup;\n\n private collection = this.data.collection('Currencies');\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {\n this.activityForm = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n alpha3Code: ['', [Validators.required, Validators.maxLength(3)]],\n });\n }\n\n public ok = () => {\n this.activityForm.markAllAsTouched();\n\n if (this.activityForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = this.activityForm.value;\n\n this.collection.insert(data).subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.currencies.creation.messages.created',\n );\n this.state.go('settings.currency', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.currencies.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n {{ 'settings.currencies.card.props.code.help' | translate }} https://en.wikipedia.org/wiki/ISO_4217\n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { CurrencyCardComponent } from './card/currency-card.component';\nimport { CurrencyListComponent } from './list/currency-list.component';\nimport { CurrencyCreationComponent } from './creation/currency-creation.component';\nimport { CURRENCY_LIST } from 'src/app/shared/lists/currency.list';\nimport { CurrencyExchangeRatesComponent } from 'src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rates.component';\nimport { CurrencyExchangeRateSettingComponent } from 'src/app/settings-app/currencies/card/currency-exchange-rates/currency-exchange-rate-setting/currency-exchange-rate-setting.component';\nimport { CurrencyMainComponent } from './card/currency-main/currency-main.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n CurrencyCardComponent,\n CurrencyListComponent,\n CurrencyCreationComponent,\n CurrencyExchangeRatesComponent,\n CurrencyExchangeRateSettingComponent,\n CurrencyMainComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.currencies',\n url: '/currencies',\n component: CurrencyListComponent,\n params: {\n navigation: 'settings.currencies',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CURRENCY_LIST },\n ],\n },\n\n {\n name: 'settings.currency',\n params: {\n navigation: 'settings.currencies',\n },\n url: '/currencies/{entityId:guid}',\n component: CurrencyCardComponent,\n redirectTo: 'settings.currency.main',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'settings.currency.main',\n url: '/main',\n component: CurrencyMainComponent,\n params: {\n routeMode: null,\n },\n },\n {\n name: 'settings.currency.exchangeRates',\n url: '/exchange-rates',\n component: CurrencyExchangeRatesComponent,\n params: {\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class CurrenciesModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { CurrencyCreationComponent } from '../creation/currency-creation.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-currency-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class CurrencyListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.currencies.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Currency',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.currency', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Currency', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(CurrencyCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CustomField } from 'src/app/shared/models/entities/settings/custom-field.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { CustomFieldCardService } from './custom-field-card.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormColumn } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Language } from 'src/app/shared/models/enums/language.enum';\nimport * as _ from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'wp-custom-field-card',\n templateUrl: './custom-field-card.component.html',\n styleUrl: './custom-field-card.component.scss',\n providers: [CustomFieldCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CustomFieldCardComponent implements OnInit {\n @Input() entityId: string;\n\n public field: CustomField;\n public state: CardState;\n public isSaving = false;\n public readonly: boolean;\n public typeName: string;\n public entityTypeName: string;\n public languages: NamedEntity[] = [\n {\n name: this.getLanguageName(Language.en.toLowerCase()),\n id: Language.en,\n },\n {\n name: this.getLanguageName(Language.ru.toLowerCase()),\n id: Language.ru,\n },\n ];\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n isActive: false,\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n localStrings: this.fb.array([]), // Determines labels and placeholders from configuration.\n configuration: this.fb.group({\n directoryId: null,\n isRequired: false,\n formColumn: null,\n orderNumber: null,\n defaultValue: null,\n }),\n isShownInEntityListFilters: false,\n isShownInEntityLists: false,\n isShownInEntityForms: false,\n isShownInReports: false,\n isOnlyForApi: false,\n });\n\n public availableFormColumns: { id: FormColumn; name: string }[] = [\n {\n id: 'Left',\n name: this.translate.instant('enums.formColumn.left'),\n },\n {\n id: 'Right',\n name: this.translate.instant('enums.formColumn.right'),\n },\n ];\n\n public get localStrings(): UntypedFormArray {\n return this.form.controls['localStrings'] as UntypedFormArray;\n }\n\n public get configuration(): UntypedFormGroup {\n return this.form.controls['configuration'] as UntypedFormGroup;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private cardService: CustomFieldCardService,\n private translate: TranslateService,\n private data: DataService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n private message: MessageService,\n private notification: NotificationService,\n private cdr: ChangeDetectorRef,\n private appService: AppService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.load();\n }\n\n /** Reloads form data. */\n public reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n /** Saves the custom field data.This method validates the form, prepares the data, and sends it to the server. */\n public save: () => void = () => {\n this.form.markAllAsTouched();\n this.cardService.detectChanges();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const formData = this.form.value;\n\n // Check for unique languages in localStrings.\n const localStrings = formData.localStrings as any[];\n if (\n _.uniq(localStrings.map((ls) => ls.language.id)).length !==\n localStrings.length\n ) {\n this.notification.warningLocal(\n 'settings.customFields.card.messages.languageMustBeUnique',\n );\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n // Prepare data for API.\n const data: any = {\n id: this.entityId,\n name: formData.name,\n isActive: formData.isActive,\n description: formData.description,\n entityType: this.field.entityType,\n type: this.field.type,\n directoryId: formData.configuration.directoryId,\n isShownInEntityListFilters: formData.isShownInEntityListFilters,\n isShownInEntityLists: formData.isShownInEntityLists,\n isShownInEntityForms: formData.isShownInEntityForms,\n isShownInReports: formData.isShownInReports,\n isOnlyForApi: formData.isOnlyForApi,\n };\n\n // Prepare configuration object.\n const cfg = {\n defaultValue: formData.configuration.defaultValue,\n isRequired: !!formData.configuration.isRequired,\n orderNumber: formData.configuration.orderNumber,\n formColumn: formData.configuration.formColumn.id,\n labels: [],\n placeholders: [],\n };\n\n // Process localStrings for labels and placeholders.\n (formData.localStrings).forEach((localString) => {\n cfg.labels.push({\n language: localString.language.id,\n value: localString.label,\n });\n if (localString.placeholder) {\n cfg.placeholders.push({\n language: localString.language.id,\n value: localString.placeholder,\n });\n }\n });\n\n data.configuration = cfg;\n\n this.data\n .collection('CustomFields')\n .entity(this.entityId)\n .update(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.customFields.card.messages.saved',\n );\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n this.cdr.detectChanges();\n },\n });\n };\n\n /**\n * Gets Localized Language name.\n *\n * @param lang Language key.\n * @returns Localized Language name.\n * */\n private getLanguageName(lang: string): string {\n return this.translate.instant(`enums.language.${lang}`);\n }\n\n /**\n * Loads the custom field data and populates the form.\n * This method is responsible for fetching the custom field data,\n * updating the form, and setting up the component's state.\n */\n private load: () => void = () => {\n this.form.reset(undefined, { emitEvent: false });\n this.localStrings.clear();\n\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.data\n .collection('CustomFields')\n .entity(this.entityId)\n .get()\n .subscribe({\n next: (field) => {\n this.field = field;\n this.form.patchValue(field);\n\n this.configuration.patchValue(field.configuration);\n this.configuration.controls['directoryId'].patchValue(\n field.directoryId,\n );\n\n // Update navigation.\n this.navigationService.addRouteSegment({\n id: field.id,\n title: field.name,\n });\n\n this.readonly = !field.editAllowed;\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n // Update action panel.\n this.actionService.action('save').isShown = !this.readonly;\n\n // Set translated type and entity type names.\n this.typeName = this.translate.instant(\n 'enums.metaEntityPropertyType.' + _.lowerFirst(field.type),\n );\n\n this.entityTypeName = this.appService.getMetaEntityDisplayName(\n field.entityType,\n );\n\n // Populate local strings (labels and placeholders).\n field.configuration.labels?.forEach((label) => {\n const lang = this.languages.find((l) => l.id === label.language);\n\n this.localStrings.push(\n this.fb.group({\n id: [Guid.generate()],\n language: [lang, Validators.required],\n label: [label.value, Validators.required],\n placeholder:\n field.configuration.placeholders.find(\n (ph) => ph.language === label.language,\n )?.value ?? null,\n }),\n );\n });\n\n if (field.configuration.formColumn) {\n this.configuration\n .get('formColumn')\n .setValue(\n this.availableFormColumns.find(\n (fc) => fc.id === field.configuration.formColumn,\n ),\n );\n }\n\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n}\n","\n\n\n\n\n\n
    \n
    \n
    \n \n

    {{ entityTypeName }}

    \n
    \n\n
    \n \n

    {{ typeName }}

    \n
    \n
    \n \n

    {{ field?.dataField }}

    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n @if (field) {\n \n }\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class CustomFieldCardService {\n public detectChanges$ = new Subject();\n\n public detectChanges() {\n this.detectChanges$.next();\n }\n\n public isRequiredFieldVisible(entityType: string): boolean {\n switch (entityType) {\n case 'ActOfAcceptance':\n case 'ExpenseRequest':\n case 'TimeSheetLine':\n case 'ProjectTask':\n case 'TimeAllocation':\n case 'ProjectVersion':\n case 'TimeOffRequest':\n case 'Certificate':\n case 'Issue':\n return false;\n default:\n return true;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { CustomFieldCardService } from 'src/app/settings-app/custom-fields/card/custom-field-card.service';\nimport {\n MetaEntityPropertyType,\n metaEntityStringPropertyTypes,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-field-configuration',\n templateUrl: './field-configuration.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FieldConfigurationComponent implements OnInit {\n @Input() formGroup: UntypedFormGroup;\n @Input() readonly: boolean;\n @Input() fieldType: MetaEntityPropertyType;\n @Input() fieldEntityType: string;\n @Input() public formColumns: NamedEntity[];\n\n public get isStringType(): boolean {\n return metaEntityStringPropertyTypes.includes(this.fieldType);\n }\n\n public readonly customFieldType = MetaEntityPropertyType;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public cardService: CustomFieldCardService,\n private gridService: GridService,\n ) {}\n\n public ngOnInit(): void {\n this.cardService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.gridService.detectChanges();\n });\n }\n}\n","\n \n\n
    \n
    \n @if (fieldEntityType !== 'TimeAllocation') {\n @if (isStringType) {\n
    \n \n \n
    \n }\n @if (fieldType === customFieldType.dateOnly) {\n
    \n \n \n
    \n }\n @if (fieldType === customFieldType.decimal) {\n
    \n \n \n
    \n }\n @if (fieldType === customFieldType.integer) {\n
    \n \n \n
    \n }\n }\n @if (fieldType === customFieldType.directory) {\n
    \n \n \n
    \n
    \n \n \n
    \n }\n
    \n
    \n @if (fieldEntityType !== 'TimeSheetLine') {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n @if (cardService.isRequiredFieldVisible(fieldEntityType)) {\n
    \n
    \n \n \n
    \n
    \n }\n
    \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { CustomFieldCardService } from '../custom-field-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-field-localization',\n templateUrl: './field-localization.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class FieldLocalizationComponent {\n @Input() localStrings: UntypedFormArray;\n @Input() readonly: boolean;\n @Input() languages: NamedEntity[];\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.localStrings.removeAt(index);\n this.localStrings.markAsDirty();\n },\n },\n ],\n view: {\n name: 'strings',\n columns: [\n {\n name: 'language',\n header: 'settings.customFields.card.columns.language.header',\n hint: 'settings.customFields.card.columns.language.hint',\n type: GridColumnType.SelectControl,\n placeholder: 'settings.customFields.card.columns.language.header',\n values: () => this.languages,\n width: '250px',\n },\n {\n name: 'label',\n header: 'settings.customFields.card.columns.label.header',\n hint: 'settings.customFields.card.columns.label.hint',\n type: GridColumnType.StringControl,\n placeholder: 'settings.customFields.card.columns.label.header',\n width: '50%',\n },\n {\n name: 'placeholder',\n header: 'settings.customFields.card.columns.placeholder.header',\n hint: 'settings.customFields.card.columns.placeholder.hint',\n type: GridColumnType.StringControl,\n placeholder: 'settings.customFields.card.columns.placeholder.header',\n width: '50%',\n },\n ],\n },\n };\n\n constructor(\n cardService: CustomFieldCardService,\n private fb: UntypedFormBuilder,\n private gridService: GridService,\n ) {\n cardService.detectChanges$.subscribe(() => {\n this.gridService.detectChanges();\n });\n }\n\n public addString() {\n const group = this.fb.group({\n id: [Guid.generate()],\n language: [null, Validators.required],\n label: ['', Validators.required],\n placeholder: [''],\n });\n this.localStrings.push(group);\n this.localStrings.markAsDirty();\n this.gridService.selectGroup(group);\n }\n}\n","\n
    \n \n \n {{ 'shared.actions.add' | translate }}\n \n
    \n\n\n","import { Component, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport _ from 'lodash';\nimport { MetaEntityPropertyType } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { LocalStringHelper } from 'src/app/shared/models/enums/language.enum';\n\n@Component({\n selector: 'wp-custom-field-creation',\n templateUrl: './custom-field-creation.component.html',\n standalone: false,\n})\nexport class CustomFieldCreationComponent implements OnInit {\n isSaving = false;\n form: UntypedFormGroup;\n\n public types: NamedEntity[] = [];\n public entityTypes: NamedEntity[] = [];\n\n public readonly customFieldType = MetaEntityPropertyType;\n\n private availableCustomFieldsTypes = [\n MetaEntityPropertyType.dateOnly,\n MetaEntityPropertyType.string,\n MetaEntityPropertyType.decimal,\n MetaEntityPropertyType.integer,\n MetaEntityPropertyType.directory,\n MetaEntityPropertyType.phone,\n MetaEntityPropertyType.url,\n MetaEntityPropertyType.email,\n ];\n\n constructor(\n fb: UntypedFormBuilder,\n translate: TranslateService,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private appService: AppService,\n ) {\n this.form = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n entityType: [null, [Validators.required]],\n type: [null, [Validators.required]],\n directoryId: [null, [Validators.required]],\n });\n\n // Заполнить список типов дополнительных полей.\n this.availableCustomFieldsTypes.forEach((type) => {\n this.types.push({\n name: translate.instant(\n 'enums.metaEntityPropertyType.' + _.lowerFirst(type),\n ),\n id: type,\n });\n });\n\n this.types.sort(naturalSort('name'));\n\n this.appService.session.configuration.metamodel?.entities\n .filter((entity) => entity.customizable)\n .forEach((entity) => {\n this.entityTypes.push({\n name: LocalStringHelper.getTranslate(\n entity.displayNames,\n this.appService.getLanguage(),\n ),\n id: entity.name,\n });\n });\n\n this.entityTypes.sort(naturalSort('name'));\n }\n\n public ngOnInit(): void {\n this.form.controls.type.valueChanges.subscribe((type) => {\n if (type?.id === this.customFieldType.directory) {\n this.form.controls.directoryId.setValidators(Validators.required);\n } else {\n this.form.controls.directoryId.removeValidators(Validators.required);\n this.form.controls.directoryId.setValue(null);\n }\n });\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n if (\n this.form.value.entityType.id === 'TimeSheetLine' &&\n this.form.value.type.id !== MetaEntityPropertyType.string\n ) {\n this.notification.warningLocal(\n 'settings.customFields.creation.messages.typesForLine',\n );\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.form.value.name,\n type: this.form.value.type.id,\n entityType: this.form.value.entityType.id,\n directoryId: this.form.value.directoryId,\n };\n\n this.data\n .collection('CustomFields')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.customFields.creation.messages.created',\n );\n this.state.go('settings.customField', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.customFields.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n @if (form.controls.type.value?.id === customFieldType.directory) {\n
    \n \n \n
    \n }\n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { CustomFieldCardComponent } from './card/custom-field-card.component';\nimport { CustomFieldListComponent } from './list/custom-field-list.component';\nimport { CustomFieldCreationComponent } from './creation/custom-field-creation.component';\nimport { CustomFieldList } from 'src/app/shared/lists/custom-field.list';\nimport { FieldLocalizationComponent } from './card/field-localization/field-localization.component';\nimport { FieldConfigurationComponent } from './card/field-configuration/field-configuration.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { NamingLocalizationModule } from 'src/app/settings-app/shared/naming-localization/naming-localization.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n CustomFieldCardComponent,\n CustomFieldListComponent,\n CustomFieldCreationComponent,\n FieldLocalizationComponent,\n FieldConfigurationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n NamingLocalizationModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.customFields',\n url: '/custom-fields',\n component: CustomFieldListComponent,\n params: {\n navigation: 'settings.customFields',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: CustomFieldList },\n ],\n },\n\n {\n name: 'settings.customField',\n params: {\n navigation: 'settings.customFields',\n },\n url: '/custom-fields/{entityId:guid}',\n component: CustomFieldCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class CustomFieldsModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { CustomFieldCreationComponent } from '../creation/custom-field-creation.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport _ from 'lodash';\n\n@Component({\n selector: 'wp-custom-field-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class CustomFieldListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n loadedSubscription: Subscription;\n\n constructor(\n private app: AppService,\n private translate: TranslateService,\n private state: StateService,\n private service: EntityListService,\n private listService: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.customFields.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'CustomField',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.customField', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.loadedSubscription = this.listService.pageLoaded$.subscribe(\n (rows: any[]) => {\n rows.forEach((row) => {\n if (row.type) {\n row.type = this.translate.instant(\n `enums.metaEntityPropertyType.${_.lowerFirst(row.type)}`,\n );\n }\n\n if (row.entityType) {\n row.entityType = this.app.getMetaEntityDisplayName(row.entityType);\n }\n });\n },\n );\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('CustomField', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(CustomFieldCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n this.loadedSubscription.unsubscribe();\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n ViewChildren,\n QueryList,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Department } from 'src/app/shared/models/entities/settings/department.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'wp-department-card',\n templateUrl: './department-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DepartmentCardComponent implements OnInit {\n @Input() entityId: string;\n\n public departmentForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n leadDepartment: [null],\n isActive: [false],\n role: null,\n });\n public readonly = !this.app.checkEntityPermission(\n 'Department',\n PermissionType.Modify,\n );\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving$ = new BehaviorSubject(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public app: AppService,\n private notification: NotificationService,\n private data: DataService,\n private message: MessageService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n private reload(): void {\n if (!this.departmentForm.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n /** Saves department. */\n public save(): void {\n this.departmentForm.markAllAsTouched();\n\n if (this.departmentForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const department = this.departmentForm.value;\n\n this.isSaving$.next(true);\n this.actionService.action('save').start();\n\n const data: any = {\n name: department.name,\n code: department.code,\n isActive: department.isActive,\n leadDepartmentId: department.leadDepartment\n ? department.leadDepartment.id\n : null,\n roleId: department.role?.id ?? null,\n };\n\n this.data\n .collection('Departments')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.departmentForm.markAsPristine();\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.departments.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n /** Loads Data. */\n public load(): void {\n this.departmentForm.markAsPristine();\n this.departmentForm.markAsUntouched();\n this.state$.next(CardState.Loading);\n\n this.data\n .collection('Departments')\n .entity(this.entityId)\n .get({\n expand: ['leadDepartment', { role: { select: ['name', 'id'] } }],\n })\n .subscribe((department: Department) => {\n this.departmentForm.patchValue(department);\n\n this.readonly = !department.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.readonly\n ? this.departmentForm.disable()\n : this.departmentForm.enable();\n this.state$.next(CardState.Ready);\n this.navigationService.addRouteSegment({\n id: department.id,\n title: department.name,\n });\n });\n }\n}\n","\n\n\n\n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-department-creation',\n templateUrl: './department-creation.component.html',\n standalone: false,\n})\nexport class DepartmentCreationComponent {\n isSaving = false;\n creationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = { name: this.creationForm.get('name').value };\n\n this.data\n .collection('Departments')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.departments.creation.created',\n );\n this.state.go('settings.department', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.departments.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { DepartmentListComponent } from './list/department-list.component';\nimport { DepartmentCreationComponent } from './creation/department-creation.component';\nimport { DepartmentList } from 'src/app/shared/lists/department.list';\nimport { DepartmentCardComponent } from './card/department-card.component';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n DepartmentCardComponent,\n DepartmentListComponent,\n DepartmentCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n ResourceRolesModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.departments',\n url: '/departments',\n component: DepartmentListComponent,\n params: {\n navigation: 'settings.departments',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: DepartmentList },\n ],\n },\n\n {\n name: 'settings.department',\n params: {\n navigation: 'settings.departments',\n },\n url: '/departments/{entityId:guid}',\n component: DepartmentCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class DepartmentsModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DepartmentCreationComponent } from '../creation/department-creation.component';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-department-list',\n template: '',\n providers: [\n {\n provide: FilterService,\n useClass: DefaultFilterService,\n },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class DepartmentListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private listService: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.departments.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Department',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.department', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Department', PermissionType.Modify);\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n\n private create = () => {\n this.modalService.open(DepartmentCreationComponent);\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n inject,\n OnInit,\n} from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { filter, merge } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { DIRECTORY_ENTRIES_LIST } from 'src/app/settings-app/directories/card/entries/model/directory-entries.list';\nimport { DirectoryCardService } from 'src/app/settings-app/directories/card/directory-card.service';\nimport { DirectoryEntriesToolbarComponent } from 'src/app/settings-app/directories/card/entries/toolbar/directory-entries-toolbar.component';\nimport { Order } from 'src/app/shared/models/inner/order';\n\n@Component({\n selector: 'tmt-directory-card',\n templateUrl: './directory-card.component.html',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: DIRECTORY_ENTRIES_LIST },\n EntityListService,\n ListService,\n GridService,\n SavingQueueService,\n DirectoryCardService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DirectoryCardComponent implements OnInit {\n public gridOptions: GridOptions;\n public cardState = CardState;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId,\n public gridService: GridService,\n public directoryCardService: DirectoryCardService,\n private actionPanelService: ActionPanelService,\n private listService: ListService,\n private filterService: FilterService,\n public savingQueueService: SavingQueueService,\n ) {}\n\n public ngOnInit(): void {\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((o: Order) => this.directoryCardService.orderChanged(o));\n this.savingQueueService.delayDuration = 0;\n this.actionPanelService.set([\n {\n title: 'shared2.actions.properties',\n hint: 'shared2.actions.properties',\n name: 'properties',\n isBusy: false,\n isVisible: true,\n handler: () => this.directoryCardService.openDirectoryPropertiesModal(),\n },\n ]);\n this.actionPanelService.setHasAutosave(true);\n\n this.prepareGridOptions();\n this.directoryCardService.loadDirectory();\n\n merge(\n this.filterService.values$,\n this.savingQueueService.error$,\n this.actionPanelService.reload$,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.directoryCardService.reload();\n });\n\n this.gridService.endOfPageReached$\n .pipe(\n filter((val) => !this.directoryCardService.loadedAll && val),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.directoryCardService.loadDirectoryEntriesPage());\n }\n\n private prepareGridOptions(): void {\n this.gridOptions = {\n toolbar: DirectoryEntriesToolbarComponent,\n selectionType: SelectionType.row,\n resizableColumns: true,\n sorting: true,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.directoryCardService.openDirectoryEntryModal();\n },\n allowedFn: () => !this.directoryCardService.readonly,\n },\n {\n name: 'edit',\n allowedFn: (group) => group && !this.directoryCardService.readonly,\n handlerFn: () => {\n this.directoryCardService.openDirectoryEntryModal(\n this.gridService.selectedGroupValue,\n );\n },\n },\n {\n name: 'delete',\n allowedFn: (group) => !!group && true,\n handlerFn: (id) => {\n this.directoryCardService.deleteDirectoryEntry(id);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n this.directoryCardService.openDirectoryEntryModal(\n group.getRawValue(),\n );\n },\n allowedFn: () => !this.directoryCardService.readonly,\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.directoryCardService.deleteDirectoryEntry(\n group.getRawValue().id,\n );\n },\n allowedFn: () => !this.directoryCardService.readonly,\n },\n ],\n view: this.listService.getGridView(),\n };\n }\n}\n","\n\n\n\n@if ((directoryCardService.state$ | async) === cardState.Ready) {\n \n}\n","import {\n ChangeDetectorRef,\n DestroyRef,\n Inject,\n Injectable,\n Injector,\n inject,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, filter, takeUntil } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport {\n Directory,\n DirectoryEntry,\n DirectoryEntryResponse,\n} from 'src/app/settings-app/directories/model/directory.model';\nimport { DirectoryEntryModalComponent } from 'src/app/settings-app/directories/card/entries/modal/directory-entry-modal.component';\nimport { DirectoryPropertiesModalComponent } from 'src/app/settings-app/directories/card/properties-modal/directory-properties-modal.component';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\n\n@Injectable()\nexport class DirectoryCardService {\n public formArray = this.fb.array([]);\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n\n private saveTabSubject = new Subject();\n public saveTab$ = this.saveTabSubject.asObservable();\n\n public totalsSubject = new Subject>();\n public totals$ = this.totalsSubject.asObservable();\n\n private _loadedAll = false;\n public get loadedAll(): boolean {\n return this._loadedAll;\n }\n\n public isGridLoading$ = new BehaviorSubject(false);\n\n public readonly: boolean;\n public directory: Directory;\n\n public directoriesCollection = this.data.collection('Directories');\n public directoryEntriesCollection = this.data.collection('DirectoryEntries');\n\n private pageSize = 50;\n private isStopSaving = false;\n private currentPage = 0;\n private currentTotals: Record;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') private entityId: string,\n private data: DataService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n private fb: UntypedFormBuilder,\n private blockUI: BlockUIService,\n public gridService: GridService,\n public savingQueueService: SavingQueueService,\n private modal: NgbModal,\n private injector: Injector,\n private filterService: FilterService,\n private actionPanelService: ActionPanelService,\n private cdr: ChangeDetectorRef,\n private listService: ListService,\n ) {}\n\n /**\n * Updates Name.\n *\n * @param value name of the directory.\n */\n public updateName(value: string): void {\n this.nameSubject.next(value);\n }\n\n /** Saves tab. */\n public saveTab(): void {\n this.saveTabSubject.next();\n }\n\n /**\n * Gets directories.\n *\n * @param entityId directory guid.\n * @param query query.\n *\n * @returns Returns directories observable.\n */\n public getDirectories(entityId: string, query?: any): Observable {\n return this.directoriesCollection.entity(entityId).get(query);\n }\n\n /** Deletes directory. */\n public delete(): void {\n this.messageService\n .confirmLocal('shared2.messages.deleteConfirmation')\n .then(\n () => {\n this.data\n .collection('Directories')\n .entity(this.entityId)\n .delete()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.directoryCardService.messages.deleted',\n );\n this.navigationService.goToSelectedNavItem(true);\n },\n error: (error: Exception) => {\n this.messageService.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Patches directory.\n *\n * @param id id.\n * @param value Partial .\n *\n * @returns Observable of directories.\n */\n public patchDirectory(\n id: string,\n value: Partial,\n ): Observable {\n return this.directoriesCollection.entity(id).patch(value);\n }\n\n /**\n * Patches directory entry.\n *\n * @param id directoryId.\n * @param value Partial .\n *\n * @returns Observable of directory entries.\n */\n public patchDirectoryEntry(\n id: string,\n value: Partial,\n ): Observable {\n return this.directoryEntriesCollection.entity(id).patch(value);\n }\n\n /** Loads directory. */\n public loadDirectory(): void {\n this.getDirectories(this.entityId, {\n select: [\n 'id',\n 'name',\n 'code',\n 'isActive',\n 'isSystem',\n 'description',\n 'editAllowed',\n ],\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (directory: Directory) => {\n this.directory = directory;\n this.updateName(directory.name);\n this.readonly = !directory.editAllowed;\n\n this.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: directory.id,\n title: directory.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Ready);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.state$.next(CardState.Error);\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n this.currentTotals = null;\n this.totalsSubject.next(this.currentTotals);\n this.currentPage = 0;\n this._loadedAll = false;\n this.formArray.clear();\n this.loadDirectory();\n this.loadDirectoryEntriesPage();\n }\n\n /** Loads directory entries. */\n public loadDirectoryEntriesPage(): void {\n if (this.isGridLoading$.getValue()) {\n return;\n }\n\n this.isGridLoading$.next(true);\n\n const query = {\n select: ['id', 'code', 'name', 'description', 'isActive'],\n filter: [\n this.filterService.getODataFilter(),\n { directoryId: { type: 'guid', value: this.entityId } },\n ],\n top: this.pageSize,\n skip: this.pageSize * this.currentPage,\n orderBy: this.getOrderBy(),\n count: true,\n };\n this.directoryEntriesCollection\n .query(query)\n .pipe(takeUntil(this.actionPanelService.reload$))\n .subscribe({\n next: (directoryEntryResponse: DirectoryEntryResponse) => {\n this.currentTotals = { name: directoryEntryResponse.count };\n this.totalsSubject.next(this.currentTotals);\n this._loadedAll = directoryEntryResponse.value.length < this.pageSize;\n this.currentPage++;\n\n this.isGridLoading$.next(false);\n directoryEntryResponse.value.forEach((entity) => {\n const group = this.getDirectoryEntryFormGroup(entity);\n this.formArray.push(group);\n });\n\n if (this.readonly) {\n this.formArray.disable({ emitEvent: false });\n }\n },\n error: (error: Exception) => {\n this.isGridLoading$.next(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Deletes directory entry.\n *\n * @param id directory id.\n */\n public deleteDirectoryEntry(id: string): void {\n this.blockUI.start();\n this.directoryEntriesCollection\n .entity(id)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === id,\n );\n this.formArray.controls.splice(index, 1);\n const groupForSelection =\n this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null;\n\n this.gridService.selectGroup(groupForSelection as UntypedFormGroup);\n\n this.gridService.detectChanges();\n this.currentTotals.name -= 1;\n this.totalsSubject.next(this.currentTotals);\n this.notificationService.successLocal(\n 'components.directoryCardService.messages.entryDeleted',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n /**\n * Edits directory entries.\n *\n * @param existingEntry existing directory entry.\n */\n public openDirectoryEntryModal(existingEntry?: DirectoryEntry): void {\n this.savingQueueService.save().then(() => {\n const ref = this.modal.open(DirectoryEntryModalComponent, {\n injector: this.injector,\n });\n ref.componentInstance.entityId = this.entityId;\n\n if (existingEntry) {\n ref.componentInstance.directoryEntry = existingEntry;\n }\n\n ref.result\n .then((directoryEntry) => {\n this.isStopSaving = true;\n if (existingEntry) {\n const foundFormGroup = this.formArray.controls.find(\n (control) => control.getRawValue().id === directoryEntry.id,\n );\n foundFormGroup.patchValue(directoryEntry);\n this.gridService.selectGroup(foundFormGroup as UntypedFormGroup);\n } else {\n const group = this.getDirectoryEntryFormGroup(directoryEntry);\n this.formArray.insert(0, group);\n this.gridService.selectGroup(group);\n this.currentTotals.name += 1;\n this.totalsSubject.next(this.currentTotals);\n }\n this.isStopSaving = false;\n })\n .catch(() => null);\n });\n }\n\n /**\n * Opens directory's properties modal with its properties.\n *\n * @param directory Directory.\n */\n public openDirectoryPropertiesModal(): void {\n const ref = this.modal.open(DirectoryPropertiesModalComponent, {\n injector: this.injector,\n });\n ref.componentInstance.directory = this.directory;\n ref.componentInstance.entityId = this.entityId;\n ref.componentInstance.readonly = this.readonly;\n\n ref.result\n .then((directory) => {\n this.isStopSaving = true;\n this.updateName(directory.name);\n this.directory = directory;\n this.isStopSaving = false;\n })\n .catch(() => null);\n }\n\n /**\n * Updates the order of the user view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n public orderChanged(order: Order): void {\n this.currentPage = 0;\n this.formArray.clear();\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.loadDirectoryEntriesPage();\n }\n\n private getDirectoryEntryFormGroup(\n directoryEntry?: DirectoryEntry,\n ): UntypedFormGroup {\n const formStructure = {\n id: directoryEntry?.id ?? null,\n name: [\n directoryEntry?.name ?? null,\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n code: [\n directoryEntry?.code ?? null,\n Validators.maxLength(Constants.formCodeMaxLength),\n ],\n description: directoryEntry?.description ?? null,\n isActive: directoryEntry?.isActive ?? null,\n };\n const group = this.fb.group(formStructure);\n group.valueChanges\n .pipe(\n filter(() => !this.isStopSaving),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (group.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.entityNotSaved',\n );\n return;\n }\n\n const entryValue = group.getRawValue();\n\n const entry: Partial = {\n name: entryValue.name,\n code: entryValue?.code,\n description: entryValue?.description,\n isActive: entryValue?.isActive,\n };\n\n this.savingQueueService.addToQueue(entryValue.id, () =>\n this.patchDirectoryEntry(entryValue.id, entry),\n );\n });\n\n return group;\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n private getOrderBy(): string {\n const { column, reverse } = this.gridService.order;\n\n switch (column) {\n case 'code':\n case 'description':\n case 'isActive':\n return `${column} ${reverse ? 'desc' : 'asc'}`;\n default:\n return column ? `name ${reverse ? 'desc' : 'asc'}` : 'name';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DirectoryEntry } from 'src/app/settings-app/directories/model/directory.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-directory-entry-modal',\n templateUrl: './directory-entry-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DirectoryEntryModalComponent implements OnInit {\n @Input() directoryEntry: DirectoryEntry;\n @Input() entityId: string;\n\n public isSaving: boolean;\n public form = this.fb.group({\n id: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: true,\n });\n\n private directoryEntitiesCollection =\n this.data.collection('DirectoryEntries');\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n if (this.directoryEntry) {\n this.form.patchValue(this.directoryEntry);\n }\n }\n\n /** Dismisses changes and closes modal. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /** Saves data and closes modal. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared2.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n if (this.directoryEntry) {\n this.editDirectoryEntry();\n } else {\n this.addDirectoryEntry();\n }\n }\n\n /**\n * Returns modal header.\n *\n * @returns Modal header as string.\n */\n public getHeader(): string {\n return this.directoryEntry\n ? 'components.directoryEntryModalComponent.props.editingHeader'\n : 'components.directoryEntryModalComponent.props.creationHeader';\n }\n\n /** Returns action button name. */\n public getActionBtnName(): string {\n return this.directoryEntry\n ? 'shared2.actions.save'\n : 'shared2.actions.create';\n }\n\n /** Adds directory entry. */\n private addDirectoryEntry(): void {\n const formData = this.form.value;\n const data = {\n id: formData?.id ?? Guid.generate(),\n name: formData?.name ?? null,\n code: formData?.code ?? null,\n description: formData?.description ?? null,\n isActive: formData?.isActive ?? null,\n directoryId: this.entityId,\n };\n\n this.directoryEntitiesCollection.insert(data).subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'components.directoryEntryModalComponent.messages.created',\n );\n this.activeModal.close(data);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n\n /** Edits directory entry. */\n private editDirectoryEntry(): void {\n const formData = this.form.value;\n const data = {\n name: formData?.name ?? null,\n code: formData?.code ?? null,\n description: formData?.description ?? null,\n isActive: formData?.isActive ?? null,\n };\n\n this.directoryEntitiesCollection\n .entity(formData.id)\n .patch(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'components.directoryEntryModalComponent.messages.edited',\n );\n this.activeModal.close(formData);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ getActionBtnName() | translate }}\n \n \n
    \n
    \n","import {\n GridColumnType,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const DIRECTORY_ENTRIES_LIST: List = {\n name: 'directoryEntries',\n version: 2,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 250,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.StringControl,\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n availableTotals: [TotalType.Count],\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'code',\n type: GridColumnType.StringControl,\n header: 'shared2.props.code',\n hint: 'shared2.props.code',\n fixedWidth: true,\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'description',\n type: GridColumnType.StringControl,\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.value',\n hint: 'shared2.props.isActive.hint',\n type: GridColumnType.BooleanControl,\n forceCellUpdating: true,\n },\n ],\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { DirectoryCardService } from 'src/app/settings-app/directories/card/directory-card.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-directory-entries-toolbar',\n templateUrl: './directory-entries-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DirectoryEntriesToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n public directoryCardService: DirectoryCardService,\n ) {\n super(gridService, cdr);\n }\n}\n","
    \n @if (!directoryCardService.readonly) {\n
    \n \n  {{ 'shared2.actions.create' | translate }}\n \n\n \n  {{ 'shared2.actions.edit' | translate }}\n \n\n \n \n \n
    \n }\n
    \n \n
    \n
    \n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Directory } from 'src/app/settings-app/directories/model/directory.model';\n\n@Component({\n selector: 'tmt-directory-properties-modal',\n templateUrl: './directory-properties-modal.component.html',\n standalone: false,\n})\nexport class DirectoryPropertiesModalComponent implements OnInit {\n @Input() directory: Directory;\n @Input() entityId: string;\n @Input() readonly: string;\n\n public isSaving = false;\n public creationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: true,\n isSystem: false,\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ngOnInit(): void {\n if (this.directory) {\n this.creationForm.patchValue(this.directory);\n }\n if (this.readonly || this.creationForm.value.isSystem === true) {\n this.creationForm.disable();\n }\n }\n\n /**\n * Returns modal header.\n *\n * @returns Modal header as string.\n */\n public getHeader(): string {\n return this.directory\n ? 'components.directoryPropertiesModalComponent.groups.editingHeader'\n : 'components.directoryPropertiesModalComponent.groups.creationHeader';\n }\n\n /** Returns action button name. */\n public getActionBtnName(): string {\n return this.directory ? 'shared2.actions.save' : 'shared2.actions.create';\n }\n\n /** Modal submit handler. */\n public ok(): void {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared2.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.creationForm.value.name,\n code: this.creationForm.value.code,\n description: this.creationForm.value.description,\n isActive: this.creationForm.value.isActive,\n isSystem: this.creationForm.value.isSystem,\n };\n\n if (this.directory) {\n this.dataService\n .collection('Directories')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.directoryPropertiesModalComponent.messages.saved',\n );\n this.isSaving = false;\n this.activeModal.close(data);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n } else {\n this.dataService\n .collection('Directories')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'components.directoryPropertiesModalComponent.messages.created',\n );\n this.stateService.go('settings.directory', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n }\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n \n \n
    \n\n @if (creationForm.getRawValue().isSystem) {\n

     {{ 'shared2.props.isSystem' | translate }}

    \n }\n
    \n
    \n
    \n \n {{ getActionBtnName() | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { DirectoriesListComponent } from 'src/app/settings-app/directories/list/directories-list.component';\nimport { DirectoryCardComponent } from 'src/app/settings-app/directories/card/directory-card.component';\nimport { DirectoryEntryModalComponent } from 'src/app/settings-app/directories/card/entries/modal/directory-entry-modal.component';\nimport { DirectoryEntriesToolbarComponent } from 'src/app/settings-app/directories/card/entries/toolbar/directory-entries-toolbar.component';\nimport { DirectoryPropertiesModalComponent } from 'src/app/settings-app/directories/card/properties-modal/directory-properties-modal.component';\nimport { DIRECTORIES_LIST } from 'src/app/settings-app/directories/model/directories.list';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n DirectoriesListComponent,\n DirectoryCardComponent,\n DirectoryPropertiesModalComponent,\n DirectoryEntryModalComponent,\n DirectoryEntriesToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n BaseSharedModule,\n CommentsModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.directories',\n url: '/directories',\n component: DirectoriesListComponent,\n params: {\n navigation: 'settings.directories',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: DIRECTORIES_LIST },\n ],\n },\n {\n name: 'settings.directory',\n params: {\n navigation: 'settings.directories',\n },\n url: '/directories/{entityId:guid}',\n component: DirectoryCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class DirectoriesModule {}\n","import {\n Component,\n OnInit,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DirectoryPropertiesModalComponent } from 'src/app/settings-app/directories/card/properties-modal/directory-properties-modal.component';\n\n@Component({\n selector: 'tmt-directories-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DirectoriesListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.directoriesListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'Directory',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.directory', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: UntypedFormGroup) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n (row &&\n this.appService.checkEntityPermission(\n 'Directory',\n PermissionType.Modify,\n ) &&\n row.value.isSystem === false) ||\n row?.controls.isSystem.value === false;\n });\n }\n\n private create(): void {\n this.modalService.open(DirectoryPropertiesModalComponent);\n }\n}\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const DIRECTORIES_LIST: List = {\n version: 2,\n name: 'directory',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'isSystem',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'settings.directory',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'code',\n header: 'shared2.props.code',\n hint: 'shared2.props.code',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n },\n {\n name: 'isSystem',\n header: 'shared2.props.isSystem',\n hint: 'shared2.props.isSystem',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isSystem',\n field: 'isSystem',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'Directories',\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { MessageService } from 'src/app/core/message.service';\n\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Component({\n selector: 'tmt-financial-account-card',\n templateUrl: './financial-account-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialAccountCardComponent implements OnInit {\n @Input() protected entityId: string;\n\n public cardState = signal(CardState.Loading);\n public isSaving = signal(false);\n public readonly = signal(false);\n public includeInBalanceShown = signal(true);\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: [false],\n isSystem: false,\n includedInBalance: false,\n });\n\n private readonly systemFields: Array = [\n 'name',\n 'code',\n 'description',\n 'isActive',\n 'isSystem',\n ];\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n private customFieldService: CustomFieldService,\n ) {\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.customFieldService.enrichFormGroup(this.form, 'FinancialAccount');\n }\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n }\n\n /** Saves Data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n this.actionPanelService.action('save').start();\n\n const account = this.form.value as FinancialAccount;\n\n const data: Partial = {\n name: account.name,\n code: account.code,\n description: account.description,\n isActive: account.isActive,\n includedInBalance: account.includedInBalance,\n };\n\n this.customFieldService.assignValues(data, account, 'FinancialAccount');\n\n this.dataService\n .collection('FinancialAccounts')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'components.financialAccountCardComponent.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n private load(): void {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.dataService\n .collection('FinancialAccounts')\n .entity(this.entityId)\n .get()\n .subscribe({\n next: (account: FinancialAccount) => {\n this.readonly.set(\n !account.editAllowed ||\n this.entityId === FinancialAccount.revenueId,\n );\n this.readonly() ? this.form.disable() : this.form.enable();\n\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n\n if (account.isSystem) {\n this.systemFields.forEach((key) => {\n this.form.get(key).disable();\n });\n }\n }\n\n const includedInBalanceHidden =\n account.typeId === FinancialAccountType.revenue.id ||\n [\n FinancialAccount.laborCostId,\n FinancialAccount.timeOffCostId,\n ].includes(account.id);\n\n if (includedInBalanceHidden) {\n this.includeInBalanceShown.set(false);\n }\n\n this.form.patchValue(account);\n this.actionPanelService.action('save').isShown = !this.readonly();\n this.cardState.set(CardState.Ready);\n this.navigationService.addRouteSegment({\n id: account.id,\n title: account.name,\n });\n },\n error: (error: Exception) => {\n this.cardState.set(CardState.Error);\n\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n\n this.notificationService.error(error.message);\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n\n\n\n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n\n @if (includeInBalanceShown()) {\n
    \n \n \n
    \n }\n\n
    \n \n \n
    \n\n @if (form.getRawValue()?.isSystem) {\n
    \n  {{ 'shared2.props.isSystem' | translate }}\n
    \n }\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport {\n FormControl,\n FormGroup,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\n\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\n\n@Component({\n selector: 'tmt-financial-account-creation',\n templateUrl: './financial-account-creation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialAccountCreationComponent {\n public isSaving = signal(false);\n public creationForm: UntypedFormGroup = new FormGroup({\n name: new FormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]),\n code: new FormControl('', [Validators.required]),\n });\n\n constructor(\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Creates financial account. */\n public create(): void {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n const data: Partial = {\n ...this.creationForm.getRawValue(),\n typeId: FinancialAccountType.expenses.id,\n };\n\n this.dataService\n .collection('FinancialAccounts')\n .insert(data)\n .subscribe({\n next: (response: FinancialAccount) => {\n this.notificationService.successLocal(\n 'components.financialAccountCreationComponent.messages.created',\n );\n this.stateService.go('settings.financialAccount', {\n entityId: response.id,\n });\n this.isSaving.set(false);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n /** Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.financialAccountCreationComponent.props.header' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { FINANCIAL_ACCOUNT_LIST } from 'src/app/shared/lists/finance-account.list';\n\nimport { FinancialAccountCardComponent } from './card/financial-account-card.component';\nimport { FinancialAccountCreationComponent } from './creation/financial-account-creation.component';\nimport { FinancialAccountListComponent } from './list/financial-account-list.component';\n\n@NgModule({\n declarations: [\n FinancialAccountListComponent,\n FinancialAccountCardComponent,\n FinancialAccountCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.financialAccounts',\n url: '/financial-accounts',\n component: FinancialAccountListComponent,\n params: {\n navigation: 'settings.financialAccounts',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: FINANCIAL_ACCOUNT_LIST },\n ],\n },\n\n {\n name: 'settings.financialAccount',\n params: {\n navigation: 'settings.financialAccounts',\n },\n url: '/financial-accounts/{entityId:guid}',\n component: FinancialAccountCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class FinancialAccountModule {}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\n\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\n\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\n\nimport { FinancialAccountCreationComponent } from '../creation/financial-account-creation.component';\n\n@Component({\n selector: 'tmt-expense-type-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FinancialAccountListComponent implements OnInit {\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n ) {\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed())\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n this.actionPanelService.action('delete').isShown =\n row &&\n row.controls.isSystem.value === false &&\n this.appService.checkEntityPermission(\n 'FinancialAccount',\n PermissionType.Modify,\n );\n });\n }\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'components.financialAccountListComponent.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'FinancialAccount',\n PermissionType.Modify,\n ),\n handler: () =>\n this.modalService.open(FinancialAccountCreationComponent),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.financialAccount', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n ]);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { GradeCardService } from './grade-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Grade } from 'src/app/shared/models/entities/settings/grade.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\n@Component({\n selector: 'wp-grade-card',\n templateUrl: './grade-card.component.html',\n providers: [GradeCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GradeCardComponent implements OnInit {\n @Input() entityId: string;\n\n public readonly: boolean;\n public isSaving$ = new BehaviorSubject(false);\n public gradeForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: '',\n level: [null, Validators.required],\n isActive: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public gradeCardService: GradeCardService,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private blockUIService: BlockUIService,\n ) {}\n\n public ngOnInit(): void {\n this.gradeForm.controls.name.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.gradeCardService.updateName(value));\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.gradeCardService.grade$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((grade: Grade) => {\n this.gradeForm.patchValue(grade);\n this.readonly = !grade.editAllowed;\n this.readonly ? this.gradeForm.disable() : this.gradeForm.enable();\n this.gradeForm.controls.level.disable();\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n if (!this.gradeForm.dirty) {\n this.gradeCardService.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.gradeForm.markAsPristine();\n this.gradeCardService.load();\n },\n () => null,\n );\n }\n }\n\n /** Saves data. */\n public save(): void {\n this.gradeForm.markAllAsTouched();\n\n if (this.gradeForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.actionPanelService.action('save').start();\n this.blockUIService.start();\n\n this.dataService\n .collection('Grades')\n .entity(this.entityId)\n .patch(this.gradeForm.value)\n .subscribe({\n next: () => {\n this.gradeForm.markAsPristine();\n this.isSaving$.next(false);\n this.actionPanelService.action('save').stop();\n this.blockUIService.stop();\n this.notificationService.successLocal(\n 'settings.grades.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.actionPanelService.action('save').stop();\n this.blockUIService.stop();\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n
    \n","import { DestroyRef, Inject, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Grade } from 'src/app/shared/models/entities/settings/grade.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class GradeCardService {\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private gradeNameSubject = new BehaviorSubject(null);\n public gradeName$ = this.gradeNameSubject.asObservable();\n\n private gradeSubject = new ReplaySubject();\n public grade$ = this.gradeSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public gradeId,\n private data: DataService,\n private notification: NotificationService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n ) {\n this.load();\n }\n\n /** Loads Data. */\n public load(): void {\n this.state$.next(CardState.Loading);\n\n const query = {\n select: ['id', 'name', 'code', 'isActive', 'editAllowed'],\n expand: {\n level: { select: ['id', 'name'] },\n },\n };\n\n this.data\n .collection('Grades')\n .entity(this.gradeId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (grade: Grade) => {\n this.state$.next(CardState.Ready);\n this.actionService.action('save').isShown = grade.editAllowed;\n this.gradeNameSubject.next(grade.name);\n this.gradeSubject.next(grade);\n\n this.navigationService.addRouteSegment({\n id: grade.id,\n title: grade.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n public updateName(value: string): void {\n this.gradeNameSubject.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-grade-creation',\n templateUrl: './grade-creation.component.html',\n standalone: false,\n})\nexport class GradeCreationComponent {\n isSaving = false;\n gradeForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: '',\n level: [null, Validators.required],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.gradeForm.markAllAsTouched();\n\n if (this.gradeForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const grade = this.gradeForm.value;\n\n const data = {\n name: grade.name,\n code: grade.code,\n levelId: grade.level.id,\n };\n\n this.data\n .collection('Grades')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.grades.creation.messages.created',\n );\n this.state.go('settings.grade', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.grades.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { GRADE_LIST } from 'src/app/shared/lists/grade.list';\nimport { GradeCreationComponent } from './creation/grade-creation.component';\nimport { GradeCardComponent } from './card/grade-card.component';\nimport { GradeListComponent } from './list/grades-list.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n GradeCardComponent,\n GradeListComponent,\n GradeCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.grades',\n url: '/grades',\n component: GradeListComponent,\n params: {\n navigation: 'settings.grades',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: GRADE_LIST },\n ],\n },\n\n {\n name: 'settings.grade',\n params: {\n navigation: 'settings.grades',\n },\n url: '/grades/{entityId:guid}',\n component: GradeCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class GradesModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GradeCreationComponent } from '../creation/grade-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-grades-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class GradeListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.grades.list.create',\n isVisible: this.app.checkEntityPermission(\n 'Grade',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.grade', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row && this.app.checkEntityPermission('Grade', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(GradeCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component } from '@angular/core';\nimport { GroupCardService } from './group-card.service';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'tmt-group-card',\n templateUrl: './group-card.component.html',\n providers: [GroupCardService],\n standalone: false,\n})\nexport class GroupCardComponent {\n public tabs: TabLink[] = [\n {\n state: 'settings.group.properties',\n header: 'settings.groups.card.tabs.properties',\n },\n {\n state: 'settings.group.users',\n header: 'settings.groups.card.tabs.users',\n },\n {\n state: 'settings.group.permissionSets',\n header: 'settings.groups.card.tabs.permissionSets',\n },\n ];\n\n constructor(\n public service: GroupCardService,\n public uiGlobals: UIRouterGlobals,\n ) {}\n}\n","\n\n\n\n\n
      \n
    • \n {{ tab.header | translate }}\n
    • \n
    \n\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Group } from 'src/app/shared/models/entities/settings/group.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class GroupCardService {\n public state$ = new BehaviorSubject(CardState.Loading);\n private groupNameSubject = new BehaviorSubject(null);\n public groupName$ = this.groupNameSubject.asObservable();\n\n constructor(\n @Inject('entityId') private entityId: string,\n private navigationService: NavigationService,\n private data: DataService,\n private notification: NotificationService,\n ) {\n this.loadCard();\n }\n\n public loadCard() {\n this.state$.next(CardState.Loading);\n this.load();\n }\n\n public load() {\n const query = {\n select: ['name'],\n };\n\n this.data\n .collection('Groups')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (group: Group) => {\n this.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: group.id,\n title: group.name,\n });\n\n this.groupNameSubject.next(group.name);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n public updateName(value: any) {\n this.groupNameSubject.next(value);\n }\n}\n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport { PermissionType } from '../../../../shared/models/inner/permission-type.enum';\nimport { MenuAction } from '../../../../shared/models/inner/menu-action';\nimport { NotificationService } from '../../../../core/notification.service';\nimport { MessageService } from '../../../../core/message.service';\nimport { BlockUIService } from '../../../../core/block-ui.service';\nimport { DataService } from '../../../../core/data.service';\nimport { AppService } from '../../../../core/app.service';\nimport { ActionPanelService } from '../../../../core/action-panel.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Exception } from '../../../../shared/models/exception';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-group-permissions',\n templateUrl: './group-permissions.component.html',\n styleUrls: ['./group-permissions.component.scss'],\n standalone: false,\n})\nexport class GroupPermissionsComponent implements OnInit {\n @Input() entityId: string;\n\n public isLoading: boolean;\n public get isSaving(): boolean {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n public readonly = !this.app.checkEntityPermission(\n 'Group',\n PermissionType.Modify,\n );\n public roles = this.app.getRolesEntities();\n public accessForm = this.fb.array([]);\n public actions: MenuAction[] = [\n {\n title: 'settings.groups.card.access.actions.save',\n hint: 'settings.groups.card.access.actions.save',\n name: 'save',\n isDropDown: false,\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ];\n private _isSaving: boolean;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private notification: NotificationService,\n private message: MessageService,\n private blockUI: BlockUIService,\n private data: DataService,\n private app: AppService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set(this.actions);\n\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n\n this.roles.forEach((role: any) => {\n role.query = { filter: [{ roleName: role.id }] };\n this.accessForm.push(this.fb.control(null));\n });\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Loading method. */\n public load = (): void => {\n this.isLoading = true;\n this.actionService.action('save').hide();\n\n const params = {\n select: ['id'],\n expand: [{ permissionSet: { select: ['id', 'name', 'roleName'] } }],\n };\n\n this.data\n .collection('Groups')\n .entity(this.entityId)\n .collection('GroupPermissionSets')\n .query(params)\n .subscribe({\n next: (data) => {\n this.roles.forEach((role: any, index: number) => {\n const loadedGroupSet: any = data.find(\n (groupSet: any) => groupSet.permissionSet.roleName === role.id,\n );\n this.accessForm\n .at(index)\n .setValue(loadedGroupSet ? loadedGroupSet.permissionSet : null);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly ? this.accessForm.disable() : this.accessForm.enable();\n this.accessForm.markAsPristine();\n this.accessForm.markAsUntouched();\n this.actionService.action('save').isShown = !this.readonly;\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n };\n\n /** Permission sets saving method. */\n public save(): void {\n this.isSaving = true;\n const data = { groupPermissionSets: [] as any };\n const sets = this.accessForm.value as any[];\n sets.forEach((set: any) => {\n if (!set) {\n return;\n }\n data.groupPermissionSets.push({\n groupId: this.entityId,\n permissionSetId: set.id,\n });\n });\n\n this.data\n .collection('Groups')\n .entity(this.entityId)\n .action('WP.UpdateGroupPermissionSets')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.groups.card.access.messages.saved',\n );\n this.accessForm.markAsPristine();\n this.isSaving = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n private reload(): void {\n if (!this.accessForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.groups.card.access.role' | translate }}\n \n {{ 'settings.groups.card.access.permissionSet' | translate }}\n
    {{ role.name | translate }}:\n \n \n
    \n\n
    \n \n {{ 'settings.groups.card.access.actions.save' | translate }}\n \n
    \n
    \n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Group } from 'src/app/shared/models/entities/settings/group.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { GroupCardService } from '../group-card.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-group-properties',\n templateUrl: './group-properties.component.html',\n styleUrls: ['./group-properties.component.scss'],\n standalone: false,\n})\nexport class GroupPropertiesComponent implements OnInit, OnDestroy {\n public readonly: boolean;\n public isSaving = false;\n\n groupForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: [false],\n });\n state$ = new Subject();\n destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') private entityId: string,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private service: GroupCardService,\n ) {\n actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.groupForm.controls.name.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() =>\n this.service.updateName(this.groupForm.controls.name.value),\n );\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.load();\n }\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n // Загрузка данных.\n private load = () => {\n this.state$.next(CardState.Loading);\n this.groupForm.markAsPristine();\n this.groupForm.markAsUntouched();\n\n this.data\n .collection('Groups')\n .entity(this.entityId)\n .get(null)\n .subscribe({\n next: (group: Group) => {\n this.groupForm.patchValue(group);\n\n this.readonly = !group.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly ? this.groupForm.disable() : this.groupForm.enable();\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n };\n\n public reload() {\n if (!this.groupForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n // Сохранение данных.\n public save = (): void => {\n this.groupForm.markAllAsTouched();\n\n if (this.groupForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const group = this.groupForm.value;\n\n const data: any = {\n name: group.name,\n description: group.description,\n isActive: group.isActive,\n };\n\n this.data\n .collection('Groups')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.groupForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal('settings.groups.card.messages.saved');\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n}\n","\n\n\n\n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { EntityType } from '../../../../../shared-features/resource-roles/enums/entity-type.enum';\nimport { Dictionary } from '../../../../../shared/models/dictionary';\nimport { Group } from '../../../../../shared/models/entities/settings/group.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { AppService } from '../../../../../core/app.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NotificationService } from '../../../../../core/notification.service';\nimport { DataService } from '../../../../../core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { sortBy } from 'lodash';\nimport { Exception } from '../../../../../shared/models/exception';\nimport { Constants } from '../../../../../shared/globals/constants';\nimport { User } from '../../../../../shared/models/entities/settings/user.model';\nimport { switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'tmt-app-add-user-to-group-modal',\n templateUrl: './add-user-to-group-modal.component.html',\n styleUrls: ['./add-user-to-group-modal.component.scss'],\n standalone: false,\n})\nexport class AddUserToGroupModalComponent implements OnInit {\n public loadLimit = 250;\n /** Entity for which groups are selected. */\n @Input() entityType: EntityType;\n /** Id of the entity for which the groups are selected. */\n @Input() entityId: string;\n\n /** IDs of previously added roles. */\n @Input() alreadyAddedIds: string[] = [];\n @ViewChild('leftTbl') leftTbl: ElementRef;\n\n public isSaving: boolean;\n public isLoading: boolean;\n public loadedPartly: boolean;\n\n public leftTableStyles: Dictionary = {};\n\n public availableUsers: User[] = [];\n public selectedUsers: User[] = [];\n\n public filterForm = this.fb.group({\n name: [''],\n });\n private loadingSubscription: Subscription;\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit() {\n this.load();\n this.filterForm.valueChanges.subscribe(() => this.load());\n }\n\n /** Method that close modal on cancel button. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /** Method that resize left table. */\n public resizeLeftTbl() {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n /** Method that select user. */\n public selectUser(user: User, index: number) {\n this.selectedUsers.push(user);\n this.selectedUsers = sortBy(this.selectedUsers, ['name']);\n this.availableUsers.splice(index, 1);\n }\n\n /** Method that remove group. */\n public removeUser(user: User, index: number) {\n this.availableUsers.push(user);\n this.selectedUsers.splice(index, 1);\n this.availableUsers = sortBy(this.availableUsers, ['name']);\n }\n\n /** Method that close modal on ok button. */\n public ok() {\n this.activeModal.close(this.selectedUsers);\n }\n\n private load() {\n this.availableUsers = [];\n this.isLoading = true;\n this.loadedPartly = false;\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.loadUsers().subscribe({\n next: (data) => {\n data = data.filter(\n (user) =>\n this.selectedUsers.find((u) => u.id === user.id) == null &&\n this.alreadyAddedIds.find((id) => id === user.id) == null,\n );\n this.availableUsers = data;\n this.isLoading = false;\n this.loadedPartly = this.availableUsers.length === this.loadLimit;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n private loadUsers(): Observable {\n const usersQuery = {\n orderBy: ['name'],\n expand: {\n department: {\n select: ['name'],\n },\n resourcePool: {\n select: ['name'],\n },\n },\n filter: [{ isActive: true }],\n };\n const defaultFilter = this.filterForm.value;\n if (defaultFilter.name) {\n const text = (defaultFilter.name as string)\n .substring(0, Constants.filterInputLengthLimit)\n .toLowerCase();\n usersQuery.filter.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(code)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(email)': { contains: text } },\n ],\n });\n }\n return this.data\n .collection('Groups')\n .entity(this.entityId)\n .get()\n .pipe(\n switchMap(() =>\n this.data.collection('Users').query(usersQuery),\n ),\n );\n }\n}\n","
    \n
    \n

    \n {{ 'components.addUserToGroupModalComponent.props.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n {{ 'shared2.props.user' | translate }}\n \n {{ 'shared2.props.department' | translate }}\n \n {{ 'shared2.props.resourcePool' | translate }}\n
    \n\n
    \n \n \n \n \n {{ 'shared2.props.user' | translate }}\n \n \n {{ 'shared2.props.department' | translate }}\n \n \n {{ 'shared2.props.resourcePool' | translate }}\n \n \n \n \n \n \n \n
    {{ user.name }}
    \n \n \n {{ user.department?.name ?? '' }}\n \n \n {{ user.resourcePool?.name ?? '' }}\n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n {{ 'shared2.messages.showFirstNRecordsMessage' | translate: { limit: loadLimit }\n }}
    \n {{ 'shared2.messages.refineQueryMessage' | translate }}\n \n \n \n \n \n
    \n\n
    \n \n \n
    \n {{ user.name }}\n
    \n\n \n
    \n
    \n {{ 'shared2.messages.noDisplayData' | translate }}\n
    \n
    \n \n
    \n 0\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"ok()\"\n wpButtonSpinner\n [isBusy]=\"isSaving\"\n >\n {{ 'shared2.actions.add' | translate }}\n \n \n
    \n
    \n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { UserFilterService } from 'src/app/settings-app/users/list/user-filter/user-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { USER_LIST } from 'src/app/shared/lists/user.list';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { LIST, MULTI_SELECT_LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { PermissionType } from '../../../../shared/models/inner/permission-type.enum';\nimport { ActionPanelService } from '../../../../core/action-panel.service';\nimport { AppService } from '../../../../core/app.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AddUserToGroupModalComponent } from './add-user-to-group-modal/add-user-to-group-modal.component';\nimport { User } from '../../../../shared/models/entities/settings/user.model';\nimport { DataService } from '../../../../core/data.service';\nimport { Subject, firstValueFrom } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { UserGroup } from '../../../../shared/models/entities/settings/user-group.model';\nimport { MessageService } from '../../../../core/message.service';\nimport { MassOperationHelper } from 'src/app/shared/helpers/mass-operation.helper';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-group-users',\n templateUrl: './group-users.component.html',\n styleUrls: ['./group-users.component.scss'],\n providers: [\n { provide: VIEW_NAME, useValue: 'inGroup' },\n { provide: LIST, useValue: USER_LIST },\n { provide: FilterService, useClass: UserFilterService },\n { provide: MULTI_SELECT_LIST, useValue: true },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class GroupUsersComponent implements OnInit, OnDestroy {\n private destroyed$ = new Subject();\n\n constructor(\n @Inject('entityId') private entityId: string,\n public entityListService: EntityListService,\n private actions: ActionPanelService,\n private app: AppService,\n private modalService: NgbModal,\n private dataService: DataService,\n private gridService: GridService,\n private messageService: MessageService,\n private filterService: FilterService,\n private blockUI: BlockUIService,\n ) {\n entityListService.contextFilter = [\n {\n userGroups: {\n any: {\n groupId: { type: 'guid', value: this.entityId },\n },\n },\n },\n ];\n }\n\n public ngOnInit(): void {\n this.actions.set([\n {\n title: 'settings.users.list.actions.add',\n hint: 'settings.users.list.actions.add',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'UserGroup',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n },\n {\n title: 'shared.actions.exclude',\n hint: 'shared.actions.exclude',\n name: 'exclude',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.exclude(),\n },\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((groups) => {\n this.actions.action('exclude').isShown =\n groups?.length > 0 &&\n this.app.checkEntityPermission('UserGroup', PermissionType.Modify);\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private create(): void {\n const modalRef = this.modalService.open(AddUserToGroupModalComponent, {\n size: 'lg',\n });\n const instance = modalRef.componentInstance as AddUserToGroupModalComponent;\n\n instance.entityId = this.entityId;\n instance.alreadyAddedIds = this.entityListService.formArray.value.map(\n (u: User) => u.id,\n );\n\n modalRef.result.then(\n (users: User[]) => {\n this.blockUI.start();\n\n const massOperation = new MassOperationHelper(\n users.map((user) =>\n this.dataService\n .collection('UserGroups')\n .insert({ groupId: this.entityId, userId: user.id }),\n ),\n { takeUntil: takeUntil(this.destroyed$) },\n )\n .start()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((progress) => {\n if (progress === 100) {\n this.entityListService.reload();\n this.blockUI.stop();\n massOperation.unsubscribe();\n }\n });\n },\n () => null,\n );\n }\n\n private exclude(): void {\n this.messageService\n .confirmLocal('shared.excludeConfirmation')\n .then(async () => {\n this.blockUI.start();\n\n let selectedRows = this.gridService.selectedGroupsValue;\n\n if (this.gridService.isAllSelected) {\n selectedRows = await firstValueFrom(\n this.dataService.collection('Users').query({\n select: ['id'],\n filter: [\n ...this.filterService.getODataFilter(),\n ...this.entityListService.contextFilter,\n ],\n }),\n );\n }\n\n const massOperation = new MassOperationHelper(\n selectedRows.map((user) =>\n this.dataService\n .collection('UserGroups')\n .query({\n filter: {\n userId: {\n type: 'guid',\n value: user.id,\n },\n groupId: {\n type: 'guid',\n value: this.entityId,\n },\n },\n })\n .pipe(\n switchMap((userGroups: UserGroup[]) =>\n this.dataService\n .collection('UserGroups')\n .entity(userGroups[0].id)\n .delete(),\n ),\n ),\n ),\n {\n takeUntil: takeUntil(this.destroyed$),\n delay: selectedRows.length > 100 ? 100 : 0,\n },\n )\n .start()\n .pipe(takeUntil(this.destroyed$))\n .subscribe((progress) => {\n if (progress === 100) {\n this.entityListService.reload();\n this.blockUI.stop();\n massOperation.unsubscribe();\n }\n });\n });\n }\n}\n","\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-group-creation',\n templateUrl: './group-creation.component.html',\n standalone: false,\n})\nexport class GroupCreationComponent {\n isSaving = false;\n groupForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.groupForm.markAllAsTouched();\n\n if (this.groupForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = { name: this.groupForm.get('name').value };\n\n this.data\n .collection('Groups')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.groups.creation.messages.created',\n );\n this.state.go('settings.group', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.groups.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { GroupCardComponent } from './card/group-card.component';\nimport { GroupListComponent } from './list/group-list.component';\nimport { GroupCreationComponent } from './creation/group-creation.component';\nimport { GROUP_LIST } from 'src/app/shared/lists/group.list';\nimport { GroupUsersComponent } from './card/group-users/group-users.component';\nimport { GroupPermissionsComponent } from './card/group-permissions/group-permissions.component';\nimport { GroupPropertiesComponent } from './card/group-properties/group-properties.component';\nimport { AddUserToGroupModalComponent } from './card/group-users/add-user-to-group-modal/add-user-to-group-modal.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n GroupCardComponent,\n GroupListComponent,\n GroupCreationComponent,\n GroupUsersComponent,\n GroupPermissionsComponent,\n GroupPropertiesComponent,\n AddUserToGroupModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.groups',\n url: '/groups',\n component: GroupListComponent,\n params: {\n navigation: 'settings.groups',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: GROUP_LIST },\n ],\n },\n\n {\n name: 'settings.group',\n params: {\n navigation: 'settings.groups',\n },\n url: '/groups/{entityId:guid}',\n redirectTo: 'settings.group.properties',\n component: GroupCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'settings.group.properties',\n url: '/properties',\n component: GroupPropertiesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.group.users',\n url: '/users',\n component: GroupUsersComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.group.permissionSets',\n url: '/permissionSets',\n component: GroupPermissionsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class GroupsModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GroupCreationComponent } from '../creation/group-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-group-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class GroupListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.groups.list.create',\n isVisible: this.app.checkEntityPermission(\n 'Group',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.group', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Group', PermissionType.Modify) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(GroupCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DateTime } from 'luxon';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { HistoryLogEntry } from 'src/app/shared/models/entities/settings/history-log-entry.model';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-history-log-card',\n templateUrl: './history-log-card.component.html',\n standalone: false,\n})\nexport class HistoryLogCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public state: CardState;\n\n logEntry: HistoryLogEntry;\n destroyed$ = new Subject();\n name$ = new Subject();\n\n constructor(\n public appService: AppService,\n private data: DataService,\n private actionService: ActionPanelService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n ngOnInit() {\n this.actionService.set([]);\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.load());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private load() {\n this.state = CardState.Loading;\n\n this.data\n .collection('HistoryLogEntries')\n .entity(this.entityId)\n .get({\n expand: {\n user: { select: ['id', 'name'] },\n },\n })\n .subscribe({\n next: (logEntry: HistoryLogEntry) => {\n this.logEntry = logEntry;\n const name = `${logEntry.entityType} / ${logEntry.type}`;\n this.name$.next(name);\n\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: name,\n });\n\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n
    \n
    \n
    \n
    \n \n
    \n {{ logEntry.type }}\n
    \n
    \n\n
    \n \n
    \n {{ logEntry.entityType }}\n
    \n
    \n\n
    \n \n
    \n {{ logEntry.entityName }}\n
    \n
    \n
    \n
    \n
    \n \n
    \n {{ logEntry.created | date: 'medium' : this.appService.session.timeZoneOffset }}\n
    \n
    \n\n
    \n \n
    \n {{ logEntry.user?.name }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.historyLog.card.props.property' | translate }}\n \n {{ 'settings.historyLog.card.props.oldValue' | translate }}\n \n {{ 'settings.historyLog.card.props.newValue' | translate }}\n
    \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n
    \n {{ change.propertyName }}\n \n {{ change.oldValue }}\n \n {{ change.newValue }}\n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.historyLog.card.props.entityType' | translate }}\n \n {{ 'settings.historyLog.card.props.entityId' | translate }}\n
    \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n
    \n {{ attribute.entityType }}\n \n {{ attribute.entityId }}\n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { HistoryLogListComponent } from './list/history-log-list.component';\nimport { HISTORY_LOG } from 'src/app/shared/lists/history-log.list';\nimport { HistoryLogFilterComponent } from './list/history-log-filter/history-log-filter.component';\nimport { HistoryLogCardComponent } from 'src/app/settings-app/history-log/card/history-log-card.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n HistoryLogListComponent,\n HistoryLogFilterComponent,\n HistoryLogCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.historyLog',\n url: '/history-log',\n component: HistoryLogListComponent,\n params: {\n navigation: 'settings.historyLog',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: HISTORY_LOG },\n ],\n },\n {\n name: 'settings.historyLogCard',\n params: {\n navigation: 'settings.historyLog',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n url: '/history-log/{entityId:guid}?{navigation}&{route}',\n component: HistoryLogCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class HistoryLogModule {}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Component({\n selector: 'tmt-history-log-filter',\n templateUrl: './history-log-filter.component.html',\n standalone: false,\n})\nexport class HistoryLogFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n public collectionName: string;\n\n detailsForm = this.fb.group({\n user: null,\n period: null,\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n public service: FilterService,\n public app: AppService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n\n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { HistoryLogFilterComponent } from './history-log-filter.component';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\n\n@Injectable()\nexport class EventLogFilterService extends FilterService {\n public override component: Type = HistoryLogFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'settings.historyLog.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n period: null,\n user: null,\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n if (this.values.user) {\n result.push({\n userId: {\n type: 'guid',\n value: this.values.user.id,\n },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n true,\n );\n\n result.push({\n created: { le: { type: 'raw', value: dates.periodFinish } },\n });\n\n result.push({\n created: { ge: { type: 'raw', value: dates.periodStart } },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Dictionary {\n let text = this.values.text as string;\n\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n return {\n term: text,\n };\n } else {\n return null;\n }\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { EventLogFilterService } from './history-log-filter/history-log-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-history-log-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: EventLogFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class HistoryLogListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private state: StateService,\n private gridService: GridService,\n private actions: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.historyLogCard', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n Injector,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\n\nimport {\n Import,\n ImportState,\n ImportStates,\n} from 'src/app/shared/models/entities/settings/import.model';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ImportEntityList } from 'src/app/shared/lists/import-entities.list';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { ImportFilterService } from './import-filter.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { saveAs } from 'file-saver';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { HttpClient } from '@angular/common/http';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BehaviorSubject, concatMap, interval, Observable } from 'rxjs';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'wp-import-card',\n templateUrl: './import-card.component.html',\n providers: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ImportEntityList },\n { provide: FilterService, useClass: ImportFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ImportCardComponent implements OnInit, OnDestroy {\n @Input() private entityId: string;\n\n public importEntity: Import;\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private observableTimer: Observable;\n\n private destroyRef = inject(DestroyRef);\n\n /** Класс индикатора статуса. */\n public get labelClass(): string {\n return ImportStates.find((as) => as.code === this.importEntity?.state.code)\n ?.class;\n }\n\n constructor(\n public appService: AppService,\n private message: MessageService,\n private httpClient: HttpClient,\n private data: DataService,\n private blockUI: BlockUIService,\n private notification: NotificationService,\n private entityListService: EntityListService,\n private actions: ActionPanelService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {\n this.observableTimer = interval(1500);\n }\n\n public ngOnInit(): void {\n this.entityListService.contextFilter = [\n {\n importId: { type: 'guid', value: this.entityId },\n },\n ];\n\n this.actions.set([\n {\n title: 'settings.imports.card.actions.downloadLog',\n hint: 'settings.imports.card.actions.downloadLog',\n name: 'loadLog',\n isDropDown: false,\n iconClass: 'bi bi-download',\n isBusy: false,\n isVisible: false,\n handler: this.loadImportLogs,\n },\n ]);\n\n this.reload();\n }\n\n public ngOnDestroy(): void {\n this.entityListService.dispose();\n }\n\n /** Opens popUp with user info. */\n public openUserInfo(): void {\n const userId = this.importEntity?.createdBy.id;\n const target = document.getElementById('author');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n this.state$.next(CardState.Loading);\n this.data\n .collection('Imports')\n .entity(this.entityId)\n .get({\n expand: {\n state: { select: ['id', 'code', 'name'] },\n createdBy: { select: ['id', 'name'] },\n },\n })\n .subscribe({\n next: (importEntity: Import) => {\n this.importEntity = importEntity;\n this.state$.next(CardState.Ready);\n\n if (importEntity.state.id === ImportState.importing.id) {\n this.subscribeToStateUpdating();\n } else {\n this.actions.action('loadLog').show();\n this.entityListService.reload();\n }\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n private subscribeToStateUpdating(): void {\n const observableImport = this.observableTimer\n .pipe(\n concatMap(() =>\n this.data.collection('Imports').entity(this.entityId).get({\n select: 'stateId',\n }),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (importObj: any) => {\n if (importObj.stateId === ImportState.imported.id) {\n observableImport.unsubscribe();\n this.reload();\n }\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n private loadImportLogs = (): void => {\n const url = `${AppConfigService.config.api.url}/Imports/DownloadImportLog?importId=${this.entityId}`;\n this.blockUI.start();\n\n this.httpClient.get(url, { responseType: 'blob' }).subscribe({\n next: (data) => {\n saveAs(data, 'Report Log.xlsx');\n this.blockUI.stop();\n },\n error: async (error) => {\n const isPromise = !!error && typeof error.then === 'function';\n\n if (isPromise) {\n const errorText = await error;\n const errorObj = JSON.parse(errorText);\n this.message.error(errorObj.error.message);\n this.blockUI.stop();\n } else {\n this.message.error(error.message);\n this.blockUI.stop();\n }\n },\n });\n\n this.blockUI.stop();\n };\n}\n","\n\n\n\n
    \n
    \n
    \n {{ importEntity?.state.name }}\n
    \n\n
    \n {{ 'shared.props.createdBy' | translate }}:\n
    \n \n
    \n
    \n\n
    \n {{ 'shared.props.created' | translate }}:\n {{\n importEntity?.created | date: 'short' : this.appService.session.timeZoneOffset\n }}\n
    \n
    \n
    \n\n
    \n","import { Injectable } from '@angular/core';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\n\n@Injectable()\nexport class ImportFilterService extends DefaultFilterService {\n public override hasViewSelector = false;\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n result.push({ 'tolower(entityName)': { contains: text } });\n }\n return result;\n }\n\n protected override getDefaultValues = (): any => ({\n text: '',\n view: this.views[0],\n });\n\n public override getDatePeriodParams(): void {}\n}\n","import { Component } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-import-creation',\n templateUrl: './import-creation.component.html',\n styleUrls: ['./import-creation.component.scss'],\n standalone: false,\n})\nexport class ImportCreationComponent {\n isSaving = false;\n\n files: File[] = [];\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n onSelect(event) {\n const file = event.addedFiles[0];\n\n if (!file) {\n this.notification.warningLocal('shared.messages.attachmentIsWrong');\n return;\n }\n\n this.files = [];\n this.files.push(...event.addedFiles);\n }\n\n onRemove(event) {\n this.files.splice(this.files.indexOf(event), 1);\n }\n\n public ok = () => {\n this.isSaving = true;\n\n const file = this.files[0];\n const formData: FormData = new FormData();\n formData.append('attachment', file, file.name);\n\n this.data\n .collection('Imports')\n .action('Import')\n .execute(formData)\n .subscribe({\n next: (response) => {\n this.state.go('settings.import', { entityId: response });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.imports.creation.header' | translate }}\n

    \n \n
    \n
    \n

    {{ 'settings.imports.creation.steps.downloadTemplate.header' | translate }}

    \n import-template.xlsx\n\n

    {{ 'settings.imports.creation.steps.fillOut.header' | translate }}

    \n

    {{ 'settings.imports.creation.steps.fillOut.help' | translate }}

    \n \n\n

    {{ 'settings.imports.creation.steps.selectFile' | translate }}

    \n \n \n \n {{ 'shared.orDragFileHere' | translate }}\n \n \n {{ f.name }}\n \n \n
    \n
    \n \n {{ 'settings.imports.creation.actions.import' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ImportCardComponent } from './card/import-card.component';\nimport { ImportListComponent } from './list/import-list.component';\nimport { ImportCreationComponent } from './creation/import-creation.component';\nimport { ImportList } from 'src/app/shared/lists/import.list';\nimport { ImportStateCellComponent } from './list/import-state-cell/import-state-cell.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ImportCardComponent,\n ImportListComponent,\n ImportCreationComponent,\n ImportStateCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.imports',\n url: '/imports',\n params: {\n navigation: 'settings.imports',\n },\n component: ImportListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ImportList },\n ],\n },\n\n {\n name: 'settings.import',\n params: {\n navigation: 'settings.imports',\n },\n url: '/imports/{entityId:guid}',\n component: ImportCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ImportsModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { ImportCreationComponent } from '../creation/import-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-imports-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ImportListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n filterService: FilterService,\n ) {\n filterService.hasViewSelector = false;\n }\n\n ngOnInit() {\n this.actions.set([\n {\n title: 'settings.imports.list.actions.import',\n hint: 'settings.imports.list.actions.import',\n name: 'create',\n isDropDown: false,\n iconClass: 'bi bi-plus-lg bi-15',\n isBusy: false,\n isVisible: this.app.checkEntityPermission(\n 'Import',\n PermissionType.Modify,\n ),\n handler: this.create,\n },\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.import', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(ImportCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { ImportStates } from 'src/app/shared/models/entities/settings/import.model';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-import-state-cell',\n templateUrl: './import-state-cell.component.html',\n standalone: false,\n})\nexport class ImportStateCellComponent implements OnInit, GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n public labelClass: string;\n\n ngOnInit() {\n this.labelClass = ImportStates.find(\n (as) => as.code === this.control.value.code,\n ).class;\n }\n}\n","{{ control.value.name }}\n","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n InvoiceTemplate,\n PageSize,\n PageOrientation,\n} from 'src/app/shared/models/entities/settings/invoice-template.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TenantSetting } from 'src/app/shared/models/entities/settings/multitenant/tenant-settings.model';\nimport { Subject } from 'rxjs';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'wp-invoice-template-card',\n templateUrl: './invoice-template-card.component.html',\n standalone: false,\n})\nexport class InvoiceTemplateCardComponent implements OnInit, OnDestroy {\n @Input() private entityId: string;\n\n public state: CardState;\n public isSaving = false;\n public readonly: boolean;\n public useVat: boolean;\n\n public pageOrientations: NamedEntity[];\n public pageSizes: NamedEntity[];\n public logoIsLoading: boolean;\n public hasLogo: boolean;\n public logoSubject = new Subject();\n public logo$ = this.logoSubject.asObservable();\n\n public invoiceTemplateForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n companyName: ['', Validators.maxLength(150)],\n companyAddress: ['', Validators.maxLength(250)],\n companyPhone: ['', Validators.maxLength(150)],\n paymentRequisites: ['', Validators.maxLength(1000)],\n signaturePosts: ['', Validators.maxLength(500)],\n signatureNames: ['', Validators.maxLength(500)],\n isDefault: false,\n isActive: false,\n pageSize: ['', Validators.required],\n pageOrientation: ['', Validators.required],\n vatRate: null,\n });\n private objectUrl: any;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private sanitizer: DomSanitizer,\n private http: HttpClient,\n private data: DataService,\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.pageSizes = [\n { id: PageSize.A4, name: PageSize.A4 },\n { id: PageSize.Letter, name: PageSize.Letter },\n ];\n\n this.pageOrientations = [\n {\n id: PageOrientation.Portrait,\n name: this.translate.instant(\n `enums.pageOrientation.${PageOrientation.Portrait}`,\n ),\n },\n {\n id: PageOrientation.Landscape,\n name: this.translate.instant(\n `enums.pageOrientation.${PageOrientation.Landscape}`,\n ),\n },\n ];\n\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: this.setAsDefault,\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n public ngOnDestroy(): void {\n URL.revokeObjectURL(this.objectUrl);\n this.objectUrl = null;\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.invoiceTemplateForm.markAllAsTouched();\n\n if (this.invoiceTemplateForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const formValue = this.invoiceTemplateForm.value;\n\n const data: any = {\n name: formValue.name,\n isActive: formValue.isActive,\n companyName: formValue.companyName,\n companyAddress: formValue.companyAddress,\n companyPhone: formValue.companyPhone,\n paymentRequisites: formValue.paymentRequisites,\n signaturePosts: formValue.signaturePosts,\n signatureNames: formValue.signatureNames,\n pageSize: formValue.pageSize.id,\n pageOrientation: formValue.pageOrientation.id,\n vatRateId: formValue.vatRate?.id ?? null,\n };\n\n this.data\n .collection('InvoiceTemplates')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.invoiceTemplateForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.invoiceTemplates.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n /**\n * Event listener on adding file.\n * @param event\n */\n public onFileAdded(event: any): void {\n const file = event.addedFiles[0];\n\n if (!file) {\n this.notification.warningLocal(\n 'settings.invoiceTemplates.card.messages.logoIsWrong',\n );\n return;\n }\n\n const formData: FormData = new FormData();\n this.logoIsLoading = true;\n formData.append('logo', file, file.name);\n\n this.data\n .collection('InvoiceTemplates')\n .entity(this.entityId)\n .action('WP.UploadLogo')\n .execute(formData)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.logoIsLoading = false;\n this.notification.successLocal(\n 'settings.invoiceTemplates.card.messages.logotypeSaved',\n );\n this.hasLogo = true;\n this.loadLogo();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.logoIsLoading = false;\n },\n });\n }\n\n /** Removes Logo. */\n public removeLogo(): void {\n this.logoIsLoading = false;\n this.data\n .collection('InvoiceTemplates')\n .entity(this.entityId)\n .action('WP.DeleteLogo')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.logoIsLoading = false;\n this.hasLogo = false;\n this.notification.successLocal(\n 'settings.invoiceTemplates.card.messages.logoRemoved',\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.logoIsLoading = false;\n },\n });\n }\n\n private load = (): void => {\n this.state = CardState.Loading;\n this.invoiceTemplateForm.markAsPristine();\n this.invoiceTemplateForm.markAsUntouched();\n\n this.data\n .collection('InvoiceTemplates')\n .entity(this.entityId)\n .get({\n expand: { vatRate: { select: ['id', 'name'] } },\n })\n .subscribe({\n next: (invoiceTemplate: InvoiceTemplate) => {\n this.invoiceTemplateForm.patchValue(invoiceTemplate);\n\n this.invoiceTemplateForm.controls.pageSize.setValue(\n this.pageSizes.find((pz) => pz.id === invoiceTemplate.pageSize),\n );\n\n this.invoiceTemplateForm.controls.pageOrientation.setValue(\n this.pageOrientations.find(\n (po) => po.id === invoiceTemplate.pageOrientation,\n ),\n );\n\n this.readonly = !invoiceTemplate.editAllowed;\n this.readonly\n ? this.invoiceTemplateForm.disable()\n : this.invoiceTemplateForm.enable();\n this.actionService.action('save').isShown = !this.readonly;\n\n this.actionService.action('setAsDefault').isShown =\n !invoiceTemplate.isDefault && !this.readonly;\n\n this.hasLogo = invoiceTemplate.hasLogo;\n if (invoiceTemplate.hasLogo) {\n this.loadLogo();\n }\n\n this.state = CardState.Ready;\n\n this.navigationService.addRouteSegment({\n id: invoiceTemplate.id,\n title: invoiceTemplate.name,\n });\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n\n this.data\n .collection('TenantSettings')\n .function('WP.GetSingle')\n .get(null, {\n select: ['id', 'useVat'],\n })\n .subscribe({\n next: (data) => {\n this.useVat = data.useVat;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state = CardState.Error;\n },\n });\n };\n\n private reload(): void {\n if (!this.invoiceTemplateForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n private setAsDefault = (): void => {\n this.actionService.action('setAsDefault').start();\n this.data\n\n .collection('InvoiceTemplates')\n .entity(this.entityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.invoiceTemplates.card.messages.hasBeenSetByDefault',\n );\n\n this.actionService.action('setAsDefault').stop();\n this.actionService.action('setAsDefault').isShown = false;\n this.invoiceTemplateForm.get('isDefault').setValue(true);\n },\n error: (error: Exception) => {\n this.actionService.action('setAsDefault').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n private loadLogo(): void {\n this.objectUrl = null;\n\n const url = `${AppConfigService.config.api.url}/OData/InvoiceTemplates(${this.entityId})/WP.GetLogo`;\n this.http.get(url, { responseType: 'blob' }).subscribe((m) => {\n this.objectUrl = URL.createObjectURL(m);\n this.logoSubject.next(\n this.sanitizer.bypassSecurityTrustUrl(this.objectUrl),\n );\n });\n }\n}\n","\n\n\n\n\n
    \n
    \n
    \n

    \n {{ 'settings.invoiceTemplates.card.props.groupMain' | translate }}\n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n

    \n  {{\n 'settings.invoiceTemplates.card.props.usingByDefault' | translate\n }}\n

    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n

    \n {{ 'settings.invoiceTemplates.card.props.groupRequisites' | translate }}\n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n\n \n
    \n \n \n \n

    \n {{ 'shared.orDragFileHere' | translate }}\n
    \n \n \n

    \n {{ 'settings.invoiceTemplates.card.props.logoRequirements' | translate }}\n

    \n
    \n\n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n

    \n {{ 'settings.invoiceTemplates.card.props.groupFormat' | translate }}\n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n

    \n {{ 'settings.invoiceTemplates.card.props.groupTax' | translate }}\n

    \n
    \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-invoice-template-creation',\n templateUrl: './invoice-template-creation.component.html',\n standalone: false,\n})\nexport class InvoiceTemplateCreationComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const invoice = this.form.value;\n\n this.data\n .collection('InvoiceTemplates')\n .insert(invoice)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.activities.creation.messages.created',\n );\n this.state.go('settings.invoiceTemplate', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.invoiceTemplates.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { InvoiceTemplateListComponent } from './list/invoice-template-list.component';\nimport { InvoiceTemplateCreationComponent } from './creation/invoice-template-creation.component';\nimport { InvoiceTemplateList } from 'src/app/shared/lists/invoice-template.list';\nimport { InvoiceTemplateCardComponent } from './card/invoice-template-card.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n InvoiceTemplateListComponent,\n InvoiceTemplateCreationComponent,\n InvoiceTemplateCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.invoiceTemplates',\n url: '/invoice-templates',\n component: InvoiceTemplateListComponent,\n params: {\n navigation: 'settings.invoiceTemplates',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: InvoiceTemplateList },\n ],\n },\n\n {\n name: 'settings.invoiceTemplate',\n params: {\n navigation: 'settings.invoiceTemplates',\n },\n url: '/invoice-templates/{entityId:guid}',\n component: InvoiceTemplateCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class InvoiceTemplatesModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { InvoiceTemplateCreationComponent } from '../creation/invoice-template-creation.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-invoice-template-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class InvoiceTemplateListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.invoiceTemplates.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'InvoiceTemplate',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.invoiceTemplate', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'InvoiceTemplate',\n PermissionType.Modify,\n );\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission(\n 'InvoiceTemplate',\n PermissionType.Modify,\n ) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(InvoiceTemplateCreationComponent);\n };\n\n // Установка по умолчанию.\n public setAsDefault = () => {\n this.data\n .collection('InvoiceTemplates')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.invoiceTemplates.card.messages.hasBeenSetByDefault',\n );\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import {\n Component,\n OnInit,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IssueResolutionCardService } from 'src/app/settings-app/issue-resolutions/card/issue-resolution-card.service';\nimport { IssueResolution } from 'src/app/settings-app/issue-resolutions/model/issue-resolution.model';\n\n@Component({\n selector: 'tmt-issue-resolution-card',\n templateUrl: './issue-resolution-card.component.html',\n styleUrl: './issue-resolution-card.component.scss',\n providers: [IssueResolutionCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueResolutionCardComponent implements OnInit {\n public readonly = !this.appService.checkEntityPermission(\n 'IssueResolutions',\n PermissionType.Modify,\n );\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public issueResolutionCardService: IssueResolutionCardService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.issueResolutionCardService.reload();\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.issueResolutionCardService.save(),\n },\n ]);\n\n this.issueResolutionCardService.form.controls['name'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.issueResolutionCardService.updateName(value);\n });\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.issueResolutionCardService.reload());\n\n this.issueResolutionCardService.issueResolution$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((issueResolution: IssueResolution) => {\n this.issueResolutionCardService.form.patchValue(issueResolution);\n this.readonly = !issueResolution.editAllowed;\n this.readonly\n ? this.issueResolutionCardService.form.disable()\n : this.issueResolutionCardService.form.enable();\n });\n }\n}\n","\n\n\n\n\n@if ((issueResolutionCardService.state$ | async) == 'Ready') {\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n
    \n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { IssueResolution } from 'src/app/settings-app/issue-resolutions/model/issue-resolution.model';\n\n@Injectable()\nexport class IssueResolutionCardService {\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n isDefault: false,\n });\n\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving$ = new BehaviorSubject(false);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n\n private issueResolutionSubject = new ReplaySubject();\n public issueResolution$ = this.issueResolutionSubject.asObservable();\n\n constructor(\n @Inject('entityId') public entityId: string,\n private dataService: DataService,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private navigationService: NavigationService,\n private fb: UntypedFormBuilder,\n private blockUIService: BlockUIService,\n private messageService: MessageService,\n ) {}\n\n /** Loads issueResolution. */\n public load(): void {\n this.state$.next(CardState.Loading);\n\n const query = {\n select: ['id', 'name', 'isActive', 'editAllowed'],\n };\n\n this.dataService\n .collection('IssueResolutions')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (issueResolution: IssueResolution) => {\n this.state$.next(CardState.Ready);\n this.actionPanelService.action('save').isShown =\n issueResolution.editAllowed;\n\n this.nameSubject.next(issueResolution.name);\n this.issueResolutionSubject.next(issueResolution);\n\n this.navigationService.addRouteSegment({\n id: issueResolution.id,\n title: issueResolution.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Updates issueResolution name subject. */\n public updateName(value: any): void {\n this.nameSubject.next(value);\n }\n\n /** Saves Data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.blockUIService.start();\n this.actionPanelService.action('save').start();\n const issueType = this.form.value;\n\n const data = {\n name: issueType.name,\n isActive: issueType.isActive,\n };\n\n this.dataService\n .collection('IssueResolutions')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'components.issueResolutionCardService.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.form.markAsPristine();\n this.load();\n },\n () => null,\n );\n }\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-issue-resolution-creation',\n templateUrl: './issue-resolution-creation.component.html',\n standalone: false,\n})\nexport class IssueResolutionCreationComponent {\n public isSaving = false;\n public form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Submits data. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('IssueResolutions')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'components.issueResolutionCreationComponent.messages.created',\n );\n this.state.go('settings.issueResolution', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Dismisses data. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.issueResolutionCreationComponent.props.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { ISSUE_RESOLUTION_LIST } from 'src/app/settings-app/issue-resolutions/model/issue-resolution.list';\nimport { IssueResolutionListComponent } from 'src/app/settings-app/issue-resolutions/list/issue-resolution-list.component';\nimport { IssueResolutionCreationComponent } from 'src/app/settings-app/issue-resolutions/creation/issue-resolution-creation.component';\nimport { IssueResolutionCardComponent } from 'src/app/settings-app/issue-resolutions/card/issue-resolution-card.component';\n\n@NgModule({\n declarations: [\n IssueResolutionListComponent,\n IssueResolutionCardComponent,\n IssueResolutionCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.issueResolutions',\n url: '/issue-resolutions',\n component: IssueResolutionListComponent,\n params: {\n navigation: 'settings.issueResolutions',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ISSUE_RESOLUTION_LIST },\n ],\n },\n {\n name: 'settings.issueResolution',\n params: {\n navigation: 'settings.issueResolutions',\n },\n url: '/issue-resolutions/{entityId:guid}',\n component: IssueResolutionCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class IssueResolutionsModule {}\n","import { Component, OnInit, DestroyRef, inject } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IssueResolutionCreationComponent } from 'src/app/settings-app/issue-resolutions/creation/issue-resolution-creation.component';\n\n@Component({\n selector: 'tmt-issue-resolution-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class IssueResolutionListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n public ngOnInit(): void {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'components.issueResolutionListComponent.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'IssueResolution',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.issueResolution', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: () => this.service.delete(),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'IssueResolution',\n PermissionType.Modify,\n );\n });\n }\n\n private create(): void {\n this.modalService.open(IssueResolutionCreationComponent);\n }\n}\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const ISSUE_RESOLUTION_LIST: List = {\n version: 1,\n name: 'issueResolutions',\n dataCollection: 'issueResolutions',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'settings.issueResolution',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n Component,\n OnInit,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n ViewChild,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { IssueTypeCardService } from './issue-type-card.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\nimport { IssueTypePermissionsComponent } from 'src/app/settings-app/issue-types/card/permissions/issue-type-permissions.component';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'tmt-issue-type-card',\n templateUrl: './issue-type-card.component.html',\n styleUrl: './issue-type-card.component.scss',\n providers: [IssueTypeCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueTypeCardComponent implements OnInit {\n @ViewChild(IssueTypePermissionsComponent)\n private permissionsComponent: IssueTypePermissionsComponent;\n\n public readonly = !this.appService.checkEntityPermission(\n 'IssueType',\n PermissionType.Modify,\n );\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public issueTypeCardService: IssueTypeCardService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.issueTypeCardService.reload();\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.issueTypeCardService.save(),\n },\n this.actionPanelService.getDefaultAction('setAsDefault', {\n handler: () => this.issueTypeCardService.setAsDefault(),\n }),\n ]);\n\n this.issueTypeCardService.form.controls['name'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.issueTypeCardService.updateName(value);\n });\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.issueTypeCardService.reload());\n\n this.issueTypeCardService.issueType$\n .pipe(\n filter((v) => !!v),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((issueType: IssueType) => {\n this.issueTypeCardService.form.patchValue(issueType);\n this.readonly = !issueType.editAllowed;\n this.readonly\n ? this.issueTypeCardService.form.disable()\n : this.issueTypeCardService.form.enable();\n });\n this.issueTypeCardService.saveMembers$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.permissionsComponent.saveMembers();\n });\n }\n}\n","\n\n\n\n\n@if ((issueTypeCardService.state$ | async) == 'Ready') {\n
    \n @if ((issueTypeCardService.issueType$ | async).isDefault) {\n

    \n  {{\n 'components.issueTypeCardComponent.messages.usingByDefault' | translate\n }}\n

    \n }\n\n
    \n \n \n
    \n\n \n\n
    \n \n

    \n {{ (issueTypeCardService.issueType$ | async).code }}\n

    \n
    \n\n
    \n \n \n
    \n\n \n\n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n \n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\nimport { FormArray, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { IssueTypeMember } from 'src/app/settings-app/issue-types/model/issue-type-member.model';\n\n@Injectable()\nexport class IssueTypeCardService {\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n iconClass: '',\n isActive: false,\n isDefault: false,\n viewers: new FormArray([]),\n editors: new FormArray([]),\n });\n\n public members: Partial[] = [];\n\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving$ = new BehaviorSubject(false);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n\n private issueTypeSubject = new BehaviorSubject(null);\n public issueType$ = this.issueTypeSubject.asObservable();\n\n private saveMembersSubject = new Subject();\n public saveMembers$ = this.saveMembersSubject.asObservable();\n\n public get viewers(): FormArray {\n return this.form.get('viewers') as FormArray;\n }\n\n public get editors(): FormArray {\n return this.form.get('editors') as FormArray;\n }\n\n constructor(\n @Inject('entityId') public entityId: string,\n private dataService: DataService,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private navigationService: NavigationService,\n private fb: UntypedFormBuilder,\n private blockUIService: BlockUIService,\n private messageService: MessageService,\n ) {}\n\n /** Loads issueType. */\n public load(): void {\n this.state$.next(CardState.Loading);\n\n const query = {\n select: [\n 'id',\n 'name',\n 'code',\n 'iconClass',\n 'isActive',\n 'isDefault',\n 'editAllowed',\n ],\n expand: {\n members: {\n select: [\n 'id',\n 'issueTypeId',\n 'userId',\n 'groupId',\n 'permissionSetId',\n 'type',\n 'role',\n ],\n expand: {\n user: { select: ['id', 'name'] },\n group: { select: ['id', 'name'] },\n permissionSet: { select: ['id', 'name'] },\n },\n },\n },\n };\n\n this.dataService\n .collection('issueTypes')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (issueType: IssueType) => {\n this.actionPanelService.action('save').isShown =\n issueType.editAllowed;\n this.actionPanelService.action('setAsDefault').isShown =\n issueType.editAllowed && !issueType.isDefault;\n\n this.members = issueType.members;\n\n this.nameSubject.next(issueType.name);\n this.issueTypeSubject.next(issueType);\n\n this.navigationService.addRouteSegment({\n id: issueType.id,\n title: issueType.name,\n });\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Updates issueType name subject. */\n public updateName(value: any): void {\n this.nameSubject.next(value);\n }\n\n /** Saves data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.blockUIService.start();\n this.actionPanelService.action('save').start();\n const issueType = this.form.value;\n\n const data: Partial = {\n name: issueType.name,\n isActive: issueType.isActive,\n iconClass: issueType.iconClass,\n };\n\n this.dataService\n .collection('IssueTypes')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.saveMembersSubject.next();\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.form.markAsPristine();\n this.load();\n },\n () => null,\n );\n }\n }\n\n /** Sets the issue type as default. */\n public setAsDefault(): void {\n this.isSaving$.next(true);\n this.actionPanelService.action('setAsDefault').start();\n\n this.dataService\n .collection('IssueTypes')\n .entity(this.entityId)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.issueTypeCardService.messages.hasBeenSetByDefault',\n );\n this.actionPanelService.action('setAsDefault').stop();\n this.actionPanelService.action('setAsDefault').isShown = false;\n this.issueTypeSubject.next({\n ...this.issueTypeSubject.getValue(),\n isDefault: true,\n });\n this.isSaving$.next(false);\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.actionPanelService.action('setAsDefault').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MassOperationHelper } from 'src/app/shared/helpers/mass-operation.helper';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IssueTypeCardService } from 'src/app/settings-app/issue-types/card/issue-type-card.service';\nimport {\n IssueTypeMember,\n IssueTypeMemberType,\n} from 'src/app/settings-app/issue-types/model/issue-type-member.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'tmt-issue-type-permissions',\n templateUrl: './issue-type-permissions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueTypePermissionsComponent implements OnInit {\n @Input() entityId: string;\n @Input() readonly: boolean;\n @Input() team: Partial[];\n @Input() isSaving$: BehaviorSubject;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public issueTypeCardService: IssueTypeCardService,\n private fb: FormBuilder,\n private actionPanelService: ActionPanelService,\n private notificationService: NotificationService,\n private dataService: DataService,\n private translate: TranslateService,\n ) {}\n\n ngOnInit(): void {\n this.setFormTeam(this.issueTypeCardService.members);\n }\n\n /** Saves members. */\n public saveMembers(): void {\n const team: {\n insert: Partial[];\n update: Partial[];\n delete: string[];\n } = this.getSavingArrays();\n\n if (!team.insert.length && !team.delete.length && !team.update.length) {\n this.isSaving$.next(false);\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'components.issueTypeCardService.messages.saved',\n );\n return;\n }\n\n const massOperationHelper = new MassOperationHelper(\n team.delete\n .map((id: string) =>\n this.dataService.collection('IssueTypeMembers').entity(id).delete(),\n )\n .concat(\n team.insert.map((item: Partial) =>\n this.dataService.collection('IssueTypeMembers').insert(item),\n ),\n )\n .concat(\n team.update.map((item: Partial) =>\n this.dataService\n .collection('IssueTypeMembers')\n .entity(item.id)\n .update(item),\n ),\n ),\n { takeUntil: takeUntilDestroyed(this.destroyRef) },\n );\n massOperationHelper\n .start()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((progress) => {\n if (progress === 100) {\n if (massOperationHelper.errors.length) {\n const uniqueErrors = new Set();\n massOperationHelper.errors.forEach((error) => {\n uniqueErrors.add(\n error.result?.message || 'shared2.messages.unknownError',\n );\n });\n uniqueErrors.forEach((error: string) => {\n this.notificationService.error(error);\n });\n } else if (\n massOperationHelper.completedCount ===\n team.insert.length + team.delete.length + team.update.length\n ) {\n this.notificationService.successLocal(\n 'components.issueTypeCardService.messages.saved',\n );\n Object.keys(team).forEach((item) => (team[item] = []));\n }\n\n this.isSaving$.next(false);\n this.actionPanelService.action('save').stop();\n /** Updates team after saving. */\n this.team = [];\n this.issueTypeCardService.viewers.value.forEach((item) => {\n this.team.push(this.getTeamMember(item, 'Viewer'));\n });\n this.issueTypeCardService.editors.value.forEach((item) => {\n this.team.push(this.getTeamMember(item, 'Editor'));\n });\n this.issueTypeCardService.members = this.team;\n }\n });\n }\n\n /**\n * Gets arrays for saving.\n *\n * @returns object with array for insert, update and delete members.\n */\n public getSavingArrays(): {\n insert: Partial[];\n update: Partial[];\n delete: string[];\n } {\n const viewers = this.issueTypeCardService.viewers.value.map((viewer) => {\n viewer.type = IssueTypeMemberType.Viewer;\n return viewer;\n });\n const editors = this.issueTypeCardService.editors.value.map((editor) => {\n editor.type = IssueTypeMemberType.Editor;\n return editor;\n });\n const team = {\n insert: [],\n update: [],\n delete: [],\n };\n for (const item of [...viewers, ...editors]) {\n const foundTeamMember = this.team.find(\n (teamMember) => item.id === teamMember.id,\n );\n if (foundTeamMember) {\n if (\n item.performer.id !==\n (foundTeamMember.userId ||\n foundTeamMember.groupId ||\n foundTeamMember.permissionSetId ||\n foundTeamMember.role)\n ) {\n team.update.push({\n id: item.id,\n ...this.setItemPermissionId(\n item.performer.id,\n item.performer.type,\n 'update',\n item.type,\n ),\n });\n }\n } else {\n team.insert.push({\n id: item.id,\n ...this.setItemPermissionId(\n item.performer.id,\n item.performer.type,\n 'insert',\n item.type,\n ),\n });\n }\n }\n\n for (const item of this.team) {\n if (\n !this.issueTypeCardService.viewers.value.find(\n (teamItem) =>\n teamItem.id === item.id && item.type === IssueTypeMemberType.Viewer,\n ) &&\n !this.issueTypeCardService.editors.value.find(\n (teamItem) =>\n teamItem.id === item.id && item.type === IssueTypeMemberType.Editor,\n )\n ) {\n team.delete.push(item.id);\n }\n }\n\n return team;\n }\n\n /**\n * Sets members form array.\n *\n * @param members Issue type members.\n */\n public setFormTeam(members: Partial[]): void {\n this.issueTypeCardService.viewers.clear();\n this.issueTypeCardService.editors.clear();\n members.forEach((item) => {\n const group = this.fb.group({\n id: item.id,\n performer: {\n id: item.userId || item.groupId || item.permissionSetId || item.role,\n type: item.userId\n ? 'user'\n : item.groupId\n ? 'group'\n : item.permissionSetId\n ? 'permissionSet'\n : 'role',\n name:\n item.user?.name ??\n item.group?.name ??\n item.permissionSet?.name ??\n this.getRoleName(item.role),\n },\n });\n switch (item.type) {\n case IssueTypeMemberType.Editor:\n this.issueTypeCardService.editors.push(group);\n break;\n case IssueTypeMemberType.Viewer:\n this.issueTypeCardService.viewers.push(group);\n break;\n }\n });\n }\n /**\n * Sets id property according to permission type.\n *\n * @param id setting id.\n * @param type permission type.\n * @param methodName Method type(insert, update).\n * @param issueMemberType Issue member type.\n */\n private setItemPermissionId(\n id: string,\n type: string,\n methodName: string,\n issueMemberType: IssueTypeMemberType,\n ): Partial {\n let member: Partial;\n switch (methodName) {\n case 'insert':\n member = {\n isActive: true,\n issueTypeId: this.entityId,\n type: issueMemberType,\n };\n break;\n case 'update':\n member = {\n isActive: true,\n issueTypeId: this.entityId,\n groupId: null,\n userId: null,\n permissionSetId: null,\n role: null,\n type: issueMemberType,\n };\n break;\n }\n\n switch (type) {\n case 'group':\n member.groupId = id;\n break;\n case 'user':\n member.userId = id;\n break;\n case 'permissionSet':\n member.permissionSetId = id;\n break;\n case 'role':\n member.role = id;\n break;\n }\n\n return member;\n }\n\n /** Returns localized role name. */\n public getRoleName(role: string): string {\n return this.translate.instant(`shared2.props.role${role}`);\n }\n\n /**\n * Gets team member from form group value.\n *\n * @param item form group value item.\n * @param type team member type.\n */\n private getTeamMember(item: any, type: string): Record {\n return {\n id: item.id,\n groupId: item.performer.type === 'group' ? item.performer.id : null,\n userId: item.performer.type === 'user' ? item.performer.id : null,\n permissionSetId:\n item.performer.type === 'permissionSet' ? item.performer.id : null,\n role: item.performer.type === 'role' ? item.performer.id : null,\n type,\n issueTypeId: this.entityId,\n };\n }\n}\n","
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormArray } from '@angular/forms';\n\n@Component({\n selector: 'tmt-issue-type-permissions-performers',\n templateUrl: './performers.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IssueTypePermissionsPerformersComponent {\n @Input() readonly: boolean;\n @Input() lines: FormArray;\n @Input() gridHeader = '';\n}\n","\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-issue-type-creation',\n templateUrl: './issue-type-creation.component.html',\n standalone: false,\n})\nexport class IssueTypeCreationComponent {\n public isSaving = false;\n public form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Submits data. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('IssueTypes')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'components.issueTypeCreationComponent.messages.created',\n );\n this.state.go('settings.issueType', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Dismisses data. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'components.issueTypeCreationComponent.props.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { IssueTypeCardComponent } from './card/issue-type-card.component';\nimport { IssueTypeCreationComponent } from './creation/issue-type-creation.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { IssueTypeListComponent } from 'src/app/settings-app/issue-types/list/issue-type-list.component';\nimport { ISSUE_TYPE_LIST } from 'src/app/settings-app/issue-types/model/issue-type.list';\nimport { IssueTypePermissionsComponent } from 'src/app/settings-app/issue-types/card/permissions/issue-type-permissions.component';\nimport { PerformersModule } from 'src/app/settings-app/shared/performers/performers.module';\nimport { IssueTypePermissionsPerformersComponent } from 'src/app/settings-app/issue-types/card/permissions/performers/performers.component';\n\n@NgModule({\n declarations: [\n IssueTypeListComponent,\n IssueTypeCardComponent,\n IssueTypeCreationComponent,\n IssueTypePermissionsComponent,\n IssueTypePermissionsPerformersComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n PerformersModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.issueTypes',\n url: '/issue-types',\n component: IssueTypeListComponent,\n params: {\n navigation: 'settings.issueTypes',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ISSUE_TYPE_LIST },\n ],\n },\n {\n name: 'settings.issueType',\n params: {\n navigation: 'settings.issueTypes',\n },\n url: '/issue-types/{entityId:guid}',\n component: IssueTypeCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class IssueTypesModule {}\n","import { Component, OnInit, DestroyRef, inject } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { IssueTypeCreationComponent } from '../creation/issue-type-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-issue-type-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class IssueTypeListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private notificationService: NotificationService,\n private dataService: DataService,\n ) {}\n\n public ngOnInit(): void {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'components.issueTypeListComponent.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'IssueType',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.issueType', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: () => this.service.delete(),\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('IssueType', PermissionType.Modify);\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission('IssueType', PermissionType.Modify) &&\n !row.value.isDefault;\n });\n }\n\n private setAsDefault(): void {\n this.dataService\n .collection('IssueTypes')\n .entity(this.gridService.selectedGroupValue.id)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.issueTypeListComponent.messages.setAsDefault',\n );\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n private create(): void {\n this.modalService.open(IssueTypeCreationComponent);\n }\n}\n","import { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { Group } from 'src/app/shared/models/entities/settings/group.model';\nimport { PermissionSet } from 'src/app/shared/models/entities/settings/permission-set.model';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { IssueType } from 'src/app/settings-app/issue-types/model/issue-type.model';\n\nexport class IssueTypeMember extends Entity {\n /** Member type. */\n type: IssueTypeMemberType;\n /** Issue type id. */\n issueTypeId: string;\n /** User id. */\n userId?: string;\n /** Group id. */\n groupId?: string;\n /** Permission set id. */\n permissionSetId?: string;\n /** Role. */\n role?: string;\n /** Issue type. */\n issueType: IssueType;\n /** User. */\n user: User;\n /** Group. */\n group: Group;\n /** Permission set. */\n permissionSet: PermissionSet;\n}\n\nexport enum IssueTypeMemberType {\n /** Viewer. */\n Viewer = 'Viewer',\n /** Editor. */\n Editor = 'Editor',\n}\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const ISSUE_TYPE_LIST: List = {\n version: 3,\n name: 'issueTypes',\n dataCollection: 'issueTypes',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'settings.issueType',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'code',\n header: 'shared2.props.code',\n hint: 'shared2.props.code',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.value',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared2.props.isDefault',\n hint: 'shared2.props.isDefault',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { Component, OnInit, Inject, DestroyRef, inject } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { LegalEntity } from 'src/app/shared/models/entities/settings/legal-entity.model';\n\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Component({\n selector: 'tmt-legal-entity-card',\n styleUrl: './legal-entity-card.component.scss',\n templateUrl: './legal-entity-card.component.html',\n host: {\n class: 'legal-entity-main',\n },\n standalone: false,\n})\nexport class LegalEntityCardComponent implements OnInit {\n public state$ = new BehaviorSubject(CardState.Loading);\n public readonly: boolean;\n public isSaving = false;\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n manager: [null, Validators.required],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isDefault: [false],\n isActive: [false],\n currency: [null, Validators.required],\n });\n\n private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public legalEntityId: string,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private customFieldService: CustomFieldService,\n private appService: AppService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.customFieldService.enrichFormGroup(this.form, 'LegalEntity');\n\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.setAsDefault(),\n },\n ]);\n\n this.load();\n this.setSubscriptions();\n }\n\n /** Saves form. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n\n return;\n }\n\n this.isSaving = true;\n this.actionPanelService.action('save').start();\n\n const legalEntity = this.form.value;\n\n const data: any = {\n name: legalEntity.name,\n code: legalEntity.code,\n description: legalEntity.description,\n isActive: legalEntity.isActive,\n managerId: legalEntity.manager?.id,\n currencyId: legalEntity.currency?.id,\n };\n\n this.customFieldService.assignValues(data, this.form.value, 'LegalEntity');\n\n this.dataService\n .collection('LegalEntities')\n .entity(this.legalEntityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'settings.legalEntity.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Sets the legal entity as default. */\n public setAsDefault(): void {\n this.actionPanelService.action('setAsDefault').start();\n\n this.dataService\n .collection('LegalEntities')\n .entity(this.legalEntityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'settings.legalEntity.messages.hasBeenSetByDefault',\n );\n this.actionPanelService.action('setAsDefault').stop();\n this.actionPanelService.action('setAsDefault').isShown = false;\n this.form.get('isDefault').setValue(true);\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionPanelService.action('setAsDefault').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Loads data. */\n private load(): void {\n this.state$.next(CardState.Loading);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n select: ['name', 'code', 'description', 'isActive', 'isDefault', 'id'],\n expand: [\n {\n manager: { select: ['id', 'name'] },\n },\n {\n currency: { select: ['id', 'name'] },\n },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'LegalEntity');\n\n this.dataService\n .collection('LegalEntities')\n .entity(this.legalEntityId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (legalEntity) => {\n this.navigationService.addRouteSegment({\n id: legalEntity.id,\n title: legalEntity.name,\n });\n\n this.form.patchValue(legalEntity);\n this.readonly = !this.appService.checkEntityPermission(\n 'LegalEntity',\n PermissionType.Modify,\n );\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n this.actionPanelService.action('setAsDefault').isShown =\n !legalEntity.isDefault && !this.readonly;\n\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private setSubscriptions(): void {\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n }\n}\n","\n\n\n\n\n
    \n

    \n  {{\n 'settings.legalEntity.messages.usingByDefault' | translate\n }}\n

    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { StateService } from '@uirouter/core';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Component({\n selector: 'tmt-legal-entity-creation',\n templateUrl: './legal-entity-creation.component.html',\n standalone: false,\n})\nexport class LegalEntityCreationComponent implements OnInit {\n public isSaving = false;\n public creationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n manager: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n private appService: AppService,\n private customFieldService: CustomFieldService,\n ) {}\n\n public ngOnInit(): void {\n this.customFieldService.enrichFormGroup(this.creationForm, 'LegalEntity');\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.creationForm,\n 'LegalEntity',\n );\n this.creationForm.patchValue({\n manager: this.appService.session.user,\n });\n }\n\n /** Modal submit handler. */\n public ok(): void {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.creationForm.value.name,\n managerId: this.creationForm.value.manager.id,\n };\n\n this.customFieldService.assignValues(\n data,\n this.creationForm.value,\n 'LegalEntity',\n );\n\n this.dataService\n .collection('LegalEntities')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'settings.legalEntity.messages.created',\n );\n this.stateService.go('settings.legalEntity', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'settings.legalEntity.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { Transition } from '@uirouter/core';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { LEGAL_ENTITY_LIST } from 'src/app/shared/lists/legal-entity.list';\n\nimport { LegalEntityListComponent } from 'src/app/settings-app/legal-entity/list/legal-entity-list.component';\nimport { LegalEntityCreationComponent } from 'src/app/settings-app/legal-entity/creation/legal-entity-creation.component';\nimport { LegalEntityCardComponent } from 'src/app/settings-app/legal-entity/card/legal-entity-card.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n LegalEntityListComponent,\n LegalEntityCreationComponent,\n LegalEntityCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.legalEntities',\n url: '/legal-entities',\n component: LegalEntityListComponent,\n params: {\n navigation: 'settings.legalEntities',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: LEGAL_ENTITY_LIST },\n ],\n },\n\n {\n name: 'settings.legalEntity',\n params: {\n navigation: 'settings.legalEntities',\n },\n url: '/legal-entities/{entityId:guid}',\n component: LegalEntityCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class LegalEntitiesModule {}\n","import { Component, OnInit, inject, DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\n\nimport { LegalEntityCreationComponent } from 'src/app/settings-app/legal-entity/creation/legal-entity-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-legal-entity-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class LegalEntityListComponent implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private notificationService: NotificationService,\n private dataService: DataService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'settings.legalEntity.list.actions.create',\n isVisible: this.appService.checkEntityPermission(\n 'LegalEntity',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.legalEntity', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: () => this.entityListService.delete(),\n }),\n this.actionPanelService.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n\n this.actionPanelService.action('delete').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'LegalEntity',\n PermissionType.Modify,\n );\n\n this.actionPanelService.action('setAsDefault').isShown =\n row &&\n this.appService.checkEntityPermission(\n 'LegalEntity',\n PermissionType.Modify,\n ) &&\n !row.value.isDefault;\n });\n }\n\n private create(): void {\n this.modalService.open(LegalEntityCreationComponent);\n }\n\n private setAsDefault(): void {\n this.dataService\n .collection('LegalEntities')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'settings.legalEntity.messages.hasBeenSetByDefault',\n );\n\n this.entityListService.reload();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { LevelCardService } from './level-card.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Level } from 'src/app/shared/models/entities/settings/level.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\n@Component({\n selector: 'wp-level-card',\n templateUrl: './level-card.component.html',\n providers: [LevelCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class LevelCardComponent implements OnInit {\n @Input() entityId: string;\n\n public readonly: boolean;\n public levelForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: '',\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n isDefault: false,\n });\n public isSaving$ = new BehaviorSubject(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public levelCardService: LevelCardService,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private blockUIService: BlockUIService,\n ) {}\n\n public ngOnInit(): void {\n this.levelForm.controls.name.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.levelCardService.updateName(value));\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.setAsDefault(),\n },\n ]);\n\n this.levelCardService.level$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((level: Level) => {\n this.levelForm.patchValue(level);\n this.readonly = !level.editAllowed;\n this.readonly ? this.levelForm.disable() : this.levelForm.enable();\n this.actionService.action('setAsDefault').isShown =\n !this.readonly && !level.isDefault;\n });\n }\n\n /** Reloads data. */\n public reload(): void {\n if (!this.levelForm.dirty) {\n this.levelCardService.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.levelForm.markAsPristine();\n this.levelCardService.load();\n },\n () => null,\n );\n }\n }\n\n /** Saves data. */\n public save(): void {\n this.levelForm.markAllAsTouched();\n\n if (this.levelForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.actionService.action('save').start();\n this.blockUIService.start();\n\n this.dataService\n .collection('Levels')\n .entity(this.entityId)\n .patch(this.levelForm.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.levelForm.markAsPristine();\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.blockUIService.stop();\n this.notificationService.successLocal(\n 'settings.levels.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.actionService.action('save').stop();\n this.blockUIService.stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Sets level as default. */\n private setAsDefault(): void {\n this.dataService\n .collection('levels')\n .entity(this.entityId)\n .action('SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'settings.levels.card.setAsDefault',\n );\n\n this.actionService.action('setAsDefault').isShown = false;\n this.reload();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n\n
    \n @if (levelForm.value.isDefault) {\n

    \n  {{\n 'settings.levels.card.usingByDefault' | translate\n }}\n

    \n }\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n
    \n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Level } from 'src/app/shared/models/entities/settings/level.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class LevelCardService {\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private levelNameSubject = new BehaviorSubject(null);\n public levelName$ = this.levelNameSubject.asObservable();\n\n private levelSubject = new ReplaySubject();\n public level$ = this.levelSubject.asObservable();\n\n constructor(\n @Inject('entityId') public levelId,\n private data: DataService,\n private notification: NotificationService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n ) {\n this.load();\n }\n\n /** Loads Data. */\n public load(): void {\n this.state$.next(CardState.Loading);\n\n const query = {\n select: [\n 'id',\n 'name',\n 'code',\n 'description',\n 'isActive',\n 'isDefault',\n 'editAllowed',\n ],\n };\n\n this.data\n .collection('Levels')\n .entity(this.levelId)\n .get(query)\n .subscribe({\n next: (level: Level) => {\n this.state$.next(CardState.Ready);\n this.actionService.action('save').isShown = level.editAllowed;\n this.levelNameSubject.next(level.name);\n this.levelSubject.next(level);\n\n this.navigationService.addRouteSegment({\n id: level.id,\n title: level.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notification.error(error.message);\n },\n });\n }\n\n public updateName(value: string): void {\n this.levelNameSubject.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-level-creation',\n templateUrl: './level-creation.component.html',\n standalone: false,\n})\nexport class LevelCreationComponent {\n isSaving = false;\n levelForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: '',\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.levelForm.markAllAsTouched();\n\n if (this.levelForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.levelForm.get('name').value,\n code: this.levelForm.get('code').value,\n };\n\n this.data\n .collection('Levels')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.levels.creation.messages.created',\n );\n this.state.go('settings.level', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.levels.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { LevelListComponent } from './list/level-list.component';\nimport { LevelCreationComponent } from './creation/level-creation.component';\nimport { LevelCardComponent } from './card/level-card.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../../shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from '../../shared/tokens';\nimport { LEVEL_LIST } from '../../shared/lists/level.list';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { Transition } from '@uirouter/core';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n LevelListComponent,\n LevelCreationComponent,\n LevelCardComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.levels',\n url: '/levels',\n component: LevelListComponent,\n params: {\n navigation: 'settings.levels',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: LEVEL_LIST },\n ],\n },\n\n {\n name: 'settings.level',\n params: {\n navigation: 'settings.levels',\n },\n url: '/levels/{entityId:guid}',\n component: LevelCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class LevelsModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LevelCreationComponent } from '../creation/level-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-level-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class LevelListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.levels.list.create',\n isVisible: this.app.checkEntityPermission(\n 'Level',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.level', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: this.setAsDefault,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row && this.app.checkEntityPermission('Level', PermissionType.Modify);\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission('Level', PermissionType.Modify) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(LevelCreationComponent);\n };\n\n private setAsDefault = () => {\n this.data\n .collection('Levels')\n .entity(this.gridService.selectedGroupValue.id)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal('settings.levels.card.setAsDefault');\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FormBuilder,\n FormGroup,\n UntypedFormArray,\n UntypedFormGroup,\n} from '@angular/forms';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n forkJoin,\n Observable,\n of,\n switchMap,\n throwError,\n} from 'rxjs';\nimport _ from 'lodash';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { KindToolbarComponent } from 'src/app/settings-app/lifecycle/card/kind-settings/kind-toolbar/kind-toolbar.component';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport { TransitionFormService } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.service';\nimport { TransitionsCellComponent } from 'src/app/settings-app/lifecycle/card/transitions-cell/transitions-cell.component';\nimport { TransitionsService } from 'src/app/settings-app/lifecycle/card/transitions.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridCommandColumn,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { MermaidSchemaService } from 'src/app/shared-features/mermaid-schema/mermaid-schema.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n Lifecycle,\n StateConfiguration,\n} from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\nimport { MetaEntity } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-kind-settings',\n templateUrl: './kind-settings.component.html',\n providers: [GridService, MermaidSchemaService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class KindSettingsComponent implements OnInit {\n @Input() private entityType: string;\n @Input() public readonly: boolean;\n @Input() public lifecycleData: Lifecycle;\n\n public isLoading = signal(true);\n public entity: MetaEntity;\n public gridOptions: GridOptions = {\n toolbar: KindToolbarComponent,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: FormGroup) => {\n this.editSelectedConfiguration(formGroup.getRawValue());\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.deleteSelectedConfiguration(formGroup.getRawValue());\n },\n },\n ],\n commands: [\n {\n name: 'edit',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.editSelectedConfiguration(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'delete',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.deleteSelectedConfiguration(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'moveUp',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.decreaseConfigStateIndex(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'moveDown',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.increaseConfigStateIndex(this.gridService.selectedGroupValue);\n },\n },\n ],\n view: {\n name: 'kindStates',\n columns: [\n {\n name: 'name',\n command: 'edit',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Command,\n },\n {\n name: 'isInitial',\n width: '100px',\n header: 'components.kindSettingsComponent.props.isInitial',\n hint: 'components.kindSettingsComponent.props.isInitial',\n type: GridColumnType.Boolean,\n },\n {\n name: 'transitions',\n width: '650px',\n type: GridColumnType.Component,\n component: TransitionsCellComponent,\n header: 'settings.lifecycles.card.columns.transitions.header',\n hint: 'settings.lifecycles.card.columns.transitions.hint',\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId: string,\n public lifecycleCardService: LifecycleCardService,\n private cdr: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n private gridService: GridService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private transitionsService: TransitionsService,\n private transitionFormService: TransitionFormService,\n private mermaidSchemaService: MermaidSchemaService,\n private dataService: DataService,\n private blockUIService: BlockUIService,\n ) {}\n\n ngOnInit(): void {\n this.initSubscriptions();\n this.lifecycleCardService.loadMetaEntity(this.entityType);\n }\n\n /**\n * Adds new state to lifecycle.\n *\n * @param state adding state.\n */\n private addState(state: State): void {\n const foundState = this.lifecycleData.states.find(\n (item) => item.id === state.id,\n );\n foundState.isInitial = !this.lifecycleCardService.states.length\n ? true\n : false;\n const group = this.initNewStateFormGroup();\n group.patchValue(foundState);\n group.get('index').setValue(this.lifecycleCardService.states.length);\n group.controls.style.setValue({\n name: foundState.name,\n code: foundState.code,\n style: foundState.style,\n });\n\n const data = this.prepareSavingData(\n group.value,\n this.lifecycleCardService.states.length,\n );\n this.blockUIService.start();\n this.lifecycleCardService\n .setConfiguration(group.value.id, data)\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n return throwError(() => error);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.lifecycleCardService.states.push(group);\n this.lifecycleData.stateConfigurations.push(data);\n this.initAvailableStateOptions();\n this.blockUIService.stop();\n this.gridService.detectChanges();\n this.cdr.detectChanges();\n });\n }\n\n /** Loads configuration. */\n private loadConfiguration(): void {\n this.isLoading.set(true);\n this.lifecycleCardService.kindForm.get('states').reset();\n this.lifecycleCardService.states.clear();\n const transitionsRequests: Record> = {};\n this.lifecycleData.stateConfigurations\n .filter((item) => item.entityKindId === this.lifecycleCardService.kindId)\n .sort((a, b) => a.index - b.index)\n .forEach((configuration, index) => {\n transitionsRequests[configuration.stateId] =\n this.lifecycleCardService.getConfiguration(configuration.stateId);\n\n const state = this.lifecycleData.states.find(\n (state) => state.id === configuration.stateId,\n );\n state.isInitial = configuration.isInitial;\n state.index = index;\n const group = this.initNewStateFormGroup();\n group.patchValue(state);\n group.controls.style.setValue({\n name: state.name,\n code: state.code,\n style: state.style,\n });\n this.lifecycleCardService.states.push(group);\n });\n\n if (!Object.keys(transitionsRequests).length) {\n this.initAvailableStateOptions();\n this.isLoading.set(false);\n this.gridService.detectChanges();\n return;\n }\n\n forkJoin(transitionsRequests)\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n return of([]);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (allTransitions) => {\n this.lifecycleCardService.states.controls.map((state: FormGroup) => {\n const stateTransitions = allTransitions[state.value.id];\n if (stateTransitions !== null) {\n stateTransitions?.forEach((transition) => {\n const transitionGroup =\n this.transitionsService.getTransitionGroup(transition);\n const transitionsFormArray = state.controls[\n 'transitions'\n ] as UntypedFormArray;\n transitionsFormArray.push(transitionGroup);\n });\n state.disable();\n }\n });\n\n this.transitionFormService.setAllowedTransitionFormProperties(\n this.entityId,\n this.lifecycleData.entityType,\n );\n\n this.initAvailableStateOptions();\n this.gridService.detectChanges();\n this.cdr.detectChanges();\n this.isLoading.set(false);\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Inits new state form group. */\n private initNewStateFormGroup(): UntypedFormGroup {\n return this.formBuilder.group({\n id: '',\n index: null,\n name: '',\n code: '',\n style: null,\n isInitial: false,\n transitions: this.formBuilder.array([]),\n });\n }\n\n /**\n * Edits selected configuration.\n *\n * @param formGroupValue selected group.\n */\n private editSelectedConfiguration(formGroupValue: StateConfiguration): void {\n this.lifecycleCardService.editKindState(\n this.entityId,\n formGroupValue.id,\n formGroupValue.isInitial,\n formGroupValue.index,\n );\n }\n\n /**\n * Deletes selected configuration state.\n *\n * @param formGroupValue selected group value.\n */\n private deleteSelectedConfiguration(\n formGroupValue: StateConfiguration,\n ): void {\n this.messageService\n .confirmLocal('settings.lifecycles.card.props.state.deleteConfirmation')\n .then(\n () => {\n this.blockUIService.start();\n this.lifecycleCardService\n .setConfiguration(formGroupValue.id, null)\n .pipe(\n switchMap(() => {\n const observables: Observable[] = [];\n /** Updates indexes for configs with indexes bigger than removing element's index. */\n for (\n let i = formGroupValue.index + 1;\n i < this.lifecycleCardService.states.length;\n i++\n ) {\n observables.push(\n this.lifecycleCardService.setConfiguration(\n this.lifecycleCardService.states.at(i).getRawValue().id,\n this.prepareSavingData(\n this.lifecycleCardService.states.at(i).getRawValue(),\n i - 1,\n ),\n ),\n );\n }\n\n return observables.length ? forkJoin(observables) : of(null);\n }),\n switchMap(() => {\n if (\n formGroupValue.isInitial &&\n this.lifecycleCardService.states.length > 1\n ) {\n const newInitial = this.lifecycleCardService.states.controls\n .find((state) => state.value.id !== formGroupValue.id)\n .getRawValue();\n newInitial.isInitial = true;\n return this.lifecycleCardService.setConfiguration(\n newInitial.id,\n this.prepareSavingData(newInitial, 0),\n );\n } else {\n return of(null);\n }\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n this.lifecycleCardService.states.removeAt(formGroupValue.index);\n this.deleteStateFromConfig(formGroupValue.id);\n this.initAvailableStateOptions();\n this.lifecycleCardService.states.controls.forEach(\n (state, index) => state.get('index').setValue(index),\n );\n if (\n formGroupValue.isInitial &&\n this.lifecycleCardService.states.length\n ) {\n this.lifecycleCardService.states\n .at(0)\n .get('isInitial')\n .setValue(true);\n }\n this.blockUIService.stop();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Deletes state from configuration after removing used state.\n *\n * @param id removed state id.\n */\n private deleteStateFromConfig(id: string): void {\n const configIndex = this.lifecycleData.stateConfigurations.findIndex(\n (config) =>\n config.entityKindId === this.lifecycleCardService.kindId &&\n config.stateId === id,\n );\n this.lifecycleData.stateConfigurations.splice(configIndex, 1);\n }\n\n /** Inits available for adding states options. */\n private initAvailableStateOptions(): void {\n this.lifecycleCardService.availableStatesOptions =\n this.lifecycleData.states.filter(\n (item) =>\n !this.lifecycleCardService.states.controls.some(\n (state) => state.value.id === item.id,\n ),\n );\n }\n\n /** Inits subscriptions. */\n private initSubscriptions(): void {\n this.lifecycleCardService.isShowKind$\n .pipe(\n switchMap((value) => {\n if (value) {\n return this.dataService\n .collection(this.lifecycleCardService.entityTypeToCollection)\n .query({ select: ['id', 'name'] })\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n return of([]);\n }),\n );\n } else {\n return of([]);\n }\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((options: NamedEntity[]) => {\n let value = options.length ? options[0] : null;\n if (\n this.lifecycleCardService.kindId &&\n this.lifecycleCardService.entityTypeToCollection &&\n options.find(\n (option) => option.id === this.lifecycleCardService.kindId,\n )\n ) {\n value = this.lifecycleCardService.kindForm.value.kind;\n }\n this.lifecycleCardService.kindForm.get('kind').setValue(value);\n });\n\n this.lifecycleCardService.states.valueChanges\n .pipe(\n debounceTime(Constants.mainFormControlChangedDelayTime),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n const states = this.lifecycleCardService.states\n .getRawValue()\n .map((state) => ({\n ...state,\n style: state.style.style,\n }));\n this.mermaidSchemaService.updateSchema({ states });\n });\n\n this.lifecycleCardService.kindForm\n .get('kind')\n .valueChanges.pipe(\n debounceTime(Constants.mainFormControlChangedDelayTime),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.loadConfiguration();\n });\n\n this.lifecycleCardService.kindForm\n .get('addingState')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (value) {\n this.addState(value);\n this.initAvailableStateOptions();\n }\n this.lifecycleCardService.kindForm\n .get('addingState')\n .setValue(null, { emitEvent: false });\n });\n }\n\n /**\n * Decreases configuration state index.\n *\n * @param formGroupValue selected form group value.\n */\n private decreaseConfigStateIndex(formGroupValue: StateConfiguration): void {\n const index = formGroupValue.index;\n if (!index || this.blockUIService.isActive) {\n return;\n }\n\n this.blockUIService.start();\n this.lifecycleCardService\n .setConfiguration(\n formGroupValue.id,\n this.prepareSavingData(formGroupValue, index - 1),\n )\n .pipe(\n switchMap(() =>\n this.lifecycleCardService\n .setConfiguration(\n this.lifecycleCardService.states.at(index - 1).getRawValue().id,\n this.prepareSavingData(\n this.lifecycleCardService.states.at(index - 1).getRawValue(),\n index,\n ),\n )\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n return throwError(() => error);\n }),\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n const currentGroup = this.lifecycleCardService.states.at(index);\n this.lifecycleCardService.states.removeAt(index);\n this.lifecycleCardService.states.insert(index - 1, currentGroup);\n this.lifecycleCardService.states.controls.forEach((state, index) =>\n state.get('index').setValue(index),\n );\n this.updateConfigIndexes(formGroupValue, index, index - 1);\n this.blockUIService.stop();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n },\n });\n }\n\n /**\n * Increases configuration state index.\n *\n * @param formGroupValue selected form group value.\n */\n private increaseConfigStateIndex(formGroupValue: StateConfiguration): void {\n const index = formGroupValue.index;\n if (\n index === this.lifecycleCardService.states.length - 1 ||\n this.blockUIService.isActive\n ) {\n return;\n }\n\n this.blockUIService.start();\n this.lifecycleCardService\n .setConfiguration(\n formGroupValue.id,\n this.prepareSavingData(formGroupValue, index + 1),\n )\n .pipe(\n switchMap(() =>\n this.lifecycleCardService\n .setConfiguration(\n this.lifecycleCardService.states.at(index + 1).getRawValue().id,\n this.prepareSavingData(\n this.lifecycleCardService.states.at(index + 1).getRawValue(),\n index,\n ),\n )\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n return throwError(() => error);\n }),\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n const currentGroup = this.lifecycleCardService.states.at(index);\n this.lifecycleCardService.states.removeAt(index);\n this.lifecycleCardService.states.insert(index + 1, currentGroup);\n this.lifecycleCardService.states.controls.forEach((state, index) =>\n state.get('index').setValue(index),\n );\n this.updateConfigIndexes(formGroupValue, index, index + 1);\n this.blockUIService.stop();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.blockUIService.stop();\n },\n });\n }\n\n /**\n * Updates config indexes after moving.\n *\n * @param formGroupValue moved state form group value.\n * @param prevIndex previous position index.\n * @param currentIndex current position index.\n */\n private updateConfigIndexes(\n formGroupValue: StateConfiguration,\n prevIndex: number,\n currentIndex: number,\n ): void {\n this.lifecycleData.stateConfigurations.find(\n (config) =>\n config.entityKindId === this.lifecycleCardService.kindId &&\n config.stateId === formGroupValue.id,\n ).index = currentIndex;\n this.lifecycleData.stateConfigurations.find(\n (config) =>\n config.entityKindId === this.lifecycleCardService.kindId &&\n config.stateId ===\n this.lifecycleCardService.states.at(prevIndex).getRawValue().id,\n ).index = prevIndex;\n }\n\n /**\n * Prepares config data before saving.\n * @param formGroupValue form group value.\n * @param index state index.\n */\n private prepareSavingData(\n formGroupValue: StateConfiguration,\n index: number,\n ): StateConfiguration {\n const data: StateConfiguration = {\n stateId: formGroupValue.id,\n isInitial: formGroupValue.isInitial,\n entityKindId: this.lifecycleCardService.kindId,\n index,\n transitions: this.transitionsService.prepareTransitionsDTO(\n formGroupValue.transitions,\n ),\n };\n this.lifecycleCardService.prepareSavingLocalization(data.transitions);\n\n return data;\n }\n}\n","
    \n \n
    \n
    \n \n @if (lifecycleCardService.states.length) {\n \n }\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport _ from 'lodash';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { stateStyles } from 'src/app/shared/models/entities/state.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport { TransitionsService } from 'src/app/settings-app/lifecycle/card/transitions.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { TransitionsToolbarComponent } from 'src/app/settings-app/lifecycle/card/state-modal/transitions-toolbar/transitions-toolbar.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateConfiguration } from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-kind-state-modal',\n templateUrl: './kind-state-modal.component.html',\n styleUrls: ['./kind-state-modal.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class KindStateModalComponent implements OnInit {\n @Input() lifecycleId: string;\n @Input() stateId: string | null;\n @Input() isInitial: boolean;\n @Input() index: number;\n\n public stateStyles = stateStyles;\n public header = '';\n public isSaving = signal(false);\n public isLoading = signal(false);\n public form = this.formBuilder.group({\n id: ['', Validators.required],\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n isInitial: false,\n index: null,\n transitions: this.formBuilder.array([]),\n });\n public gridOptions: GridOptions = {\n toolbar: TransitionsToolbarComponent,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (id: string) => !!id,\n handlerFn: (formGroup: FormGroup) => {\n this.editTransition(formGroup);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (id: string) => !!id,\n handlerFn: (formGroup: FormGroup) => {\n this.deleteTransition(formGroup);\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.transitionsService.editTransition(\n this.lifecycleId,\n this.stateId,\n this.form.controls.transitions.value,\n );\n },\n },\n {\n name: 'edit',\n allowedFn: (id: string) => !!id,\n handlerFn: (formGroup: FormGroup) => {\n this.editTransition(formGroup);\n },\n },\n {\n name: 'delete',\n allowedFn: (id: string) => !!id,\n handlerFn: (formGroup: FormGroup) => {\n this.deleteTransition(formGroup);\n },\n },\n ],\n view: {\n name: 'transitions',\n columns: [\n {\n name: 'name',\n forceCellUpdating: true,\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n },\n {\n name: 'nextStateName',\n forceCellUpdating: true,\n header: 'settings.lifecycles.card.columns.nextState.header',\n hint: 'settings.lifecycles.card.columns.nextState.hint',\n type: GridColumnType.String,\n },\n {\n name: 'performersString',\n forceCellUpdating: true,\n header: 'settings.lifecycles.card.columns.performers.header',\n hint: 'settings.lifecycles.card.columns.performers.hint',\n type: GridColumnType.String,\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n public get transitions(): UntypedFormArray {\n return this.form.controls.transitions as UntypedFormArray;\n }\n\n constructor(\n private lifecycleCardService: LifecycleCardService,\n private formBuilder: UntypedFormBuilder,\n private notificationService: NotificationService,\n private activeModal: NgbActiveModal,\n private gridService: GridService,\n private transitionsService: TransitionsService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.load();\n this.transitionsService.addTransition$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((newGroup: UntypedFormGroup) => {\n this.addNewTransitionGroup(newGroup);\n this.gridService.detectChanges();\n });\n }\n\n /** Saves kind states. */\n public save(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.form.enable();\n const transitionsData = this.transitionsService.prepareTransitionsDTO(\n this.form.controls.transitions.value,\n );\n const data: StateConfiguration = {\n stateId: this.form.value.id,\n isInitial: this.form.value.isInitial,\n index: this.form.value.index,\n entityKindId: this.lifecycleCardService.kindId,\n transitions: transitionsData,\n };\n this.lifecycleCardService.prepareSavingLocalization(data.transitions);\n\n this.isSaving.set(true);\n this.lifecycleCardService\n .setConfiguration(this.stateId, data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.isSaving.set(false);\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /** Loads data. */\n private load(): void {\n this.isLoading.set(true);\n\n this.lifecycleCardService\n .getConfiguration(this.stateId)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (transitions) => {\n const state = this.lifecycleCardService.lifecycleStates.find(\n (state) => state.id === this.stateId,\n );\n this.setHeader(state.name);\n this.form.patchValue(state);\n this.form.get('isInitial').setValue(this.isInitial);\n this.form.get('index').setValue(this.index);\n if (transitions.length) {\n transitions.map((transition) => {\n this.addNewTransitionGroup(transition);\n });\n }\n this.isLoading.set(false);\n if (this.form.controls.isInitial.value) {\n this.form.controls.isInitial.disable();\n }\n this.cdr.markForCheck();\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Adds new group.\n *\n * @param transition transition data.\n */\n private addNewTransitionGroup(transition: any): void {\n const transitionGroup =\n this.transitionsService.getTransitionGroup(transition);\n /* Add group to transitions form array. */\n const transitions = this.form.controls.transitions as UntypedFormArray;\n transitions.push(transitionGroup);\n this.gridService.detectChanges();\n }\n\n /** Sets header value.\n *\n * @param header header name.\n */\n private setHeader(header?: string): void {\n this.header = header\n ? header\n : 'settings.lifecycles.card.props.state.createHeader';\n }\n\n /**\n * Edits transition.\n *\n * @param formGroup editing form group.\n */\n private editTransition(formGroup: FormGroup): void {\n this.transitionsService.editTransition(\n this.lifecycleId,\n this.stateId,\n this.form.controls.transitions.value,\n formGroup,\n );\n }\n\n /**\n * Deletes transition from form array.\n *\n * @param formGroup deleting form group.\n */\n private deleteTransition(formGroup: FormGroup): void {\n const index = this.form.controls.transitions.value.findIndex(\n (transition) => transition.id === formGroup.value.id,\n );\n if (index || index === 0) {\n this.transitions.removeAt(index);\n }\n }\n}\n","
    \n
    \n

    \n {{ header | translate }}\n

    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n selector: 'tmt-kind-toolbar',\n templateUrl: './kind-toolbar.component.html',\n styleUrl: './kind-toolbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class KindToolbarComponent extends AbstractToolbar implements OnInit {\n constructor(\n public lifecycleCardService: LifecycleCardService,\n override gridService: GridService,\n override cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n }\n\n /** Adds state. */\n public selectState(state: NamedEntity): void {\n this.lifecycleCardService.kindForm.get('addingState').setValue(state);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n @if (lifecycleCardService.isShowKind$ | async) {\n
    \n
    \n \n
    \n
    \n }\n
    \n
    \n \n
    \n @for (state of lifecycleCardService.availableStatesOptions; track state.id) {\n \n } @empty {\n
    \n {{ 'shared.noOptions' | translate }}\n
    \n }\n
    \n
    \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n \n \n \n\n \n \n \n
    \n
    \n}\n","import { Component, DestroyRef, Inject, OnInit, inject } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { LifecycleToolbarComponent } from './lifecycle-toolbar/lifecycle-toolbar.component';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { LifecycleCardService } from './lifecycle-card.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Lifecycle } from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridCommandColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n@Component({\n selector: 'tmt-lifecycle',\n templateUrl: './lifecycle-card.component.html',\n styleUrl: './lifecycle-card.component.scss',\n providers: [GridService],\n standalone: false,\n})\nexport class LifecycleCardComponent implements OnInit {\n public isLoading: boolean;\n public readonly: boolean;\n public lifecycleData: Lifecycle;\n\n public form: FormGroup = this.fb.group({\n id: '',\n name: '',\n entityType: '',\n states: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n toolbar: LifecycleToolbarComponent,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (id) => !this.readonly && id,\n handlerFn: (formGroup: FormGroup) => {\n this.service.editState(this.entityId, formGroup.getRawValue()?.id);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (id) => !this.readonly && id,\n handlerFn: (formGroup: FormGroup) => {\n this.deleteSelectedState(formGroup);\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.service.editState(this.entityId);\n },\n },\n {\n name: 'edit',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.service.editState(\n this.entityId,\n this.gridService.selectedGroupValue?.id,\n );\n },\n },\n {\n name: 'delete',\n allowedFn: (id: string) => !!id,\n handlerFn: () => {\n this.deleteSelectedState(this.gridService.selectedGroup$.getValue());\n },\n },\n ],\n view: {\n name: 'states',\n columns: [\n {\n name: 'name',\n command: 'edit',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.Command,\n },\n {\n name: 'code',\n width: '120px',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'style',\n width: '120px',\n header: 'settings.lifecycles.card.props.state.style',\n hint: 'settings.lifecycles.card.props.state.style',\n type: GridColumnType.State,\n },\n {\n name: 'isSystem',\n width: '150px',\n header: 'settings.lifecycles.card.props.state.isSystem.label',\n hint: 'settings.lifecycles.card.props.state.isSystem.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isEntityProtected',\n width: '150px',\n header:\n 'settings.lifecycles.card.props.state.isEntityProtected.label',\n hint: 'settings.lifecycles.card.props.state.isEntityProtected.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isEntityDisabled',\n width: '150px',\n header: 'settings.lifecycles.card.props.state.isEntityDisabled.label',\n hint: 'settings.lifecycles.card.props.state.isEntityDisabled.hint',\n type: GridColumnType.Boolean,\n },\n ],\n },\n };\n\n private loadingSubscription;\n\n private destroyRef = inject(DestroyRef);\n\n public get states(): UntypedFormArray {\n return this.form.controls.states as UntypedFormArray;\n }\n\n constructor(\n @Inject('entityId') public entityId: string,\n private notification: NotificationService,\n public service: LifecycleCardService,\n private fb: UntypedFormBuilder,\n private messageService: MessageService,\n private navigationService: NavigationService,\n private actionService: ActionPanelService,\n private gridService: GridService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n\n this.service.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.load();\n this.gridService.selectGroup(null);\n });\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n private getStateFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: '',\n name: '',\n code: '',\n style: null,\n isSystem: false,\n isEntityProtected: false,\n isEntityDisabled: false,\n });\n }\n\n private reload(): void {\n this.service.reload();\n }\n\n private load(): void {\n this.isLoading = true;\n this.states.clear();\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.service\n .getLifecycle(this.entityId)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (lifecycle: Lifecycle) => {\n this.lifecycleData = lifecycle;\n this.form.patchValue(lifecycle);\n\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: lifecycle.name,\n });\n\n /* Перебираем состояния */\n (lifecycle.states.sort(naturalSort('name')) as State[]).forEach(\n (state) => {\n const group = this.getStateFormGroup();\n group.patchValue(state);\n\n group.controls.style.setValue({\n name: state.name,\n code: state.code,\n style: state.style,\n });\n\n this.states.push(group);\n },\n );\n\n this.readonly = !lifecycle.editAllowed;\n\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n private deleteSelectedState(formGroup: FormGroup): void {\n this.messageService\n .confirmLocal('settings.lifecycles.card.props.state.deleteConfirmation')\n .then(\n () => {\n this.service\n .deleteState(formGroup.getRawValue()?.id)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.load();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n}\n","\n
    \n \n
    \n@if (!isLoading) {\n
    \n
    \n \n\n \n
    \n\n \n\n \n \n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BehaviorSubject, forkJoin, Observable, of, Subject } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n Lifecycle,\n StateConfiguration,\n} from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { StateModalComponent } from './state-modal/state-modal.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { FormBuilder, FormGroup, UntypedFormArray } from '@angular/forms';\nimport { ENTITY_TYPE_TO_COLLECTION } from 'src/app/shared/models/entities/entity-type-description.model';\nimport { KindStateModalComponent } from 'src/app/settings-app/lifecycle/card/kind-settings/kind-state-modal/kind-state-modal.component';\nimport { NotificationService } from 'src/app/core/notification.service';\n\n@Injectable()\nexport class LifecycleCardService {\n public kindForm: FormGroup;\n public entityTypeToCollection: string;\n public availableStatesOptions: NamedEntity[] = [];\n public isShowKind$ = new BehaviorSubject(false);\n\n public get kindId(): string {\n return this.kindForm.value.kind?.id ?? null;\n }\n\n public get states(): UntypedFormArray {\n return this.kindForm?.controls?.states as UntypedFormArray;\n }\n\n constructor(\n private translate: TranslateService,\n private data: DataService,\n private modal: NgbModal,\n public app: AppService,\n private formBuilder: FormBuilder,\n private notificationService: NotificationService,\n ) {\n this.kindForm = this.formBuilder.group({\n id: '',\n kind: null,\n name: '',\n entityType: '',\n addingState: null,\n states: this.formBuilder.array([]),\n });\n }\n\n /* Все состояния текущего ЖЦ, необходимые при редактировании какого-либо одного состояния */\n public lifecycleStates: State[] = [];\n\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private lifecycleName: string;\n private destroyRef = inject(DestroyRef);\n\n /** Запустить проверку изменений */\n public detectChanges() {\n this.changesSubject.next();\n }\n\n /** Method for reloading */\n reload() {\n this.reloadSubject.next();\n }\n\n /** Получить жизненный цикл. */\n getLifecycle(lifecycleId: string) {\n this.lifecycleStates = [];\n return this.data\n .collection('Lifecycles')\n .entity(lifecycleId)\n .get({\n expand: ['states'],\n })\n .pipe(\n tap((lifecycle) => {\n this.lifecycleStates = lifecycle.states;\n this.lifecycleName = lifecycle.entityType;\n }),\n );\n }\n\n /** Получить состояние жизненного цикла. */\n getState(stateId: string) {\n return this.data.collection('States').entity(stateId).get();\n }\n\n /** Gets configuration. */\n public getConfiguration(stateId: string): Observable {\n return this.data\n .collection('States')\n .entity(stateId)\n .function('GetConfiguration')\n .get(null, null, {\n kindId: this.kindId,\n })\n .pipe(\n /* Готовим запросы, чтобы получить имена performers каждого transition */\n switchMap((res: any) => {\n const transitions = res.transitions as Array;\n const userNameRequests = {};\n transitions?.map((transition) => {\n transition.performers?.map((performer) => {\n if (performer.userId) {\n userNameRequests[performer?.userId] = this.getUserName(\n performer.userId,\n );\n }\n });\n });\n\n const groupNameRequests = {};\n transitions?.map((transition) => {\n transition.performers?.map((performer) => {\n if (performer.groupId) {\n groupNameRequests[performer?.groupId] = this.getGroupName(\n performer.groupId,\n );\n }\n });\n });\n\n const permissionSetRequests = {};\n transitions?.map((transition) => {\n transition.performers?.map((performer) => {\n if (performer.permissionSetId) {\n permissionSetRequests[performer?.permissionSetId] =\n this.getPermissionSetName(performer.permissionSetId);\n }\n });\n });\n return forkJoin({\n transitions: of(transitions),\n ...groupNameRequests,\n ...userNameRequests,\n ...permissionSetRequests,\n });\n }),\n /* Записываем полученные имена users в соответствующий performer */\n switchMap((res) => {\n res.transitions?.map((transition) => {\n /* Добавляем поля, необходимые для работы с исполнителями на клиенте */\n /** Для исполнителей */\n transition.performers?.map((performer) => {\n if (\n performer.userId &&\n performer.userId === res[performer.userId]?.id\n ) {\n performer.id = performer.userId;\n performer.name = res[performer.userId].name;\n performer.type = 'user';\n } else if (\n performer.permissionSetId &&\n performer.permissionSetId === res[performer.permissionSetId]?.id\n ) {\n performer.id = performer.permissionSetId;\n performer.name = res[performer.permissionSetId].name;\n performer.type = 'permissionSet';\n } else if (performer.role) {\n performer.id = performer.role;\n performer.name = this.getRoleName(performer.role);\n performer.type = 'role';\n } else if (\n performer.groupId &&\n performer.groupId === res[performer.groupId]?.id\n ) {\n performer.id = performer.groupId;\n performer.name = res[performer.groupId].name;\n performer.type = 'group';\n }\n });\n /**Для запрашиваемых параметров */\n transition.transitionForm?.requestedProperties?.map((property) => {\n const nameControl: NamedEntity = { id: null, name: null };\n nameControl.id = property.name;\n nameControl.name = this.app.getPropertyLocalizationName(\n this.lifecycleName,\n property.name,\n );\n property.nameControl = nameControl;\n });\n });\n\n return of(res.transitions);\n }),\n );\n }\n\n /** Создать состояние. */\n createState(state) {\n return this.data.collection('States').insert(state);\n }\n\n /** Обновить состояние. */\n updateState(state) {\n return this.data.collection('States').entity(state.id).update(state);\n }\n\n /** Sets configuration. */\n public setConfiguration(\n stateId: string,\n configuration: StateConfiguration,\n ): Observable {\n return this.data\n .collection('States')\n .entity(stateId)\n .action('SetConfiguration')\n .execute({\n kindId: this.kindId,\n config: configuration,\n });\n }\n\n /** Удалить состояние. */\n deleteState(stateId) {\n return this.data.collection('States').entity(stateId).delete();\n }\n\n /** Получить имя пользователя. */\n getUserName(userId: string) {\n return this.data\n .collection('Users')\n .entity(userId)\n .get({ select: ['id', 'name'] });\n }\n\n /** Get user group name. */\n getGroupName(groupId: string) {\n return this.data\n .collection('Groups')\n .entity(groupId)\n .get({ select: ['id', 'name'] });\n }\n\n /** Получить имя набора прав. */\n getPermissionSetName(permissionSetId: string) {\n return this.data\n .collection('PermissionSets')\n .entity(permissionSetId)\n .get({ select: ['id', 'name'] });\n }\n\n /** Edits lifecycle state. */\n public editState(lifecycleId: string, stateId?: string): void {\n const modalRef = this.modal.open(StateModalComponent, {\n size: 'lg',\n });\n const instance = modalRef.componentInstance as StateModalComponent;\n\n instance.lifecycleId = lifecycleId;\n instance.stateId = stateId ? stateId : null;\n\n modalRef.result.then(\n () => {\n this.reloadSubject.next();\n },\n () => null,\n );\n }\n\n /** Edits kind state. */\n public editKindState(\n lifecycleId: string,\n stateId?: string,\n isInitial = false,\n index = null,\n ): void {\n const modalRef = this.modal.open(KindStateModalComponent, {\n size: 'lg',\n });\n const instance = modalRef.componentInstance as KindStateModalComponent;\n\n instance.lifecycleId = lifecycleId;\n instance.stateId = stateId ? stateId : null;\n instance.isInitial = isInitial;\n instance.index = index;\n\n modalRef.result.then(\n () => {\n this.reloadSubject.next();\n },\n () => null,\n );\n }\n\n /** Возвращает доступные языки. */\n getLanguages() {\n return this.data.model.function('GetLanguages').query();\n }\n\n /** Получить имя роли. */\n public getRoleName(role: string): string {\n return this.translate.instant(`shared2.props.role${role}`);\n }\n\n /** Получить имя свойства перехода. */\n public getTransitionPropertyDisplayName(\n lifecycleName: string,\n property: string,\n ): string {\n return this.translate.instant(\n `enums.transitionFormProperties.${lifecycleName}.${property}`,\n );\n }\n\n /**\n * Loads meta entity data.\n *\n * @param entityType entity type.\n */\n public loadMetaEntity(entityType: string): void {\n const metaEntity = this.app.getMetaEntity(entityType);\n this.entityTypeToCollection = ENTITY_TYPE_TO_COLLECTION.get(\n metaEntity.lifecycleKindType,\n );\n this.isShowKind$.next(\n !!(metaEntity.lifecycleKindType && metaEntity.lifecycleKindProperty),\n );\n }\n\n /**\n * Prepares localization before saving.\n *\n * @param transitions transitions array.\n */\n public prepareSavingLocalization(transitions: Record[]): void {\n // TODO fix after switching to new localization.\n for (const item of transitions) {\n if (Array.isArray(item.labelStrings)) {\n continue;\n }\n const value = [];\n if (item.labelStrings) {\n Object.keys(item.labelStrings).forEach((key) =>\n value.push({\n language: _.upperFirst(key),\n value: item.labelStrings[key],\n }),\n );\n }\n item.labelStrings = value;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-lifecycle-toolbar',\n templateUrl: './lifecycle-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class LifecycleToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(\n override gridService: GridService,\n override cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n}\n","import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { stateStyles } from 'src/app/shared/models/entities/state.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LifecycleCardService } from '../lifecycle-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Диалог редактирования/добавления состояния ЖЦ. */\n@Component({\n selector: 'wp-state-modal',\n templateUrl: './state-modal.component.html',\n styleUrls: ['./state-modal.component.scss'],\n standalone: false,\n})\nexport class StateModalComponent implements OnInit {\n @Input() lifecycleId: string;\n @Input() stateId: string | null;\n\n public stateStyles = stateStyles;\n public header = '';\n public isSaving: boolean;\n public form = this.fb.group({\n id: [Guid.generate(), Validators.required],\n index: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n style: ['primary', Validators.required],\n isSystem: false,\n isActive: true,\n isEntityProtected: false,\n isEntityDisabled: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n public service: LifecycleCardService,\n ) {}\n\n ngOnInit(): void {\n this.initState();\n }\n\n /** Saves state. */\n public save(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n /* Включаем все контролы, чтобы получить их значения */\n this.form.enable();\n const data = {\n ...this.form.value,\n lifecycleId: this.lifecycleId,\n };\n delete data.transitions;\n this.disablePropsIsSystem();\n\n this.isSaving = true;\n if (this.stateId) {\n this.service\n .updateState(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.notification.error(error.message);\n },\n });\n } else {\n /* Индекс для нового состояния (оптимально просто взять длину массива, т.к. она равна макс. индекс + 1) */\n const index = this.service.lifecycleStates.length;\n this.service\n .createState({ ...data, index })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.notification.error(error.message);\n },\n });\n }\n }\n\n private initState(): void {\n const state = this.service.lifecycleStates.find(\n (state) => state.id === this.stateId,\n );\n this.setHeader(state?.name);\n this.form.patchValue(state);\n this.disablePropsIsSystem();\n }\n\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n public setStyle(style: string): void {\n this.form.controls.style.setValue(style);\n }\n\n private setHeader(header?: string): void {\n this.header = header\n ? header\n : 'settings.lifecycles.card.props.state.createHeader';\n }\n\n /* Disables props. */\n private disablePropsIsSystem(): void {\n this.form.controls.isSystem.disable();\n if (this.form.controls.isSystem.value) {\n this.form.controls.name.disable();\n this.form.controls.code.disable();\n }\n }\n}\n","
    \n
    \n

    \n {{ header | translate }}\n

    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n {{\n form.controls.name.value ? form.controls.name.value : form.controls.style.value\n }}\n \n
    \n
    \n \n {{ form.controls.name.value ? form.controls.name.value : style }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { FormArray, UntypedFormArray, UntypedFormGroup } from '@angular/forms';\n\nimport { TransitionsService } from 'src/app/settings-app/lifecycle/card/transitions.service';\nimport { TransitionFormService } from './transition-form.service';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n GridSelectControlColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-transition-form',\n templateUrl: './transition-form.component.html',\n styleUrls: ['./transition-form.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TransitionFormComponent implements OnInit {\n @Input() transitionFormFormGroup: UntypedFormGroup;\n @Input() lifecycleId: string;\n\n public get requestedProperties(): UntypedFormArray {\n return this.transitionFormFormGroup.controls[\n 'requestedProperties'\n ] as UntypedFormArray;\n }\n\n public gridOptions: GridOptions = {\n sorting: false,\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => this.addProperty(),\n },\n {\n name: 'delete',\n handlerFn: () => this.deleteProperty(),\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup, index: number) =>\n this.deleteProperty(index),\n },\n ],\n view: {\n name: 'strings',\n columns: [\n {\n name: 'nameControl',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.SelectControl,\n placeholder: 'shared.columns.name',\n values: this.transitionFormService.allowedTransitionFormProperties$,\n },\n {\n name: 'isRequired',\n header:\n 'settings.lifecycles.card.props.transition.form.columns.isRequired.header',\n hint: 'settings.lifecycles.card.props.transition.form.columns.isRequired.hint',\n type: GridColumnType.BooleanControl,\n placeholder:\n 'settings.lifecycles.card.props.transition.form.columns.isRequired.header',\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n private lifecycleCardService: LifecycleCardService,\n private transitionsService: TransitionsService,\n private transitionFormService: TransitionFormService,\n ) {}\n\n /** Добавить свойство. */\n addProperty() {\n const newGroup = this.transitionsService.getRequestedPropertyFormGroup();\n this.requestedProperties.push(newGroup);\n this.gridService.selectGroup(newGroup);\n }\n\n /** Удалить свойство. */\n deleteProperty(index?: number) {\n const requestedProperties = this.transitionFormFormGroup.controls\n .requestedProperties as FormArray;\n index =\n index ??\n requestedProperties.value.findIndex(\n (s) => s.id === this.gridService.selectedGroupValue.id,\n );\n\n requestedProperties.removeAt(index);\n requestedProperties.markAsDirty();\n }\n\n ngOnInit(): void {\n this.lifecycleCardService.changes$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.gridService.detectChanges());\n }\n}\n","
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n
    \n \n \n {{ 'shared.actions.add' | translate }}\n \n \n \n \n
    \n
    \n\n \n\n","import { Injectable } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AppService } from 'src/app/core/app.service';\n\n@Injectable()\nexport class TransitionFormService {\n //Allowed transition form properties.\n public allowedTransitionFormProperties$ = null;\n\n constructor(\n private data: DataService,\n private translate: TranslateService,\n private appService: AppService,\n ) {}\n\n /**\n * Sets allowed transition form properties.\n * @param lifecycleId Lifecycle Id.\n * @param entityType Entity type.\n */\n public setAllowedTransitionFormProperties(\n lifecycleId: string,\n entityType: string,\n ) {\n this.allowedTransitionFormProperties$ = this.data\n .collection('Lifecycles')\n .entity(lifecycleId)\n .function('GetAllowedTransitionFormProperties')\n .get()\n .pipe(\n map((allowedProperties: string[]) =>\n allowedProperties.map((property) => {\n const namedEntity = {\n id: property,\n name: this.appService.getPropertyLocalizationName(\n entityType,\n property,\n ),\n };\n return namedEntity;\n }),\n ),\n shareReplay(),\n );\n }\n\n /**\n * Gets transition property name localization.\n * @param lifecycleName Lifecycle name.\n * @param property Property name.\n */\n public getTransitionPropertyName(\n lifecycleName: string,\n property: string,\n ): string {\n return this.translate.instant(\n `enums.transitionFormProperties.${lifecycleName}.${property}`,\n );\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { cloneDeep } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/** Диалог редактирования/добавления перехода ЖЦ. */\n@Component({\n selector: 'wp-transition-modal',\n templateUrl: './transition-modal.component.html',\n styleUrls: ['./transition-modal.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class TransitionModalComponent implements OnInit, OnDestroy {\n @Input() lifecycleId: string;\n @Input() stateId: string | null;\n @Input() transitions: any;\n @Input() transitionFormGroup: UntypedFormGroup;\n\n public isSaving: boolean;\n public form = this.fb.group({\n id: [Guid.generate(), Validators.required],\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n iconClass: null,\n labelStrings: null,\n nextState: [null, Validators.required],\n nextStateId: ['', Validators.required],\n nextStateName: ['', Validators.required],\n performersString: '',\n performers: this.fb.array([]),\n hasTransitionForm: [false],\n transitionForm: this.fb.group({\n requestComment: [false],\n commentIsRequired: [false],\n requestedProperties: this.fb.array([]),\n }),\n });\n public nextStateOptions = [];\n\n public get labelStrings(): UntypedFormControl {\n return this.form.controls['labelStrings'] as UntypedFormControl;\n }\n\n private destroyed$ = new Subject();\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n public service: LifecycleCardService,\n private translate: TranslateService,\n private message: MessageService,\n ) {}\n\n public ok() {\n this.form.updateValueAndValidity();\n const warnings: string[] = [];\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.service.detectChanges();\n warnings.push('shared.messages.requiredFieldsError');\n }\n /** Проверка на наличие исполнителей */\n if (this.form.value.performers.length === 0) {\n warnings.push(\n 'settings.lifecycles.card.props.transition.messages.performerCountError',\n );\n }\n /**Проверка на дубликаты по запрашиваемым параметрам формы */\n if (this.form.value.transitionForm?.requestedProperties) {\n const duplicates =\n this.form.value.transitionForm?.requestedProperties.filter(\n (property, index, properties) =>\n properties.find(\n (prop) =>\n prop.nameControl &&\n property.nameControl &&\n prop.nameControl.id === property.nameControl.id &&\n prop.id !== property.id,\n ),\n );\n if (duplicates.length > 0) {\n warnings.push(\n 'settings.lifecycles.card.props.transition.messages.duplicatedTransitionProperties',\n );\n }\n }\n\n if (\n this.transitions\n .filter((s) => s.id !== this.form.value.id)\n .find((s) => s.nextStateId === this.form.value.nextStateId)\n ) {\n warnings.push(\n 'settings.lifecycles.card.props.transition.messages.duplicatedTransition',\n );\n }\n if (warnings.length) {\n /**Показываем окно с перечнем ошибок, если они есть */\n const exception: Exception = {\n message: this.translate.instant(\n 'settings.lifecycles.card.props.transition.messages.errors',\n ),\n details: [],\n code: '',\n };\n warnings.forEach((warn) => {\n exception.details.push({\n message: this.translate.instant(warn),\n code: '',\n });\n });\n\n this.message.errorDetailed(\n exception,\n this.translate.instant('shared.dataNotSaved'),\n );\n return;\n }\n this.activeModal.close(this.form.value);\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n getHeader(): string {\n return this.transitionFormGroup\n ? this.transitionFormGroup.controls.name.value\n : 'settings.lifecycles.card.props.transition.createHeader';\n }\n\n private getPerformerFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n performer: { id: null, name: null, type: null },\n });\n }\n\n ngOnInit() {\n this.setFormValue();\n this.form.controls.nextState.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((state) => {\n this.form.controls.nextStateId.setValue(state?.id);\n this.form.controls.nextStateName.setValue(state?.name);\n });\n\n this.service.states.controls.forEach((state) => {\n this.nextStateOptions.push({\n id: state.getRawValue().id,\n name: state.getRawValue().name,\n });\n });\n }\n\n private setFormValue() {\n if (this.transitionFormGroup) {\n this.form.patchValue(this.transitionFormGroup.getRawValue());\n /* Значения в контрол nextState */\n this.form.controls.nextState.setValue({\n id: this.transitionFormGroup.getRawValue().nextStateId,\n name: this.transitionFormGroup.getRawValue().nextStateName,\n });\n\n if (this.transitionFormGroup.controls.performers.getRawValue()) {\n /* Перебираем всех performers у данного transition */\n this.transitionFormGroup.controls.performers\n .getRawValue()\n .forEach((performer) => {\n const performerGroup = this.getPerformerFormGroup();\n /* Патчим каждого в группу */\n performerGroup.controls.performer.patchValue(performer);\n const performersArray = this.form.controls\n .performers as UntypedFormArray;\n performersArray.push(performerGroup);\n });\n }\n if (this.transitionFormGroup.controls.transitionForm) {\n const groupCopy = cloneDeep(\n this.transitionFormGroup.controls.transitionForm,\n );\n this.form.controls.transitionForm = groupCopy;\n /**Включаем, т.к. по умолчанию в карточке ЖЦ все задизейблено, из-за особенности обновления грида */\n this.form.controls.transitionForm.enable();\n }\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n\n
    \n \n
    \n \n \n \n \n \n \n
    \n
    \n \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-transitions-toolbar',\n templateUrl: './transitions-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TransitionsToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(\n protected override gridService: GridService,\n protected override cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n }\n}\n","
    \n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport _ from 'lodash';\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LifecycleCardService } from '../lifecycle-card.service';\nimport { TransitionModalComponent } from '../state-modal/transition-modal/transition-modal.component';\nimport { TransitionsService } from '../transitions.service';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { StateConfiguration } from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\n\n@Component({\n selector: 'tmt-transitions-cell',\n templateUrl: './transitions-cell.component.html',\n styleUrls: ['./transitions-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TransitionsCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n private destroyRef = inject(DestroyRef);\n\n public get transitions(): UntypedFormArray {\n return this.formGroup.controls.transitions as UntypedFormArray;\n }\n\n public get stateId(): string {\n return this.formGroup.value.id as string;\n }\n\n constructor(\n @Inject('entityId') public lifecycleId: string,\n public gridService: GridService,\n public lifecycleService: LifecycleCardService,\n public cdr: ChangeDetectorRef,\n public transitionsService: TransitionsService,\n private modal: NgbModal,\n private blockUI: BlockUIService,\n private notification: NotificationService,\n ) {}\n\n ngOnInit(): void {\n this.transitions.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n /** Отредактировать переход */\n editTransition(index: number) {\n const transitionFormGroup = this.transitions.controls[\n index\n ] as UntypedFormGroup;\n if (this.gridService.readonly) {\n return;\n }\n\n const modalRef = this.modal.open(TransitionModalComponent);\n const instance = modalRef.componentInstance as TransitionModalComponent;\n\n instance.lifecycleId = this.lifecycleId;\n instance.stateId = this.stateId;\n instance.transitions = this.transitions.value;\n\n instance.transitionFormGroup = transitionFormGroup;\n\n modalRef.result.then(\n (newGroup) => {\n newGroup.performers = newGroup.performers.map((performerLine) => ({\n id: performerLine.performer.id,\n name: performerLine.performer.name,\n type: performerLine.performer.type,\n }));\n\n this.transitionsService.patchTransitionFormGroup(\n transitionFormGroup,\n newGroup,\n );\n\n const data: StateConfiguration = {\n stateId: this.stateId,\n isInitial: this.formGroup.value.isInitial,\n index: this.formGroup.value.index,\n entityKindId: this.lifecycleService.kindId,\n transitions: this.transitionsService.prepareTransitionsDTO(\n this.formGroup.controls.transitions.value,\n ),\n };\n this.lifecycleService.prepareSavingLocalization(data.transitions);\n\n this.blockUI.start();\n this.transitionsService\n .setConfiguration(this.stateId, data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.blockUI.stop();\n this.notification.successLocal(\n 'settings.lifecycles.card.props.transition.edited',\n );\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n @for (transition of transitions.value; track transition.id) {\n
    \n \n {{ transition.name }}\n \n \n {{ transition.nextStateName }}: \n\n \n {{ transition.performersString }}\n \n
    \n
    \n }\n
    \n}\n","import { Injectable } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, Subject } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Transition } from 'src/app/shared/models/entities/state.model';\nimport { LifecycleCardService } from './lifecycle-card.service';\nimport { TransitionModalComponent } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-modal.component';\nimport { StateConfiguration } from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\n\n/** Сервис для работы с переходами состояний ЖЦ */\n@Injectable()\nexport class TransitionsService {\n private addTransitionSubject = new Subject();\n public addTransition$ = this.addTransitionSubject.asObservable();\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n constructor(\n public app: AppService,\n private data: DataService,\n private modal: NgbModal,\n private fb: UntypedFormBuilder,\n private lifecycleService: LifecycleCardService,\n ) {}\n\n /** Обновить переходы состояния жизненного цикла. */\n public setConfiguration(\n stateId: string,\n configuration: StateConfiguration,\n ): Observable {\n return this.data\n .collection('States')\n .entity(stateId)\n .action('SetConfiguration')\n .execute({\n kindId: this.lifecycleService.kindId,\n config: configuration,\n });\n }\n\n /** Возвращает группу перехода */\n public getTransitionGroup(transition: Transition) {\n /* Патчим каждый в свою группу */\n const transitionGroup = this.getEmptyTransitionFormGroup();\n transitionGroup.patchValue(transition);\n transitionGroup.controls.nextStateName.setValue(\n this.getNextStateName(transition.nextStateId),\n );\n /* Получаем строку с названиями всех performers */\n const performersString: string = this.getPerformerString(transition);\n transitionGroup.controls.performersString.setValue(performersString);\n if (transition.performers) {\n /* Перебираем всех performers у данного transition */\n transition.performers.map((performer) => {\n /* Патчим каждого в свою группу */\n const performerGroup = this.getPerformerFormGroup();\n performerGroup.patchValue(performer);\n /* Добавляем группу с performer в массив performers */\n const performersArray = transitionGroup.controls\n .performers as UntypedFormArray;\n performersArray.push(performerGroup);\n });\n }\n if (transition.transitionForm) {\n const transitionForm = this.getEmptyTransitionFormFormGroup();\n transitionForm.patchValue(transition.transitionForm);\n /** Заполняем требуемые поля, если они есть */\n if (transition.transitionForm.requestedProperties) {\n /* Перебираем все запрашиваемые свойства */\n transition.transitionForm.requestedProperties.map((property) => {\n /* Патчим каждого в свою группу */\n const propertyGroup = this.getRequestedPropertyFormGroup();\n propertyGroup.patchValue(property);\n /* Добавляем группу с requestedProperty в массив requestedProperties */\n const propertiesArray = transitionForm.controls\n .requestedProperties as UntypedFormArray;\n propertiesArray.push(propertyGroup);\n });\n transitionGroup.controls.transitionForm = transitionForm;\n }\n }\n return transitionGroup;\n }\n\n /** Возвращает пустую группу перехода */\n private getEmptyTransitionFormGroup(): FormGroup {\n return this.fb.group({\n id: '',\n name: '',\n iconClass: null,\n labelStrings: null,\n nextStateId: '',\n nextStateName: '',\n performersString: '',\n performers: this.fb.array([]),\n hasTransitionForm: false,\n transitionForm: this.getEmptyTransitionFormFormGroup(),\n });\n }\n\n /** Возвращает пустую FormGroup для свойства transitionForm перехода */\n public getEmptyTransitionFormFormGroup(): FormGroup {\n return this.fb.group({\n requestComment: false,\n commentIsRequired: false,\n requestedProperties: this.fb.array([]),\n });\n }\n\n /** Возвращает имя состояния */\n private getNextStateName(stateId: string): string {\n let stateName = '';\n this.lifecycleService.lifecycleStates.map((state) => {\n if (stateId === state.id) {\n stateName = state.name;\n }\n });\n return stateName;\n }\n\n /** Возвращает группу для исполнителя перехода. */\n private getPerformerFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: null,\n name: null,\n type: null,\n });\n }\n\n /** Возвращает группу для параметра перехода. */\n public getRequestedPropertyFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n name: null,\n nameControl: [null, Validators.required],\n isRequired: false,\n });\n }\n\n /** Возвращает строку с перечислением исполнителей состояния. */\n private getPerformerString(transition: Transition) {\n return transition?.performers?.reduce(\n (prev, performer, index) =>\n index === 0 ? performer?.name : prev + `, ${performer?.name}`,\n '',\n );\n }\n\n /** Создать/отредактировать переход */\n public editTransition(\n lifecycleId: string,\n stateId: string,\n transitions: any,\n transitionFormGroup?: UntypedFormGroup,\n ) {\n const modalRef = this.modal.open(TransitionModalComponent);\n const instance = modalRef.componentInstance as TransitionModalComponent;\n\n instance.lifecycleId = lifecycleId;\n instance.stateId = stateId;\n instance.transitions = transitions;\n\n instance.transitionFormGroup = transitionFormGroup\n ? transitionFormGroup\n : null;\n\n modalRef.result.then(\n (newGroup) => {\n newGroup.performers = newGroup.performers.map((performerLine) => ({\n id: performerLine.performer.id,\n name: performerLine.performer.name,\n type: performerLine.performer.type,\n }));\n if (transitionFormGroup) {\n this.patchTransitionFormGroup(transitionFormGroup, newGroup);\n } else {\n this.addTransitionSubject.next(newGroup);\n }\n },\n () => null,\n );\n }\n\n /** Обновляет группу перехода */\n public patchTransitionFormGroup(\n transitionGroup: UntypedFormGroup,\n newGroup: Transition,\n ) {\n transitionGroup.enable();\n const performersArray = transitionGroup.controls\n .performers as UntypedFormArray;\n performersArray.clear();\n transitionGroup.patchValue(newGroup);\n /* Получаем строку с названиями всех performers */\n const performersString: string = this.getPerformerString(newGroup);\n transitionGroup.controls.performersString.setValue(performersString);\n if (newGroup.performers) {\n /* Перебираем всех performers у данного transition */\n newGroup.performers.map((performer) => {\n /* Патчим каждого в свою группу */\n const performerGroup = this.getPerformerFormGroup();\n performerGroup.patchValue(performer);\n /* Добавляем группу с performer в массив performers */\n performersArray.push(performerGroup);\n });\n }\n /** Обновляем transition form */\n const transitionForm = transitionGroup.controls\n .transitionForm as UntypedFormGroup;\n const requestedPropertiesArray = transitionForm.controls\n .requestedProperties as UntypedFormArray;\n requestedPropertiesArray.clear();\n if (newGroup.transitionForm?.requestedProperties) {\n /* Перебираем все requestedProperties у данного transition */\n newGroup.transitionForm.requestedProperties.map((property) => {\n /* Патчим каждую в свою группу */\n const requestedPropertyGroup = this.getRequestedPropertyFormGroup();\n requestedPropertyGroup.patchValue(property);\n /* Добавляем группу с performer в массив performers */\n requestedPropertiesArray.push(requestedPropertyGroup);\n });\n }\n transitionGroup.disable();\n }\n\n /** Подготавливает DTO для исполнителей переходов. */\n private prepareTransitionsPerformers(transitionData) {\n transitionData.performers.map((performer) => {\n switch (performer.type) {\n case 'user':\n performer.userId = performer.id;\n break;\n case 'role':\n performer.role = performer.id;\n break;\n case 'permissionSet':\n performer.permissionSetId = performer.id;\n break;\n case 'group':\n performer.groupId = performer.id;\n break;\n }\n });\n\n return transitionData;\n }\n\n /** Подготавливает DTO для форм переходов. */\n private prepareTransitionsForm(transitionData) {\n if (transitionData.transitionForm) {\n if (transitionData.transitionForm.requestedProperties) {\n transitionData.transitionForm.requestedProperties.map((property) => {\n if (property.nameControl) {\n property.name = property.nameControl.id;\n delete property.id;\n delete property.nameControl;\n }\n });\n }\n }\n return transitionData;\n }\n\n /** Возвращает DTO для переходов. */\n public prepareTransitionsDTO(transitionsData): Transition[] {\n transitionsData.map((transition) => {\n /** Подготовка performers */\n transition = this.prepareTransitionsPerformers(transition);\n /**Подготовка transitionsForm */\n transition = this.prepareTransitionsForm(transition);\n });\n return transitionsData;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { LifecycleListComponent } from './list/lifecycle-list.component';\nimport { LIFECYCLE_LIST } from 'src/app/shared/lists/lifecycle.list';\nimport { LifecycleCardComponent } from './card/lifecycle-card.component';\nimport { LifecycleToolbarComponent } from './card/lifecycle-toolbar/lifecycle-toolbar.component';\nimport { LifecycleCardService } from './card/lifecycle-card.service';\nimport { StateModalComponent } from './card/state-modal/state-modal.component';\nimport { TransitionsCellComponent } from './card/transitions-cell/transitions-cell.component';\nimport { TransitionsService } from './card/transitions.service';\nimport { NamingLocalizationModule } from '../shared/naming-localization/naming-localization.module';\nimport { PerformersModule } from '../shared/performers/performers.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { TransitionsToolbarComponent } from 'src/app/settings-app/lifecycle/card/state-modal/transitions-toolbar/transitions-toolbar.component';\nimport { TransitionModalComponent } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-modal.component';\nimport { TransitionFormComponent } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.component';\nimport { TransitionFormService } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.service';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { KindSettingsComponent } from 'src/app/settings-app/lifecycle/card/kind-settings/kind-settings.component';\nimport { KindStateModalComponent } from 'src/app/settings-app/lifecycle/card/kind-settings/kind-state-modal/kind-state-modal.component';\nimport { KindToolbarComponent } from 'src/app/settings-app/lifecycle/card/kind-settings/kind-toolbar/kind-toolbar.component';\n\n@NgModule({\n declarations: [\n LifecycleListComponent,\n LifecycleCardComponent,\n LifecycleToolbarComponent,\n StateModalComponent,\n TransitionsToolbarComponent,\n TransitionModalComponent,\n TransitionsCellComponent,\n TransitionFormComponent,\n KindSettingsComponent,\n KindStateModalComponent,\n KindToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PerformersModule,\n NamingLocalizationModule,\n GridModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.lifecycles',\n url: '/lifecycles',\n component: LifecycleListComponent,\n params: {\n navigation: 'settings.lifecycles',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: LIFECYCLE_LIST },\n ],\n },\n {\n name: 'settings.lifecycle',\n redirectTo: 'settings.lifecycle.schema',\n params: {\n navigation: 'settings.lifecycles',\n },\n url: '/lifecycles/{entityId:guid}',\n component: LifecycleCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n providers: [LifecycleCardService, TransitionsService, TransitionFormService],\n exports: [TransitionFormComponent],\n})\nexport class LifecyclesModule {}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-lifecycle-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class LifecycleListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n loadedSubscription: Subscription;\n\n constructor(\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.lifecycle', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Location } from 'src/app/shared/models/entities/settings/location.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'wp-location-card',\n templateUrl: './location-card.component.html',\n standalone: false,\n})\nexport class LocationCardComponent implements OnInit {\n @Input() entityId: string;\n\n public readonly: boolean;\n public state: CardState;\n public isSaving = false;\n\n public locationForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: [false],\n isDefault: [false],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.setAsDefault(),\n },\n ]);\n\n this.load();\n }\n\n public reload(): void {\n if (!this.locationForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.locationForm.markAllAsTouched();\n\n if (this.locationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const location = this.locationForm.value;\n\n const data: any = {\n name: location.name,\n code: location.code,\n description: location.description,\n isActive: location.isActive,\n };\n\n this.data\n .collection('Locations')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.locationForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.locations.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n /** Loads Data. */\n private load = (): void => {\n this.state = CardState.Loading;\n this.locationForm.markAsPristine();\n this.locationForm.markAsUntouched();\n this.data\n .collection('Locations')\n .entity(this.entityId)\n .get(null)\n .subscribe({\n next: (location: Location) => {\n this.locationForm.patchValue(location);\n\n this.readonly = !location.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.actionService.action('setAsDefault').isShown =\n !this.readonly && !location.isDefault;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly\n ? this.locationForm.disable()\n : this.locationForm.enable();\n this.state = CardState.Ready;\n\n this.navigationService.addRouteSegment({\n id: location.id,\n title: location.name,\n });\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n\n /** Sets As Default. */\n private setAsDefault(): void {\n this.data\n .collection('Locations')\n .entity(this.entityId)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.locations.card.setAsDefault',\n );\n\n this.actionService.action('setAsDefault').isShown = false;\n this.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n\n\n

    \n  {{\n 'settings.locations.card.usingByDefault' | translate\n }}\n

    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-location-creation',\n templateUrl: './location-creation.component.html',\n standalone: false,\n})\nexport class LocationCreationComponent {\n isSaving = false;\n locationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', [Validators.maxLength(Constants.formCodeMaxLength)]],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.locationForm.markAllAsTouched();\n\n if (this.locationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = this.locationForm.value;\n\n this.data\n .collection('Locations')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.locations.creation.messages.created',\n );\n this.state.go('settings.location', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.locations.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LocationCreationComponent } from 'src/app/settings-app/locations/creation/location-creation.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-location-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class LocationListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n public ngOnInit(): void {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.locations.list.create',\n isVisible: this.app.checkEntityPermission(\n 'Location',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.location', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: this.setAsDefault,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Location', PermissionType.Modify);\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission('Location', PermissionType.Modify) &&\n !row.isDefault;\n });\n }\n\n private create = (): void => {\n this.modalService.open(LocationCreationComponent);\n };\n\n private setAsDefault = (): void => {\n this.data\n .collection('Locations')\n .entity(this.gridService.selectedGroupValue.id)\n .action('SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.locations.card.setAsDefault',\n );\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { LocationCardComponent } from 'src/app/settings-app/locations/card/location-card.component';\nimport { LocationListComponent } from 'src/app/settings-app/locations/list/location-list.component';\nimport { LocationCreationComponent } from 'src/app/settings-app/locations/creation/location-creation.component';\nimport { LocationList } from 'src/app/shared/lists/location.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n LocationCardComponent,\n LocationListComponent,\n LocationCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.locations',\n url: '/locations',\n component: LocationListComponent,\n params: {\n navigation: 'settings.locations',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: LocationList },\n ],\n },\n\n {\n name: 'settings.location',\n params: {\n navigation: 'settings.locations',\n },\n url: '/locations/{entityId:guid}',\n component: LocationCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class LocationsModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { LoginLogEntry } from 'src/app/shared/models/entities/settings/login-log-entry.model';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DateTime } from 'luxon';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-login-log-card',\n templateUrl: './login-log-card.component.html',\n standalone: false,\n})\nexport class LoginLogCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public state: CardState;\n\n loginLogEntry: LoginLogEntry;\n destroyed$ = new Subject();\n name$ = new Subject();\n\n constructor(\n public appService: AppService,\n private data: DataService,\n private actionService: ActionPanelService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n ngOnInit() {\n this.actionService.set([]);\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.load());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private load() {\n this.state = CardState.Loading;\n\n this.data\n .collection('LoginLogEntries')\n .entity(this.entityId)\n .get({\n expand: {\n user: { select: ['id', 'name'] },\n authProvider: { select: ['id', 'name'] },\n },\n })\n .subscribe({\n next: (loginLogEntry: LoginLogEntry) => {\n this.loginLogEntry = loginLogEntry;\n const name = `${loginLogEntry.email} / ${DateTime.fromISO(\n loginLogEntry.created as string,\n )\n .toLocal()\n .toLocaleString(DateTime.DATETIME_MED)}`;\n this.name$.next(name);\n\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: name,\n });\n\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n }\n}\n","\n\n\n\n
    \n
    \n \n
    \n {{ loginLogEntry.created | date: 'medium' : this.appService.session.timeZoneOffset }}\n
    \n
    \n\n
    \n \n
    \n @if (loginLogEntry.user?.name) {\n {{ loginLogEntry.user?.name }}\n } @else {\n {{ 'shared.empty' | translate }}\n }\n
    \n
    \n\n
    \n \n
    \n @if (loginLogEntry.authProvider?.name) {\n {{ loginLogEntry.authProvider?.name }}\n } @else {\n {{ 'shared.empty' | translate }}\n }\n
    \n
    \n\n
    \n \n
    \n {{ loginLogEntry.ipAddress }}\n
    \n
    \n\n
    \n \n
    \n {{ loginLogEntry.userAgent }}\n
    \n
    \n\n
    \n \n
    \n {{ loginLogEntry.isSuccessful | wpBoolean }}\n
    \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class LoginLogEntryFilterService extends FilterService {\n public override hasDetails = false;\n public override hasViewSelector = false;\n public override placeholder = 'settings.loginLog.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(email)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { user: { 'tolower(name)': { contains: text } } },\n ],\n });\n }\n\n return result;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { LoginLogEntryFilterService } from 'src/app/settings-app/login-log/list/login-log-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-login-log-entry-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: LoginLogEntryFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class LoginLogListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private gridService: GridService,\n private state: StateService,\n private actions: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.loginLogCard', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST, FILTER } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\n\nimport { LoginLogList } from 'src/app/shared/lists/login-log.list';\nimport { LoginLogListComponent } from 'src/app/settings-app/login-log/list/login-log-list.component';\nimport { LoginLogCardComponent } from 'src/app/settings-app/login-log/card/login-log-card.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [LoginLogCardComponent, LoginLogListComponent],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.loginLog',\n url: '/login-log?{navigation}&{route}&{filter:json}',\n component: LoginLogListComponent,\n params: {\n navigation: 'settings.loginLog',\n routeMode: null,\n routeHeader: 'finance.entries.list.header',\n route: ROUTE_DEFAULT_PARAMS,\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: LoginLogList },\n {\n token: FILTER,\n deps: [Transition],\n resolveFn: StateHelper.resolveFilter,\n },\n ],\n },\n\n {\n name: 'settings.loginLogCard',\n params: {\n navigation: 'settings.loginLog',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n },\n url: '/login-log/{entityId:guid}?{navigation}&{route}',\n component: LoginLogCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class LoginLogModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Collection, DataService } from 'src/app/core/data.service';\nimport { MetamodelCardService } from 'src/app/settings-app/metamodel/card/metamodel-card.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { MetaEntitySettings } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'tmt-metamodel-handler',\n templateUrl: './metamodel-handler.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MetamodelHandlerComponent implements OnInit, OnDestroy {\n public loading = signal(false);\n public isSaving = signal(false);\n public readonly = signal(\n !this.appService.checkEntityPermission(\n 'MetaEntitySettings',\n PermissionType.Modify,\n ),\n );\n\n public form = this.fb.group({\n code: '',\n });\n public readonly propagationMode = PropagationMode;\n\n private settings: MetaEntitySettings;\n private collection: Collection =\n this.dataService.collection('MetaEntitySettings');\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private dataService: DataService,\n private metamodelCardService: MetamodelCardService,\n private notificationService: NotificationService,\n private actionPanelService: ActionPanelService,\n private messageService: MessageService,\n private fb: FormBuilder,\n private blockUIService: BlockUIService,\n private appService: AppService,\n ) {\n effect(() => {\n if (this.isSaving()) {\n this.actionPanelService.action('save').start();\n this.blockUIService.start();\n } else {\n this.actionPanelService.action('save').stop();\n this.blockUIService.stop();\n }\n });\n }\n\n public ngOnInit(): void {\n this.load();\n\n this.actionPanelService.set([\n {\n title: 'shared2.actions.save',\n hint: 'shared2.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n public ngOnDestroy(): void {\n this.actionPanelService.action('save').isShown = false;\n }\n\n /** Saves handler data. */\n public save(): void {\n this.isSaving.set(true);\n\n this.collection\n .entity(`'${this.settings.id}'`)\n .patch({\n entityType: this.metamodelCardService.entityId,\n entityCustomHooks: encodeURIComponent(this.form.value.code),\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.notificationService.successLocal(\n 'components.metamodelHandlerComponent.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Loads handler data. */\n private load(): void {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.loading.set(true);\n\n this.collection\n .entity(`'${this.metamodelCardService.entityId}'`)\n .get()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (settings: MetaEntitySettings) => {\n this.settings = settings;\n this.form\n .get('code')\n .setValue(\n this.settings.entityCustomHooks\n ? decodeURIComponent(this.settings.entityCustomHooks)\n : '',\n );\n this.loading.set(false);\n this.actionPanelService.action('save').isShown = !this.readonly();\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n },\n error: (error: Exception) => {\n this.loading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Reloads handler data. */\n private reload(): void {\n (!this.form.dirty\n ? Promise.resolve()\n : this.messageService.confirmLocal('shared2.messages.leavePageMessage')\n ).then(\n () => {\n this.actionPanelService.action('save').isShown = false;\n this.load();\n },\n () => null,\n );\n }\n}\n","\n@if (!loading()) {\n \n
    \n
    \n \n \n
    \n
    \n @if (!readonly()) {\n \n {{ 'shared2.actions.save' | translate }}\n \n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnInit,\n} from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { MetamodelCardService } from 'src/app/settings-app/metamodel/card/metamodel-card.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'tmt-metamodel-card',\n templateUrl: './metamodel-card.component.html',\n providers: [MetamodelCardService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MetamodelCardComponent implements OnInit {\n public tabs: TabLink[] = [\n {\n header: 'components.metamodelCardComponent.groups.properties',\n state: 'settings.metamodelCard.properties',\n },\n ];\n\n constructor(\n public metamodelCardService: MetamodelCardService,\n public stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n afterNextRender(() => {\n this.document.getElementById(Constants.defaultRootContainerId).scroll({\n top: 0,\n behavior: 'instant',\n });\n });\n }\n\n public ngOnInit(): void {\n this.metamodelCardService.load();\n this.actionPanelService.action('card').isShown = false;\n\n const showHandler = this.appService.checkEntityPermission(\n 'MetaEntitySettings',\n PermissionType.Read,\n );\n\n if (showHandler) {\n this.tabs.push({\n header: 'components.metamodelCardComponent.groups.handler',\n state: 'settings.metamodelCard.handler',\n });\n }\n }\n}\n","\n\n@if (metamodelCardService.state() === 'Ready') {\n \n
      \n @for (tab of tabs; track tab.state) {\n
    • \n \n {{ tab.header | translate }}\n \n
    • \n }\n
    \n \n}\n","import { Inject, Injectable, signal } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { AppService } from 'src/app/core/app.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { MetaEntity } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n@Injectable()\nexport class MetamodelCardService {\n public entity = signal(null);\n public state = signal(CardState.Loading);\n\n constructor(\n @Inject('entityId') public entityId: string,\n private appService: AppService,\n private navigationService: NavigationService,\n private title: Title,\n ) {}\n\n public load(): void {\n this.entity.set(\n this.appService.session.configuration.metamodel.entities.find(\n (entity) => entity.name === this.entityId,\n ),\n );\n this.state.set(this.entity() ? CardState.Ready : CardState.Error);\n if (this.entity()) {\n this.title.setTitle(this.entity().name);\n this.navigationService.addRouteSegment({\n id: this.entity().name,\n title: this.entity().name,\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MetamodelCardService } from 'src/app/settings-app/metamodel/card/metamodel-card.service';\nimport { LocalString } from 'src/app/shared/models/enums/language.enum';\n\n@Component({\n selector: 'tmt-metamodel-properties',\n templateUrl: './metamodel-properties.component.html',\n styleUrl: './metamodel-properties.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MetamodelPropertiesComponent implements OnInit {\n constructor(\n public metamodelCardService: MetamodelCardService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.hideReloader();\n }\n\n /**\n * Joins array of strings into string separated by ', '\n *\n * @param strings array of strings.\n * @returns joined string.\n */\n public joinString(strings: string[]): string {\n return strings.join(', ');\n }\n\n /**\n * Gets formatted local string.\n *\n * @param localStrings array of LocalString objects.\n * @returns formatted string value.\n */\n public getFormattedLocalStrings(localStrings: LocalString[]): string {\n return localStrings.map((x) => `${x.language}: ${x.value}`).join(', ');\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n @if (metamodelCardService.entity().hierarchyProperty) {\n \n \n \n \n }\n \n
    {{ 'components.metamodelListComponent.props.displayName' | translate }}\n {{ getFormattedLocalStrings(metamodelCardService.entity().displayNames) }}\n
    {{ 'components.metamodelListComponent.props.customizable' | translate }}{{ metamodelCardService.entity().customizable | wpBoolean }}
    {{ 'components.metamodelListComponent.props.usedInBoard' | translate }}{{ metamodelCardService.entity().usedInBoards | wpBoolean }}
    {{ 'components.metamodelListComponent.props.usedInLogging' | translate }}{{ metamodelCardService.entity().usedInLogging | wpBoolean }}
    {{ 'components.metamodelListComponent.props.hasLifecycle' | translate }}{{ metamodelCardService.entity().hasLifecycle | wpBoolean }}
    {{ 'components.metamodelListComponent.props.hierarchyProperty' | translate }}{{ metamodelCardService.entity().hierarchyProperty }}
    \n\n{{\n 'components.metamodelPropertiesComponent.groups.primitiveProperties' | translate\n}}\n\n \n \n \n \n \n \n \n \n \n @for (property of metamodelCardService.entity().primitiveProperties; track property.name) {\n \n \n \n \n \n \n }\n \n
    {{ 'shared2.props.name' | translate }}{{ 'shared2.props.type' | translate }}{{ 'components.metamodelListComponent.props.displayName' | translate }}{{ 'components.metamodelPropertiesComponent.props.usedInLog' | translate }}
    {{ property.name }}{{ property.type }}\n {{ getFormattedLocalStrings(property.displayNames) }}\n {{ property.usedInHistoryLog | wpBoolean }}
    \n\n@if (metamodelCardService.entity().navigationProperties?.length) {\n {{\n 'components.metamodelPropertiesComponent.groups.navigationProperties' | translate\n }}\n \n \n \n \n \n \n \n \n \n \n \n @for (property of metamodelCardService.entity().navigationProperties; track property.name) {\n \n \n \n \n \n \n \n }\n \n
    {{ 'shared2.props.name' | translate }}{{ 'shared2.props.type' | translate }}{{ 'components.metamodelPropertiesComponent.props.key' | translate }}{{ 'components.metamodelListComponent.props.displayName' | translate }}{{ 'components.metamodelPropertiesComponent.props.usedInLog' | translate }}
    {{ property.name }}{{ property.clrType }}{{ property.keyProperty }}{{ getFormattedLocalStrings(property.displayNames) }}{{ property.usedInHistoryLog | wpBoolean }}
    \n}\n\n@if (metamodelCardService.entity().directoryProperties?.length) {\n {{\n 'components.metamodelPropertiesComponent.groups.directoryProperties' | translate\n }}\n \n \n \n \n \n \n \n \n \n \n \n @for (property of metamodelCardService.entity().directoryProperties; track property.name) {\n \n \n \n \n \n \n \n }\n \n
    {{ 'shared2.props.name' | translate }}{{ 'components.metamodelPropertiesComponent.props.directory' | translate }}{{ 'components.metamodelPropertiesComponent.props.key' | translate }}{{ 'components.metamodelListComponent.props.displayName' | translate }}{{ 'components.metamodelPropertiesComponent.props.usedInLog' | translate }}
    {{ property.name }}{{ property.directoryCode }}{{ property.keyProperty }}{{ getFormattedLocalStrings(property.displayNames) }}{{ property.usedInHistoryLog | wpBoolean }}
    \n}\n\n@if (metamodelCardService.entity().complexProperties?.length) {\n {{\n 'components.metamodelPropertiesComponent.groups.complexProperties' | translate\n }}\n \n \n \n \n \n \n \n \n \n \n \n @for (property of metamodelCardService.entity().complexProperties; track property.name) {\n \n \n \n \n \n \n \n }\n \n
    {{ 'shared2.props.name' | translate }}{{ 'shared2.props.type' | translate }}{{ 'components.metamodelListComponent.props.displayName' | translate }}{{ 'components.metamodelPropertiesComponent.props.properties' | translate }}{{ 'components.metamodelPropertiesComponent.props.usedInLog' | translate }}
    {{ property.name }}{{ property.clrType }}{{ getFormattedLocalStrings(property.displayNames) }}{{ joinString(property.properties) }}{{ property.usedInHistoryLog | wpBoolean }}
    \n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-metamodel-list-filter',\n template: '',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetamodelListFilterComponent implements FilterDetails {\n @Input() values: any;\n\n public detailsForm: UntypedFormGroup;\n\n constructor(@Inject(VIEW_NAME) public viewName: string) {}\n}\n","import { Injectable, Type } from '@angular/core';\nimport { MetamodelListFilterComponent } from 'src/app/settings-app/metamodel/list/filter/metamodel-list-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class MetamodelListFilterService extends FilterService {\n public override component: Type = MetamodelListFilterComponent;\n public override hasDetails = false;\n public override hasViewSelector = false;\n\n public override placeholder = 'settings.metamodel.filter.placeholder';\n\n protected override getDefaultValues = (): any => {\n const value = {\n text: '',\n };\n\n return value;\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n} from '@angular/core';\nimport _ from 'lodash';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { MetaEntity } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FormArray, FormBuilder } from '@angular/forms';\nimport { MetamodelListFilterService } from 'src/app/settings-app/metamodel/list/filter/metamodel-list-filter.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { StateService } from '@uirouter/core';\nimport { LocalString } from 'src/app/shared/models/enums/language.enum';\nimport { Title } from '@angular/platform-browser';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Order } from 'src/app/shared/models/inner/order';\n\n@Component({\n selector: 'tmt-metamodel-list',\n templateUrl: './metamodel-list.component.html',\n styleUrl: './metamodel-list.component.scss',\n providers: [\n { provide: FilterService, useClass: MetamodelListFilterService },\n GridService,\n ListService,\n ],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetamodelListComponent implements OnInit {\n public entitiesLines: FormArray = this.fb.array([]);\n public gridOptions: GridOptions = {\n css: 'root',\n clientTotals: true,\n sorting: true,\n selectionType: SelectionType.row,\n view: this.listService.getGridView(),\n commands: [\n {\n name: 'enter',\n handlerFn: () => {\n if (this.actionPanelService.action('card')?.isShown) {\n this.actionPanelService.action('card').execute();\n }\n },\n keyCode: ['Enter', 'NumpadEnter'],\n },\n ],\n };\n\n private destroyRef = inject(DestroyRef);\n metaEntities: MetaEntity[];\n\n constructor(\n private filterService: FilterService,\n private appService: AppService,\n private listService: ListService,\n private fb: FormBuilder,\n private actionPanelService: ActionPanelService,\n private stateService: StateService,\n private gridService: GridService,\n private title: Title,\n private translateService: TranslateService,\n ) {\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((o: Order) => this.orderChanged(o));\n }\n\n public ngOnInit(): void {\n this.metaEntities = _.sortBy(\n this.appService.session.configuration.metamodel.entities,\n (x) => x.name,\n );\n\n this.actionPanelService.hideReloader();\n this.load(this.gridService.order);\n this.title.setTitle(\n this.translateService.instant(\n 'components.metamodelListComponent.groups.title',\n ),\n );\n\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.metamodelCard', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actionPanelService.action('card').isShown = !!row;\n });\n\n this.filterService.values$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.load(this.gridService.order));\n }\n\n public getFormattedLocalStrings(localStrings: LocalString[]): string {\n return localStrings.map((x) => `${x.language}: ${x.value}`).join(', ');\n }\n\n /**\n * Loads data.\n *\n * @param order grid order by name.\n */\n private load(order: Order): void {\n const term = this.filterService.values.text?.toLowerCase();\n\n if (term) {\n const entities = this.metaEntities.filter(\n (x) =>\n x.name.toLowerCase().indexOf(term) > -1 ||\n x.displayNames.some((x) => x.value.toLowerCase().indexOf(term) > -1),\n );\n this.initEntitiesFormArray(entities, order);\n return;\n }\n\n this.initEntitiesFormArray(this.metaEntities, order);\n }\n\n /**\n * Inits grid form array.\n *\n * @param entities meta entities list.\n * @param order grid order by name.\n */\n private initEntitiesFormArray(entities: MetaEntity[], order: Order): void {\n this.entitiesLines.clear();\n entities.forEach((entity) => {\n this.entitiesLines.push(\n this.fb.group({\n id: entity.name,\n name: entity.name,\n displayName: this.getFormattedLocalStrings(entity.displayNames),\n customizable: entity.customizable,\n usedInBoards: entity.usedInBoards,\n usedInLogging: entity.usedInLogging,\n hasLifecycle: entity.hasLifecycle,\n hierarchyProperty: entity.hierarchyProperty || '',\n }),\n );\n });\n this.entitiesLines.patchValue(\n _.orderBy(\n this.entitiesLines.getRawValue(),\n order.column,\n order.reverse ? 'desc' : 'asc',\n ),\n );\n }\n\n /**\n * Updates the order of the user view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n public orderChanged(order: Order): void {\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.load(order);\n }\n}\n","
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { MetamodelListComponent } from 'src/app/settings-app/metamodel/list/metamodel-list.component';\nimport { MetamodelListFilterComponent } from 'src/app/settings-app/metamodel/list/filter/metamodel-list-filter.component';\nimport { MetamodelCardComponent } from 'src/app/settings-app/metamodel/card/metamodel-card.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { MetamodelPropertiesComponent } from 'src/app/settings-app/metamodel/card/properties/metamodel-properties.component';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { METAENTITY_LIST } from 'src/app/shared/lists/metamodel.list';\nimport { MetamodelHandlerComponent } from 'src/app/settings-app/metamodel/card/handler/metamodel-handler.component';\n\n@NgModule({\n declarations: [\n MetamodelListComponent,\n MetamodelListFilterComponent,\n MetamodelCardComponent,\n MetamodelPropertiesComponent,\n MetamodelHandlerComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.metamodel',\n url: '/metamodel',\n component: MetamodelListComponent,\n params: {\n navigation: 'settings.metamodel',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: METAENTITY_LIST },\n ],\n },\n {\n name: 'settings.metamodelCard',\n params: {\n navigation: 'settings.metamodel',\n },\n redirectTo: 'settings.metamodelCard.properties',\n url: '/metamodel/{entityId:string}/',\n component: MetamodelCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'settings.metamodelCard.properties',\n url: 'properties',\n component: MetamodelPropertiesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.metamodelCard.handler',\n url: 'handler',\n component: MetamodelHandlerComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class MetamodelModule {}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'wp-permission-set-administrator',\n templateUrl: './permission-set-administrator.component.html',\n standalone: false,\n})\nexport class PermissionSetAdministratorComponent {\n @Input() form: UntypedFormGroup;\n public onprem = !!environment.onprem;\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.userProfiles' | translate }}\n \n
    {{ 'settings.permissionSets.granules.userProducts' | translate }}\n \n \n \n
    \n {{ 'settings.permissionSets.granules.userGroups' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.userPermissionSets' | translate }}\n \n \n \n \n
    {{ 'settings.permissionSets.granules.userCost' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.userActivity' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.userRole' | translate }}\n \n
    \n {{ 'settings.permissionSets.granules.userSchedules' | translate }}\n \n \n \n \n
    {{ 'settings.permissionSets.granules.userSettings' | translate }}\n \n \n \n
    \n {{ 'settings.permissionSets.granules.userSubstitute' | translate }}\n \n \n \n \n
    {{ 'settings.permissionSets.granules.groups' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.levels' | translate }}\n \n
    {{ 'settings.permissionSets.granules.grades' | translate }}\n \n
    {{ 'settings.permissionSets.granules.locations' | translate }}\n \n
    {{ 'settings.permissionSets.granules.departments' | translate }}\n \n
    {{ 'settings.permissionSets.granules.resourcePools' | translate }}\n \n
    {{ 'settings.permissionSets.granules.skills' | translate }}\n \n
    \n {{ 'settings.permissionSets.granules.permissionSets' | translate }}\n \n \n
    \n {{ 'settings.permissionSets.granules.timeSheetPeriods' | translate }}\n \n \n
    {{ 'settings.permissionSets.granules.activities' | translate }}\n \n
    {{ 'settings.permissionSets.granules.timeOffTypes' | translate }}\n \n
    {{ 'shared2.props.financialAccounts' | translate }}\n \n
    {{ 'settings.permissionSets.granules.schedules' | translate }}\n \n
    {{ 'settings.permissionSets.granules.scheduleExceptions' | translate }}\n \n
    {{ 'settings.permissionSets.granules.legalEntity' | translate }}\n \n
    {{ 'settings.permissionSets.granules.rateMatrices' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.currencies' | translate }}\n \n
    {{ 'settings.permissionSets.granules.costNormalizationRule' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.roles' | translate }}\n \n
    {{ 'settings.permissionSets.granules.competences' | translate }}\n \n
    {{ 'settings.permissionSets.granules.invoiceTemplates' | translate }}\n \n
    \n {{ 'settings.permissionSets.granules.validationRule' | translate }}\n \n \n \n \n
    \n {{ 'shared2.groups.billCodes' | translate }}\n \n \n
    \n {{ 'settings.permissionSets.granules.timeSheetTemplate' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.commonReports' | translate }}\n \n \n
    \n {{ 'settings.permissionSets.granules.reportTemplates' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.calculatedFields' | translate }}\n \n \n \n \n
    {{ 'settings.permissionSets.granules.customFields' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.import' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.authProviders' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.authProviders' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.apiToken' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.loginLog' | translate }}\n \n
    {{ 'settings.permissionSets.granules.historyLog' | translate }}\n \n
    \n {{ 'settings.permissionSets.granules.boards' | translate }}\n \n \n \n \n
    \n {{ 'shared2.groups.issueTypes' | translate }}\n \n \n \n \n
    \n {{ 'shared2.groups.directories' | translate }}\n \n \n
    \n {{ 'shared2.groups.metaEntitySettings' | translate }}\n \n \n \n \n
    \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.permissions.allow' | translate }}\n
    \n {{ 'settings.permissionSets.granules.manageAccount' | translate }}\n \n \n
    \n {{ 'settings.permissionSets.granules.manageBilling' | translate }}\n \n \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-billing-manager',\n templateUrl: './permission-set-billing-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetBillingManagerComponent {\n @Input() form: UntypedFormGroup;\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.invoices' | translate }}\n \n \n \n
    \n","import { Component, OnInit, Input, inject, DestroyRef } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { PermissionSet } from 'src/app/shared/models/entities/settings/permission-set.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-permission-set-card',\n templateUrl: './permission-set-card.component.html',\n standalone: false,\n})\nexport class PermissionSetCardComponent implements OnInit {\n @Input() entityId: string;\n\n public isLoading = false;\n public isSaving = false;\n\n public readonly: boolean;\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n id: [''],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n roleName: [''],\n isActive: [false],\n details: this.fb.group({}),\n });\n\n private get details(): UntypedFormGroup {\n return this.form.controls['details'];\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n public reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const permissionSet = this.form.value;\n\n const data = {\n id: permissionSet.id,\n name: permissionSet.name,\n roleName: permissionSet.roleName,\n description: permissionSet.description,\n isActive: permissionSet.isActive,\n permissionSetDetails: [],\n };\n\n const addDetails = (\n value: any,\n granularName: string,\n scopeName: string,\n ) => {\n data.permissionSetDetails.push({\n id: value.id,\n granularName,\n scopeName,\n actionEnabled: value.actionEnabled,\n editEnabled: value.editEnabled,\n viewEnabled: value.viewEnabled,\n deleteEnabled: value.deleteEnabled,\n });\n };\n\n const details = this.details.value;\n for (const granularName in details) {\n if (details[granularName].id) {\n addDetails(details[granularName], granularName, null);\n } else {\n for (const scopeName of Object.keys(details[granularName])) {\n addDetails(details[granularName][scopeName], granularName, scopeName);\n }\n }\n }\n\n this.data\n .collection('PermissionSets')\n .entity(this.entityId)\n .update(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal('settings.permissionSets.card.saved');\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n /** Loads Data. */\n private load = (): void => {\n this.isLoading = true;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.data\n .collection('PermissionSets')\n .entity(this.entityId)\n .get({ expand: ['PermissionSetDetails'] })\n .subscribe((permissionSet: PermissionSet) => {\n this.readonly = !permissionSet.editAllowed;\n this.form.patchValue(permissionSet);\n\n this.navigationService.addRouteSegment({\n id: permissionSet.id,\n title: permissionSet.name,\n });\n\n permissionSet.permissionSetDetails.forEach((detail) => {\n let formGroup: UntypedFormGroup = (\n this.details.controls[detail.granularName]\n );\n if (!formGroup) {\n formGroup = new UntypedFormGroup({});\n this.details.addControl(detail.granularName, formGroup);\n }\n\n let detailFormGroup: UntypedFormGroup;\n\n if (detail.scopeName) {\n detailFormGroup = (\n formGroup.controls[detail.scopeName]\n );\n if (!detailFormGroup) {\n detailFormGroup = new UntypedFormGroup({});\n formGroup.addControl(detail.scopeName, detailFormGroup);\n }\n } else {\n detailFormGroup = formGroup;\n }\n\n detailFormGroup.reset();\n detailFormGroup.addControl('id', this.fb.control(''));\n detailFormGroup.addControl('actionEnabled', this.fb.control(false));\n detailFormGroup.addControl('editEnabled', this.fb.control(false));\n detailFormGroup.addControl('viewEnabled', this.fb.control(false));\n detailFormGroup.addControl('deleteEnabled', this.fb.control(false));\n\n detailFormGroup.patchValue(detail);\n });\n\n this.actionService.action('save').isShown = !this.readonly;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly ? this.form.disable() : this.form.enable();\n this.isLoading = false;\n });\n };\n}\n","\n\n\n\n
    \n
    \n \n \n \n
    \n\n
    \n \n

    {{ 'enums.role.' + form.value.roleName | translate }}

    \n
    \n\n
    \n \n \n \n
    \n\n \n \n \n \n\n \n\n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-client-manager',\n templateUrl: './permission-set-client-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetClientManagerComponent {\n @Input() form: UntypedFormGroup;\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.allClients' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.clients' | translate }}\n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.organizationTariff' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.contact' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.interactions' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.deal' | translate }}\n \n \n \n \n \n \n \n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-finance-manager',\n templateUrl: './permission-set-finance-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetFinanceManagerComponent implements OnInit {\n @Input() form: UntypedFormGroup;\n ngOnInit(): void {\n this.form.get('AccountingEntry.All.viewEnabled').disable();\n this.form.get('AccountingPeriod.All.viewEnabled').disable();\n this.form.get('TimeSheet.All.viewEnabled').disable();\n this.form.get('ExpenseRequest.All.viewEnabled').disable();\n this.form.get('ActOfAcceptance.All.viewEnabled').disable();\n }\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.accountingEntries' | translate }}\n \n
    {{ 'enums.accountingEntryMode.Manual' | translate }}\n \n
    {{ 'settings.permissionSets.granules.accountingPeriod' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.timeSheets' | translate }}\n \n
    {{ 'settings.permissionSets.granules.expenseRequests' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.actOfAcceptance' | translate }}\n \n \n \n
    \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.permissions.allow' | translate }}\n
    \n {{ 'settings.permissionSets.granules.reAccount' | translate }}\n \n \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-project-manager',\n templateUrl: './permission-set-project-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetProjectManagerComponent {\n @Input() form: UntypedFormGroup;\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjects' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjectsOfMyClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.projectsOfMyPrograms' | translate }}\n \n {{ 'settings.permissionSets.scopes.allProjects' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.projects' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectCoManagers' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectTasks' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectTariff' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectTeam' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectTeamCost' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.projectExpenseEstimation' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.projectBillingEstimation' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.projectRevenueEstimate' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectResourcePlan' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.userSkillEstimationByProject' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.projectVersions' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.projectCostCenter' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectFinancial' | translate }}\n \n \n \n \n \n \n \n \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myPrograms' | translate }}\n \n {{ 'settings.permissionSets.scopes.allPrograms' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.programs' | translate }}\n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectCoManagers' | translate }}\n \n \n \n \n \n \n \n \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.allClients' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.clients' | translate }}\n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.organizationTariff' | translate }}\n \n \n \n \n \n \n \n \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.timesheetsWithMyProjects' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n
    \n {{ 'settings.permissionSets.granules.timeSheetLinePm' | translate }}\n \n \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjects' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjectsOfMyClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.projectsOfMyPrograms' | translate }}\n \n {{ 'settings.permissionSets.scopes.allProjects' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.expenseRequest' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.actOfAcceptance' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.invoices' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.accountingEntries' | translate }}\n \n \n \n \n \n \n \n
    \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjects' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjectsOfMyClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.projectsOfMyPrograms' | translate }}\n \n {{ 'settings.permissionSets.scopes.allProjects' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    {{ 'settings.permissionSets.granules.booking' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
       Soft\n \n \n \n \n \n \n \n
       Hard\n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.resourceRequest' | translate }}\n
       {{ 'settings.permissionSets.granules.request' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n    {{\n 'settings.permissionSets.granules.resourceRequestResult' | translate\n }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjects' | translate }}\n \n {{ 'settings.permissionSets.scopes.myProjectsOfMyClients' | translate }}\n \n {{ 'settings.permissionSets.scopes.projectsOfMyPrograms' | translate }}\n \n {{ 'settings.permissionSets.scopes.allProjects' | translate }}\n
    \n {{ 'settings.permissionSets.granules.changingBillingType' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.bookingSwitchToHard' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.bookingSwitchToSoft' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectVersionSetMasterFlag' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.projectVersionMerge' | translate }}\n \n \n \n \n \n \n \n \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-resource-manager',\n templateUrl: './permission-set-resource-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetResourceManagerComponent {\n @Input() form: UntypedFormGroup;\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myPools' | translate }}\n \n {{ 'settings.permissionSets.scopes.allResources' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    \n {{ 'settings.permissionSets.granules.booking' | translate }}\n \n \n \n \n \n \n \n \n
       Soft\n \n \n \n
       Hard\n \n \n \n
    \n {{ 'settings.permissionSets.granules.resourceRequest' | translate }}\n
       {{ 'settings.permissionSets.granules.request' | translate }}\n \n \n \n \n \n \n \n
    \n    {{ 'settings.permissionSets.granules.resourceRequestResult' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.employees' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.employeeIndicators' | translate }}\n \n \n \n \n
    \n\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.myPools' | translate }}\n \n {{ 'settings.permissionSets.scopes.allResources' | translate }}\n
    \n {{ 'settings.permissionSets.granules.bookingSwitchToHard' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.bookingSwitchToSoft' | translate }}\n \n \n \n \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-permission-set-team-manager',\n templateUrl: './permission-set-team-manager.component.html',\n standalone: false,\n})\nexport class PermissionSetTeamManagerComponent {\n @Input() form: UntypedFormGroup;\n}\n","\n\n \n \n \n \n \n \n \n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n \n {{ 'settings.permissionSets.permissions.delete' | translate }}\n \n \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n \n \n {{ 'settings.permissionSets.permissions.delete' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.mySubordinates' | translate }}\n \n {{ 'settings.permissionSets.scopes.allUser' | translate }}\n
    {{ 'settings.permissionSets.granules.timeSheets' | translate }}\n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.timeOffRequests' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.timeOffBalanceEntries' | translate }}\n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.expenseRequests' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.userSkills' | translate }}\n \n \n \n
    \n {{ 'settings.permissionSets.granules.workflowTasks' | translate }}\n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.certificates' | translate }}\n \n \n \n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.employees' | translate }}\n \n \n \n
    {{ 'settings.permissionSets.granules.employeeIndicators' | translate }}\n \n \n \n
    \n {{ 'settings.permissionSets.granules.employeeFinancialIndicators' | translate }}\n \n \n \n \n
    \n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\n\n@Component({\n selector: 'wp-permission-set-user',\n templateUrl: './permission-set-user.component.html',\n standalone: false,\n})\nexport class PermissionSetUserComponent {\n @Input() form: UntypedFormGroup;\n public feature = Feature;\n\n constructor(public app: AppService) {}\n}\n","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.my' | translate }}\n
    \n {{ 'settings.permissionSets.permissions.view' | translate }}\n \n {{ 'settings.permissionSets.permissions.edit' | translate }}\n
    \n {{ 'settings.permissionSets.granules.report' | translate }}\n \n \n \n \n \n
    {{ 'settings.permissionSets.granules.dashboard' | translate }}\n \n
    {{ 'settings.permissionSets.granules.deputy' | translate }}\n \n
    {{ 'settings.permissionSets.granules.timesheet' | translate }}\n \n
    \n {{ 'settings.permissionSets.granules.timeOffRequest' | translate }}\n \n \n
    \n {{ 'settings.permissionSets.granules.expenseRequest' | translate }}\n \n \n
    {{ 'settings.permissionSets.granules.resourcePlan' | translate }}\n \n
    {{ 'settings.permissionSets.granules.comment' | translate }}\n \n
    {{ 'settings.permissionSets.granules.skills' | translate }}\n \n
    {{ 'settings.permissionSets.granules.certificates' | translate }}\n \n \n \n
    \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.permissionSets.granules.granular' | translate }}\n \n {{ 'settings.permissionSets.scopes.my' | translate }}\n
    \n {{ 'settings.permissionSets.granules.dashboardPublish' | translate }}\n \n \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'wp-permission-set-creation',\n templateUrl: './permission-set-creation.component.html',\n standalone: false,\n})\nexport class PermissionSetCreationComponent {\n isSaving = false;\n creationForm: UntypedFormGroup;\n roles: NamedEntity[];\n\n constructor(\n app: AppService,\n fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {\n this.creationForm = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n role: [null, Validators.required],\n });\n\n this.roles = app.getRolesEntities();\n }\n\n ok = () => {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.creationForm.value.name,\n roleName: this.creationForm.value.role.id,\n };\n\n this.data\n .collection('PermissionSets')\n .insert(data)\n .subscribe({\n next: (response: any) => {\n this.notification.successLocal(\n 'settings.permissionSets.creation.created',\n );\n this.state.go('settings.permissionSet', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.permissionSets.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { PermissionSetCreationComponent } from '../creation/permission-set-creation.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-permission-set-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class PermissionSetListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n loadedSubscription: Subscription;\n\n constructor(\n private translate: TranslateService,\n private listService: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.permissionSets.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'PermissionSet',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.permissionSet', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n ]);\n\n this.loadedSubscription = this.listService.pageLoaded$.subscribe(\n (rows: any[]) => {\n rows.forEach((row) => {\n if (row.roleName) {\n row.roleName = this.translate.instant(`enums.role.${row.roleName}`);\n }\n });\n },\n );\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'PermissionSet',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n this.modalService.open(PermissionSetCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n this.loadedSubscription.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { PermissionSetCardComponent } from './card/permission-set-card.component';\nimport { PermissionSetCreationComponent } from './creation/permission-set-creation.component';\nimport { PermissionSetListComponent } from './list/permission-set-list.component';\nimport { PermissionSetList } from 'src/app/shared/lists/permission-set.list';\nimport { PermissionSetProjectManagerComponent } from './card/permission-set-project-manager/permission-set-project-manager.component';\nimport { PermissionSetTeamManagerComponent } from './card/permission-set-team-manager/permission-set-team-manager.component';\nimport { PermissionSetResourceManagerComponent } from './card/permission-set-resource-manager/permission-set-resource-manager.component';\nimport { PermissionSetUserComponent } from './card/permission-set-user/permission-set-user.component';\nimport { PermissionSetAdministratorComponent } from './card/permission-set-administrator/permission-set-administrator.component';\nimport { PermissionSetBillingManagerComponent } from './card/permission-set-billing-manager/permission-set-billing-manager.component';\nimport { PermissionSetFinanceManagerComponent } from './card/permission-set-finance-manager/permission-set-finance-manager.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { PermissionSetClientManagerComponent } from 'src/app/settings-app/permission-sets/card/permission-set-client-manager/permission-set-client-manager.component';\n\n@NgModule({\n declarations: [\n PermissionSetListComponent,\n PermissionSetCardComponent,\n PermissionSetCreationComponent,\n PermissionSetProjectManagerComponent,\n PermissionSetTeamManagerComponent,\n PermissionSetResourceManagerComponent,\n PermissionSetBillingManagerComponent,\n PermissionSetUserComponent,\n PermissionSetAdministratorComponent,\n PermissionSetFinanceManagerComponent,\n PermissionSetClientManagerComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.permissionSets',\n url: '/permission-sets',\n component: PermissionSetListComponent,\n params: {\n navigation: 'settings.permissionSets',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: PermissionSetList },\n ],\n },\n\n {\n name: 'settings.permissionSet',\n params: {\n navigation: 'settings.permissionSets',\n },\n url: '/permission-sets/{entityId:guid}',\n component: PermissionSetCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class PermissionSetsModule {}\n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Injector,\n} from '@angular/core';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { RateMatrixService } from 'src/app/settings-app/rate-matrix/card/rate-matrix.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { RateMatrixStructureChangeModalComponent } from '../structure-change-modal/rate-matrix-structure-change-modal.component';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\n\n@Component({\n selector: 'tmt-main-matrix', // TODO: rename selector & files.\n templateUrl: './main-matrix.component.html',\n styleUrl: './main-matrix.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MainRateMatrixComponent implements OnInit {\n @Input() public entityId: string;\n\n public activeTab: string;\n public readonly: boolean;\n public rateMatrixForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n effectiveDate: null,\n expiryDate: null,\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n rateMatrixStructure: [null],\n type: [null],\n });\n public rateMatrixStructureTitle?: string;\n public state$ = new BehaviorSubject(CardState.Loading);\n public readonly commentedEntityCollectionType = CommentedEntityCollectionType;\n\n private destroyRef = inject(DestroyRef);\n\n public get rateMatrixStructure(): Analytics[] {\n return this.rateMatrixForm.getRawValue().rateMatrixStructure;\n }\n\n constructor(\n public actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n private rateMatrixService: RateMatrixService,\n private modalService: NgbModal,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef,\n private injector: Injector,\n private lifecycleService: LifecycleService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.action('save').show();\n this.actionService.action('buildLines').hide();\n this.actionService.run$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.save();\n });\n this.actionService.setHasAutosave(false);\n\n this.load();\n\n merge(this.lifecycleService.reload$, this.actionService.reload$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n this.lifecycleService.reloadLifecycle();\n });\n\n FormHelper.controlDatePair(\n this.rateMatrixForm,\n 'effectiveDate',\n 'expiryDate',\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Saves rate Matrix. */\n public async save(): Promise {\n this.rateMatrixForm.markAllAsTouched();\n\n if (this.rateMatrixForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n if (\n this.rateMatrixService.changeStructureMessage &&\n !(await this.messageService\n .confirm(this.rateMatrixService.changeStructureMessage)\n .then(() => true)\n .catch(() => null))\n ) {\n return;\n }\n\n this.actionService.action('save').start();\n\n this.rateMatrixService\n .patchRateMatrix(this.entityId, this.rateMatrixForm.value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.rateMatrixService.rateMatrixStructure = this.rateMatrixForm\n .getRawValue()\n .rateMatrixStructure.map((key) => _.camelCase(key) as Analytics);\n this.rateMatrixService.changeStructureMessage = null;\n this.rateMatrixForm.markAsPristine();\n this.actionService.action('save').stop();\n this.rateMatrixService.updateName(this.rateMatrixForm.value.name);\n this.cdr.markForCheck();\n this.notificationService.successLocal(\n 'settings.rateMatrices.card.messages.saved',\n );\n },\n error: (error: any) => {\n this.actionService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Opens matrix rates settings. */\n public openMatrixRatesSettings(): void {\n const modalRef = this.modalService.open(\n RateMatrixStructureChangeModalComponent,\n {\n injector: this.injector,\n },\n );\n const component =\n modalRef.componentInstance as RateMatrixStructureChangeModalComponent;\n component.rateMatrixStructure = this.rateMatrixStructure;\n component.readonly = this.readonly;\n\n modalRef.result.then(\n (result) => {\n this.rateMatrixForm.patchValue({\n rateMatrixStructure: result,\n });\n this.rateMatrixForm.markAsDirty();\n this.initRateMatrixStructureTitle();\n this.cdr.markForCheck();\n },\n () => {\n this.rateMatrixService.changeStructureMessage = null;\n },\n );\n }\n\n private load(): void {\n this.state$.next(CardState.Loading);\n\n this.rateMatrixForm.markAsPristine();\n this.rateMatrixForm.markAsUntouched();\n\n this.rateMatrixService.getRateMatrices(this.entityId).subscribe({\n next: (matrixRate: RateMatrix) => {\n this.rateMatrixService.changeStructureMessage = null;\n this.rateMatrixForm.patchValue(matrixRate);\n this.initRateMatrixStructureTitle();\n this.readonly = !matrixRate.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.readonly\n ? this.rateMatrixForm.disable()\n : this.rateMatrixForm.enable();\n\n this.rateMatrixForm.controls.expiryDate.disable();\n this.rateMatrixForm.controls.type.disable();\n this.rateMatrixForm.controls.isActive.disable();\n\n this.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: matrixRate.id,\n title: matrixRate.name,\n });\n },\n error: (error: any) => {\n this.state$.next(CardState.Error);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /* Reloads view. */\n private reload(): void {\n if (!this.rateMatrixForm.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private initRateMatrixStructureTitle(): void {\n if (!this.rateMatrixStructure?.length) {\n this.rateMatrixStructureTitle = this.translate.instant(\n 'settings.rateMatrices.changeStructure.placeholder',\n );\n\n return;\n }\n\n this.rateMatrixStructureTitle = this.rateMatrixStructure\n .map((analytic) =>\n this.translate.instant(`shared.rateMatrices.${_.camelCase(analytic)}`),\n )\n .join(' > ');\n }\n}\n","\n\n\n\n@if ((state$ | async) == 'Ready') {\n
    \n
    \n \n \n
    \n\n
    \n
    \n \n
    \n \n {{ rateMatrixStructureTitle }}\n

    \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n
    \n}\n\n\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { RateMatrixService } from 'src/app/settings-app/rate-matrix/card/rate-matrix.service';\nimport {\n Analytics,\n analytics,\n} from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { RateMatrixLine } from 'src/app/settings-app/rate-matrix/model/rate-matrix-line.model';\nimport { RateMatrixStructureCollection } from 'src/app/settings-app/rate-matrix/model/rate-matrix-structure.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-matrix-rate-lines',\n templateUrl: './matrix-rate-lines.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MatrixRateLinesComponent implements OnInit {\n @Input() matrixRate: RateMatrixLine;\n @Input() entityId: string;\n\n public isSaving: boolean;\n public form: UntypedFormGroup;\n public rateMatrixStructureCollection = RateMatrixStructureCollection;\n public queryAnalytics: Partial> = {};\n\n private matrixRatesCollection = this.data.collection('RateMatrixLines');\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public rateMatrixService: RateMatrixService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n analytics.forEach((key) => {\n this.queryAnalytics[key] = null;\n });\n this.prepareForm(this.matrixRate?.id);\n if (this.matrixRate) {\n this.form.patchValue(this.matrixRate);\n } else {\n this.updateControlsAvailability();\n }\n }\n\n /** Dismisses changes and closes modal. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /** Saves data and closes modal. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n if (this.matrixRate) {\n this.editMatrixRate();\n } else {\n this.addMatrixRate();\n }\n }\n\n /** Returns modal header. */\n public getHeader(): string {\n return this.matrixRate\n ? 'settings.rateMatrices.creation.modal.editing'\n : 'settings.rateMatrices.creation.modal.header';\n }\n\n /** Returns action button name. */\n public getActionBtnName(): string {\n return this.matrixRate ? 'shared.actions.save' : 'shared.actions.create';\n }\n\n private prepareForm(id?: string): void {\n const formStructure = {} as any;\n formStructure.id = id ?? Guid.generate();\n formStructure.rate = null;\n this.rateMatrixService.rateMatrixStructure.forEach((key, index) => {\n formStructure[key] = index\n ? null\n : (formStructure[key] = [null, Validators.required]);\n });\n this.form = this.fb.group(formStructure);\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateControlsAvailability();\n });\n\n this.form.controls['role']?.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val: NamedEntity) => {\n this.form.controls['competence']?.reset();\n if (val) {\n this.queryAnalytics.competence = {\n filter: [{ roleId: { type: 'guid', value: val?.id } }],\n };\n }\n });\n this.form.controls['level']?.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val: NamedEntity) => {\n this.form.controls['grade']?.reset();\n if (val) {\n this.queryAnalytics.grade = {\n filter: [{ levelId: { type: 'guid', value: val?.id } }],\n };\n }\n });\n }\n\n /** Disables and enables controls depending on previous control value. */\n private updateControlsAvailability(): void {\n for (\n let i = 1;\n i < this.rateMatrixService.rateMatrixStructure.length;\n i++\n ) {\n const previousControl =\n this.form.controls[this.rateMatrixService.rateMatrixStructure[i - 1]];\n const currentControl =\n this.form.controls[this.rateMatrixService.rateMatrixStructure[i]];\n if (previousControl.value) {\n currentControl.enable({ emitEvent: false });\n } else {\n for (\n let j = i;\n j < this.rateMatrixService.rateMatrixStructure.length;\n j++\n ) {\n this.form.controls[\n this.rateMatrixService.rateMatrixStructure[j]\n ].disable({\n emitEvent: false,\n });\n }\n return;\n }\n }\n }\n\n /** Adds matrix rate. */\n private addMatrixRate(): void {\n const formData = this.form.value;\n const data = {\n id: formData.id,\n rateMatrixId: this.entityId,\n roleId: formData.role?.id ?? null,\n competenceId: formData.competence?.id ?? null,\n locationId: formData.location?.id ?? null,\n levelId: formData.level?.id ?? null,\n gradeId: formData.grade?.id ?? null,\n legalEntityId: formData.legalEntity?.id ?? null,\n resourcePoolId: formData.resourcePool?.id ?? null,\n rate: formData.rate?.value ?? null,\n };\n\n this.matrixRatesCollection.insert(data).subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'settings.rateMatrices.creation.modal.messages.created',\n );\n this.activeModal.close(formData);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n\n /** Edits matrix rate. */\n private editMatrixRate(): void {\n const formData = this.form.value;\n const data = {\n rateMatrixId: this.entityId,\n roleId: formData.role?.id ?? null,\n competenceId: formData.competence?.id ?? null,\n locationId: formData.location?.id ?? null,\n levelId: formData.level?.id ?? null,\n gradeId: formData.grade?.id ?? null,\n legalEntityId: formData.legalEntity?.id ?? null,\n resourcePoolId: formData.resourcePool?.id ?? null,\n rate: formData.rate?.value ?? null,\n };\n\n this.matrixRatesCollection\n .entity(formData.id)\n .patch(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.notification.successLocal(\n 'settings.rateMatrices.creation.modal.messages.edited',\n );\n this.activeModal.close(formData);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.cdr.detectChanges();\n },\n });\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n @for (item of rateMatrixService.rateMatrixStructure; track item; let index = $index) {\n @if (form.controls[item].enabled) {\n
    \n \n \n
    \n }\n }\n\n
    \n \n \n
    \n
    \n
    \n \n {{ getActionBtnName() | translate }}\n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { RateMatrixService } from 'src/app/settings-app/rate-matrix/card/rate-matrix.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-tariff-rate-toolbar',\n templateUrl: './matrix-rate-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MatrixRateToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(\n gridService: GridService,\n cdr: ChangeDetectorRef,\n public service: RateMatrixService,\n ) {\n super(gridService, cdr);\n }\n}\n","
    \n @if (!service.readonly) {\n
    \n \n  {{ 'shared.actions.create' | translate }}\n \n\n \n  {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n }\n
    \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n Injector,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RateMatrixService } from 'src/app/settings-app/rate-matrix/card/rate-matrix.service';\nimport { MatrixRateLinesComponent } from 'src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-lines/matrix-rate-lines.component';\nimport { RateMatrixLine } from 'src/app/settings-app/rate-matrix/model/rate-matrix-line.model';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { filter, merge, takeUntil } from 'rxjs';\nimport { RateMatricesLinesFilterService } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-lines-filter.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { MatrixRateToolbarComponent } from 'src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-toolbar/matrix-rate-toolbar.component';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { RATE_MATRIX_LINE_LIST } from 'src/app/settings-app/rate-matrix/model/rate-matrix-line.list';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport { RateMatricesFilter } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-filter.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport { analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { CountResponse } from 'src/app/shared/models/count-response.interface';\n\n@Component({\n selector: 'tmt-matrix-rate', // TODO: rename selector & files.\n templateUrl: './matrix-rate.component.html',\n styleUrls: ['./matrix-rate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: FilterService, useClass: RateMatricesLinesFilterService },\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: RATE_MATRIX_LINE_LIST },\n EntityListService,\n ListService,\n GridService,\n SavingQueueService,\n ],\n standalone: false,\n})\nexport class MatrixRateComponent implements OnInit {\n public isBuilding = signal(false);\n public formArray = this.fb.array([]);\n public gridOptions: GridOptions;\n public isGridLoading = signal(false);\n public totals = signal>({});\n\n private rateMatrixLinesCollection = this.data.collection('RateMatrixLines');\n private currentPage = 0;\n private pageSize = 50;\n private loadedAll = false;\n /** Prevents cost centers autosaving. */\n private isStopSaving = false;\n private firstAnalyticName = '';\n private currentTotals: Record;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId,\n public gridService: GridService,\n public rateMatrixService: RateMatrixService,\n public savingQueueService: SavingQueueService,\n private data: DataService,\n private notificationService: NotificationService,\n private modal: NgbModal,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private injector: Injector,\n private listService: ListService,\n private filterService: FilterService,\n private appService: AppService,\n private cdr: ChangeDetectorRef,\n private blockUI: BlockUIService,\n private messageService: MessageService,\n private translateService: TranslateService,\n private lifecycleService: LifecycleService,\n ) {}\n\n public ngOnInit(): void {\n this.gridService.setOrder(this.listService.getGridView().order);\n this.gridService.order$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((o: Order) => this.orderChanged(o));\n this.actionService.action('save').hide();\n this.actionService.action('buildLines').show();\n this.actionService.run$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.buildMatrixLines();\n });\n this.actionService.setHasAutosave(true);\n\n this.firstAnalyticName =\n this.rateMatrixService.rateMatrixStructure[0] + 'Name';\n\n this.prepareGridOptions();\n this.changeFilterValues(this.rateMatrixService.rateMatrix);\n this.loadMatrixLines();\n\n merge(\n this.filterService.values$,\n this.savingQueueService.error$,\n this.actionService.reload$,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.actionService.action('buildLines').isShown =\n RateMatrix.draftStateId === value.currentState.id;\n this.rateMatrixService.readonly =\n RateMatrix.draftStateId !== value.currentState.id;\n this.cdr.markForCheck();\n this.gridService.detectChanges();\n if (\n value.currentState.id !== this.rateMatrixService.rateMatrix.stateId\n ) {\n this.reload();\n this.rateMatrixService.rateMatrix.stateId = value.currentState.id;\n }\n });\n\n this.gridService.endOfPageReached$\n .pipe(\n filter((val) => !this.loadedAll && val),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.loadMatrixLines());\n }\n\n /**\n * Deletes matrix rate.\n *\n * @param id\n */\n public deleteMatrixRate(id: string): void {\n this.blockUI.start();\n this.rateMatrixLinesCollection\n .entity(id)\n .delete()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === id,\n );\n this.formArray.controls.splice(index, 1);\n const groupForSelection =\n this.formArray.controls[index] ??\n this.formArray.controls[index - 1] ??\n null;\n\n this.gridService.selectGroup(groupForSelection as UntypedFormGroup);\n\n this.gridService.detectChanges();\n this.currentTotals[this.firstAnalyticName] -= 1;\n this.totals.set(this.currentTotals);\n this.notificationService.successLocal(\n 'settings.rateMatrices.creation.modal.messages.deleted',\n );\n this.blockUI.stop();\n if (!this.formArray.getRawValue().length) {\n this.rateMatrixService.isLinesExisting = false;\n }\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.blockUI.stop();\n },\n });\n }\n\n /**\n * Edits matrix rates.\n *\n * @param existingRate existing matrix rate.\n */\n public openMatrixRateModal(existingRate?: RateMatrixLine): void {\n this.savingQueueService.save().then(() => {\n const ref = this.modal.open(MatrixRateLinesComponent, {\n injector: this.injector,\n });\n ref.componentInstance.entityId = this.entityId;\n\n if (existingRate) {\n ref.componentInstance.matrixRate = existingRate;\n }\n\n ref.result\n .then((matrixLine) => {\n this.rateMatrixService.rateMatrixStructure.forEach((key) => {\n matrixLine[key + 'Name'] = matrixLine[key]?.name ?? '';\n });\n this.isStopSaving = true;\n this.rateMatrixService.isLinesExisting = true;\n if (existingRate) {\n const foundFormGroup = this.formArray.controls.find(\n (control) => control.getRawValue().id === matrixLine.id,\n );\n foundFormGroup.patchValue(matrixLine);\n this.gridService.selectGroup(foundFormGroup as UntypedFormGroup);\n } else {\n const group = this.getRateMatrixLineFormGroup(matrixLine);\n group.patchValue(matrixLine);\n this.formArray.insert(0, group);\n this.gridService.selectGroup(group);\n this.currentTotals[this.firstAnalyticName] += 1;\n this.totals.set(this.currentTotals);\n }\n this.isStopSaving = false;\n })\n .catch(() => null);\n });\n }\n\n /** Builds matrix lines. */\n public buildMatrixLines(): void {\n this.messageService\n .confirm(\n this.translateService.instant(\n 'settings.rateMatrices.creation.buildConfirmMessage',\n ),\n )\n .then(() => {\n this.isBuilding.set(true);\n this.rateMatrixService.buildMatrixLines().subscribe(() => {\n this.rateMatrixService.isLinesExisting = true;\n this.reload();\n this.isBuilding.set(false);\n });\n })\n .catch(() => null);\n }\n\n //TODO: change to listService\n private getRateMatrixLineFormGroup(\n rateMatrixLine?: RateMatrixLine,\n ): UntypedFormGroup {\n const formStructure = {\n id: rateMatrixLine?.id ?? null,\n rate: {\n value: rateMatrixLine?.rate ?? null,\n currencyCode: this.appService.session.configuration.baseCurrencyCode,\n },\n };\n this.rateMatrixService.rateMatrixStructure.forEach((key) => {\n formStructure[key] = rateMatrixLine[key] ?? null;\n formStructure[key + 'Name'] = rateMatrixLine[key]?.name ?? null;\n });\n const group = this.fb.group(formStructure);\n group.valueChanges\n .pipe(\n filter(() => !this.isStopSaving),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (group.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.entityNotSaved',\n );\n return;\n }\n\n const lineValue = group.getRawValue();\n\n const line: Partial = {\n rate: lineValue.rate.value,\n };\n\n this.savingQueueService.addToQueue(group.value.id, () =>\n this.rateMatrixService.patchRateMatrixLine(lineValue.id, line),\n );\n });\n\n return group;\n }\n\n private reload(): void {\n this.currentTotals = null;\n this.totals.set(this.currentTotals);\n this.isBuilding.set(false);\n this.currentPage = 0;\n this.pageSize = 50;\n this.loadedAll = false;\n this.formArray.clear();\n this.loadMatrixLines();\n }\n\n private loadMatrixLines(): void {\n if (this.isGridLoading()) {\n return;\n }\n\n this.isGridLoading.set(true);\n\n const expandProperties = [];\n this.rateMatrixService.rateMatrixStructure.forEach((key) => {\n expandProperties.push({ [key]: { select: ['id', 'name'] } });\n });\n const query = {\n select: ['id', 'rate'],\n expand: expandProperties,\n filter: this.filterService.getODataFilter(),\n top: this.pageSize,\n skip: this.pageSize * this.currentPage,\n orderBy: this.getOrderBy(),\n count: true,\n };\n this.rateMatrixLinesCollection\n .query(query)\n .pipe(takeUntil(this.actionService.reload$))\n .subscribe({\n next: ({ value, count }: CountResponse) => {\n this.currentTotals = {};\n this.currentTotals[this.firstAnalyticName] = count;\n this.totals.set(this.currentTotals);\n\n this.loadedAll = value.length < this.pageSize;\n this.currentPage++;\n\n value.forEach((line) => {\n const group = this.getRateMatrixLineFormGroup(line);\n this.formArray.push(group);\n });\n\n if (this.rateMatrixService.readonly) {\n this.formArray.disable({ emitEvent: false });\n }\n\n this.cdr.markForCheck();\n this.isGridLoading.set(false);\n },\n error: (error: Exception) => {\n this.isGridLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n private prepareGridOptions(): void {\n this.gridOptions = {\n sorting: true,\n toolbar: MatrixRateToolbarComponent,\n selectionType: SelectionType.row,\n resizableColumns: true,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.openMatrixRateModal();\n },\n allowedFn: () => !this.rateMatrixService.readonly,\n },\n {\n name: 'edit',\n allowedFn: (group) => group && !this.rateMatrixService.readonly,\n handlerFn: () => {\n this.openMatrixRateModal(this.gridService.selectedGroupValue);\n },\n },\n {\n name: 'delete',\n allowedFn: (group) => !!group && !this.rateMatrixService.readonly,\n handlerFn: (id) => {\n this.deleteMatrixRate(id);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n this.openMatrixRateModal(group.getRawValue());\n },\n allowedFn: () => !this.rateMatrixService.readonly,\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.deleteMatrixRate(group.getRawValue().id);\n },\n allowedFn: () => !this.rateMatrixService.readonly,\n },\n ],\n view: this.listService.getGridView(),\n };\n\n this.gridOptions.view.order.column = this.firstAnalyticName;\n const columns: GridColumn[] = [];\n const actualColumnNames: string[] = [].concat(\n this.rateMatrixService.rateMatrixStructure.map((key) => key + 'Name'),\n ['rate'],\n );\n\n actualColumnNames.forEach((name) => {\n columns.push(\n this.gridOptions.view.columns.find((column) => column.name === name),\n );\n });\n\n columns[0].total = TotalType.Count;\n\n this.gridOptions.view.columns = columns;\n }\n\n /**\n * Changes filter values on matrix change.\n *\n * @param value rate matrix value.\n */\n private changeFilterValues(value: RateMatrix): void {\n value.rateMatrixStructure = this.rateMatrixService.rateMatrixStructure;\n const values: RateMatricesFilter = {\n text: this.filterService.values.text,\n rateMatrix: value,\n };\n for (const key of value.rateMatrixStructure) {\n values[key] = this.filterService.values[key] ?? null;\n }\n\n this.filterService.changeValues(values);\n }\n\n /**\n * Updates the order of the user view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n private orderChanged(order: Order): void {\n this.currentPage = 0;\n this.formArray.clear();\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.loadMatrixLines();\n }\n\n /**\n * Gets orderBy for loading.\n *\n * @returns orderBy string.\n */\n private getOrderBy(): string {\n const { column, reverse } = this.gridService.order;\n // Replacing name with /name to get correct orderby.\n const firstAnalytic = `${this.firstAnalyticName.replace('Name', '/name')}`;\n const foundAnalytic = analytics.find(\n (analytic) => analytic + 'Name' === column,\n );\n\n switch (column) {\n case foundAnalytic + 'Name':\n return `${foundAnalytic + '/name'} ${reverse ? 'desc' : 'asc'}`;\n case 'rate':\n return `${column} ${reverse ? 'desc' : 'asc'}`;\n default:\n return column\n ? `${firstAnalytic} ${reverse ? 'desc' : 'asc'}`\n : `${firstAnalytic}`;\n }\n }\n}\n","
    \n \n\n\n@if (!rateMatrixService.isLinesExisting && !isBuilding()) {\n
    \n @if (!rateMatrixService.readonly) {\n

    \n {{ 'settings.rateMatrices.card.empty' | translate | translateCut: 0 }}
    \n \n {{ 'settings.rateMatrices.card.empty' | translate | translateCut: 2 }}\n \n {{ 'settings.rateMatrices.card.empty' | translate | translateCut: 4 }}\n

    \n } @else {\n

    \n {{ 'shared.noDisplayData' | translate }}\n

    \n }\n
    \n}\n\n\n","import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport { StateService } from '@uirouter/angular';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RateMatrixService } from 'src/app/settings-app/rate-matrix/card/rate-matrix.service';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport _ from 'lodash';\nimport { Analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-rate-matrix-card',\n templateUrl: './rate-matrix-card.component.html',\n providers: [\n RateMatrixService,\n { provide: META_ENTITY_TYPE, useValue: 'RateMatrix' },\n LifecycleService,\n ],\n standalone: false,\n})\nexport class RateMatrixCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public tabs: TabLink[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public stateService: StateService,\n public rateMatrixService: RateMatrixService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n private actionPanelService: ActionPanelService,\n private lifecycleService: LifecycleService,\n ) {}\n\n public ngOnInit(): void {\n this.tabs.push({\n header: 'settings.rateMatrices.card.tabs.main',\n state: 'settings.rateMatrix.main',\n });\n\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n },\n {\n title: 'settings.rateMatrices.actions.build',\n hint: 'settings.rateMatrices.actions.buildHint',\n name: 'buildLines',\n iconClass: 'bi bi-lightning-charge',\n isBusy: false,\n isVisible: !this.rateMatrixService.readonly,\n },\n ]);\n\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (RateMatrix.draftStateId === value.currentState.id) {\n this.actionPanelService.action('delete').isShown = true;\n } else {\n this.actionPanelService.action('delete').isShown = false;\n }\n });\n\n this.rateMatrixService\n .getRateMatrices(this.entityId, {\n select: ['id', 'name', 'editAllowed', 'rateMatrixStructure', 'stateId'],\n expand: [{ lines: { count: 'true', top: 0 } }],\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (rateMatrix: RateMatrix) => {\n this.rateMatrixService.updateName(rateMatrix.name);\n this.rateMatrixService.readonly = !rateMatrix.editAllowed;\n this.rateMatrixService.rateMatrixStructure =\n rateMatrix.rateMatrixStructure.map(\n (key) => _.camelCase(key) as Analytics,\n );\n this.rateMatrixService.rateMatrix = rateMatrix;\n this.rateMatrixService.isLinesExisting = !!rateMatrix.linescount;\n this.tabs.push({\n header: 'settings.rateMatrices.card.tabs.rates',\n state: 'settings.rateMatrix.matrixRate',\n });\n\n this.setAdditionalButtons();\n\n if (\n this.tabs.length > 0 &&\n !this.tabs.find((t) => t.state === this.stateService.current.name)\n ) {\n this.stateService.go(this.tabs[0].state, this.stateService.params);\n }\n\n this.rateMatrixService.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: rateMatrix.id,\n title: rateMatrix.name,\n });\n },\n error: (error: Exception) => {\n this.rateMatrixService.state$.next(CardState.Ready);\n this.notificationService.error(error.message);\n },\n });\n }\n\n private setAdditionalButtons(): void {\n this.actionPanelService.setAdditional([\n {\n title: 'shared.actions.copy',\n hint: 'shared.actions.copy',\n name: 'copy',\n isBusy: false,\n isVisible: true,\n handler: () => this.rateMatrixService.openCopyModal(),\n },\n {\n title: 'shared.actions.delete',\n hint: 'shared.actions.delete',\n name: 'delete',\n isBusy: false,\n isVisible: false,\n handler: () => this.rateMatrixService.delete(),\n },\n ]);\n }\n}\n","\n\n\n\n@if ((rateMatrixService.state$ | async) === 'Ready') {\n
    \n
    \n
    \n \n
    \n
    \n
    \n
      \n @for (tab of tabs; track $index) {\n
    • \n \n {{ tab.header | translate }}\n \n
    • \n }\n
    \n \n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { CopyMatrixModalComponent } from 'src/app/settings-app/rate-matrix/copy-matrix-modal/copy-matrix-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RateMatrixLine } from 'src/app/settings-app/rate-matrix/model/rate-matrix-line.model';\n\n@Injectable()\nexport class RateMatrixService {\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n\n private saveTabSubject = new Subject();\n public saveTab$ = this.saveTabSubject.asObservable();\n\n public readonly: boolean;\n public rateMatrix: RateMatrix;\n public rateMatrixStructure: Analytics[] = [];\n public isLinesExisting: boolean;\n public changeStructureMessage: string | null = null;\n\n private collection = this.data.collection('RateMatrices');\n private rateMatrixLinesCollection = this.data.collection('RateMatrixLines');\n private query = {\n expand: { type: { select: ['id', 'name'] } },\n };\n\n constructor(\n @Inject('entityId') private matrixId: string,\n private data: DataService,\n private modalService: NgbModal,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n /**\n * Updates Name.\n *\n * @param value name of the matrix.\n */\n public updateName(value: string): void {\n this.nameSubject.next(value);\n }\n\n /** Saves tab. */\n public saveTab(): void {\n this.saveTabSubject.next();\n }\n\n /**\n * Gets rate matrices.\n *\n * @param entityId matrix guid.\n * @param query query.\n *\n * @returns Returns rateMatrices observable.\n */\n public getRateMatrices(\n entityId: string,\n query: any = this.query,\n ): Observable {\n return this.collection.entity(entityId).get(query);\n }\n\n /** Copies matrix. */\n public openCopyModal(): void {\n const ref = this.modalService.open(CopyMatrixModalComponent);\n (ref.componentInstance as CopyMatrixModalComponent).matrixId =\n this.matrixId;\n }\n\n /** Deletes entity. */\n public delete(): void {\n this.messageService.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.data\n .collection('RateMatrices')\n .entity(this.matrixId)\n .delete()\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'settings.rateMatrices.card.messages.deleted',\n );\n this.navigationService.goToSelectedNavItem(true);\n },\n error: (error: Exception) => {\n this.messageService.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Patches rate matrix line.\n *\n * @param id matrixId.\n * @param value Partial .\n *\n * @returns Observable of matrix lines.\n */\n public patchRateMatrixLine(\n id: string,\n value: Partial,\n ): Observable {\n return this.rateMatrixLinesCollection.entity(id).patch(value);\n }\n\n /**\n * Patches rate matrix.\n *\n * @param id id.\n * @param value Partial .\n *\n * @returns Observable of matrix rates.\n */\n public patchRateMatrix(\n id: string,\n value: Partial,\n ): Observable {\n return this.collection.entity(id).patch(value);\n }\n\n /** Builds matrix lines. */\n public buildMatrixLines(): Observable {\n return this.collection.entity(this.matrixId).action('Build').execute();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SortableEvent, SortableOptions } from 'sortablejs';\n\nimport _ from 'lodash';\n\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { RateMatrixService } from '../rate-matrix.service';\nimport {\n Analytics,\n RateMatrixStructureItem,\n analytics,\n} from './rate-matrix-structure.model';\n\n@Component({\n selector: 'tmt-rate-matrix-structure-change-modal',\n templateUrl: './rate-matrix-structure-change-modal.component.html',\n styleUrls: ['./rate-matrix-structure-change-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RateMatrixStructureChangeModalComponent implements OnInit {\n @Input() public rateMatrixStructure: Analytics[];\n @Input() public readonly: boolean;\n\n public analytics: RateMatrixStructureItem[] = [];\n public selectedAnalytics: RateMatrixStructureItem[] = [];\n public analyticsDepends: Partial> = {\n competence: 'role',\n grade: 'level',\n };\n public analyticsSortableOptions: SortableOptions = {\n group: {\n name: 'analytics',\n },\n sort: false,\n handle: '.handle',\n draggable: '.draggable',\n animation: 0,\n onStart: () => {\n this.cdr.markForCheck();\n },\n onEnd: () => {\n this.cdr.markForCheck();\n },\n };\n public selectedColumnsSortableOptions: SortableOptions = {\n group: {\n name: 'analytics',\n },\n handle: '.handle',\n draggable: '.draggable',\n chosenClass: 'chosen-selected',\n ghostClass: 'ghost-selected',\n dragClass: 'drag-selected',\n onStart: () => {\n this.cdr.markForCheck();\n },\n onEnd: () => {\n this.cdr.markForCheck();\n },\n onSort: (event: SortableEvent) => {\n setTimeout(() => {\n this.checkOrder(event.item.dataset.key as Analytics);\n this.checkDifference();\n });\n },\n };\n\n constructor(\n private rateMatrixService: RateMatrixService,\n private activeModal: NgbActiveModal,\n private cdr: ChangeDetectorRef,\n private translateService: TranslateService,\n private notificationService: NotificationService,\n ) {}\n\n public ngOnInit(): void {\n this.init();\n }\n\n /**\n * Removes analytic from selected.\n *\n * @param analytic Selected analytic.\n */\n public removeSelected(analytic: RateMatrixStructureItem): void {\n this.analytics = this.analytics.concat(\n _.remove(this.selectedAnalytics, (el) => el.key === analytic.key),\n );\n this.checkDifference();\n this.cdr.markForCheck();\n }\n\n /** Sends new rateMatrixStructure to settings. */\n public ok(): void {\n if (!this.selectedAnalytics.length) {\n this.notificationService.warningLocal(\n 'settings.rateMatrices.changeStructure.validation',\n );\n\n return;\n }\n\n this.closeModal(true);\n }\n\n /**\n * Closes modal.\n *\n * @param withResult If `true`, closes with result.\n */\n public closeModal(withResult?: boolean): void {\n if (withResult) {\n this.activeModal.close(\n this.selectedAnalytics.map((analytic) => _.upperFirst(analytic.key)),\n );\n\n return;\n }\n\n this.activeModal.dismiss();\n }\n\n private checkOrder(key: Analytics): void {\n for (const dependedAnalytic of Object.keys(this.analyticsDepends)) {\n const analyticIndex = this.selectedAnalytics.findIndex(\n (item) => item.key === this.analyticsDepends[dependedAnalytic],\n );\n const dependedAnalyticIndex = this.selectedAnalytics.findIndex(\n (item) => item.key === dependedAnalytic,\n );\n\n if (dependedAnalyticIndex === -1) {\n continue;\n }\n\n if (key === dependedAnalytic && analyticIndex > dependedAnalyticIndex) {\n const element = this.selectedAnalytics.splice(analyticIndex, 1)[0];\n const newDependedAnalyticIndex = this.selectedAnalytics.findIndex(\n (item) => item.key === dependedAnalytic,\n );\n this.selectedAnalytics.splice(newDependedAnalyticIndex, 0, element);\n\n continue;\n }\n\n if (analyticIndex > dependedAnalyticIndex) {\n const element = this.selectedAnalytics.splice(\n dependedAnalyticIndex,\n 1,\n )[0];\n const newAnalyticIndex = this.selectedAnalytics.findIndex(\n (item) => item.key === this.analyticsDepends[dependedAnalytic],\n );\n this.selectedAnalytics.splice(newAnalyticIndex + 1, 0, element);\n\n continue;\n }\n }\n\n this.cdr.detectChanges();\n }\n\n private checkDifference(): void {\n if (!this.rateMatrixStructure.length) {\n return;\n }\n\n let itemsToRemove: Analytics[] = [];\n\n for (\n let i = 0;\n i <= this.rateMatrixService.rateMatrixStructure.length;\n i++\n ) {\n if (\n this.rateMatrixService.rateMatrixStructure[i] !==\n this.selectedAnalytics[i]?.key\n ) {\n itemsToRemove = this.rateMatrixService.rateMatrixStructure.slice(i);\n break;\n }\n }\n\n if (itemsToRemove.length) {\n this.rateMatrixService.changeStructureMessage =\n this.translateService.instant(\n `settings.rateMatrices.changeStructure.changeStructureMessage`,\n {\n analytics: itemsToRemove\n .map((item) =>\n this.translateService.instant(\n `shared.rateMatrices.${_.camelCase(item)}`,\n ),\n )\n .join(', '),\n },\n );\n } else {\n this.rateMatrixService.changeStructureMessage = null;\n }\n }\n\n private init(): void {\n this.analytics = analytics\n .filter((analytic) => analytic !== 'employmentType') //TODO: remove when backend ready.\n .map((key) => ({\n key,\n title: this.translateService.instant(`shared.rateMatrices.${key}`),\n hint: null,\n disabled: this.readonly,\n }));\n\n this.rateMatrixStructure\n .map((analytic) => _.camelCase(analytic))\n .forEach((analytic) => {\n const selectedAnalytic = _.remove(\n this.analytics,\n (el) => el.key === analytic,\n );\n\n this.selectedAnalytics =\n this.selectedAnalytics.concat(selectedAnalytic);\n });\n }\n}\n","
    \n
    \n

    \n {{ 'settings.rateMatrices.changeStructure.modalHeader' | translate }}\n

    \n \n
    \n
    \n
    \n {{ 'settings.rateMatrices.changeStructure.changeAnalytic' | translate }}\n
    \n\n
    \n
    \n \n {{ 'settings.rateMatrices.changeStructure.analytics' | translate }}\n \n
    \n \n @for (analytic of analytics; track analytic.key) {\n \n
    \n \n {{ analytic.title }}\n \n\n @if (analytic.hint && analytic.disabled) {\n \n }\n
    \n \n }\n\n @if (!analytics?.length) {\n \n }\n \n
    \n\n
    \n
    \n \n {{ 'settings.rateMatrices.changeStructure.selectedAnalytics' | translate }}\n \n
    \n \n @for (analytic of selectedAnalytics; track analytic.key) {\n \n
    \n {{ $index + 1 }}. {{ analytic.title }} \n\n @if (!analytic.disabled) {\n \n ×\n \n }\n
    \n \n }\n\n @if (!selectedAnalytics?.length) {\n \n }\n \n
    \n
    \n\n
    \n @if (!readonly) {\n \n }\n\n \n
    \n
    \n\n\n
    \n

    \n {{ 'shared.dragColumn' | translate }}\n

    \n
    \n
    \n","export const analytics = [\n 'role',\n 'competence',\n 'level',\n 'grade',\n 'location',\n 'resourcePool',\n 'legalEntity',\n 'employmentType',\n] as const;\n\nexport type Analytics = (typeof analytics)[number];\n\nexport interface RateMatrixStructureItem {\n /** Entity name. */\n key: Analytics;\n /** Entity translate. */\n title: string;\n /** Analytic hint. */\n hint: string | null;\n /** Determines whether the Analytic option is disabled or not. */\n disabled?: boolean;\n}\n","import { Component, DestroyRef, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StateService } from '@uirouter/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { RateMatrix } from 'src/app/settings-app/rate-matrix/model/rate-matrix.model';\n\n@Component({\n selector: 'tmt-copy-matrix-modal',\n templateUrl: './copy-matrix-modal.component.html',\n standalone: false,\n})\nexport class CopyMatrixModalComponent {\n @Input() matrixId: string;\n\n public form = this.fb.group({\n name: [\n null,\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n effectiveDate: [null, Validators.required],\n });\n public isSaving: boolean;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private state: StateService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n ) {}\n\n /** Copies rate matrix. */\n public copy(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('RateMatrices')\n .entity(this.matrixId)\n .action('Copy')\n .execute(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (createdMatrix) => {\n this.notification.successLocal(\n 'settings.navigation.finance.rateMatrices.copyingModal.messages.wasCopied',\n );\n this.isSaving = false;\n this.activeModal.close();\n this.state.go('settings.rateMatrix', { entityId: createdMatrix.id });\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Closes modal. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'settings.navigation.finance.rateMatrices.copyingModal.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n {{ 'shared.actions.copy' | translate }}\n \n \n
    \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { StateService } from '@uirouter/core';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-rate-matrix-creation-modal',\n templateUrl: './rate-matrix-creation-modal.component.html',\n standalone: false,\n})\nexport class RateMatrixCreationModalComponent {\n public isSaving = false;\n public creationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n effectiveDate: null,\n type: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notificationService: NotificationService,\n private dataService: DataService,\n private stateService: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Modal submit handler. */\n public ok(): void {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.creationForm.value.name,\n effectiveDate: this.creationForm.value.effectiveDate,\n typeId: this.creationForm.value.type.id,\n };\n\n this.dataService\n .collection('RateMatrices')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notificationService.successLocal(\n 'settings.rateMatrices.creation.messages.created',\n );\n this.stateService.go('settings.rateMatrix', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'settings.rateMatrices.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, inject, DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from 'src/app/settings-app/shared/default-filter/default-filter.service';\nimport { RateMatrixCreationModalComponent } from 'src/app/settings-app/rate-matrix/creation-modal/rate-matrix-creation-modal.component';\nimport { CopyMatrixModalComponent } from 'src/app/settings-app/rate-matrix/copy-matrix-modal/copy-matrix-modal.component';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-rate-matrix-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class RateMatrixListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private entityListService: EntityListService,\n private gridService: GridService,\n private stateService: StateService,\n private appService: AppService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit(): void {\n this.actionPanelService.set([\n this.actionPanelService.getDefaultAction('create', {\n title: 'settings.rateMatrices.list.create',\n isVisible: this.appService.checkEntityPermission(\n 'RateMatrix',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actionPanelService.getDefaultAction('card', {\n handler: () =>\n this.stateService.go('settings.rateMatrix', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actionPanelService.getDefaultAction('delete', {\n handler: this.entityListService.delete,\n }),\n\n {\n name: 'copy',\n title: 'analytics.dashboards.list.actions.copy.title',\n hint: 'analytics.dashboards.list.actions.copy.title',\n isDropDown: false,\n isBusy: false,\n isVisible: this.appService.checkEntityPermission(\n 'RateMatrix',\n PermissionType.Modify,\n ),\n handler: () => this.openCopyModal(),\n },\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((rows: any[]) => {\n this.actionPanelService.action('card').isShown = rows?.length === 1;\n this.actionPanelService.action('copy').isShown =\n rows?.length === 1 &&\n this.appService.checkEntityPermission(\n 'RateMatrix',\n PermissionType.Modify,\n );\n });\n }\n\n private create(): void {\n this.modalService.open(RateMatrixCreationModalComponent);\n }\n\n private openCopyModal(): void {\n const ref = this.modalService.open(CopyMatrixModalComponent);\n (ref.componentInstance as CopyMatrixModalComponent).matrixId =\n this.gridService.selectedGroupValue.id;\n }\n}\n","import { List } from 'src/app/shared/models/inner/list';\nimport { analytics } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure.model';\nimport {\n GridColumnType,\n GridCurrencyControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nconst generateViews = () => {\n const columns = [];\n analytics.forEach((key) => {\n columns.push({\n column: key + 'Name',\n visibleByDefault: true,\n width: 250,\n });\n });\n columns.push({\n column: 'rate',\n visibleByDefault: true,\n width: 250,\n });\n return columns;\n};\n\nconst generateColumns = () => {\n const columns = [];\n analytics.forEach((key) => {\n columns.push({\n name: key + 'Name',\n header: 'shared.rateMatrices.' + key,\n hint: 'shared.rateMatrices.' + key,\n type: GridColumnType.String,\n forceCellUpdating: true,\n visibleByDefault: true,\n });\n });\n columns.push({\n name: 'rate',\n header: 'shared.rateMatrices.rate',\n hint: 'shared.rateMatrices.rate',\n type: GridColumnType.CurrencyControl,\n forceCellUpdating: true,\n width: '250px',\n max: 999999999,\n min: 0,\n allowNull: false,\n controlType: 'currency',\n isCurrencyEditable: false,\n });\n return columns;\n};\n\nexport const RATE_MATRIX_LINE_LIST: List = {\n version: 3,\n name: 'matrixRateLine',\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: generateViews(),\n order: { column: 'rate', reverse: false },\n },\n ],\n columns: [...generateColumns()],\n dataColumns: [],\n dataCollection: 'RateMatrices',\n};\n","// TODO: remove it?\nexport enum RateMatrixStructureCollection {\n role = 'Roles',\n competence = 'Competences',\n level = 'Levels',\n location = 'Locations',\n legalEntity = 'LegalEntities',\n grade = 'Grades',\n resourcePool = 'ResourcePools',\n}\n","import { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Analytics } from '../card/structure-change-modal/rate-matrix-structure.model';\nimport { State } from 'src/app/shared/models/entities/state.model';\n\nexport class RateMatrix extends NamedEntity {\n public static readonly billingRateTypeId =\n '806aa1f6-d8d1-43a5-99b2-eada003e03cf';\n public static readonly costRateTypeId =\n '79329a3b-4a50-4595-83b8-87ae99460112';\n public static readonly draftStateId = '2f25a363-11a3-4df9-94d6-edc4580eba0a';\n public static readonly activeStateId = 'cc477184-b32c-4f14-ac2b-70bbf14cbc12';\n /** Rate matrix Code. */\n code: string;\n /** Description. */\n description: string;\n /** Start date of rate matrix. */\n effectiveDate: string;\n /** End date of rate matrix. */\n expiryDate: string;\n /** Grouping of rate matrix analytics. */\n rateMatrixStructure: Analytics[];\n /** Rate matrix state. */\n state: State;\n /** Rate matrix state id. */\n stateId: string;\n /** Count of lines. */\n linescount: number;\n}\n","import { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\nimport {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const RATE_MATRIX_LIST: List = {\n version: 6,\n name: 'matrixRate',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n\n {\n name: 'with-my-workflow',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowInstances(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n },\n\n {\n name: 'with-my-task',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowTasks(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'settings.rateMatrix',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'type',\n header: 'settings.rateMatrices.card.rateMatrixType',\n hint: 'settings.rateMatrices.card.rateMatrixType',\n type: GridColumnType.String,\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n },\n {\n name: 'effectiveDate',\n header: 'shared.columns.effectiveDate.title',\n hint: 'shared.columns.effectiveDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'expiryDate',\n header: 'shared.columns.expiryDate.title',\n hint: 'shared.columns.expiryDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'type',\n field: 'type.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'effectiveDate',\n field: 'effectiveDate',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'expiryDate',\n field: 'expiryDate',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'RateMatrices',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport {\n VIEW_NAME,\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n META_ENTITY_TYPE,\n} from 'src/app/shared/tokens';\nimport { RATE_MATRIX_LIST } from 'src/app/settings-app/rate-matrix/rate-matrix.list';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { RateMatrixListComponent } from 'src/app/settings-app/rate-matrix/list/rate-matrix-list.component';\nimport { RateMatrixCreationModalComponent } from 'src/app/settings-app/rate-matrix/creation-modal/rate-matrix-creation-modal.component';\nimport { RateMatrixCardComponent } from 'src/app/settings-app/rate-matrix/card/rate-matrix-card.component';\nimport { MainRateMatrixComponent } from 'src/app/settings-app/rate-matrix/card/main-matrix/main-matrix.component';\nimport { MatrixRateComponent } from 'src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate.component';\nimport { MatrixRateToolbarComponent } from 'src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-toolbar/matrix-rate-toolbar.component';\nimport { CopyMatrixModalComponent } from 'src/app/settings-app/rate-matrix/copy-matrix-modal/copy-matrix-modal.component';\nimport { MatrixRateLinesComponent } from 'src/app/settings-app/rate-matrix/card/matrix-rate/matrix-rate-lines/matrix-rate-lines.component';\nimport { RateMatrixStructureChangeModalComponent } from 'src/app/settings-app/rate-matrix/card/structure-change-modal/rate-matrix-structure-change-modal.component';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n RateMatrixListComponent,\n RateMatrixCreationModalComponent,\n RateMatrixStructureChangeModalComponent,\n RateMatrixCardComponent,\n MainRateMatrixComponent,\n MatrixRateLinesComponent,\n MatrixRateComponent,\n MatrixRateToolbarComponent,\n CopyMatrixModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n BaseSharedModule,\n CommentsModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.rateMatrices',\n url: '/rate-matrices/{view:viewName}?{navigation}&{route}',\n component: RateMatrixListComponent,\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'settings.rateMatrices',\n routeMode: null,\n view: 'default',\n },\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: META_ENTITY_TYPE, useValue: 'RateMatrix' },\n { provide: LIST, useValue: RATE_MATRIX_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'settings.rateMatrix',\n } as MassOperationParameters,\n },\n ],\n },\n {\n name: 'settings.rateMatrix',\n params: {\n navigation: 'settings.rateMatrices',\n },\n url: '/rate-matrices/{entityId:guid}',\n redirectTo: 'settings.rateMatrix.main',\n component: RateMatrixCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n {\n name: 'settings.rateMatrix.main',\n url: '/main',\n component: MainRateMatrixComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.rateMatrix.matrixRate',\n url: '/lines',\n component: MatrixRateComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class RateMatrixModule {}\n","import { Component, OnInit, Inject, inject, DestroyRef } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ResourcePool } from 'src/app/shared/models/entities/settings/resource-pool.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { CoManagersModalComponent } from 'src/app/shared/components/co-managers-modal/co-managers-modal.component';\n\n@Component({\n selector: 'tmt-resource-pool-card',\n styleUrl: './resource-pool-card.component.scss',\n templateUrl: './resource-pool-card.component.html',\n host: {\n class: 'resource-pool-card',\n },\n standalone: false,\n})\nexport class ResourcePoolCardComponent implements OnInit {\n public state$ = new BehaviorSubject(CardState.Loading);\n public isLoading = false;\n public isSaving = false;\n public readonly = !this.appService.checkEntityPermission(\n 'ResourcePool',\n PermissionType.Modify,\n );\n public feature = Feature;\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n manager: [null, Validators.required],\n leadResourcePool: [null],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isDefault: [false],\n isActive: [false],\n });\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public resourcePoolId: string,\n private fb: UntypedFormBuilder,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n private messageService: MessageService,\n private notificationService: NotificationService,\n private modalService: NgbModal,\n private appService: AppService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n {\n title: 'settings.resourcePools.card.main.actions.coManagers',\n hint: 'settings.resourcePools.card.main.actions.coManagers',\n name: 'coManagers',\n isDropDown: false,\n isBusy: false,\n isVisible: true,\n handler: () => this.openCoManagers(),\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: () => this.setAsDefault(),\n },\n ]);\n\n this.load();\n this.setSubscriptions();\n }\n\n /** Saves data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving = true;\n this.actionPanelService.action('save').start();\n\n const resourcePool = this.form.value;\n\n const data: any = {\n name: resourcePool.name,\n code: resourcePool.code,\n description: resourcePool.description,\n isActive: resourcePool.isActive,\n managerId: resourcePool.manager.id,\n leadResourcePoolId: resourcePool.leadResourcePool?.id ?? null,\n };\n\n this.dataService\n .collection('ResourcePools')\n .entity(this.resourcePoolId)\n .patch(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal(\n 'settings.resourcePools.card.main.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Opens modal of co-managers settings.*/\n public openCoManagers(): void {\n const modalRef = this.modalService.open(CoManagersModalComponent);\n const instance = modalRef.componentInstance;\n instance.readonly = this.readonly;\n instance.type = 'resourcePool';\n instance.manager = this.form.get('manager').value;\n instance.entityId = this.resourcePoolId;\n }\n\n /** Sets this resource pool as default. */\n public setAsDefault(): void {\n this.dataService\n .collection('ResourcePools')\n .entity(this.resourcePoolId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'settings.resourcePools.card.messages.hasBeenSetByDefault',\n );\n this.actionPanelService.action('setAsDefault').isShown = false;\n this.form.get('isDefault').setValue(true);\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n private load(): void {\n this.state$.next(CardState.Loading);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n expand: {\n manager: { select: ['id', 'name'] },\n leadResourcePool: { select: ['id', 'name'] },\n },\n };\n\n this.dataService\n .collection('ResourcePools')\n .entity(this.resourcePoolId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (resourcePool) => {\n this.navigationService.addRouteSegment({\n id: resourcePool.id,\n title: resourcePool.name,\n });\n\n this.form.patchValue(resourcePool);\n this.readonly = !resourcePool.editAllowed;\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n this.actionPanelService.action('setAsDefault').isShown =\n !resourcePool.isDefault && !this.readonly;\n\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.state$.next(CardState.Ready);\n },\n error: (error) => {\n this.state$.next(CardState.Error);\n this.notificationService.error(error.message);\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private setSubscriptions(): void {\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n}\n","\n\n\n\n\n
    \n

    \n  {{\n 'settings.resourcePools.card.main.props.usingByDefault' | translate\n }}\n

    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-resource-pool-creation',\n templateUrl: './resource-pool-creation.component.html',\n standalone: false,\n})\nexport class ResourcePoolCreationComponent {\n isSaving = false;\n creationForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n manager: [null, Validators.required],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.creationForm.value.name,\n managerId: this.creationForm.value.manager.id,\n };\n\n this.data\n .collection('ResourcePools')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.resourcePools.creation.created',\n );\n this.state.go('settings.resourcePool', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.resourcePools.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { ResourcePoolCreationComponent } from '../creation/resource-pool-creation.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-resource-pool-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ResourcePoolListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private notification: NotificationService,\n private data: DataService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.resourcePools.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'ResourcePool',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.resourcePool', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('ResourcePool', PermissionType.Modify);\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission(\n 'ResourcePool',\n PermissionType.Modify,\n ) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(ResourcePoolCreationComponent);\n };\n\n private setAsDefault() {\n this.data\n .collection('ResourcePools')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.resourcePools.card.messages.hasBeenSetByDefault',\n );\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ResourcePoolCardComponent } from './card/resource-pool-card.component';\nimport { ResourcePoolListComponent } from './list/resource-pool-list.component';\nimport { ResourcePoolCreationComponent } from './creation/resource-pool-creation.component';\nimport { RESOURCE_POOL_LIST } from 'src/app/shared/lists/resource-pool.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n@NgModule({\n declarations: [\n ResourcePoolCardComponent,\n ResourcePoolListComponent,\n ResourcePoolCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.resourcePools',\n url: '/resource-pools',\n component: ResourcePoolListComponent,\n params: {\n navigation: 'settings.resourcePools',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: RESOURCE_POOL_LIST },\n ],\n },\n\n {\n name: 'settings.resourcePool',\n params: {\n navigation: 'settings.resourcePools',\n },\n url: '/resource-pools/{entityId:guid}',\n component: ResourcePoolCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ResourcePoolsModule {}\n","import { Component, OnInit, Input, DestroyRef, inject } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { RoleCardService } from './role-card.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Role } from 'src/app/shared/models/entities/settings/role.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'wp-role-card',\n templateUrl: './role-card.component.html',\n providers: [RoleCardService],\n standalone: false,\n})\nexport class RoleCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public readonly = !this.appService.checkEntityPermission(\n 'Role',\n PermissionType.Modify,\n );\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n isDefault: false,\n });\n public roleResourcePools = [];\n public isSaving$ = new BehaviorSubject(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public roleCardService: RoleCardService,\n private appService: AppService,\n private notificationService: NotificationService,\n private blockUIService: BlockUIService,\n private dataService: DataService,\n private messageService: MessageService,\n private actionPanelService: ActionPanelService,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.save(),\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: !this.readonly,\n handler: () => this.roleCardService.setAsDefault(),\n },\n ]);\n\n this.form.controls['name'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.roleCardService.updateName(value);\n });\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n\n this.roleCardService.role$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((role: Role) => {\n this.form.patchValue(role);\n this.readonly = !role.editAllowed;\n this.readonly ? this.form.disable() : this.form.enable();\n });\n }\n\n /** Saves Data. */\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving$.next(true);\n this.blockUIService.start();\n this.actionPanelService.action('save').start();\n const role = this.form.value;\n\n const data: any = {\n name: role.name,\n description: role.description,\n isActive: role.isActive,\n };\n\n this.dataService\n .collection('Roles')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.successLocal('settings.roles.card.saved');\n },\n error: (error: Exception) => {\n this.isSaving$.next(false);\n this.blockUIService.stop();\n this.actionPanelService.action('save').stop();\n this.notificationService.error(error.message);\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.roleCardService.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.form.markAsPristine();\n this.roleCardService.load();\n },\n () => null,\n );\n }\n }\n}\n","\n\n\n\n\n
    \n @if (form.value.isDefault) {\n

    \n  {{\n 'settings.roles.card.usingByDefault' | translate\n }}\n

    \n }\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n @if (!readonly) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n
    ","import { DestroyRef, Inject, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { Role } from 'src/app/shared/models/entities/settings/role.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class RoleCardService {\n public state$ = new BehaviorSubject(CardState.Loading);\n\n private nameSubject = new BehaviorSubject(null);\n public name$ = this.nameSubject.asObservable();\n\n private roleSubject = new ReplaySubject();\n public role$ = this.roleSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') public entityId: string,\n private data: DataService,\n private notification: NotificationService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n ) {\n this.load();\n }\n\n /** Loads role data. */\n public load(): void {\n this.state$.next(CardState.Loading);\n\n const query = {\n select: [\n 'id',\n 'name',\n 'description',\n 'isActive',\n 'isDefault',\n 'editAllowed',\n ],\n };\n\n this.data\n .collection('Roles')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (role: Role) => {\n this.state$.next(CardState.Ready);\n this.actionService.action('save').isShown = role.editAllowed;\n this.actionService.action('setAsDefault').isShown =\n role.editAllowed && !role.isDefault;\n\n this.nameSubject.next(role.name);\n this.roleSubject.next(role);\n\n this.navigationService.addRouteSegment({\n id: role.id,\n title: role.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Sets role as default. */\n public setAsDefault(): void {\n this.data\n .collection('Roles')\n .entity(this.entityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal('settings.roles.card.setAsDefault');\n this.actionService.action('setAsDefault').isShown = false;\n this.actionService.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n /** Updates role name subject. */\n public updateName(value: any): void {\n this.nameSubject.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-role-creation',\n templateUrl: './role-creation.component.html',\n standalone: false,\n})\nexport class RoleCreationComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n const data = this.form.value;\n\n this.data\n .collection('Roles')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal('settings.roles.creation.created');\n this.state.go('settings.role', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.roles.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { RoleCreationComponent } from '../creation/role-creation.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-role-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class RoleListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private notification: NotificationService,\n private data: DataService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.roles.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Role',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.role', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row && this.app.checkEntityPermission('Role', PermissionType.Modify);\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission('Role', PermissionType.Modify) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(RoleCreationComponent);\n };\n\n private setAsDefault() {\n this.data\n .collection('Roles')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal('settings.roles.card.setAsDefault');\n this.service.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RoleList } from 'src/app/shared/lists/role.list';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { RoleListComponent } from './list/role-list.component';\nimport { RoleCardComponent } from './card/role-card.component';\nimport { RoleCreationComponent } from './creation/role-creation.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [RoleListComponent, RoleCardComponent, RoleCreationComponent],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.roles',\n url: '/roles',\n component: RoleListComponent,\n params: {\n navigation: 'settings.roles',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: RoleList },\n ],\n },\n {\n name: 'settings.role',\n params: {\n navigation: 'settings.roles',\n },\n url: '/roles/{entityId:guid}',\n component: RoleCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class RolesModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-schedule-exceptions-toolbar',\n templateUrl: './schedule-exceptions-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ScheduleExceptionsToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared.actions.addLine' | translate }}\n \n
    \n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n signal,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { ScheduleExceptionsToolbarComponent } from './exceptions-toolbar/schedule-exceptions-toolbar.component';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n FormGroup,\n FormArray,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { uniq } from 'lodash';\nimport { ScheduleException } from 'src/app/shared/models/entities/settings/schedule-exception.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridDateControlColumn,\n GridNumberControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-schedule-exceptions',\n templateUrl: './schedule-exception-card.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ScheduleExceptionCardComponent implements OnInit {\n @Input() entityId: string;\n\n public state$ = new BehaviorSubject(CardState.Loading);\n\n public isSaving = signal(false);\n public readonly = signal(false);\n\n public cardState = CardState;\n public form: FormGroup = this.fb.group({\n id: [''],\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n isActive: [false],\n exceptionDays: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: ScheduleExceptionsToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly(),\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n const exceptionDays = this.form.controls.exceptionDays as FormArray;\n exceptionDays.removeAt(index);\n exceptionDays.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'add',\n handlerFn: () => {\n const exceptionDays = this.form.controls.exceptionDays as FormArray;\n const group = this.getExceptionDayFormGroup();\n exceptionDays.insert(0, group);\n group.markAsDirty();\n this.gridService.selectGroup(group);\n },\n },\n ],\n view: {\n name: 'exceptions',\n columns: [\n {\n name: 'date',\n header: 'settings.scheduleExceptions.card.columns.date',\n hint: 'settings.scheduleExceptions.card.columns.date',\n type: GridColumnType.DateControl,\n width: '150px',\n },\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.StringControl,\n width: '100%',\n },\n {\n name: 'dayLength',\n header: 'settings.scheduleExceptions.card.columns.duration.header',\n hint: 'settings.scheduleExceptions.card.columns.duration.hint',\n type: GridColumnType.NumberControl,\n controlType: 'decimal',\n width: '200px',\n min: 0,\n max: 24,\n },\n {\n name: 'excludeFromCalendarDuration',\n header:\n 'settings.scheduleExceptions.card.columns.excludeFromCalendarDuration.header',\n hint: 'settings.scheduleExceptions.card.columns.excludeFromCalendarDuration.hint',\n type: GridColumnType.BooleanControl,\n width: '200px',\n },\n ],\n },\n };\n\n constructor(\n private gridService: GridService,\n private notification: NotificationService,\n private data: DataService,\n private message: MessageService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private navigationServe: NavigationService,\n private cdr: ChangeDetectorRef,\n ) {\n actionService.reload$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.reload());\n }\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'settings.scheduleExceptions.card.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n }\n\n /** Saves the current form data. */\n public save(): void {\n this.form.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const exceptionDays = this.form.controls.exceptionDays as FormArray;\n // Checks if all dates in exception days are unique.\n if (\n uniq(exceptionDays.controls.map((v) => v.value.date)).length !==\n exceptionDays.length\n ) {\n this.notification.warningLocal(\n 'settings.scheduleExceptions.card.messages.dateUniqueError',\n );\n return;\n }\n\n this.isSaving.set(true);\n this.actionService.action('save').start();\n\n const data = this.form.value;\n this.data\n .collection('scheduleExceptions')\n .entity(this.entityId)\n .update(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.scheduleExceptions.card.messages.saved',\n );\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n },\n });\n }\n\n /** Loads the schedule exception data. */\n private load(): void {\n this.state$.next(CardState.Loading);\n\n this.form.reset();\n const exceptionDays = this.form.controls.exceptionDays as FormArray;\n exceptionDays.clear();\n\n this.data\n .collection('ScheduleExceptions')\n .entity(this.entityId)\n .get({\n expand: [{ exceptionDays: { orderBy: 'date desc' } }],\n })\n .subscribe({\n next: (scheduleException: ScheduleException) => {\n this.form.patchValue(scheduleException);\n\n (scheduleException.exceptionDays as any[]).forEach((exceptionDay) => {\n const group = this.getExceptionDayFormGroup();\n group.patchValue(exceptionDay);\n\n exceptionDays.push(group);\n });\n\n this.readonly.set(!scheduleException.editAllowed);\n if (scheduleException.editAllowed) {\n this.actionService.action('save').show();\n this.form.enable();\n } else {\n this.form.disable();\n }\n this.cdr.detectChanges();\n\n this.navigationServe.addRouteSegment({\n id: this.entityId,\n title: scheduleException.name,\n });\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Generates a new FormGroup for an exception day.\n *\n * @returns A new FormGroup for an exception day.\n */\n private getExceptionDayFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n date: [null, Validators.required],\n dayLength: [\n 0,\n [Validators.required, Validators.min(0), Validators.max(24)],\n ],\n excludeFromCalendarDuration: [true],\n });\n }\n\n /** Reloads the form data. */\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n}\n","\n\n\n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n \n\n
    \n @if (!readonly()) {\n \n {{ 'settings.scheduleExceptions.card.actions.save' | translate }}\n \n }\n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-schedule-exception-creation',\n templateUrl: './schedule-exception-creation.component.html',\n standalone: false,\n})\nexport class ScheduleExceptionCreationComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = this.form.value;\n\n this.data\n .collection('ScheduleExceptions')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.scheduleExceptions.creation.messages.created',\n );\n this.state.go('settings.scheduleException', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    \n {{ 'settings.scheduleExceptions.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, DestroyRef, inject } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ScheduleExceptionCreationComponent } from '../creation/schedule-exception-creation.component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-schedule-exception-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ScheduleExceptionListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.scheduleExceptions.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'ScheduleException',\n PermissionType.Modify,\n ),\n handler: () => this.create(),\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.scheduleException', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'ScheduleException',\n PermissionType.Modify,\n );\n });\n }\n\n private create() {\n this.modalService.open(ScheduleExceptionCreationComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { SCHEDULE_EXCEPTION_LIST } from 'src/app/shared/lists/schedule-exception.list';\nimport { ScheduleExceptionCreationComponent } from './creation/schedule-exception-creation.component';\nimport { ScheduleExceptionListComponent } from './list/schedule-exception-list.component';\nimport { ScheduleExceptionCardComponent } from './card/schedule-exception-card.component';\nimport { ScheduleExceptionsToolbarComponent } from './card/exceptions-toolbar/schedule-exceptions-toolbar.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ScheduleExceptionListComponent,\n ScheduleExceptionCardComponent,\n ScheduleExceptionCreationComponent,\n ScheduleExceptionsToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.scheduleExceptions',\n url: '/schedule-exceptions',\n component: ScheduleExceptionListComponent,\n params: {\n navigation: 'settings.scheduleExceptions',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: SCHEDULE_EXCEPTION_LIST },\n ],\n },\n {\n name: 'settings.scheduleException',\n params: {\n navigation: 'settings.scheduleExceptions',\n },\n url: '/schedule-exceptions/{entityId:guid}',\n component: ScheduleExceptionCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ScheduleExceptionsModule {}\n","import {\n Component,\n OnInit,\n Input,\n Inject,\n LOCALE_ID,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport {\n Validators,\n UntypedFormBuilder,\n UntypedFormArray,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { ScheduleCardService } from './schedule-card.service';\nimport {\n Schedule,\n ScheduleDay,\n} from 'src/app/shared/models/entities/settings/schedule.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n getLocaleDayNames,\n FormStyle,\n TranslationWidth,\n getLocaleFirstDayOfWeek,\n} from '@angular/common';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-schedule-card',\n templateUrl: './schedule-card.component.html',\n providers: [ScheduleCardService],\n standalone: false,\n})\nexport class ScheduleCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n\n public form = this.fb.group({\n id: [''],\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n daysCount: [0, Validators.required],\n scheduleException: [null],\n isActive: [false],\n isDefault: [false],\n firstDay: [null],\n patternDays: this.fb.array([]),\n });\n localeDaysOfWeek: string[];\n\n private destroyRef = inject(DestroyRef);\n\n public get patternDays(): UntypedFormArray {\n return this.form.controls['patternDays'] as UntypedFormArray;\n }\n\n public get schedule(): Schedule {\n return this.form.getRawValue() as Schedule;\n }\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private message: MessageService,\n private actionService: ActionPanelService,\n public service: ScheduleCardService,\n @Inject(LOCALE_ID) public locale: string,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: this.setAsDefault,\n },\n ]);\n const localeFirstDayOfWeek = getLocaleFirstDayOfWeek(this.locale);\n this.localeDaysOfWeek = getLocaleDayNames(\n this.locale,\n FormStyle.Standalone,\n TranslationWidth.Wide,\n ) as [];\n\n if (localeFirstDayOfWeek === 1) {\n this.localeDaysOfWeek = [...this.localeDaysOfWeek];\n this.localeDaysOfWeek.push(this.localeDaysOfWeek.shift());\n }\n\n this.form.controls['daysCount'].valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.form.controls['daysCount'].value !== 7) {\n this.form.controls['firstDay'].setValidators(Validators.required);\n this.form.controls['firstDay'].enable();\n } else {\n this.form.controls['firstDay'].clearValidators();\n this.form.controls['firstDay'].disable();\n this.form.updateValueAndValidity();\n }\n\n this.rebuildDays();\n });\n\n this.service.schedule$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((schedule?: Schedule) => {\n if (!schedule) {\n return;\n }\n\n this.isLoading = false;\n\n this.form.patchValue(schedule);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.readonly = !schedule.editAllowed;\n if (schedule.editAllowed) {\n this.actionService.action('save').show();\n this.form.enable();\n } else {\n this.form.disable();\n }\n this.actionService.action('setAsDefault').isShown =\n !this.readonly && !this.schedule.isDefault;\n });\n\n this.service.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n });\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n });\n\n this.service.reload();\n }\n\n /**\n * gets day title.\n * @param index\n * @returns dayNumber\n */\n public getDayTitle(index: number): string {\n const day = this.patternDays.controls[index].value as ScheduleDay;\n\n if (this.schedule.daysCount === 7) {\n return this.localeDaysOfWeek[day.dayNumber - 1];\n } else {\n return `# ${day.dayNumber}`;\n }\n }\n\n public setToWeek(): void {\n this.form.controls['daysCount'].setValue(7);\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const schedule = this.schedule;\n\n const data = {\n id: schedule.id,\n name: schedule.name,\n description: schedule.description,\n daysCount: schedule.daysCount,\n scheduleExceptionId: schedule.scheduleException?.id ?? null,\n isActive: schedule.isActive,\n firstDay: schedule.firstDay,\n patternDays: this.patternDays.value,\n isDefault: schedule.isDefault,\n };\n\n this.data\n .collection('Schedules')\n .entity(this.entityId)\n .update(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.schedules.card.messages.saved',\n );\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n this.actionService.action('save').stop();\n },\n });\n };\n\n private rebuildDays(): void {\n const daysCount = this.form.controls['daysCount'].value;\n\n for (let index = 1; index <= daysCount; index++) {\n const day = (this.patternDays.value as ScheduleDay[]).find(\n (d) => d.dayNumber === index,\n );\n if (day == null) {\n this.patternDays.push(\n this.fb.group({\n id: Guid.generate(),\n dayNumber: index,\n dayLength: [8, Validators.required],\n scheduleId: this.entityId,\n }),\n );\n }\n }\n\n (this.patternDays.value as ScheduleDay[])\n .filter((day) => day.dayNumber > daysCount)\n .forEach((day) => {\n const index = (this.patternDays.value as ScheduleDay[]).indexOf(day);\n this.patternDays.removeAt(index);\n });\n }\n\n public setAsDefault = (): void => {\n this.data\n .collection('Schedules')\n .entity(this.entityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.schedules.card.messages.setAsDefault',\n );\n\n this.actionService.action('setAsDefault').isShown = false;\n this.form.controls['isDefault'].setValue(true);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n };\n\n private load = (): void => {\n this.service.load();\n this.isLoading = true;\n };\n}\n","\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n\n \n \n

    \n {{ 'settings.schedules.card.props.daysCountHelp' | translate }}\n

    \n\n \n {{ 'settings.schedules.card.actions.weekSchedule' | translate }}\n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n

    \n  {{\n 'settings.schedules.card.props.usingByDefault' | translate\n }}\n

    \n
    \n
    \n\n
    \n \n \n \n \n \n {{ 'settings.schedules.card.columns.duration.header' | translate }}\n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.schedules.card.columns.day' | translate }}\n
    \n {{ getDayTitle(i) }}\n \n \n \n
    \n
    \n
    \n\n
    \n \n {{ 'settings.schedules.card.actions.save' | translate }}\n \n
    \n
    \n
    \n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Schedule } from 'src/app/shared/models/entities/settings/schedule.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Injectable()\nexport class ScheduleCardService {\n public cardIsLoading$ = new BehaviorSubject(false);\n\n private scheduleSubject = new BehaviorSubject(null);\n public schedule$ = this.scheduleSubject.asObservable();\n\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n\n constructor(\n @Inject('entityId') private scheduleId,\n private data: DataService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n /**\n * Обновление данных вкладки.\n */\n public reload() {\n this.reloadSubject.next();\n }\n\n public load() {\n this.cardIsLoading$.next(true);\n this.data\n .collection('Schedules')\n .entity(this.scheduleId)\n .get({\n expand: [\n { patternDays: { orderBy: 'dayNumber' } },\n { scheduleException: { select: ['name', 'id'] } },\n ],\n })\n .subscribe({\n next: (schedule) => {\n this.cardIsLoading$.next(false);\n this.scheduleSubject.next(schedule);\n\n this.navigationService.addRouteSegment({\n id: schedule.id,\n title: schedule.name,\n });\n },\n error: (error: any) => {\n this.cardIsLoading$.next(false);\n this.notification.error(error.message);\n },\n });\n }\n}\n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-schedule-creation',\n templateUrl: './schedule-creation.component.html',\n standalone: false,\n})\nexport class ScheduleCreationComponent {\n isSaving = false;\n form: UntypedFormGroup;\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {\n this.form = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n });\n }\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = this.form.value;\n data.daysCount = 7;\n\n this.data\n .collection('Schedules')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.schedules.creation.messages.created',\n );\n this.state.go('settings.schedule', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.schedules.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ScheduleCreationComponent } from '../creation/schedule-creation.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-schedule-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ScheduleListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private data: DataService,\n private notification: NotificationService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.schedules.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'Schedule',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.schedule', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('Schedule', PermissionType.Modify);\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission('Schedule', PermissionType.Modify) &&\n !row.isDefault;\n },\n );\n }\n\n private setAsDefault = () => {\n this.data\n .collection('Schedules')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.schedules.card.messages.setAsDefault',\n );\n this.service.reload();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n },\n });\n };\n\n private create = () => {\n this.modalService.open(ScheduleCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ScheduleListComponent } from './list/schedule-list.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { ScheduleList } from 'src/app/shared/lists/schedule.list';\nimport { ScheduleCardComponent } from './card/schedule-card.component';\nimport { ScheduleCreationComponent } from './creation/schedule-creation.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ScheduleListComponent,\n ScheduleCardComponent,\n ScheduleCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.schedules',\n url: '/schedules',\n component: ScheduleListComponent,\n params: {\n navigation: 'settings.schedules',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ScheduleList },\n ],\n },\n {\n name: 'settings.schedule',\n params: {\n navigation: 'settings.schedules',\n },\n url: '/schedules/{entityId:guid}',\n component: ScheduleCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class SchedulesModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-settings-app',\n template: '',\n standalone: false,\n})\nexport class SettingsAppComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { SETTINGS_STATES } from './settings-app.states';\nimport { SettingsAppComponent } from './settings-app.component';\nimport { DefaultFilterDetailsComponent } from './shared/default-filter/default-filter-details/default-filter-details.component';\nimport { AccountModule } from './account/account.module';\nimport { SettingsModule } from './settings/settings.module';\nimport { UsersModule } from './users/users.module';\nimport { RolesModule } from './roles/roles.module';\nimport { TimeOffTypesModule } from './time-off-types/time-off-types.module';\nimport { ActivitiesModule } from './activities/activities.module';\nimport { DepartmentsModule } from './departments/departments.module';\nimport { SkillsModule } from './skills/skills.module';\nimport { FinancialAccountModule } from './financial-accounts/financial-accounts.module';\nimport { PermissionSetsModule } from './permission-sets/permission-sets.module';\nimport { ResourcePoolsModule } from './resource-pools/resource-pools.module';\nimport { TimesheetPeriodsModule } from './timesheet-periods/timesheet-periods.module';\nimport { SchedulesModule } from './schedules/schedules.module';\nimport { ValidationRulesModule } from './validation-rules/validation-rules.module';\nimport { TimesheetTemplatesModule } from './timesheet-templates/timesheet-templates.module';\nimport { CustomFieldsModule } from './custom-fields/custom-fields.module';\nimport { CurrenciesModule } from './currencies/currencies.module';\nimport { InvoiceTemplatesModule } from './invoice-templates/invoice-templates.module';\nimport { CostNormalizationRuleModule } from './cost-normalization-rules/cost-normalization-rules.module';\nimport { ImportsModule } from './import/import.module';\nimport { ScheduleExceptionsModule } from './schedule-exceptions/schedule-exceptions.module';\nimport { LocationsModule } from 'src/app/settings-app/locations/locations.module';\nimport { LifecyclesModule } from './lifecycle/lifecycles.module';\nimport { LevelsModule } from './levels/levels.module';\nimport { GradesModule } from './grades/grades.module';\nimport { WorkflowsModule } from 'src/app/settings-app/workflows/workflows.module';\nimport { GroupsModule } from './groups/groups.module';\nimport { LoginLogModule } from 'src/app/settings-app/login-log/login-log.module';\nimport { HistoryLogModule } from 'src/app/settings-app/history-log/history-log.module';\nimport { LegalEntitiesModule } from 'src/app/settings-app/legal-entity/legal-entity.module';\nimport { CompetencesModule } from './competences/competences.module';\nimport { RateMatrixModule } from 'src/app/settings-app/rate-matrix/rate-matrix.module';\nimport { BoardsModule } from 'src/app/settings-app/boards/boards.module';\nimport { MetamodelModule } from 'src/app/settings-app/metamodel/metamodel.module';\nimport { IssueTypesModule } from 'src/app/settings-app/issue-types/issue-types.module';\nimport { IssueResolutionsModule } from 'src/app/settings-app/issue-resolutions/issue-resolutions.module';\nimport { DirectoriesModule } from 'src/app/settings-app/directories/directories.module';\nimport { BillCodesModule } from 'src/app/settings-app/bill-codes/bill-codes.module';\n\n@NgModule({\n declarations: [SettingsAppComponent, DefaultFilterDetailsComponent],\n imports: [\n CommonModule,\n SharedModule,\n AccountModule,\n SettingsModule,\n UsersModule,\n SkillsModule,\n DepartmentsModule,\n ActivitiesModule,\n TimeOffTypesModule,\n FinancialAccountModule,\n RolesModule,\n ResourcePoolsModule,\n TimesheetPeriodsModule,\n PermissionSetsModule,\n SchedulesModule,\n ScheduleExceptionsModule,\n ValidationRulesModule,\n TimesheetTemplatesModule,\n BillCodesModule,\n CustomFieldsModule,\n CurrenciesModule,\n InvoiceTemplatesModule,\n CostNormalizationRuleModule,\n ImportsModule,\n LevelsModule,\n LocationsModule,\n GroupsModule,\n GradesModule,\n LifecyclesModule,\n HistoryLogModule,\n WorkflowsModule,\n LoginLogModule,\n LegalEntitiesModule,\n CompetencesModule,\n BoardsModule,\n RateMatrixModule,\n MetamodelModule,\n IssueTypesModule,\n IssueResolutionsModule,\n DirectoriesModule,\n UIRouterModule.forChild({\n states: SETTINGS_STATES,\n }),\n ],\n})\nexport class SettingsAppModule {}\n","import { SettingsAppComponent } from './settings-app.component';\nimport { environment } from 'src/environments/environment';\n\nconst appStates: any[] = [\n {\n name: 'settings',\n url: '/settings',\n component: SettingsAppComponent,\n redirectTo: environment.onprem ? 'settings.users' : 'settings.account',\n },\n {\n name: 'settings.**',\n loadChildren: () =>\n import('../shared-features/mermaid-schema/mermaid-schema.module').then(\n (mod) => {\n /** Trigger change detection for rendering components */\n const body = document.querySelector('body');\n setTimeout(() => {\n body.click();\n }, 0);\n return mod.MermaidSchemaModule;\n },\n ),\n },\n {\n name: 'settings.users.**',\n loadChildren: () =>\n import('./users/users.module').then((mod) => mod.UsersModule),\n },\n];\n\nexport const SETTINGS_STATES = appStates;\n","import { Component, Input } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'tmt-booking-mode-change-dialog',\n templateUrl: './booking-mode-change-dialog.component.html',\n standalone: false,\n})\nexport class BookingModeChangeDialogComponent {\n @Input() public currentBookingMode: string;\n @Input() public newBookingMode: string;\n\n public isSaving = false;\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n /** Sends request to change booking mode. */\n public ok = (): void => {\n this.isSaving = true;\n\n this.data\n .collection('TenantSettings')\n .action('ChangeBookingMode')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.settings.tenantSettings.booking.modeChanged',\n );\n this.isSaving = false;\n location.reload();\n this.activeModal.close();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.settings.tenantSettings.booking.bookingModeChanging' | translate }}\n

    \n \n
    \n
    \n
    \n
    \n
    \n \n
    {{ currentBookingMode }}
    \n
    \n
    \n
    \n
    \n \n
    {{ newBookingMode }}
    \n
    \n
    \n
    \n
    \n

    \n {{ 'settings.settings.tenantSettings.booking.changeModeWarning' | translate }}\n

    \n
    \n
    \n
    \n \n \n {{ 'shared.actions.change' | translate }}\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-capital-charges-toolbar',\n templateUrl: './capital-charges-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CapitalChargesToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n @if (!(gridService.readonly$ | async)) {\n \n \n {{ 'shared2.actions.addLine' | translate }}\n \n }\n
    \n","import { Component, DestroyRef, inject, OnInit } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { bcp47Normalize } from 'bcp-47-normalize';\nimport { forkJoin } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { SettingsCardService } from 'src/app/settings-app/settings/settings-card.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n CapitalChargeRates,\n TenantSetting,\n TenantSettingPayload,\n} from 'src/app/shared/models/entities/settings/multitenant/tenant-settings.model';\nimport { ForecastPeriod } from 'src/app/shared/models/enums/forecast-period.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport {\n AllPlanningScales,\n PlanningScale,\n} from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BookingModeChangeDialogComponent } from 'src/app/settings-app/settings/settings-applications/booking-mode-change-dialog/booking-mode-change-dialog.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridDateControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { DateTime } from 'luxon';\nimport { CapitalChargesToolbarComponent } from 'src/app/settings-app/settings/settings-applications/capital-charges-toolbar/capital-charges-toolbar.component';\n\n@Component({\n selector: 'tmt-settings-applications',\n templateUrl: './settings-applications.component.html',\n styleUrls: ['./settings-applications.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class SettingsApplicationsComponent implements OnInit {\n public readonly = false;\n public isSaving = false;\n\n public state: CardState;\n\n tenantSettings: TenantSetting;\n cultures: NamedEntity[];\n languages: NamedEntity[];\n forecastPeriods: NamedEntity[] = Object.keys(ForecastPeriod).map(\n (k) =>\n ({\n id: k,\n name: this.translate.instant(`enums.forecastPeriod.${k}`),\n }) as NamedEntity,\n );\n bookingModes: NamedEntity[] = Object.keys(BookingMode).map(\n (bm) =>\n ({\n id: bm,\n name: this.translate.instant(`enums.bookingMode.${bm}`),\n }) as NamedEntity,\n );\n bookingScales: NamedEntity[] = Object.keys(PlanningScale)\n .filter(\n (_, index) => index <= AllPlanningScales.indexOf(PlanningScale.Month),\n )\n .map(\n (bs) =>\n ({\n id: bs,\n name: this.translate.instant(`enums.planningScale.${bs}`),\n }) as NamedEntity,\n );\n\n public form = this.fb.group({\n id: null,\n timeZone: [null, Validators.required],\n language: [null, Validators.required],\n culture: [null, Validators.required],\n currency: [null, Validators.required],\n useVat: [false],\n forecastPeriod: [null, Validators.required],\n bookingMode: [null],\n isBookingScaleFixed: [false],\n bookingScale: [null],\n capitalChargeRates: this.fb.group({\n initialValue: this.fb.group({\n effectiveDate: null,\n value: [null, Validators.required],\n id: null,\n }),\n values: this.fb.array([]),\n }),\n capitalCharge: this.fb.group({\n isAccrueCostOnWorkingCapital: false,\n isAccrueCostOnOutstandingExpenses: false,\n }),\n showExtendedPnl: [false],\n });\n\n public gridOptions: GridOptions = {\n toolbar: CapitalChargesToolbarComponent,\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'addLine',\n handlerFn: () => {\n this.addCapitalChargeRateLine(this.capitalChargeRatesFormValues);\n this.form.markAsDirty();\n },\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.removeCapitalChargeRateLine(\n this.capitalChargeRatesFormValues,\n index,\n );\n this.form.markAsDirty();\n },\n },\n ],\n view: {\n name: 'capital-charges-rates',\n columns: [\n {\n name: 'effectiveDate',\n header: 'shared2.props.effectiveDate',\n hint: 'shared2.props.effectiveDate',\n type: GridColumnType.DateControl,\n property: 'effectiveDate',\n width: '150px',\n allowNull: false,\n } as GridDateControlColumn,\n {\n name: 'value',\n header: 'components.settingsApplicationsComponent.props.value',\n hint: 'components.settingsApplicationsComponent.props.value',\n type: GridColumnType.NumberControl,\n controlType: 'percent',\n contentType: GridColumnType.Percent,\n propagationMode: PropagationMode.onExitFromEditing,\n min: 0,\n max: 1000,\n allowNull: false,\n width: '180px',\n } as GridStringControlColumn,\n ],\n },\n };\n\n public get capitalChargeFormGroup(): UntypedFormGroup {\n return this.form.controls.capitalCharge as UntypedFormGroup;\n }\n\n public get capitalChargeRatesFormGroup(): UntypedFormGroup {\n return this.form.controls.capitalChargeRates as UntypedFormGroup;\n }\n public get capitalChargeRatesFormValues(): UntypedFormArray {\n return this.capitalChargeRatesFormGroup.controls.values as UntypedFormArray;\n }\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private service: SettingsCardService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n private translate: TranslateService,\n private modalService: NgbModal,\n private gridService: GridService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: true,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.form.controls.isBookingScaleFixed.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (value) {\n this.form.controls.bookingScale.addValidators(Validators.required);\n this.form.controls.bookingScale.updateValueAndValidity();\n } else {\n this.form.controls.bookingScale.removeValidators(Validators.required);\n this.form.controls.bookingScale.updateValueAndValidity();\n }\n });\n\n this.service.reloadTab$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Changes booking mode. */\n public changeBookingMode(): void {\n const modalRef = this.modalService.open(BookingModeChangeDialogComponent);\n const instance =\n modalRef.componentInstance as BookingModeChangeDialogComponent;\n instance.currentBookingMode = this.form.value.bookingMode.name;\n instance.newBookingMode = this.bookingModes.find(\n (x) => x.id !== this.form.value.bookingMode.id,\n ).name;\n modalRef.result.then(\n () => {\n this.load();\n },\n () => null,\n );\n }\n\n public onSave(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.save();\n }\n\n private save(): void {\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const tenantSetting = this.form.getRawValue() as TenantSetting;\n\n const setting: TenantSettingPayload = {\n id: tenantSetting.id,\n languageCode: this.tenantSettings.languageCode,\n cultureCode: this.tenantSettings.cultureCode,\n forecastPeriod: this.form.value.forecastPeriod.id,\n timeZoneId: this.tenantSettings.timeZone.id,\n currencyId: this.tenantSettings.currency.id,\n useVat: tenantSetting.useVat,\n clientsSettings: this.tenantSettings.clientsSettings,\n bookingScale:\n this.form.value.isBookingScaleFixed && this.form.value.bookingScale?.id\n ? this.form.value.bookingScale.id\n : null,\n isAccrueCostOnOutstandingExpenses:\n this.capitalChargeFormGroup.controls.isAccrueCostOnOutstandingExpenses\n .value,\n isAccrueCostOnWorkingCapital:\n this.capitalChargeFormGroup.controls.isAccrueCostOnWorkingCapital.value,\n showExtendedPnl: tenantSetting.showExtendedPnl,\n };\n\n const initialValue = this.capitalChargeRatesFormGroup.value.initialValue;\n\n const capitalChargeRateValues = this.capitalChargeRatesFormValues.value;\n\n capitalChargeRateValues.forEach(\n (rate) => (rate.tenantSettingId = tenantSetting.id),\n );\n\n capitalChargeRateValues.push({\n effectiveDate: null,\n id: initialValue.id ?? Guid.generate(),\n value: initialValue.value,\n tenantSettingId: tenantSetting.id,\n });\n\n forkJoin([\n this.data\n .collection('TenantSettings')\n .action('UpdateCapitalChargeRateValues')\n .execute({ capitalChargeRateValues }),\n this.data\n .collection('TenantSettings')\n .action('UpdateSingle')\n .execute({ setting }),\n ]).subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.settings.messages.settingSaved',\n );\n location.reload();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n private load(): void {\n this.capitalChargeRatesFormValues.clear();\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n forkJoin({\n cultures: this.data.model.function('GetCultures').get(),\n languages: this.data.model.function('GetLanguages').get(),\n settings: this.data\n .collection('TenantSettings')\n .function('GetSingle')\n .get(null, {\n select: '*',\n expand: {\n timeZone: { select: ['id', 'name'] },\n currency: { select: ['id', 'name'] },\n capitalChargeRateValues: {\n select: ['id', 'effectiveDate', 'value'],\n orderBy: 'effectiveDate desc',\n },\n },\n }),\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (data) => {\n this.languages = data.languages;\n this.cultures = data.cultures;\n\n this.tenantSettings = data.settings;\n this.form.patchValue(data.settings);\n\n this.form.controls['language'].setValue(\n data.languages.find((l) => l.id === data.settings.languageCode),\n );\n\n this.form.controls['culture'].setValue(\n data.cultures.find(\n (l) => l.id === bcp47Normalize(data.settings.cultureCode),\n ),\n );\n\n this.form.controls['forecastPeriod'].setValue(\n this.forecastPeriods.find(\n (r) => r.id === data.settings.forecastPeriod,\n ),\n );\n\n this.form.controls['bookingMode'].setValue(\n this.bookingModes.find((r) => r.id === data.settings.bookingMode),\n );\n\n if (data.settings.bookingScale) {\n this.form.controls['isBookingScaleFixed'].setValue(true);\n this.form.controls['bookingScale'].setValue(\n this.bookingScales.find(\n (r) => r.id === data.settings.bookingScale,\n ),\n );\n }\n this.form.controls['currency'].disable();\n\n let initialValue = data.settings.capitalChargeRateValues.find(\n (rate: CapitalChargeRates) => !rate.effectiveDate,\n );\n\n if (initialValue) {\n const index =\n data.settings.capitalChargeRateValues.indexOf(initialValue);\n data.settings.capitalChargeRateValues.splice(index, 1);\n } else {\n initialValue = {\n effectiveDate: null,\n id: Guid.generate(),\n value: null,\n };\n }\n\n const initValueGroup = this.capitalChargeRatesFormGroup.get(\n 'initialValue',\n ) as FormGroup;\n initValueGroup?.patchValue(initialValue, { emitEvent: false });\n\n data.settings.capitalChargeRateValues.forEach(\n (rate: CapitalChargeRates) => {\n const group = this.getCapitalChargeRateLineFormGroup(rate);\n this.capitalChargeRatesFormValues.insert(0, group);\n },\n );\n\n this.capitalChargeFormGroup.controls.isAccrueCostOnWorkingCapital.setValue(\n data.settings.isAccrueCostOnWorkingCapital,\n { emitEvent: false },\n );\n\n this.capitalChargeFormGroup.controls.isAccrueCostOnOutstandingExpenses.setValue(\n data.settings.isAccrueCostOnOutstandingExpenses,\n { emitEvent: false },\n );\n\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state = CardState.Error;\n },\n });\n }\n\n /** Reloads data. */\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n /** Adds line of capital charge rate. */\n private addCapitalChargeRateLine(\n capitalChargeRatesFormValues: UntypedFormArray,\n ): void {\n const group = this.getCapitalChargeRateLineFormGroup();\n capitalChargeRatesFormValues.insert(0, group);\n\n group.controls.effectiveDate.setValue(DateTime.now().toISODate());\n\n this.gridService.selectGroup(group);\n }\n\n /**\n * Removes line of capital charge rate.\n *\n * @param index index of row.\n */\n private removeCapitalChargeRateLine(\n capitalChargeRatesFormValues: UntypedFormArray,\n index: number,\n ): void {\n capitalChargeRatesFormValues.removeAt(index);\n }\n\n /**\n * Gets capital charge line form group.\n *\n * @param row selected row.\n * @returns FormGroup of CapitalChargeRates.\n */\n private getCapitalChargeRateLineFormGroup(\n row?: CapitalChargeRates,\n ): FormGroup {\n const group = this.fb.group({\n effectiveDate: [row?.effectiveDate ?? null, Validators.required],\n value: [row?.value ?? 0, Validators.required],\n id: row?.id ?? Guid.generate(),\n });\n\n group.controls.effectiveDate.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n group.controls.effectiveDate.patchValue(\n DateTime.fromISO(val).set({ day: 1 }).toISODate(),\n { emitEvent: false },\n );\n });\n return group;\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n \n\n
    \n \n \n \n
    \n\n
    \n \n\n
    \n \n \n
    \n
    \n\n \n\n \n
    \n \n \n
    \n
    \n \n \n
    \n \n\n
    \n
    \n \n \n
    \n {{\n 'components.settingsApplicationsComponent.messages.capitalChargeInfo' | translate\n }}\n\n \n \n
    \n
    \n \n\n
    \n {{ 'settings.settings.tenantSettings.booking.mode' | translate }}\n \n
    \n {{ form.value.bookingMode?.name\n }}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n \n\n
    \n \n \n
    \n\n \n\n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { forkJoin, ReplaySubject, Subscription } from 'rxjs';\nimport { SettingsCardService } from '../settings-card.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BillingContact } from 'src/app/shared/models/entities/settings/multitenant/billing-contact.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { cloneDeep } from 'lodash';\n\n@Component({\n selector: 'wp-settings-billing',\n templateUrl: './settings-billing.component.html',\n standalone: false,\n})\nexport class SettingsBillingComponent implements OnInit, OnDestroy {\n public readonly = false;\n public state: CardState;\n public isSaving = false;\n public currency: string;\n public currencyLoading$ = new ReplaySubject();\n\n private reloadSubscription: Subscription;\n\n public billingContact: BillingContact;\n public countries: NamedEntity[];\n\n public form = this.fb.group({\n organization: this.fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n identificationNumber: [\n '',\n [Validators.required, Validators.maxLength(50)],\n ],\n bankIdentificationCode: [\n '',\n [Validators.required, Validators.maxLength(50)],\n ],\n bankAccount: ['', [Validators.required, Validators.maxLength(50)]],\n }),\n contact: this.fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n email: [\n '',\n [\n Validators.required,\n Validators.email,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n phone: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n }),\n postAddress: this.fb.group({\n address: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formTextMaxLength),\n ],\n ],\n index: ['', [Validators.required, Validators.maxLength(50)]],\n city: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n }),\n useEDM: false,\n country: null,\n });\n\n constructor(\n private service: SettingsCardService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n ) {}\n\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private load() {\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n forkJoin({\n billingContact: this.data\n .singleton('Tenant')\n .function('GetBillingContact')\n .get(),\n countries: this.data.model.function('GetCountries').get(),\n }).subscribe({\n next: (data) => {\n this.countries = data.countries.map((c) => ({\n id: c.alpha3Code,\n name: c.name,\n alpha3Code: c.alpha3Code,\n }));\n\n this.billingContact = data.billingContact;\n this.billingContact.country.id = this.billingContact.country.alpha3Code;\n this.form.patchValue(this.billingContact);\n this.loadCurrency();\n\n if (this.billingContact.hasActiveAccount) {\n this.form.controls.country.disable();\n }\n\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state = CardState.Error;\n },\n });\n }\n\n private loadCurrency() {\n const countryCode = this.form.controls.country.value?.id;\n if (!countryCode) {\n return;\n }\n\n this.currencyLoading$.next(true);\n\n this.data.model\n .function('GetCurrencyForCountry')\n .get({ countryCode: `'${countryCode}'` })\n .subscribe((currency) => {\n this.currency = currency;\n this.currencyLoading$.next(false);\n });\n }\n\n public save() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const billingContact = cloneDeep(this.form.getRawValue()) as BillingContact;\n billingContact.country.alpha3Code = billingContact.country.id;\n delete billingContact.country.id;\n\n this.data\n .singleton('Tenant')\n .action('WP.UpdateBillingContact')\n .execute({ billingContact })\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.settings.messages.settingSaved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: true,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.reloadSubscription = this.service.reloadTab$.subscribe(() =>\n this.reload(),\n );\n\n this.form.controls.country.valueChanges.subscribe(() => {\n this.loadCurrency();\n\n if (this.form.controls.country.value?.id !== 'RUS') {\n this.form.get('organization.identificationNumber').disable();\n this.form.get('organization.bankIdentificationCode').disable();\n this.form.get('organization.bankAccount').disable();\n } else {\n this.form.get('organization.identificationNumber').enable();\n this.form.get('organization.bankIdentificationCode').enable();\n this.form.get('organization.bankAccount').enable();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.reloadSubscription.unsubscribe();\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n \n \n \n
    \n\n \n \n \n \n
    \n\n \n \n \n
    \n\n \n \n \n \n
    \n
    \n\n \n \n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n\n \n \n \n
    \n {{\n 'settings.account.billingInfo.props.useEDM.help' | translate\n }}\n \n \n
    \n \n
    \n \n \n
    \n
    \n \n

    \n
    \n\n \n \n
    \n \n \n
    \n\n
    \n \n \n \n\n {{\n 'settings.account.billingInfo.props.contactEmail.help' | translate\n }}\n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class SettingsCardService {\n private reloadTabSubject = new Subject();\n public reloadTab$ = this.reloadTabSubject.asObservable();\n\n /**\n * Обновление данных вкладки.\n */\n public reloadTab() {\n this.reloadTabSubject.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\n@Component({\n selector: 'wp-settings-data-deletion',\n templateUrl: './settings-data-deletion.component.html',\n standalone: false,\n})\nexport class SettingsDataDeletionComponent {\n public isDeleting: boolean;\n\n public confirmation: string;\n\n constructor(\n private data: DataService,\n private message: MessageService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n ) {}\n\n public delete() {\n this.message.confirmLocal('settings.settings.dad.confirmation').then(\n () => {\n this.isDeleting = true;\n this.blockUI.start();\n\n this.data.model\n .action('ClearAllData')\n .execute()\n .subscribe({\n next: () => {\n this.isDeleting = false;\n this.blockUI.stop();\n this.notification.successLocal('settings.settings.dad.completed');\n },\n error: (error: Exception) => {\n this.isDeleting = false;\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n}\n","
    \n
    \n
    \n

    \n {{ 'settings.settings.dad.string1' | translate }}\n

    \n
      \n
    • {{ 'settings.settings.dad.string2' | translate }}
    • \n
    • {{ 'settings.settings.dad.string3' | translate }}
    • \n
    • {{ 'settings.settings.dad.string4' | translate }}
    • \n
    \n\n

    \n {{ 'settings.settings.dad.string5' | translate }} \n \n

    \n
    \n
    \n
    \n\n
    \n \n {{ 'settings.settings.dad.delete' | translate }}\n \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-domain-adding',\n templateUrl: './domain-adding.component.html',\n standalone: false,\n})\nexport class DomainAddingComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n this.data\n .collection('TenantDomains')\n .insert({\n domainName: this.form.value.name,\n })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.settings.domains.messages.domainAdded',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.settings.domains.props.newDomain.label' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-domain-confirmation',\n templateUrl: './domain-confirmation.component.html',\n standalone: false,\n})\nexport class DomainConfirmationComponent implements OnInit {\n @Input() domainName: string;\n\n isSaving = false;\n\n emails: NamedEntity[];\n\n form: UntypedFormGroup = this.fb.group({\n email: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public ok = () => {\n this.isSaving = true;\n\n this.data\n .collection('TenantDomains')\n .entity(`'${this.domainName}'`)\n .action('WP.SendActivationEmail')\n .execute({ email: this.form.value.email.name })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.settings.domains.messages.activationLinkSent',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n ngOnInit(): void {\n this.emails = [\n {\n id: 'admin',\n name: 'admin@' + this.domainName,\n },\n {\n id: 'support',\n name: 'support@' + this.domainName,\n },\n {\n id: 'postmaster',\n name: 'postmaster@' + this.domainName,\n },\n ];\n\n this.form.controls.email.setValue(this.emails[0]);\n }\n}\n","
    \n
    \n

    \n {{ 'settings.settings.domains.props.domainConfirmation' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'settings.settings.domains.actions.send' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, signal, DestroyRef } from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { SettingsCardService } from '../settings-card.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DomainAddingComponent } from './domain-adding/domain-adding.component';\nimport { DomainConfirmationComponent } from './domain-confirmation/domain-confirmation.component';\nimport { TenantDomain } from 'src/app/shared/models/entities/settings/multitenant/tenant-domain.model';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-settings-domains',\n templateUrl: './settings-domains.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class SettingsDomainsComponent implements OnInit {\n public state = signal(CardState.Loading);\n public readonly = signal(\n !this.app.checkPermission('ManageAccount', null, PermissionType.Execute),\n );\n public domains = this.fb.array([]);\n public gridOptions: GridOptions = {\n rowCommands: [\n {\n name: 'confirm',\n label: 'settings.settings.domains.actions.confirm',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly() && !formGroup.getRawValue().isConfirmed,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.confirmDomain(formGroup.getRawValue().domainName);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup: UntypedFormGroup) =>\n !this.readonly() && !formGroup.getRawValue().isPrimary,\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.deleteDomain(formGroup.getRawValue().domainName);\n },\n },\n ],\n commands: [],\n view: {\n name: 'domains',\n columns: [\n {\n name: 'domainName',\n header: 'shared.props.name',\n hint: 'shared.props.name',\n type: GridColumnType.String,\n width: '100%',\n },\n {\n name: 'isPrimary',\n header: 'settings.settings.domains.props.isPrimary',\n hint: 'settings.settings.domains.props.isPrimary',\n type: GridColumnType.Boolean,\n width: '130px',\n },\n {\n name: 'isConfirmed',\n header: 'settings.settings.domains.props.isConfirmed',\n hint: 'settings.settings.domains.props.isConfirmed',\n type: GridColumnType.Boolean,\n width: '130px',\n },\n ],\n },\n };\n\n constructor(\n private app: AppService,\n private service: SettingsCardService,\n private messages: MessageService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private modalService: NgbModal,\n ) {\n this.service.reloadTab$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load();\n });\n }\n\n public ngOnInit(): void {\n this.load();\n }\n\n /** Opens a modal to add a domain and reloads data upon successful addition */\n public addDomain(): void {\n const instance = this.modalService.open(DomainAddingComponent);\n instance.result.then(\n () => {\n this.load();\n },\n () => null,\n );\n }\n\n /** Opens a modal to confirm a domain using the provided domain name */\n public confirmDomain(domainName: string): void {\n const instance = this.modalService.open(DomainConfirmationComponent);\n (instance.componentInstance as DomainConfirmationComponent).domainName =\n domainName;\n }\n\n private load(): void {\n this.state.set(CardState.Loading);\n\n this.data\n .collection('TenantDomains')\n .query()\n .subscribe({\n next: (domains) => {\n this.domains.clear();\n domains.forEach((domain) => {\n this.domains.push(\n this.fb.group({\n id: domain.domainName,\n domainName: domain.domainName,\n isPrimary: domain.isPrimary,\n isConfirmed: domain.isConfirmed,\n }),\n );\n });\n\n this.state.set(CardState.Ready);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state.set(CardState.Error);\n },\n });\n }\n\n private deleteDomain(domainName: string): void {\n this.messages\n .confirmLocal('settings.settings.domains.messages.deleteConfirmation')\n .then(\n () => {\n this.data\n .collection('TenantDomains')\n .entity(`'${domainName}'`)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.settings.domains.messages.domainDeleted',\n );\n this.load();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n}\n","\n\n
    \n
    \n \n
    \n\n \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { SettingsCardService } from '../settings-card.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Subscription } from 'rxjs';\nimport { Tenant } from 'src/app/shared/models/entities/settings/multitenant/tenant.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\n\n@Component({\n selector: 'wp-settings-main',\n templateUrl: './settings-main.component.html',\n styleUrls: ['./settings-main.component.scss'],\n standalone: false,\n})\nexport class SettingsMainComponent implements OnInit, OnDestroy {\n public readonly = false;\n public isSaving = false;\n public state: CardState;\n private reloadSubscription: Subscription;\n\n public form = this.fb.group({\n displayName: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n ownerName: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n ownerEmail: [\n '',\n [\n Validators.required,\n Validators.email,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n ownerPhone: ['', [Validators.required]],\n isServiceUserAllowed: [false],\n });\n\n constructor(\n private service: SettingsCardService,\n private actionService: ActionPanelService,\n private app: AppService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n ) {}\n\n private load() {\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.data\n .singleton('Tenant')\n .get()\n .subscribe({\n next: (data) => {\n this.form.patchValue(data);\n this.state = CardState.Ready;\n\n this.readonly = !this.app.checkPermission(\n 'ManageAccount',\n null,\n PermissionType.Execute,\n );\n\n if (this.readonly) {\n this.form.disable();\n }\n\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state = CardState.Error;\n },\n });\n }\n\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n public save() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const tenant = this.form.value;\n\n const setting: any = {};\n\n this.data\n .singleton('Tenant')\n .update(this.form.value)\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.settings.messages.settingSaved',\n );\n },\n error: (error: any) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.reloadSubscription = this.service.reloadTab$.subscribe(() =>\n this.reload(),\n );\n }\n\n ngOnDestroy(): void {\n this.reloadSubscription.unsubscribe();\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n \n\n
    \n \n \n
    \n
    \n \n \n {{\n 'settings.settings.main.owner.properties.email.help' | translate\n }}\n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AuthProviderType } from 'src/app/shared/models/enums/auth-provider-type.enum';\nimport { DataService } from 'src/app/core/data.service';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-settings-auth-create-provider-modal',\n templateUrl: './settings-auth-create-provider-modal.component.html',\n styleUrls: ['./settings-auth-create-provider-modal.component.scss'],\n standalone: false,\n})\nexport class SettingsAuthCreateProviderModalComponent implements OnInit {\n public providerName: string;\n public providerType: AuthProviderType;\n public isSaving: boolean;\n\n public providerToEdit = null;\n\n public readonly formValidatorValues = {\n localSetting: {\n passwordUpdatePeriodDays: {\n min: 0,\n max: 999999,\n },\n maxInvalidLoginAttempts: {\n min: 1,\n max: 999999,\n },\n lockoutMinutes: {\n min: 1,\n max: 999999,\n },\n minPasswordLength: {\n min: 6,\n max: 15,\n },\n },\n };\n\n private readonly defaultLocalProviderConfiguration = {\n passwordUpdatePeriodDays: 30,\n maxInvalidLoginAttempts: 5,\n lockoutMinutes: 5,\n minPasswordLength: 6,\n requireCapitalLetters: false,\n requireDigits: false,\n requireSpecSymbols: true,\n useOtp: false,\n allowedGrantPassword: false,\n };\n\n public providerForm = this.formBuilder.group({\n id: Guid.generate(),\n type: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n openIdConfiguration: this.formBuilder.group({\n authority: ['', [Validators.required]],\n clientId: ['', [Validators.required]],\n clientSecret: ['', [Validators.required]],\n }),\n localSetting: this.formBuilder.group({\n passwordUpdatePeriodDays: [\n this.defaultLocalProviderConfiguration.passwordUpdatePeriodDays,\n [\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.max,\n ),\n ],\n ],\n maxInvalidLoginAttempts: [\n this.defaultLocalProviderConfiguration.maxInvalidLoginAttempts,\n [\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.max,\n ),\n ],\n ],\n lockoutMinutes: [\n this.defaultLocalProviderConfiguration.lockoutMinutes,\n [\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.lockoutMinutes.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.lockoutMinutes.max,\n ),\n ],\n ],\n minPasswordLength: [\n this.defaultLocalProviderConfiguration.minPasswordLength,\n [\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.minPasswordLength.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.minPasswordLength.max,\n ),\n ],\n ],\n requireDigits: this.defaultLocalProviderConfiguration.requireDigits,\n requireSpecSymbols:\n this.defaultLocalProviderConfiguration.requireSpecSymbols,\n requireCapitalLetters:\n this.defaultLocalProviderConfiguration.requireCapitalLetters,\n useOtp: this.defaultLocalProviderConfiguration.useOtp,\n allowedGrantPassword:\n this.defaultLocalProviderConfiguration.allowedGrantPassword,\n }),\n });\n\n public readonly: boolean;\n\n protected readonly AuthProviderType = AuthProviderType;\n\n constructor(\n private activeModal: NgbActiveModal,\n private formBuilder: FormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private app: AppService,\n ) {}\n\n public cancel() {\n this.activeModal.dismiss();\n }\n\n public ok() {\n if (this.readonly) {\n this.activeModal.dismiss();\n return;\n }\n this.providerForm.markAllAsTouched();\n if (!this.providerForm.valid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n const authProvider = {\n id: this.providerForm.value.id,\n type: this.providerForm.value.type,\n name: this.providerForm.value.name,\n openIdConfiguration:\n this.providerType === AuthProviderType.OpenId\n ? JSON.stringify({\n authority: this.providerForm.value.openIdConfiguration.authority,\n clientId: this.providerForm.value.openIdConfiguration.clientId,\n clientSecret:\n this.providerForm.value.openIdConfiguration.clientSecret,\n })\n : null,\n localSetting:\n this.providerType === AuthProviderType.Local\n ? this.providerForm.getRawValue().localSetting\n : null,\n };\n this.isSaving = true;\n\n const operation = this.providerToEdit\n ? this.data\n .collection('AuthProviders')\n .entity(this.providerToEdit.id)\n .update(authProvider)\n : this.data.collection('AuthProviders').insert(authProvider);\n\n operation.subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n\n ngOnInit(): void {\n this.readonly = !this.app.checkPermission(\n 'AuthProvider',\n 'All',\n PermissionType.Modify,\n );\n\n if (this.readonly) {\n this.providerForm.disable();\n }\n\n if (this.providerToEdit) {\n this.providerForm.setValue(this.providerToEdit);\n this.providerName = this.providerToEdit.name;\n this.providerType = this.providerToEdit.type;\n }\n\n this.providerForm.controls.type.valueChanges.subscribe((providerType) => {\n const openIdControls =\n this.providerForm.controls.openIdConfiguration.controls;\n const localControls = this.providerForm.controls.localSetting.controls;\n\n if (providerType === AuthProviderType.OpenId) {\n localControls.lockoutMinutes.removeValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.lockoutMinutes.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.lockoutMinutes.max,\n ),\n ]);\n localControls.maxInvalidLoginAttempts.removeValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.max,\n ),\n ]);\n localControls.minPasswordLength.removeValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.minPasswordLength.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.minPasswordLength.max,\n ),\n ]);\n localControls.passwordUpdatePeriodDays.removeValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.max,\n ),\n ]);\n\n Object.values(openIdControls).forEach((control) => {\n control.setValidators(Validators.required);\n });\n } else if (providerType === AuthProviderType.Local) {\n Object.values(openIdControls).forEach((control) => {\n control.removeValidators(Validators.required);\n });\n localControls.lockoutMinutes.setValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.lockoutMinutes.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.lockoutMinutes.max,\n ),\n ]);\n localControls.maxInvalidLoginAttempts.setValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.maxInvalidLoginAttempts.max,\n ),\n ]);\n localControls.minPasswordLength.setValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.minPasswordLength.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.minPasswordLength.max,\n ),\n ]);\n localControls.passwordUpdatePeriodDays.setValidators([\n Validators.required,\n Validators.min(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.min,\n ),\n Validators.max(\n this.formValidatorValues.localSetting.passwordUpdatePeriodDays.max,\n ),\n ]);\n }\n\n this.providerForm.updateValueAndValidity();\n this.providerForm.markAsUntouched();\n this.providerForm.markAsPristine();\n });\n\n this.providerForm.controls.type.setValue(this.providerType);\n }\n}\n","
    \n
    \n

    \n {{\n providerName ? providerName : ('settings.settings.authProviders.modal.title' | translate)\n }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n @if (providerForm?.value?.type === AuthProviderType.OpenId) {\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n } @else if (providerForm?.value?.type === AuthProviderType.Local) {\n \n
    \n
    \n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n\n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n }\n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n WritableSignal,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-setting-auth-providers-toolbar',\n templateUrl: './setting-auth-providers-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SettingAuthProvidersToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n @if (!(gridService.readonly$ | async)) {\n
    \n \n
    \n \n {{ 'components.settingsAuthCreateProviderModelComponent.props.local' | translate }}\n \n \n {{ 'components.settingsAuthCreateProviderModelComponent.props.openId' | translate }}\n \n
    \n
    \n }\n\n \n {{ 'shared.actions.edit' | translate }}\n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n signal,\n} from '@angular/core';\nimport {\n FormArray,\n FormBuilder,\n FormGroup,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { AuthProviderType } from 'src/app/shared/models/enums/auth-provider-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SettingsAuthCreateProviderModalComponent } from 'src/app/settings-app/settings/settings-security/settings-auth-create-provider-modal/settings-auth-create-provider-modal.component';\nimport { DataService } from 'src/app/core/data.service';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { SettingsCardService } from 'src/app/settings-app/settings/settings-card.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { SettingAuthProvidersToolbarComponent } from 'src/app/settings-app/settings/settings-security/settings-auth-providers/setting-auth-providers-toolbar/setting-auth-providers-toolbar.component';\n\n@Component({\n selector: 'wp-settings-auth-providers',\n templateUrl: './settings-auth-providers.component.html',\n styleUrls: ['./settings-auth-providers.component.scss'],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SettingsAuthProvidersComponent implements OnInit {\n public readonly = signal(false);\n public isReadingAllowed = signal(true);\n public isSelectedProviderEditable = signal(false);\n\n public providersArray = this.formBuilder.array([]);\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n sorting: true,\n toolbar: SettingAuthProvidersToolbarComponent,\n commands: [\n {\n name: 'createLocal',\n handlerFn: () => {\n this.create(AuthProviderType.Local);\n },\n },\n {\n name: 'createOpenId',\n handlerFn: () => {\n this.create(AuthProviderType.OpenId);\n },\n },\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: () => this.isSelectedProviderEditable(),\n handlerFn: (formGroup: FormGroup) => {\n this.edit(formGroup);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n allowedFn: (formGroup) => {\n const formGroupType = formGroup.getRawValue().type;\n return formGroupType !== AuthProviderType.AzureAd;\n },\n handlerFn: (formGroup: FormGroup) => {\n this.edit(formGroup);\n },\n },\n\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: (formGroup) => {\n const formGroupType = formGroup.getRawValue().type;\n return !this.readonly() && formGroupType !== AuthProviderType.AzureAd;\n },\n handlerFn: (formGroup: FormGroup) => {\n this.delete(formGroup);\n },\n },\n ],\n view: {\n name: 'providers',\n columns: [\n {\n name: 'name',\n type: GridColumnType.String,\n width: '50%',\n header: 'settings.settings.authProviders.columns.name',\n hint: 'settings.settings.authProviders.columns.name',\n },\n {\n name: 'type',\n header: 'settings.settings.authProviders.columns.type',\n hint: 'settings.settings.authProviders.columns.type',\n type: GridColumnType.String,\n width: '50%',\n },\n ],\n },\n };\n\n private isLoadingSubject = new BehaviorSubject(false);\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n private sortingOrder: Order = { column: 'name', reverse: true };\n private destroySubject = new Subject();\n\n constructor(\n private formBuilder: FormBuilder,\n private ngbModal: NgbModal,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n private app: AppService,\n private service: SettingsCardService,\n public gridService: GridService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.readonly.set(\n !this.app.checkPermission('AuthProvider', 'All', PermissionType.Modify),\n );\n\n this.gridService.setOrder({ column: 'name', reverse: true });\n this.gridService.order$\n .pipe(takeUntil(this.destroySubject))\n .subscribe((order: Order) => {\n this.sortingOrder = order;\n this.reload();\n });\n this.service.reloadTab$\n .pipe(takeUntil(this.destroySubject))\n .subscribe(() => {\n this.reload();\n });\n\n this.gridService.selectedGroup$\n .pipe(takeUntil(this.destroySubject))\n .subscribe((group: UntypedFormGroup) => {\n if (!group) {\n this.isSelectedProviderEditable.set(false);\n return;\n }\n const providerType = group.getRawValue().type;\n if (providerType === AuthProviderType.AzureAd) {\n this.isSelectedProviderEditable.set(false);\n return;\n }\n this.isSelectedProviderEditable.set(true);\n });\n this.load();\n }\n\n /** Opens a modal to create a new authentication provider. */\n public create(providerType: AuthProviderType): void {\n const ref = this.ngbModal.open(SettingsAuthCreateProviderModalComponent, {\n size: 'md',\n });\n\n const instance =\n ref.componentInstance as SettingsAuthCreateProviderModalComponent;\n instance.providerType = providerType;\n\n ref.closed.subscribe(() => {\n this.reload();\n });\n }\n\n /**\n * Edits an authentication provider based on the provided form group.\n *\n * @param formGroup The form group containing the provider's details.\n */\n public edit(\n formGroup: FormGroup = this.gridService.selectedGroup$.getValue(),\n ): void {\n if (!formGroup) {\n return;\n }\n\n const ref = this.ngbModal.open(SettingsAuthCreateProviderModalComponent, {\n size: 'md',\n });\n const instance =\n ref.componentInstance as SettingsAuthCreateProviderModalComponent;\n instance.providerToEdit = formGroup.getRawValue();\n\n ref.closed.subscribe(() => {\n this.reload();\n });\n }\n\n /**\n * Deletes an authentication provider based on the provided form group.\n *\n * @param formGroup The form group containing the provider's details.\n */\n private delete(formGroup: FormGroup): void {\n this.message\n .confirmLocal('settings.settings.authProviders.messages.deletionConfirm')\n .then(\n () => {\n this.data\n .collection('AuthProviders')\n .entity(formGroup.value.id)\n .delete()\n .subscribe({\n next: () => {\n this.reload();\n this.notification.successLocal('shared.messages.deleted');\n },\n error: (error: Exception) =>\n this.notification.error(error.message),\n });\n },\n () => null,\n );\n }\n\n /** Reloads the component's data. */\n private reload(): void {\n this.providersArray.clear();\n this.gridService.selectGroup(null);\n this.load();\n this.cdr.detectChanges();\n }\n\n /** Loads the component's data. */\n private load(): void {\n this.isReadingAllowed.set(\n this.app.checkPermission('AuthProvider', 'All', PermissionType.Read),\n );\n this.fillForm();\n }\n\n /** Fills the form with data from the AuthProviders collection. */\n private fillForm(): void {\n const providers = this.providersArray as FormArray;\n let query = null;\n if (this.sortingOrder.column) {\n query = {\n orderBy: `${this.sortingOrder.column} ${\n this.sortingOrder.reverse ? 'desc' : 'asc'\n }`,\n };\n }\n this.isLoadingSubject.next(true);\n this.data\n .collection('AuthProviders')\n .query(query)\n .subscribe((authProviders) => {\n authProviders.forEach((authProvider) => {\n const openIdConfig = JSON.parse(\n authProvider.openIdConfigurationJsonData,\n );\n const providerGroup = this.formBuilder.group({\n id: authProvider.id,\n name: authProvider.name,\n type: authProvider.type,\n openIdConfiguration: this.formBuilder.group({\n clientSecret: openIdConfig?.clientSecret,\n authority: openIdConfig?.authority,\n clientId: openIdConfig?.clientId,\n }),\n localSetting: this.formBuilder.group({\n passwordUpdatePeriodDays:\n authProvider?.localSetting?.passwordUpdatePeriodDays,\n maxInvalidLoginAttempts:\n authProvider?.localSetting?.maxInvalidLoginAttempts,\n lockoutMinutes: authProvider?.localSetting?.lockoutMinutes,\n minPasswordLength: authProvider?.localSetting?.minPasswordLength,\n requireDigits: authProvider?.localSetting?.requireDigits,\n requireCapitalLetters:\n authProvider?.localSetting?.requireCapitalLetters,\n requireSpecSymbols:\n authProvider?.localSetting?.requireSpecSymbols,\n useOtp: authProvider?.localSetting?.useOtp,\n allowedGrantPassword:\n authProvider?.localSetting?.allowedGrantPassword,\n }),\n });\n providers.push(providerGroup);\n });\n this.isLoadingSubject.next(false);\n });\n }\n}\n","@if (isReadingAllowed()) {\n
    \n \n @if (!(isLoading$ | async)) {\n \n }\n \n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { SettingsCardService } from '../settings-card.service';\nimport { forkJoin, Subscription } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport {\n TenantSetting,\n TenantSettingPayload,\n} from 'src/app/shared/models/entities/settings/multitenant/tenant-settings.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { bcp47Normalize } from 'bcp-47-normalize';\nimport { ForecastPeriod } from 'src/app/shared/models/enums/forecast-period.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport {\n AllPlanningScales,\n PlanningScale,\n} from 'src/app/shared/models/enums/planning-scale.enum';\n\n@Component({\n selector: 'wp-settings-system',\n templateUrl: './settings-system.component.html',\n styleUrls: ['./settings-system.component.scss'],\n standalone: false,\n})\nexport class SettingsSystemComponent implements OnInit, OnDestroy {\n public readonly = false;\n public isSaving = false;\n\n public state: CardState;\n\n cultures: NamedEntity[];\n languages: NamedEntity[];\n forecastPeriods: NamedEntity[] = Object.keys(ForecastPeriod).map(\n (k) =>\n ({\n id: k,\n name: this.translate.instant(`enums.forecastPeriod.${k}`),\n }) as NamedEntity,\n );\n bookingModes: NamedEntity[] = Object.keys(BookingMode).map(\n (bm) =>\n ({\n id: bm,\n name: this.translate.instant(`enums.bookingMode.${bm}`),\n }) as NamedEntity,\n );\n bookingScales: NamedEntity[] = Object.keys(PlanningScale)\n .filter(\n (_, index) => index <= AllPlanningScales.indexOf(PlanningScale.Month),\n )\n .map(\n (bs) =>\n ({\n id: bs,\n name: this.translate.instant(`enums.planningScale.${bs}`),\n }) as NamedEntity,\n );\n public form = this.fb.group({\n id: null,\n timeZone: [null, Validators.required],\n language: [null, Validators.required],\n culture: [null, Validators.required],\n currency: [null, Validators.required],\n useVat: [false],\n forecastPeriod: [null, Validators.required],\n clientsSettings: null,\n bookingMode: [null],\n isBookingScaleFixed: [false],\n bookingScale: [null],\n });\n private reloadSubscription: Subscription;\n tenantSettings: TenantSetting;\n\n constructor(\n private service: SettingsCardService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private message: MessageService,\n private translate: TranslateService,\n ) {}\n\n public onSave() {\n this.form.markAllAsTouched();\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.save();\n }\n\n private save() {\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const tenantSetting = this.form.getRawValue() as TenantSetting;\n\n const setting: TenantSettingPayload = {\n id: tenantSetting.id,\n clientsSettings: this.form.value.clientsSettings,\n languageCode: this.form.value.language.id,\n cultureCode: this.form.value.culture.id,\n forecastPeriod: this.form.value.forecastPeriod.id,\n timeZoneId: tenantSetting.timeZone.id,\n currencyId: tenantSetting.currency.id,\n useVat: tenantSetting.useVat,\n bookingScale:\n this.form.value.isBookingScaleFixed && this.form.value.bookingScale?.id\n ? this.form.value.bookingScale.id\n : null,\n showExtendedPnl: this.tenantSettings.showExtendedPnl,\n };\n\n this.data\n .collection('TenantSettings')\n .action('UpdateSingle')\n .execute({ setting })\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.settings.messages.settingSaved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n private load() {\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n forkJoin({\n cultures: this.data.model.function('GetCultures').get(),\n languages: this.data.model.function('GetLanguages').get(),\n settings: this.data\n .collection('TenantSettings')\n .function('GetSingle')\n .get(null, {\n select: '*',\n expand: {\n timeZone: { select: ['id', 'name'] },\n currency: { select: ['id', 'name'] },\n },\n }),\n }).subscribe({\n next: (data) => {\n this.languages = data.languages;\n this.cultures = data.cultures;\n\n this.tenantSettings = data.settings;\n this.form.patchValue(data.settings);\n\n this.form.controls['language'].setValue(\n data.languages.find((l) => l.id === data.settings.languageCode),\n );\n\n this.form.controls['culture'].setValue(\n data.cultures.find(\n (l) => l.id === bcp47Normalize(data.settings.cultureCode),\n ),\n );\n\n this.form.controls['forecastPeriod'].setValue(\n this.forecastPeriods.find(\n (r) => r.id === data.settings.forecastPeriod,\n ),\n );\n\n this.form.controls['bookingMode'].setValue(\n this.bookingModes.find((r) => r.id === data.settings.bookingMode),\n );\n\n if (data.settings.bookingScale) {\n this.form.controls['isBookingScaleFixed'].setValue(true);\n this.form.controls['bookingScale'].setValue(\n this.bookingScales.find((r) => r.id === data.settings.bookingScale),\n );\n }\n\n this.form.controls['currency'].disable();\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state = CardState.Error;\n },\n });\n }\n\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: true,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.reloadSubscription = this.service.reloadTab$.subscribe(() =>\n this.reload(),\n );\n }\n\n ngOnDestroy(): void {\n this.reloadSubscription.unsubscribe();\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { SettingsCardService } from './settings-card.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StateService } from '@uirouter/core';\nimport { environment } from 'src/environments/environment';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\n\n@Component({\n selector: 'wp-settings',\n templateUrl: './settings.component.html',\n providers: [SettingsCardService],\n standalone: false,\n})\nexport class SettingsComponent implements OnInit {\n isReadMode = !this.app.checkPermission(\n 'ManageAccount',\n null,\n PermissionType.Execute,\n );\n allowBillingManage = this.app.checkPermission(\n 'ManageBilling',\n null,\n PermissionType.Execute,\n );\n\n public formName = this.translate.instant('settings.settings.header');\n\n public tabs: TabLink[] = [];\n\n constructor(\n public state: StateService,\n private translate: TranslateService,\n public service: SettingsCardService,\n private app: AppService,\n ) {}\n\n ngOnInit() {\n if (!environment.onprem) {\n this.tabs.push({\n header: 'settings.settings.tabs.main',\n state: 'settings.settings.main',\n });\n }\n\n if (this.allowBillingManage && !environment.onprem) {\n this.tabs.push({\n header: 'settings.settings.tabs.billing',\n state: 'settings.settings.billing',\n });\n }\n\n if (!this.isReadMode) {\n this.tabs.push({\n header: 'settings.settings.tabs.system',\n state: 'settings.settings.system',\n });\n this.tabs.push({\n header: 'settings.settings.tabs.applications',\n state: 'settings.settings.applications',\n });\n this.tabs.push({\n header: 'settings.settings.tabs.security',\n state: 'settings.settings.security',\n });\n\n if (!environment.onprem) {\n this.tabs.push({\n header: 'settings.settings.tabs.domains',\n state: 'settings.settings.domains',\n });\n }\n\n this.tabs.push({\n header: 'settings.settings.tabs.dad',\n state: 'settings.settings.dad',\n });\n }\n }\n}\n","\n\n
      \n
    • \n {{ tab.header | translate }}\n
    • \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { SettingsComponent } from './settings.component';\nimport { SettingsMainComponent } from './settings-main/settings-main.component';\nimport { SettingsBillingComponent } from './settings-billing/settings-billing.component';\nimport { SettingsSystemComponent } from './settings-system/settings-system.component';\nimport { SettingsDomainsComponent } from './settings-domains/settings-domains.component';\nimport { SettingsDataDeletionComponent } from './settings-data-deletion/settings-data-deletion.component';\nimport { DomainAddingComponent } from './settings-domains/domain-adding/domain-adding.component';\nimport { DomainConfirmationComponent } from './settings-domains/domain-confirmation/domain-confirmation.component';\nimport { environment } from 'src/environments/environment';\nimport { SettingsAuthProvidersComponent } from 'src/app/settings-app/settings/settings-security/settings-auth-providers/settings-auth-providers.component';\nimport { SettingsAuthCreateProviderModalComponent } from './settings-security/settings-auth-create-provider-modal/settings-auth-create-provider-modal.component';\nimport { SettingsApplicationsComponent } from './settings-applications/settings-applications.component';\nimport { BookingModeChangeDialogComponent } from 'src/app/settings-app/settings/settings-applications/booking-mode-change-dialog/booking-mode-change-dialog.component';\nimport { CapitalChargesToolbarComponent } from 'src/app/settings-app/settings/settings-applications/capital-charges-toolbar/capital-charges-toolbar.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { SettingAuthProvidersToolbarComponent } from 'src/app/settings-app/settings/settings-security/settings-auth-providers/setting-auth-providers-toolbar/setting-auth-providers-toolbar.component';\n\n@NgModule({\n declarations: [\n SettingsComponent,\n SettingsMainComponent,\n SettingsBillingComponent,\n SettingsSystemComponent,\n SettingsDomainsComponent,\n SettingsDataDeletionComponent,\n DomainAddingComponent,\n DomainConfirmationComponent,\n SettingsAuthProvidersComponent,\n SettingAuthProvidersToolbarComponent,\n SettingsAuthCreateProviderModalComponent,\n BookingModeChangeDialogComponent,\n SettingsApplicationsComponent,\n CapitalChargesToolbarComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.settings',\n params: {\n navigation: 'settings.settings',\n },\n url: '/settings',\n component: SettingsComponent,\n redirectTo: environment.onprem\n ? 'settings.settings.system'\n : 'settings.settings.main',\n },\n\n {\n name: 'settings.settings.main',\n url: '/main',\n component: SettingsMainComponent,\n },\n {\n name: 'settings.settings.billing',\n url: '/billing',\n component: SettingsBillingComponent,\n },\n {\n name: 'settings.settings.system',\n url: '/system',\n component: SettingsSystemComponent,\n },\n {\n name: 'settings.settings.applications',\n url: '/applications',\n component: SettingsApplicationsComponent,\n },\n {\n name: 'settings.settings.security',\n url: '/security',\n component: SettingsAuthProvidersComponent,\n },\n {\n name: 'settings.settings.domains',\n url: '/domains',\n component: SettingsDomainsComponent,\n },\n {\n name: 'settings.settings.dad',\n url: '/data-deletion',\n component: SettingsDataDeletionComponent,\n },\n ],\n }),\n GridModule,\n ],\n})\nexport class SettingsModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wp-default-filter-details',\n templateUrl: './default-filter-details.component.html',\n standalone: false,\n})\nexport class DefaultFilterDetailsComponent {}\n","
    \n \n \n
    \n","import { Injectable } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class DefaultFilterService extends FilterService {\n public override placeholder = 'shared.filter.defaultPlaceholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n result.push({ 'tolower(name)': { contains: text } });\n }\n\n if (this.values.view && this.values.view.code === 'active') {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues = (): any => ({\n text: '',\n view: this.views[0],\n });\n\n public getDatePeriodParams(): void {\n return;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridSelectControlColumn,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Language } from 'src/app/shared/models/enums/language.enum';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/**\n * Represents Naming Localization modal window content.\n * */\n@Component({\n selector: 'wp-naming-localization-modal',\n templateUrl: './naming-localization-modal.component.html',\n styleUrls: ['./naming-localization-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [GridService],\n standalone: false,\n})\nexport class NamingLocalizationModalComponent implements OnInit, OnDestroy {\n @Input() public readonly = false;\n /** Localization string labels from model. */\n @Input() labelStrings: UntypedFormControl;\n\n /** Localization string rows on grid. */\n public localStrings: UntypedFormArray;\n\n public btnDisabled = false;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => this.addRow(),\n allowedFn: () =>\n !this.readonly &&\n this.localStrings.value?.length < this.languages.length,\n },\n {\n name: 'delete',\n handlerFn: () => this.deleteRow(),\n allowedFn: (id) => id && !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) =>\n this.deleteRow(index),\n },\n ],\n view: {\n name: 'naming-localization-strings',\n columns: [\n {\n name: 'language',\n header: 'settings.namingLocalization.columns.language.header',\n hint: 'settings.namingLocalization.columns.language.hint',\n type: GridColumnType.SelectControl,\n placeholder: 'settings.namingLocalization.columns.language.header',\n values: () => this.languages,\n },\n {\n name: 'label',\n header: 'settings.namingLocalization.columns.label.header',\n hint: 'settings.namingLocalization.columns.label.hint',\n type: GridColumnType.StringControl,\n placeholder: 'settings.namingLocalization.columns.label.header',\n },\n ],\n },\n };\n\n private _labelStrings: UntypedFormControl;\n\n private languages: NamedEntity[] = [];\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n private ref: ChangeDetectorRef,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n private notification: NotificationService,\n ) {}\n\n ngOnInit(): void {\n this.initForm();\n this.onLocalStringsChange();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Modal window close event handler.\n * */\n public ok() {\n this.localStrings.markAllAsTouched();\n const warningMessage = this.validateLocalStrings();\n if (warningMessage) {\n this.notification.warningLocal(warningMessage);\n return;\n }\n\n this.activeModal.close(this._labelStrings.value);\n }\n\n /**\n * Modal window cancel event handler.\n * */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Gets Localized Language name.\n *\n * @param lang Language key.\n * @returns Localized Language name.\n * */\n public getLanguageName(lang: string): string {\n return this.translate.instant(`enums.language.${lang}`);\n }\n\n /**\n * Initializes Localization string rows for grid.\n * */\n private initForm() {\n this.localStrings = this.fb.array([]);\n this._labelStrings = this.fb.control(null);\n this.languages = Object.keys(Language).map((lang) => ({\n name: this.getLanguageName(lang),\n id: lang,\n }));\n this._labelStrings.setValue(this.labelStrings.value);\n if (this._labelStrings.value !== null) {\n for (const key in this._labelStrings.value) {\n if (\n Object.prototype.hasOwnProperty.call(this._labelStrings.value, key)\n ) {\n const formGroup = this.getLocalizationFormGroup();\n let language = null;\n if (Language[key]) {\n language = {\n name: this.getLanguageName(key),\n id: key,\n };\n }\n formGroup.patchValue({\n language,\n label: this._labelStrings.value[key],\n });\n this.localStrings.push(formGroup);\n }\n }\n }\n\n console.log(\n 'Initialized localStrings from labelStrings',\n this.localStrings.value,\n this._labelStrings.value,\n );\n }\n\n /**\n * Gets Localization string form group.\n *\n * @return Localization string form group.\n * */\n private getLocalizationFormGroup() {\n return this.fb.group({\n id: Guid.generate(),\n language: ['', Validators.required],\n label: ['', Validators.required],\n });\n }\n\n /**\n * Adds Localization string row.\n * Updates grid selection with newly added row.\n * */\n private addRow() {\n const group = this.fb.group({\n id: [Guid.generate()],\n language: [null, Validators.required],\n label: ['', Validators.required],\n });\n\n this.localStrings.push(group);\n this.gridService.selectGroup(group);\n }\n\n /**\n * Removes Localization string row by index.\n * Updates grid selection.\n *\n * @param index Localization string row index.\n * */\n private deleteRow(index?: number) {\n index =\n index ??\n this.localStrings.value.findIndex(\n (s) => s.id === this.gridService.selectedGroupValue.id,\n );\n\n this.localStrings.removeAt(index);\n }\n\n /**\n * Adds listener to Localization string rows changes.\n * */\n private onLocalStringsChange() {\n this.localStrings.valueChanges\n .pipe(\n tap(() => (this.btnDisabled = true)),\n takeUntil(this.destroyed$),\n )\n .subscribe({\n next: (localStrings) => {\n let newValue = null;\n localStrings.map((localString) => {\n if (Language[localString.language?.id]) {\n newValue = {\n ...newValue,\n [localString.language?.id]: localString.label,\n };\n }\n });\n this._labelStrings.setValue(newValue);\n this.btnDisabled = false;\n this.ref.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.btnDisabled = false;\n this.ref.detectChanges();\n },\n });\n }\n\n /**\n * Validates Localization string rows.\n *\n * @returns Warning localization message key if rows are invalid, null otherwise.\n * */\n private validateLocalStrings(): string {\n if (this.localStrings.invalid) {\n return 'shared.messages.requiredFieldsError';\n }\n\n const localizationLanguages = this.localStrings.value\n .filter((localString) => Language[localString.language?.id])\n .map((localString) => localString.language.id);\n if (new Set(localizationLanguages).size !== localizationLanguages.length) {\n return 'settings.namingLocalization.messages.requiredUniqLanguagesError';\n }\n\n return null;\n }\n}\n","
    \n
    \n

    \n {{ 'settings.namingLocalization.header' | translate }}\n

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'shared.actions.add' | translate }}\n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamingLocalizationModalComponent } from 'src/app/settings-app/shared/naming-localization/naming-localization-modal/naming-localization-modal.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/**\n * Represents Naming Localization content.\n * */\n@Component({\n selector: 'wp-naming-localization',\n templateUrl: './naming-localization.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class NamingLocalizationComponent implements OnInit {\n @Input() readonly = false;\n /** Localization string labels from model. */\n @Input() labelStrings: UntypedFormControl;\n /** TODO fix after switching to new localization */\n @Input() isNewMode = false;\n\n private _localizationBtnText = '';\n private _addLocalizationLabel = '';\n\n public get localizationBtnText() {\n return this._localizationBtnText;\n }\n\n constructor(\n private modal: NgbModal,\n private translate: TranslateService,\n ) {}\n\n ngOnInit() {\n /** TODO fix after switching to new localization */\n if (this.isNewMode) {\n if (Array.isArray(this.labelStrings.value)) {\n const newValue = this.labelStrings.value.length ? {} : null;\n this.labelStrings.value?.forEach(\n (item) => (newValue[item.language.toLowerCase()] = item.value),\n );\n this.labelStrings.setValue(newValue);\n }\n }\n this._addLocalizationLabel = this.translate.instant(\n 'settings.namingLocalization.addLocalization',\n );\n\n this.updateLocalizationBtnText();\n }\n\n /**\n * Opens Modal window to view/edit Naming Localization strings.\n * */\n public openSettings() {\n const ref = this.modal.open(NamingLocalizationModalComponent);\n const instance = ref.componentInstance as NamingLocalizationModalComponent;\n instance.readonly = this.readonly;\n instance.labelStrings = this.labelStrings;\n\n ref.result.then(\n (labelStrings) => {\n this.labelStrings.setValue(labelStrings);\n this.labelStrings.markAsDirty();\n this.updateLocalizationBtnText();\n },\n () => null,\n );\n }\n\n private updateLocalizationBtnText() {\n this._localizationBtnText = this.labelStrings.value\n ? JSON.stringify(this.labelStrings.value)\n .replace(/[\"{}]|(.+?)\"/gm, '$1')\n .replace(/,|:/g, '$& ')\n : this._addLocalizationLabel;\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { NamingLocalizationComponent } from './naming-localization.component';\nimport { NamingLocalizationModalComponent } from './naming-localization-modal/naming-localization-modal.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [NamingLocalizationComponent, NamingLocalizationModalComponent],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [NamingLocalizationComponent],\n})\nexport class NamingLocalizationModule {}\n","export const allPerformerTypes: string[] = [\n 'role',\n 'group',\n 'user',\n 'permissionSet',\n];\n","import {\n Component,\n forwardRef,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n ViewRef,\n DestroyRef,\n inject,\n AfterViewInit,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormBuilder,\n} from '@angular/forms';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PerformersService } from '../performers.service';\nimport { Performer } from 'src/app/shared/models/entities/state.model';\nimport { firstValueFrom, Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'tmt-performer-box',\n templateUrl: './performer-box.component.html',\n styleUrls: ['./performer-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PerformerBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class PerformerBoxComponent\n implements ControlValueAccessor, AfterViewInit\n{\n @Input() placeholder: string;\n @ViewChild('input') inputEl: ElementRef;\n\n public isOpened = false;\n public performer: Performer;\n public isLoading: boolean;\n public readonly: boolean;\n public empty: boolean;\n\n public form = this.fb.group({\n performerControl: null,\n type: 'user',\n });\n\n /**Доступные к выбору роли */\n public roles$: NamedEntity[] | Observable;\n\n private destroyRef = inject(DestroyRef);\n constructor(\n private translate: TranslateService,\n public performersService: PerformersService,\n private fb: UntypedFormBuilder,\n private ref: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit(): void {\n this.performersService.predefinedRoles\n ? this.getAvailableRoles().then((value) => (this.roles$ = value))\n : (this.roles$ = this.performersService.getAvailableRoles().pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap((roles) => {\n const availableRoles = roles.filter((role) => {\n let currentRoles = [];\n this.performersService.performers.map((performerLine) => {\n if (performerLine.performer.type === 'role') {\n currentRoles.push(performerLine.performer.id);\n }\n });\n currentRoles = currentRoles.concat(\n this.performersService.excludedRoles,\n );\n return (\n !currentRoles.some(\n (i) => i === role.id && i !== this.performer.id,\n ) && role\n );\n });\n\n return of(\n availableRoles.map((role: NamedEntity) => ({\n id: role.id,\n name: this.performersService.getRoleName(role.name),\n })),\n );\n }),\n ));\n\n this.form.controls.type.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.form.controls.performerControl.setValue(null);\n });\n\n this.form.controls.performerControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.ref.markForCheck();\n });\n }\n\n public propagateChange = (_: Performer): void => null;\n public propagateTouch = (): void => null;\n\n public writeValue(performer: Performer): void {\n this.performer = performer;\n\n this.form.patchValue(performer);\n if (performer.id && performer.name) {\n this.form.controls.performerControl.patchValue({\n id: performer.id,\n name: performer.name,\n });\n } else {\n this.form.controls.performerControl.patchValue(null);\n }\n\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n /**\n * Gets performer's display name.\n *\n * @returns display name.\n */\n public getPerformerDisplayName(): string {\n this.empty = !this.performer.name;\n\n return this.performer.name\n ? `${this.translate.instant('components.performerBoxComponent.props.' + this.performer.type)}: ${this.performer.name}`\n : this.translate.instant('shared.valueNotSelected');\n }\n\n /** Listens event onClick. */\n public onInputClick(): void {\n if (!this.isOpened) {\n this.openList();\n }\n }\n\n /** Opens List. */\n public openList(): void {\n if (!this.isOpened) {\n this.isOpened = true;\n return;\n }\n }\n\n /** Cancels changes. */\n public cancel(): void {\n this.isOpened = false;\n\n /* Репатч на случай, если был изменен тип и нажата отмена */\n this.form.patchValue(this.performer);\n if (this.performer.id && this.performer.name) {\n this.form.controls.performerControl.patchValue({\n id: this.performer.id,\n name: this.performer.name,\n });\n } else {\n this.form.controls.performerControl.patchValue(null);\n }\n }\n\n /** Saves changes. */\n public ok() {\n this.performer.id = this.form.value.performerControl.id ?? null;\n this.performer.name = this.form.value.performerControl.name ?? null;\n this.performer.type = this.form.value.type;\n\n this.cancel();\n this.propagateChange(this.performer);\n }\n\n /**\n * Gets filter.\n *\n * @param performerType performerType.\n *\n * @returns Filter.\n */\n public getFilter(performerType: string) {\n let idsString = '';\n this.performersService.performers.map((performerLine) => {\n if (\n performerLine.performer.type === performerType &&\n performerLine.performer.id !== this.performer.id\n ) {\n idsString =\n idsString === ''\n ? performerLine.performer.id\n : idsString + `,${performerLine.performer.id}`;\n }\n });\n return { filter: [`not (id in (${idsString}))`] };\n }\n\n /**\n * Gets performerTypeName.\n *\n * @param type type.\n *\n * @returns performerTypeName.\n */\n public getPerformerTypeName(type: string): string {\n return this.translate.instant(\n 'components.performerBoxComponent.props.' + type,\n );\n }\n\n /**\n * Gets available roles.\n *\n * @returns available roles array promise.\n */\n private async getAvailableRoles(): Promise {\n const roles = Array.isArray(this.performersService.predefinedRoles)\n ? this.performersService.predefinedRoles\n : await firstValueFrom(this.performersService.predefinedRoles);\n return roles.filter(\n (role) =>\n !this.performersService.performers\n .filter((value) => value.performer.type === 'role')\n .find((value) => value.performer.id === role.id) ||\n this.form.controls.performerControl.value?.id === role.id,\n );\n }\n}\n","\n \n {{ getPerformerDisplayName() }}\n \n \n\n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n
    \n
    \n\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ViewRef,\n ChangeDetectionStrategy,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-performer-cell',\n template: ``,\n styles: [\n `\n :host {\n display: block;\n overflow: visible !important;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PerformerCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-performer-readonly-cell',\n template: `\n {{ getPerformerDisplayName() }}\n `,\n styles: [\n `\n :host {\n display: block;\n overflow: visible !important;\n }\n div {\n padding: 6px 12px 6px 9px;\n border-left: 3px solid transparent;\n }\n .invalid {\n border-left: 3px solid var(--bs-danger) !important;\n }\n `,\n ],\n standalone: false,\n})\nexport class PerformerReadonlyCellComponent\n implements GridComponentCell, OnInit, OnDestroy\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n private destroyed$ = new Subject();\n invalid: boolean;\n\n constructor(\n public service: GridService,\n public ref: ChangeDetectorRef,\n private translate: TranslateService,\n ) {}\n\n ngOnInit(): void {\n this.invalid = this.formGroup.invalid;\n\n this.formGroup.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.invalid = this.formGroup.invalid;\n this.ref.detectChanges();\n });\n }\n\n /**\n * Gets performer's display name.\n *\n * @returns display name.\n */\n public getPerformerDisplayName(): string {\n const performerValue = this.formGroup.controls[this.column.name].value;\n return performerValue.name\n ? `${this.translate.instant('components.performerBoxComponent.props.' + performerValue.type)}: ${performerValue.name}`\n : this.translate.instant('shared.valueNotSelected');\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { PerformerCellComponent } from './performer-cell/performer-cell.component';\nimport { PerformerReadonlyCellComponent } from './performer-cell/performer-readonly-cell.component';\nimport { PerformerBoxComponent } from './performer-box/performer-box.component';\n\nimport { PerformersComponent } from './performers/performers.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n PerformersComponent,\n PerformerBoxComponent,\n PerformerCellComponent,\n PerformerReadonlyCellComponent,\n ],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [PerformersComponent],\n})\nexport class PerformersModule {}\n","import { Injectable } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { shareReplay, switchMap } from 'rxjs/operators';\nimport { Observable, of, Subject } from 'rxjs';\nimport { UntypedFormArray } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Injectable()\nexport class PerformersService {\n public lifecycleId: string;\n public performerArray: UntypedFormArray;\n public performerTypes: string[];\n public predefinedRoles: NamedEntity[] | Observable;\n public excludedRoles: string[] = [];\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n public get performers() {\n return this.performerArray.value;\n }\n\n constructor(\n private data: DataService,\n private translate: TranslateService,\n ) {}\n\n /* Получить доступные роли для данного ЖЦ */\n public getAvailableRoles() {\n return this.data\n .collection('Lifecycles')\n .entity(this.lifecycleId)\n .function('GetLifecycleRoles')\n .get()\n .pipe(\n switchMap((roles: string[]) =>\n of(\n roles.map((role) => {\n const namedEntity = { id: role, name: role };\n return namedEntity;\n }),\n ),\n ),\n shareReplay(),\n );\n }\n\n /** Получить имя роли. */\n public getRoleName(role: string): string {\n return this.translate.instant(`shared2.props.role${role}`);\n }\n\n /** Запустить проверку изменений */\n public detectChanges() {\n this.changesSubject.next();\n }\n}\n","import {\n AfterContentInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n AbstractControl,\n} from '@angular/forms';\nimport _ from 'lodash';\nimport { PerformerCellComponent } from '../performer-cell/performer-cell.component';\nimport { PerformerReadonlyCellComponent } from '../performer-cell/performer-readonly-cell.component';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Performer } from 'src/app/shared/models/entities/state.model';\nimport { PerformersService } from '../performers.service';\n\nimport { Observable, Subject } from 'rxjs';\nimport { allPerformerTypes } from '../model/allPerformerTypes.const';\nimport { takeUntil } from 'rxjs/operators';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/* Таблица исполнителей */\n@Component({\n selector: 'tmt-performers',\n templateUrl: './performers.component.html',\n styleUrls: ['./performers.component.scss'],\n providers: [GridService, PerformersService],\n standalone: false,\n})\nexport class PerformersComponent\n implements OnInit, AfterContentInit, OnDestroy\n{\n @Input() readonly: boolean;\n @Input() performerLines: UntypedFormArray;\n @Input() lifecycleId: string;\n @Input() performerTypes: string[] = allPerformerTypes;\n @Input() gridHeader = '';\n @Input() excludedRoles: string[] = [];\n @Input() predefinedRoles: NamedEntity[] | Observable;\n\n /** Параметры грида. */\n public gridOptions: GridOptions;\n\n private destroyed$ = new Subject();\n\n constructor(\n public gridService: GridService,\n private fb: UntypedFormBuilder,\n private service: PerformersService,\n ) {}\n\n ngOnInit(): void {\n this.service.predefinedRoles = this.predefinedRoles;\n\n this.performerLines.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.performerLines.parent) {\n this.performerLines.parent.markAllAsTouched();\n } else {\n this.performerLines.markAllAsTouched();\n }\n });\n\n this.gridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) =>\n this.deletePerformer(index),\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => null,\n },\n ],\n view: {\n name: 'performerLines',\n columns: [\n {\n name: 'performer',\n header: this.gridHeader,\n hint: this.gridHeader,\n component: PerformerCellComponent,\n readonlyComponent: PerformerReadonlyCellComponent,\n type: GridColumnType.Component,\n property: 'performer',\n width: '100%',\n },\n ],\n },\n };\n\n this.service.lifecycleId = this.lifecycleId;\n this.service.performerArray = this.performerLines;\n this.service.performerTypes = this.performerTypes;\n this.service.excludedRoles = this.excludedRoles;\n this.service.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.gridService.detectChanges());\n }\n\n ngAfterContentInit(): void {\n this.sortLines();\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n\n /** Добавить исполнителя. */\n public addPerformer(performer?: Performer) {\n this.performerLines.markAsDirty();\n const performerLine = this.fb.group({\n id: Guid.generate(),\n performer: [\n {\n id: '',\n name: null,\n type: this.performerTypes[0],\n } as Performer,\n this.validatePerformer(),\n ],\n });\n if (performer) {\n performerLine.controls.performer.patchValue(performer);\n }\n this.performerLines.push(performerLine);\n this.gridService.detectChanges();\n /** Выделяем строку только если добавляем ее пустой */\n if (!performer) {\n this.gridService.selectGroup(performerLine);\n }\n }\n\n /** Удалить исполнителя. */\n public deletePerformer(index?: number) {\n const performers = this.performerLines.value as Performer[];\n index =\n index ??\n performers.findIndex(\n (s) => s.id === this.gridService.selectedGroupValue.id,\n );\n\n this.performerLines.removeAt(index);\n this.performerLines.markAsDirty();\n }\n\n private validatePerformer() {\n return (control: AbstractControl) => {\n const value = control.value;\n return !value.name && !value.id ? { required: true } : null;\n };\n }\n\n /** Sorts lines form array. */\n private sortLines(): void {\n this.performerLines.setValue(\n _.orderBy(this.performerLines.value, [\n (item) => this.performerTypes.indexOf(item.performer.type),\n (item) => item.performer.name,\n ]),\n );\n this.gridService.detectChanges();\n }\n}\n","
    \n
    \n
    \n \n  {{ 'shared.actions.add' | translate }}\n \n\n \n \n \n
    \n
    \n \n
    \n","import { Component, OnInit, Input, DestroyRef, inject } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Skill } from 'src/app/shared/models/entities/settings/skill.model';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { BehaviorSubject } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'tmt-skill-card',\n templateUrl: './skill-card.component.html',\n standalone: false,\n})\nexport class SkillCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public readonly: boolean;\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving = false;\n\n public skillForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: [false],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save() {\n this.skillForm.markAllAsTouched();\n\n if (this.skillForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const skill = this.skillForm.value;\n\n const data: any = {\n name: skill.name,\n description: skill.description,\n isActive: skill.isActive,\n };\n\n this.data\n .collection('Skills')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.skillForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal('settings.skills.card.messages.saved');\n },\n error: (error: any) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n private load = (): void => {\n this.state$.next(CardState.Loading);\n this.skillForm.markAsPristine();\n this.skillForm.markAsUntouched();\n this.data\n .collection('Skills')\n .entity(this.entityId)\n .get(null)\n .subscribe({\n next: (skill: Skill) => {\n this.skillForm.patchValue(skill);\n\n this.readonly = !skill.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.readonly ? this.skillForm.disable() : this.skillForm.enable();\n this.state$.next(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: skill.id,\n title: skill.name,\n });\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n };\n\n private reload() {\n if (!this.skillForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n\n\n\n\n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n selector: 'wp-skill-creation',\n templateUrl: './skill-creation.component.html',\n standalone: false,\n})\nexport class SkillCreationComponent {\n isSaving = false;\n skillForm: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.skillForm.markAllAsTouched();\n\n if (this.skillForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = { name: this.skillForm.get('name').value };\n\n this.data\n .collection('Skills')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.skills.creation.messages.created',\n );\n this.state.go('settings.skill', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.skills.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SkillCreationComponent } from '../creation/skill-creation.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-skill-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class SkillListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.skills.list.create',\n isVisible: this.app.checkEntityPermission(\n 'Skill',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.skill', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row && this.app.checkEntityPermission('Skill', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(SkillCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { SkillCardComponent } from './card/skill-card.component';\nimport { SkillListComponent } from './list/skill-list.component';\nimport { SkillCreationComponent } from './creation/skill-creation.component';\nimport { SkillList } from 'src/app/shared/lists/skill.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n SkillCardComponent,\n SkillListComponent,\n SkillCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.skills',\n url: '/skills',\n component: SkillListComponent,\n params: {\n navigation: 'settings.skills',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: SkillList },\n ],\n },\n\n {\n name: 'settings.skill',\n params: {\n navigation: 'settings.skills',\n },\n url: '/skills/{entityId:guid}',\n component: SkillCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class SkillsModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { AccrualPolicyTimeOffToolbarComponent } from './accrual-policy-time-off-toolbar/accrual-policy-time-off-toolbar.component';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AccrualPolicyType } from 'src/app/shared/models/enums/accrual-policy-type.enum';\nimport { AccrualPolicyPeriod } from 'src/app/shared/models/enums/accrual-policy-period.enum';\nimport { AccrualPolicyExcludedTimeOffType } from 'src/app/shared/models/entities/settings/time-off-limit-rule-excluded-time-off-type.model';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport {\n TimeOffTypeUnit,\n TimeOffTypeUnits,\n} from 'src/app/shared/models/enums/time-off-type-unit.enum';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridComponent } from 'src/app/shared-features/grid/grid.component';\n\n@Component({\n selector: 'wp-accrual-policy-modal',\n templateUrl: './accrual-policy-modal.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AccrualPolicyModalComponent implements OnInit {\n @Input() mode: 'create' | 'edit' = 'create';\n @Input() timeOffType: TimeOffType;\n @ViewChild('grid')\n public grid: GridComponent;\n\n public state: CardState;\n public name: string;\n public timeOffTypeUnitsEnum = TimeOffTypeUnit;\n\n public form = this.fb.group({\n id: null,\n accrualType: [null, Validators.required],\n accrualPeriod: [null],\n unitsForAccrual: [0],\n isOnlyForBillableProjects: [false],\n isActive: [false],\n excludedTimeOffTypes: this.fb.array([]),\n unit: [null],\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: AccrualPolicyTimeOffToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n (this.form.controls.excludedTimeOffTypes).removeAt(\n index,\n );\n this.form.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'add',\n handlerFn: (timeOffType: NamedEntity) => {\n const group = this.fb.group({\n timeOffType: {\n name: timeOffType.name,\n id: timeOffType.id,\n },\n timeOffTypeId: [timeOffType.id, Validators.required],\n id: [Guid.generate()],\n });\n (this.form.controls.excludedTimeOffTypes).push(\n group,\n );\n this.form.markAsDirty();\n },\n },\n ],\n view: {\n name: 'excludedTimeOffTypes',\n columns: [\n {\n name: 'timeOffType',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.Entity,\n width: '100%',\n },\n ],\n },\n };\n\n public accrualPeriods: NamedEntity[] = [];\n public accrualTypes: NamedEntity[] = [];\n public readonly: boolean;\n public accrualType: string;\n public timeOffTypeUnits: NamedEntity[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n\n this.form.controls.accrualType.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n if (!val) return;\n this.accrualType = val.id;\n this.name = this.translate.instant(`enums.accrualPolicyType.${val.id}`);\n if (this.accrualType === AccrualPolicyType.Fixed) {\n this.form.controls.unitsForAccrual.setValidators(Validators.required);\n this.form.controls.accrualPeriod.setValidators(Validators.required);\n this.form.controls.accrualPeriod.updateValueAndValidity();\n } else {\n this.form.controls.unitsForAccrual.setValidators(null);\n this.form.controls.accrualPeriod.setValidators(null);\n this.form.controls.accrualPeriod.updateValueAndValidity();\n }\n });\n\n const accrualType =\n this.timeOffType.unitId === TimeOffTypeUnit.hour.id\n ? AccrualPolicyType.Overhours\n : AccrualPolicyType.Fixed;\n this.form.controls.accrualType.setValue({\n id: accrualType,\n name: this.translate.instant(`enums.accrualPolicyType.${accrualType}`),\n });\n\n for (const key in AccrualPolicyType) {\n if (Object.prototype.hasOwnProperty.call(AccrualPolicyType, key)) {\n this.accrualTypes.push({\n id: key,\n name: this.translate.instant(\n `enums.accrualPolicyType.${AccrualPolicyType[key]}`,\n ),\n });\n }\n }\n\n for (const key in AccrualPolicyPeriod) {\n if (Object.prototype.hasOwnProperty.call(AccrualPolicyPeriod, key)) {\n this.accrualPeriods.push({\n id: key,\n name: this.translate.instant(\n `enums.accrualPolicyPeriod.${AccrualPolicyPeriod[key]}`,\n ),\n });\n }\n }\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n }\n\n /** Closes the active modal with the form data. */\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const data = this.form.getRawValue();\n\n data.accrualType = data.accrualType.id;\n data.accrualPeriod = data.accrualPeriod?.id ?? null;\n this.activeModal.close(data);\n }\n\n /** Closes the active modal with a 'cancel' reason. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n private load(): void {\n if (this.mode === 'edit') {\n this.form.patchValue(this.timeOffType.accrualPolicy);\n\n this.form.controls.accrualPeriod.setValue({\n id: this.timeOffType.accrualPolicy.accrualPeriod,\n name: this.translate.instant(\n `enums.accrualPolicyPeriod.${this.timeOffType.accrualPolicy.accrualPeriod}`,\n ),\n });\n\n this.timeOffType.accrualPolicy.excludedTimeOffTypes.forEach(\n (excludedTimeOffType: AccrualPolicyExcludedTimeOffType) => {\n const group = this.fb.group({\n id: excludedTimeOffType.id,\n ...excludedTimeOffType,\n });\n\n (this.form.controls.excludedTimeOffTypes).push(\n group,\n );\n },\n );\n\n this.form.controls.accrualType.setValue({\n id: this.timeOffType.accrualPolicy.accrualType,\n name: this.translate.instant(\n `enums.accrualPolicyType.${this.timeOffType.accrualPolicy.accrualType}`,\n ),\n });\n }\n\n const currentTimeOffTypeUnit = this.timeOffTypeUnits.find(\n (u) => u.id === this.timeOffType.unitId,\n );\n\n if (currentTimeOffTypeUnit) {\n this.form.controls.unit.setValue(currentTimeOffTypeUnit);\n }\n }\n}\n","
    \n
    \n

    \n {{ name }}\n

    \n \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n @if (accrualType === 'Overhours') {\n \n \n \n
    \n }\n\n
    \n

    \n {{ 'settings.accrualPolicies.card.props.excludedTimeOffTypes' | translate }}\n

    \n \n
    \n \n
    \n \n \n
    \n
    \n","import { Component, ChangeDetectorRef, signal, OnInit } from '@angular/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-accrual-policy-time-off-toolbar',\n templateUrl: './accrual-policy-time-off-toolbar.component.html',\n standalone: false,\n})\nexport class AccrualPolicyTimeOffToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public selectedTimeOffTypes: any[] = [];\n public timeOffTypes: NamedEntity[] = [];\n\n public isLoading = signal(false);\n\n constructor(\n public notification: NotificationService,\n private data: DataService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n this.gridService.formArray.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((timeOffTypes) => {\n this.selectedTimeOffTypes = timeOffTypes;\n this.cdr.detectChanges();\n });\n this.selectedTimeOffTypes = this.gridService.formArray.value;\n }\n\n /**\n * Opens the dropdown menu and fetches the time off types.\n *\n * @param $event - The event that triggered the change.\n */\n public openChange($event: boolean) {\n if (!$event) {\n return;\n }\n\n this.isLoading.set(true);\n this.timeOffTypes.length = 0;\n const params = {\n filter: { isActive: true },\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n\n this.data\n .collection('TimeOffTypes')\n .query(params)\n .subscribe({\n next: (timeOffTypes: NamedEntity[]) => {\n timeOffTypes.forEach((timeOffType: NamedEntity) => {\n if (\n this.selectedTimeOffTypes.every(\n (selectedTimeOffType: any) =>\n selectedTimeOffType.timeOffTypeId !== timeOffType.id,\n )\n ) {\n this.timeOffTypes.push(timeOffType);\n }\n });\n this.isLoading.set(false);\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notification.error(error.message);\n this.cdr.detectChanges();\n },\n });\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n
    \n \n \n {{ 'shared.noOptions' | translate }}\n
    \n @for (timeOffType of timeOffTypes; track timeOffType.id) {\n \n {{ timeOffType.name }}\n \n }\n
    \n \n \n}\n","import { Component, Input } from '@angular/core';\nimport { NamedEntity } from '../../../../../shared/models/entities/named-entity.model';\nimport { AccrualPolicyService } from '../accrual-policy.service';\nimport { TimeOffTypeCardService } from '../../time-off-type-card.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wp-accrual-policy-section',\n templateUrl: './accrual-policy-section.component.html',\n styleUrls: ['./accrual-policy-section.component.scss'],\n providers: [AccrualPolicyService],\n standalone: false,\n})\nexport class AccrualPolicySectionComponent {\n @Input() timeOffTypeUnit: NamedEntity;\n @Input() entityId: string;\n public accrualPolicyName: string;\n constructor(\n public service: AccrualPolicyService,\n public timeOffTypeService: TimeOffTypeCardService,\n private translate: TranslateService,\n ) {\n timeOffTypeService.timeOffType$.subscribe((value) => {\n this.accrualPolicyName = this.translate.instant(\n `enums.accrualPolicyType.${value.accrualPolicy?.accrualType}`,\n );\n });\n }\n}\n","
    \n \n\n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n \n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { AccrualPolicyModalComponent } from './accrual-policy-modal/accrual-policy-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffTypeCardService } from '../time-off-type-card.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\n@Injectable()\nexport class AccrualPolicyService {\n private timeOffType: TimeOffType;\n\n constructor(\n private modalService: NgbModal,\n private timeOffTypeService: TimeOffTypeCardService,\n private data: DataService,\n private messageService: MessageService,\n private translate: TranslateService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n ) {\n timeOffTypeService.timeOffType$.subscribe((value) => {\n this.timeOffType = value;\n });\n }\n\n public createNewPolicy = () => {\n const modalRef = this.modalService.open(AccrualPolicyModalComponent);\n const component = modalRef.componentInstance as AccrualPolicyModalComponent;\n component.mode = 'create';\n component.timeOffType = this.timeOffType;\n\n modalRef.result.then(\n (value) => {\n const data = {\n id: this.timeOffType.id,\n accrualType: value.accrualType,\n accrualPeriod: value.accrualPeriod,\n unitsForAccrual: value.unitsForAccrual,\n isOnlyForBillableProjects: value.isOnlyForBillableProjects,\n excludedTimeOffTypes: [],\n };\n\n data.excludedTimeOffTypes = (value.excludedTimeOffTypes as any[]).map(\n (e) => ({ id: e.id, timeOffTypeId: e.timeOffTypeId }),\n );\n\n this.blockUI.start();\n\n this.data\n .collection('AccrualPolicies')\n .insert(data)\n .subscribe({\n next: () => {\n this.timeOffType.accrualPolicy = value;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.accrualPolicies.creation.messages.created',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n\n public editPolicy = () => {\n const modalRef = this.modalService.open(AccrualPolicyModalComponent);\n const component = modalRef.componentInstance as AccrualPolicyModalComponent;\n component.mode = 'edit';\n component.timeOffType = this.timeOffType;\n\n modalRef.result.then(\n (value) => {\n const data = {\n id: this.timeOffType.id,\n accrualType: value.accrualType,\n accrualPeriod: value.accrualPeriod,\n unitsForAccrual: value.unitsForAccrual,\n isOnlyForBillableProjects: value.isOnlyForBillableProjects,\n excludedTimeOffTypes: [],\n };\n\n data.excludedTimeOffTypes = (value.excludedTimeOffTypes as any[]).map(\n (e) => ({ id: e.id, timeOffTypeId: e.timeOffTypeId }),\n );\n\n this.blockUI.start();\n\n this.data\n .collection('AccrualPolicies')\n .entity(this.timeOffType.id)\n .update(data)\n .subscribe({\n next: () => {\n this.timeOffType.accrualPolicy = value;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.accrualPolicies.card.messages.saved',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n\n public deletePolicy = () => {\n this.messageService\n .confirm(\n this.translate.instant('settings.timeOffTypes.deleteConfirmation'),\n )\n .then(\n () => {\n this.blockUI.start();\n this.data\n .collection('AccrualPolicies')\n .entity(this.timeOffType.id)\n .delete()\n .subscribe({\n next: () => {\n this.timeOffType.accrualPolicy = null;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.accrualPolicies.creation.messages.deleted',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n}\n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n TimeOffTypeUnit,\n TimeOffTypeUnits,\n} from 'src/app/shared/models/enums/time-off-type-unit.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TimeOffTypeCardService } from './time-off-type-card.service';\nimport { forkJoin, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'tmt-time-off-type-card',\n templateUrl: './time-off-type-card.component.html',\n providers: [TimeOffTypeCardService],\n standalone: false,\n})\nexport class TimeOffTypeCardComponent implements OnInit {\n @Input() entityId: string;\n\n public isLoading = false;\n public isSaving = false;\n\n public readonly: boolean;\n public timeOffTypeUnits: NamedEntity[] = [];\n public timeOffType: TimeOffType;\n public timeOffTypeUnitsEnum = TimeOffTypeUnit;\n\n timeOffTypeForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n paid: [true, Validators.required],\n code: [\n '',\n [Validators.required, Validators.maxLength(Constants.formCodeMaxLength)],\n ],\n unit: [null, Validators.required],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n isActive: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n private message: MessageService,\n private notification: NotificationService,\n private translate: TranslateService,\n private service: TimeOffTypeCardService,\n ) {\n service.timeOffType$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.timeOffType = value;\n });\n\n actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n // Загрузка данных.\n private load() {\n this.isLoading = true;\n this.timeOffTypeForm.markAsPristine();\n this.timeOffTypeForm.markAsUntouched();\n\n // Загрузка данных.\n const accrualPolicy = this.data.collection('AccrualPolicies').query({\n expand: {\n excludedTimeOffTypes: { expand: ['timeOffType'] },\n },\n }) as Observable;\n\n const usingPolicy = this.data\n .collection('UsingPolicies')\n .query({}) as Observable;\n\n const timeOffType = this.data\n .collection('TimeOffTypes')\n .entity(this.entityId)\n .get({ expand: 'unit' });\n\n forkJoin({ timeOffType, accrualPolicy, usingPolicy }).subscribe({\n next: (data) => {\n data.timeOffType.accrualPolicy = data.accrualPolicy.find(\n (x) => x.id === this.entityId,\n );\n data.timeOffType.usingPolicy = data.usingPolicy.find(\n (x) => x.id === this.entityId,\n );\n this.service.updateTimeOffType(data.timeOffType);\n\n this.readonly = !data.timeOffType.editAllowed;\n this.timeOffTypeForm.patchValue(data.timeOffType);\n\n this.actionService.action('save').isShown = !this.readonly;\n\n this.readonly\n ? this.timeOffTypeForm.disable()\n : this.timeOffTypeForm.enable();\n\n const currentTimeOffTypeUnit = this.timeOffTypeUnits.find(\n (u) => u.id === data.timeOffType.unitId,\n );\n\n if (currentTimeOffTypeUnit) {\n this.timeOffTypeForm.controls.unit.setValue(currentTimeOffTypeUnit);\n this.timeOffTypeForm.controls.unit.disable();\n }\n\n this.navigationService.addRouteSegment({\n id: this.entityId,\n title: data.timeOffType.name,\n });\n\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n public reload() {\n if (!this.timeOffTypeForm.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n // Сохранение данных.\n public save(): void {\n this.timeOffTypeForm.markAllAsTouched();\n\n if (this.timeOffTypeForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const timeOffType = this.timeOffTypeForm.getRawValue();\n\n const data: any = {\n code: timeOffType.code,\n paid: timeOffType.paid,\n description: timeOffType.description,\n isActive: timeOffType.isActive,\n name: timeOffType.name,\n unitId: timeOffType.unit.id,\n };\n\n this.data\n .collection('TimeOffTypes')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.timeOffType.unitId = data.unitId;\n this.service.updateTimeOffType(this.timeOffType);\n\n if (this.timeOffType.unitId) {\n this.timeOffTypeForm.controls.unit.disable();\n }\n\n this.timeOffTypeForm.markAsPristine();\n this.isSaving = false;\n\n this.actionService.action('save').stop();\n this.notification.successLocal('settings.timeOffTypes.saved');\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ]);\n\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n\n this.load();\n }\n}\n","\n\n\n\n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n
    \n \n \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { TimeOffType } from '../../../shared/models/entities/settings/time-off-type.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class TimeOffTypeCardService {\n private timeOffTypeSubject = new BehaviorSubject(null);\n public timeOffType$ = this.timeOffTypeSubject\n .asObservable()\n .pipe(filter((x) => !!x));\n\n public updateTimeOffType = (value: TimeOffType) => {\n this.timeOffTypeSubject.next(value);\n };\n}\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport { TimeOffTypeUnits } from 'src/app/shared/models/enums/time-off-type-unit.enum';\nimport { NotificationService } from 'src/app/core/notification.service';\n\n@Component({\n selector: 'wp-using-policy-modal',\n templateUrl: './using-policy-modal.component.html',\n standalone: false,\n})\nexport class UsingPolicyModalComponent implements OnInit, AfterViewInit {\n @Input() mode: 'create' | 'edit' = 'create';\n @Input() timeOffType: TimeOffType;\n\n public state: CardState;\n public isSaving = false;\n\n public form = this.fb.group({\n id: null,\n excludeFromCalendarDuration: [false],\n unit: [null],\n });\n\n public readonly: boolean;\n public timeOffTypeUnits: NamedEntity[] = [];\n\n constructor(\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n ngOnInit(): void {\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n }\n\n public ok() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const data = this.form.getRawValue();\n\n this.activeModal.close(data);\n }\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n private load() {\n if (this.mode === 'edit') {\n this.form.patchValue(this.timeOffType.usingPolicy);\n }\n\n const currentTimeOffTypeUnit = this.timeOffTypeUnits.find(\n (u) => u.id === this.timeOffType.unitId,\n );\n\n if (currentTimeOffTypeUnit) {\n this.form.controls.unit.setValue(currentTimeOffTypeUnit);\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.load();\n });\n }\n}\n","
    \n
    \n

    \n {{ 'settings.timeOffTypes.usingPolicy' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TimeOffTypeCardService } from '../../time-off-type-card.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UsingPolicyService } from 'src/app/settings-app/time-off-types/card/using-policy/using-policy.service';\n\n@Component({\n selector: 'wp-using-policy-section',\n templateUrl: './using-policy-section.component.html',\n styleUrls: ['./using-policy-section.component.scss'],\n providers: [UsingPolicyService],\n standalone: false,\n})\nexport class UsingPolicySectionComponent {\n @Input() timeOffTypeUnit: NamedEntity;\n @Input() entityId: string;\n public accrualPolicyName: string;\n constructor(\n public service: UsingPolicyService,\n public timeOffTypeService: TimeOffTypeCardService,\n private translate: TranslateService,\n ) {}\n}\n","
    \n \n\n \n \n {{ 'shared.actions.create' | translate }}\n \n\n \n \n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { UsingPolicyModalComponent } from './using-policy-modal/using-policy-modal.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffTypeCardService } from '../time-off-type-card.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n@Injectable()\nexport class UsingPolicyService {\n private timeOffType: TimeOffType;\n\n constructor(\n private modalService: NgbModal,\n private timeOffTypeService: TimeOffTypeCardService,\n private data: DataService,\n private messageService: MessageService,\n private translate: TranslateService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n ) {\n timeOffTypeService.timeOffType$.subscribe((value) => {\n this.timeOffType = value;\n });\n }\n\n public createNewPolicy = () => {\n const modalRef = this.modalService.open(UsingPolicyModalComponent);\n const component = modalRef.componentInstance as UsingPolicyModalComponent;\n component.mode = 'create';\n component.timeOffType = this.timeOffType;\n\n modalRef.result.then(\n (value) => {\n const data = {\n id: this.timeOffType.id,\n excludeFromCalendarDuration: value.excludeFromCalendarDuration,\n };\n\n this.blockUI.start();\n\n this.data\n .collection('UsingPolicies')\n .insert(data)\n .subscribe({\n next: () => {\n this.timeOffType.usingPolicy = value;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.usingPolicies.creation.messages.created',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n\n public editPolicy = () => {\n const modalRef = this.modalService.open(UsingPolicyModalComponent);\n const component = modalRef.componentInstance as UsingPolicyModalComponent;\n component.mode = 'edit';\n component.timeOffType = this.timeOffType;\n\n modalRef.result.then(\n (value) => {\n const data = {\n id: this.timeOffType.id,\n excludeFromCalendarDuration: value.excludeFromCalendarDuration,\n };\n\n this.blockUI.start();\n\n this.data\n .collection('UsingPolicies')\n .entity(this.timeOffType.id)\n .update(data)\n .subscribe({\n next: () => {\n this.timeOffType.usingPolicy = value;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.usingPolicies.card.messages.saved',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n\n public deletePolicy = () => {\n this.messageService\n .confirm(\n this.translate.instant('settings.timeOffTypes.deleteConfirmation'),\n )\n .then(\n () => {\n this.blockUI.start();\n this.data\n .collection('UsingPolicies')\n .entity(this.timeOffType.id)\n .delete()\n .subscribe({\n next: () => {\n this.timeOffType.usingPolicy = null;\n this.timeOffTypeService.updateTimeOffType(this.timeOffType);\n this.notification.successLocal(\n 'settings.usingPolicies.creation.messages.deleted',\n );\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n },\n });\n },\n () => null,\n );\n };\n}\n","import { Component, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { NamedEntity } from '../../../shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TimeOffTypeUnits } from '../../../shared/models/enums/time-off-type-unit.enum';\n\n@Component({\n selector: 'wp-time-off-type-creation',\n templateUrl: './time-off-type-creation.component.html',\n standalone: false,\n})\nexport class TimeOffTypeCreationComponent implements OnInit {\n public timeOffTypeUnits: NamedEntity[] = [];\n isSaving = false;\n creationForm: UntypedFormGroup;\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private translate: TranslateService,\n ) {\n this.creationForm = fb.group({\n name: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ],\n ],\n code: [\n '',\n [\n Validators.required,\n Validators.maxLength(Constants.formCodeMaxLength),\n ],\n ],\n unit: [null, Validators.required],\n });\n }\n\n ok = () => {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const timeOffType = this.creationForm.getRawValue();\n\n const data: any = {\n code: timeOffType.code,\n name: timeOffType.name,\n unitId: timeOffType.unit.id,\n };\n\n this.data\n .collection('TimeOffTypes')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal('settings.timeOffTypes.created');\n this.state.go('settings.timeOffType', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n ngOnInit(): void {\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n }\n}\n","
    \n
    \n

    \n {{ 'settings.timeOffTypes.creationHeader' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { TimeOffTypeCreationComponent } from '../creation/time-off-type-creation.component';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-time-off-type-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class TimeOffTypeListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private listService: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.timeOffTypes.create',\n isVisible: this.app.checkEntityPermission(\n 'TimeOffType',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.timeOffType', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission('TimeOffType', PermissionType.Modify);\n },\n );\n }\n\n private create = () => {\n this.modalService.open(TimeOffTypeCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { TimeOffTypeCardComponent } from './card/time-off-type-card.component';\nimport { TimeOffTypeListComponent } from './list/time-off-type-list.component';\nimport { TIME_OFF_TYPE_LIST } from 'src/app/shared/lists/time-off-type.list';\nimport { TimeOffTypeCreationComponent } from './creation/time-off-type-creation.component';\nimport { AccrualPolicySectionComponent } from './card/accrual-policy/accrual-policy-section/accrual-policy-section.component';\nimport { AccrualPolicyModalComponent } from './card/accrual-policy/accrual-policy-modal/accrual-policy-modal.component';\nimport { AccrualPolicyTimeOffToolbarComponent } from './card/accrual-policy/accrual-policy-modal/accrual-policy-time-off-toolbar/accrual-policy-time-off-toolbar.component';\nimport { UsingPolicySectionComponent } from 'src/app/settings-app/time-off-types/card/using-policy/using-policy-section/using-policy-section.component';\nimport { UsingPolicyModalComponent } from 'src/app/settings-app/time-off-types/card/using-policy/using-policy-modal/using-policy-modal.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n TimeOffTypeListComponent,\n TimeOffTypeCardComponent,\n TimeOffTypeCreationComponent,\n AccrualPolicySectionComponent,\n AccrualPolicyModalComponent,\n AccrualPolicyTimeOffToolbarComponent,\n UsingPolicySectionComponent,\n UsingPolicyModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.timeOffTypes',\n url: '/time-off-types',\n component: TimeOffTypeListComponent,\n params: {\n navigation: 'settings.timeOffTypes',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: TIME_OFF_TYPE_LIST },\n ],\n },\n\n {\n name: 'settings.timeOffType',\n params: {\n navigation: 'settings.timeOffTypes',\n },\n url: '/time-off-types/{entityId:guid}',\n component: TimeOffTypeCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class TimeOffTypesModule {}\n","import { Component, OnInit, Input, inject, DestroyRef } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Validators, UntypedFormBuilder } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TimesheetPeriod } from 'src/app/shared/models/entities/settings/timesheet-period.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DayOfWeek } from 'src/app/shared/models/enums/day-of-week.enum';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DateTime } from 'luxon';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-timesheet-period-card',\n templateUrl: './timesheet-period-card.component.html',\n standalone: false,\n})\nexport class TimesheetPeriodCardComponent implements OnInit {\n @Input() entityId: string;\n\n public readonly: boolean;\n public name: string;\n public state: CardState;\n\n public isSaving = false;\n\n public daysOfWeek: NamedEntity[] = [];\n\n public cardForm = this.fb.group({\n periodType: [null],\n periodScope: [null],\n department: [null, Validators.required],\n effectiveDate: [null, Validators.required],\n expiryDate: [null, Validators.required],\n monthInitialDay: [\n 1,\n [Validators.min(1), Validators.max(28), Validators.required],\n ],\n monthHalfDay: [\n 1,\n [Validators.min(1), Validators.max(28), Validators.required],\n ],\n isActive: [false],\n dayOfWeekValue: [null, Validators.required],\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private translate: TranslateService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.cardForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateName());\n\n FormHelper.controlDatePair(\n this.cardForm,\n 'effectiveDate',\n 'expiryDate',\n takeUntilDestroyed(this.destroyRef),\n );\n\n for (const key of Object.keys(DayOfWeek)) {\n this.daysOfWeek.push({\n id: key,\n name: this.translate.instant(`enums.dayOfWeek.${key}`),\n });\n }\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.cardForm.markAllAsTouched();\n\n if (this.cardForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const period = this.cardForm.value;\n\n const data: any = {\n effectiveDate: period.effectiveDate,\n isActive: period.isActive,\n expiryDate: period.expiryDate,\n monthInitialDay: period.monthInitialDay,\n dayOfWeek: this.cardForm.value.dayOfWeekValue?.id,\n monthHalfDay: period.monthHalfDay,\n departmentId: period.department?.id,\n };\n\n this.data\n .collection('TimeSheetPeriods')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.cardForm.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.timesheetPeriods.card.messages.saved',\n );\n },\n error: (error: any) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n private reload(): void {\n if (!this.cardForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n private load = (): void => {\n this.state = CardState.Loading;\n this.cardForm.markAsPristine();\n this.cardForm.markAsUntouched();\n this.data\n .collection('TimeSheetPeriods')\n .entity(this.entityId)\n .get({\n expand: [\n 'periodScope',\n 'periodType',\n { department: { select: ['id', 'name'] } },\n ],\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (period) => {\n this.navigationService.addRouteSegment({\n id: period.id,\n title: period.periodType.name,\n });\n\n this.cardForm.patchValue(period);\n this.readonly = !period.editAllowed;\n\n this.actionService.action('save').isShown = !this.readonly;\n this.actionService.action('setAsDefault').isShown =\n !period.isDefault && !this.readonly;\n\n this.readonly ? this.cardForm.disable() : this.cardForm.enable();\n this.cardForm.controls['periodScope'].disable();\n this.cardForm.controls['periodType'].disable();\n\n if (period.periodType.code !== 'Custom') {\n this.cardForm.controls['expiryDate'].disable();\n }\n if (\n period.periodType.code !== 'Monthly' &&\n period.periodType.code !== 'SemiMonthly'\n ) {\n this.cardForm.controls['monthInitialDay'].disable();\n }\n\n if (period.periodScope.code !== 'Department') {\n this.cardForm.controls['department'].disable();\n }\n\n if (period.periodType.code !== 'SemiMonthly') {\n this.cardForm.controls['monthHalfDay'].disable();\n }\n\n if (\n period.periodType.code !== 'WeeklyEndOfMonth' &&\n period.periodType.code !== 'Weekly'\n ) {\n this.cardForm.controls['dayOfWeekValue'].disable();\n }\n\n if (period.dayOfWeek) {\n this.cardForm.controls['dayOfWeekValue'].setValue(\n this.daysOfWeek.find((x) => x.id === period.dayOfWeek),\n );\n }\n this.state = CardState.Ready;\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n\n private updateName(): void {\n this.name = '';\n const period = this.cardForm.getRawValue();\n\n if (period.periodType) {\n this.name += period.periodType.name + ' ';\n }\n this.name +=\n this.translate.instant('settings.timesheetPeriods.card.nameTemplate') +\n ' ';\n\n this.name += period.effectiveDate\n ? DateTime.fromISO(period.effectiveDate).toLocaleString(\n DateTime.DATE_SHORT,\n )\n : ' ';\n this.name += ' (';\n if (period.periodScope) {\n this.name += period.periodScope.name;\n }\n this.name += ')';\n }\n}\n","\n\n\n\n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n \n\n \n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'wp-timesheet-period-creation',\n templateUrl: './timesheet-period-creation.component.html',\n standalone: false,\n})\nexport class TimesheetPeriodCreationComponent {\n isSaving = false;\n creationForm: UntypedFormGroup = this.fb.group({\n type: [null, Validators.required],\n scope: [null, Validators.required],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.creationForm.markAllAsTouched();\n\n if (this.creationForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n periodScopeId: this.creationForm.value.scope.id,\n periodTypeId: this.creationForm.value.type.id,\n };\n\n this.data\n .collection('TimeSheetPeriods')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.timesheetPeriods.creation.created',\n );\n this.state.go('settings.timesheetPeriod', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.timesheetPeriods.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { TimesheetPeriodCreationComponent } from '../creation/timesheet-period-creation.component';\nimport { TimesheetPeriodsFilterService } from './timesheet-periods-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-timesheet-period-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: TimesheetPeriodsFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class TimesheetPeriodListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.timesheetPeriods.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'TimeSheetPeriod',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.timesheetPeriod', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'TimeSheetPeriod',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n this.modalService.open(TimesheetPeriodCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class TimesheetPeriodsFilterService extends FilterService {\n public override placeholder = 'settings.timesheetPeriods.list.filter';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: {\n periodType: { 'tolower(name)': { contains: text } },\n periodScope: { 'tolower(name)': { contains: text } },\n },\n });\n }\n\n if (this.values.view && this.values.view.code === 'active') {\n result.push({ isActive: true });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n view: this.views[0],\n };\n }\n\n public getDatePeriodParams(): void {\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { TimesheetPeriodCardComponent } from './card/timesheet-period-card.component';\nimport { TimesheetPeriodListComponent } from './list/timesheet-period-list.component';\nimport { TimesheetPeriodCreationComponent } from './creation/timesheet-period-creation.component';\nimport { TimesheetPeriodList } from 'src/app/shared/lists/timesheet-period.list';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n TimesheetPeriodCardComponent,\n TimesheetPeriodListComponent,\n TimesheetPeriodCreationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.timesheetPeriods',\n url: '/timesheet-periods',\n component: TimesheetPeriodListComponent,\n params: {\n navigation: 'settings.timesheetPeriods',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: TimesheetPeriodList },\n ],\n },\n\n {\n name: 'settings.timesheetPeriod',\n params: {\n navigation: 'settings.timesheetPeriods',\n },\n url: '/timesheet-periods/{entityId:guid}',\n component: TimesheetPeriodCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class TimesheetPeriodsModule {}\n","import { Component, Input, ChangeDetectorRef } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormGroup,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-custom-fields-section',\n templateUrl: './custom-fields-section.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class CustomFieldsSectionComponent {\n @Input() formArray: UntypedFormArray;\n @Input() readonly: boolean;\n\n public customFields: NamedEntity[] = [];\n public loading = false;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'add',\n handlerFn: (customField: NamedEntity) =>\n this.addCustomField(customField),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'delete',\n handlerFn: (id) => null,\n allowedFn: (id) => id && !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.formArray.removeAt(index);\n this.formArray.parent.markAsDirty();\n },\n },\n ],\n view: {\n name: 'validationRules',\n columns: [\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n private fb: UntypedFormBuilder,\n private ref: ChangeDetectorRef,\n public service: GridService,\n public notification: NotificationService,\n private data: DataService,\n ) {}\n\n openChange($event: boolean) {\n if (!$event) {\n return;\n }\n\n this.loading = true;\n this.customFields = [];\n const params = {\n filter: [\n { isActive: true },\n {\n or: [\n { entityType: 'TimeSheetLine' },\n { entityType: 'TimeAllocation' },\n ],\n },\n ],\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n\n this.data\n .collection('CustomFields')\n .query(params)\n .subscribe({\n next: (customFields: NamedEntity[]) => {\n const currentFields = this.formArray.value as NamedEntity[];\n\n customFields.forEach((field: NamedEntity) => {\n if (\n currentFields.every(\n (currentRule: any) => currentRule.id !== field.id,\n )\n ) {\n this.customFields.push(field);\n }\n });\n\n this.loading = false;\n this.ref.detectChanges();\n },\n error: (error: any) => {\n this.loading = false;\n this.notification.error(error.message);\n this.ref.detectChanges();\n },\n });\n }\n\n public addCustomField(customField: NamedEntity): void {\n const group = this.fb.group({\n id: customField.id,\n name: customField.name,\n });\n this.formArray.push(group);\n group.markAsDirty();\n }\n}\n","
    \n
    \n \n
    \n \n \n
    \n \n \n {{ 'shared.noOptions' | translate }}\n
    \n \n {{ customField.name }}\n \n
    \n
    \n
    \n\n \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormGroup,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-project-states-section',\n templateUrl: './project-states-section.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ProjectStatesSectionComponent {\n @Input() formArray: UntypedFormArray;\n @Input() readonly: boolean;\n\n public states: NamedEntity[] = [];\n public isLoading = signal(false);\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'add',\n handlerFn: (state: NamedEntity) => this.addState(state),\n allowedFn: () => !this.readonly,\n },\n {\n name: 'delete',\n handlerFn: () => null,\n allowedFn: (id) => id && !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.formArray.removeAt(index);\n this.formArray.parent.markAsDirty();\n },\n },\n ],\n view: {\n name: 'allowedProjectStates',\n columns: [\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n public service: GridService,\n public notification: NotificationService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n ) {}\n\n /**\n * Handles the dropdown open event to fetch project states.\n *\n * @param $event The event indicating whether the dropdown is open or not.\n */\n public openChange($event: boolean): void {\n if (!$event) {\n return;\n }\n\n this.isLoading.set(true);\n\n this.states = [];\n const params = {\n filter: { isActive: true, lifecycle: { entityType: 'Project' } },\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n\n this.data\n .collection('States')\n .query(params)\n .subscribe({\n next: (states: NamedEntity[]) => {\n const currentStates = this.formArray.value as NamedEntity[];\n\n this.states = states.filter((state) =>\n currentStates.every(\n (currentState: NamedEntity) => currentState.id !== state.id,\n ),\n );\n\n this.isLoading.set(false);\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Adds a state to the form array.\n *\n * @param state The state to be added.\n */\n public addState(state: NamedEntity): void {\n const group = this.fb.group({\n id: state.id,\n name: state.name,\n });\n this.formArray.push(group);\n\n group.markAsDirty();\n }\n}\n","
    \n
    \n \n\n
    \n\n @if (!readonly) {\n
    \n \n \n
    \n \n
    \n {{ 'shared.noOptions' | translate }}\n
    \n @for (state of states; track state.id) {\n \n }\n
    \n
    \n
    \n }\n\n \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { TimesheetTemplate } from 'src/app/shared/models/entities/settings/timesheet-template.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'wp-timesheet-template-card',\n templateUrl: './timesheet-template-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetTemplateCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public state = signal(undefined);\n public readonly = signal(false);\n public isSaving = signal(false);\n\n public form = this.fb.group({\n id: null,\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n isActive: false,\n isDefault: false,\n createAutomatically: false,\n clearEmptyLinesAutomatically: false,\n showBillCode: false,\n showActivity: false,\n showRole: false,\n showProjectCostCenter: false,\n showClient: false,\n showTariff: false,\n timeOffAutoApproval: false,\n emptyAutoApproval: false,\n dueDateLag: [0, [Validators.required, Validators.max(30)]],\n validationRules: this.fb.array([]),\n allowedProjectStates: this.fb.array([]),\n customFields: this.fb.array([]),\n });\n\n public get template(): TimesheetTemplate {\n return this.form.value as TimesheetTemplate;\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n {\n title: 'shared.actions.useByDefault',\n hint: 'shared.actions.useByDefault',\n name: 'setAsDefault',\n isDropDown: false,\n isBusy: false,\n isVisible: false,\n handler: this.setAsDefault,\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving.set(true);\n this.actionService.action('save').start();\n\n const template = this.form.value as TimesheetTemplate;\n\n const data: any = {\n id: template.id,\n name: template.name,\n dueDateLag: template.dueDateLag,\n isActive: template.isActive,\n isDefault: template.isDefault,\n showClient: template.showClient,\n showBillCode: template.showBillCode,\n showActivity: template.showActivity,\n showRole: template.showRole,\n showProjectCostCenter: template.showProjectCostCenter,\n showTariff: template.showTariff,\n createAutomatically: template.createAutomatically,\n timeOffAutoApproval: template.timeOffAutoApproval,\n emptyAutoApproval: template.emptyAutoApproval,\n clearEmptyLinesAutomatically: template.clearEmptyLinesAutomatically,\n validationRules: [],\n customFields: [],\n allowedProjectStates: [],\n };\n\n template.allowedProjectStates.forEach((state: any) => {\n data.allowedProjectStates.push({\n stateId: state.id,\n timeSheetTemplateId: this.entityId,\n });\n });\n\n template.validationRules.forEach((rule: any) => {\n data.validationRules.push({\n validationRuleId: rule.id,\n timeSheetTemplateId: this.entityId,\n });\n });\n\n template.customFields.forEach((field: any) => {\n data.customFields.push({\n customFieldId: field.id,\n timeSheetTemplateId: this.entityId,\n });\n });\n\n this.data\n .collection('TimeSheetTemplates')\n .entity(this.entityId)\n .update(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.timesheetTemplates.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving.set(false);\n this.actionService.action('save').stop();\n this.message.errorDetailed(error);\n },\n });\n };\n\n private load(): void {\n this.state.set(CardState.Loading);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.form.reset();\n (this.form.controls.validationRules as UntypedFormArray).clear();\n (this.form.controls.customFields as UntypedFormArray).clear();\n (this.form.controls.allowedProjectStates as UntypedFormArray).clear();\n\n const query = {\n expand: {\n validationRules: {\n expand: { validationRule: { select: ['id', 'name'] } },\n },\n allowedProjectStates: { expand: { state: { select: ['id', 'name'] } } },\n customFields: { expand: { customField: { select: ['id', 'name'] } } },\n },\n };\n\n // Загрузка данных.\n this.data\n .collection('TimeSheetTemplates')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (template: TimesheetTemplate) => {\n this.form.patchValue(template);\n\n template.allowedProjectStates.forEach((allowedState) => {\n (\n this.form.controls['allowedProjectStates'] as UntypedFormArray\n ).push(\n this.fb.group({\n id: allowedState.state.id,\n name: allowedState.state.name,\n }),\n );\n });\n\n template.validationRules.forEach((rule) => {\n (this.form.controls['validationRules'] as UntypedFormArray).push(\n this.fb.group({\n id: rule.validationRule.id,\n name: rule.validationRule.name,\n }),\n );\n });\n\n template.customFields.forEach((field) => {\n (this.form.controls['customFields'] as UntypedFormArray).push(\n this.fb.group({\n id: field.customField.id,\n name: field.customField.name,\n }),\n );\n });\n\n this.readonly.set(!template.editAllowed);\n\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.actionService.action('save').isShown = !this.readonly();\n this.actionService.action('setAsDefault').isShown =\n !template.isDefault && !this.readonly();\n\n this.state.set(CardState.Ready);\n\n this.navigationService.addRouteSegment({\n id: template.id,\n title: template.name,\n });\n },\n error: (error: Exception) => {\n this.state.set(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private setAsDefault = (): void => {\n this.actionService.action('setAsDefault').start();\n this.data\n .collection('TimeSheetTemplates')\n .entity(this.entityId)\n .action('WP.SetAsDefault')\n .execute()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.timesheetTemplates.card.messages.hasBeenSetByDefault',\n );\n this.actionService.action('setAsDefault').stop();\n this.actionService.action('setAsDefault').isShown = false;\n this.form.get('isDefault').setValue(true);\n },\n error: (error: Exception) => {\n this.actionService.action('setAsDefault').stop();\n this.notification.error(error.message);\n },\n });\n };\n}\n","\n\n\n\n\n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n
    \n @if (template?.isDefault) {\n

    \n  {{\n 'settings.timesheetTemplates.card.props.usingByDefault' | translate\n }}\n

    \n }\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n {{\n 'settings.timesheetTemplates.card.props.dueDateLagHelp' | translate\n }}\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n\n \n\n \n\n \n\n @if (!readonly()) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n\n","import {\n Component,\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormGroup,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-validation-rules-section',\n templateUrl: './validation-rules-section.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ValidationRulesSectionComponent {\n @Input() formArray: UntypedFormArray;\n @Input() readonly: boolean;\n\n public rules: NamedEntity[] = [];\n public isLoading = signal(false);\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'add',\n handlerFn: (validationRule: NamedEntity) =>\n this.addValidationRule(validationRule),\n allowedFn: () => !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.formArray.removeAt(index);\n this.formArray.parent.markAsDirty();\n },\n },\n ],\n view: {\n name: 'validationRules',\n columns: [\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n public service: GridService,\n public notification: NotificationService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n private data: DataService,\n ) {}\n\n /**\n * Handles the dropdown open event to fetch validation rules.\n *\n * @param $event The event indicating whether the dropdown is open or not.\n */\n public openChange($event: boolean): void {\n if (!$event) {\n return;\n }\n\n this.isLoading.set(true);\n this.rules = [];\n const params = {\n filter: { isActive: true },\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n\n this.data\n .collection('ValidationRules')\n .query(params)\n .subscribe({\n next: (validationRules: NamedEntity[]) => {\n const currentRules = this.formArray.value as NamedEntity[];\n\n validationRules.forEach((rule: NamedEntity) => {\n if (\n currentRules.every(\n (currentRule: any) => currentRule.id !== rule.id,\n )\n ) {\n this.rules.push(rule);\n }\n });\n\n this.isLoading.set(false);\n },\n error: (error: any) => {\n this.isLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Adds a validation rule to the form array.\n *\n * @param validationRule The validation rule to be added.\n */\n public addValidationRule(validationRule: NamedEntity): void {\n const group = this.fb.group({\n id: validationRule.id,\n name: validationRule.name,\n });\n this.formArray.push(group);\n\n group.markAsDirty();\n }\n}\n","
    \n
    \n \n @if (!readonly) {\n
    \n \n \n
    \n \n
    \n {{ 'shared.noOptions' | translate }}\n
    \n @for (rule of rules; track rule.id) {\n \n }\n
    \n
    \n
    \n }\n\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n Validators,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-timesheet-template-creation',\n templateUrl: './timesheet-template-creation.component.html',\n standalone: false,\n})\nexport class TimesheetTemplateCreationComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n });\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.form.get('name').value,\n };\n\n this.data\n .collection('TimeSheetTemplates')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.timesheetTemplates.creation.messages.created',\n );\n this.state.go('settings.timesheetTemplate', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.timesheetTemplates.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { TimesheetTemplateCreationComponent } from '../creation/timesheet-template-creation.component';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-timesheet-template-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class TimesheetTemplateListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.timesheetTemplates.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'TimeSheetTemplate',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.timesheetTemplate', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n this.actions.getDefaultAction('setAsDefault', {\n handler: () => this.setAsDefault(),\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'TimeSheetTemplate',\n PermissionType.Modify,\n );\n\n this.actions.action('setAsDefault').isShown =\n row &&\n this.app.checkEntityPermission(\n 'TimeSheetTemplate',\n PermissionType.Modify,\n ) &&\n !row.value.isDefault;\n },\n );\n }\n\n private create = () => {\n this.modalService.open(TimesheetTemplateCreationComponent);\n };\n\n // Установка по умолчанию.\n public setAsDefault = () => {\n this.data\n .collection('TimeSheetTemplates')\n .entity(this.gridService.selectedGroupValue.id)\n .action('WP.SetAsDefault')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.timesheetTemplates.card.messages.hasBeenSetByDefault',\n );\n this.service.reload();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n },\n });\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TimesheetTemplateListComponent } from './list/timesheet-template-list.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { TimesheetTemplateList } from 'src/app/shared/lists/timesheet-template.list';\nimport { TimesheetTemplateCardComponent } from './card/timesheet-template-card.component';\nimport { TimesheetTemplateCreationComponent } from './creation/timesheet-template-creation.component';\nimport { ValidationRulesSectionComponent } from './card/validation-rules-section/validation-rules-section.component';\nimport { CustomFieldsSectionComponent } from './card/custom-fields-section/custom-fields-section.component';\nimport { ProjectStatesSectionComponent } from 'src/app/settings-app/timesheet-templates/card/project-states-section/project-states-section.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n TimesheetTemplateListComponent,\n TimesheetTemplateCardComponent,\n TimesheetTemplateCreationComponent,\n ValidationRulesSectionComponent,\n CustomFieldsSectionComponent,\n ProjectStatesSectionComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n GridModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.timesheetTemplates',\n url: '/timesheet-templates',\n params: {\n navigation: 'settings.timesheetTemplates',\n },\n component: TimesheetTemplateListComponent,\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: TimesheetTemplateList },\n ],\n },\n {\n name: 'settings.timesheetTemplate',\n params: {\n navigation: 'settings.timesheetTemplates',\n },\n url: '/timesheet-templates/{entityId:guid}',\n component: TimesheetTemplateCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class TimesheetTemplatesModule {}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Subject } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { RoleName } from 'src/app/shared/models/enums/role-name.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'wp-user-access',\n templateUrl: './user-access.component.html',\n standalone: false,\n})\nexport class UserAccessComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public isLoading: boolean;\n private _isSaving: boolean;\n\n destroyed$ = new Subject();\n\n public get isSaving() {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n readonly = !this.app.checkEntityPermission(\n 'UserPermissionSet',\n PermissionType.Modify,\n );\n\n roles: NamedEntity[] = [];\n\n accessForm = this.fb.array([]);\n\n constructor(\n private notification: NotificationService,\n private message: MessageService,\n private blockUI: BlockUIService,\n private data: DataService,\n private app: AppService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n translate: TranslateService,\n ) {\n for (const role of Object.keys(RoleName)) {\n this.roles.push({\n name: translate.instant(`enums.role.${role}`),\n id: role,\n });\n }\n }\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.roles.forEach((role: any) => {\n role.query = { filter: [{ roleName: role.id }] };\n this.accessForm.push(this.fb.control(null));\n });\n\n this.load();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private reload() {\n if (!this.accessForm.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n load = () => {\n this.isLoading = true;\n this.actionService.action('save').hide();\n\n const params = {\n select: ['id'],\n expand: [{ permissionSet: { select: ['id', 'name', 'roleName'] } }],\n };\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .collection('PermissionSets')\n .query(params)\n .subscribe({\n next: (data) => {\n this.roles.forEach((role: any, index: number) => {\n const loadedUserSet: any = data.find(\n (userSet: any) => userSet.permissionSet.roleName === role.id,\n );\n this.accessForm\n .at(index)\n .setValue(loadedUserSet ? loadedUserSet.permissionSet : null);\n });\n\n this.readonly ? this.accessForm.disable() : this.accessForm.enable();\n this.accessForm.markAsPristine();\n this.accessForm.markAsUntouched();\n this.actionService.action('save').isShown = !this.readonly;\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n };\n\n // Сохранение сущности.\n save() {\n this.isSaving = true;\n const data = { permissionSets: [] as any };\n const sets = this.accessForm.value as any[];\n sets.forEach((set: any) => {\n if (!set) {\n return;\n }\n data.permissionSets.push({\n userId: this.entityId,\n permissionSetId: set.id,\n id: Guid.generate(),\n });\n });\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UpdatePermissionSets')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.accessForm.markAsPristine();\n this.isSaving = false;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n }\n}\n","\n
    \n \n\n

    {{ 'settings.users.card.access.help' | translate }}

    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ 'settings.users.card.access.role' | translate }}\n \n {{ 'settings.users.card.access.permissionSet' | translate }}\n
    {{ role.name | translate }}:\n \n \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { UserCardService } from './user-card.service';\nimport { StateService } from '@uirouter/core';\nimport { TabLink } from 'src/app/shared/models/navigation/navigation';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\n\n@Component({\n selector: 'wp-user-card',\n templateUrl: './user-card.component.html',\n providers: [UserCardService],\n standalone: false,\n})\nexport class UserCardComponent implements OnInit {\n @Input() entityId: string;\n\n tabs: TabLink[] = [];\n\n constructor(\n public state: StateService,\n public service: UserCardService,\n private app: AppService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actionPanelService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n isDropDown: false,\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n },\n {\n title: 'settings.users.card.actions.management',\n hint: 'settings.users.card.actions.management',\n name: 'management',\n isDropDown: true,\n isVisible: false,\n isBusy: false,\n actions: [\n {\n name: 'restorePassword',\n title: 'settings.users.card.actions.sendResetMessage',\n hint: 'settings.users.card.actions.sendResetMessage',\n isBusy: false,\n isVisible: true,\n handler: () => this.service.restorePassword(),\n },\n {\n name: 'resetPassword',\n title: 'settings.users.card.actions.resetPassword',\n hint: 'settings.users.card.actions.resetPassword',\n isBusy: false,\n isVisible: true,\n handler: () => this.service.resetPassword(),\n },\n {\n name: 'removeOtp',\n title: 'settings.users.card.actions.removeOtpConfiguration',\n hint: 'settings.users.card.actions.removeOtpConfiguration',\n isBusy: false,\n isVisible: true,\n handler: () => this.service.removeOtpConfiguration(),\n },\n ],\n },\n ]);\n\n this.actionPanelService.setAdditional([\n {\n title: 'settings.users.card.actions.openLoginLog',\n hint: 'settings.users.card.actions.openLoginLog',\n name: 'openLoginLog',\n isBusy: false,\n isVisible: this.app.checkPermission(\n 'LoginLogEntry',\n 'All',\n PermissionType.Read,\n ),\n handler: () => this.service.goToLoginLog(),\n },\n {\n title: 'shared.actions.delete',\n hint: 'shared.actions.delete',\n name: 'delete',\n isBusy: false,\n isVisible: true,\n handler: () => this.service.delete(),\n },\n ]);\n\n this.tabs.push({\n header: 'settings.users.card.tabs.profile',\n state: 'settings.user.profile',\n });\n\n if (this.app.checkPermission('UserProduct', 'All', PermissionType.Read)) {\n this.tabs.push({\n header: 'settings.users.card.tabs.licenses',\n state: 'settings.user.licenses',\n });\n }\n\n if (this.app.checkPermission('UserGroup', 'All', PermissionType.Read)) {\n this.tabs.push({\n header: 'settings.users.card.tabs.groups',\n state: 'settings.user.groups',\n });\n }\n\n if (\n this.app.checkPermission('UserPermissionSet', 'All', PermissionType.Read)\n ) {\n this.tabs.push({\n header: 'settings.users.card.tabs.access',\n state: 'settings.user.access',\n });\n }\n\n this.tabs.push({\n header: 'settings.users.card.tabs.roles',\n state: 'settings.user.roles',\n });\n\n if (this.app.checkPermission('UserSchedule', 'All', PermissionType.Read)) {\n this.tabs.push({\n header: 'settings.users.card.tabs.schedule',\n state: 'settings.user.schedule',\n });\n }\n\n if (this.app.checkPermission('UserCostValue', 'All', PermissionType.Read)) {\n this.tabs.push({\n header: 'settings.users.card.tabs.cost',\n state: 'settings.user.cost',\n });\n }\n\n this.tabs.push({\n header: 'settings.users.card.tabs.timesheets',\n state: 'settings.user.timesheets',\n });\n\n if (this.app.checkPermission('UserSetting', 'All', PermissionType.Read)) {\n this.tabs.push(\n {\n header: 'settings.users.card.tabs.settings',\n state: 'settings.user.settings',\n },\n {\n header: 'settings.users.card.tabs.notifications',\n state: 'settings.user.notifications',\n },\n );\n }\n\n if (\n this.app.checkPermission('UserSubstitute', 'All', PermissionType.Read)\n ) {\n this.tabs.push({\n header: 'settings.users.card.tabs.substitutes',\n state: 'settings.user.substitutes',\n });\n }\n }\n}\n","\n\n\n\n\n
    \n
      \n
    • \n {{ tab.header | translate }}\n
    • \n
    \n \n
    \n","import { DestroyRef, Inject, Injectable, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { StateService } from '@uirouter/core';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PasswordResetModalComponent } from 'src/app/settings-app/users/card/user-profile/password-reset-modal/password-reset-modal.component';\nimport { MessageService } from 'src/app/core/message.service';\nimport { AuthProviderType } from 'src/app/shared/models/enums/auth-provider-type.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class UserCardService {\n public state$ = new BehaviorSubject(CardState.Loading);\n private userNameSubject = new BehaviorSubject(null);\n public userName$ = this.userNameSubject.asObservable();\n user: User;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject('entityId') private userId: string,\n private data: DataService,\n private notification: NotificationService,\n private navigation: NavigationService,\n private state: StateService,\n private modalService: NgbModal,\n private message: MessageService,\n private actionPanelService: ActionPanelService,\n ) {\n this.load();\n this.state$.next(CardState.Loading);\n }\n\n public load() {\n const query = {\n select: ['name', 'editAllowed'],\n expand: { authProvider: { select: ['type'] } },\n };\n\n this.data\n .collection('Users')\n .entity(this.userId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (user: User) => {\n this.state$.next(CardState.Ready);\n this.userNameSubject.next(user.name);\n this.user = user;\n this.navigation.addRouteSegment({\n id: this.userId,\n title: user.name,\n });\n\n this.actionPanelService.action('management').isShown =\n user.authProvider.type == AuthProviderType.Local;\n\n this.actionPanelService.action('delete').isShown = user.editAllowed;\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.notification.error(error.message);\n },\n });\n }\n\n public updateName(value: any) {\n this.userNameSubject.next(value);\n }\n\n /** Deletes entity. */\n public delete() {\n this.message.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.data\n .collection('Users')\n .entity(this.userId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem(true);\n },\n error: (error: Exception) => {\n this.message.error(error.message).then(\n () => this.load(),\n () => this.load(),\n );\n },\n });\n },\n () => null,\n );\n }\n\n /**\n * Navigates to user's login log.\n * */\n public goToLoginLog(): void {\n this.state.go(`settings.loginLog`, {\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.user.name,\n filter: [{ userId: { type: 'guid', value: this.userId } }],\n }),\n });\n }\n\n /** Диалог установки нового пароля. */\n public resetPassword() {\n const ref = this.modalService.open(PasswordResetModalComponent);\n (ref.componentInstance as PasswordResetModalComponent).userId = this.userId;\n }\n\n /** Отправка сообщения на восстановление пароля. */\n public restorePassword() {\n this.message\n .confirmLocal(\n 'settings.users.card.profile.messages.sendResetMessageConfirmation',\n )\n .then(\n () => {\n this.data\n .collection('users')\n .entity(this.userId)\n .action('WP.RestorePassword')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.users.card.profile.messages.messageSent',\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n }\n\n /** Removes OTP generator app configuration. */\n public removeOtpConfiguration() {\n this.message\n .confirmLocal(\n 'settings.users.card.profile.messages.removeOtpConfigurationConfirmation',\n )\n .then(\n () => {\n this.data\n .collection('Users')\n .entity(this.userId)\n .action('ResetOtpCodeGenerator')\n .execute()\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.users.card.profile.messages.otpGeneratorConfigurationRemoved',\n );\n },\n error: (error: Exception) => {\n if (error.code == Exception.BtEntityNotFoundException.code) {\n this.notification.errorLocal(\n 'settings.users.card.profile.messages.otpConfigurationNotFound',\n );\n } else {\n this.notification.error(error.message);\n }\n },\n });\n },\n () => null,\n );\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-cost-rates-toolbar',\n templateUrl: './user-cost-rates-toolbar.component.html',\n standalone: false,\n})\nexport class UserCostRatesToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared.actions.addLine' | translate }}\n \n
    \n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { UserCostRatesToolbarComponent } from './user-cost-rates-toolbar/user-cost-rates-toolbar.component';\nimport { UserCostRatesService } from './user-cost-rates.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridCurrencyControlColumn,\n GridDateControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-user-cost-rates',\n templateUrl: './user-cost-rates.component.html',\n styleUrls: ['./user-cost-rates.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserCostRatesComponent implements OnInit {\n @Input() readonly: boolean;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: UserCostRatesToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.userCostRatesService.remove(index);\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.userCostRatesService.create();\n },\n },\n ],\n view: {\n name: 'user-costs',\n columns: [\n {\n name: 'effectiveDate',\n header: 'settings.users.card.cost.columns.effectiveDate',\n hint: 'settings.users.card.cost.columns.effectiveDate',\n type: GridColumnType.DateControl,\n property: 'effectiveDate',\n width: '150px',\n required: true,\n } as GridDateControlColumn,\n {\n name: 'value',\n header: 'settings.users.card.cost.columns.cost.header',\n hint: 'settings.users.card.cost.columns.cost.header',\n type: GridColumnType.CurrencyControl,\n controlType: 'currency',\n isCurrencyEditable: true,\n required: true,\n property: 'value',\n width: '100%',\n } as GridCurrencyControlColumn,\n ],\n },\n };\n\n constructor(public userCostRatesService: UserCostRatesService) {}\n\n public ngOnInit(): void {\n if (this.readonly) {\n this.userCostRatesService.costForm.disable();\n }\n }\n}\n","
    \n
    \n \n \n {{\n 'settings.users.card.cost.props.cost.help' | translate\n }}\n
    \n\n \n\n","import { Injectable } from '@angular/core';\nimport {\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { DateTime } from 'luxon';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n forkJoin,\n throwError,\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { UserCostValue } from 'src/app/shared/models/entities/settings/user-cost-value.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { currencyValueRequiredValidator } from 'src/app/shared/validators/currency-value-required';\n\n@Injectable()\nexport class UserCostRatesService {\n private resourceId: string;\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private isLoadingSubject = new BehaviorSubject(true);\n public isLoading$ = this.isLoadingSubject.asObservable();\n private isLoading = false;\n\n loadingSubscription: Subscription;\n\n public costForm = this.fb.group({\n initialValue: this.fb.group({\n effectiveDate: [null],\n value: [null, currencyValueRequiredValidator()],\n id: [null],\n }),\n values: this.fb.array([]),\n });\n\n public get costValuesForm() {\n return this.costForm.controls.values as UntypedFormArray;\n }\n\n constructor(\n private app: AppService,\n private data: DataService,\n private gridService: GridService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private currenciesService: CurrenciesService,\n ) {\n this.costForm.valueChanges.subscribe(() => {\n if (this.isLoading) {\n return;\n }\n this.changesSubject.next();\n });\n }\n\n create() {\n const group = this.getGridFormGroup({});\n this.costValuesForm.insert(0, group);\n\n group.controls.effectiveDate.setValue(DateTime.now().toISODate());\n\n this.costForm.markAsDirty();\n this.gridService.selectGroup(group);\n }\n\n public remove(index: number) {\n this.costValuesForm.removeAt(index);\n this.costForm.markAsDirty();\n this.changesSubject.next();\n }\n\n private getGridFormGroup(row: any) {\n return this.fb.group({\n effectiveDate: [row.effectiveDate, Validators.required],\n value: [\n row.value ?? {\n value: null,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n },\n currencyValueRequiredValidator(),\n ],\n id: [row.id ? row.id : Guid.generate()],\n });\n }\n\n public load(resourceId): Observable {\n this.resourceId = resourceId;\n\n this.isLoadingSubject.next(true);\n this.isLoading = true;\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.costValuesForm.clear();\n\n return forkJoin({\n currencies: this.currenciesService.currencies$,\n data: this.data\n .collection('Users')\n .entity(this.resourceId)\n .collection('CostValues')\n .query({\n orderBy: 'effectiveDate desc',\n }),\n }).pipe(\n map(\n (response) => {\n const data: UserCostValue[] = response.data;\n const currencies = response.currencies;\n\n // Убрать из списка начальное значение.\n let initialValue = data.find(\n (userCost: UserCostValue) => !userCost.effectiveDate,\n );\n\n if (initialValue) {\n const index = data.indexOf(initialValue);\n data.splice(index, 1);\n } else {\n initialValue = {\n effectiveDate: null,\n id: Guid.generate(),\n value: null,\n user: null,\n currencyId: currencies.find(\n (c) =>\n c.alpha3Code ===\n this.app.session.configuration.baseCurrencyCode,\n ).id,\n };\n }\n\n const initValueGroup = this.costForm.get('initialValue') as FormGroup;\n initValueGroup.patchValue(initialValue);\n\n const initialValueFilteredCurrency = currencies.find(\n (currency) => currency.id === initialValue.currencyId,\n );\n\n initValueGroup.controls.value.setValue(\n {\n value: initValueGroup.value.value,\n currencyCode: initialValueFilteredCurrency.alpha3Code,\n },\n { emitEvent: false },\n );\n\n data.forEach((userCost: UserCostValue) => {\n const filteredCurrency = currencies.find(\n (currency) => currency.id === userCost.currencyId,\n );\n const costForm = this.getGridFormGroup(userCost);\n\n costForm.controls.value.setValue(\n {\n value: costForm.value.value,\n currencyCode: filteredCurrency.alpha3Code,\n },\n { emitEvent: false },\n );\n this.costValuesForm.push(costForm);\n });\n\n this.costForm.markAsPristine();\n this.costForm.markAsUntouched();\n this.isLoadingSubject.next(false);\n this.isLoading = false;\n },\n (error: Exception) => {\n this.isLoadingSubject.next(false);\n this.isLoading = false;\n this.notification.error(error.message);\n },\n ),\n );\n }\n\n public save(): Observable {\n this.costForm.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (!this.costForm.valid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return throwError(Exception.ClientValidationException);\n }\n\n const data = { costValues: [] };\n const value = this.costForm.value;\n\n this.currenciesService.currencies$.subscribe((currencies) => {\n let currencyId = currencies.find(\n (currency) =>\n currency.alpha3Code === value.initialValue.value.currencyCode,\n ).id;\n data.costValues.push({\n effectiveDate: null,\n id: value.initialValue.id,\n value: value.initialValue.value.value,\n userId: this.resourceId,\n currencyId,\n });\n\n (value.values as UserCostValue[]).forEach((uc: UserCostValue) => {\n currencyId = currencies.find(\n (currency) => currency.alpha3Code === uc.value.currencyCode,\n ).id;\n data.costValues.push({\n effectiveDate: uc.effectiveDate,\n id: uc.id,\n value: uc.value.value,\n userId: this.resourceId,\n currencyId,\n });\n });\n });\n\n return this.data\n .collection('Users')\n .entity(this.resourceId)\n .action('WP.UpdateCostValues')\n .execute(data);\n }\n}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { forkJoin, Subject, Subscription } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { UserCostRatesService } from './user-cost-rates/user-cost-rates.service';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-cost',\n templateUrl: './user-cost.component.html',\n providers: [GridService, UserCostRatesService],\n standalone: false,\n})\nexport class UserCostComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n readonly = !this.app.checkEntityPermission(\n 'UserCostValue',\n PermissionType.Modify,\n );\n\n public costForm = this.fb.group({\n costNormalizationRule: [null],\n });\n\n private _loading: boolean;\n destroyed$ = new Subject();\n get loading() {\n return this._loading;\n }\n\n set loading(value: boolean) {\n this.actionService.action('save').isShown = !value && !this.readonly;\n this._loading = value;\n }\n\n private _isSaving: boolean;\n private changesListener: Subscription;\n\n get isSaving() {\n return this._isSaving;\n }\n set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n reloadListener: Subscription;\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n public userCostRatesService: UserCostRatesService,\n private blockUI: BlockUIService,\n private app: AppService,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n ) {}\n\n private reload() {\n if (!this.costForm.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private load() {\n this.loading = true;\n\n const params = {\n select: ['id'],\n expand: ['costNormalizationRule'],\n };\n\n forkJoin({\n cost: this.userCostRatesService.load(this.entityId),\n rule: this.data.collection('Users').entity(this.entityId).get(params),\n }).subscribe((response) => {\n this.costForm.patchValue(response.rule);\n this.loading = false;\n });\n }\n\n /** Сохранение сущности. */\n public save() {\n this.isSaving = true;\n forkJoin({\n cost: this.userCostRatesService.save(),\n user: this.data\n .collection('Users')\n .entity(this.entityId)\n .patch({\n costNormalizationRuleId:\n this.costForm.value.costNormalizationRule?.id ?? null,\n }),\n }).subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.costForm.markAsPristine();\n this.isSaving = false;\n },\n error: (error: Exception) => {\n if (error.code !== Exception.ClientValidationException.code) {\n this.notification.error(error.message);\n }\n this.isSaving = false;\n },\n });\n }\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.reloadListener = this.actionService.reload$.subscribe(() => {\n this.reload();\n });\n\n this.changesListener = this.userCostRatesService.changes$.subscribe(() =>\n this.costForm.markAsDirty(),\n );\n\n this.load();\n }\n\n ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n this.changesListener.unsubscribe();\n\n this.destroyed$.next();\n }\n}\n","\n\n
    \n \n\n
    \n \n \n
    \n\n
    \n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { UserCardService } from '../user-card.service';\n\n@Component({\n selector: 'wp-user-notifications',\n templateUrl: './user-notifications.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserNotificationsComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public readonly: boolean;\n public loading: boolean;\n public form: UntypedFormGroup;\n\n private _isSaving: boolean;\n public get isSaving() {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUIService.start();\n this.actionPanelService.action('save').start();\n } else {\n this.actionPanelService.action('save').stop();\n this.blockUIService.stop();\n }\n }\n\n private destroyed$ = new Subject();\n\n constructor(\n private notificationService: NotificationService,\n private blockUIService: BlockUIService,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n private service: UserCardService,\n private messageService: MessageService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.actionPanelService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.reload();\n });\n\n this.load();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public load(): void {\n this.loading = true;\n\n this.dataService\n .collection('UserSettings')\n .entity(this.entityId)\n .get()\n .subscribe({\n next: (data) => {\n this.form.patchValue(data);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.readonly = !data.editAllowed;\n\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n this.actionPanelService.action('save').isShown = !this.readonly;\n this.loading = false;\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notificationService.error(error.message);\n },\n });\n }\n\n public save(): void {\n this.form.markAllAsTouched();\n\n if (this.form.valid) {\n this.isSaving = true;\n\n this.dataService\n .collection('UserSettings')\n .entity(this.entityId)\n .patch(this.form.value)\n .subscribe({\n next: () => {\n this.notificationService.successLocal('shared.messages.saved');\n this.isSaving = false;\n this.form.markAsPristine();\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving = false;\n },\n });\n } else {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n }\n }\n\n /**\n * Sets form\n *\n * @param form UntypedFormGroup\n */\n public onForm(form: UntypedFormGroup): void {\n this.form = form;\n }\n\n private reload(): void {\n this.form.enable();\n\n if (!this.form.dirty) {\n this.load();\n } else {\n this.messageService.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n}\n","\n\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { LicenseProductInfo } from 'src/app/shared/models/entities/settings/license-info.model';\nimport { UserProductsService } from 'src/app/settings-app/users/card/user-products/user-products.service';\nimport { LicenseProduct } from 'src/app/shared/models/session/client-session.model';\nimport { orderBy } from 'lodash';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-user-products-toolbar',\n templateUrl: './user-products-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserProductsToolbarComponent extends AbstractToolbar {\n public products: LicenseProductInfo[] = [];\n\n constructor(\n public service: UserProductsService,\n public notification: NotificationService,\n gridService: GridService,\n cdr: ChangeDetectorRef,\n ) {\n super(gridService, cdr);\n }\n\n /**\n * Event on open/close state for product selector.\n *\n * @param $event new state.\n */\n public openChange($event: boolean): void {\n if (!$event) {\n return;\n }\n\n this.products = orderBy(\n this.service.licenseInfo.filter(\n (x) =>\n x.limit - x.used > 0 &&\n (this.service.products.value as { product: LicenseProduct }[]).every(\n (up) => up.product !== x.product,\n ),\n ),\n (x) => x.displayName,\n );\n }\n\n /**\n * Selects product.\n *\n * @param productInfo selected license product. *\n */\n public selectProduct(productInfo: LicenseProductInfo): void {\n this.gridService.execute('add', productInfo);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n
    \n \n @for (product of products; track product) {\n \n {{ product.displayName }}\n \n }\n
    \n
    \n \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { UserProductsToolbarComponent } from 'src/app/settings-app/users/card/user-products/user-products-toolbar/user-products-toolbar.component';\nimport { LicenseProductInfo } from 'src/app/shared/models/entities/settings/license-info.model';\nimport { UserProductsService } from 'src/app/settings-app/users/card/user-products/user-products.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-user-products',\n templateUrl: './user-products.component.html',\n styleUrls: ['./user-products.component.scss'],\n providers: [GridService, UserProductsService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserProductsComponent {\n public readonly = !this.app.checkEntityPermission(\n 'UserProduct',\n PermissionType.Modify,\n );\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: UserProductsToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.service.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.service.products.removeAt(index);\n this.service.products.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'add',\n handlerFn: (productInfo: LicenseProductInfo) => {\n const group = this.fb.group({\n product: [productInfo.product, Validators.required],\n name: [productInfo.displayName, Validators.required],\n id: [Guid.generate()],\n });\n this.service.products.push(group);\n this.cdr.detectChanges();\n this.service.products.markAsDirty();\n },\n },\n ],\n view: {\n name: 'userProducts',\n columns: [\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n public service: UserProductsService,\n private app: AppService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n}\n","
    \n \n\n

    {{ 'settings.users.card.licenses.help' | translate }}

    \n\n \n\n
    \n @if (!service.readonly && !(service.loading$ | async)) {\n \n {{ 'shared2.actions.save' | translate }}\n \n }\n
    \n\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { FormArray, UntypedFormBuilder } from '@angular/forms';\nimport { sortBy } from 'lodash';\nimport { Subject, forkJoin } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { UserProduct } from 'src/app/settings-app/users/card/user-products/user-product.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { LicenseProductInfo } from 'src/app/shared/models/entities/settings/license-info.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\n\n@Injectable()\nexport class UserProductsService implements OnDestroy {\n public licenseInfo: LicenseProductInfo[] = [];\n public saving$ = new Subject();\n public loading$ = new Subject();\n\n public products: FormArray = this.fb.array([]);\n private destroyed$ = new Subject();\n\n public readonly = !this.app.checkEntityPermission(\n 'UserProduct',\n PermissionType.Modify,\n );\n\n constructor(\n @Inject('entityId') public entityId: string,\n private app: AppService,\n private notification: NotificationService,\n private gridService: GridService,\n private blockUI: BlockUIService,\n private data: DataService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private message: MessageService,\n ) {\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.reload();\n });\n\n this.actionService.action('save').isShown = !this.readonly;\n\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.loading$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.gridService.setLoadingState(value);\n this.actionService.action('save').isShown = !this.readonly && !value;\n });\n\n this.saving$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n });\n\n this.load();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Saves data. */\n public save(): void {\n this.products.markAllAsTouched();\n\n if (this.products.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n\n this.saving$.next(true);\n const data = { products: [] };\n\n this.products.value.forEach((userProduct: RowModel) => {\n data.products.push({\n id: userProduct.id,\n userId: this.entityId,\n product: userProduct.product,\n });\n });\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('UpdateProducts')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.products.markAsPristine();\n this.products.markAsUntouched();\n this.saving$.next(false);\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this.saving$.next(false);\n },\n });\n }\n\n /** Loads data. */\n public load() {\n this.products.clear();\n this.loading$.next(true);\n\n const entity = this.data.collection('Users').entity(this.entityId);\n\n forkJoin({\n licenseInfo: entity\n .function('GetAvailableProducts')\n .get(),\n userProducts: entity.collection('Products').query(),\n }).subscribe({\n next: (response) => {\n sortBy(\n response.userProducts.map((userProduct: UserProduct) => {\n const productInfo = response.licenseInfo.find(\n (x) => x.product === userProduct.product,\n );\n return this.fb.group({\n name: [productInfo?.displayName ?? userProduct.product], // Possible on trial transition.\n product: [userProduct.product],\n id: [userProduct.id],\n });\n }),\n (group) => group.value.name,\n ).forEach((group) => this.products.push(group));\n\n this.licenseInfo = response.licenseInfo;\n this.loading$.next(false);\n\n this.products.markAsPristine();\n this.products.markAsUntouched();\n },\n error: (error: Exception) => {\n this.loading$.next(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Handles tab-reload event. */\n public reload() {\n if (!this.products.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.load();\n },\n () => null,\n );\n }\n }\n}\n\nexport interface RowModel {\n product: LicenseProductInfo;\n name: string;\n id: string;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TenantSettingService } from 'src/app/shared/services/tenant-setting.service';\nimport { BehaviorSubject } from 'rxjs';\n\n/** Диалог сброса (принудительной установки) пароля пользователя. */\n@Component({\n selector: 'wp-password-reset-modal',\n templateUrl: './password-reset-modal.component.html',\n standalone: false,\n})\nexport class PasswordResetModalComponent implements OnInit {\n @Input() userId: string;\n\n public form = this.fb.group({\n password: ['', [Validators.required]],\n });\n public isSaving: boolean;\n\n public passwordRequirements$$ = new BehaviorSubject('');\n\n constructor(\n private message: MessageService,\n private data: DataService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private tenantSetting: TenantSettingService,\n ) {}\n\n ngOnInit(): void {\n this.tenantSetting.getPasswordRequirements().subscribe({\n next: (data) => {\n this.passwordRequirements$$.next(data);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = { newPassword: this.form.value.password };\n\n this.data\n .collection('Users')\n .entity(this.userId)\n .action('WP.ResetPassword')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.users.card.profile.passwordReset.wasChanged',\n );\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error);\n this.isSaving = false;\n },\n });\n };\n}\n","
    \n
    \n

    \n {{ 'settings.users.card.profile.passwordReset.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n {{ passwordRequirements$$ | async }}\n
    \n
    \n
    \n \n {{ 'shared.actions.reset' | translate }}\n \n \n
    \n
    \n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { UserCardService } from '../user-card.service';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { BehaviorSubject, Subscription, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\n\n@Component({\n selector: 'wp-user-profile',\n templateUrl: './user-profile.component.html',\n standalone: false,\n})\nexport class UserProfileComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n readonly = !this.app.checkEntityPermission('User', PermissionType.Modify);\n\n public isLoading: boolean;\n\n public avatarIsLoading: boolean;\n public avatarVersion: string = Guid.generate();\n\n public isUserUnlocking: boolean;\n public isUserLocked$ = new BehaviorSubject(false);\n\n private destroyed$ = new Subject();\n\n public authProviders$ = this.data\n .collection('Users')\n .function('GetAuthProviders')\n .query();\n\n private defaultGradesQuery = {\n select: ['name', 'id', 'levelId'],\n };\n\n reloadListener: Subscription;\n\n private _isSaving: boolean;\n\n get isSaving() {\n return this._isSaving;\n }\n\n set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n profileForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n authProvider: [null, Validators.required],\n email: ['', [Validators.required, Validators.email]],\n notificationsEmail: ['', Validators.email],\n code: ['', Validators.maxLength(Constants.formCodeMaxLength)],\n phone: ['', Validators.maxLength(Constants.formNameMaxLength)],\n location: [null],\n level: [null],\n grade: [null],\n position: ['', Validators.maxLength(Constants.formNameMaxLength)],\n resourcePool: [null, Validators.required],\n firstWorkDay: [null],\n lastWorkDay: [null],\n supervisor: [null],\n department: [null],\n isActive: [false],\n legalEntity: [null, Validators.required],\n role: null,\n competence: null,\n employmentTypeId: null,\n });\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public Feature = Feature;\n\n public showNotificationsEmail = false;\n\n constructor(\n private customFieldService: CustomFieldService,\n public app: AppService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n private data: DataService,\n private message: MessageService,\n private actionService: ActionPanelService,\n private service: UserCardService,\n private fb: UntypedFormBuilder,\n ) {\n this.customFieldService.enrichFormGroup(this.profileForm, 'User');\n }\n\n /** Сохранение профиля. */\n save() {\n this.profileForm.markAllAsTouched();\n const user = this.profileForm.value as User;\n\n if (this.profileForm.valid) {\n this.isSaving = true;\n\n const data: any = {\n name: user.name,\n authProviderId: this.profileForm.value.authProvider.id,\n locationId: user.location?.id ?? null,\n phone: user.phone,\n email: user.email,\n notificationsEmail: user.notificationsEmail,\n levelId: user.level?.id ?? null,\n gradeId: user.grade?.id ?? null,\n position: user.position,\n isActive: user.isActive,\n supervisorId: user.supervisor?.id ?? null,\n resourcePoolId: user.resourcePool?.id ?? null,\n code: user.code,\n departmentId: user.department?.id ?? null,\n firstWorkDay: user.firstWorkDay,\n lastWorkDay: user.lastWorkDay,\n legalEntityId: user.legalEntity?.id,\n roleId: user.role?.id ?? null,\n competenceId: user.competence?.id ?? null,\n employmentTypeId: user.employmentTypeId ?? null,\n };\n\n this.customFieldService.assignValues(data, user, 'User');\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.profileForm.markAsPristine();\n this.isSaving = false;\n this.service.load();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.message.errorDetailed(error);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n public onFileAdded(event: any) {\n const file = event.addedFiles[0];\n\n if (!file) {\n this.notification.warningLocal(\n 'settings.users.card.profile.messages.avatarIsWrong',\n );\n return;\n }\n\n const formData: FormData = new FormData();\n this.avatarIsLoading = true;\n formData.append('image', file, file.name);\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UploadAvatar')\n .execute(formData)\n .subscribe({\n next: () => {\n this.avatarIsLoading = false;\n this.notification.successLocal(\n 'settings.users.card.profile.messages.userAvatarSaved',\n );\n this.avatarVersion = Guid.generate();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.avatarIsLoading = false;\n },\n });\n }\n\n public load() {\n this.profileForm.markAsPristine();\n this.profileForm.markAsUntouched();\n\n this.actionService.action('save').hide();\n this.isLoading = true;\n\n const query = {\n select: [\n 'name',\n 'authProvider',\n 'id',\n 'email',\n 'notificationsEmail',\n 'position',\n 'phone',\n 'firstWorkDay',\n 'lastWorkDay',\n 'code',\n 'editAllowed',\n 'isActive',\n 'employmentTypeId',\n ],\n expand: [\n { authProvider: { select: ['name', 'id', 'type'] } },\n { resourcePool: { select: ['name', 'id'] } },\n { department: { select: ['name', 'id'] } },\n { supervisor: { select: ['name', 'id'] } },\n { location: { select: ['name', 'id'] } },\n { level: { select: ['name', 'id'] } },\n { grade: { ...this.defaultGradesQuery } },\n { legalEntity: { select: ['name', 'id'] } },\n { role: { select: ['name', 'id'] } },\n { competence: { select: ['name', 'id', 'roleId'] } },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'User');\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (user: User) => {\n this.profileForm.patchValue(user);\n this.profileForm.markAsPristine();\n this.profileForm.markAsUntouched();\n\n // Доступность операций.\n if (user.editAllowed) {\n this.actionService.action('save').show();\n this.profileForm.enable();\n } else {\n this.profileForm.disable();\n }\n\n this.checkIsUserLocked();\n\n this.isLoading = false;\n this.showNotificationsEmail = !!user.notificationsEmail;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n /** Разблокировка пользователя */\n public unlockUser() {\n this.isUserUnlocking = true;\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UnlockUser')\n .execute()\n .subscribe({\n next: () => {\n this.isUserUnlocking = false;\n this.isUserLocked$.next(false);\n },\n error: (error) => {\n this.isUserUnlocking = false;\n this.message.errorDetailed(error);\n },\n });\n }\n\n private checkIsUserLocked() {\n this.data\n .collection('Users')\n .entity(this.entityId)\n .function('WP.IsUserLocked')\n .get()\n .subscribe({\n next: (isLocked) => this.isUserLocked$.next(isLocked),\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (!this.profileForm.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n });\n\n this.profileForm.controls['name'].valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.updateName(this.profileForm.controls['name'].value);\n });\n\n FormHelper.controlDatePair(\n this.profileForm,\n 'firstWorkDay',\n 'lastWorkDay',\n takeUntil(this.destroyed$),\n );\n\n this.load();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n
    \n \n {{ 'settings.users.card.profile.props.locked' | translate }}\n \n
    \n
    \n \n {{ 'settings.users.card.actions.unlock' | translate }}\n \n
    \n
    \n
    \n @if (this.isUserLocked$ | async) {\n
    \n }\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n {{ 'settings.users.card.profile.actions.addNotificationsEmail' | translate }}\n \n \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n

    \n {{ 'shared.orDragFileHere' | translate }}\n
    \n \n \n

    \n {{ 'settings.users.card.profile.props.avatarRequirement' | translate }}\n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n @if (!isLoading) {\n
    \n
    \n \n
    \n
    \n \n }\n\n \n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { UserCardService } from '../user-card.service';\nimport { UntypedFormControl } from '@angular/forms';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MessageService } from 'src/app/core/message.service';\nimport { Subject } from 'rxjs';\nimport { ResourceRolesService } from 'src/app/shared-features/resource-roles/resource-roles.service';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-roles',\n templateUrl: './user-roles.component.html',\n providers: [GridService, ResourceRolesService],\n standalone: false,\n})\nexport class UserRolesComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public isLoading: boolean;\n private _isSaving: boolean;\n\n destroyed$ = new Subject();\n\n public get isSaving() {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n readonly = !this.app.checkPermission(\n 'UserRole',\n 'All',\n PermissionType.Modify,\n );\n\n public form = new UntypedFormControl();\n\n constructor(\n private notification: NotificationService,\n private message: MessageService,\n private blockUI: BlockUIService,\n public resourceRolesService: ResourceRolesService,\n private app: AppService,\n private actionService: ActionPanelService,\n private service: UserCardService,\n ) {}\n\n private reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private load() {\n this.resourceRolesService.load();\n }\n\n // Сохранение сущности.\n save() {\n this.isSaving = true;\n\n this.resourceRolesService.save().subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.form.markAsPristine();\n this.isSaving = false;\n },\n error: () => {\n this.isSaving = false;\n },\n });\n }\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.resourceRolesService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.form.markAsDirty());\n\n this.resourceRolesService.isLoading$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isLoading) => {\n this.actionService.action('save').isShown =\n !isLoading && !this.readonly;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n \n\n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\n\n@Component({\n selector: 'wp-user-personal-schedule-modal',\n templateUrl: './user-personal-schedule-modal.component.html',\n standalone: false,\n})\nexport class UserPersonalScheduleModalComponent {\n @Input() userId: string;\n @Input() readonly: boolean;\n @Input() usingSchedules: any[];\n\n public isSaving: boolean;\n private dataForSaving: any;\n\n constructor(\n private data: DataService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public dataChanges(data: any) {\n this.dataForSaving = data;\n }\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n public ok = () => {\n if (!this.data) {\n this.activeModal.close();\n return;\n }\n this.isSaving = true;\n\n this.data\n .collection('Users')\n .entity(this.userId)\n .action('WP.UpdatePersonalSchedule')\n .execute(this.dataForSaving)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.notification.error(error.message);\n },\n });\n };\n}\n","
    \n
    \n

    \n {{ 'settings.users.card.schedules.personalSchedule.header' | translate }}\n

    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { UntypedFormBuilder, UntypedFormArray } from '@angular/forms';\nimport { sortBy } from 'lodash';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DateTime, Info } from 'luxon';\n\n@Component({\n selector: 'wp-user-personal-schedule',\n templateUrl: './user-personal-schedule.component.html',\n styleUrls: ['./user-personal-schedule.component.scss'],\n standalone: false,\n})\nexport class UserPersonalScheduleComponent implements OnInit {\n @Input() userId: string;\n @Input() usingSchedules: any[];\n @Input() readonly: boolean;\n\n @Output() changes = new EventEmitter();\n\n /** Текущий рабочий период (период=месяц). Дельта от текущего месяца. */\n currentPeriod = 0;\n\n /** Начало (дата) текущего периода. */\n startPeriod: DateTime;\n\n /** Окончание (дата) текущего периода. */\n endPeriod: DateTime;\n\n minDate: DateTime;\n maxDate: DateTime;\n\n /** Все дни, загруженные для текущего и прочих периодов. */\n storedDays: any[] = [];\n loadedPeriods: any[] = [];\n\n public header: string;\n public isLoading: boolean;\n\n days: object;\n weekNumbers: any[];\n weekDays: any[];\n\n public formArray: UntypedFormArray = this.fb.array([]);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private notification: NotificationService,\n ) {}\n\n private updatePeriodDates() {\n const currentMonthFirstDay = DateTime.now().startOf('month');\n\n this.startPeriod = currentMonthFirstDay.plus({\n months: this.currentPeriod,\n });\n\n this.endPeriod = this.startPeriod.endOf('month');\n\n if (\n !this.maxDate ||\n this.endPeriod.startOf('day') > this.maxDate.startOf('day')\n ) {\n this.maxDate = this.endPeriod;\n }\n\n if (\n !this.minDate ||\n this.minDate.startOf('day') > this.startPeriod.startOf('day')\n ) {\n this.minDate = this.startPeriod;\n }\n\n // Сформировать заголовок периода.\n this.header = this.startPeriod.toFormat('LLLL yyyy');\n this.header =\n this.header.substring(0, 1).toUpperCase() + this.header.substring(1);\n }\n\n private loadPeriod() {\n this.updatePeriodDates();\n\n if (this.loadedPeriods.indexOf(this.currentPeriod) !== -1) {\n this.updateView();\n return;\n }\n this.isLoading = true;\n this.data\n .collection('Users')\n .entity(this.userId)\n .collection('PersonalSchedule')\n .query({\n filter: [\n {\n date: {\n ge: {\n type: 'raw',\n value: this.startPeriod.toFormat('yyyy-MM-dd'),\n },\n },\n },\n {\n date: {\n le: { type: 'raw', value: this.endPeriod.toFormat('yyyy-MM-dd') },\n },\n },\n ],\n })\n .subscribe({\n next: (loadedDays: any[]) => {\n this.isLoading = false;\n this.updateView(loadedDays);\n this.loadedPeriods.push(this.currentPeriod);\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n // Выбрать предыдущий период.\n public previousPeriod() {\n this.currentPeriod--;\n this.loadPeriod();\n }\n\n // Выбрать последующий период.\n public nextPeriod() {\n this.currentPeriod++;\n this.loadPeriod();\n }\n\n // Выбрать текущий период.\n public today() {\n this.currentPeriod = 0;\n this.loadPeriod();\n }\n\n // Обновить представление.\n private updateView(loadedDays?: any[]) {\n this.weekNumbers = [];\n this.days = {};\n\n const schedules = sortBy(this.usingSchedules, 'effectiveDate');\n let date = this.startPeriod;\n while (this.endPeriod.startOf('day') >= date.startOf('day')) {\n const weekNumber = date.weekNumber;\n if (this.weekNumbers.indexOf(weekNumber.toString()) === -1) {\n this.weekNumbers.push(weekNumber.toString());\n }\n\n if (!this.days[weekNumber.toString()]) {\n this.days[weekNumber.toString()] = {};\n }\n\n const weekDayNumber = date.weekday - 1;\n\n if (!this.days[weekNumber.toString()][weekDayNumber.toString()]) {\n const formattedDate = date.toFormat('yyyy-MM-dd');\n let day = this.storedDays.find((d) => d.date === formattedDate);\n\n if (!day && loadedDays) {\n const loadedDay = loadedDays.find((d) => d.date === formattedDate);\n\n const control = this.fb.control(loadedDay?.duration);\n day = {\n title: date.toFormat('d'),\n hint: date.toLocaleString(DateTime.DATE_SHORT),\n date: formattedDate,\n control,\n index: this.formArray.length,\n };\n\n let schedule = null;\n\n schedules.forEach((usingSchedule: any) => {\n if (!usingSchedule.effectiveDate && !schedule) {\n schedule = usingSchedule;\n } else {\n if (date >= DateTime.fromISO(usingSchedule.effectiveDate)) {\n schedule = usingSchedule;\n }\n }\n });\n\n if (!schedule || schedule.schedule.id !== 'Personal') {\n day.notPersonal = true;\n }\n\n this.storedDays.push(day);\n this.formArray.push(control);\n }\n\n this.days[weekNumber.toString()][weekDayNumber.toString()] = day;\n }\n date = date.plus({ days: 1 });\n }\n\n if (this.readonly) {\n this.formArray.disable();\n }\n }\n\n ngOnInit(): void {\n // Сформировать дни недели.\n this.weekDays = [];\n let dayNumber = 0;\n\n Info.weekdaysFormat('short').forEach((dayName: string) => {\n this.weekDays.push({\n title: dayName,\n number: dayNumber.toString(),\n });\n dayNumber++;\n if (dayNumber === 7) {\n dayNumber = 0;\n }\n });\n\n this.formArray.valueChanges.subscribe(() => {\n const days = this.storedDays\n .filter((d) => d.control.value > 0)\n .map((day) => ({\n duration: day.control.value,\n date: day.date,\n userId: this.userId,\n }));\n\n this.changes.emit({\n from: this.minDate.toFormat('yyyy-MM-dd'),\n to: this.maxDate.toFormat('yyyy-MM-dd'),\n userScheduleDays: days,\n });\n });\n\n this.loadPeriod();\n }\n}\n","\n \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n {{ header }}\n
    \n\n\n\n\n \n \n \n #\n \n \n \n \n \n \n \n \n \n \n
    {{ weekDay.title }}
    {{ weekNumber }}\n \n \n \n

    \n {{ days[weekNumber][weekDay.number].title }}\n

    \n \n
    \n\n\n \n \n \n \n
    \n
    \n
    \n —\n {{ 'settings.users.card.schedules.personalSchedule.scheduleIsNotUsed' | translate }}.\n
    \n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-schedule-toolbar',\n templateUrl: './user-schedule-toolbar.component.html',\n standalone: false,\n})\nexport class UserScheduleToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n
    \n @if (!(gridService.readonly$ | async)) {\n \n \n {{ 'shared.actions.addLine' | translate }}\n \n }\n
    \n
    \n @if (gridService.canBeExecuted('openUserSchedule')) {\n \n \n {{ 'settings.users.card.schedules.actions.openPersonalSchedule' | translate }}\n \n }\n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n DestroyRef,\n inject,\n signal,\n effect,\n} from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport {\n UntypedFormBuilder,\n UntypedFormArray,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { forkJoin } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserSchedule } from 'src/app/shared/models/entities/settings/user-schedule.model';\nimport { UserScheduleToolbarComponent } from './user-schedule-toolbar/user-schedule-toolbar.component';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { UserPersonalScheduleModalComponent } from './user-personal-schedule-modal/user-personal-schedule-modal.component';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridDateControlColumn,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-user-schedule',\n templateUrl: './user-schedule.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class UserScheduleComponent implements OnInit {\n @Input() entityId: string;\n\n public isSaving = signal(false);\n public isLoading = signal(false);\n public readonly = signal(\n !this.app.checkEntityPermission('UserSchedule', PermissionType.Modify),\n );\n\n // List of schedules available for selection.\n public schedules: NamedEntity[] = [];\n\n public scheduleForm: UntypedFormGroup = this.fb.group({\n initialValue: this.fb.group({\n effectiveDate: [null],\n schedule: [null, Validators.required],\n id: [Guid.generate()],\n }),\n values: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: UserScheduleToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly(),\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n (this.scheduleForm.controls.values as UntypedFormArray).removeAt(\n index,\n );\n this.scheduleForm.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const group = this.getGridFormGroup();\n (this.scheduleForm.controls.values as UntypedFormArray).insert(\n 0,\n group,\n );\n this.scheduleForm.markAsDirty();\n this.gridService.selectGroup(group);\n },\n },\n {\n name: 'openUserSchedule',\n allowedFn: () => {\n const values = this.getAllSchedules();\n return (\n !this.isLoading() &&\n !!values.find((x) => x.schedule?.id === 'Personal')\n );\n },\n handlerFn: () => {\n this.openPersonalSchedule();\n },\n },\n ],\n view: {\n name: 'schedules',\n columns: [\n {\n name: 'effectiveDate',\n header: 'settings.users.card.schedules.columns.effectiveDate',\n hint: 'settings.users.card.schedules.columns.effectiveDate',\n type: GridColumnType.DateControl,\n property: 'effectiveDate',\n width: '150px',\n required: true,\n } as GridDateControlColumn,\n {\n name: 'schedule',\n header: 'settings.users.card.schedules.props.schedule.label',\n hint: 'settings.users.card.schedules.props.schedule.label',\n type: GridColumnType.SelectControl,\n property: 'schedule',\n width: '100%',\n required: true,\n placeholder: 'settings.users.card.schedules.props.schedule.ph',\n values: [],\n } as GridSelectControlColumn,\n ],\n },\n };\n\n private personalSchedule: NamedEntity = {\n id: 'Personal',\n name: this.translate.instant(\n 'settings.users.card.schedules.personalSchedule.header',\n ),\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private notification: NotificationService,\n private gridService: GridService,\n private translate: TranslateService,\n private blockUI: BlockUIService,\n private data: DataService,\n private app: AppService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private message: MessageService,\n private modalService: NgbModal,\n ) {\n effect(() => {\n if (this.isSaving()) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n });\n }\n\n public ngOnInit(): void {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.save();\n });\n\n if (!this.readonly()) {\n this.actionService.action('save').show();\n }\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n this.load();\n }\n\n /**\n * Creates a form group for the grid based on the provided row data.\n *\n * @param row The row data to base the form group on.\n * @returns An UntypedFormGroup representing the grid row.\n */\n private getGridFormGroup(row?: any): UntypedFormGroup {\n return this.fb.group({\n effectiveDate: [row?.effectiveDate ?? null, Validators.required],\n schedule: [row?.schedule ?? null, Validators.required],\n id: [row?.id ?? Guid.generate()],\n });\n }\n\n /** Reloads the user schedule data. If the form is dirty, prompts the user to confirm before reloading. */\n private reload(): void {\n if (!this.scheduleForm.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.load();\n },\n () => null,\n );\n }\n }\n\n /** Load function to fetch data. */\n private load(): void {\n this.isLoading.set(true);\n\n this.actionService.action('save').hide();\n\n this.schedules = [this.personalSchedule];\n\n forkJoin([\n this.data.collection('Schedules').query({\n filter: [{ isActive: true }],\n orderBy: ['name'],\n select: ['id', 'name'],\n }),\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .collection('Schedules')\n .query({\n expand: [{ schedule: { select: ['id', 'name'] } }],\n orderBy: 'effectiveDate desc',\n }),\n ]).subscribe({\n next: (value: [NamedEntity[], UserSchedule[]]) => {\n (this.scheduleForm.controls.values as UntypedFormArray).clear();\n\n // Get the final list of schedules for selection.\n this.schedules = this.schedules.concat(value[0]);\n const columnValues: NamedEntity[] = (\n this.gridOptions.view.columns.find(\n (c) => c.name === 'schedule',\n ) as GridSelectControlColumn\n ).values;\n columnValues.splice(0, columnValues.length);\n this.schedules.forEach((s) => columnValues.push(s));\n\n // Convert user schedules and load into form.\n const userSchedules = value[1];\n\n userSchedules.forEach((userSchedule: UserSchedule) => {\n if (!userSchedule.schedule) {\n userSchedule.schedule = this.personalSchedule;\n }\n });\n\n // Remove the initial value from the list.\n let initialValue = userSchedules.find(\n (userSchedule: UserSchedule) => !userSchedule.effectiveDate,\n );\n if (initialValue) {\n const index = userSchedules.indexOf(initialValue);\n userSchedules.splice(index, 1);\n } else {\n initialValue = {\n effectiveDate: null,\n id: Guid.generate(),\n schedule: null,\n user: null,\n };\n }\n\n this.scheduleForm.get('initialValue').patchValue(initialValue);\n\n userSchedules.forEach((userSchedule: UserSchedule) => {\n (this.scheduleForm.controls.values as UntypedFormArray).push(\n this.getGridFormGroup(userSchedule),\n );\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly()\n ? this.scheduleForm.disable()\n : this.scheduleForm.enable();\n this.scheduleForm.markAsPristine();\n this.scheduleForm.markAsUntouched();\n this.isLoading.set(false);\n this.actionService.action('save').isShown = !this.readonly();\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Saves the user schedule. */\n public save(): void {\n this.scheduleForm.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.scheduleForm.valid) {\n this.isSaving.set(true);\n const data = { schedules: [] };\n const value = this.scheduleForm.value;\n\n data.schedules.push({\n effectiveDate: null,\n id: this.scheduleForm.value.initialValue.id,\n scheduleId:\n value.initialValue.schedule.id === 'Personal'\n ? null\n : value.initialValue.schedule.id,\n userId: this.entityId,\n });\n\n (value.values as UserSchedule[]).forEach((us: UserSchedule) => {\n data.schedules.push({\n effectiveDate: us.effectiveDate,\n id: us.id,\n scheduleId: us.schedule.id === 'Personal' ? null : us.schedule.id,\n userId: this.entityId,\n });\n });\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UpdateSchedules')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.scheduleForm.markAsPristine();\n this.isSaving.set(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n /**\n * Retrieves all schedules, including the initial value.\n *\n * @returns An array of all schedules, including the initial value.\n */\n private getAllSchedules(): any[] {\n const values = (this.scheduleForm.controls.values as UntypedFormArray)\n .value as any[];\n const initialValue = this.scheduleForm.controls.initialValue.value as any;\n return values.concat([initialValue]);\n }\n\n /** Opens the personal schedule modal for the user. */\n private openPersonalSchedule(): void {\n const modalRef = this.modalService.open(\n UserPersonalScheduleModalComponent,\n {\n size: 'lg',\n },\n );\n const modalInstance =\n modalRef.componentInstance as UserPersonalScheduleModalComponent;\n modalInstance.userId = this.entityId;\n modalInstance.readonly = this.readonly();\n modalInstance.usingSchedules = this.getAllSchedules();\n }\n}\n","\n\n
    \n \n\n
    \n \n \n {{\n 'settings.users.card.schedules.props.schedule.help' | translate\n }}\n
    \n\n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { UserCardService } from '../user-card.service';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { forkJoin, Subject, Subscription } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TimeInputType } from 'src/app/shared/models/enums/time-input-type';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { bcp47Normalize } from 'bcp-47-normalize';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-user-settings',\n templateUrl: './user-settings.component.html',\n standalone: false,\n})\nexport class UserSettingsComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n reloadListener: Subscription;\n readonly: boolean;\n loading: boolean;\n timeInputTypes: NamedEntity[];\n cultures: NamedEntity[];\n languages: NamedEntity[];\n\n private _isSaving: boolean;\n destroyed$ = new Subject();\n get isSaving() {\n return this._isSaving;\n }\n set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n form: UntypedFormGroup = this.fb.group({\n timeZone: [null, Validators.required],\n language: [null, Validators.required],\n culture: [null, Validators.required],\n timeInputType: [null, Validators.required],\n useStopwatch: [false],\n });\n\n constructor(\n private notification: NotificationService,\n private translate: TranslateService,\n private blockUI: BlockUIService,\n private data: DataService,\n private actionService: ActionPanelService,\n private service: UserCardService,\n private fb: UntypedFormBuilder,\n private message: MessageService,\n ) {}\n\n load() {\n this.loading = true;\n const params = {\n expand: ['timeZone'],\n };\n\n forkJoin({\n cultures: this.data.model.function('GetCultures').get(),\n languages: this.data.model.function('GetLanguages').get(),\n settings: this.data\n .collection('UserSettings')\n .entity(this.entityId)\n .get(params),\n }).subscribe({\n next: (data) => {\n this.languages = data.languages;\n this.cultures = data.cultures;\n\n this.form.patchValue(data.settings);\n\n // Выбор типа ввода времени\n const timeInputType = this.timeInputTypes.find(\n (x: NamedEntity) => x.id === data.settings.timeInputType,\n );\n this.form.controls['timeInputType'].setValue(timeInputType);\n\n this.form.controls['language'].setValue(\n data.languages.find((l) => l.id === data.settings.languageCode),\n );\n\n this.form.controls['culture'].setValue(\n data.cultures.find(\n (l) => l.id === bcp47Normalize(data.settings.cultureCode),\n ),\n );\n\n this.readonly = !data.settings.editAllowed;\n this.readonly ? this.form.disable() : this.form.enable();\n this.actionService.action('save').isShown = !this.readonly;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.loading = false;\n },\n error: (error: any) => {\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n save() {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.isSaving = true;\n\n const value = this.form.value;\n\n const data = {\n timeZoneId: value.timeZone.id,\n languageCode: value.language.id,\n cultureCode: value.culture.id,\n timeInputType: value.timeInputType.id,\n useStopwatch: value.useStopwatch,\n };\n\n this.data\n .collection('UserSettings')\n .entity(this.entityId)\n .patch(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.isSaving = false;\n this.form.markAsPristine();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.timeInputTypes = [];\n for (const timeInputType of Object.keys(TimeInputType)) {\n this.timeInputTypes.push({\n id: timeInputType,\n name: this.translate.instant(`enums.timeInputType.${timeInputType}`),\n });\n }\n\n this.reloadListener = this.actionService.reload$.subscribe(() => {\n this.reload();\n });\n this.load();\n }\n\n private reload() {\n this.form.enable();\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n this.destroyed$.next();\n }\n}\n","\n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-substitutes-toolbar',\n templateUrl: './user-substitutes-toolbar.component.html',\n standalone: false,\n})\nexport class UserSubstitutesToolbarComponent extends AbstractToolbar {\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n {{ 'shared2.actions.addLine' | translate }}\n \n
    \n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n inject,\n DestroyRef,\n ChangeDetectorRef,\n signal,\n effect,\n} from '@angular/core';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { UserSubstitutesToolbarComponent } from './user-substitutes-toolbar/user-substitutes-toolbar.component';\nimport { filter } from 'rxjs/operators';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridDateControlColumn,\n GridUserControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-user-substitutes',\n templateUrl: './user-substitutes.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserSubstitutesComponent implements OnInit {\n @Input() public entityId: string;\n\n public isSaving = signal(false);\n public loading = signal(false);\n public readonly = !this.app.checkPermission(\n 'UserSubstitute',\n 'All',\n PermissionType.Modify,\n );\n\n public substitutes: UntypedFormArray = this.fb.array([]);\n\n public gridOptions: GridOptions = {\n toolbar: UserSubstitutesToolbarComponent,\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.substitutes.removeAt(index);\n this.substitutes.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const group = this.getGridFormGroup();\n this.substitutes.push(group);\n this.gridService.selectGroup(group);\n this.substitutes.markAsDirty();\n },\n },\n ],\n view: {\n name: 'substitutes',\n columns: [\n {\n name: 'substitute',\n header: 'shared.userSubstitutes.columns.substitute',\n hint: 'shared.userSubstitutes.columns.substitute',\n type: GridColumnType.UserControl,\n placeholder: 'shared.userSubstitutes.columns.substitute',\n width: '100%',\n required: true,\n },\n {\n name: 'periodStart',\n header: 'shared.userSubstitutes.columns.start.header',\n hint: 'shared.userSubstitutes.columns.start.hint',\n type: GridColumnType.DateControl,\n property: 'periodStart',\n width: '150px',\n required: true,\n },\n {\n name: 'periodFinish',\n header: 'shared.userSubstitutes.columns.finish.header',\n hint: 'shared.userSubstitutes.columns.finish.hint',\n type: GridColumnType.DateControl,\n property: 'periodFinish',\n width: '150px',\n required: true,\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private notification: NotificationService,\n private gridService: GridService,\n private blockUI: BlockUIService,\n private data: DataService,\n private app: AppService,\n public actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private message: MessageService,\n private cdr: ChangeDetectorRef,\n ) {\n effect(() => {\n if (this.isSaving()) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n });\n }\n\n public ngOnInit(): void {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.save();\n });\n\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n this.load();\n }\n\n /** Saves the user substitutes data. */\n public save(): void {\n this.substitutes.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.substitutes.valid) {\n this.isSaving.set(true);\n\n const values: any[] = this.substitutes.value;\n\n const data = { substitutes: [] };\n values.forEach((userSubstitute: any) => {\n data.substitutes.push({\n id: userSubstitute.id,\n substituteId: userSubstitute.substitute.id,\n userId: this.entityId,\n periodStart: userSubstitute.periodStart,\n periodFinish: userSubstitute.periodFinish,\n });\n });\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UpdateSubstitutes')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.userSubstitutes.saved');\n this.substitutes.markAsPristine();\n this.isSaving.set(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n /**\n * Creates a form group for a grid row.\n *\n * @param row The row data to create the form group from.\n * @returns An UntypedFormGroup representing the row data.\n */\n private getGridFormGroup(row?: any): UntypedFormGroup {\n return this.fb.group({\n substitute: [row?.substitute ?? null, Validators.required],\n periodStart: row?.periodStart ?? null,\n periodFinish: row?.periodFinish ?? null,\n id: row?.id ?? Guid.generate(),\n });\n }\n\n /** Reloads the user substitutes data. If the form is dirty, prompts the user to confirm before reloading. */\n private reload(): void {\n if (!this.substitutes.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n\n /** Loads user substitutes data and updates the form array. */\n private load = (): void => {\n this.loading.set(true);\n this.substitutes.clear();\n this.actionService.action('save').hide();\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .collection('Substitutes')\n .query({\n expand: [{ substitute: { select: ['id', 'name'] } }],\n })\n .subscribe({\n next: (data: any[]) => {\n data.forEach((userSubstitute: any) => {\n this.substitutes.push(this.getGridFormGroup(userSubstitute));\n });\n\n this.readonly\n ? this.substitutes.disable()\n : this.substitutes.enable();\n\n this.loading.set(false);\n this.substitutes.markAsPristine();\n this.substitutes.markAsUntouched();\n if (!this.readonly) {\n this.actionService.action('save').show();\n }\n },\n error: (error: Exception) => {\n this.loading.set(false);\n this.notification.error(error.message);\n },\n });\n };\n}\n","\n\n
    \n \n \n\n
    \n @if (!readonly && actionService.action('save').isShown) {\n \n }\n
    \n\n","import { Component, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'tmt-activity-cost-toolbar',\n templateUrl: './user-activity-toolbar.component.html',\n standalone: false,\n})\nexport class UserActivityToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n public selectedActivities: any[] = [];\n public activities: NamedEntity[] = [];\n public loading = false;\n constructor(\n public notification: NotificationService,\n private data: DataService,\n cdr: ChangeDetectorRef,\n gridService: GridService,\n ) {\n super(gridService, cdr);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n this.gridService.formArray.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((activities) => (this.selectedActivities = activities));\n }\n\n /**\n * Handles the dropdown open event to fetch activities.\n *\n * @param $event The event indicating whether the dropdown is open or not.\n */\n public openChange($event: boolean): void {\n if (!$event) {\n return;\n }\n\n this.loading = true;\n this.activities = [];\n\n const params = {\n filter: [],\n select: ['name', 'id'],\n orderBy: ['name'],\n };\n params.filter.push({ isActive: true });\n\n this.gridService.formArray.value.forEach((group) => {\n params.filter.push({\n id: { ne: { type: 'guid', value: group.activityId } },\n });\n });\n\n this.data\n .collection('Activities')\n .query(params)\n .subscribe({\n next: (activities: NamedEntity[]) => {\n this.activities = activities;\n this.loading = false;\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notification.error(error.message);\n this.cdr.detectChanges();\n },\n });\n }\n\n /**\n * Selects an activity to be added to the grid.\n *\n * @param activity The activity to be selected.\n */\n public selectActivity(activity: NamedEntity): void {\n this.gridService.execute('add', activity);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n \n \n
    \n \n \n {{ 'shared.noOptions' | translate }}\n
    \n @for (activity of activities; track activity.id) {\n \n }\n
    \n \n \n}\n","import {\n Component,\n OnInit,\n Input,\n OnDestroy,\n ViewChild,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n signal,\n effect,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { UserActivityToolbarComponent } from './user-activity-toolbar/user-activity-toolbar.component';\nimport { Observable, Subscription, forkJoin } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { filter } from 'rxjs/operators';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridComponent } from 'src/app/shared-features/grid/grid.component';\n\n@Component({\n selector: 'wp-user-timesheets',\n templateUrl: './user-timesheets.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserTimesheetsComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n @ViewChild('grid') grid: GridComponent;\n\n public isSaving = signal(false);\n public isLoading = signal(false);\n\n public activitiesAreEditable = this.app.checkEntityPermission(\n 'UserActivity',\n PermissionType.Modify,\n );\n public activitiesAreVisible = this.app.checkEntityPermission(\n 'UserActivity',\n PermissionType.Read,\n );\n public readonly = !this.app.checkEntityPermission(\n 'User',\n PermissionType.Modify,\n );\n\n public form: UntypedFormGroup = this.fb.group({\n timeSheetTemplate: [null, Validators.required],\n restrictActivities: [false],\n activities: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: UserActivityToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => this.activitiesAreEditable,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n (this.form.controls.activities).removeAt(index);\n this.form.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'add',\n handlerFn: (activity: NamedEntity) => {\n const group = this.fb.group({\n activityName: [activity.name, Validators.required],\n activityId: [activity.id, Validators.required],\n id: [Guid.generate()],\n });\n (this.form.controls.activities).push(group);\n\n group.markAsDirty();\n },\n },\n ],\n view: {\n name: 'userActivities',\n columns: [\n {\n name: 'activityName',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n private reloadListener: Subscription;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private notification: NotificationService,\n private gridService: GridService,\n private blockUI: BlockUIService,\n private data: DataService,\n private app: AppService,\n private actionService: ActionPanelService,\n private fb: UntypedFormBuilder,\n private message: MessageService,\n ) {\n effect(() => {\n if (this.isSaving()) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n });\n }\n\n public ngOnInit(): void {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.reloadListener = this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n this.loadProperties();\n this.loadUserActivities();\n }\n\n public ngOnDestroy(): void {\n this.reloadListener.unsubscribe();\n }\n\n /** Saves the user timesheet data. */\n public save(): void {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.isSaving.set(true);\n\n const observables: Observable[] = [];\n if (!this.readonly) {\n observables.push(\n this.data.collection('Users').entity(this.entityId).patch({\n restrictActivities: this.form.value.restrictActivities,\n timeSheetTemplateId: this.form.value.timeSheetTemplate.id,\n }),\n );\n }\n if (this.activitiesAreEditable) {\n const data = { activities: [] };\n this.form.value.activities.forEach((userActivity: any) => {\n data.activities.push({\n id: userActivity.id,\n userId: this.entityId,\n activityId: userActivity.activityId,\n });\n });\n\n observables.push(\n this.data\n .collection('Users')\n .entity(this.entityId)\n .action('WP.UpdateActivities')\n .execute(data),\n );\n }\n\n forkJoin(observables).subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.isSaving.set(false);\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n /** Loads user properties and updates the form accordingly. */\n private loadProperties(): void {\n this.isLoading.set(true);\n this.actionService.action('save').isShown = false;\n\n const params = {\n select: ['id', 'restrictActivities'],\n expand: ['timeSheetTemplate'],\n };\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .get(params)\n .subscribe({\n next: (data: any) => {\n this.form.patchValue(data);\n this.readonly ? this.form.disable() : this.form.enable();\n\n this.form.markAsPristine();\n this.isLoading.set(false);\n\n this.actionService.action('save').isShown =\n !this.readonly || this.activitiesAreEditable;\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Loads user activities and updates the form accordingly. */\n private loadUserActivities(): void {\n (this.form.controls.activities).clear();\n this.gridService.setLoadingState(true);\n\n const query = {\n select: ['id'],\n expand: [{ activity: { select: ['id', 'name'] } }],\n orderBy: ['activity/name'],\n };\n\n this.data\n .collection('Users')\n .entity(this.entityId)\n .collection('Activities')\n .query(query)\n .subscribe({\n next: (userActivities: any[]) => {\n this.gridService.setLoadingState(false);\n\n userActivities.forEach((userActivity: any) => {\n const group = this.fb.group({\n activityName: [userActivity.activity.name],\n activityId: [userActivity.activity.id],\n id: [userActivity.id],\n });\n\n (this.form.controls.activities).push(group);\n });\n },\n error: (error: any) => {\n this.gridService.setLoadingState(false);\n this.notification.error(error.message);\n },\n });\n }\n\n /** Reloads data. */\n private reload(): void {\n this.form.enable();\n if (!this.form.dirty) {\n this.loadProperties();\n this.loadUserActivities();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => {\n this.loadProperties();\n this.loadUserActivities();\n },\n () => null,\n );\n }\n }\n}\n","\n
    \n \n
    \n
    \n \n \n\n {{\n 'settings.users.card.timesheets.props.template.help' | translate\n }}\n
    \n
    \n
    \n \n\n
    \n \n \n
    \n\n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n
    \n\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { EntityType } from '../../../../../shared-features/resource-roles/enums/entity-type.enum';\nimport { Dictionary } from '../../../../../shared/models/dictionary';\nimport { Observable, Subscription } from 'rxjs';\nimport { AppService } from '../../../../../core/app.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NotificationService } from '../../../../../core/notification.service';\nimport { DataService } from '../../../../../core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { sortBy } from 'lodash';\nimport { Exception } from '../../../../../shared/models/exception';\nimport { User } from '../../../../../shared/models/entities/settings/user.model';\nimport { switchMap } from 'rxjs/operators';\nimport { Group } from '../../../../../shared/models/entities/settings/group.model';\nimport { Constants } from '../../../../../shared/globals/constants';\n\n@Component({\n selector: 'tmt-adding-resource-group-modal',\n templateUrl: './adding-resource-group-modal.component.html',\n styleUrls: ['./adding-resource-group-modal.component.scss'],\n standalone: false,\n})\nexport class AddingResourceGroupModalComponent implements OnInit {\n public loadLimit = 250;\n /** Entity for which groups are selected. */\n @Input() entityType: EntityType;\n /** Id of the entity for which the groups are selected. */\n @Input() entityId: string;\n\n /** IDs of previously added roles. */\n @Input() alreadyAddedIds: string[];\n @ViewChild('leftTbl') leftTbl: ElementRef;\n\n public isSaving: boolean;\n public isLoading: boolean;\n public loadedPartly: boolean;\n\n public leftTableStyles: Dictionary = {};\n\n public availableGroups: Group[] = [];\n public selectedGroups: Group[] = [];\n\n public filterForm = this.fb.group({\n name: [''],\n });\n private loadingSubscription: Subscription;\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit() {\n this.load();\n this.filterForm.valueChanges.subscribe(() => this.load());\n }\n\n /** Method that close modal on cancel button. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /** Method that resize left table. */\n public resizeLeftTbl() {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n /** Method that select group. */\n public selectGroup(group: Group, index: number) {\n this.selectedGroups.push(group);\n this.selectedGroups = sortBy(this.selectedGroups, ['name']);\n this.availableGroups.splice(index, 1);\n }\n\n /** Method that remove group. */\n public removeGroup(group: Group, index: number) {\n this.availableGroups.push(group);\n this.selectedGroups.splice(index, 1);\n this.availableGroups = sortBy(this.availableGroups, ['name']);\n }\n\n /** Method that close modal on ok button. */\n public ok() {\n this.activeModal.close(this.selectedGroups);\n }\n\n private load() {\n this.availableGroups = [];\n this.isLoading = true;\n this.loadedPartly = false;\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.loadGroups().subscribe({\n next: (data) => {\n data = data.filter(\n (group) =>\n this.selectedGroups.find((g) => g.id === group.id) == null &&\n this.alreadyAddedIds.find((id) => id === group.id) == null,\n );\n this.availableGroups = data;\n this.isLoading = false;\n this.loadedPartly = this.availableGroups.length === this.loadLimit;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n private loadGroups(): Observable {\n const groupsQuery = {\n orderBy: ['name'],\n filter: [{ isActive: true }],\n };\n const defaultFilter = this.filterForm.value;\n if (defaultFilter.name) {\n const name = (defaultFilter.name as string)\n .substring(0, Constants.filterInputLengthLimit)\n .toLowerCase();\n groupsQuery.filter.push(\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: name } },\n );\n }\n return this.data\n .collection('Users')\n .entity(this.entityId)\n .get()\n .pipe(\n switchMap(() =>\n this.data.collection('Groups').query(groupsQuery),\n ),\n );\n }\n}\n","
    \n
    \n

    \n {{ 'shared.resourceGroups.addingGroupsModal.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n\n \n \n \n \n \n {{ 'shared.resourceGroups.columns.description' | translate }}\n \n \n \n
    \n {{ 'shared.resourceGroups.columns.group' | translate }}\n
    \n\n
    \n \n \n \n \n {{ 'shared.resourceGroups.columns.group' | translate }}\n \n \n {{ 'shared.resourceGroups.columns.description' | translate }}\n \n \n \n \n \n \n {{ group.name }}\n \n \n {{ group.description }}\n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n \n \n \n \n \n
    \n\n
    \n \n
    \n {{ group.name }}\n
    \n\n \n
    \n
    \n {{ 'shared.resourceGroups.addingGroupsModal.noDisplayData' | translate }}\n
    \n
    \n \n
    \n 0\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"ok()\"\n wpButtonSpinner\n [isBusy]=\"isSaving\"\n >\n {{ 'shared.actions.add' | translate }}\n \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n throwError,\n} from 'rxjs';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { catchError } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AddingResourceGroupModalComponent } from 'src/app/settings-app/users/card/users-groups/adding-resource-group-modal/adding-resource-group-modal.component';\nimport { EntityType } from 'src/app/shared-features/resource-roles/enums/entity-type.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ResourceGroupAssignment } from 'src/app/shared/models/entities/settings/resource-group-assignment.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Group } from 'src/app/shared/models/entities/settings/group.model';\n\n@Injectable()\nexport class ResourceGroupsService {\n public resourceId: string;\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private isLoadingSubject = new BehaviorSubject(true);\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n public groups = this.fb.array([]);\n private loadingSubscription: Subscription;\n\n constructor(\n private data: DataService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private modal: NgbModal,\n ) {}\n\n /** Method that reload data. */\n public reload() {\n this.load();\n }\n\n /** Method that open modal, where we can select groups for user. */\n public addGroups(resourceType: EntityType) {\n const modalRef = this.modal.open(AddingResourceGroupModalComponent, {\n size: 'lg',\n });\n const instance =\n modalRef.componentInstance as AddingResourceGroupModalComponent;\n instance.entityType = resourceType;\n instance.entityId = this.resourceId;\n instance.alreadyAddedIds = (\n this.groups.value as ResourceGroupAssignment[]\n ).map((g) => g.groupId);\n\n modalRef.result.then(\n (newGroups: Group[]) => {\n newGroups.forEach((newGroup) => {\n const group = this.getGroup();\n group.controls.name.setValue(newGroup.name);\n group.controls.description.setValue(newGroup.description);\n group.controls.groupId.setValue(newGroup.id);\n this.groups.push(group);\n });\n\n this.changesSubject.next();\n },\n () => null,\n );\n }\n\n /** Method that delete group by index. */\n public delete(index: number) {\n this.groups.removeAt(index);\n this.changesSubject.next();\n }\n /** Method that loads groups for current user and renders it. */\n public load() {\n this.groups.clear();\n this.isLoadingSubject.next(true);\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n this.loadingSubscription = this.data\n .collection('Users')\n .entity(this.resourceId)\n .collection('UserGroups')\n .query({\n expand: {\n group: {},\n },\n orderBy: ['group/name'],\n })\n .subscribe({\n next: (groups: { group: Group }[]) => {\n groups.forEach(({ group }) => {\n const newGroup = this.getGroup();\n newGroup.controls.name.setValue(group.name);\n newGroup.controls.description.setValue(group.description);\n newGroup.controls.groupId.setValue(group.id);\n this.groups.push(newGroup);\n });\n this.isLoadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoadingSubject.next(false);\n },\n });\n }\n\n /** Method that saves resource groups and return observable with response. */\n public save(): Observable {\n this.groups.markAllAsTouched();\n\n if (this.groups.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return throwError(() => new Exception());\n }\n const data = {\n userGroups: (this.groups.value as ResourceGroupAssignment[]).map(\n (group) => ({\n groupId: group.groupId,\n userId: this.resourceId,\n }),\n ),\n };\n return this.data\n .collection('Users')\n .entity(this.resourceId)\n .action('UpdateUserGroups')\n .execute(data)\n .pipe(\n catchError((error: Exception) => {\n this.notification.error(error.message);\n return throwError(() => error);\n }),\n );\n }\n\n private getGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n description: null,\n name: null,\n groupId: null,\n });\n\n return group;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EntityType } from '../../../../../shared-features/resource-roles/enums/entity-type.enum';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AppService } from '../../../../../core/app.service';\nimport { ResourceGroupsService } from './core/resource-groups.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-resource-groups',\n templateUrl: './resource-groups.component.html',\n styleUrls: ['./resource-groups.component.scss'],\n standalone: false,\n})\nexport class ResourceGroupsComponent implements OnInit {\n @Input() resourceId: string;\n @Input() resourceType: EntityType;\n @Input() readonly: string;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.userGroupsService.delete(index);\n },\n },\n ],\n view: {\n name: 'resourceRoles',\n columns: [\n {\n name: 'name',\n header: 'shared.resourceGroups.columns.name',\n hint: 'shared.resourceGroups.columns.name',\n type: GridColumnType.String,\n width: '100%',\n },\n {\n name: 'description',\n header: 'shared.resourceGroups.columns.description',\n hint: 'shared.resourceGroups.columns.description',\n type: GridColumnType.String,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n public app: AppService,\n public userGroupsService: ResourceGroupsService,\n ) {}\n\n ngOnInit() {\n this.userGroupsService.resourceId = this.resourceId;\n this.userGroupsService.load();\n }\n\n /** Method that trigger open modal where we can select new groups. */\n public addGroup() {\n this.userGroupsService.addGroups(this.resourceType);\n }\n}\n","
    \n
    \n \n  {{\n 'shared.resourceGroups.actions.addGroups' | translate\n }}\n \n
    \n \n\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ResourceGroupsService } from './resource-groups/core/resource-groups.service';\nimport { Subject } from 'rxjs';\nimport { UntypedFormControl } from '@angular/forms';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-users-groups',\n templateUrl: './users-groups.component.html',\n styleUrls: ['./users-groups.component.scss'],\n providers: [GridService, ResourceGroupsService],\n standalone: false,\n})\nexport class UsersGroupsComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n public isLoading: boolean;\n\n public readonly = !this.app.checkPermission(\n 'UserGroup',\n 'All',\n PermissionType.Modify,\n );\n\n public form = new UntypedFormControl();\n\n public actions: MenuAction[] = [\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n isDropDown: false,\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.save(),\n },\n ];\n private destroyed$ = new Subject();\n private _isSaving: boolean;\n constructor(\n private notification: NotificationService,\n private message: MessageService,\n private blockUI: BlockUIService,\n public resourceGroupsService: ResourceGroupsService,\n private app: AppService,\n private actionService: ActionPanelService,\n ) {}\n\n ngOnInit() {\n this.actionService.run$\n .pipe(\n filter((x) => x.name === 'save'),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.save();\n });\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.resourceGroupsService.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.form.markAsDirty());\n\n this.resourceGroupsService.isLoading$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((isLoading) => {\n this.actionService.action('save').isShown =\n !isLoading && !this.readonly;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Return value that signals is data saving now. */\n public get isSaving() {\n return this._isSaving;\n }\n\n /** Set value that signals is data saving now. */\n public set isSaving(value: boolean) {\n this._isSaving = value;\n\n if (value) {\n this.blockUI.start();\n this.actionService.action('save').start();\n } else {\n this.actionService.action('save').stop();\n this.blockUI.stop();\n }\n }\n\n /** Save entity method. */\n public save() {\n this.isSaving = true;\n\n this.resourceGroupsService.save().subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.form.markAsPristine();\n this.isSaving = false;\n },\n error: () => {\n this.isSaving = false;\n },\n });\n }\n private reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private load() {\n this.resourceGroupsService.load();\n }\n}\n","
    \n \n\n \n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component, OnInit } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { RoleName } from 'src/app/shared/models/enums/role-name.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { concat, Observable, of } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { takeLast } from 'rxjs/operators';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\nimport { AuthProviderType } from 'src/app/shared/models/enums/auth-provider-type.enum';\n\n@Component({\n selector: 'wp-user-creation',\n templateUrl: './user-creation.component.html',\n standalone: false,\n})\nexport class UserCreationComponent implements OnInit {\n isSaving = false;\n userForm: UntypedFormGroup = this.fb.group({\n name: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n invitation: true,\n permissionSet: null,\n authProvider: [null, Validators.required],\n });\n\n public permissionSetsQuery = { filter: [{ roleName: RoleName.User }] };\n private _isInvitationInputVisible = false;\n\n public authProviders$ = this.data\n .collection('Users')\n .function('GetAuthProviders')\n .query();\n\n get isInvitationInputVisible() {\n return this._isInvitationInputVisible;\n }\n\n constructor(\n private message: MessageService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n\n private state: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {\n this.customFieldService.enrichFormGroup(this.userForm, 'User', true);\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.userForm,\n 'User',\n );\n }\n\n ngOnInit() {\n this.userForm.controls['permissionSet'].valueChanges.subscribe(() => {\n this.updateInvitationInputVisibility();\n });\n this.userForm.controls['authProvider'].valueChanges.subscribe(() => {\n this.updateInvitationInputVisibility();\n });\n\n this.data\n .collection('Users')\n .function('GetAuthProviders')\n .query(null, {\n filter: { type: AuthProviderType.Local },\n })\n .subscribe((providers) => {\n this.userForm.controls.authProvider.setValue(providers[0]);\n });\n }\n\n ok() {\n this.userForm.markAllAsTouched();\n\n if (this.userForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data: any = {\n name: this.userForm.value.name,\n email: this.userForm.value.email,\n authProviderId: this.userForm.value.authProvider?.id ?? null,\n };\n\n this.customFieldService.assignValues(data, this.userForm.value, 'User');\n\n this.data\n .collection('Users')\n .insert(data)\n .subscribe({\n next: (response) => {\n const authProvider = this.userForm.value.authProvider as AuthProvider;\n const observables: Observable[] = [of(null)];\n\n if (this.userForm.value.permissionSet) {\n const permissionSetData = {\n permissionSets: [\n {\n userId: response.id,\n permissionSetId: this.userForm.value.permissionSet.id,\n id: Guid.generate(),\n },\n ],\n };\n observables.push(\n this.data\n .collection('Users')\n .entity(response.id)\n .action('UpdatePermissionSets')\n .execute(permissionSetData),\n );\n }\n\n if (\n this.userForm.value.permissionSet &&\n this.userForm.value.invitation &&\n authProvider.type === AuthProviderType.Local\n ) {\n observables.push(\n this.data\n .collection('Users')\n .entity(response.id)\n .action('RestorePassword')\n .execute(),\n );\n }\n\n concat(...observables)\n .pipe(takeLast(1))\n .subscribe({\n next: () => {\n this.afterCreation(response.id);\n },\n error: (error: Exception) => this.afterError(error),\n });\n },\n error: (error: Exception) => this.afterError(error),\n });\n }\n\n afterError(error: Exception) {\n this.isSaving = false;\n this.message.errorDetailed(error);\n }\n\n afterCreation(userId: string) {\n this.notification.successLocal('settings.users.creation.messages.created');\n this.state.go('settings.user', { entityId: userId });\n this.isSaving = false;\n this.activeModal.close();\n }\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n private updateInvitationInputVisibility() {\n const authProvider = this.userForm.controls['authProvider']\n .value as AuthProvider;\n\n this._isInvitationInputVisible =\n this.userForm.controls['permissionSet'].value &&\n authProvider.type === AuthProviderType.Local;\n }\n}\n","
    \n
    \n

    \n {{ 'settings.users.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n \n \n \n
    \n \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { FormGroup, UntypedFormBuilder } from '@angular/forms';\nimport { sortBy } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport {\n LicenseInfo,\n LicenseProductInfo,\n} from 'src/app/shared/models/entities/settings/license-info.model';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\n\n@Component({\n selector: 'wp-user-filter',\n templateUrl: './user-filter.component.html',\n standalone: false,\n})\nexport class UserFilterComponent implements OnInit, OnDestroy, FilterDetails {\n @Input() values: any;\n\n public products: LicenseProductInfo[] = [];\n private destroyed$ = new Subject();\n\n detailsForm = this.fb.group({\n supervisor: [null],\n department: [null],\n resourcePool: [null],\n level: [null],\n location: [null],\n products: this.fb.group({}),\n });\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public Feature = Feature;\n\n constructor(\n private fb: UntypedFormBuilder,\n public service: FilterService,\n public data: DataService,\n public app: AppService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n\n this.data.model\n .function('GetLicenseInfo')\n .get()\n .subscribe((licenseInfo) => {\n licenseInfo.products.forEach((product) =>\n (this.detailsForm.controls.products as FormGroup).addControl(\n product.product.toString(),\n this.fb.control(\n this.service.values.products\n ? this.service.values.products[product.product]\n : false,\n ),\n { emitEvent: false },\n ),\n );\n\n this.products = sortBy(\n licenseInfo.products.filter((x) => x.limit > 0 || x.used > 0),\n (p) => p.displayName,\n );\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n\n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { UserFilterComponent } from './user-filter.component';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { LicenseProduct } from 'src/app/shared/models/session/client-session.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserFilterService extends FilterService {\n public override component: Type = UserFilterComponent;\n public override hasDetails = true;\n public hasActiveSelector = true;\n public override placeholder = 'settings.users.list.filter.placeholder';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n products: () => (this.getSelectedProducts().length ? 1 : 0),\n };\n\n protected override getDefaultValues = (): any => ({\n text: '',\n view: this.views[0],\n department: null,\n level: null,\n location: null,\n resourcePool: null,\n supervisor: null,\n products: [],\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(code)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(email)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(position)': { contains: text } },\n ],\n });\n }\n if (this.values.resourcePool) {\n result.push({\n resourcePoolId: {\n eq: { type: 'guid', value: this.values.resourcePool.id },\n },\n });\n }\n\n if (this.values.level) {\n result.push({\n levelId: {\n eq: { type: 'guid', value: this.values.level.id },\n },\n });\n }\n\n if (this.values.location) {\n result.push({\n locationId: {\n type: 'guid',\n value: this.values.location.id,\n },\n });\n }\n\n if (this.values.supervisor) {\n result.push({\n supervisorId: {\n type: 'guid',\n value: this.values.supervisor.id,\n },\n });\n }\n\n if (this.values.department) {\n result.push({\n departmentId: {\n type: 'guid',\n value: this.values.department.id,\n },\n });\n }\n\n if (this.values.view && this.values.view.code === 'active') {\n result.push({ isActive: true });\n }\n\n if (this.getSelectedProducts().length) {\n const conditions = this.getSelectedProducts().map((product) => ({\n products: {\n any: { product },\n },\n }));\n\n result.push({ and: conditions });\n }\n\n return result;\n }\n\n private getSelectedProducts(): LicenseProduct[] {\n const products: LicenseProduct[] = [];\n\n if (!this.values.products) {\n return [];\n }\n\n Object.keys(this.values.products).forEach((key) => {\n if (this.values.products[key]) {\n products.push(key as LicenseProduct);\n }\n });\n\n return products;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { UserFilterService } from './user-filter/user-filter.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { UserCreationComponent } from '../creation/user-creation.component';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { UsersEditingComponent } from './users-editing/users-editing.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-user-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: UserFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class UserListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n constructor(\n private filterService: FilterService,\n private listService: EntityListService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private gridService: GridService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.users.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'User',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.user', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n {\n title: 'shared.groupEditing.actions.change.title',\n hint: 'shared.groupEditing.actions.change.hint',\n name: 'edit',\n isDropDown: false,\n isVisible: true,\n isBusy: false,\n handler: this.edit,\n },\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroups$.subscribe(\n (rows: any[]) => {\n this.actions.action('card').isShown = rows?.length === 1;\n\n this.actions.action('edit').isShown =\n rows?.length > 0 &&\n this.app.checkEntityPermission('User', PermissionType.Modify);\n },\n );\n }\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n\n private create = () => {\n this.modalService.open(UserCreationComponent);\n };\n\n private edit = () => {\n const ref = this.modalService.open(UsersEditingComponent);\n const instance = ref.componentInstance as UsersEditingComponent;\n\n if (this.gridService.isAllSelected) {\n instance.filter = this.filterService.getODataFilter();\n } else {\n instance.rows = this.gridService.selectedGroupsValue.map((g) => ({\n id: g.id,\n name: g.name,\n }));\n }\n\n ref.result.then(\n () => this.listService.reload(),\n () => null,\n );\n };\n}\n","import { Component, Input } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { forkJoin, Observable } from 'rxjs';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\n\n@Component({\n selector: 'wp-users-editing',\n templateUrl: './users-editing.component.html',\n standalone: false,\n})\nexport class UsersEditingComponent {\n /** Идентификаторы сущностей (высший приоритет). */\n @Input() rows: NamedEntity[];\n\n /** Запрос для поиска сущностей. */\n @Input() filter: string;\n\n isSaving = false;\n progress = 0;\n\n public authProviders$ = this.data\n .collection('Users')\n .function('GetAuthProviders')\n .query();\n\n form: UntypedFormGroup = this.fb.group({\n supervisor: null,\n department: null,\n scheduleDate: null,\n schedule: null,\n costNormalizationRule: null,\n authProvider: [null],\n resourcePool: null,\n grade: null,\n location: null,\n legalEntity: [null],\n });\n\n visibleControls: string[] = [];\n\n constructor(\n private message: MessageService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n apply() {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const finishFn = (index) => {\n if (index < this.rows.length - 1) {\n handler(index + 1);\n } else {\n this.notification.successLocal('shared.messages.done');\n this.isSaving = false;\n this.activeModal.close();\n }\n };\n\n const handler = (index: number) => {\n this.progress = Math.round((index / this.rows.length) * 100);\n\n const data: any = {};\n\n if (this.visibleControls.includes('supervisor')) {\n data.supervisorId = this.form.value.supervisor?.id ?? null;\n }\n\n if (this.visibleControls.includes('costNormalizationRule')) {\n data.costNormalizationRuleId =\n this.form.value.costNormalizationRule?.id;\n }\n\n if (this.visibleControls.includes('department')) {\n data.departmentId = this.form.value.department?.id;\n }\n\n if (this.visibleControls.includes('authProvider')) {\n data.authProviderId = this.form.value.authProvider?.id ?? null;\n }\n\n if (this.visibleControls.includes('resourcePool')) {\n data.resourcePoolId = this.form.value.resourcePool?.id ?? null;\n }\n\n if (this.visibleControls.includes('legalEntity')) {\n data.legalEntityId = this.form.value.legalEntity?.id ?? null;\n }\n\n if (this.visibleControls.includes('location')) {\n data.locationId = this.form.value.location?.id ?? null;\n }\n\n if (this.visibleControls.includes('grade')) {\n data.gradeId = this.form.value.grade?.id ?? null;\n }\n\n const observables: Observable[] = [];\n\n if (Object.keys(data).length > 0) {\n observables.push(\n this.data.collection('Users').entity(this.rows[index].id).patch(data),\n );\n }\n\n if (this.visibleControls.includes('schedule')) {\n observables.push(\n this.data\n .collection('Users')\n .entity(this.rows[index].id)\n .action('AddSchedule')\n .execute({\n schedule: {\n scheduleId: this.form.value.schedule.id,\n userId: this.rows[index].id,\n effectiveDate: this.form.value.scheduleDate,\n },\n }),\n );\n }\n\n forkJoin(observables).subscribe({\n next: () => {\n finishFn(index);\n },\n error: (error: Exception) => {\n this.message.errorDetailed(error, this.rows[index].name).then(\n () => finishFn(index),\n () => finishFn(index),\n );\n },\n });\n };\n\n if (this.filter) {\n this.data\n .collection('Users')\n .query({ filter: this.filter, select: ['id', 'name'] })\n .subscribe({\n next: (rows) => {\n this.rows = rows;\n handler(0);\n },\n error: (error: Exception) => this.message.errorDetailed(error),\n });\n } else {\n handler(0);\n }\n }\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n addControl(controlName: string) {\n this.visibleControls.push(controlName);\n switch (controlName) {\n case 'authProvider':\n this.form.controls['authProvider'].setValidators(Validators.required);\n break;\n case 'resourcePool':\n this.form.controls['resourcePool'].setValidators(Validators.required);\n break;\n case 'legalEntity':\n this.form.controls['legalEntity'].setValidators(Validators.required);\n break;\n case 'schedule':\n this.form.controls['schedule'].setValidators(Validators.required);\n this.form.controls['scheduleDate'].setValidators(Validators.required);\n break;\n }\n }\n}\n","
    \n
    \n

    \n {{ 'shared.groupEditing.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n
    \n {{ 'shared.noOptions' | translate }}\n
    \n\n \n {{ 'settings.users.list.editing.costNormalizationRule' | translate }}\n \n\n \n {{ 'shared2.props.supervisor' | translate }}\n \n\n \n {{ 'shared2.props.department' | translate }}\n \n\n \n {{ 'settings.users.list.editing.addSchedule' | translate }}\n \n\n \n {{ 'settings.users.card.profile.props.authProvider' | translate }}\n \n \n {{ 'shared2.props.resourcePool' | translate }}\n \n\n \n {{ 'shared2.props.legalEntity' | translate }}\n \n\n \n {{ 'shared2.props.grade' | translate }}\n \n\n \n {{ 'shared2.props.location' | translate }}\n \n
    \n
    \n\n
    \n \n\n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n\n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n
    \n
    \n \n {{ 'shared.actions.apply' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { UserListComponent } from './list/user-list.component';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { USER_LIST } from 'src/app/shared/lists/user.list';\nimport { UserCardComponent } from './card/user-card.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { UserProfileComponent } from './card/user-profile/user-profile.component';\nimport { UserAccessComponent } from './card/user-access/user-access.component';\nimport { UserScheduleComponent } from './card/user-schedule/user-schedule.component';\nimport { UserTimesheetsComponent } from './card/user-timesheets/user-timesheets.component';\nimport { UserCostComponent } from './card/user-cost/user-cost.component';\nimport { UserSubstitutesComponent } from './card/user-substitutes/user-substitutes.component';\nimport { UserFilterComponent } from './list/user-filter/user-filter.component';\nimport { UserCreationComponent } from './creation/user-creation.component';\nimport { UserSettingsComponent } from './card/user-settings/user-settings.component';\nimport { UserScheduleToolbarComponent } from './card/user-schedule/user-schedule-toolbar/user-schedule-toolbar.component';\nimport { UserActivityToolbarComponent } from './card/user-timesheets/user-activity-toolbar/user-activity-toolbar.component';\nimport { UserSubstitutesToolbarComponent } from './card/user-substitutes/user-substitutes-toolbar/user-substitutes-toolbar.component';\nimport { PasswordResetModalComponent } from './card/user-profile/password-reset-modal/password-reset-modal.component';\nimport { UserPersonalScheduleModalComponent } from './card/user-schedule/user-personal-schedule-modal/user-personal-schedule-modal.component';\nimport { UserPersonalScheduleComponent } from './card/user-schedule/user-personal-schedule/user-personal-schedule.component';\nimport { UsersEditingComponent } from './list/users-editing/users-editing.component';\nimport { UserRolesComponent } from './card/user-roles/user-roles.component';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { UserCostRatesComponent } from './card/user-cost/user-cost-rates/user-cost-rates.component';\nimport { UserCostRatesToolbarComponent } from './card/user-cost/user-cost-rates/user-cost-rates-toolbar/user-cost-rates-toolbar.component';\nimport { UsersGroupsComponent } from './card/users-groups/users-groups.component';\nimport { ResourceGroupsComponent } from './card/users-groups/resource-groups/resource-groups.component';\nimport { AddingResourceGroupModalComponent } from './card/users-groups/adding-resource-group-modal/adding-resource-group-modal.component';\nimport { UserNotificationsComponent } from 'src/app/settings-app/users/card/user-notifications/user-notifications.component';\nimport { UserProductsComponent } from 'src/app/settings-app/users/card/user-products/user-products.component';\nimport { UserProductsToolbarComponent } from 'src/app/settings-app/users/card/user-products/user-products-toolbar/user-products-toolbar.component';\nimport { ProfileResourceControlsComponent } from 'src/app/shared/components/features/profile-resource-controls/profile-resource-controls.component';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { UserSettingsModalModule } from 'src/app/shared/modules/user-settings-modal/user-settings-modal.module';\n\n@NgModule({\n declarations: [\n UserCardComponent,\n UserProfileComponent,\n UserAccessComponent,\n UserRolesComponent,\n UserProductsComponent,\n UserProductsToolbarComponent,\n UserFilterComponent,\n UserCreationComponent,\n UserCostComponent,\n UserCostRatesComponent,\n UserCostRatesToolbarComponent,\n UserListComponent,\n UserScheduleComponent,\n UserTimesheetsComponent,\n UserSettingsComponent,\n UserNotificationsComponent,\n UserSubstitutesComponent,\n UserScheduleToolbarComponent,\n UserActivityToolbarComponent,\n UserSubstitutesToolbarComponent,\n PasswordResetModalComponent,\n UserPersonalScheduleModalComponent,\n UserPersonalScheduleComponent,\n UsersEditingComponent,\n ResourceGroupsComponent,\n AddingResourceGroupModalComponent,\n UsersGroupsComponent,\n ],\n imports: [\n ProfileResourceControlsComponent,\n CommonModule,\n SharedModule,\n ResourceRolesModule,\n EntityListComponent,\n GridModule,\n UserSettingsModalModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.users',\n url: '/users',\n component: UserListComponent,\n params: {\n navigation: 'settings.users',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: USER_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'settings.user',\n } as MassOperationParameters,\n },\n ],\n },\n\n {\n name: 'settings.user',\n params: {\n navigation: 'settings.users',\n },\n url: '/users/{entityId:guid}',\n component: UserCardComponent,\n redirectTo: 'settings.user.profile',\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'settings.user.profile',\n url: '/profile',\n component: UserProfileComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.licenses',\n url: '/licenses',\n component: UserProductsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.access',\n url: '/access',\n component: UserAccessComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.roles',\n url: '/roles',\n component: UserRolesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.schedule',\n url: '/schedule',\n component: UserScheduleComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.timesheets',\n url: '/timesheets',\n component: UserTimesheetsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.settings',\n url: '/settings',\n component: UserSettingsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.notifications',\n url: '/notifications',\n component: UserNotificationsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.substitutes',\n url: '/substitutes',\n component: UserSubstitutesComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.cost',\n url: '/cost',\n component: UserCostComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n {\n name: 'settings.user.groups',\n url: '/groups',\n component: UsersGroupsComponent,\n params: {\n keepMainActions: true,\n routeMode: null,\n },\n },\n ],\n }),\n ],\n})\nexport class UsersModule {}\n","export enum LimitationType {\n ByDays = 'ByDays',\n ForEntireTimesheet = 'ForEntireTimesheet',\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'wp-rule-empty-lines',\n templateUrl: './rule-empty-lines.component.html',\n standalone: false,\n})\nexport class RuleEmptyLinesComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n public form = this.fb.group({});\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngOnInit() {\n this.form.patchValue(JSON.parse(this.data));\n\n this.form.valueChanges.subscribe(() => {\n const data = JSON.stringify(this.form.value);\n this.changes.emit(data);\n });\n }\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'wp-rule-lines-count',\n templateUrl: './rule-lines-count.component.html',\n standalone: false,\n})\nexport class RuleLinesCountComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public form = this.fb.group({\n MinimumCount: [0, [Validators.required, Validators.min(0)]],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngOnInit() {\n this.form.patchValue(JSON.parse(this.data));\n\n if (this.readonly) {\n this.form.disable();\n }\n\n this.form.valueChanges.subscribe(() => {\n const data = JSON.stringify(this.form.value);\n this.changes.emit(data);\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.linesCountHelp' | translate\n }}\n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'wp-rule-project-planned-hours',\n templateUrl: './rule-project-planned-hours.component.html',\n standalone: false,\n})\nexport class RuleProjectPlannedHoursComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public form = this.fb.group({\n type: null,\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngOnInit() {\n const rule = JSON.parse(this.data);\n let type = '';\n if (rule.CheckTaskPlan) {\n type = 'CheckTaskPlan';\n }\n\n if (rule.CheckProjectPlan) {\n type = 'CheckProjectPlan';\n }\n\n this.form.controls['type'].patchValue(type);\n if (this.readonly) {\n this.form.disable();\n }\n\n this.form.valueChanges.subscribe(() => {\n const data = {\n CheckProjectPlan: this.form.value.type === 'CheckProjectPlan',\n CheckTaskPlan: this.form.value.type === 'CheckTaskPlan',\n };\n\n this.changes.emit(JSON.stringify(data));\n });\n }\n}\n","\n
    \n \n\n
    \n
    \n \n \n
    \n
    \n
    \n","import {\n Component,\n OnInit,\n Output,\n EventEmitter,\n Input,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport _ from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\nimport { MetaEntityBaseProperty } from 'src/app/shared/models/entities/settings/metamodel.model';\n\n@Component({\n selector: 'wp-rule-required-fields',\n templateUrl: './rule-required-fields.component.html',\n standalone: false,\n})\nexport class RuleRequiredFieldsComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public lineCustomFields: MetaEntityBaseProperty[];\n public entryCustomFields: MetaEntityBaseProperty[];\n public form: UntypedFormGroup = this.fb.group({\n BillCodeRequired: false,\n ActivityRequired: false,\n RoleRequired: false,\n CommentRequired: false,\n CostCenterRequired: false,\n EntryFields: this.fb.group({}),\n LineFields: this.fb.group({}),\n TariffRequired: false,\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n app: AppService,\n ) {\n this.entryCustomFields = app.getCustomFields('TimeAllocation');\n this.lineCustomFields = app.getCustomFields('TimeSheetLine');\n\n this.entryCustomFields.forEach((f) => {\n (this.form.controls['EntryFields'] as UntypedFormGroup).addControl(\n f.name,\n this.fb.control(false),\n );\n });\n\n this.lineCustomFields.forEach((f) => {\n (this.form.controls['LineFields'] as UntypedFormGroup).addControl(\n f.name,\n this.fb.control(false),\n );\n });\n }\n\n public ngOnInit(): void {\n const obj = JSON.parse(this.data);\n this.form.patchValue(obj);\n\n if (obj.TimeAllocationRequired) {\n (obj.TimeAllocationRequired as string[]).forEach((f) => {\n (this.form.controls['EntryFields'] as UntypedFormGroup).controls[\n _.camelCase(f)\n ].setValue(true);\n });\n }\n\n if (obj.TimeSheetLineRequired) {\n (obj.TimeSheetLineRequired as string[]).forEach((f) => {\n (this.form.controls['LineFields'] as UntypedFormGroup).controls[\n _.camelCase(f)\n ].setValue(true);\n });\n }\n\n if (this.readonly) {\n this.form.disable();\n }\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const formValue = this.form.value;\n const data: any = {\n BillCodeRequired: formValue.BillCodeRequired,\n ActivityRequired: formValue.ActivityRequired,\n RoleRequired: formValue.RoleRequired,\n CostCenterRequired: formValue.CostCenterRequired,\n CommentRequired: formValue.CommentRequired,\n TimeAllocationRequired: [],\n TimeSheetLineRequired: [],\n TariffRequired: formValue.TariffRequired,\n };\n\n this.entryCustomFields.forEach((f) => {\n if (formValue.EntryFields[f.name]) {\n data.TimeAllocationRequired.push(_.upperFirst(f.name));\n }\n });\n\n this.lineCustomFields.forEach((f) => {\n if (formValue.LineFields[f.name]) {\n data.TimeSheetLineRequired.push(_.upperFirst(f.name));\n }\n });\n\n this.changes.emit(JSON.stringify(data));\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.requiredFieldsHelp' | translate\n }}\n
    \n
    \n\n
    \n
    \n
    \n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n @for (field of lineCustomFields; track field) {\n
    \n \n
    \n }\n
    \n
    \n\n
    \n
    \n \n\n
    \n \n
    \n\n @for (field of entryCustomFields; track field) {\n
    \n \n
    \n }\n
    \n
    \n
    \n
    \n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { LimitationType } from 'src/app/settings-app/validation-rules/card/model/limitation-type.enum';\n\n@Component({\n selector: 'wp-rule-schedule-work-day-duration',\n templateUrl: './rule-schedule-work-day-duration.component.html',\n standalone: false,\n})\nexport class RuleScheduleWorkDayDurationComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public limitationType = LimitationType;\n\n public form = this.fb.group({\n LagUp: [0, [Validators.required, Validators.max(24), Validators.min(0)]],\n LagDown: [0, [Validators.required, Validators.max(24), Validators.min(0)]],\n LimitationType: null,\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n public ngOnInit(): void {\n this.form.patchValue(JSON.parse(this.data));\n if (this.readonly) {\n this.form.disable();\n }\n this.form.valueChanges.subscribe(() => {\n const data = JSON.stringify(this.form.value);\n this.changes.emit(data);\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.scheduleWorkDayDurationHelp' | translate\n }}\n
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n \n\n
    \n \n\n \n \n
    \n\n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { LimitationType } from 'src/app/settings-app/validation-rules/card/model/limitation-type.enum';\nimport { WorkDayData } from 'src/app/settings-app/validation-rules/card/rule-schedule-work-day-percentage/model/work-day-data-interface.model';\n\n@Component({\n selector: 'wp-rule-schedule-work-day-percentage',\n templateUrl: './rule-schedule-work-day-percentage.component.html',\n standalone: false,\n})\nexport class RuleScheduleWorkDayPercentageComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public limitationType = LimitationType;\n public form = this.fb.group({\n MinPercentage: [\n 0,\n [Validators.required, Validators.max(1000), Validators.min(0)],\n ],\n MaxPercentage: [\n 0,\n [Validators.required, Validators.max(1000), Validators.min(0)],\n ],\n LimitationType: null,\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n public ngOnInit(): void {\n const parsedData: WorkDayData = JSON.parse(this.data);\n parsedData.MinPercentage = parsedData.MinPercentage / 100;\n parsedData.MaxPercentage = parsedData.MaxPercentage / 100;\n this.form.patchValue(parsedData);\n if (this.readonly) {\n this.form.disable();\n }\n this.form.valueChanges.subscribe(() => {\n const clonedData = cloneDeep(this.form.value);\n clonedData.MinPercentage = Math.floor(clonedData.MinPercentage * 100);\n clonedData.MaxPercentage = Math.floor(clonedData.MaxPercentage * 100);\n const data = JSON.stringify(clonedData);\n this.changes.emit(data);\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.scheduleWorkDayPercentageHelp' | translate\n }}\n
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n \n\n
    \n \n\n \n \n
    \n\n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'wp-rule-submit-date',\n templateUrl: './rule-submit-date.component.html',\n standalone: false,\n})\nexport class RuleSubmitDateComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public form = this.fb.group({\n DaysBeforeEnd: [\n 0,\n [Validators.required, Validators.max(31), Validators.min(0)],\n ],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngOnInit() {\n this.form.patchValue(JSON.parse(this.data));\n if (this.readonly) {\n this.form.disable();\n }\n this.form.valueChanges.subscribe(() => {\n const data = JSON.stringify(this.form.value);\n this.changes.emit(data);\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.submitDateHelp' | translate\n }}\n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'wp-rule-work-day-duration',\n templateUrl: './rule-work-day-duration.component.html',\n standalone: false,\n})\nexport class RuleWorkDayDurationComponent implements OnInit {\n @Output() changes = new EventEmitter();\n @Input() data: string;\n @Input() readonly: boolean;\n\n public form = this.fb.group({\n MaxDuration: [\n 0,\n [Validators.required, Validators.min(0), Validators.max(24)],\n ],\n });\n\n constructor(private fb: UntypedFormBuilder) {}\n\n ngOnInit() {\n this.form.patchValue(JSON.parse(this.data));\n if (this.readonly) {\n this.form.disable();\n }\n this.form.valueChanges.subscribe(() => {\n const data = JSON.stringify(this.form.value);\n this.changes.emit(data);\n });\n }\n}\n","\n {{\n 'settings.validationRules.card.props.workDayDurationHelp' | translate\n }}\n
    \n
    \n
    \n \n \n \n
    \n
    \n","import { Component, OnInit, Input, DestroyRef, inject } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { DataService } from 'src/app/core/data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ValidationRule } from 'src/app/shared/models/entities/settings/validation-rule.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'wp-validation-rule-card',\n templateUrl: './validation-rule-card.component.html',\n standalone: false,\n})\nexport class ValidationRuleCardComponent implements OnInit {\n @Input() private entityId: string;\n\n public readonly: boolean;\n public state: CardState;\n public isSaving = false;\n public dataJson: string;\n\n public form = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n customMessage: ['', [Validators.maxLength(Constants.formTextMaxLength)]],\n isActive: false,\n validationRuleType: null,\n validationRuleLevel: null,\n data: '',\n });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private fb: UntypedFormBuilder,\n private data: DataService,\n private actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private navigationService: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.load();\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves Data. */\n public save = (): void => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n this.actionService.action('save').start();\n\n const rule = this.form.value;\n\n const data: any = {\n name: rule.name,\n description: rule.description,\n customMessage: rule.customMessage,\n isActive: rule.isActive,\n data: rule.data,\n validationRuleLevel: rule.validationRuleLevel,\n };\n\n this.data\n .collection('ValidationRules')\n .entity(this.entityId)\n .patch(data)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.form.markAsPristine();\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.successLocal(\n 'settings.validationRules.card.messages.saved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.actionService.action('save').stop();\n this.notification.error(error.message);\n },\n });\n };\n\n public onChanges(data: string): void {\n this.form.controls['data'].setValue(data);\n this.form.markAsDirty();\n }\n\n private load = (): void => {\n this.state = CardState.Loading;\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.data\n .collection('ValidationRules')\n .entity(this.entityId)\n .get({\n expand: { validationRuleType: { select: ['id', 'name', 'code'] } },\n })\n .subscribe({\n next: (validationRule: ValidationRule) => {\n this.form.patchValue(validationRule);\n\n this.readonly = !validationRule.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n if (this.readonly) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n this.state = CardState.Ready;\n this.dataJson = validationRule.data;\n\n this.navigationService.addRouteSegment({\n id: validationRule.id,\n title: validationRule.name,\n });\n },\n error: (error: Exception) => {\n this.state = CardState.Error;\n this.notification.error(error.message);\n },\n });\n };\n\n private reload(): void {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message\n .confirmLocal('shared.leavePageMessage')\n .then(this.load, () => null);\n }\n }\n}\n","\n\n\n\n\n
    \n
    \n \n

    {{ form.value.validationRuleType?.name }}

    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n \n \n \n
    \n \n\n
    \n \n \n
    \n\n
    \n\n @switch (form.value.validationRuleType?.code) {\n @case ('WorkDayDuration') {\n \n \n }\n @case ('ScheduleWorkDayPercentage') {\n \n }\n @case ('ScheduleWorkDayDuration') {\n \n \n }\n @case ('LinesCount') {\n \n }\n @case ('SubmitDate') {\n \n }\n @case ('RequiredFields') {\n \n }\n @case ('ProjectPlannedHours') {\n \n }\n @case ('EmptyLines') {\n \n }\n }\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n\n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n Validators,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Диалог создания правила валидации. */\n@Component({\n selector: 'wp-validation-rule-creation',\n templateUrl: './validation-rule-creation.component.html',\n standalone: false,\n})\nexport class ValidationRuleCreationComponent {\n isSaving = false;\n form: UntypedFormGroup = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n validationRuleType: [null, Validators.required],\n });\n\n constructor(\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n name: this.form.get('name').value,\n validationRuleTypeId: this.form.get('validationRuleType').value.id,\n };\n\n this.data\n .collection('ValidationRules')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.validationRules.creation.messages.created',\n );\n this.state.go('settings.validationRule', { entityId: response.id });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.validationRules.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { Subscription } from 'rxjs';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { ValidationRuleCreationComponent } from '../creation/validation-rule-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-validation-rule-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class ValidationRuleListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private state: StateService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.validationRules.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'ValidationRule',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.validationRule', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'ValidationRule',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n this.modalService.open(ValidationRuleCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ValidationRuleListComponent } from './list/validation-rule-list.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { Transition } from '@uirouter/core';\nimport { ValidationRuleList } from 'src/app/shared/lists/validation-rule.list';\nimport { ValidationRuleCreationComponent } from './creation/validation-rule-creation.component';\nimport { ValidationRuleCardComponent } from './card/validation-rule-card.component';\nimport { RuleWorkDayDurationComponent } from './card/rule-work-day-duration/rule-work-day-duration.component';\nimport { RuleScheduleWorkDayPercentageComponent } from './card/rule-schedule-work-day-percentage/rule-schedule-work-day-percentage.component';\nimport { RuleScheduleWorkDayDurationComponent } from './card/rule-schedule-work-day-duration/rule-schedule-work-day-duration.component';\nimport { RuleLinesCountComponent } from './card/rule-lines-count/rule-lines-count.component';\nimport { RuleSubmitDateComponent } from './card/rule-submit-date/rule-submit-date.component';\nimport { RuleRequiredFieldsComponent } from './card/rule-required-fields/rule-required-fields.component';\nimport { RuleProjectPlannedHoursComponent } from './card/rule-project-planned-hours/rule-project-planned-hours.component';\nimport { RuleEmptyLinesComponent } from './card/rule-empty-lines/rule-empty-lines.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n ValidationRuleListComponent,\n ValidationRuleCreationComponent,\n ValidationRuleCardComponent,\n RuleWorkDayDurationComponent,\n RuleScheduleWorkDayPercentageComponent,\n RuleScheduleWorkDayDurationComponent,\n RuleLinesCountComponent,\n RuleSubmitDateComponent,\n RuleRequiredFieldsComponent,\n RuleProjectPlannedHoursComponent,\n RuleEmptyLinesComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.validationRules',\n url: '/validation-rules',\n component: ValidationRuleListComponent,\n params: {\n navigation: 'settings.validationRules',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: ValidationRuleList },\n ],\n },\n {\n name: 'settings.validationRule',\n params: {\n navigation: 'settings.validationRules',\n },\n url: '/validation-rules/{entityId:guid}',\n component: ValidationRuleCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class ValidationRulesModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n OnInit,\n inject,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { concatMap, debounceTime, switchMap, tap } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { WorkflowFunctionType } from 'src/app/settings-app/workflows/model/workflow.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { WorkflowDeclaration } from 'src/app/settings-app/workflows/model/workflow-declaration.interface';\nimport { WorkflowCardService } from './workflow-card.service';\nimport { WorkflowToolbarComponent } from './workflow-toolbar/workflow-toolbar.component';\nimport {\n WorkflowFunctionBase,\n WorkflowFunctionCondition,\n WorkflowFunctionNotification,\n WorkflowFunctionTask,\n WorkflowSchema,\n} from 'src/app/settings-app/workflows/model/workflow-function.model';\nimport { MermaidSchemaService } from 'src/app/shared-features/mermaid-schema/mermaid-schema.service';\nimport {\n MermaidSchemaState,\n MermaidSchemaTransition,\n} from 'src/app/shared-features/mermaid-schema/models/state.model';\nimport { cloneDeep, pick } from 'lodash';\nimport { TransitionFormService } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-workflow-card',\n templateUrl: './workflow-card.component.html',\n styleUrls: ['./workflow-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MermaidSchemaService, GridService],\n standalone: false,\n})\nexport class WorkflowCardComponent implements OnInit {\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n\n public form: UntypedFormGroup = this.fb.group({\n isActive: null,\n initialState: [null, Validators.required],\n actionNameLabels: null,\n cancelNameLabels: null,\n description: null,\n initiatorCanCancelInstance: false,\n initiators: this.fb.array([]),\n functions: this.fb.array([]),\n });\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: WorkflowToolbarComponent,\n commands: [\n {\n name: 'createFunction',\n handlerFn: (type: string) => {\n const newGroup = this.getFunctionFormGroup();\n if (type === 'Finish') {\n newGroup.controls.type.setValue(WorkflowFunctionType.finish);\n }\n this.workflowService.editWorkflowFunction(newGroup);\n },\n },\n {\n name: 'createCondition',\n handlerFn: (type: string) => {\n const newGroup = this.getFunctionFormGroup();\n if (type === 'Condition') {\n newGroup.controls.type.setValue(WorkflowFunctionType.condition);\n }\n this.workflowService.editWorkflowCondition(newGroup);\n },\n },\n {\n name: 'createNotification',\n handlerFn: (type: string) => {\n const newGroup = this.getFunctionFormGroup();\n if (type === 'Notification') {\n newGroup.controls.type.setValue(WorkflowFunctionType.notification);\n }\n this.workflowService.editWorkflowNotification(newGroup);\n },\n },\n {\n name: 'editFunction',\n allowedFn: (group) => !!group,\n handlerFn: () => {\n const type = this.gridService.selectedGroupValue.type;\n const workflowFunction = this.gridService.selectedGroup$.getValue();\n switch (type) {\n case WorkflowFunctionType.condition:\n this.workflowService.editWorkflowCondition(workflowFunction);\n break;\n case WorkflowFunctionType.notification:\n this.workflowService.editWorkflowNotification(workflowFunction);\n break;\n default:\n this.workflowService.editWorkflowFunction(workflowFunction);\n }\n },\n },\n {\n name: 'delete',\n allowedFn: () =>\n this.gridService.selectedGroup$.getValue() &&\n (this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.task ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.condition ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.notification),\n handlerFn: () => {\n this.deleteWorkflowFunction(\n this.gridService.selectedGroupValue,\n this.gridService.selectedGroupValue.id,\n );\n },\n },\n {\n name: 'moveUp',\n allowedFn: () =>\n // The start function is fixed in the first place\n (this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.task ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.condition ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.notification) &&\n this.gridService.selectedGroupValue?.number > 1,\n handlerFn: () => {\n const functions = this.workflowFunctionsFormArray;\n const workflowFunction = this.gridService.selectedGroupValue;\n const workflowIndex = workflowFunction.number;\n\n if (workflowIndex >= 2) {\n const group = functions.at(workflowIndex);\n functions.removeAt(workflowIndex);\n functions.insert(workflowIndex - 1, group);\n\n /** Коррекция позиционирования функций в workflow сервиса */\n const serviceFunctions = this.workflowService.workflow.functions;\n [\n serviceFunctions[workflowIndex - 1],\n serviceFunctions[workflowIndex],\n ] = [\n serviceFunctions[workflowIndex],\n serviceFunctions[workflowIndex - 1],\n ];\n\n this.gridService.selectGroup(group as UntypedFormGroup);\n this.updateNumbers();\n this.form.markAsDirty();\n }\n },\n },\n {\n name: 'moveDown',\n allowedFn: () =>\n // The finish function is fixed last\n (this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.task ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.condition ||\n this.gridService.selectedGroupValue?.type ===\n WorkflowFunctionType.notification) &&\n this.gridService.selectedGroupValue?.number <\n this.workflowFunctionsFormArray.length - 2,\n handlerFn: () => {\n const functions = this.workflowFunctionsFormArray;\n const workflowFunction = this.gridService.selectedGroupValue;\n const workflowIndex = workflowFunction.number;\n\n if (workflowIndex < functions.length - 2) {\n const group = functions.at(workflowIndex);\n functions.removeAt(workflowIndex);\n functions.insert(workflowIndex + 1, group);\n\n /** Коррекция позиционирования функций в workflow сервиса */\n const serviceFunctions = this.workflowService.workflow.functions;\n [\n serviceFunctions[workflowIndex],\n serviceFunctions[workflowIndex + 1],\n ] = [\n serviceFunctions[workflowIndex + 1],\n serviceFunctions[workflowIndex],\n ];\n\n this.gridService.selectGroup(group as UntypedFormGroup);\n this.updateNumbers();\n this.form.markAsDirty();\n }\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n const workflowFunction = group;\n const type = group.getRawValue()?.type;\n switch (type) {\n case WorkflowFunctionType.condition:\n this.workflowService.editWorkflowCondition(workflowFunction);\n break;\n case WorkflowFunctionType.notification:\n this.workflowService.editWorkflowNotification(workflowFunction);\n break;\n default:\n this.workflowService.editWorkflowFunction(workflowFunction);\n }\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.deleteWorkflowFunction(\n group.getRawValue(),\n group.getRawValue().id,\n );\n },\n allowedFn: (row) =>\n row.value.type === WorkflowFunctionType.task ||\n row.value.type === WorkflowFunctionType.condition ||\n row.value.type === WorkflowFunctionType.notification,\n },\n ],\n view: {\n name: 'functions',\n columns: [\n {\n name: 'name',\n header: 'settings.workflows.card.columns.function.header',\n hint: 'settings.workflows.card.columns.function.header',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'typeView',\n header: 'settings.workflows.card.columns.type.header',\n hint: 'settings.workflows.card.columns.type.header',\n type: GridColumnType.String,\n width: '112px',\n forceCellUpdating: true,\n },\n {\n name: 'performersString',\n header: 'settings.workflows.card.columns.performers.header',\n hint: 'settings.workflows.card.columns.performers.header',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'actionsString',\n header: 'settings.workflows.card.columns.actions.header',\n hint: 'settings.workflows.card.columns.actions.header',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'transitionsString',\n header: 'settings.workflows.card.columns.transitions.header',\n hint: 'settings.workflows.card.columns.transitions.header',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n ],\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n private states: NamedEntity[];\n\n public get actionNameLabels(): UntypedFormControl {\n return this.form.controls['actionNameLabels'] as UntypedFormControl;\n }\n\n public get cancelNameLabels(): UntypedFormControl {\n return this.form.controls['cancelNameLabels'] as UntypedFormControl;\n }\n\n public get workflowFunctionsFormArray(): UntypedFormArray {\n return this.form.controls['functions'] as UntypedFormArray;\n }\n\n public get initiators(): UntypedFormArray {\n return this.form.controls['initiators'] as UntypedFormArray;\n }\n\n constructor(\n @Inject('entityId') public entityId: string,\n public workflowService: WorkflowCardService,\n public transitionFormService: TransitionFormService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n private navigationService: NavigationService,\n private translate: TranslateService,\n private message: MessageService,\n private actionService: ActionPanelService,\n private blockUI: BlockUIService,\n private mermaidService: MermaidSchemaService,\n ) {}\n\n public ngOnInit(): void {\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: this.save,\n },\n ]);\n\n this.initWorkflowCard();\n\n this.workflowService.update$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.prepareFunctionsView();\n });\n\n this.workflowService.changes$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n\n const formValueChangingDebounceTime = 300;\n this.form.valueChanges\n .pipe(\n debounceTime(formValueChangingDebounceTime),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.updateMermaidSchema(this.form.getRawValue());\n });\n\n this.actionService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n }\n\n /** Saves workflow. */\n public save = (): void => {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const warnings = [];\n\n const workflow = cloneDeep(this.form.getRawValue());\n\n workflow.initialStateId = this.form.getRawValue().initialState?.id;\n\n let requiredEndFunctionsError = true;\n let requiredNextFunctionIdError = false;\n\n workflow.initiators = workflow.initiators.map((performerLine) => {\n const performer: any = pick(performerLine.performer, [\n 'id',\n 'name',\n 'type',\n ]);\n\n if (performer.type === 'user') {\n performer.userId = performer.id;\n }\n\n if (performer.type === 'role') {\n performer.role = performer.id;\n }\n\n if (performer.type === 'group') {\n performer.groupId = performer.id;\n }\n\n if (performer.type === 'permissionSet') {\n performer.permissionSetId = performer.id;\n }\n\n delete performer.type;\n delete performer.id;\n delete performer.name;\n\n return performer;\n });\n\n workflow.functions.forEach((func) => {\n if (func.type === WorkflowFunctionType.start && !func.nextFunctionId) {\n warnings.push(\n 'settings.workflows.card.messages.requiredNextFunctionForStartError',\n );\n }\n\n /** Проверка на наличие функции финиш */\n if (func.type === WorkflowFunctionType.finish) {\n requiredEndFunctionsError = false;\n }\n\n /** Проверка на наличие nextFunctionId у переходов функций */\n func.transitions?.forEach((transition) => {\n if (!transition.nextFunctionId) {\n requiredNextFunctionIdError = true;\n }\n });\n\n func.actions?.forEach((action) => {\n if (action.actionForm) {\n if (action.actionForm.requestedProperties) {\n action.actionForm.requestedProperties.map((property) => {\n if (property.nameControl) {\n property.name = property.nameControl.id;\n delete property.id;\n delete property.nameControl;\n }\n });\n }\n }\n });\n });\n\n if (requiredEndFunctionsError) {\n warnings.push(\n 'settings.workflows.card.messages.requiredFinishFunctionError',\n );\n }\n\n if (requiredNextFunctionIdError) {\n warnings.push(\n 'settings.workflows.card.messages.requiredNextFunctionIdError',\n );\n }\n\n if (warnings.length) {\n this.workflowService.showValidationWarning(warnings);\n return;\n }\n\n this.isSaving = true;\n this.blockUI.start();\n this.workflowService\n .updateWorkflowSchema(workflow)\n .pipe(\n switchMap(() =>\n this.workflowService.updateWorkflowDeclaration(\n this.form.value.isActive,\n this.form.value.description,\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.blockUI.stop();\n this.form.markAsPristine();\n this.cdr.detectChanges();\n this.notification.successLocal(\n 'settings.workflows.card.messages.workflowSaved',\n );\n },\n error: (error: Exception) => {\n this.isSaving = false;\n this.blockUI.stop();\n this.cdr.detectChanges();\n this.notification.error(error.message);\n },\n });\n };\n\n /**\n * Gets lifecycle filter.\n *\n * @returns Filter by lifecycle to return the state.\n */\n public getLifecycleFilter() {\n const lifecycle = this.workflowService.workflowDeclaration?.lifecycle;\n return lifecycle\n ? {\n filter: [{ lifecycleId: { type: 'guid', value: lifecycle.id } }],\n }\n : null;\n }\n\n /**\n * Saves name from header.\n *\n * @param name Name.\n * @returns Observable\n */\n public saveName = (name: string) =>\n new Observable((subscriber) => {\n this.workflowService\n .saveName(name)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n subscriber.next();\n this.cdr.detectChanges();\n });\n });\n\n private getFunctionFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: '',\n name: '',\n iconClass: null,\n number: 0,\n actions: [],\n labelStrings: null,\n nextFunctionId: null,\n performers: [],\n transitions: [],\n type: WorkflowFunctionType.task,\n typeView: '',\n actionsString: '',\n performersString: '',\n transitionsString: '',\n moveToStateId: null,\n skipIfPerformerIsInitiator: false,\n skipCompletedTask: false,\n skipActionId: null,\n conditionsForSkipping: [],\n isElse: null,\n expression: null,\n conditions: [],\n recipients: [],\n });\n }\n\n private updateNumbers(): void {\n let index = 0;\n const functions = this.workflowFunctionsFormArray;\n functions.controls.forEach((workflowFunction: UntypedFormGroup) => {\n workflowFunction.controls.number.setValue(index);\n index++;\n });\n\n this.gridService.detectChanges();\n }\n\n private prepareForm(): void {\n this.gridService.detectChanges();\n\n const workflow = this.workflowService.workflow;\n this.form.patchValue(workflow);\n\n this.form.controls.description.setValue(\n this.workflowService.workflowDeclaration.description,\n { emitEvent: false },\n );\n\n this.form.controls.isActive.setValue(\n this.workflowService.workflowDeclaration.isActive,\n { emitEvent: false },\n );\n\n this.form.controls.initialState.setValue(\n this.states.find((state) => state.id === workflow.initialStateId),\n );\n\n this.initiators.clear();\n const initiators = workflow?.initiators;\n let initiatorsString = '';\n\n if (initiators) {\n initiatorsString = initiators.map((i) => i.name).join(',');\n }\n\n initiators?.forEach((initiator) => {\n const initiatorForm = this.workflowService.getPerformerFormGroup();\n initiatorForm.controls.performer.patchValue(initiator);\n this.initiators.push(initiatorForm);\n });\n }\n\n private prepareFunctionsView(): void {\n const workflowFunctions = this.workflowFunctionsFormArray;\n // Update information in gridService, so that the table shows the changes that have not yet been saved\n this.gridService.detectChanges();\n\n const workflow = this.workflowService.workflow;\n\n workflow.functions.forEach((workflowFunction, functionIndex) => {\n const workflowFunctionTask = workflowFunction as WorkflowFunctionTask;\n\n const actions = workflowFunctionTask?.actions;\n const transitions = workflowFunctionTask?.transitions;\n const performers =\n workflowFunctionTask?.performers ??\n (workflowFunction as WorkflowFunctionNotification)?.recipients;\n const conditions = (workflowFunction as WorkflowFunctionCondition)\n ?.conditions;\n const transitionsOrConditions = transitions ?? conditions;\n let actionsString = '';\n let transitionsString = '';\n let performersString = '';\n const typeView = this.translate.instant(\n `settings.workflows.card.function.functionTypes.${workflowFunction.type}`,\n );\n\n if (actions) {\n actionsString = actions.map((a) => a.name).join(', ');\n }\n\n if (transitionsOrConditions) {\n transitionsString = transitionsOrConditions\n .map((t) => t.name)\n .join(', ');\n }\n\n if (performers) {\n performersString = performers.map((p) => p.name).join(', ');\n }\n\n const existingGroup = workflowFunctions.controls.find(\n (c) => c.value.id === workflowFunction.id,\n );\n\n const group = existingGroup ?? this.getFunctionFormGroup();\n\n group.patchValue({\n ...workflowFunction,\n number: functionIndex,\n actionsString,\n transitionsString,\n performersString,\n typeView,\n });\n\n if (!existingGroup) {\n workflowFunctions.insert(functionIndex, group);\n group.markAsDirty();\n }\n });\n\n this.form.markAllAsTouched();\n this.gridService.detectChanges();\n this.cdr.detectChanges();\n }\n\n private loadSchema(): void {\n this.isLoading = true;\n this.workflowService\n .getWorkflowSchema()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (schema: WorkflowSchema) => {\n if (schema !== null) {\n this.workflowService.setWorkflow(schema);\n this.prepareForm();\n this.prepareFunctionsView();\n } else {\n const newSchema = {\n initiators: [],\n initialStateId: null,\n initiatorCanCancelInstance: false,\n functions: [\n {\n id: Guid.generate(),\n type: WorkflowFunctionType.start,\n name: WorkflowFunctionType.start,\n },\n ],\n };\n this.workflowService.setWorkflow(newSchema);\n this.prepareForm();\n this.prepareFunctionsView();\n }\n this.setNavigation();\n this.form.markAsPristine();\n this.isLoading = false;\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.cdr.detectChanges();\n this.notification.error(error.message);\n },\n });\n }\n\n private reload(): void {\n if (!this.form.dirty) {\n this.initWorkflowCard();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.initWorkflowCard(),\n () => null,\n );\n }\n }\n\n private deleteWorkflowFunction(\n workflowFunction: WorkflowFunctionBase,\n id: string,\n ): void {\n const functions = this.workflowFunctionsFormArray;\n\n if (workflowFunction.type === WorkflowFunctionType.start) {\n this.notification.warningLocal(\n 'settings.workflows.card.messages.requiredFunctionError',\n );\n return;\n }\n\n const index = functions.value.findIndex((func) => func.id === id);\n\n if (index >= 0) {\n functions.removeAt(index);\n this.updateNumbers();\n /**Удаляем в буфере сервиса */\n this.workflowService.workflow.functions.splice(index, 1);\n }\n\n /**Удаляем nextFunctionIds */\n functions.controls.forEach((functionGroup: UntypedFormGroup) => {\n if (functionGroup.controls.nextFunctionId.value === workflowFunction.id) {\n functionGroup.controls.nextFunctionId.setValue(null);\n }\n const transitions = functionGroup.controls.transitions?.value;\n transitions?.forEach((transition) => {\n if (transition.nextFunctionId === workflowFunction.id) {\n transition.nextFunctionId = null;\n }\n });\n functionGroup.controls.transitions.setValue(transitions);\n });\n\n this.form.markAsDirty();\n }\n\n private setNavigation(): void {\n this.navigationService.addRouteSegment({\n id: `${this.entityId}`,\n title: this.workflowService.workflowDeclaration.name,\n });\n this.cdr.detectChanges();\n }\n\n private initWorkflowCard(): void {\n this.workflowFunctionsFormArray.clear();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.isLoading = true;\n this.workflowService\n .getWorkflowDeclaration(this.entityId)\n .pipe(\n concatMap((workflowDeclaration: WorkflowDeclaration) => {\n this.readonly = !workflowDeclaration.editAllowed;\n this.actionService.action('save').isShown = !this.readonly;\n this.transitionFormService.setAllowedTransitionFormProperties(\n workflowDeclaration.lifecycleId,\n workflowDeclaration.lifecycle.entityType,\n );\n return this.workflowService.getStates();\n }),\n tap((states) => {\n this.states = states;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n this.loadSchema();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n private updateMermaidSchema(workflowSchema): void {\n const mermaidSchemaData: MermaidSchemaState[] = [];\n workflowSchema.functions.forEach((schemaFunction) => {\n const transitionsOrConditions =\n (schemaFunction as WorkflowFunctionTask)?.transitions ??\n (schemaFunction as WorkflowFunctionCondition)?.conditions;\n const mermaidSchemaTransitions: MermaidSchemaTransition[] = [];\n if (transitionsOrConditions) {\n transitionsOrConditions.forEach((stateTransition) => {\n if (stateTransition.nextFunctionId) {\n mermaidSchemaTransitions.push({\n name: stateTransition.name,\n nextStateId: stateTransition.nextFunctionId,\n stateName: '',\n stateCode: '',\n });\n }\n });\n }\n if (schemaFunction.nextFunctionId) {\n mermaidSchemaTransitions.push({\n name: schemaFunction.name,\n nextStateId: schemaFunction.nextFunctionId,\n stateName: '',\n stateCode: '',\n });\n }\n const mermaidSchemaState: MermaidSchemaState = {\n name: schemaFunction.name,\n id: schemaFunction.id,\n index: schemaFunction.number,\n code: schemaFunction.name?.replaceAll(' ', '').trim().toLowerCase(),\n isInitial: schemaFunction.type === 'Start',\n isLast: schemaFunction.type === 'Finish',\n transitions: mermaidSchemaTransitions,\n isNotification: schemaFunction.type === 'Notification',\n isCondition: schemaFunction.type === 'Condition',\n };\n mermaidSchemaData.push(mermaidSchemaState);\n });\n this.mermaidService.updateSchema({\n hideHead: true,\n hideTail: true,\n states: mermaidSchemaData,\n });\n }\n}\n","\n\n\n\n@if (!isLoading) {\n
    \n
    \n
    \n
    \n \n
    \n {{ workflowService.workflowDeclaration?.lifecycle.name }}\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n\n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n\n \n\n \n\n @if (!(gridService.readonly$ | async)) {\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n }\n \n}\n\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StateService } from '@uirouter/angular';\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\nimport { share, switchMap, tap } from 'rxjs/operators';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n WorkflowAction,\n WorkflowFunctionBase,\n WorkflowFunctionNotification,\n WorkflowFunctionTask,\n WorkflowPerformer,\n WorkflowSchema,\n WorkflowTransitionCondition,\n} from 'src/app/settings-app/workflows/model/workflow-function.model';\nimport { WorkflowDeclaration } from '../model/workflow-declaration.interface';\nimport { WorkflowActionModalComponent } from './workflow-function/workflow-action-modal/workflow-action-modal.component';\nimport { WorkflowFunctionComponent } from './workflow-function/workflow-function.component';\nimport { WorkflowTransitionModalComponent } from './workflow-function/workflow-transition-modal/workflow-transition-modal.component';\nimport { PermissionSet } from 'src/app/shared/models/entities/settings/permission-set.model';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { Group } from 'src/app/shared/models/entities/settings/group.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport _ from 'lodash';\nimport { WorkflowConditionComponent } from './workflow-condition/workflow-condition.component';\nimport { WorkflowConditionModalComponent } from './workflow-condition/workflow-condition-modal/workflow-conditon-modal.component';\nimport { WorkflowFunctionType } from '../model/workflow.enum';\nimport { WorkflowNotificationComponent } from './workflow-notification/workflow-notification.component';\n\n@Injectable()\nexport class WorkflowCardService {\n public workflowDeclaration: WorkflowDeclaration;\n\n constructor(\n private translate: TranslateService,\n private data: DataService,\n private modal: NgbModal,\n public app: AppService,\n public state: StateService,\n private navigationService: NavigationService,\n private message: MessageService,\n private fb: UntypedFormBuilder,\n ) {}\n\n private addActionSubject = new Subject();\n public addAction$ = this.addActionSubject.asObservable();\n\n private addTransitionSubject = new Subject();\n public addTransition$ = this.addTransitionSubject.asObservable();\n\n private functionSubject = new Subject();\n public reloadFunction$ = this.functionSubject.asObservable();\n\n private updateSubject = new Subject();\n public update$ = this.updateSubject.asObservable();\n\n public workflow: WorkflowSchema;\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n public getWorkflowDeclaration(entityId: string) {\n const query = {\n expand: {\n lifecycle: { select: ['id', 'name', 'entityType'] },\n },\n };\n return this.data\n .collection('WorkflowDeclarations')\n .entity(entityId)\n .get(query)\n .pipe(\n tap((workflowDeclaration: WorkflowDeclaration) => {\n this.workflowDeclaration = workflowDeclaration;\n }),\n );\n }\n\n /**\n * Gets a form for a new performer\n *\n * @returns Performers form group.\n * */\n public getPerformerFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n performer: { id: null, name: null, type: null },\n });\n }\n\n /**\n * Gets name of the role.\n *\n * @param role Role.\n * @returns Role name.\n * */\n public getRoleName(role: string): string {\n return this.translate.instant(`shared2.props.role${role}`);\n }\n\n public setWorkflow(workflow: WorkflowSchema) {\n this.workflow = workflow;\n }\n\n /** Получение схемы воркфлоу. */\n public getWorkflowSchema() {\n return this.data\n .collection('WorkflowDeclarations')\n .entity(this.workflowDeclaration.id)\n .function(`GetWorkflowSchema`)\n .get()\n .pipe(\n switchMap((workflowFunctions: WorkflowSchema) => {\n /* Готовим запросы, чтобы получить имена performers каждой функции */\n const userNameRequests = {};\n workflowFunctions.functions.map((workflowFunction) => {\n const performerOrRecipient =\n (workflowFunction as WorkflowFunctionTask)?.performers ??\n (workflowFunction as WorkflowFunctionNotification)?.recipients;\n performerOrRecipient?.map((p) => {\n if (p.userId) {\n userNameRequests[p?.userId] = this.getUser(p.userId);\n }\n });\n });\n\n const groupNameRequests = {};\n workflowFunctions.functions.map((workflowFunction) => {\n const performerOrRecipient =\n (workflowFunction as WorkflowFunctionTask)?.performers ??\n (workflowFunction as WorkflowFunctionNotification)?.recipients;\n performerOrRecipient?.map((p) => {\n if (p.groupId) {\n groupNameRequests[p.groupId] = this.getGroupName(p.groupId);\n }\n });\n });\n\n const permissionSetNameRequests = {};\n workflowFunctions.initiators?.map((initiator) => {\n if (initiator.userId) {\n userNameRequests[initiator?.userId] = this.getUser(\n initiator.userId,\n );\n }\n if (initiator.groupId) {\n groupNameRequests[initiator?.groupId] = this.getGroupName(\n initiator.groupId,\n );\n }\n\n if (initiator.permissionSetId) {\n permissionSetNameRequests[initiator?.permissionSetId] =\n this.getPermissionSetName(initiator?.permissionSetId);\n }\n });\n return forkJoin({\n workflowFunctions: of(workflowFunctions),\n ...userNameRequests,\n ...groupNameRequests,\n ...permissionSetNameRequests,\n });\n }),\n /* Записываем полученные имена users в соответствующий performer */\n switchMap((res) => {\n res.workflowFunctions?.functions.map((workflowFunction) => {\n const workflowFunctionTask =\n workflowFunction as WorkflowFunctionTask;\n /* Добавляем поля, необходимые для работы с исполнителями на клиенте */\n /** Для исполнителей */\n if (workflowFunctionTask.performers) {\n this.fillPerformersData(workflowFunctionTask.performers, res);\n }\n if (\n (workflowFunction as WorkflowFunctionNotification)?.recipients\n ) {\n this.fillRecipientsData(\n (workflowFunction as WorkflowFunctionNotification)?.recipients,\n res,\n );\n }\n workflowFunctionTask.actions?.map((workflowAction) => {\n workflowAction.actionForm?.requestedProperties?.map(\n (property: any) => {\n const nameControl: NamedEntity = { id: null, name: null };\n nameControl.id = property.name;\n nameControl.name = this.app.getPropertyLocalizationName(\n this.workflowDeclaration.lifecycle.entityType,\n property.name,\n );\n property.nameControl = nameControl;\n },\n );\n });\n });\n this.fillPerformersData(res.workflowFunctions?.initiators, res);\n return of(res.workflowFunctions);\n }),\n tap((workflowSchema: WorkflowSchema) => {\n this.setWorkflow(workflowSchema);\n }),\n );\n }\n\n /**\n * Returns workflow action form property name localization.\n * @param lifecycleName Lifecycle name.\n * @param property Property name.\n */\n public getWorkflowActionFormPropertyName(\n lifecycleName: string,\n property: string,\n ): string {\n return this.translate.instant(\n `enums.transitionFormProperties.${lifecycleName}.${property}`,\n );\n }\n\n /**\n * Fills up the list of performers with data\n * */\n private fillPerformersData(\n performers: WorkflowPerformer[],\n usersData: object,\n ): void {\n performers?.map((performer) => {\n if (\n performer.userId &&\n performer.userId === usersData[performer.userId]?.id\n ) {\n performer.id = performer.userId;\n performer.name = usersData[performer.userId].name;\n performer.type = 'user';\n } else if (\n performer.groupId &&\n performer.groupId === usersData[performer.groupId]?.id\n ) {\n performer.id = performer.groupId;\n performer.name = usersData[performer.groupId].name;\n performer.type = 'group';\n } else if (performer.role) {\n performer.id = performer.role;\n performer.name = this.getRoleName(performer.role);\n performer.type = 'role';\n } else if (performer.permissionSetId) {\n performer.name = usersData[performer.permissionSetId].name;\n performer.id = performer.permissionSetId;\n performer.type = 'permissionSet';\n }\n });\n }\n\n private fillRecipientsData(\n recipients: WorkflowPerformer[],\n usersData: object,\n ): void {\n recipients?.map((recipient) => {\n if (\n recipient.userId &&\n recipient.userId === usersData[recipient.userId]?.id\n ) {\n recipient.id = recipient.userId;\n recipient.name = usersData[recipient.userId].name;\n recipient.type = 'user';\n } else if (\n recipient.groupId &&\n recipient.groupId === usersData[recipient.groupId]?.id\n ) {\n recipient.id = recipient.groupId;\n recipient.name = usersData[recipient.groupId].name;\n recipient.type = 'group';\n } else if (recipient.role) {\n recipient.id = recipient.role;\n recipient.name = this.getRoleName(recipient.role);\n recipient.type = 'role';\n } else if (recipient.permissionSetId) {\n recipient.name = usersData[recipient.permissionSetId].name;\n recipient.id = recipient.permissionSetId;\n recipient.type = 'permissionSet';\n }\n });\n }\n\n /**\n * Gets user.\n *\n * @param userId User ID.\n * @returns User observable.\n * */\n private getUser(userId: string): Observable {\n return this.data\n .collection('Users')\n .entity(userId)\n .get({ select: ['id', 'name'] });\n }\n\n /**\n * Gets group.\n *\n * @param groupId Group ID.\n * @returns Group observable.\n * */\n private getGroupName(groupId: string): Observable {\n return this.data\n .collection('Groups')\n .entity(groupId)\n .get({ select: ['id', 'name'] });\n }\n\n /**\n * Gets permission set.\n *\n * @param permissionSetId Permission set ID.\n * @returns Permission set observable.\n * */\n private getPermissionSetName(\n permissionSetId: string,\n ): Observable {\n return this.data\n .collection('PermissionSets')\n .entity(permissionSetId)\n .get({ select: ['id', 'name'] });\n }\n\n public updateWorkflowSchema(workflow: WorkflowSchema) {\n return this.data\n .collection('WorkflowDeclarations')\n .entity(this.workflowDeclaration.id)\n .action('UpdateWorkflowSchema')\n .execute(workflow);\n }\n\n editWorkflow(stateId: string, lifecycleId: string): void {\n this.state.go('settings.workflowCard', {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n stateId,\n lifecycleId,\n });\n }\n\n private patchWorkflowFunction(newFunction: WorkflowFunctionBase) {\n this.workflow = {\n initialStateId: this.workflow.initialStateId,\n initiatorCanCancelInstance: this.workflow.initiatorCanCancelInstance,\n initiators: this.workflow.initiators,\n functions: this.workflow.functions.map((func) =>\n func.id === newFunction.id ? { ...newFunction } : func,\n ),\n };\n\n this.updateSubject.next();\n }\n\n private addWorkflowFunction(newFunction: WorkflowFunctionBase) {\n const functions = this.workflow.functions;\n newFunction.id = Guid.generate();\n functions.splice(functions.length - 1, 0, newFunction);\n this.workflow = {\n initialStateId: this.workflow.initialStateId,\n initiatorCanCancelInstance: this.workflow.initiatorCanCancelInstance,\n initiators: this.workflow.initiators,\n functions,\n };\n\n this.updateSubject.next();\n }\n\n /**\n * Edits workflow function.\n * @param workflowFunctionGroup Workflow function group.\n */\n public editWorkflowFunction(workflowFunctionGroup: UntypedFormGroup): void {\n const ref = this.modal.open(WorkflowFunctionComponent, {\n size: 'lg',\n });\n const instance = ref.componentInstance as WorkflowFunctionComponent;\n instance.workflowFunction = workflowFunctionGroup.getRawValue();\n instance.lifecycleId = this.workflowDeclaration.lifecycleId;\n\n ref.result.then(\n (newGroup) => {\n newGroup.performers = newGroup.performers.map((performerLine) => {\n const performer: any = _.pick(performerLine.performer, [\n 'id',\n 'name',\n 'type',\n ]);\n\n if (performer.type === 'user') {\n performer.userId = performer.id;\n }\n\n if (performer.type === 'group') {\n performer.groupId = performer.id;\n }\n\n if (performer.type === 'role') {\n performer.role = performer.id;\n }\n\n return {\n ...performer,\n id: Guid.generate(),\n };\n });\n\n if (workflowFunctionGroup?.value.id) {\n workflowFunctionGroup.patchValue(newGroup);\n this.patchWorkflowFunction(newGroup);\n } else {\n this.addWorkflowFunction(newGroup);\n }\n },\n () => null,\n );\n }\n\n /**\n * Edits workflow condition.\n *\n * @param workflowFunctionGroup Workflow function group.\n */\n public editWorkflowCondition(workflowFunctionGroup: UntypedFormGroup): void {\n const functionFinish = this.workflow.functions.find(\n (f) => f.type === WorkflowFunctionType.finish,\n );\n const isElseCondition = {\n expression: 'true',\n isElse: true,\n moveToStateId: null,\n name: this.translate.instant('settings.workflows.card.function.else'),\n nextFunctionId: functionFinish?.id,\n id: null,\n };\n const ref = this.modal.open(WorkflowConditionComponent, {\n size: 'lg',\n });\n const instance = ref.componentInstance as WorkflowConditionComponent;\n instance.workflowFunction = workflowFunctionGroup.getRawValue();\n instance.lifecycleId = this.workflowDeclaration.lifecycleId;\n if (!workflowFunctionGroup.getRawValue().conditions) {\n instance.workflowFunction.conditions = [];\n instance.workflowFunction.conditions.push(isElseCondition);\n }\n ref.result.then(\n (newGroup) => {\n if (workflowFunctionGroup?.value.id) {\n workflowFunctionGroup.patchValue(newGroup);\n this.patchWorkflowFunction(newGroup);\n } else {\n this.addWorkflowFunction(newGroup);\n }\n },\n () => null,\n );\n }\n\n /**\n * Edits workflow notification.\n *\n * @param workflowFunctionGroup Workflow function group.\n */\n public editWorkflowNotification(\n workflowFunctionGroup: UntypedFormGroup,\n ): void {\n const ref = this.modal.open(WorkflowNotificationComponent, {\n size: 'lg',\n });\n const instance = ref.componentInstance as WorkflowNotificationComponent;\n instance.workflowFunction = workflowFunctionGroup.getRawValue();\n instance.lifecycleId = this.workflowDeclaration.lifecycleId;\n ref.result.then(\n (newGroup) => {\n newGroup.recipients = newGroup.recipients.map((recipientLine) => {\n const recipient: any = _.pick(recipientLine.performer, [\n 'id',\n 'name',\n 'type',\n ]);\n\n if (recipient.type === 'user') {\n recipient.userId = recipient.id;\n }\n\n if (recipient.type === 'group') {\n recipient.groupId = recipient.id;\n }\n\n if (recipient.type === 'role') {\n recipient.role = recipient.id;\n }\n\n return {\n ...recipient,\n id: Guid.generate(),\n };\n });\n\n if (workflowFunctionGroup?.value.id) {\n workflowFunctionGroup.patchValue(newGroup);\n this.patchWorkflowFunction(newGroup);\n } else {\n this.addWorkflowFunction(newGroup);\n }\n },\n () => null,\n );\n }\n\n /**\n * Edits workflow function transition.\n *\n * @param functionId Function Id.\n * @param actions Actions.\n * @param transitionFormGroup Transition form group.\n */\n public editTransition(\n functionId: string,\n actions: WorkflowAction[],\n transitionFormGroup?: UntypedFormGroup,\n ): void {\n const modalRef = this.modal.open(WorkflowTransitionModalComponent, {\n size: 'md',\n });\n const instance =\n modalRef.componentInstance as WorkflowTransitionModalComponent;\n\n instance.transitionFormGroup = transitionFormGroup.getRawValue() ?? null;\n instance.actions = actions;\n instance.functionId = functionId;\n\n modalRef.result.then(\n (newGroup) => {\n let conditionsString = '';\n let nextFunctionString = '';\n\n if (newGroup.conditions) {\n conditionsString = this.getConditionsString(newGroup.conditions);\n }\n\n nextFunctionString = this.workflow.functions.find(\n (func) => func.id === newGroup.nextFunctionId,\n )?.name;\n\n const newTransition = {\n ...newGroup,\n nextFunctionString,\n conditionsString,\n id: Guid.generate(),\n };\n\n if (newGroup.id) {\n transitionFormGroup.patchValue(newTransition);\n } else {\n this.addTransitionSubject.next(newTransition);\n }\n },\n () => null,\n );\n }\n\n /**\n * Edits workflow function transition.\n *\n * @param functionId Function Id.\n * @param actions Actions.\n * @param conditionFormGroup Condition form group.\n */\n public editCondition(\n functionId: string,\n conditionFormGroup?: UntypedFormGroup,\n ): void {\n const modalRef = this.modal.open(WorkflowConditionModalComponent, {\n size: 'md',\n });\n const instance =\n modalRef.componentInstance as WorkflowConditionModalComponent;\n\n instance.conditionFormGroup = conditionFormGroup.getRawValue() ?? null;\n instance.functionId = functionId;\n\n modalRef.result.then(\n (newGroup) => {\n let conditionsString = '';\n let nextFunctionString = '';\n\n if (newGroup.conditions) {\n conditionsString = this.getConditionsString(newGroup.conditions);\n }\n\n nextFunctionString = this.workflow.functions.find(\n (func) => func.id === newGroup.nextFunctionId,\n )?.name;\n\n const newTransition = {\n ...newGroup,\n nextFunctionString,\n conditionsString,\n id: Guid.generate(),\n };\n\n if (newGroup.id) {\n conditionFormGroup.patchValue(newTransition);\n } else {\n this.addTransitionSubject.next(newTransition);\n }\n },\n () => null,\n );\n }\n\n /**\n * Edits workflow function action.\n * @param actionFormGroup Action form group.\n */\n public editAction(actionFormGroup?: UntypedFormGroup) {\n const modalRef = this.modal.open(WorkflowActionModalComponent, {\n size: 'md',\n });\n const instance = modalRef.componentInstance as WorkflowActionModalComponent;\n instance.actionFormGroup = actionFormGroup || null;\n instance.lifecycleId = this.workflowDeclaration.lifecycleId;\n\n modalRef.result.then(\n (newGroup) => {\n const newAction = {\n ...newGroup,\n };\n if (actionFormGroup) {\n actionFormGroup.patchValue(newAction);\n /** Обновляем transition form */\n const actionForm = actionFormGroup.controls\n .actionForm as UntypedFormGroup;\n const requestedPropertiesArray = actionForm.controls\n .requestedProperties as UntypedFormArray;\n requestedPropertiesArray.clear();\n if (newGroup.actionForm?.requestedProperties) {\n newGroup.actionForm.requestedProperties.map((property) => {\n const requestedPropertyGroup =\n this.getRequestedPropertyFormGroup();\n requestedPropertyGroup.patchValue(property);\n requestedPropertiesArray.push(requestedPropertyGroup);\n });\n }\n } else {\n this.addActionSubject.next(newAction);\n }\n },\n () => null,\n );\n }\n\n /**\n * Gets workflow schema.\n * @param stateId State Id.\n */\n public getStateName(stateId: string) {\n return this.data\n .collection('States')\n .entity(stateId)\n .get({ select: ['id', 'name'] });\n }\n\n /* Getting lifecycle states. */\n public getStates(): Observable {\n return this.data\n .collection('States')\n .query({\n filter: {\n lifecycleId: {\n type: 'guid',\n value: this.workflowDeclaration.lifecycleId,\n },\n },\n })\n .pipe(share());\n }\n\n /** Starts detect changes. */\n public detectChanges() {\n this.changesSubject.next();\n }\n\n /**\n * Saves name.\n * @param name Name.\n */\n public saveName(name: string) {\n return this.data\n .collection('WorkflowDeclarations')\n .entity(this.workflowDeclaration.id)\n .patch({ name });\n }\n\n /**\n * Updates workflow declaration.\n * @param isActive Is active.\n * @param description Description.\n */\n public updateWorkflowDeclaration(isActive: boolean, description: string) {\n return this.data\n .collection('WorkflowDeclarations')\n .entity(this.workflowDeclaration.id)\n .patch({ isActive, description });\n }\n\n /**\n * Gets conditions string.\n * @param conditions Workflow transition conditions.\n */\n public getConditionsString(\n conditions: WorkflowTransitionCondition[],\n ): string {\n return conditions.reduce(\n (prev, condition, index) =>\n index === 0\n ? this.translate.instant(\n `settings.workflows.card.transitions.conditionTypes.${condition.conditionType}`,\n )\n : prev +\n `, ${this.translate.instant(\n `settings.workflows.card.transitions.conditionTypes.${condition.conditionType}`,\n )}`,\n '',\n );\n }\n\n /**\n * Shows validation warning.\n * @param warnings Warnings.\n */\n public showValidationWarning(warnings: Array) {\n if (warnings.length > 0) {\n const exception: Exception = {\n message: this.translate.instant(\n 'settings.workflows.card.messages.errors',\n ),\n details: [],\n code: '',\n };\n warnings.forEach((warn) => {\n exception.details.push({\n message: this.translate.instant(warn),\n code: '',\n });\n });\n\n this.message.errorDetailed(\n exception,\n this.translate.instant('shared.dataNotSaved'),\n );\n }\n }\n\n /**\n * Gets requested property form group.\n */\n public getRequestedPropertyFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: Guid.generate(),\n name: null,\n nameControl: [null, Validators.required],\n isRequired: false,\n });\n }\n}\n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n WorkflowAction,\n WorkflowCondition,\n} from '../../../model/workflow-function.model';\nimport { WorkflowCardService } from '../../workflow-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-condition-modal',\n templateUrl: './workflow-condition-modal.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowConditionModalComponent implements OnInit {\n @Input() actions: WorkflowAction[];\n @Input() conditionFormGroup: WorkflowCondition;\n @Input() functionId: string;\n\n public languages: NamedEntity[] = [];\n\n public form = this.fb.group({\n id: [Guid.generate()],\n name: ['', Validators.required],\n expression: [null, Validators.required],\n nextFunctionId: [null, Validators.required],\n moveToStateId: null,\n isElse: false,\n });\n\n public states$: Observable;\n\n private destroyRef = inject(DestroyRef);\n\n public get nextFunctionIdControl(): UntypedFormControl {\n return this.form.controls['nextFunctionId'] as UntypedFormControl;\n }\n\n public get isElse(): boolean {\n return this.form.controls['isElse'].value;\n }\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private service: WorkflowCardService,\n ) {}\n\n public ngOnInit(): void {\n if (this.conditionFormGroup) {\n this.form.patchValue(this.conditionFormGroup);\n }\n\n if (this.isElse) {\n this.form.controls['expression'].disable();\n }\n\n this.states$ = this.service\n .getStates()\n .pipe(takeUntilDestroyed(this.destroyRef));\n }\n\n /** Closes modal and sends data to service. */\n public ok(): void {\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n this.service.detectChanges();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.activeModal.close(this.form.getRawValue());\n }\n\n /** Closes modal and dismisses changes. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Gets header for transitionFormGroup.\n *\n * @returns Header.\n */\n public getHeader(): string {\n return this.conditionFormGroup.name\n ? this.conditionFormGroup.name\n : 'settings.workflows.card.function.newCondition';\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n\n
    \n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n \n\n
    \n \n \n \n
    \n \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-workflow-condition-toolbar',\n templateUrl: './workflow-condition-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class WorkflowConditionToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n \n  {{ 'shared.actions.create' | translate }}\n \n
    \n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n \n \n \n\n \n \n \n
    \n
    \n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { WorkflowFunctionType } from 'src/app/settings-app/workflows/model/workflow.enum';\nimport { WorkflowCardService } from '../workflow-card.service';\nimport { WorkflowFunctionCondition } from '../../model/workflow-function.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { WorkflowConditionToolbarComponent } from './workflow-condition-toolbar/workflow-condition-toolbar.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridEntityColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-workflow-condition',\n templateUrl: './workflow-condition.component.html',\n styleUrls: ['./workflow-condition.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowConditionComponent implements OnInit {\n @Input() workflowFunction?: WorkflowFunctionCondition;\n @Input() lifecycleId: string;\n\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n public functionType = WorkflowFunctionType;\n\n public conditionsGridOptions: GridOptions;\n\n public form = this.fb.group({\n id: null,\n name: ['', Validators.required],\n conditions: this.fb.array([]),\n type: null,\n });\n\n private destroyRef = inject(DestroyRef);\n private workflowFunctions = [];\n\n public get conditionsFormArray(): UntypedFormArray {\n return this.form.controls.conditions as UntypedFormArray;\n }\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n private notification: NotificationService,\n public workflowCardService: WorkflowCardService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n\n this.workflowCardService.addTransition$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((newGroup: UntypedFormGroup) => {\n this.addNewConditionGroup(newGroup);\n this.gridService.detectChanges();\n });\n\n this.workflowCardService.workflow?.functions.forEach((func) => {\n if (func.type !== WorkflowFunctionType.start) {\n this.workflowFunctions.push({ id: func.id, name: func.name });\n }\n });\n this.initGridOptions();\n }\n\n /**\n * Gets header for transitionFormGroup.\n *\n * @returns header.\n */\n public getHeader(): string {\n return this.workflowFunction.name\n ? this.workflowFunction.name\n : 'settings.workflows.card.function.createCondition';\n }\n\n /** Closes modal and sends data to service. */\n public ok(): void {\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const newWorkflowFunction = this.form.getRawValue();\n this.activeModal.close(newWorkflowFunction);\n }\n\n /** Closes modal and dismisses changes. */\n public cancel = (): void => {\n this.activeModal.dismiss('cancel');\n };\n\n private load(): void {\n if (!this.workflowFunction) {\n return;\n }\n\n this.form.patchValue(this.workflowFunction);\n this.workflowFunction?.conditions?.forEach((condition) => {\n condition.id = Guid.generate();\n const group = this.getConditionFormGroup();\n group.patchValue(condition);\n group.controls.moveToStateId.disable();\n group.controls.nextFunctionId.disable();\n this.conditionsFormArray.push(group);\n });\n }\n\n private addNewConditionGroup(condition): void {\n const conditionGroup = this.getConditionFormGroup();\n conditionGroup.patchValue(condition);\n conditionGroup.controls.moveToStateId.disable();\n conditionGroup.controls.nextFunctionId.disable();\n this.conditionsFormArray.insert(0, conditionGroup);\n }\n\n private getConditionFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: '',\n name: '',\n nextFunctionId: null,\n moveToStateId: null,\n expression: null,\n isElse: false,\n });\n }\n\n private deleteCondition(id: string): void {\n const conditions = this.conditionsFormArray as UntypedFormArray;\n\n const index = conditions.value.findIndex(\n (condition) => condition.id === id,\n );\n\n if (index >= 0) {\n conditions.removeAt(index);\n }\n this.gridService.detectChanges();\n }\n\n private initGridOptions(): void {\n this.conditionsGridOptions = {\n toolbar: WorkflowConditionToolbarComponent,\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const newCondition = this.getConditionFormGroup();\n this.workflowCardService.editCondition(\n this.workflowFunction.id,\n newCondition,\n );\n },\n },\n {\n name: 'edit',\n allowedFn: (group) => !!group,\n handlerFn: () => {\n const condition = this.gridService.selectedGroup$.getValue();\n this.workflowCardService.editCondition(\n this.workflowFunction.id,\n condition,\n );\n },\n },\n {\n name: 'delete',\n allowedFn: (group) => !!group && !group?.isElse,\n handlerFn: () => {\n this.deleteCondition(this.gridService.selectedGroupValue.id);\n },\n },\n {\n name: 'moveUp',\n allowedFn: (group) =>\n !!group &&\n !group?.value?.isElse &&\n this.conditionsFormArray.value.findIndex(\n (g) => g.id === group?.value?.id,\n ) !== 0,\n handlerFn: (group) => {\n const groupIndex = this.conditionsFormArray.value.findIndex(\n (g) => g.id === group.value?.id,\n );\n this.conditionsFormArray.removeAt(groupIndex);\n this.conditionsFormArray.insert(groupIndex - 1, group);\n this.gridService.selectGroup(group);\n },\n },\n {\n name: 'moveDown',\n allowedFn: (group) =>\n !!group &&\n this.conditionsFormArray.value.findIndex(\n (g) => g.id === group?.value?.id,\n ) <\n this.conditionsFormArray.length - 2,\n handlerFn: (group) => {\n const groupIndex = this.conditionsFormArray.value.findIndex(\n (g) => g.id === group.value.id,\n );\n\n this.conditionsFormArray.removeAt(groupIndex);\n this.conditionsFormArray.insert(groupIndex + 1, group);\n this.gridService.selectGroup(group);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n this.workflowCardService.editCondition(\n this.workflowFunction.id,\n group,\n );\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.deleteCondition(group.getRawValue().id);\n },\n allowedFn: (group) => group?.value?.isElse !== true,\n },\n ],\n view: {\n name: 'conditions',\n columns: [\n {\n name: 'name',\n header: 'settings.workflows.card.transitions.name',\n hint: 'settings.workflows.card.transitions.name',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'expression',\n header: 'settings.workflows.card.function.expression',\n hint: 'settings.workflows.card.function.expression',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'nextFunctionId',\n header: 'settings.workflows.card.transitions.nextFunction',\n hint: 'settings.workflows.card.transitions.nextFunction',\n type: GridColumnType.Entity,\n values: this.workflowFunctions,\n forceCellUpdating: true,\n },\n {\n name: 'moveToStateId',\n header: 'settings.workflows.card.transitions.nextState',\n hint: 'settings.workflows.card.transitions.nextState',\n type: GridColumnType.Entity,\n values: this.workflowCardService.getStates(),\n forceCellUpdating: true,\n },\n ],\n },\n };\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n \n
    \n \n \n
    \n \n\n \n \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subject } from 'rxjs';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { WorkflowCardService } from 'src/app/settings-app/workflows/card/workflow-card.service';\nimport { cloneDeep } from 'lodash';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'src/app/core/message.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-action-modal',\n styleUrl: './workflow-action-modal.component.scss',\n templateUrl: './workflow-action-modal.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowActionModalComponent implements OnInit, OnDestroy {\n @Input() actionFormGroup: UntypedFormGroup;\n @Input() lifecycleId: string;\n\n public languages: NamedEntity[] = [];\n form = this.fb.group({\n id: [Guid.generate()],\n name: ['', Validators.required],\n iconClass: null,\n labelStrings: null,\n localStrings: this.fb.array([]),\n hasActionForm: false,\n actionForm: this.fb.group({\n requestComment: [false],\n commentIsRequired: [false],\n requestedProperties: this.fb.array([]),\n }),\n });\n\n public get labelStrings(): UntypedFormControl {\n return this.form.controls['labelStrings'] as UntypedFormControl;\n }\n\n private destroyed$ = new Subject();\n\n public isSaving: boolean;\n public isLoading: boolean;\n\n constructor(\n private workflowCardService: WorkflowCardService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private message: MessageService,\n ) {}\n\n public ok() {\n this.form.updateValueAndValidity();\n const warnings: string[] = [];\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n warnings.push('shared.messages.requiredFieldsError');\n }\n\n /** Requested properties duplicate verifying */\n if (this.form.value.actionForm?.requestedProperties) {\n const duplicates = this.form.value.actionForm?.requestedProperties.filter(\n (property, index, properties) =>\n properties.find(\n (prop) =>\n prop.nameControl &&\n property.nameControl &&\n prop.nameControl.id === property.nameControl.id &&\n prop.id !== property.id,\n ),\n );\n if (duplicates.length > 0) {\n warnings.push(\n 'settings.lifecycles.card.props.transition.messages.duplicatedTransitionProperties',\n );\n }\n }\n\n if (warnings.length) {\n const exception: Exception = {\n message: this.translate.instant(\n 'settings.lifecycles.card.props.transition.messages.errors',\n ),\n details: [],\n code: '',\n };\n warnings.forEach((warn) => {\n exception.details.push({\n message: this.translate.instant(warn),\n code: '',\n });\n });\n\n this.message.errorDetailed(\n exception,\n this.translate.instant('shared.dataNotSaved'),\n );\n return;\n }\n\n this.activeModal.close(this.form.value);\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n getHeader(): string {\n return this.actionFormGroup\n ? this.actionFormGroup.controls.name.value\n : 'settings.workflows.card.action.createHeader';\n }\n\n ngOnInit() {\n if (this.actionFormGroup) {\n this.form.patchValue(this.actionFormGroup.getRawValue());\n if (this.actionFormGroup.controls.actionForm) {\n const groupCopy = cloneDeep(this.actionFormGroup.controls.actionForm);\n this.form.controls.actionForm = groupCopy;\n this.form.controls.actionForm.enable();\n }\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n\n
    \n \n
    \n @if (form.value.hasActionForm) {\n \n \n \n }\n \n \n \n
    \n
    \n \n\n
    \n \n \n
    \n\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {\n FormArray,\n FormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { WorkflowCardService } from '../../workflow-card.service';\nimport { WorkflowAction } from '../../../model/workflow-function.model';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-workflow-actions',\n templateUrl: './workflow-actions.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowActionsComponent implements OnInit, OnDestroy {\n @Input() actions: WorkflowAction[];\n @Input() formGroup: UntypedFormArray;\n\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n private service: WorkflowCardService,\n ) {}\n\n private getActionFormGroup(action = null): UntypedFormGroup {\n const actionGroup = this.getEmptyActionFormGroup();\n\n if (action?.actionForm) {\n const actionForm = this.getEmptyActionFormFormGroup();\n actionForm.patchValue(action.transitionForm);\n /** Заполняем требуемые поля, если они есть */\n if (action.actionForm.requestedProperties) {\n /* Перебираем все запрашиваемые свойства */\n action.actionForm.requestedProperties.map((property) => {\n /* Патчим каждого в свою группу */\n const propertyGroup = this.service.getRequestedPropertyFormGroup();\n propertyGroup.patchValue(property);\n /* Добавляем группу с requestedProperty в массив requestedProperties */\n const propertiesArray = actionForm.controls\n .requestedProperties as UntypedFormArray;\n propertiesArray.push(propertyGroup);\n });\n actionGroup.controls.actionForm = actionForm;\n }\n }\n\n return actionGroup;\n }\n\n private getEmptyActionFormGroup(): FormGroup {\n return this.fb.group({\n id: '',\n name: '',\n iconClass: '',\n labelStrings: [],\n hasActionForm: false,\n actionForm: this.getEmptyActionFormFormGroup(),\n });\n }\n\n private getEmptyActionFormFormGroup(): FormGroup {\n return this.fb.group({\n requestComment: false,\n commentIsRequired: false,\n requestedProperties: this.fb.array([]),\n });\n }\n\n public actionsGridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n this.service.editAction(null);\n },\n },\n {\n name: 'edit',\n handlerFn: () => {\n const action = this.gridService.selectedGroup$.getValue();\n this.service.editAction(action);\n },\n },\n {\n name: 'delete',\n handlerFn: () => {\n this.deleteAction(this.gridService.selectedGroupValue.id);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n this.service.editAction(group);\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.deleteAction(group.getRawValue().id);\n },\n },\n ],\n view: {\n name: 'actions',\n columns: [\n {\n name: 'name',\n header: 'settings.workflows.card.transitions.name',\n hint: 'settings.workflows.card.transitions.name',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n ],\n },\n };\n\n private addNewActionGroup(action) {\n const actionGroup = this.getActionFormGroup(action);\n actionGroup.patchValue(action);\n this.formGroup.push(actionGroup);\n }\n\n private load() {\n if (this.actions) {\n this.formGroup.clear();\n this.actions.forEach((action) => {\n this.addNewActionGroup(action);\n });\n this.gridService.detectChanges();\n }\n }\n\n private deleteAction(id: string): void {\n const actions = this.formGroup as FormArray;\n\n const index = actions.value.findIndex((action) => action.id === id);\n\n if (index >= 0) {\n actions.removeAt(index);\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n ngOnInit(): void {\n this.load();\n\n this.service.addAction$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((newGroup: UntypedFormGroup) => {\n this.addNewActionGroup(newGroup);\n this.gridService.detectChanges();\n });\n\n this.service.reloadFunction$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.gridService.detectChanges());\n }\n}\n","
    \n
    \n
    \n \n  {{ 'shared.actions.create' | translate }}\n \n \n {{ 'shared.actions.edit' | translate }}\n \n \n \n \n
    \n
    \n \n
    \n","import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n WorkflowFunctionType,\n WorkflowTransitionConditionType,\n} from 'src/app/settings-app/workflows/model/workflow.enum';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { WorkflowCardService } from '../workflow-card.service';\nimport {\n WorkflowAction,\n WorkflowFunctionBase,\n WorkflowFunctionTask,\n} from '../../model/workflow-function.model';\nimport { clone } from 'lodash';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-function',\n templateUrl: './workflow-function.component.html',\n styleUrls: ['./workflow-function.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowFunctionComponent implements OnInit {\n @Input() workflowFunction?: WorkflowFunctionBase;\n @Input() lifecycleId: string;\n\n public form = this.fb.group({\n id: null,\n name: ['', Validators.required],\n iconClass: null,\n nextFunctionId: null,\n actions: this.fb.array([]),\n labelStrings: null,\n transitions: this.fb.array([]),\n type: '',\n performers: this.fb.array([]),\n moveToStateId: null,\n skipCompletedTask: null,\n skipActionId: null,\n conditionsForSkipping: this.fb.array([]),\n skipIfPerformerIsInitiator: false,\n });\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n public functionType = WorkflowFunctionType;\n public workflowFunctionTask: WorkflowFunctionTask;\n public states$ = this.workflowCardService\n .getStates()\n .pipe(takeUntilDestroyed());\n\n private existingWorkflowFunctions: WorkflowFunctionBase[];\n private readonly destroyRef = inject(DestroyRef);\n\n public get workflowFunctions(): WorkflowFunctionBase[] {\n return this.existingWorkflowFunctions.filter(\n (func) => func.type === WorkflowFunctionType.task,\n );\n }\n\n public get actionsFormGroup(): UntypedFormArray {\n return this.form.controls.actions as UntypedFormArray;\n }\n\n public get transitionsFormArray(): UntypedFormArray {\n return this.form.controls.transitions as UntypedFormArray;\n }\n\n public get labelStrings(): UntypedFormControl {\n return this.form.controls['labelStrings'] as UntypedFormControl;\n }\n\n public get nextFunctionId(): UntypedFormControl {\n return this.form.controls['nextFunctionId'] as UntypedFormControl;\n }\n\n public get conditionsForSkipping(): UntypedFormArray {\n return this.form.controls['conditionsForSkipping'] as UntypedFormArray;\n }\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n private translate: TranslateService,\n public workflowCardService: WorkflowCardService,\n ) {}\n\n public ngOnInit(): void {\n this.workflowFunctionTask = this.workflowFunction as WorkflowFunctionTask;\n this.load();\n }\n\n /**\n * Gets Header.\n *\n * @returns Header as string.\n */\n public getHeader(): string {\n return this.workflowFunction.name\n ? this.workflowFunction.name\n : 'settings.workflows.card.function.createHeader';\n }\n\n /** Saves Changes. */\n public ok(): void {\n const warnings = [];\n\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n warnings.push('shared.messages.requiredFieldsError');\n }\n\n const newWorkflowFunction = this.form.getRawValue();\n\n newWorkflowFunction.actions = this.form.controls.actions.getRawValue();\n\n if (this.form.value.skipActionId) {\n newWorkflowFunction.skipActionId = this.form.value.skipActionId.id;\n }\n\n /**Проверка количества исполнителей */\n if (\n this.workflowFunction.type === WorkflowFunctionType.task &&\n newWorkflowFunction.performers.length === 0\n ) {\n warnings.push('settings.workflows.card.messages.performerCountError');\n }\n\n if (newWorkflowFunction.type === WorkflowFunctionType.task) {\n newWorkflowFunction.transitions.map((t) => {\n if (!t.conditions) {\n warnings.push(\n 'components.workflowFunctionComponent.messages.transitionRequired',\n );\n return;\n }\n });\n const elseAfterAllCount = newWorkflowFunction.transitions.flatMap((t) =>\n t.conditions?.filter(\n (c) =>\n c.conditionType === WorkflowTransitionConditionType.elseAfterAll,\n ),\n ).length;\n\n if (elseAfterAllCount === 0) {\n warnings.push('settings.workflows.card.messages.requiredElseAfterAll');\n } else if (elseAfterAllCount > 1) {\n warnings.push('settings.workflows.card.messages.onlyOnceElseAfterAll');\n }\n }\n\n const transitions = newWorkflowFunction.transitions || [];\n const conditions = transitions.reduce((total, trans) => {\n if (trans.conditions) {\n return [...total, ...trans.conditions];\n } else {\n return [...total];\n }\n }, []);\n\n /** Проверяем действия */\n if (newWorkflowFunction?.actions?.length) {\n newWorkflowFunction.actions.forEach((action) => {\n const actionsConditions = conditions.filter(\n (condition) =>\n condition.expectedActionId === action.id ||\n condition.conditionType ===\n WorkflowTransitionConditionType.elseAfterAll,\n );\n\n /** Проверка на то, что каждое действие функции используется (имеет свое условие) */\n if (!actionsConditions.length) {\n warnings.push(\n 'settings.workflows.card.messages.requiredActionConditionError',\n );\n }\n });\n }\n\n if (!warnings.length && newWorkflowFunction.conditionsForSkipping?.length) {\n newWorkflowFunction.conditionsForSkipping.forEach((condition) => {\n condition.functionId = condition.functionId?.id;\n condition.actionId = condition.actionId?.id;\n });\n }\n\n /**Проверка на \"тупиковость\" функции (объяснение в вики)*/\n if (newWorkflowFunction.type === WorkflowFunctionType.task) {\n const elseConditionsCount = conditions.reduce(\n (count, condition) =>\n condition.conditionType ===\n WorkflowTransitionConditionType.elseAfterAll\n ? count + 1\n : count,\n 0,\n );\n const firstConditionsCount = conditions.reduce(\n (count, condition) =>\n condition.conditionType === WorkflowTransitionConditionType.first\n ? count + 1\n : count,\n 0,\n );\n if (\n !elseConditionsCount &&\n firstConditionsCount < conditions.length - 1\n ) {\n warnings.push('settings.workflows.card.messages.deadEndFunctionError');\n }\n }\n\n if (warnings.length) {\n this.workflowCardService.showValidationWarning(warnings);\n return;\n }\n\n this.activeModal.close(newWorkflowFunction);\n }\n\n /** Cancels changes. */\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n /**\n * Gets WorkflowActions.\n *\n * @param workflowFunction WorkflowFunction.\n *\n * @returns Actions.\n */\n public getActions(workflowFunction: WorkflowFunctionBase): WorkflowAction[] {\n return (\n (workflowFunction &&\n (\n this.workflowCardService.workflow.functions.find(\n (func) => func.id === workflowFunction.id,\n ) as WorkflowFunctionTask\n )?.actions) ??\n null\n );\n }\n\n /** Adds Skip Condition. */\n public addSkipCondition(): void {\n this.conditionsForSkipping.push(this.getSkipConditionFormGroup());\n }\n\n /**\n * Removes Condition.\n *\n * @param index index.\n */\n public removeCondition(index: number): void {\n this.conditionsForSkipping.removeAt(index);\n }\n\n private load(): void {\n if (!this.workflowFunction) {\n return;\n }\n\n this.form.patchValue(this.workflowFunction);\n\n this.existingWorkflowFunctions = [];\n (this.existingWorkflowFunctions as WorkflowFunctionBase[]) = clone(\n this.workflowCardService.workflow.functions,\n );\n\n /* Forming a list of functions for the selector,\n * where the opened function will be marked as 'current'\n */\n const currentFunction = clone(this.workflowFunction);\n currentFunction.name = this.translate.instant(\n 'settings.workflows.card.function.current',\n );\n if (this.workflowFunction.id) {\n this.existingWorkflowFunctions.splice(\n this.existingWorkflowFunctions.findIndex(\n (func) => func.id === this.workflowFunction.id,\n ),\n 1,\n );\n this.existingWorkflowFunctions.splice(0, 0, currentFunction);\n } else {\n this.existingWorkflowFunctions.unshift(currentFunction);\n }\n\n (\n this.workflowFunction as WorkflowFunctionTask\n ).conditionsForSkipping?.forEach((condition) => {\n const conditionForm = this.getSkipConditionFormGroup();\n const selectedFunction = this.existingWorkflowFunctions.find(\n (func) => func.id === condition.functionId,\n );\n conditionForm.controls.functionId.setValue(selectedFunction);\n conditionForm.controls.functionId.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n conditionForm.controls.actionId.setValue(null);\n });\n conditionForm.controls.actionId.setValue(\n (selectedFunction as WorkflowFunctionTask)?.actions?.find(\n (action) => action.id === condition.actionId,\n ),\n );\n\n conditionForm.controls.considerEntityVersion.setValue(\n condition.considerEntityVersion,\n );\n\n this.conditionsForSkipping.push(conditionForm);\n });\n\n if ((this.workflowFunction as WorkflowFunctionTask).performers) {\n /* Перебираем всех performers у данного transition */\n (this.workflowFunction as WorkflowFunctionTask).performers.map(\n (performer) => {\n if (performer.userId) {\n performer.id = performer.userId;\n performer.type = 'user';\n } else if (performer.groupId) {\n performer.id = performer.groupId;\n performer.type = 'group';\n } else if (performer.role) {\n performer.id = performer.role;\n performer.name = this.workflowCardService.getRoleName(\n performer.role,\n );\n performer.type = 'role';\n }\n\n const performerGroup =\n this.workflowCardService.getPerformerFormGroup();\n\n performerGroup.controls.performer.patchValue(performer);\n const performersArray = this.form.controls\n .performers as UntypedFormArray;\n performersArray.push(performerGroup);\n },\n );\n }\n }\n\n private getSkipConditionFormGroup(): UntypedFormGroup {\n const conditionGroup = this.fb.group({\n id: Guid.generate(),\n functionId: [null, Validators.required],\n actionId: [null, Validators.required],\n considerEntityVersion: false,\n });\n\n return conditionGroup;\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n \n
    \n \n \n \n \n\n
    \n \n \n \n
    \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n
  • \n {{ 'settings.workflows.card.function.tabs.skipTasks' | translate }}\n \n \n \n\n \n {{ 'settings.workflows.card.function.noConditions' | translate }}\n

    \n\n \n

    0\">\n {{ 'settings.workflows.card.function.or' | translate }}\n

    \n
    \n
    \n
    \n
    \n \n

    \n {{ 'settings.workflows.card.function.withResult' | translate }}\n

    \n \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n \n \n
    \n
    \n
  • \n \n
    \n \n \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { WorkflowFunctionType } from 'src/app/settings-app/workflows/model/workflow.enum';\nimport { WorkflowCardService } from '../../workflow-card.service';\n\n@Component({\n selector: 'wp-workflow-next-function',\n templateUrl: './workflow-next-function.component.html',\n standalone: false,\n})\nexport class WorkflowNextFunctionComponent implements OnInit {\n @Input() readonly: boolean;\n @Input() functionId: string;\n @Input() nextFunctionId: UntypedFormControl;\n @Input() allowNull = false;\n public workflowFunctionsOptions = [];\n\n constructor(public service: WorkflowCardService) {}\n\n ngOnInit() {\n this.service.workflow?.functions.forEach((func) => {\n if (func.type !== WorkflowFunctionType.start) {\n this.workflowFunctionsOptions = [\n ...this.workflowFunctionsOptions,\n { id: func.id, name: func.name },\n ];\n }\n });\n }\n}\n","
    \n \n \n
    \n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators,\n FormArray,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { WorkflowCardService } from '../../../workflow-card.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WorkflowAction } from 'src/app/settings-app/workflows/model/workflow-function.model';\nimport { WorkflowTransitionConditionType } from 'src/app/settings-app/workflows/model/workflow.enum';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'wp-transition-conditions',\n templateUrl: './transition-conditions.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class TransitionConditionsComponent implements OnInit, OnDestroy {\n @Input() readonly: boolean;\n @Input() actions: WorkflowAction[];\n @Input() functionId: string;\n @Input() localStrings: UntypedFormArray;\n @Input() conditions: UntypedFormArray;\n\n private destroyed$ = new Subject();\n private conditionTypeValues = [\n {\n id: WorkflowTransitionConditionType.all,\n name: this.translate.instant(\n 'settings.workflows.card.transitions.conditionTypes.All',\n ),\n value: WorkflowTransitionConditionType.all,\n },\n {\n id: WorkflowTransitionConditionType.first,\n name: this.translate.instant(\n 'settings.workflows.card.transitions.conditionTypes.First',\n ),\n value: WorkflowTransitionConditionType.first,\n },\n {\n id: WorkflowTransitionConditionType.elseAfterAll,\n name: this.translate.instant(\n 'settings.workflows.card.transitions.conditionTypes.ElseAfterAll',\n ),\n value: WorkflowTransitionConditionType.elseAfterAll,\n },\n ];\n\n private getActionsList() {\n return this.actions;\n }\n\n public get addButtonDisable(): boolean {\n return this.readonly;\n }\n\n private getConditionsStringsFormGroup() {\n const group = this.fb.group({\n id: Guid.generate(),\n conditionType: [null, Validators.required],\n expectedAction: [null, Validators.required],\n });\n group.controls.conditionType.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((conditionType) => {\n if (conditionType?.id !== 'ElseAfterAll') {\n group.controls.expectedAction.enable();\n group.controls.expectedAction.addValidators(Validators.required);\n group.controls.expectedAction.updateValueAndValidity();\n this.gridService.detectChanges();\n } else {\n group.controls.expectedAction.removeValidators(Validators.required);\n group.controls.expectedAction.setValue(null);\n group.controls.expectedAction.disable();\n group.controls.expectedAction.updateValueAndValidity();\n this.gridService.detectChanges();\n }\n });\n return group;\n }\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => this.addString(),\n },\n {\n name: 'delete',\n handlerFn: () => this.deleteString(),\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.deleteString(index);\n },\n },\n ],\n view: {\n name: 'strings',\n columns: [\n {\n name: 'conditionType',\n header: 'settings.workflows.card.condition.conditionType',\n hint: 'settings.workflows.card.condition.conditionType',\n type: GridColumnType.SelectControl,\n placeholder: 'settings.workflows.card.condition.conditionType',\n values: this.conditionTypeValues,\n },\n {\n name: 'expectedAction',\n header: 'settings.workflows.card.condition.expectedAction',\n hint: 'settings.workflows.card.condition.expectedAction',\n type: GridColumnType.SelectControl,\n placeholder: 'settings.workflows.card.condition.expectedAction',\n values: () => this.getActionsList(),\n },\n ],\n },\n };\n\n constructor(\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n public service: WorkflowCardService,\n private translate: TranslateService,\n ) {}\n\n public load() {\n if (this.conditions.value !== null) {\n this.conditions.value.forEach((string) => {\n const group = this.getConditionsStringsFormGroup();\n\n group.patchValue({\n conditionType: this.conditionTypeValues.find(\n (condition) => condition.id === string.conditionType,\n ),\n expectedAction: this.actions.find(\n (action) => action.id === string?.expectedActionId,\n ),\n });\n this.localStrings.push(group);\n });\n }\n }\n\n private subscribeConditionsChanges() {\n this.localStrings.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((localStrings) => {\n this.conditions.setValue(null);\n localStrings.map((localString) => {\n this.conditions.setValue([\n ...(this.conditions?.value || []),\n {\n conditionType: localString?.conditionType?.value || null,\n expectedActionId: localString?.expectedAction?.id || null,\n },\n ]);\n });\n });\n }\n\n public addString() {\n const group = this.getConditionsStringsFormGroup();\n\n this.localStrings.push(group);\n this.gridService.selectGroup(group);\n }\n\n /** Удалить строку. */\n private deleteString(index?: number) {\n const conditions = this.localStrings as FormArray;\n index =\n index ??\n conditions.value.findIndex(\n (s) => s.id === this.gridService.selectedGroupValue.id,\n );\n\n conditions.removeAt(index);\n conditions.markAsDirty();\n }\n\n ngOnInit() {\n this.load();\n this.subscribeConditionsChanges();\n this.service.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.gridService.detectChanges());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n \n
    \n
    \n \n \n {{ 'shared.actions.create' | translate }}\n \n \n \n \n
    \n
    \n\n \n
    \n
    \n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n WorkflowAction,\n WorkflowTransition,\n} from '../../../model/workflow-function.model';\nimport { WorkflowCardService } from '../../workflow-card.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-transition-modal',\n templateUrl: './workflow-transition-modal.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowTransitionModalComponent implements OnInit {\n @Input() actions: WorkflowAction[];\n @Input() transitionFormGroup: WorkflowTransition;\n @Input() functionId: string;\n\n public languages: NamedEntity[] = [];\n\n form = this.fb.group({\n id: [Guid.generate()],\n name: ['', Validators.required],\n nextFunctionId: [null],\n conditions: null,\n localStrings: this.fb.array([]),\n moveToStateId: null,\n });\n\n public get localStrings(): UntypedFormArray {\n return this.form.controls['localStrings'] as UntypedFormArray;\n }\n\n public get conditions(): UntypedFormControl {\n return this.form.controls['conditions'] as UntypedFormControl;\n }\n\n public get nextFunctionId(): UntypedFormControl {\n return this.form.controls['nextFunctionId'] as UntypedFormControl;\n }\n\n private destroyRef = inject(DestroyRef);\n\n states$ = this.service.getStates().pipe(takeUntilDestroyed(this.destroyRef));\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private service: WorkflowCardService,\n ) {}\n\n public ok() {\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n this.service.detectChanges();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n this.activeModal.close(this.form.getRawValue());\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n getHeader(): string {\n return this.transitionFormGroup.name\n ? this.transitionFormGroup.name\n : 'settings.lifecycles.card.props.transition.createHeader';\n }\n\n ngOnInit() {\n if (this.transitionFormGroup) {\n this.form.patchValue(this.transitionFormGroup);\n }\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n\n
    \n \n
    \n \n \n
    \n\n
    \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import {\n Component,\n OnInit,\n ChangeDetectorRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n UntypedFormArray,\n} from '@angular/forms';\nimport { WorkflowCardService } from '../../workflow-card.service';\nimport {\n WorkflowAction,\n WorkflowTransition,\n} from '../../../model/workflow-function.model';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-workflow-transitions',\n templateUrl: './workflow-transitions.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowTransitionsComponent implements OnInit, OnDestroy {\n @Input() actions: WorkflowAction[];\n @Input() transitionsArray: UntypedFormArray;\n @Input() transitions: WorkflowTransition[];\n @Input() functionId: string;\n\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n public languages = [];\n\n private destroyed$ = new Subject();\n constructor(\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n private service: WorkflowCardService,\n ) {}\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private getTransitionFormGroup(): UntypedFormGroup {\n return this.fb.group({\n id: '',\n name: '',\n conditions: [],\n conditionsString: '',\n nextFunctionId: null,\n nextFunctionString: '',\n moveToStateId: null,\n });\n }\n\n public transitionsGridOptions: GridOptions = {\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const newTransition = this.getTransitionFormGroup();\n this.service.editTransition(\n this.functionId,\n this.actions,\n newTransition,\n );\n },\n },\n {\n name: 'edit',\n handlerFn: () => {\n const transition = this.gridService.selectedGroup$.getValue();\n this.service.editTransition(\n this.functionId,\n this.actions,\n transition,\n );\n },\n },\n {\n name: 'delete',\n handlerFn: () => {\n this.deleteTransition(this.gridService.selectedGroupValue.id);\n },\n },\n ],\n rowCommands: [\n {\n name: 'edit',\n label: 'shared.actions.edit',\n handlerFn: (group) => {\n const transition = group;\n this.service.editTransition(\n this.functionId,\n this.actions,\n transition,\n );\n },\n },\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (group) => {\n this.deleteTransition(group.getRawValue().id);\n },\n },\n ],\n view: {\n name: 'transitions',\n columns: [\n {\n name: 'name',\n header: 'settings.workflows.card.transitions.name',\n hint: 'settings.workflows.card.transitions.name',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'conditionsString',\n header: 'settings.workflows.card.transitions.conditions',\n hint: 'settings.workflows.card.transitions.conditions',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n {\n name: 'nextFunctionString',\n header: 'settings.workflows.card.transitions.nextFunction',\n hint: 'settings.workflows.card.transitions.nextFunction',\n type: GridColumnType.String,\n forceCellUpdating: true,\n },\n ],\n },\n };\n\n private addNewTransitionGroup(transition) {\n const transitionGroup = this.getTransitionFormGroup();\n transitionGroup.patchValue(transition);\n this.transitionsArray.push(transitionGroup);\n }\n\n private deleteTransition(id: string) {\n const transitions = this.transitionsArray as UntypedFormArray;\n\n const index = transitions.value.findIndex(\n (transition) => transition.id === id,\n );\n\n if (index >= 0) {\n transitions.removeAt(index);\n }\n }\n\n private load() {\n if (!this.transitions) {\n return;\n }\n\n this.transitionsArray.clear();\n this.transitions.forEach((transition) => {\n let conditionsString = '';\n let nextFunctionString = '';\n\n if (transition.conditions) {\n conditionsString = this.service.getConditionsString(\n transition.conditions,\n );\n }\n\n nextFunctionString = this.service.workflow.functions.find(\n (func) => func.id === transition.nextFunctionId,\n )?.name;\n\n this.addNewTransitionGroup({\n ...transition,\n conditionsString,\n nextFunctionString,\n });\n });\n }\n\n ngOnInit(): void {\n this.load();\n this.service.addTransition$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((newGroup: UntypedFormGroup) => {\n this.addNewTransitionGroup(newGroup);\n this.gridService.detectChanges();\n });\n }\n}\n","
    \n
    \n
    \n \n  {{ 'shared.actions.create' | translate }}\n \n \n {{ 'shared.actions.edit' | translate }}\n \n \n \n \n
    \n
    \n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { WorkflowFunctionNotification } from '../../model/workflow-function.model';\nimport { WorkflowFunctionType } from '../../model/workflow.enum';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { WorkflowCardService } from '../workflow-card.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'wp-workflow-notification',\n templateUrl: './workflow-notification.component.html',\n styleUrls: ['./workflow-notification.component.scss'],\n providers: [GridService],\n standalone: false,\n})\nexport class WorkflowNotificationComponent implements OnInit {\n @Input() workflowFunction?: WorkflowFunctionNotification;\n @Input() lifecycleId: string;\n\n public isLoading: boolean;\n public isSaving: boolean;\n public readonly: boolean;\n public functionType = WorkflowFunctionType;\n public functionId: string;\n\n public form = this.fb.group({\n id: null,\n name: ['', Validators.required],\n nextFunctionId: null,\n labelStrings: null,\n type: '',\n recipients: this.fb.array([]),\n });\n\n private workflowFunctions = [];\n\n public get labelStrings(): UntypedFormControl {\n return this.form.controls['labelStrings'] as UntypedFormControl;\n }\n\n public get nextFunctionIdControl(): UntypedFormControl {\n return this.form.controls['nextFunctionId'] as UntypedFormControl;\n }\n\n constructor(\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n public gridService: GridService,\n private notification: NotificationService,\n public workflowCardService: WorkflowCardService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n\n this.workflowCardService.workflow?.functions.forEach((func) => {\n if (func.type !== WorkflowFunctionType.start) {\n this.workflowFunctions.push({ id: func.id, name: func.name });\n }\n });\n }\n\n /**\n * Gets header for transitionFormGroup.\n *\n * @returns header.\n */\n public getHeader(): string {\n return this.workflowFunction.name\n ? this.workflowFunction.name\n : 'settings.workflows.card.function.createNotification';\n }\n\n /** Closes modal and sends data to service. */\n public ok(): void {\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n const newWorkflowFunction = this.form.getRawValue();\n this.activeModal.close(newWorkflowFunction);\n }\n\n /** Closes modal and dismisses changes. */\n public cancel = (): void => {\n this.activeModal.dismiss('cancel');\n };\n\n private load(): void {\n if (!this.workflowFunction) {\n return;\n }\n\n this.form.patchValue(this.workflowFunction);\n\n this.workflowFunction.recipients?.map((recipient) => {\n if (recipient.userId) {\n recipient.id = recipient.userId;\n recipient.type = 'user';\n } else if (recipient.groupId) {\n recipient.id = recipient.groupId;\n recipient.type = 'group';\n } else if (recipient.role) {\n recipient.id = recipient.role;\n recipient.name = this.workflowCardService.getRoleName(recipient.role);\n recipient.type = 'role';\n }\n\n const performerGroup = this.workflowCardService.getPerformerFormGroup();\n\n performerGroup.controls.performer.patchValue(recipient);\n const performersArray = this.form.controls.recipients as UntypedFormArray;\n performersArray.push(performerGroup);\n });\n }\n}\n","
    \n
    \n

    \n {{ getHeader() | translate }}\n

    \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n \n
    \n\n
    \n \n {{ 'shared.actions.ok' | translate }}\n \n \n
    \n\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { WorkflowFunctionType } from 'src/app/settings-app/workflows/model/workflow.enum';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-toolbar',\n templateUrl: './workflow-toolbar.component.html',\n standalone: false,\n})\nexport class WorkflowToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n functionTypesEnum = WorkflowFunctionType;\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","
    \n
    \n \n
    \n \n {{ 'components.workflowToolbarComponent.actions.createTask' | translate }}\n \n \n {{ 'components.workflowToolbarComponent.actions.createCondition' | translate }}\n \n \n {{ 'components.workflowToolbarComponent.actions.createNotification' | translate }}\n \n
    \n
    \n
    \n \n {{ 'shared.actions.edit' | translate }}\n \n\n \n \n \n
    \n
    \n \n \n \n\n \n \n \n
    \n
    \n","import { Component } from '@angular/core';\nimport {\n UntypedFormGroup,\n Validators,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/** Диалог создания правила валидации. */\n@Component({\n selector: 'wp-workflow-creation',\n templateUrl: './workflow-creation.component.html',\n standalone: false,\n})\nexport class WorkflowCreationComponent {\n isSaving = false;\n\n form: UntypedFormGroup = this.fb.group({\n id: Guid.generate(),\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n lifecycle: [null, Validators.required],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n id: this.form.value.id,\n name: this.form.value.name,\n lifecycleId: this.form.value.lifecycle?.id,\n };\n\n this.data\n .collection('WorkflowDeclarations')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal(\n 'settings.workflows.creation.messages.created',\n );\n this.state.go('settings.workflow', {\n entityId: response.id,\n });\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n /**\n * Returns the filter by LC to select state\n *\n * @returns Filter.\n */\n public getFilter() {\n const lifecycle = this.form.value.lifecycle;\n return lifecycle\n ? {\n filter: [{ lifecycleId: { type: 'guid', value: lifecycle.id } }],\n }\n : null;\n }\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'settings.workflows.creation.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { DefaultFilterService } from '../../shared/default-filter/default-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { WorkflowCreationComponent } from '../creation/workflow-creation.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: DefaultFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class WorkflowListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private service: EntityListService,\n private gridService: GridService,\n private app: AppService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n private state: StateService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'settings.workflows.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'WorkflowDeclaration',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('settings.workflow', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'WorkflowDeclaration',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n this.modalService.open(WorkflowCreationComponent);\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","export enum WorkflowFunctionType {\n start = 'Start',\n task = 'Task',\n finish = 'Finish',\n condition = 'Condition',\n notification = 'Notification',\n}\n\nexport enum WorkflowTransitionConditionType {\n all = 'All',\n first = 'First',\n elseAfterAll = 'ElseAfterAll',\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { WORKFLOW_LIST } from 'src/app/shared/lists/workflow.list';\nimport { WorkflowListComponent } from './list/workflow-list.component';\nimport { WorkflowCreationComponent } from './creation/workflow-creation.component';\nimport { WorkflowCardComponent } from './card/workflow-card.component';\nimport { WorkflowToolbarComponent } from './card/workflow-toolbar/workflow-toolbar.component';\nimport { TransitionConditionsComponent } from './card/workflow-function/workflow-transition-modal/transition-conditions/transition-conditions.components';\nimport { WorkflowActionsComponent } from './card/workflow-function/workflow-actions/workflow-actions.component';\nimport { WorkflowNextFunctionComponent } from './card/workflow-function/workflow-next-function/workflow-next-function.component';\nimport { WorkflowFunctionComponent } from './card/workflow-function/workflow-function.component';\nimport { WorkflowTransitionsComponent } from './card/workflow-function/workflow-transitions/workflow-transitions.component';\nimport { WorkflowActionModalComponent } from './card/workflow-function/workflow-action-modal/workflow-action-modal.component';\nimport { WorkflowTransitionModalComponent } from './card/workflow-function/workflow-transition-modal/workflow-transition-modal.component';\nimport { WorkflowCardService } from './card/workflow-card.service';\nimport { PerformersModule } from 'src/app/settings-app/shared/performers/performers.module';\nimport { NamingLocalizationModule } from 'src/app/settings-app/shared/naming-localization/naming-localization.module';\nimport { LifecyclesModule } from 'src/app/settings-app/lifecycle/lifecycles.module';\nimport { TransitionFormService } from 'src/app/settings-app/lifecycle/card/state-modal/transition-modal/transition-form/transition-form.service';\nimport { WorkflowConditionComponent } from './card/workflow-condition/workflow-condition.component';\nimport { WorkflowConditionModalComponent } from './card/workflow-condition/workflow-condition-modal/workflow-conditon-modal.component';\nimport { WorkflowConditionToolbarComponent } from './card/workflow-condition/workflow-condition-toolbar/workflow-condition-toolbar.component';\nimport { WorkflowNotificationComponent } from './card/workflow-notification/workflow-notification.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n WorkflowListComponent,\n WorkflowCreationComponent,\n WorkflowCardComponent,\n WorkflowToolbarComponent,\n TransitionConditionsComponent,\n WorkflowActionsComponent,\n WorkflowActionModalComponent,\n WorkflowFunctionComponent,\n WorkflowConditionComponent,\n WorkflowNextFunctionComponent,\n WorkflowTransitionsComponent,\n WorkflowTransitionModalComponent,\n WorkflowConditionModalComponent,\n WorkflowConditionToolbarComponent,\n WorkflowNotificationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n PerformersModule,\n EntityListComponent,\n NamingLocalizationModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'settings.workflows',\n url: '/workflows',\n component: WorkflowListComponent,\n params: {\n navigation: 'settings.workflows',\n },\n resolve: [\n { provide: VIEW_NAME, useValue: 'default' },\n { provide: LIST, useValue: WORKFLOW_LIST },\n ],\n },\n {\n name: 'settings.workflow',\n redirectTo: 'settings.workflow.schema',\n params: {\n navigation: 'settings.workflows',\n },\n url: '/workflows/{entityId:guid}',\n component: WorkflowCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n LifecyclesModule,\n GridModule,\n ],\n providers: [WorkflowCardService, TransitionFormService],\n})\nexport class WorkflowsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { CommentsInputComponent } from './shared/comments-input/comments-input.component';\nimport { CommentComponent } from './shared/comment/comment.component';\nimport { CommentsTabComponent } from './shared/tabs/comments-tab/comments-tab.component';\nimport { AttachmentsTabComponent } from './shared/tabs/attachments-tab/attachments-tab.component';\nimport { RichEditorBoxComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box.component';\nimport {\n FileBoxComponent,\n FileBoxDnDZoneDirective,\n FileBoxButtonAddComponent,\n} from 'src/app/shared/components/controls/file-box';\n\n@NgModule({\n declarations: [\n CommentsInputComponent,\n CommentsTabComponent,\n AttachmentsTabComponent,\n CommentComponent,\n ],\n exports: [CommentsTabComponent, AttachmentsTabComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SharedModule,\n RichEditorBoxComponent,\n FileBoxButtonAddComponent,\n FileBoxComponent,\n FileBoxDnDZoneDirective,\n ],\n})\nexport class CommentsModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { catchError, tap } from 'rxjs/operators';\nimport { Comment } from 'src/app/shared-features/comments/model/comment.model';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport _ from 'lodash';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\n\n@Injectable()\nexport class CommentsDataService {\n private currentPage = 0;\n private pageSize = 50;\n private loadedAll = false;\n private loadingPage = false;\n\n public get allCommentsLoaded(): boolean {\n return this.loadedAll;\n }\n\n constructor(\n private dataService: DataService,\n private notificationService: NotificationService,\n ) {}\n\n /** Resets pagination settings to default. */\n public resetPagination(): void {\n this.currentPage = 0;\n this.loadedAll = false;\n }\n\n public deleteComment(\n collection: string,\n entityId: string,\n commentId: string,\n ) {\n return this.dataService\n .collection(collection)\n .entity(entityId)\n .action('DeleteComment')\n .execute({\n commentId,\n })\n .pipe(\n catchError((err: Exception) => {\n this.notificationService.error(err.message);\n return of([]);\n }),\n );\n }\n\n /**\n * Gets comments.\n *\n * @param collection Entity name.\n * @param entityId Entity ID.\n * @param showSystemEvents Indicates to load system events for entity (state changes, task activity, etc).\n * @param sortDirection sort direction.\n * @returns comments.\n */\n public getComments(\n collection: string,\n entityId: string,\n showSystemEvents = false,\n sortDirection: SortDirection = SortDirection.oldest,\n ): Observable {\n if (this.loadedAll || this.loadingPage) {\n return of([]);\n }\n\n this.loadingPage = true;\n\n const query = {\n expand: {\n attachments: {\n select: ['*'],\n },\n },\n top: this.pageSize,\n skip: this.pageSize * this.currentPage,\n orderBy: [\n `created ${sortDirection === SortDirection.oldest ? 'asc' : 'desc'}`,\n ],\n };\n\n return this.dataService\n .collection(collection)\n .entity(entityId)\n .function('GetActivityItems')\n .get({ showSystemEvents: String(showSystemEvents) }, query)\n .pipe(\n tap((comments) => {\n this.loadedAll = comments.length < this.pageSize;\n this.currentPage++;\n this.loadingPage = false;\n\n comments.forEach((c) => {\n if (c.type === 'WorkflowStarted') {\n c.id += 'WS';\n }\n\n if (c.type === 'WorkflowStopped') {\n c.id += 'WF';\n }\n\n // TODO remove it after API fix\n if (c.metadata) {\n Object.keys(c.metadata).forEach((k) => {\n c.metadata[_.camelCase(k)] = c.metadata[k];\n });\n }\n });\n }),\n catchError(() => {\n this.loadingPage = false;\n this.notificationService.errorLocal(\n 'shared.comments.notifications.requestError',\n );\n return of([]);\n }),\n );\n }\n\n /**\n * Updates comment text and list of mentioned users.\n *\n * @param collection Current entity collection.\n * @param entityId\n * @param commentId\n * @param text comment text value.\n * @param mentionedUserIds list of mentioned users.\n * @returns Updated comment.\n */\n public editComment(\n collection: string,\n entityId: string,\n commentId: string,\n text: string,\n mentionedUserIds: string[],\n ): Observable | boolean> {\n return this.dataService\n .collection(collection)\n .entity(entityId)\n .action('EditComment')\n .execute>({ commentId, text, mentionedUserIds })\n .pipe(\n catchError((err: Exception) => {\n this.notificationService.error(err.message);\n return of(false);\n }),\n );\n }\n\n /**\n * Creates new comment.\n *\n * @param collection Current entity collection.\n * @param entityId\n * @param text comment text value\n * @param mentionedUserIds list of mentioned users.\n * @returns Created comment.\n */\n public createComment(\n collection: string,\n entityId: string,\n text: string,\n mentionedUserIds: string[],\n ): Observable | null> {\n return this.dataService\n .collection(collection)\n .entity(entityId)\n .action('AddComment')\n .execute>({\n text,\n mentionedUserIds,\n })\n .pipe(\n catchError((err: Exception) => {\n this.notificationService.error(err.message);\n return of(null);\n }),\n );\n }\n}\n","import {\n computed,\n DestroyRef,\n inject,\n Injectable,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { TransitionService } from '@uirouter/core';\n\nimport { fromEvent, Observable, Subject, tap } from 'rxjs';\n\n@Injectable()\nexport class CommentsSaveService implements OnDestroy {\n private confirmSubject = new Subject();\n public confirm$: Observable = this.confirmSubject.asObservable();\n\n private _changingQueue = signal>>([]);\n public changingQueue = computed(this._changingQueue);\n\n private onTransitionStartListener: ReturnType;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private translate: TranslateService,\n private transitionService: TransitionService,\n ) {\n this.initSubscribes();\n }\n\n public ngOnDestroy(): void {\n this.onTransitionStartListener();\n }\n\n /**\n * Adds entity to queue.\n *\n * @param id Any `entityId`.\n *\n * */\n public addToQueue(id: string): void {\n this.removeFromQueue(id);\n this._changingQueue.update((value) => value.concat({ key: id }));\n }\n\n /**\n * Removes entity from queue.\n *\n * @param id Any `entityId`.\n *\n * */\n public removeFromQueue(id: string): void {\n this._changingQueue.update((value) =>\n value.filter((task) => task.key !== id),\n );\n }\n\n /**\n * Shows confirm message with \"leave\" warning.\n *\n * @return Result of window confirm.\n *\n * */\n public getConfirmResult(): boolean {\n return window.confirm(\n this.translate.instant('shared.comments.notifications.leave'),\n );\n }\n\n private initSubscribes(): void {\n fromEvent(window, 'beforeunload')\n .pipe(\n tap((event: Event) => {\n if (this.changingQueue.length) {\n event.preventDefault();\n const message = this.translate.instant('shared.leavePage');\n event.returnValue = message;\n return message;\n }\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.onTransitionStartListener = this.transitionService.onStart(\n {},\n (transition) => {\n if (this.changingQueue.length) {\n this.confirmSubject.next(true);\n\n if (!this.getConfirmResult()) {\n transition.abort();\n this.confirmSubject.next(false);\n }\n }\n },\n );\n }\n}\n","import { DestroyRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport _ from 'lodash';\n\nimport { MessageService } from 'src/app/core/message.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { AppService } from 'src/app/core/app.service';\n\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\n\nimport { Comment } from 'src/app/shared-features/comments/model/comment.model';\nimport { CommentsDataService } from './comments-data.service';\nimport { CommentsSaveService } from './comments-save.service';\nimport { CommentsSettings } from './comments.settings';\n\n@Injectable()\nexport class CommentsService implements OnDestroy {\n public comments: Comment[] = [];\n\n private activeCommentSubject = new BehaviorSubject(null);\n public activeComment$ = this.activeCommentSubject.asObservable();\n\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n\n private commentUpdateSubject = new Subject<{\n commentId: string;\n text: string;\n }>();\n public commentUpdate$ = this.commentUpdateSubject.asObservable();\n\n private _collection: string;\n private _entityId: string;\n private _showSystemEvents = true;\n private settings: CommentsSettings;\n private scrollSubscription: Subscription | null;\n private readonly destroyRef = inject(DestroyRef);\n\n public get collection(): string {\n return this._collection;\n }\n\n public get entityId(): string {\n return this._entityId;\n }\n\n public get showSystemEvents(): boolean {\n return this._showSystemEvents;\n }\n\n constructor(\n private commentDataService: CommentsDataService,\n private commentSaveService: CommentsSaveService,\n private appService: AppService,\n private sortService: SortService,\n private messageService: MessageService,\n private chromeService: ChromeService,\n private localConfigService: LocalConfigService,\n ) {\n this.settings = this.localConfigService.getConfig(CommentsSettings);\n this._showSystemEvents = this.settings.showSystemEvents;\n }\n\n public ngOnDestroy(): void {\n this.scrollSubscription?.unsubscribe();\n }\n\n /**\n * Service initialization. Also emits comments loading.\n *\n * @param collection Entity name.\n * @param entityId Entity ID.\n */\n public init(collection: string, entityId: string): void {\n this._collection = collection;\n this._entityId = entityId;\n\n this.sortService.sortDirection$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reload();\n });\n\n this.load();\n }\n\n /**\n * Sets `showSystemEvents` value.\n *\n * @param value checkbox value.\n *\n */\n public setShowSystemEvents(value: boolean): void {\n this._showSystemEvents = value;\n this.reload();\n\n this.settings.showSystemEvents = value;\n this.localConfigService.setConfig(CommentsSettings, this.settings);\n }\n\n /** Reloads comments. */\n public reload(): void {\n if (!this.scrollSubscription) {\n this.enableInfinityScroll();\n }\n\n this.commentDataService.resetPagination();\n this.load(true);\n }\n\n /**\n * Loads comments.\n *\n * @param reload Indicates to drop current comments collection.\n */\n public load(reload = false): void {\n this.loadingSubject.next(true);\n\n this.commentDataService\n .getComments(\n this.collection,\n this.entityId,\n this._showSystemEvents,\n this.sortService.sortDirection,\n )\n .pipe(\n tap((comments) => {\n if (reload) {\n this.comments.length = 0;\n }\n\n comments.forEach((comment) => {\n comment.attachments.forEach((attachment) => {\n attachment.modifiedById = comment.modifiedBy.id;\n });\n });\n }),\n map((comments) =>\n _.uniqBy(\n this.comments.concat(comments).sort((prev, next) => {\n if (this.sortService.sortDirection === SortDirection.newest) {\n return new Date(prev.created) > new Date(next.created) ? -1 : 1;\n }\n return new Date(prev.created) < new Date(next.created) ? -1 : 1;\n }),\n 'id',\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((comments) => {\n this.comments = comments;\n this.loadingSubject.next(false);\n\n if (this.commentDataService.allCommentsLoaded) {\n this.scrollSubscription?.unsubscribe();\n this.scrollSubscription = null;\n }\n });\n }\n\n /**\n * Updates comment.\n *\n * @param commentId Comment ID.\n * @param text new value.\n * @param mentionedUserIds list of mentioned users.\n */\n public editComment(\n commentId: string,\n text: string,\n mentionedUserIds: string[],\n ): Observable | boolean> {\n this.commentSaveService.removeFromQueue(commentId);\n\n return this.commentDataService\n .editComment(\n this.collection,\n this.entityId,\n commentId,\n text,\n mentionedUserIds,\n )\n .pipe(\n tap((updatedComment) => {\n if (updatedComment === false) {\n this.reload();\n return;\n }\n\n const comment = this.comments.find(\n (comment) => comment.id === commentId,\n );\n\n if (comment) {\n comment.text = text;\n this.commentUpdateSubject.next({\n commentId,\n text,\n });\n }\n }),\n );\n }\n\n /**\n * Deletes comment.\n *\n * @param commentId Comment id.\n * @param forceDelete Indicates whether to delete comment immediately without confirm message.\n *\n * */\n public deleteComment(commentId: string, forceDelete = false): void {\n if (forceDelete) {\n this.removeComment(commentId);\n return;\n }\n\n this.messageService.confirmLocal('shared.deleteConfirmation').then(\n () => this.removeComment(commentId),\n () => null,\n );\n }\n\n /** Enables comments lazy-loading on scroll event. */\n public enableInfinityScroll(): void {\n this.scrollSubscription = this.chromeService.setInfinityScroll(() =>\n this.load(),\n );\n }\n\n /**\n * Checks if the entity can be edited .\n *\n * @param userId User id.\n * @returns `true` if editable.\n */\n public isEditAllowed(userId: string): boolean {\n return (\n this.appService.session.user.id === userId &&\n this.appService.checkEntityPermission('Comment', PermissionType.Modify)\n );\n }\n\n /**\n * Sets comment into edit mode. Resets to view mode if `null` is sent.\n *\n * @param id comment id or `null`.\n */\n public setActiveComment(id: string | null): void {\n this.activeCommentSubject.next(id);\n }\n\n private removeComment(commentId: string): void {\n this.commentDataService\n .deleteComment(this.collection, this.entityId, commentId)\n .subscribe({\n next: () => {\n _.remove(this.comments, (comment) => comment.id === commentId);\n this.loadingSubject.next(false);\n },\n error: () => {\n this.reload();\n },\n });\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class CommentsSettings implements BaseSettings {\n public readonly name = 'CommentsSettings';\n public version: number;\n public showSystemEvents: boolean;\n\n public getDefault(): CommentsSettings {\n return {\n version: 1,\n showSystemEvents: true,\n } as CommentsSettings;\n }\n}\n","export enum SortDirection {\n newest = 'Newest',\n oldest = 'Oldest',\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport { NgbModal, NgbNav } from '@ng-bootstrap/ng-bootstrap';\n\nimport { Subject, merge } from 'rxjs';\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\n\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport {\n UserInfoComponent,\n UserInfoComponentParams,\n} from 'src/app/shared/components/features/user-info';\nimport { md } from 'src/app/shared/components/controls/rich-editor-box/markdown/markdown';\n\nimport { Comment } from 'src/app/shared-features/comments/model/comment.model';\nimport { CommentsService } from 'src/app/shared-features/comments/core/comments.service';\nimport { CommentsSaveService } from 'src/app/shared-features/comments/core/comments-save.service';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-comment',\n templateUrl: './comment.component.html',\n styleUrls: ['./comment.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CommentComponent implements OnDestroy {\n @Input() public comment: Comment;\n\n public isAvatarLoaded = false;\n public forceEditMode = false;\n\n private readonly outsideClickDelay = 100;\n private readonly destroyed$ = new Subject();\n\n public get renderedText(): string {\n return md.render(this.comment.text);\n }\n\n constructor(\n public saveService: CommentsSaveService,\n public commentsService: CommentsService,\n public appService: AppService,\n private cdr: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n modalService: NgbModal,\n ngbNavService: NgbNav,\n ) {\n modalService.activeInstances\n .pipe(debounceTime(this.outsideClickDelay), takeUntil(this.destroyed$))\n .subscribe((ref) => {\n this.forceEditMode = !!ref.length;\n });\n\n merge(ngbNavService.navChange, this.saveService.confirm$)\n .pipe(\n tap(() => (this.forceEditMode = true)),\n debounceTime(this.outsideClickDelay),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.forceEditMode = false;\n });\n\n this.commentsService.commentUpdate$\n .pipe(\n filter((e) => !!e && e.commentId === this.comment?.id),\n takeUntil(this.destroyed$),\n )\n .subscribe((event) => {\n this.comment.text = event.text;\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public deleteComment(): void {\n this.commentsService.deleteComment(this.comment.id);\n }\n\n public setEditMode(): void {\n this.commentsService.setActiveComment(this.comment.id);\n }\n\n public setViewMode(): void {\n // TODO: check it\n if (!this.forceEditMode) {\n this.saveService.removeFromQueue(this.comment.id);\n this.commentsService.setActiveComment(null);\n }\n }\n\n public isSubstituted(comment: Comment): boolean {\n return (comment as any).performer !== comment.modifiedBy.name;\n }\n\n /**\n * Opens user info if mention was clicked.\n *\n * @param event Mouse event.\n */\n public openUserInfo(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n if (!target?.classList.contains('mention')) {\n return;\n }\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n nickname: target.textContent,\n },\n injector: this.injector,\n },\n });\n }\n}\n","
    \n \n\n
    \n @switch (comment.type) {\n @case ('StateChanged') {\n
    \n
    \n \n \n — {{ 'shared.comments.titles.stateChanged' | translate }}\n \n
    \n\n
    \n
    \n @if ($any(comment).metadata.fromStateName) {\n \n {{ $any(comment).metadata.fromStateName }}\n \n\n \n }\n\n \n {{ $any(comment).metadata.toStateName }}\n \n
    \n\n @if ($any(comment).metadata.text) {\n
    \n }\n
    \n
    \n }\n\n @case ('TaskPerformed') {\n
    \n
    \n \n \n — {{ 'shared.comments.titles.taskChanged' | translate }}\n \n
    \n\n
    \n
    \n {{ 'shared.comments.titles.task' | translate }}:\n {{ $any(comment).metadata.taskName }}\n
    \n\n
    \n {{ 'shared.comments.titles.workflowActionLabel' | translate }}:\n {{ $any(comment).metadata.resolutionName }}\n
    \n\n @if ($any(comment).metadata.resolutionComment) {\n
    \n }\n
    \n
    \n }\n\n @case ('WorkflowStarted') {\n
    \n
    \n \n\n \n — {{ 'shared.comments.titles.workflowStarted' | translate }}\n \n
    \n\n
    \n
    \n {{ 'shared.comments.titles.workflow' | translate }}:\n {{ $any(comment).metadata.workflowName }}\n
    \n
    \n
    \n }\n\n @case ('WorkflowStopped') {\n
    \n
    \n \n \n — {{ 'shared.comments.titles.workflowFinished' | translate }}\n \n
    \n\n
    \n
    \n {{ 'shared.comments.titles.workflow' | translate }}:\n {{ $any(comment).metadata.workflowName }}\n
    \n
    \n
    \n }\n\n @default {\n
    \n
    \n
    \n \n
    \n\n @if (commentsService.isEditAllowed(comment.modifiedBy?.id)) {\n
    \n @if ((commentsService.activeComment$ | async) !== comment.id) {\n \n }\n\n \n
    \n }\n
    \n\n @if ((commentsService.activeComment$ | async) === comment.id) {\n \n } @else {\n
    \n }\n
    \n\n @if (comment.attachments && (commentsService.activeComment$ | async) !== comment.id) {\n
    \n \n
    \n }\n }\n }\n \n\n\n\n @if (comment.realUser && comment.realUser.id !== comment.modifiedBy.id) {\n {{ comment.realUser?.name }}\n {{ 'shared.comments.titles.for' | translate }} \n }\n\n \n {{ comment.modifiedBy?.name }}\n \n\n \n {{ comment.created | date: 'medium' : this.appService.session.timeZoneOffset }}\n\n","import {\n AfterViewInit,\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n inject,\n DestroyRef,\n signal,\n Injector,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\n\nimport {\n combineLatest,\n debounceTime,\n firstValueFrom,\n forkJoin,\n Observable,\n startWith,\n} from 'rxjs';\n\nimport { Comment } from 'src/app/shared-features/comments/model/comment.model';\nimport { CommentsService } from 'src/app/shared-features/comments/core/comments.service';\nimport { CommentsSaveService } from 'src/app/shared-features/comments/core/comments-save.service';\nimport { CommentsDataService } from 'src/app/shared-features/comments/core/comments-data.service';\nimport { FilesService } from 'src/app/shared/components/controls/file-box';\n\n@Component({\n selector: 'tmt-comments-input',\n templateUrl: './comments-input.component.html',\n styleUrls: ['./comments-input.component.scss'],\n providers: [FilesService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CommentsInputComponent implements AfterViewInit, OnInit {\n @Input() public comment: Comment<'Comment'> | null;\n\n public isSaveButtonVisible = signal(false);\n public isSaving = signal(false);\n public commentTextControl: FormControl;\n public readonly maxSymbolLength = 2 ** 11;\n\n private mentionedUserIds?: string[];\n private readonly inputDelay = 100;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public commentsService: CommentsService,\n private commentsDataService: CommentsDataService,\n private commentsSaveService: CommentsSaveService,\n private filesService: FilesService,\n private injector: Injector,\n ) {}\n\n public ngOnInit(): void {\n this.commentTextControl = new FormControl(\n this.comment ? (this.comment.text ?? '') : '',\n );\n\n this.isSaveButtonVisible.set(\n this.commentTextControl.getRawValue().length > 0 ||\n !!this.filesService.files().length,\n );\n }\n\n public ngAfterViewInit(): void {\n this.initInputSubscribers();\n\n if (this.comment) {\n this.commentTextControl.setValue(this.comment.text);\n }\n }\n\n /** Create or update comment (deletes comment if text's value and attachments are null */\n public async save(): Promise {\n if (!this.comment) {\n this.commentsSaveService.addToQueue(this.commentsService.entityId);\n this.isSaving.set(true);\n\n const newComment = await firstValueFrom(\n this.commentsDataService.createComment(\n this.commentsService.collection,\n this.commentsService.entityId,\n this.commentTextControl.getRawValue() ?? '',\n this.mentionedUserIds,\n ),\n );\n\n if (newComment) {\n if (this.filesService.files().length) {\n this.filesService.entityId = newComment.id;\n await firstValueFrom(this.filesService.runSaveActions());\n this.filesService.clearFiles();\n }\n\n this.commentTextControl.setValue('');\n this.commentsService.reload();\n }\n\n this.isSaving.set(false);\n this.commentsSaveService.removeFromQueue(this.commentsService.entityId);\n\n return;\n }\n\n if (\n !this.commentTextControl.getRawValue() &&\n this.filesService\n .files()\n .every((file) => file.afterSaveAction === 'delete')\n ) {\n this.commentsService.deleteComment(this.comment.id, true);\n this.commentsSaveService.removeFromQueue(this.comment.id);\n\n return;\n }\n\n this.isSaving.set(true);\n\n const requests: Observable[] = [\n this.commentsService.editComment(\n this.comment.id,\n this.commentTextControl.getRawValue(),\n this.mentionedUserIds,\n ),\n ];\n\n if (this.filesService.files().length) {\n requests.push(this.filesService.runSaveActions());\n }\n\n await firstValueFrom(forkJoin(requests));\n\n this.comment.attachments = this.filesService.files().map((file) => ({\n ...file,\n commentId: this.comment.id,\n modifiedById: this.comment.modifiedBy.id,\n }));\n this.isSaving.set(false);\n this.commentsService.setActiveComment(null);\n }\n\n /** Changes to view state on cancel. */\n public undo(): void {\n this.filesService.abortAfterSaveActions();\n this.commentsService.setActiveComment(null);\n this.commentsSaveService.removeFromQueue(this.comment.id);\n }\n\n /** `mentionId$()` handler. */\n public onMentionIds(event: string[]): void {\n this.mentionedUserIds = event;\n }\n\n private initInputSubscribers(): void {\n if (this.comment) {\n this.commentTextControl.valueChanges\n .pipe(\n debounceTime(this.inputDelay),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.commentsSaveService.addToQueue(this.comment.id));\n } else {\n combineLatest([\n this.commentTextControl.valueChanges.pipe(\n startWith(this.commentTextControl.getRawValue()),\n ),\n toObservable(this.filesService.files, { injector: this.injector }).pipe(\n startWith(this.filesService.files()),\n ),\n ])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(([text, attachments]) => {\n this.isSaveButtonVisible.set(\n text.length > 0 || attachments.length > 0,\n );\n\n if (this.isSaveButtonVisible()) {\n this.commentsSaveService.addToQueue(this.commentsService.entityId);\n } else {\n this.commentsSaveService.removeFromQueue(\n this.commentsService.entityId,\n );\n }\n });\n }\n }\n}\n","
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n\n
    \n @if (comment) {\n \n }\n\n @if (isSaveButtonVisible() || comment) {\n \n {{ 'shared.actions.save' | translate }}\n \n }\n
    \n
    \n \n
    \n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n inject,\n DestroyRef,\n OnInit,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, catchError, of } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AttachmentComment } from 'src/app/shared-features/comments/model/attachment.model';\nimport { Attachment } from 'src/app/shared/models/entities/attachments/attachment.interface';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-attachments-tab',\n templateUrl: './attachments-tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AttachmentsTabComponent implements OnInit {\n @Input({ required: true }) public entityId: string;\n @Input({ required: true }) public collection: string;\n\n public attachments = signal(null);\n\n private readonly dataService = inject(DataService);\n private readonly notificationService = inject(NotificationService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.getAttachments()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => {\n this.attachments.set(data);\n });\n }\n\n /**\n * Gets attachments from all comments.\n *\n * @param collection Entity name.\n * @param entityId Entity ID.\n * @returns attachments.\n */\n public getAttachments(): Observable {\n return this.dataService\n .collection(this.collection)\n .entity(this.entityId)\n .function('GetAttachments')\n .get()\n .pipe(\n catchError((err: Exception) => {\n this.notificationService.error(err.message);\n return of([]);\n }),\n );\n }\n}\n","
    \n @if (attachments()) {\n \n }\n
    \n","import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n DestroyRef,\n effect,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbNav, NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\nimport { filter, merge } from 'rxjs';\n\nimport { CommentsService } from 'src/app/shared-features/comments/core/comments.service';\nimport { CommentsSaveService } from 'src/app/shared-features/comments/core/comments-save.service';\nimport { CommentsDataService } from 'src/app/shared-features/comments/core/comments-data.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\n\n@Component({\n selector: 'wp-comments-tab',\n templateUrl: './comments-tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CommentsService, CommentsSaveService, CommentsDataService],\n standalone: false,\n})\nexport class CommentsTabComponent implements OnInit {\n @Input() public entityId: string;\n @Input() public collection: string;\n\n @Output() public queueLength$ = new EventEmitter();\n\n public checkboxControl = new FormControl(\n this.commentService.showSystemEvents,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly lifecycleService = inject(LifecycleService);\n\n constructor(\n public readonly commentService: CommentsService,\n private readonly commentSaveService: CommentsSaveService,\n private readonly ngbNavService: NgbNav,\n private readonly cdr: ChangeDetectorRef,\n private readonly actionPanelService: ActionPanelService,\n ) {\n effect(() => {\n this.queueLength$.emit(this.commentSaveService.changingQueue().length);\n });\n }\n\n public ngOnInit(): void {\n merge(this.lifecycleService.reload$, this.actionPanelService.reload$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.commentService.reload();\n });\n\n this.commentService.init(this.collection, this.entityId);\n\n this.commentService.loading$\n .pipe(\n filter((v) => !v),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n\n this.ngbNavService.navChange\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: NgbNavChangeEvent) => {\n if (\n this.commentSaveService.changingQueue().length &&\n !this.commentSaveService.getConfirmResult()\n ) {\n event.preventDefault();\n }\n });\n\n this.checkboxControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((v) => {\n this.commentService.setShowSystemEvents(v);\n });\n }\n}\n","\n \n\n\n
    \n \n \n
    \n\n
    \n @for (comment of commentService.comments; track comment.id) {\n \n }\n
    \n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n/** Abstract class for table right side components. Templates of the descendants must have structure supports wpFreezeTable directive. */\n@Directive({\n host: { name: 'right' },\n standalone: false,\n})\nexport class AbstractRightSide {\n protected destroyRef = inject(DestroyRef);\n constructor(\n protected container: ElementRef,\n protected gridService: GridService,\n protected freezeTableService: FreezeTableService,\n protected renderer: Renderer2,\n ) {}\n\n public ngOnInit(): void {\n this.initSubscribes();\n }\n\n /** Inits component subscribes. */\n protected initSubscribes(): void {\n this.freezeTableService.leftTableWidth$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((width) => {\n this.renderer.setStyle(\n this.container.nativeElement,\n 'margin-left',\n width + 'px',\n );\n });\n }\n}\n","import {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/** Abstract class for toolbar. */\n@Directive({\n host: { name: 'toolbar', class: 'd-block' },\n standalone: false,\n})\nexport class AbstractToolbar implements OnInit {\n protected destroyRef = inject(DestroyRef);\n\n constructor(\n protected gridService: GridService,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.detectChanges());\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n GridBooleanColumn,\n GridColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/** Service for default column value management. */\n@Injectable()\nexport class ColumnDefaultValueService {\n /**\n * Returns default value for target grid column type.\n *\n * @param column grid column.\n * @returns default value.\n */\n public getDefaultValue(column: GridColumn): unknown {\n switch (column.type) {\n case GridColumnType.String:\n case GridColumnType.StringControl:\n return '';\n case GridColumnType.Boolean:\n case GridColumnType.BooleanControl:\n return !!(column as GridBooleanColumn).reversed;\n default:\n return null;\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Inject, DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Command } from 'src/app/shared-features/grid/models/grid-options.model';\n\n/** Service for manage of keyboard custom actions in the grid. */\n@Injectable()\nexport class CustomActionsService {\n private customActions = new Map();\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private gridService: GridService,\n private gridOrchestratorService: GridOrchestratorService,\n ) {}\n\n /**\n * Add custom action.\n *\n * @param keyCode keyboard key code.\n * @param commandName command name.\n */\n private addCustomAction(keyCode: string, commandName: string): void {\n this.customActions.set(keyCode, commandName);\n }\n\n /** Execute grid command if possible.\n *\n * @param keyCode keyboard key code for command executing.\n * @param param parameter for execution.\n */\n private handleCustomAction(keyCode: string, param?: any): void {\n const commandName = this.customActions.get(keyCode);\n if (!commandName) {\n return;\n }\n if (!this.gridService.canBeExecuted(commandName, param)) {\n return;\n }\n this.gridService.execute(commandName, param);\n }\n\n /** Initializes of keyboard handler for supported grid commands.\n * NOTE: no working in the modal windows.\n *\n * @param commands grid commands.\n */\n public init(commands: Command[]): void {\n if (!commands.some((command) => command.keyCode)) return;\n\n commands.forEach((command) => {\n if (!command.keyCode) return;\n\n if (Array.isArray(command.keyCode)) {\n command.keyCode.forEach((code) =>\n this.addCustomAction(code, command.name),\n );\n } else {\n this.addCustomAction(command.keyCode, command.name);\n }\n });\n\n fromEvent(this.document, 'keydown')\n .pipe(\n filter(() =>\n this.gridOrchestratorService.leftTable.matches(':focus-within'),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: KeyboardEvent) => {\n this.handleCustomAction(\n event.code,\n this.gridService.selectedGroupValue?.id,\n );\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, inject, Inject, Injectable } from '@angular/core';\nimport { debounceTime, filter, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ColumnDefaultValueService } from 'src/app/shared-features/grid/core/column-default-value.service';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { TextToControlValueParserHelper } from 'src/app/shared-features/grid/core/text-to-control-value-parser.helper';\nimport { CellSwitchSetting } from 'src/app/shared-features/grid/models/grid-cells-orchestrator.interface';\nimport {\n KeyType,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport _ from 'lodash';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\n/** Grid keyboard events management service. */\n@Injectable()\nexport class GridKeyboardEventsService {\n /** Switch cell subject. */\n private switchCellSubject = new Subject();\n public switchCell$ = this.switchCellSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n private stopSubscriptionSubject = new Subject();\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private gridCellsOrchestratorService: GridOrchestratorService,\n private gridService: GridService,\n private columnDefaultValueService: ColumnDefaultValueService,\n ) {\n this.gridService.clearSelectedRangeCells =\n this.clearSelectedRangeCells.bind(this);\n this.gridCellsOrchestratorService.initKeyboardEventsSubject\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.stopSubscriptionSubject.next();\n\n switch (this.gridCellsOrchestratorService.options.selectionType) {\n case SelectionType.range:\n if (this.gridCellsOrchestratorService.activeControl) {\n this.subscribeRangeTypeKeyboardKeys();\n }\n break;\n case SelectionType.row:\n this.subscribeRowTypeKeyboardKeys();\n break;\n case SelectionType.rows:\n this.subscribeRowsTypeKeyboardKeys();\n break;\n }\n });\n }\n\n /** Subscribe keyboard events for range selection type. */\n private subscribeRangeTypeKeyboardKeys(): void {\n fromEvent(this.document, 'keyup')\n .pipe(\n // Listen of keyboard keys just if some of table children element has focus.\n filter(() =>\n this.gridCellsOrchestratorService.leftTable.matches(':focus-within'),\n ),\n takeUntil(this.stopSubscriptionSubject),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: KeyboardEvent) => {\n if (!this.gridCellsOrchestratorService.editingControl) {\n // if pressed some action button\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n if (this.gridCellsOrchestratorService.activeControl.enabled) {\n this.gridCellsOrchestratorService.setEditingControl(\n this.gridCellsOrchestratorService.activeControl,\n );\n this.gridService.detectChanges();\n }\n break;\n case 'Delete': {\n this.clearSelectedRangeCells();\n break;\n }\n }\n return;\n }\n\n // If editing control exist.\n switch (event.code) {\n case 'Escape':\n this.gridCellsOrchestratorService.setEditingControl(null);\n this.gridService.detectChanges();\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.gridCellsOrchestratorService.setEditingControl(null);\n this.gridService.detectChanges();\n break;\n }\n });\n\n fromEvent(this.document, 'keydown')\n .pipe(\n // Listen of keyboard keys just if some of table children element has focus.\n filter(() =>\n this.gridCellsOrchestratorService.leftTable.matches(':focus-within'),\n ),\n takeUntil(this.stopSubscriptionSubject),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: KeyboardEvent) => {\n if (!this.gridCellsOrchestratorService.editingControl) {\n event.preventDefault();\n const keyType = this.getKeyType(event.code);\n // If pressed some symbol or digit\n if (\n keyType !== KeyType.action &&\n this.gridCellsOrchestratorService.activeControl.enabled &&\n !(event.ctrlKey || event.metaKey)\n ) {\n this.gridCellsOrchestratorService.setEditingControl(\n this.gridCellsOrchestratorService.activeControl,\n event.key,\n );\n this.gridService.detectChanges();\n return;\n }\n // If pressed some action button\n switch (event.code) {\n case 'ArrowLeft':\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'left',\n toEnd: true,\n });\n break;\n }\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'left',\n });\n break;\n }\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'active',\n direction: 'left',\n toEnd: true,\n });\n break;\n }\n this.switchCell({ cellType: 'active', direction: 'left' });\n break;\n case 'ArrowRight':\n case 'Tab':\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'right',\n toEnd: true,\n });\n break;\n }\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'right',\n });\n break;\n }\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'active',\n direction: 'right',\n toEnd: true,\n });\n break;\n }\n this.switchCell({ cellType: 'active', direction: 'right' });\n break;\n case 'ArrowUp':\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'up',\n toEnd: true,\n });\n break;\n }\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'up',\n });\n break;\n }\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'active',\n direction: 'up',\n toEnd: true,\n });\n break;\n }\n this.switchCell({ cellType: 'active', direction: 'up' });\n break;\n case 'ArrowDown':\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'down',\n toEnd: true,\n });\n break;\n }\n this.switchCell({\n cellType: 'nodalSelected',\n direction: 'down',\n });\n break;\n }\n if (event.ctrlKey || event.metaKey) {\n this.switchCell({\n cellType: 'active',\n direction: 'down',\n toEnd: true,\n });\n break;\n }\n this.switchCell({ cellType: 'active', direction: 'down' });\n break;\n case 'Space':\n // Stop default table scrolling\n event.preventDefault();\n break;\n case 'KeyC':\n if ((event.ctrlKey || event.metaKey) && !event.repeat) {\n this.copySelectedRange();\n }\n break;\n case 'KeyV':\n if ((event.ctrlKey || event.metaKey) && !event.repeat) {\n this.pasteDataFromClipboard();\n }\n }\n return;\n }\n });\n }\n\n /** Subscribe keyboard events for row selection type. */\n private subscribeRowTypeKeyboardKeys(): void {\n fromEvent(this.document, 'keydown')\n .pipe(\n // Listen of keyboard keys just if some of table children element has focus.\n filter(() =>\n this.gridCellsOrchestratorService.leftTable.matches(':focus-within'),\n ),\n debounceTime(10),\n takeUntil(this.stopSubscriptionSubject),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: KeyboardEvent) => {\n event.preventDefault();\n switch (event.code) {\n case 'ArrowUp': {\n if (!this.gridCellsOrchestratorService.formArray.controls.length) {\n return;\n }\n if (event.ctrlKey || event.metaKey) {\n const groupToSelection =\n (this.gridCellsOrchestratorService.formArray\n .controls[0] as UntypedFormGroup) ?? null;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n const selectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n const indexToSelection =\n selectedGroupIndex - 1 >= 0 ? selectedGroupIndex - 1 : 0;\n const groupToSelection = this.gridCellsOrchestratorService.formArray\n .controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n\n case 'ArrowDown': {\n if (!this.gridCellsOrchestratorService.formArray.controls.length) {\n return;\n }\n const maxIndex =\n this.gridCellsOrchestratorService.formArray.controls.length - 1;\n if (event.ctrlKey || event.metaKey) {\n const indexToSelection = maxIndex;\n if (indexToSelection >= 0) {\n const groupToSelection = this.gridCellsOrchestratorService\n .formArray.controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n }\n\n break;\n }\n const selectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n const indexToSelection =\n selectedGroupIndex + 1 <= maxIndex\n ? selectedGroupIndex + 1\n : maxIndex;\n const groupToSelection = this.gridCellsOrchestratorService.formArray\n .controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n }\n return;\n });\n }\n\n /** Subscribe keyboard events for rows selection type. */\n private subscribeRowsTypeKeyboardKeys(): void {\n fromEvent(this.document, 'keydown')\n .pipe(\n // Listen of keyboard keys just if some of table children element has focus.\n filter(() =>\n this.gridCellsOrchestratorService.leftTable.matches(':focus-within'),\n ),\n debounceTime(10),\n takeUntil(this.stopSubscriptionSubject),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: KeyboardEvent) => {\n event.preventDefault();\n switch (event.code) {\n case 'ArrowUp': {\n if (!this.gridCellsOrchestratorService.formArray.controls.length) {\n return;\n }\n\n const lastSelectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n for (let i = lastSelectedGroupIndex - 1; i >= 0; i--) {\n const groupToSelection = this.gridCellsOrchestratorService\n .formArray.controls[i] as UntypedFormGroup;\n this.gridCellsOrchestratorService.addGroupToSelected(\n groupToSelection,\n );\n }\n\n break;\n }\n\n const indexToSelection =\n lastSelectedGroupIndex - 1 >= 0\n ? lastSelectedGroupIndex - 1\n : 0;\n const groupToSelection = this.gridCellsOrchestratorService\n .formArray.controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.addGroupToSelected(\n groupToSelection,\n );\n break;\n }\n\n if (event.ctrlKey || event.metaKey) {\n const groupToSelection =\n (this.gridCellsOrchestratorService.formArray\n .controls[0] as UntypedFormGroup) ?? null;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n\n const selectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n\n const indexToSelection =\n selectedGroupIndex - 1 >= 0 ? selectedGroupIndex - 1 : 0;\n const groupToSelection = this.gridCellsOrchestratorService.formArray\n .controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n\n case 'ArrowDown': {\n if (!this.gridCellsOrchestratorService.formArray.controls.length) {\n return;\n }\n\n const lastSelectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n\n const maxGroupIndex =\n this.gridCellsOrchestratorService.formArray.controls.length - 1;\n\n if (event.shiftKey) {\n if (event.ctrlKey || event.metaKey) {\n for (\n let i = lastSelectedGroupIndex + 1;\n i <= maxGroupIndex;\n i++\n ) {\n const groupToSelection = this.gridCellsOrchestratorService\n .formArray.controls[i] as UntypedFormGroup;\n this.gridCellsOrchestratorService.addGroupToSelected(\n groupToSelection,\n );\n }\n\n break;\n }\n\n const indexToSelection =\n lastSelectedGroupIndex + 1 <= maxGroupIndex\n ? lastSelectedGroupIndex + 1\n : this.gridCellsOrchestratorService.formArray.controls\n .length - 1;\n const groupToSelection = this.gridCellsOrchestratorService\n .formArray.controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.addGroupToSelected(\n groupToSelection,\n );\n break;\n }\n\n if (event.ctrlKey || event.metaKey) {\n const groupToSelection =\n (this.gridCellsOrchestratorService.formArray.controls[\n maxGroupIndex\n ] as UntypedFormGroup) ?? null;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n\n const selectedGroupIndex = this.getFormGroupIndex(\n this.gridCellsOrchestratorService.selectedGroup,\n );\n\n const indexToSelection =\n selectedGroupIndex + 1 <= maxGroupIndex\n ? selectedGroupIndex + 1\n : maxGroupIndex;\n const groupToSelection = this.gridCellsOrchestratorService.formArray\n .controls[indexToSelection] as UntypedFormGroup;\n this.gridCellsOrchestratorService.selectGroup(groupToSelection);\n break;\n }\n }\n });\n }\n\n /** Updates selection coordinates by current selected and active cells. */\n private getEmptyDataMatrix() {\n if (!this.gridCellsOrchestratorService.selectionCoordinates) {\n return;\n }\n const colLength =\n this.gridCellsOrchestratorService.selectionCoordinates.colEnd -\n this.gridCellsOrchestratorService.selectionCoordinates.colStart +\n 1;\n const rowLength =\n this.gridCellsOrchestratorService.selectionCoordinates.rowEnd -\n this.gridCellsOrchestratorService.selectionCoordinates.rowStart +\n 1;\n const emptyRow: null[] = new Array(colLength).fill(null);\n const emptyMatrix: null[][] = new Array(rowLength).fill(emptyRow);\n return emptyMatrix;\n }\n\n /**\n * Insert values in the selected range.\n *\n * @param dataMatrix matrix of the values\n */\n private insertDataMatrixToTable(dataMatrix: string[][] | null[][]): void {\n for (\n let y = this.gridCellsOrchestratorService.selectionCoordinates.rowStart;\n y <= this.gridCellsOrchestratorService.selectionCoordinates.rowEnd;\n y++\n ) {\n for (\n let x = this.gridCellsOrchestratorService.selectionCoordinates.colStart;\n x <= this.gridCellsOrchestratorService.selectionCoordinates.colEnd;\n x++\n ) {\n const control =\n this.gridCellsOrchestratorService.formGroups[y].controls[\n this.gridCellsOrchestratorService.columns[x].name\n ];\n if (control.enabled) {\n const matrixValue =\n dataMatrix[\n y -\n this.gridCellsOrchestratorService.selectionCoordinates.rowStart\n ][\n x -\n this.gridCellsOrchestratorService.selectionCoordinates.colStart\n ];\n const contentType =\n this.gridCellsOrchestratorService.columns[x].contentType ??\n this.gridCellsOrchestratorService.columns[x].type;\n const allowNull =\n (this.gridCellsOrchestratorService.columns[x] as any).allowNull ===\n false\n ? false\n : true;\n let valueForInserting: any;\n if (matrixValue === null && !allowNull) {\n continue;\n }\n if (matrixValue === null) {\n valueForInserting = this.gridCellsOrchestratorService.columns[x]\n .getDefaultValue\n ? this.gridCellsOrchestratorService.columns[x].getDefaultValue()\n : this.columnDefaultValueService.getDefaultValue(\n this.gridCellsOrchestratorService.columns[x],\n );\n } else {\n const customParser =\n this.gridCellsOrchestratorService.options.copyPasteParsers?.find(\n (parser) =>\n parser.columnName ===\n this.gridCellsOrchestratorService.columns[x].name,\n );\n valueForInserting = customParser?.parseTextToValue\n ? customParser.parseTextToValue(matrixValue)\n : TextToControlValueParserHelper.parse(matrixValue, contentType);\n }\n if (\n valueForInserting === undefined ||\n valueForInserting === control.value ||\n (control.validator &&\n control.validator(new UntypedFormControl(valueForInserting)))\n ) {\n continue;\n }\n\n control.setValue(valueForInserting);\n }\n }\n }\n }\n /** Return key type by it code (action by default). */\n private getKeyType(eventCode: string): KeyType {\n if (eventCode.substring(0, 3) === 'Key') {\n return KeyType.symbol;\n }\n\n if (eventCode.substring(0, 5) === 'Digit') {\n return KeyType.digit;\n }\n\n // Numpad keys check\n if (eventCode.substring(0, 6) === 'Numpad') {\n if (isFinite(+eventCode.substring(6, 7))) {\n return KeyType.digit;\n }\n if (eventCode === 'NumpadEnter') {\n return KeyType.action;\n } else {\n return KeyType.symbol;\n }\n }\n\n switch (eventCode) {\n case 'Equal':\n case 'Subtract':\n case 'Divide':\n case 'Multiply':\n case 'Slash':\n case 'Backslash':\n case 'Add':\n case 'Minus':\n case 'Backquote':\n case 'Quote':\n case 'Semicolon':\n case 'Period':\n case 'Comma':\n case 'BracketRight':\n case 'BracketLeft':\n case 'Space':\n return KeyType.symbol;\n }\n\n return KeyType.action;\n }\n\n /** Switch cell.\n *\n * @param switchSetting direction of switching\n * @param toEnd is switch to direction end\n */\n private switchCell(switchSetting: CellSwitchSetting): void {\n if (!this.gridCellsOrchestratorService.editingControl) {\n this.switchCellSubject.next(switchSetting);\n }\n }\n\n /** Copies selected cells to clipboard. */\n private copySelectedRange(): void {\n let data = '';\n\n for (\n let y = this.gridCellsOrchestratorService.selectionCoordinates.rowStart;\n y <= this.gridCellsOrchestratorService.selectionCoordinates.rowEnd;\n y++\n ) {\n for (\n let x = this.gridCellsOrchestratorService.selectionCoordinates.colStart;\n x <= this.gridCellsOrchestratorService.selectionCoordinates.colEnd;\n x++\n ) {\n const columnName = this.gridCellsOrchestratorService.columns[x].name;\n const cellValue =\n this.gridCellsOrchestratorService.formGroups[y].controls[\n columnName\n ].getRawValue();\n\n const customParser =\n this.gridCellsOrchestratorService.options.copyPasteParsers?.find(\n (parser) => parser.columnName === columnName,\n );\n\n if (customParser?.parseValueToText) {\n data += customParser.parseValueToText(cellValue);\n } else {\n data +=\n cellValue === null\n ? ''\n : typeof cellValue === 'object'\n ? JSON.stringify(cellValue)\n : cellValue.toString();\n }\n\n if (\n x !== this.gridCellsOrchestratorService.selectionCoordinates.colEnd\n ) {\n data += '\\t';\n }\n }\n if (y !== this.gridCellsOrchestratorService.selectionCoordinates.rowEnd) {\n data += '\\r';\n }\n }\n navigator.clipboard?.writeText(data);\n }\n\n /** Pastes data from clipboard. */\n private pasteDataFromClipboard(): void {\n navigator.clipboard?.readText().then((data) => {\n data = data.replace(/(\\r\\n|\\n)/gm, '\\r');\n data = data.replace(/\\r$/gm, '');\n const dataMatrix = data.split('\\r').map((row) => row.split('\\t'));\n\n let newNodalSelectedCellRowIndex = dataMatrix.length\n ? this.gridCellsOrchestratorService.activeControlRowIndex +\n dataMatrix.length -\n 1\n : this.gridCellsOrchestratorService.activeControlRowIndex;\n if (\n newNodalSelectedCellRowIndex >=\n this.gridCellsOrchestratorService.formArray.length\n ) {\n newNodalSelectedCellRowIndex =\n this.gridCellsOrchestratorService.formArray.length - 1;\n }\n\n const maxInputRowLength = _.max(\n dataMatrix.map((row) => (Array.isArray(row) ? row.length : 1)),\n );\n let newNodalSelectedCellColumnIndex =\n this.gridCellsOrchestratorService.activeControlColumnIndex +\n maxInputRowLength -\n 1;\n if (\n newNodalSelectedCellColumnIndex >=\n this.gridCellsOrchestratorService.columns.length\n ) {\n newNodalSelectedCellColumnIndex =\n this.gridCellsOrchestratorService.columns.length - 1;\n }\n\n const newNodalSelectedControl =\n this.gridCellsOrchestratorService.formGroups[\n newNodalSelectedCellRowIndex\n ].controls[\n this.gridCellsOrchestratorService.columns[\n newNodalSelectedCellColumnIndex\n ].name\n ];\n this.gridCellsOrchestratorService.setNodalSelectedControl(\n newNodalSelectedControl,\n );\n this.gridService.detectChanges();\n\n this.insertDataMatrixToTable(dataMatrix);\n });\n }\n\n /**\n * Returns form group index in the form array.\n *\n * @param group target form group.\n * @returns index.\n */\n private getFormGroupIndex(targetGroup: UntypedFormGroup): number {\n return this.gridCellsOrchestratorService.formArray.controls.findIndex(\n (group) => group === targetGroup,\n );\n }\n\n /** Clears all selected cells in the grid by setting their values to empty. */\n private clearSelectedRangeCells(): void {\n const emptyMatrix = this.getEmptyDataMatrix();\n this.insertDataMatrixToTable(emptyMatrix);\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport {\n AbstractControl,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SelectionCoordinates } from 'src/app/shared-features/grid/models/grid-cells-orchestrator.interface';\n\n/** Service for collective management of cells. */\n@Injectable()\nexport class GridOrchestratorService {\n /** Displayed data. */\n public formArray: UntypedFormArray;\n\n /** Based columns list. */\n public baseColumns: GridColumn[];\n\n /** Grid options. */\n public options: GridOptions;\n\n public leftTable: HTMLElement;\n\n public initKeyboardEventsSubject = new Subject();\n\n /** Groups selection. */\n private _selectedGroups: Set = new Set();\n public get selectedGroups(): UntypedFormGroup[] {\n return Array.from(this._selectedGroups);\n }\n\n public get selectedGroup(): UntypedFormGroup | null {\n if (this.options.selectionType === SelectionType.range) {\n return (\n (this.activeControl?.parent as UntypedFormGroup) ??\n this.selectedGroups[this.selectedGroups.length - 1] ??\n null\n );\n }\n return this.selectedGroups[this.selectedGroups.length - 1] ?? null;\n }\n\n private activeControlSubject = new BehaviorSubject(\n null,\n );\n private nodalSelectedControlSubject =\n new BehaviorSubject(null);\n private editingControlSubject = new BehaviorSubject(\n null,\n );\n private selectedGroupSubject: BehaviorSubject =\n new BehaviorSubject(null);\n private selectedGroupsSubject: BehaviorSubject =\n new BehaviorSubject([]);\n\n /** Grid view rows. */\n private _selectionCoordinates: SelectionCoordinates | null;\n public get selectionCoordinates(): SelectionCoordinates | null {\n return this._selectionCoordinates;\n }\n\n /** Initial value of initializing editing control. */\n private _initialControlValue: unknown | undefined = undefined;\n public get initialControlValue(): unknown | undefined {\n return this._initialControlValue;\n }\n\n public get formGroups(): UntypedFormGroup[] {\n return this.formArray.controls as UntypedFormGroup[];\n }\n public get columns(): GridColumn[] {\n return this.listService\n ? this.listService.getGridView().columns\n : this.baseColumns;\n }\n public get activeControl(): AbstractControl | null {\n return this.activeControlSubject.getValue();\n }\n public get editingControl(): AbstractControl | null {\n return this.editingControlSubject.getValue();\n }\n public get nodalSelectedControl(): AbstractControl | null {\n return this.nodalSelectedControlSubject.getValue();\n }\n public get selectedGroup$(): Observable {\n return this.selectedGroupSubject.asObservable();\n }\n public get selectedGroups$(): Observable {\n return this.selectedGroupsSubject.asObservable();\n }\n public get activeControlColumnIndex(): number | null {\n return this.activeControl\n ? this.columns.findIndex(\n (col) =>\n this.activeControl.parent.controls[col.name] === this.activeControl,\n )\n : null;\n }\n public get activeControlRowIndex(): number | null {\n return this.activeControl\n ? this.formArray.controls.findIndex(\n (c) => c === this.activeControl.parent,\n )\n : null;\n }\n public get nodalSelectedControlColumnIndex(): number | null {\n return this.nodalSelectedControl\n ? this.columns.findIndex(\n (col) =>\n this.nodalSelectedControl.parent.controls[col.name] ===\n this.nodalSelectedControl,\n )\n : null;\n }\n public get nodalSelectedControlRowIndex(): number | null {\n return this.nodalSelectedControl\n ? this.formArray.controls.findIndex(\n (c) => c === this.nodalSelectedControl.parent,\n )\n : null;\n }\n\n constructor(\n private gridService: GridService,\n @Optional() private listService: ListService,\n ) {}\n\n /**\n * Selects one formGroup.\n *\n * @param group group to selection.\n */\n public selectGroup(group: UntypedFormGroup | null): void {\n if (!this.options.selectionType) {\n return;\n }\n\n switch (this.options.selectionType) {\n case SelectionType.range: {\n if (!group) {\n this.setActiveControl(null);\n this.gridService.detectChanges();\n return;\n }\n const index = this.activeControlColumnIndex ?? 0;\n this.setActiveControl(group.controls[this.columns[index].name]);\n break;\n }\n case SelectionType.row:\n case SelectionType.rows: {\n this.clearSelectedGroups();\n if (group) {\n this.addGroupToSelected(group);\n }\n this.gridService.detectChanges();\n break;\n }\n }\n }\n\n /**\n * Adds formGroup to selection.\n *\n * @param group group to add in selection.\n * @param emitChanges changes selectedGroup subjects and detectChanges in the grid.\n */\n public addGroupToSelected(group: UntypedFormGroup, emitChanges = true): void {\n if (!this.options.selectionType) {\n return;\n }\n const addGroup = (group) => {\n if (this._selectedGroups.has(group)) {\n // First delete group for guaranteeing of selected group last position.\n this._selectedGroups.delete(group);\n }\n this._selectedGroups.add(group);\n if (!emitChanges) return;\n this.updateSelectedGroupsSubjects();\n this.gridService.detectChanges();\n };\n\n switch (this.options.selectionType) {\n case SelectionType.row:\n case SelectionType.rows: {\n if (\n this.selectedGroups.length &&\n this.options.selectionType === SelectionType.row\n ) {\n return;\n }\n addGroup(group);\n break;\n }\n case SelectionType.range:\n if (this.activeControl) {\n this.setActiveControl(null, false);\n }\n addGroup(group);\n break;\n }\n }\n\n /**\n * Removes formGroup from selection.\n *\n * @param group group to add in selection.\n */\n public removeGroupFromSelected(group: UntypedFormGroup): void {\n if (!this.options.selectionType) {\n return;\n }\n\n switch (this.options.selectionType) {\n case SelectionType.row:\n case SelectionType.rows: {\n if (!this._selectedGroups.has(group)) {\n return;\n }\n this._selectedGroups.delete(group);\n this.updateSelectedGroupsSubjects();\n break;\n }\n case SelectionType.range:\n if (this.activeControl) {\n this.setActiveControl(null, false);\n }\n this._selectedGroups.delete(group);\n this.updateSelectedGroupsSubjects();\n break;\n }\n\n this._selectedGroups.delete(group);\n this.updateSelectedGroupsSubjects();\n }\n\n /**\n * Adds od removes group from selection.\n *\n * @param group group to switch in selection.\n */\n public switchGroupSelection(group: UntypedFormGroup): void {\n if (!this.options.selectionType) {\n return;\n }\n\n if (this._selectedGroups.has(group)) {\n this._selectedGroups.delete(group);\n } else {\n this._selectedGroups.add(group);\n }\n this.updateSelectedGroupsSubjects();\n\n if (this.checkIsGridInCellEditingMode()) {\n this.setEditingControl(null);\n this.setActiveControl(null, false);\n this.gridService.detectChanges();\n }\n }\n\n /** Clears group selection. */\n public clearSelectedGroups(): void {\n if (!this._selectedGroups.size) return;\n this._selectedGroups.clear();\n this.updateSelectedGroupsSubjects();\n }\n\n /**\n * Sets active control(cell).\n *\n * @param control control to set as active.\n * @param updateSelectedGroups is update selected groups based on active and nodal selected cells.\n */\n public setActiveControl(\n control: AbstractControl | null,\n updateSelectedGroups = true,\n ): void {\n if (!this.checkIsGridInCellEditingMode()) {\n return;\n }\n\n this.activeControlSubject.next(control);\n this.initKeyboardEventsSubject.next();\n this.setNodalSelectedControl(control, updateSelectedGroups);\n\n if (this.editingControl) {\n this.setEditingControl(null);\n }\n }\n\n /**\n * Sets nodal selected control(cell).\n *\n * @param control control to set as nodal selected.\n * @param updateSelectedGroups is update selected groups based on active and nodal selected cells.\n */\n public setNodalSelectedControl(\n nodalControl: AbstractControl | null,\n updateSelectedGroups = true,\n ): void {\n if (!this.checkIsGridInCellEditingMode()) {\n return;\n }\n\n this.nodalSelectedControlSubject.next(nodalControl);\n this.updateSelectionCoordinates();\n\n if (updateSelectedGroups) {\n this.updateSelectedGroups();\n }\n\n this.gridService.detectChanges();\n }\n\n /** Set editing control.\n *\n * @param control editing control.\n * @param initialValue initial value for writing into control after it rendering.\n */\n public setEditingControl(\n control: AbstractControl | null,\n initialValue?: unknown,\n ): void {\n if (!this.checkIsGridInCellEditingMode() || !this.activeControl) {\n return;\n }\n if (control) {\n this.setNodalSelectedControl(this.activeControl);\n }\n if (this.gridService.readonly) {\n return;\n }\n this._initialControlValue = initialValue;\n this.editingControlSubject.next(control);\n }\n\n /** Returns grid cell classes.\n *\n * @param formGroup cell formGroup.\n * @param column cell Column.\n * @param rowIndex cell row index.\n * @param colIndex cell column index.\n * @returns list of the classes.\n */\n public getGridCellClasses(\n formGroup: UntypedFormGroup,\n column: GridColumn,\n rowIndex: number,\n colIndex: number,\n ): string[] {\n const result = [];\n\n if (this.options.selectionType === SelectionType.range) {\n result.push('disable-selecting');\n }\n\n if (this._selectedGroups.has(formGroup)) {\n result.push('selected-cell');\n }\n if (formGroup.controls[column.name].invalid) {\n result.push('invalid');\n }\n\n if (this.checkIsGridInRowEditingMode()) return result;\n\n if (this.activeControl === formGroup.controls[column.name]) {\n result.push('active-cell');\n }\n if (\n rowIndex === this.selectionCoordinates?.rowStart &&\n colIndex >= this.selectionCoordinates?.colStart &&\n colIndex <= this.selectionCoordinates?.colEnd\n ) {\n result.push('selected-border_top');\n }\n if (\n rowIndex === this.selectionCoordinates?.rowEnd &&\n colIndex >= this.selectionCoordinates?.colStart &&\n colIndex <= this.selectionCoordinates?.colEnd\n ) {\n result.push('selected-border_bottom');\n }\n if (\n colIndex === this.selectionCoordinates?.colStart &&\n rowIndex >= this.selectionCoordinates?.rowStart &&\n rowIndex <= this.selectionCoordinates?.rowEnd\n ) {\n result.push('selected-border_left');\n }\n if (\n colIndex === this.selectionCoordinates?.colEnd &&\n rowIndex >= this.selectionCoordinates?.rowStart &&\n rowIndex <= this.selectionCoordinates?.rowEnd\n ) {\n result.push('selected-border_right');\n }\n\n return result;\n }\n\n /** Updates selection coordinates by current selected and active cells. */\n public updateSelectionCoordinates(): void {\n if (this.nodalSelectedControl && this.activeControl) {\n const nodalSelectedControlColumnIndex = this.columns.findIndex(\n (col) =>\n this.nodalSelectedControl.parent.controls[col.name] ===\n this.nodalSelectedControl,\n );\n const activeControlColumnIndex = this.activeControl\n ? this.columns.findIndex(\n (col) =>\n this.activeControl.parent.controls[col.name] ===\n this.activeControl,\n )\n : null;\n const nodalSelectedControlRowIndex = this.formArray.controls.findIndex(\n (c) => c === this.nodalSelectedControl.parent,\n );\n const activeControlRowIndex = this.activeControlRowIndex;\n this._selectionCoordinates = {\n rowStart: Math.min(nodalSelectedControlRowIndex, activeControlRowIndex),\n rowEnd: Math.max(nodalSelectedControlRowIndex, activeControlRowIndex),\n colStart: Math.min(\n nodalSelectedControlColumnIndex,\n activeControlColumnIndex,\n ),\n colEnd: Math.max(\n nodalSelectedControlColumnIndex,\n activeControlColumnIndex,\n ),\n };\n } else {\n this._selectionCoordinates = null;\n }\n }\n\n /** Inits methods for public grid service. */\n public initGridManagementService(): void {\n this.gridService.gridOptions = this.options;\n this.gridService.selectGroup = (group: UntypedFormGroup) =>\n this.selectGroup(group);\n this.gridService.clearSelectedGroups = () => this.clearSelectedGroups();\n this.gridService.addGroupToSelected = (group: UntypedFormGroup) =>\n this.addGroupToSelected(group);\n this.gridService.removeGroupFromSelected = (group: UntypedFormGroup) =>\n this.removeGroupFromSelected(group);\n this.gridService.setActiveControl = (control: UntypedFormControl | null) =>\n this.setActiveControl(control);\n this.gridService.setNodalSelectedControl = (\n control: UntypedFormControl | null,\n ) => this.setNodalSelectedControl(control);\n this.gridService.formArray = this.formArray;\n }\n\n /** Updates selected group by current selection coordinates. */\n private updateSelectedGroups(): void {\n this._selectedGroups.clear();\n for (\n let i = this.selectionCoordinates?.rowStart;\n i <= this.selectionCoordinates?.rowEnd;\n i++\n ) {\n this._selectedGroups.add(this.formArray.controls[i] as UntypedFormGroup);\n }\n this.updateSelectedGroupsSubjects();\n }\n\n private updateSelectedGroupsSubjects(): void {\n this.selectedGroupSubject.next(this.selectedGroup);\n this.gridService.selectedGroup$.next(this.selectedGroup);\n this.selectedGroupsSubject.next(this.selectedGroups);\n this.gridService.selectedGroups$.next(this.selectedGroups);\n }\n\n /** Checks is grid in cell editing mode. */\n private checkIsGridInCellEditingMode(): boolean {\n return this.options.selectionType === SelectionType.range;\n }\n\n /** Checks is grid in row editing mode. */\n private checkIsGridInRowEditingMode(): boolean {\n return (\n this.options.selectionType === SelectionType.row ||\n this.options.selectionType === SelectionType.rows\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n asyncScheduler,\n throttleTime,\n} from 'rxjs';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport {\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport {\n Command,\n GridOptions,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { checkChangesDebounceTime } from 'src/app/shared-features/grid/models/grid-constants';\nimport { MenuService } from 'src/app/core/menu.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\n\n/** Grid management service. */\n@Injectable()\nexport class GridService {\n private detectChangesSubject = new Subject();\n public detectChanges$ = this.detectChangesSubject.asObservable().pipe(\n throttleTime(checkChangesDebounceTime, asyncScheduler, {\n leading: false,\n trailing: true,\n }),\n );\n\n /** Event of sorting change. */\n private _order: Order;\n public get order(): Order {\n return this._order;\n }\n private orderSubject = new Subject();\n public order$ = this.orderSubject.asObservable();\n\n /** Event of grid loading status. */\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n\n /** Event of grid readonly mode. */\n private readonlySubject = new BehaviorSubject(false);\n public readonly$ = this.readonlySubject.asObservable();\n public get readonly(): boolean {\n return this.readonlySubject.getValue();\n }\n\n public selectedGroup$ = new BehaviorSubject(null);\n /** Raw value of current selected group. */\n public get selectedGroupValue(): any {\n return this.selectedGroup$.getValue()?.getRawValue();\n }\n public selectedGroups$ = new BehaviorSubject([]);\n public get selectedGroupsValue(): any[] {\n return this.selectedGroups$.getValue().map((group) => group.getRawValue());\n }\n /** Checks is all group are selected. */\n public get isAllSelected(): boolean {\n return (\n this.formArray &&\n this.formArray.length &&\n this.formArray.length === this.selectedGroups$.getValue().length\n );\n }\n /** Displayed data. */\n public formArray: UntypedFormArray;\n /** Current grid option. Available to read. */\n public gridOptions: GridOptions | null = null;\n\n public commands: Command[] = [];\n private commandSubject = new Subject();\n public command$ = this.commandSubject.asObservable();\n\n private endOfPageReachedSubject = new BehaviorSubject(false);\n public get endOfPageReached$(): Observable {\n return this.endOfPageReachedSubject.asObservable();\n }\n\n public freezeTableService: FreezeTableService;\n\n constructor(private menuService: MenuService) {}\n\n /**\n * Selects one formGroup.\n *\n * @param group group to selection.\n */\n public selectGroup: (group: UntypedFormGroup) => void;\n\n /**\n * Adds formGroup to selection.\n *\n * @param group group to add in selection.\n */\n public addGroupToSelected: (group: UntypedFormGroup) => void;\n\n /**\n * Removes formGroup from selection.\n *\n * @param group group to add in selection.\n */\n public removeGroupFromSelected: (group: UntypedFormGroup) => void;\n\n /** Clears group selection. */\n public clearSelectedGroups: () => void;\n\n /**\n * Sets active control(cell).\n *\n * @param control control to set as active.\n */\n public setActiveControl: (control: UntypedFormControl | null) => void;\n\n /**\n * Sets nodal selected control(cell).\n *\n * @param control control to set as nodal selected.\n */\n public setNodalSelectedControl: (control: UntypedFormControl | null) => void;\n\n /** Clears selected range cells values in \"range\" selection mode. */\n public clearSelectedRangeCells: () => void;\n\n /** Inits change detection. */\n public detectChanges(): void {\n this.detectChangesSubject.next();\n }\n\n /**\n * Sets readonly state.\n *\n * @param value readonly or not.\n */\n public setReadonlyState(value: boolean): void {\n this.readonlySubject.next(value);\n }\n\n /**\n * Sets loading state.\n *\n * @param value loading or not.\n */\n public setLoadingState(value: boolean): void {\n this.loadingSubject.next(value);\n }\n\n /**\n * Sorts by column name.\n *\n * @param column column to sorting.\n */\n public sort(column: GridColumn): void {\n if (this._order.column === column.name) {\n if (!this._order.reverse) {\n this._order.reverse = true;\n } else {\n this._order.column = undefined;\n }\n } else {\n this._order.column = column.name;\n this._order.reverse = false;\n }\n\n this.orderSubject.next(this._order);\n }\n\n /**\n * Sets order of sorting.\n *\n * @param order sorting order.\n */\n public setOrder(order: Order): void {\n this._order = order;\n }\n\n /**\n * Executes grid command.\n *\n * @param name command name.\n * @param param optional command parameter.\n */\n public execute(name: string, param?: any): void {\n this.commandSubject.next(name);\n\n const command = this.commands?.find((c: Command) => c.name === name);\n if (command && command.handlerFn) {\n command.handlerFn(param);\n }\n }\n\n /**\n * Checks can the command be executed.\n *\n * @param name command name.\n * @param param optional command parameter.\n * @returns can or not.\n */\n public canBeExecuted(name: string, param?: any): boolean {\n const command = this.commands.find((c: Command) => c.name === name);\n if (command && command.allowedFn) {\n return command.allowedFn(param);\n }\n return true;\n }\n\n /**\n * Returns the command for setting.\n *\n * @param name command name.\n * @returns command.\n */\n public getCommand(name: string): Command {\n const command = this.commands.find((c: Command) => c.name === name);\n return command;\n }\n\n /**\n * Opens context menu.\n *\n * @param event mouse event for opens context menu.\n * @param formGroup formGroup for using as context.\n */\n public openContextMenu(event: MouseEvent, formGroup: UntypedFormGroup): void {\n if (\n !this.gridOptions?.rowContextMenu ||\n !this.gridOptions.rowContextMenu.length ||\n !this.gridOptions.selectionType\n )\n return;\n\n if (!this.selectedGroupsValue.includes(formGroup)) {\n this.selectGroup(formGroup);\n }\n\n this.menuService.open(event, this.gridOptions.rowContextMenu, formGroup);\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * Sets value of endOfPageReachedSubject.\n *\n * @param isReached end of page reached boolean.\n */\n public setEndOfPageReachedValue(isReached: boolean): void {\n this.endOfPageReachedSubject.next(isReached);\n }\n}\n","import { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/** Helper for parsing text value before writing it in the grid cell control. */\nexport class TextToControlValueParserHelper {\n /**\n * Parses string value to some types by content type.\n *\n * @param text string for parsing.\n * @param type requested content type.\n * @returns some type depends from input type.\n */\n public static parse(text: string, type: GridColumnType): any {\n switch (type) {\n case GridColumnType.String:\n case GridColumnType.StringControl:\n return text;\n case GridColumnType.Integer:\n case GridColumnType.Decimal:\n case GridColumnType.Percent:\n case GridColumnType.NumberControl:\n case GridColumnType.Currency:\n case GridColumnType.CurrencyControl:\n return this.parseToNumber(text, type);\n case GridColumnType.Boolean:\n case GridColumnType.BooleanControl:\n return this.parseToBoolean(text);\n case GridColumnType.Date:\n case GridColumnType.DateTime:\n case GridColumnType.DateControl:\n return this.parseToDate(text);\n case GridColumnType.SelectControl:\n return this.isValidJSONStructure(text, ['id', 'name'])\n ? JSON.parse(text)\n : undefined;\n default:\n if (this.isValidJSONStructure(text)) return JSON.parse(text);\n }\n }\n\n /**\n * Validates if the given text is a valid JSON structure and optionally checks for specific keys and array structure.\n *\n * @param text The JSON string to validate.\n * @param keys Optional array of strings representing keys that should be present in the JSON object.\n * @param expectArray Optional boolean indicating whether the JSON should parse to an array.\n * @returns A boolean indicating if the JSON is valid and meets the specified conditions.\n */\n public static isValidJSONStructure(\n text: string,\n keys?: string[],\n expectArray?: boolean,\n ): boolean {\n try {\n const result = JSON.parse(text);\n\n // Check if the result is an object\n const isObject = result && typeof result === 'object' && result !== null;\n if (!isObject) return false;\n\n // If expecting an array, check if result is an array\n if (expectArray && !Array.isArray(result)) return false;\n\n // Function to check if all specified keys exist in an object\n const checkKeys = (checkingObject) => {\n for (const key of keys) {\n if (!(key in checkingObject)) return false;\n }\n return true;\n };\n\n // If keys are specified, check for keys in the object or each object in the array\n if (keys?.length) {\n if (expectArray) {\n return result.every((element) => checkKeys(element));\n } else {\n return checkKeys(result);\n }\n }\n return true;\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Parses string to number.\n *\n * @param text text to parsing.\n * @param type target type. Used for rounding integer numbers.\n * @returns number, null if text is empty string and undefined if string can not parsing.\n */\n private static parseToNumber(\n text: string,\n type: GridColumnType,\n ): number | null | void {\n if (text === '') {\n return null;\n }\n const number = +text.replace(',', '.').replace(/\\s/g, '');\n if (isNaN(number)) {\n return;\n }\n if (type === GridColumnType.Integer) {\n return Math.round(number);\n }\n return number;\n }\n\n private static parseToBoolean(text: string): boolean | undefined {\n const textWithoutSpaces = text.replace(/\\s/g, '');\n if (textWithoutSpaces.toLowerCase() === 'true') {\n return true;\n }\n if (textWithoutSpaces.toLowerCase() === 'false') {\n return false;\n }\n return;\n }\n\n /**\n * Parses string to ISO date.\n *\n * @param text text to parsing.\n * @returns date string in ISO format and undefined if string can not parsing.\n */\n private static parseToDate(text: string): string | undefined {\n const textWithLineSeparators = text.replace(/[^-\\d]/g, '-');\n const dateSegments = textWithLineSeparators.split('-');\n if (dateSegments.length !== 3 || dateSegments.some((el) => isNaN(+el))) {\n return;\n }\n // set year as first\n if (\n dateSegments[2].length === 4 ||\n (dateSegments[0].length <= 2 && dateSegments[2].length === 2)\n ) {\n dateSegments.reverse();\n }\n // check year\n if (dateSegments[0].length !== 2 && dateSegments[0].length !== 4) {\n return;\n }\n if (dateSegments[0].length === 2) {\n dateSegments[0] = '20' + dateSegments[0];\n }\n // check month\n if (+dateSegments[1] > 12) {\n return;\n }\n if (dateSegments[1].length === 1) {\n dateSegments[1] = '0' + dateSegments[1];\n }\n // check day\n if (+dateSegments[2] > 31) {\n return;\n }\n if (dateSegments[2].length === 1) {\n dateSegments[2] = '0' + dateSegments[2];\n }\n\n return dateSegments.join('-');\n }\n}\n","import {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/** Abstract class for total cell component type. */\n@Directive()\nexport class AbstractTotalCell implements OnInit {\n @Input() column: GridColumn;\n\n protected destroyRef = inject(DestroyRef);\n constructor(\n protected gridService: GridService,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.detectChanges());\n }\n}\n","import { ChangeDetectorRef, Input } from '@angular/core';\nimport { Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n/** Checkbox wrapper is necessary for initialize re-render of the cell. */\n@Component({\n selector: 'tmt-boolean-cell',\n template: ``,\n standalone: false,\n})\nexport class BooleanReadonlyCellComponent {\n @Input() control: UntypedFormControl;\n @Input() readonly = false;\n @Input() reversed = false;\n\n constructor(\n gridService: GridService,\n private cdr: ChangeDetectorRef,\n ) {\n gridService.detectChanges$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridCommandColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-command-cell',\n templateUrl: './command-cell.component.html',\n styleUrls: ['./command-cell.component.scss'],\n standalone: false,\n})\nexport class CommandCellComponent {\n @Input() row: any;\n @Input() column: GridCommandColumn;\n\n constructor(public service: GridService) {}\n\n /** Executes grid command. */\n public executeCommand(): void {\n setTimeout(() => this.service.execute(this.column.command), 0);\n }\n}\n","@if (!(service.readonly$ | async)) {\n
    \n {{ row[column.name] }}\n
    \n}\n\n@if (service.readonly$ | async) {\n
    \n {{ row[column.name] }}\n
    \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n Type,\n} from '@angular/core';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n GridBooleanColumn,\n GridColumn,\n GridColumnType,\n GridCommandColumn,\n GridComponentColumn,\n GridCurrencyColumn,\n GridCurrencyControlColumn,\n GridDateControlColumn,\n GridEntityColumn,\n GridFileBoxColumn,\n GridNavigationColumn,\n GridNumberControlColumn,\n GridSelectControlColumn,\n GridStringControlColumn,\n GridUserControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { UserCellComponent } from './user-cell/user-cell.component';\nimport { NavigationCellComponent } from './navigation-cell/navigation-cell.component';\nimport { BooleanReadonlyCellComponent } from './boolean-cell/boolean-cell.component';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { StateCellComponent } from './state-cell/state-cell.component';\nimport { CommandCellComponent } from './command-cell/command-cell.component';\nimport { Subject, isObservable } from 'rxjs';\nimport { debounceTime, take, takeUntil } from 'rxjs/operators';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { NgxNl2brPipe } from 'ngx-nl2br';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\nimport { DateBoxComponent } from 'src/app/shared/components/controls/date-box/date-box.component';\nimport { UserBoxComponent } from 'src/app/shared/components/controls/user-box/user-box.component';\nimport { SelectBoxComponent } from 'src/app/shared/components/controls/select-box/select-box.component';\nimport { NumberBoxComponent } from 'src/app/shared/components/controls/number-box/number-box.component';\nimport { CurrencyBoxComponent } from 'src/app/shared/components/controls/currency-box/currency-box.component';\nimport { SelectionType } from 'src/app/shared-features/grid/models/grid-options.model';\nimport _ from 'lodash';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { checkChangesDebounceTime } from 'src/app/shared-features/grid/models/grid-constants';\nimport { ResourceNavigationCellComponent } from 'src/app/shared-features/grid/grid-cell/resource-navigation-cell/resource-navigation-cell.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CheckboxComponent } from 'src/app/shared/components/controls/checkbox/checkbox.component';\nimport { PhonePipe } from 'src/app/shared/pipes/phone.pipe';\nimport { TextBoxExtendedType } from 'src/app/shared/components/controls/text-box/text-box.model';\nimport { FileBoxCellComponent } from 'src/app/shared/components/controls/file-box/file-box-cell/file-box-cell.component';\n\n/** Ячейка грида. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-grid-cell]',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GridCellComponent implements OnInit, OnDestroy {\n @Input() column: GridColumn;\n @Input('group') formGroup: UntypedFormGroup;\n @Input() selectionType: SelectionType;\n @Input() get editing(): boolean {\n return this._editing;\n }\n set editing(value: boolean) {\n if (this._editing !== value) {\n this.renderer.removeClass(this.elRef.nativeElement, 'editing-cell');\n this._editing = value;\n if (this.canCellBeEditable()) {\n this.render();\n\n // Saves table focus after cell rerendering. Necessary for correct keyboard key listens.\n if (\n this.cellOrchestratorService.options.selectionType ===\n SelectionType.range ||\n value ||\n !this.cellOrchestratorService.leftTable?.matches(':focus-within')\n ) {\n this.elRef.nativeElement.parentElement.focus();\n }\n }\n }\n }\n\n public componentCell: Type;\n public componentCellInputs: Record = {};\n\n private _editing = false;\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n /** Last value of cell control. Turned on with the force cell update option. */\n private lastValue: any = null;\n\n public get row(): any {\n return this.formGroup.getRawValue();\n }\n\n public get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n public get value(): any {\n return this.formGroup.get(this.column.name).value;\n }\n\n public textElement: string;\n\n constructor(\n private app: AppService,\n private renderer: Renderer2,\n private currencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n private percentPipe: PercentPipe,\n private workPipe: WorkPipe,\n private datePipe: DatePipe,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef,\n private nl2br: NgxNl2brPipe,\n private cellOrchestratorService: GridOrchestratorService,\n private translateService: TranslateService,\n private phonePipe: PhonePipe,\n ) {}\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public ngOnInit(): void {\n if (!this.canCellBeEditable()) {\n this.formGroup.controls[this.column.name].disable({ emitEvent: false });\n }\n this.render();\n\n if (this.column.forceCellUpdating) {\n this.addForceCellUpdating();\n }\n }\n\n /** Determines can cell be editable. */\n private canCellBeEditable(): boolean {\n // New logic means that component type cell must regulate control enabling state by itself\n if (this.column.type === GridColumnType.Component) {\n return true;\n }\n\n //Not control type cells always are not editable\n if (\n [\n GridColumnType.Boolean,\n GridColumnType.Currency,\n GridColumnType.Date,\n GridColumnType.Decimal,\n GridColumnType.Integer,\n GridColumnType.Work,\n GridColumnType.Percent,\n GridColumnType.Label,\n GridColumnType.Navigation,\n GridColumnType.Entity,\n GridColumnType.String,\n GridColumnType.User,\n GridColumnType.State,\n GridColumnType.ResourceNavigation,\n GridColumnType.Command,\n GridColumnType.DateTime,\n GridColumnType.MultilineString,\n GridColumnType.Url,\n GridColumnType.Phone,\n GridColumnType.Email,\n ].includes(this.column.type)\n ) {\n return false;\n }\n\n return true;\n }\n\n /** Renders cell. */\n private render(): void {\n this.renderer.removeClass(this.elRef.nativeElement, 'control-cell');\n\n if (this.textElement) {\n this.renderer.removeChild(this.elRef.nativeElement, this.textElement);\n this.renderer.removeClass(this.elRef.nativeElement, 'trim');\n this.renderer.removeAttribute(this.elRef.nativeElement, 'title');\n }\n\n if (this.editing) {\n if (\n this.selectionType === SelectionType.range &&\n this.control.enabled &&\n this.canCellBeEditable()\n ) {\n this.renderer.addClass(this.elRef.nativeElement, 'editing-cell');\n }\n\n switch (this.column.type) {\n case GridColumnType.Component:\n this.renderComponent();\n return;\n case GridColumnType.DateControl:\n this.renderDateControl();\n return;\n case GridColumnType.SelectControl:\n this.renderSelectControl();\n return;\n case GridColumnType.UserControl:\n this.renderUserControl();\n return;\n case GridColumnType.NumberControl:\n this.renderNumberControl();\n return;\n case GridColumnType.CurrencyControl:\n this.renderCurrencyControl();\n return;\n case GridColumnType.StringControl:\n this.renderStringControl();\n return;\n case GridColumnType.BooleanControl:\n this.renderBooleanControl();\n return;\n }\n }\n\n if (this.column.type === GridColumnType.User) {\n this.renderUser();\n return;\n }\n\n this.renderPlainValues();\n }\n\n /** Renders plain text values in the grid cell. */\n private renderPlainValues(): void {\n this.componentCell = null;\n this.componentCellInputs = {};\n\n if (this.handleSpecialColumnTypes()) {\n return;\n }\n\n const text = this.getFormattedText();\n if (text) {\n this.renderText(text);\n }\n }\n\n /**\n * Handles rendering of special column types.\n *\n * This method checks if the current column type is a special type that requires a specific rendering.\n * If it is, it calls the corresponding rendering method. If not, it returns false.\n *\n * @returns {boolean} True if a special column type was handled, false otherwise.\n */\n private handleSpecialColumnTypes(): boolean {\n const specialTypes = {\n [GridColumnType.Component]: () => this.renderComponent(true),\n [GridColumnType.ResourceNavigation]: () =>\n this.renderResourceNavigation(),\n [GridColumnType.UserControl]: () => this.renderUser(),\n [GridColumnType.Navigation]: () => this.renderNavigation(),\n [GridColumnType.Command]: () => this.renderCommand(),\n [GridColumnType.State]: () => this.renderState(),\n [GridColumnType.Boolean]: () => this.renderBoolean(),\n [GridColumnType.BooleanControl]: () => this.renderBoolean(),\n [GridColumnType.MultilineString]: () => this.renderMultilineString(),\n [GridColumnType.Phone]: () => this.renderLink(this.value, 'phone'),\n [GridColumnType.Email]: () => this.renderLink(this.value, 'email'),\n [GridColumnType.Url]: () => this.renderLink(this.value, 'url'),\n [GridColumnType.FileBox]: () => this.renderFileBoxCell(),\n };\n\n const handler = specialTypes[this.column.type];\n if (handler) {\n handler();\n return true;\n }\n return false;\n }\n\n /**\n * Formats the cell value based on its type.\n *\n * @returns {string | null} The formatted text or null if the type is not recognized.\n */\n private getFormattedText(): string | null {\n if (this.isStringType()) {\n const extendedType = (this.column as GridStringControlColumn)\n .extendedType;\n if (this.isExtendedStringType(extendedType)) {\n this.renderLink(this.value, extendedType);\n return null;\n } else {\n return this.value;\n }\n }\n\n if (this.isEntityType()) return this.getEntityText();\n if (this.isSelectControlType()) return this.getSelectControlText();\n if (this.isDateType()) return this.getDateText();\n if (this.isDateTimeType()) return this.getDateTimeText();\n\n // Below represents number texts with right side alignment.\n this.renderer.addClass(this.elRef.nativeElement, 'text-end');\n if (this.isDecimalPercentType()) {\n return this.getDecimalPercentText();\n } else if (this.isDecimalType()) {\n return this.getDecimalText();\n }\n if (this.isIntegerPercentType()) return this.getPercentText();\n if (this.isIntegerType()) return this.getIntegerText();\n if (this.isWorkType()) return this.getWorkText();\n if (this.isCurrencyType()) return this.getCurrencyText();\n return null;\n }\n\n /**\n * Renders a text element within the grid cell.\n *\n * @param {string} text The text to be rendered.\n */\n private renderText(text: string): void {\n this.textElement = this.renderer.createText(text);\n this.renderer.appendChild(this.elRef.nativeElement, this.textElement);\n this.renderer.addClass(this.elRef.nativeElement, 'trim');\n this.renderer.setAttribute(this.elRef.nativeElement, 'title', text);\n }\n\n /**\n * Renders a link element within the grid cell based on the provided value and type.\n *\n * @param {string} value The value to be used for the link.\n * @param TextBoxType The type of link to be rendered.\n */\n private renderLink(value: string, type: TextBoxExtendedType): void {\n if (!value) return;\n\n this.removeChildren();\n\n if (type === 'phone') value = this.phonePipe.transform(value);\n\n const hrefMap: Record = {\n email: `mailto:${value}`,\n phone: `tel:${value}`,\n url: value,\n };\n\n const anchor = this.renderer.createElement('a');\n this.renderer.addClass(anchor, 'cell-link');\n if (\n this.cellOrchestratorService.options.selectionType !== SelectionType.range\n ) {\n this.renderer.addClass(anchor, 'cell-link-light');\n }\n this.renderer.setAttribute(anchor, 'href', hrefMap[type]);\n\n if (type === 'url') {\n this.renderer.setAttribute(anchor, 'target', '_blank');\n value = value.replace(/^https?:\\/\\//, ''); // Remove the protocol from the value.\n }\n\n this.renderer.appendChild(anchor, this.renderer.createText(value));\n this.renderer.appendChild(this.elRef.nativeElement, anchor);\n }\n\n /** Renders number control. */\n private renderNumberControl(): void {\n this.componentCell = NumberBoxComponent;\n\n const column = this.column as GridNumberControlColumn;\n this.componentCellInputs = {\n control: this.control,\n type: column.controlType,\n min: column.min,\n max: column.max,\n precision: column.precision ?? 2,\n autofocus: this.selectionType === SelectionType.range,\n initialValue: this.cellOrchestratorService.initialControlValue,\n propagationMode: column.propagationMode ?? PropagationMode.onInput,\n };\n if (column.allowNull === false) {\n this.componentCellInputs.allowNull = false;\n }\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders currency control. */\n private renderCurrencyControl(): void {\n this.componentCell = CurrencyBoxComponent;\n\n const column = this.column as GridCurrencyControlColumn;\n const currencyCode =\n (column.currencyCodeProperty &&\n _.get(this.row, column.currencyCodeProperty)) ||\n column.currencyCode ||\n this.app.session.configuration.baseCurrencyCode;\n\n this.componentCellInputs = {\n control: this.control,\n min: column.min,\n max: column.max,\n currencyCode,\n autofocus: this.selectionType === SelectionType.range,\n initialValue: this.cellOrchestratorService.initialControlValue,\n };\n if (column.allowNull === false) {\n this.componentCellInputs.allowNull = false;\n }\n if (column.isCurrencyEditable === false) {\n this.componentCellInputs.isCurrencyEditable = false;\n }\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders select control. */\n private renderSelectControl(readonly = false): void {\n this.componentCell = SelectBoxComponent;\n\n const column = this.column as GridSelectControlColumn;\n this.componentCellInputs = {\n control: this.control,\n values: column.values,\n collection: column.collection,\n query: column.query,\n placeholder: column.placeholder\n ? this.translateService.instant(column.placeholder)\n : '',\n autofocus: this.selectionType === SelectionType.range,\n initialValue: this.cellOrchestratorService.initialControlValue,\n isIdMode: column.isIdMode,\n directory: column.directory,\n readonly,\n };\n if (column.allowNull === false) {\n this.componentCellInputs.allowNull = false;\n }\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders string control. */\n private renderStringControl(): void {\n this.componentCell = TextBoxComponent;\n\n const column = this.column as GridStringControlColumn;\n if (column.extendedType) {\n this.removeChildren();\n }\n\n this.componentCellInputs = {\n control: this.control,\n extendedType: column.extendedType ?? 'string',\n placeholder: column.placeholder\n ? this.translateService.instant(column.placeholder)\n : '',\n propagationMode: column.propagationMode ?? PropagationMode.onInput,\n autofocus: this.selectionType === SelectionType.range,\n initialValue: this.cellOrchestratorService.initialControlValue,\n };\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders boolean control. */\n private renderBooleanControl(): void {\n this.componentCell = CheckboxComponent;\n this.componentCellInputs = {\n control: this.control,\n autofocus: this.selectionType === SelectionType.range,\n initialValue: this.cellOrchestratorService.initialControlValue,\n reversed: (this.column as GridBooleanColumn).reversed,\n };\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders user control. */\n private renderUserControl(): void {\n this.componentCell = UserBoxComponent;\n\n const column = this.column as GridUserControlColumn;\n const initialControlValue =\n this.cellOrchestratorService.initialControlValue;\n this.componentCellInputs = {\n control: this.control,\n placeholder: column.placeholder\n ? this.translateService.instant(column.placeholder)\n : '',\n query: column.query,\n initialValue: initialControlValue,\n autofocus:\n this.selectionType === SelectionType.range &&\n initialControlValue === undefined,\n };\n\n if (column.allowNull === false) {\n this.componentCellInputs.allowNull = false;\n }\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders date control. */\n private renderDateControl(): void {\n this.componentCell = DateBoxComponent;\n\n const column = this.column as GridDateControlColumn;\n this.componentCellInputs = {\n control: this.control,\n initialValue: this.cellOrchestratorService.initialControlValue,\n autofocus: this.selectionType === SelectionType.range,\n };\n if (column.allowNull === false) {\n this.componentCellInputs.allowNull = false;\n }\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders component cell. */\n private renderComponent(readonlyVersion?: boolean): void {\n const gridViewComponentColumn = this.column as GridComponentColumn;\n const component =\n readonlyVersion && gridViewComponentColumn.readonlyComponent\n ? gridViewComponentColumn.readonlyComponent\n : gridViewComponentColumn.component;\n\n this.componentCell = component;\n this.componentCellInputs = {\n formGroup: this.formGroup,\n column: this.column,\n initialValue: this.cellOrchestratorService.initialControlValue,\n };\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders file box cell. */\n private renderFileBoxCell(): void {\n const gridViewComponentColumn = this.column as GridFileBoxColumn;\n\n this.componentCell = FileBoxCellComponent;\n this.componentCellInputs = {\n formGroup: this.formGroup,\n column: this.column,\n initialValue: this.cellOrchestratorService.initialControlValue,\n entityType: gridViewComponentColumn.entityType,\n };\n\n this.renderer.addClass(this.elRef.nativeElement, 'control-cell');\n }\n\n /** Renders user navigation control. */\n private renderResourceNavigation(): void {\n this.componentCell = ResourceNavigationCellComponent;\n this.componentCellInputs = {\n row: this.row,\n column: this.column as GridNavigationColumn,\n };\n\n this.renderer.setAttribute(\n this.elRef.nativeElement,\n 'title',\n this.row.name,\n );\n this.renderer.addClass(this.elRef.nativeElement, 'trim');\n }\n\n /** Renders user cell. */\n private renderUser(): void {\n this.componentCell = UserCellComponent;\n this.componentCellInputs = {\n row: this.row,\n column: this.column as GridNavigationColumn,\n };\n }\n\n /** Renders navigation cell. */\n private renderNavigation(): void {\n this.componentCell = NavigationCellComponent;\n this.componentCellInputs = {\n form: this.formGroup,\n column: this.column as GridNavigationColumn,\n };\n\n this.renderer.setAttribute(\n this.elRef.nativeElement,\n 'title',\n this.row[this.column.name],\n );\n this.renderer.addClass(this.elRef.nativeElement, 'trim');\n }\n\n /** Renders command cell. */\n private renderCommand(): void {\n this.componentCell = CommandCellComponent;\n this.componentCellInputs = {\n row: this.row,\n column: this.column as GridCommandColumn,\n };\n\n this.renderer.setAttribute(\n this.elRef.nativeElement,\n 'title',\n this.row[this.column.name],\n );\n }\n\n /** Renders state cell. */\n private renderState(): void {\n this.componentCell = StateCellComponent;\n this.componentCellInputs = {\n value: this.value,\n column: this.column,\n };\n }\n\n /** Renders boolean cell. */\n private renderBoolean(): void {\n this.componentCell = BooleanReadonlyCellComponent;\n this.componentCellInputs = {\n control: this.control,\n readonly: true,\n reversed: (this.column as GridBooleanColumn).reversed,\n };\n }\n\n /** Renders multiline string. */\n private renderMultilineString(): void {\n if (!this.value) {\n return;\n }\n const text = this.nl2br.transform(this.value);\n this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', text);\n this.renderer.addClass(this.elRef.nativeElement, 'trim');\n this.renderer.setAttribute(this.elRef.nativeElement, 'title', this.value);\n }\n\n /**\n * Adds a subscription to the cell's value changes to force cell updating.\n *\n * This method is responsible for detecting changes in the cell's value and\n * re-rendering the cell if necessary. It debounces the value changes to prevent\n * excessive re-renders. The re-render is skipped if the cell is currently being\n * edited or if it cannot be edited.\n */\n private addForceCellUpdating(): void {\n this.lastValue = this.formGroup.controls[this.column.name].value;\n this.formGroup.controls[this.column.name].valueChanges\n .pipe(debounceTime(checkChangesDebounceTime), takeUntil(this.destroyed$))\n .subscribe((change) => {\n if (!_.isEqual(this.lastValue, change)) {\n this.lastValue = change;\n // Check if the cell is not being edited or is not editable to prevent re-render during editing\n if (\n (this.selectionType === SelectionType.range &&\n this.formGroup.controls[this.column.name] !==\n this.cellOrchestratorService.editingControl) ||\n !this.canCellBeEditable()\n ) {\n this.render();\n this.cdr.detectChanges();\n }\n }\n });\n }\n\n private isDateType(): boolean {\n return (\n this.column.type === GridColumnType.Date ||\n this.column.type === GridColumnType.DateControl\n );\n }\n\n private isDateTimeType(): boolean {\n return this.column.type === GridColumnType.DateTime;\n }\n\n private isDecimalPercentType(): boolean {\n return (\n (this.column.type === GridColumnType.Decimal &&\n this.column.contentType === GridColumnType.Percent) ||\n (this.column.type === GridColumnType.NumberControl &&\n (this.column as GridNumberControlColumn).controlType === 'percent')\n );\n }\n\n private isIntegerPercentType(): boolean {\n return this.column.type === GridColumnType.Percent;\n }\n\n private isDecimalType(): boolean {\n return (\n this.column.type === GridColumnType.Decimal ||\n (this.column.type === GridColumnType.NumberControl &&\n (this.column as GridNumberControlColumn).controlType === 'decimal')\n );\n }\n\n private isIntegerType(): boolean {\n return (\n this.column.type === GridColumnType.Integer ||\n (this.column.type === GridColumnType.NumberControl &&\n (this.column as GridNumberControlColumn).controlType === 'integer')\n );\n }\n\n private isWorkType(): boolean {\n return (\n this.column.type === GridColumnType.Work ||\n (this.column.type === GridColumnType.NumberControl &&\n (this.column as GridNumberControlColumn).controlType === 'work')\n );\n }\n\n private isStringType(): boolean {\n return (\n this.column.type === GridColumnType.String ||\n this.column.type === GridColumnType.StringControl\n );\n }\n\n private isExtendedStringType(extendedType?: TextBoxExtendedType): boolean {\n return extendedType && this.column.type === GridColumnType.StringControl;\n }\n\n private isEntityType(): boolean {\n return this.column.type === GridColumnType.Entity;\n }\n\n private isSelectControlType(): boolean {\n return this.column.type === GridColumnType.SelectControl;\n }\n\n private isCurrencyType(): boolean {\n return (\n this.column.type === GridColumnType.Currency ||\n this.column.type === GridColumnType.CurrencyControl ||\n (this.column.type === GridColumnType.NumberControl &&\n (this.column as GridNumberControlColumn).controlType === 'currency')\n );\n }\n\n private getDateText(): string {\n return this.datePipe.transform(this.value, 'shortDate');\n }\n\n private getDateTimeText(): string {\n return this.datePipe.transform(\n this.value,\n 'short',\n this.app.session.timeZoneOffset,\n );\n }\n\n private getCurrencyText(): string {\n if (_.isObject(this.value)) {\n return this.currencyPipe.transform(\n this.value['value'],\n this.value['currencyCode'],\n );\n } else {\n const column = this.column as GridCurrencyColumn;\n const currencyCode =\n (column.currencyCodeProperty &&\n _.get(this.row, column.currencyCodeProperty)) ||\n column.currencyCode ||\n this.app.session.configuration.baseCurrencyCode;\n return this.currencyPipe.transform(this.value, currencyCode);\n }\n }\n\n private getEntityText(): string {\n if (typeof this.value === 'string') {\n const values = (this.column as GridEntityColumn).values;\n if (isObservable(values)) {\n values\n .pipe(take(1))\n .subscribe(\n (val: NamedEntity[]) => val.find((v) => v.id === this.value).name,\n );\n } else {\n return values.find((v) => v.id === this.value).name;\n }\n } else {\n return this.value?.name;\n }\n }\n\n /**\n * Returns the text representation of the select control value.\n *\n * If the select control is in ID mode, it renders the select control and returns null.\n * Otherwise, it returns the name of the value if it exists, or an empty string if not.\n *\n * @returns {string | null} The text representation of the select control value or null if in ID mode.\n */\n private getSelectControlText(): string | null {\n if ((this.column as GridSelectControlColumn).isIdMode) {\n this.renderSelectControl(true);\n return null;\n }\n return this.value ? this.value.name : '';\n }\n\n private getDecimalPercentText(): string {\n const column = this.column as GridNumberControlColumn;\n const precision = column.precision ?? 2;\n return this.percentPipe.transform(this.value, `1.0-${precision}`);\n }\n\n private getPercentText(): string {\n return this.percentPipe.transform(this.value);\n }\n\n private getDecimalText(): string {\n const column = this.column as GridNumberControlColumn;\n const precision = column.precision ?? 2;\n return this.numberPipe.transform(this.value, `1.0-${precision}`);\n }\n\n private getIntegerText(): string {\n return this.numberPipe.transform(this.value, '1.0-0');\n }\n\n private getWorkText(): string {\n return this.workPipe.transform(this.value);\n }\n\n private removeChildren(): void {\n const childElements = this.elRef.nativeElement.children;\n for (const child of childElements) {\n this.renderer.removeChild(this.elRef.nativeElement, child);\n }\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { SelectionType } from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Directive({\n selector: '[tmtGridSelectionCell]',\n standalone: false,\n})\nexport class GridSelectionCellDirective implements AfterViewInit, OnDestroy {\n @Input() column: GridColumn;\n @Input('group') formGroup: UntypedFormGroup;\n @Input() selectionType: SelectionType;\n\n private mouseEnterListener = () => null;\n private mouseDownListener = () => null;\n private dblclickListener = () => null;\n\n private get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name] as UntypedFormControl;\n }\n\n constructor(\n public service: GridService,\n private elRef: ElementRef,\n private renderer: Renderer2,\n private zone: NgZone,\n private cellOrchestratorService: GridOrchestratorService,\n ) {}\n\n public ngAfterViewInit(): void {\n this.initListeners();\n }\n\n public ngOnDestroy(): void {\n this.mouseEnterListener();\n this.mouseDownListener();\n this.dblclickListener();\n }\n\n /** Inits listeners. */\n private initListeners(): void {\n if (!this.selectionType) {\n return;\n }\n\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(\n this.elRef.nativeElement,\n 'mousedown',\n (event) => this.onCellMouseDown(event),\n );\n\n if (this.selectionType !== SelectionType.range) {\n return;\n }\n\n this.mouseEnterListener = this.renderer.listen(\n this.elRef.nativeElement,\n 'mouseenter',\n (event) => {\n this.onCellMouseEnter(event, this.formGroup, this.column);\n },\n );\n\n this.dblclickListener = this.renderer.listen(\n this.elRef.nativeElement,\n 'dblclick',\n () => this.setEditingControl(),\n );\n });\n }\n\n /**\n * Mousedown logic. Uses for management of grid cells/rows selection.\n *\n * @param event Mouse event.\n */\n private onCellMouseDown(event: MouseEvent): void {\n if (\n this.control === this.cellOrchestratorService.editingControl ||\n (event.button === 2 &&\n this.cellOrchestratorService.options?.rowContextMenu?.length) ||\n (event.target as HTMLElement).tagName === 'A'\n ) {\n return;\n }\n\n // Adds all group from last selected to current cell group to selected groups.\n const selectToGroup = () => {\n const lastSelectedGroupIndex =\n this.cellOrchestratorService.formArray.controls.findIndex(\n (group) => group === this.cellOrchestratorService.selectedGroup,\n );\n const targetGroupIndex =\n this.cellOrchestratorService.formArray.controls.findIndex(\n (group) => group === this.formGroup,\n );\n if (targetGroupIndex < lastSelectedGroupIndex) {\n for (let i = lastSelectedGroupIndex - 1; i >= targetGroupIndex; i--) {\n const groupToSelection = this.cellOrchestratorService.formArray\n .controls[i] as UntypedFormGroup;\n this.cellOrchestratorService.addGroupToSelected(groupToSelection);\n }\n } else {\n for (let i = lastSelectedGroupIndex + 1; i <= targetGroupIndex; i++) {\n const groupToSelection = this.cellOrchestratorService.formArray\n .controls[i] as UntypedFormGroup;\n this.cellOrchestratorService.addGroupToSelected(groupToSelection);\n }\n }\n this.service.detectChanges();\n };\n\n if (this.selectionType === SelectionType.range) {\n if (event.shiftKey) {\n if (this.cellOrchestratorService.activeControl) {\n this.cellOrchestratorService.setEditingControl(null);\n this.cellOrchestratorService.setNodalSelectedControl(this.control);\n return;\n } else {\n selectToGroup();\n return;\n }\n }\n\n if (event.ctrlKey || event.metaKey) {\n this.cellOrchestratorService.switchGroupSelection(this.formGroup);\n } else {\n this.cellOrchestratorService.setActiveControl(this.control);\n this.cellOrchestratorService.setEditingControl(null);\n }\n this.service.detectChanges();\n return;\n }\n\n if (this.selectionType === SelectionType.row) {\n if (this.cellOrchestratorService.selectedGroup === this.formGroup) {\n return;\n }\n this.cellOrchestratorService.selectGroup(this.formGroup);\n\n this.service.detectChanges();\n }\n\n if (this.selectionType === SelectionType.rows) {\n if (event.shiftKey) {\n selectToGroup();\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n this.cellOrchestratorService.switchGroupSelection(this.formGroup);\n this.service.detectChanges();\n return;\n }\n if (\n this.cellOrchestratorService.selectedGroups.length === 1 &&\n this.cellOrchestratorService.selectedGroup === this.formGroup\n ) {\n return;\n }\n this.cellOrchestratorService.selectGroup(this.formGroup);\n this.service.detectChanges();\n }\n }\n\n /** Enables editing mode for clicked cell if possible. */\n private setEditingControl(): void {\n if (\n this.service.readonly ||\n this.control.disabled ||\n this.selectionType !== SelectionType.range\n ) {\n return;\n }\n this.cellOrchestratorService.setEditingControl(this.control);\n this.service.detectChanges();\n }\n\n /**\n * Sets new nodalSelectedControl if possible.\n *\n * @param formGroup Data.\n * @param event Event.\n * @param column Grid column.\n */\n private onCellMouseEnter(\n event: MouseEvent,\n formGroup: UntypedFormGroup,\n column: GridColumn,\n ): void {\n //event.buttons === 1 is equivalent of pressed left mouse button\n if (event.buttons !== 1 || this.cellOrchestratorService.editingControl) {\n return;\n }\n\n const control = column ? formGroup.controls[column.name] : undefined;\n this.cellOrchestratorService.setNodalSelectedControl(control);\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Renderer2,\n ElementRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n GridColumn,\n GridColumnType,\n GridCurrencyColumn,\n GridNumberControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { DecimalPipe } from '@angular/common';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { AppService } from 'src/app/core/app.service';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport _ from 'lodash';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-grid-total-cell]',\n templateUrl: './grid-total-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GridTotalCellComponent implements OnInit {\n @Input() column: GridColumn;\n\n private _value: number;\n @Input() set value(value: number) {\n this._value = value;\n if (this.column.total === TotalType.Component) return;\n\n this.renderPlain();\n }\n public get value(): number {\n return this._value;\n }\n\n public readonly totalType = TotalType;\n public textElement: any;\n\n constructor(\n private translate: TranslateService,\n private app: AppService,\n private currencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n private workPipe: WorkPipe,\n private renderer: Renderer2,\n private elRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n if (this.column.total !== TotalType.Component) {\n this.renderer.addClass(this.elRef.nativeElement, 'trim');\n this.textElement = this.renderer.createText('');\n this.renderer.appendChild(this.elRef.nativeElement, this.textElement);\n\n this.renderPlain();\n }\n }\n\n /** Renders the text element with the formatted value. */\n private renderPlain(): void {\n if (!this.textElement) {\n return;\n }\n\n if (!this._value) {\n this._value = 0;\n }\n\n const text = this.getFormattedText();\n\n if (this.column.total !== TotalType.Count) {\n this.renderer.addClass(this.elRef.nativeElement, 'text-end');\n }\n\n if (text) {\n this.renderer.setValue(this.textElement, text);\n this.renderer.setAttribute(this.elRef.nativeElement, 'title', text);\n }\n }\n\n private getFormattedText(): string | null {\n const type = this.column.contentType ?? this.column.type;\n\n if (this.column.total === TotalType.Count) {\n return `${this.translate.instant('shared.count')}: ${this.numberPipe.transform(this.value, '1.0-0')}`;\n }\n\n if (\n type === GridColumnType.Decimal ||\n (type === GridColumnType.NumberControl &&\n (this.column).controlType === 'decimal')\n ) {\n return this.numberPipe.transform(this.value, '1.2-2');\n }\n\n if (\n type === GridColumnType.Integer ||\n (type === GridColumnType.NumberControl &&\n (this.column).controlType === 'integer')\n ) {\n return this.numberPipe.transform(this.value, '1.0-0');\n }\n\n if (\n type === GridColumnType.Work ||\n (type === GridColumnType.NumberControl &&\n (this.column).controlType === 'work')\n ) {\n return this.workPipe.transform(this.value);\n }\n\n if (\n type === GridColumnType.Currency ||\n (type === GridColumnType.NumberControl &&\n (this.column).controlType === 'currency')\n ) {\n const column = this.column as GridCurrencyColumn;\n if (_.isObject(this.value)) {\n return this.currencyPipe.transform(\n this.value['value'],\n this.value['currencyCode'],\n );\n }\n return this.currencyPipe.transform(\n this.value,\n column.currencyCode ?? this.app.session.configuration.baseCurrencyCode,\n );\n }\n\n return null;\n }\n}\n","@if (column.total === totalType.Component) {\n \n}\n","import { Component, DestroyRef, Input, OnInit } from '@angular/core';\nimport {\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport _ from 'lodash';\nimport { DatePipe } from '@angular/common';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { startWith } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-navigation-cell',\n templateUrl: './navigation-cell.component.html',\n styleUrls: ['./navigation-cell.component.scss'],\n standalone: false,\n})\nexport class NavigationCellComponent implements OnInit {\n @Input() form: UntypedFormGroup;\n @Input() column: GridNavigationColumn;\n\n public uiParams: any;\n public displayName: string;\n\n private get rawFormValue(): any {\n return this.form.getRawValue();\n }\n\n constructor(\n private navigationService: NavigationService,\n private uiRouterGlobals: UIRouterGlobals,\n private datePipe: DatePipe,\n private destroyRef: DestroyRef,\n private appService: AppService,\n ) {}\n\n public ngOnInit(): void {\n this.uiParams = {};\n if (this.column.stateParams) {\n Object.keys(this.column.stateParams).forEach((key) => {\n if (key !== 'fromRow') {\n this.uiParams[key] = this.column.stateParams[key];\n }\n });\n if (this.column.stateParams.fromRow) {\n const fromRow = this.column.stateParams.fromRow;\n Object.keys(fromRow).forEach((key) => {\n this.uiParams[key] = _.get(this.rawFormValue, fromRow[key]);\n });\n }\n } else {\n this.uiParams = {\n entityId: this.rawFormValue.id,\n };\n }\n\n this.uiParams['routeMode'] = RouteMode.continue;\n\n if (!this.uiParams.navigation) {\n this.uiParams.navigation = this.uiRouterGlobals.params?.navigation;\n }\n\n if (!this.uiParams.route && this.navigationService.storedRoute.length) {\n this.uiParams.route = _.cloneDeep(this.navigationService.storedRoute);\n }\n\n this.form.valueChanges\n .pipe(startWith(this.rawFormValue), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const columnValue: any = this.rawFormValue[this.column.name];\n this.displayName = _.isObject(columnValue)\n ? (columnValue as any).name\n : this.column?.navigationType === NavigationType.DateTime\n ? this.datePipe.transform(\n columnValue,\n 'short',\n this.appService.session.timeZoneOffset,\n )\n : columnValue;\n });\n }\n}\n","{{ displayName }}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { cloneDeep } from 'lodash';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport {\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'tmt-resource-navigation-cell',\n templateUrl: './resource-navigation-cell.component.html',\n styleUrls: ['./resource-navigation-cell.component.scss'],\n standalone: false,\n})\nexport class ResourceNavigationCellComponent implements OnInit {\n @Input() row: any;\n @Input() column: GridNavigationColumn;\n\n public uiParams: any;\n public resourceType = ResourceType;\n public navigationType = NavigationType;\n\n constructor(\n private navigationService: NavigationService,\n private uiRouterGlobals: UIRouterGlobals,\n ) {}\n\n public ngOnInit(): void {\n this.uiParams = {\n entityId: this.row.id,\n routeMode: RouteMode.continue,\n };\n\n if (!this.uiParams.navigation) {\n this.uiParams.navigation = this.uiRouterGlobals.params?.navigation;\n }\n\n if (!this.uiParams.route && this.navigationService.storedRoute.length) {\n this.uiParams.route = cloneDeep(this.navigationService.storedRoute);\n }\n }\n}\n","
    \n @if (column.navigationType === navigationType.User) {\n \n } @else {\n @switch (row.resourceType) {\n @case (resourceType.user) {\n \n }\n\n @case (resourceType.department) {\n \n }\n\n @case (resourceType.generic) {\n \n }\n }\n }\n\n {{ row.name }}\n
    \n","import { Component, Input } from '@angular/core';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-state-cell',\n styleUrls: ['./state-cell.component.scss'],\n templateUrl: './state-cell.component.html',\n standalone: false,\n})\nexport class StateCellComponent {\n @Input() value: any;\n @Input() column: GridColumn;\n}\n","@if (value) {\n
    \n
    \n {{ value.name }}\n
    \n
    \n}\n","import { Component, Input } from '@angular/core';\nimport { GridNavigationColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-user-cell',\n templateUrl: './user-cell.component.html',\n styleUrls: ['./user-cell.component.scss'],\n standalone: false,\n})\nexport class UserCellComponent {\n @Input() row: any;\n @Input() column: GridNavigationColumn;\n}\n","@if (row[column.name]) {\n
    \n \n
    {{ row[column.name].name }}
    \n
    \n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Type,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n GridColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport {\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { debounceTime, filter, pairwise, throttleTime } from 'rxjs/operators';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { LogService } from 'src/app/core/log.service';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { GridOrchestratorService } from 'src/app/shared-features/grid/core/grid-orchestrator.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { CellSwitchSetting } from 'src/app/shared-features/grid/models/grid-cells-orchestrator.interface';\nimport { ColumnDefaultValueService } from 'src/app/shared-features/grid/core/column-default-value.service';\nimport { CustomActionsService } from 'src/app/shared-features/grid/core/custom-actions.service';\nimport { customPopperOptions } from 'src/app/shared/helpers/modern-grid.helper';\nimport {\n Command,\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridKeyboardEventsService } from 'src/app/shared-features/grid/core/grid-keyboard-events.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ValidationService } from 'src/app/core/validation.service';\nimport { checkChangesDebounceTime } from 'src/app/shared-features/grid/models/grid-constants';\nimport { MenuService } from 'src/app/core/menu.service';\nimport { DOCUMENT } from '@angular/common';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { asyncScheduler, Subject } from 'rxjs';\nimport { AbstractTotalCell } from 'src/app/shared-features/grid/grid-cell/abstract-total-cell.directive';\n\n/**\n * The component is designed to display and interact with the grid.\n * Used in entity root lists and grids in entity cards.\n * Requires a GridService used for interaction in the DI context.\n */\n@Component({\n selector: 'tmt-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n FreezeTableService,\n GridOrchestratorService,\n ColumnDefaultValueService,\n CustomActionsService,\n GridKeyboardEventsService,\n ],\n standalone: false,\n})\nexport class GridComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Grid options. */\n @Input() options: GridOptions;\n\n /** Displayed data. */\n @Input() formArray: UntypedFormArray;\n\n /** Displayed totals. */\n @Input() totals?: Dictionary> = null;\n\n /** Determines whether enable infinity scroll handler or not. */\n @Input() enableInfinityScroll = false;\n\n /** Parameter for setting the data waiting state. */\n @Input() set loading(value: boolean) {\n this.service.setLoadingState(value);\n }\n\n /** The grid accessibility parameter is read-only. */\n @Input() set readonly(value: boolean) {\n this.service.setReadonlyState(value);\n }\n\n @ViewChild('mainContainer') mainContainer: ElementRef;\n @ViewChild('leftTable') leftTable: ElementRef;\n\n public toolbarInputs: Record = {};\n public rowsWithCommands: Record = {};\n public popperOptions = customPopperOptions;\n public isShowMultiSelectColumn = false;\n\n private endOfTrackObserver: IntersectionObserver;\n private destroyRef = inject(DestroyRef);\n private columnResizeSubject = new Subject<[string, number]>();\n\n constructor(\n public cellOrchestratorService: GridOrchestratorService,\n public gridKeyboardEventsService: GridKeyboardEventsService,\n public validationService: ValidationService,\n public service: GridService,\n private cdr: ChangeDetectorRef,\n private log: LogService,\n private freezeTableService: FreezeTableService,\n private menuService: MenuService,\n private customActionsService: CustomActionsService,\n @Optional() private listService: ListService,\n private el: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public ngOnInit(): void {\n if (this.options.commands) {\n this.customActionsService.init(this.options.commands);\n this.service.commands = this.options.commands;\n }\n\n if (\n this.options.multiSelectColumn &&\n (this.options.selectionType === SelectionType.rows ||\n this.options.selectionType === SelectionType.range)\n ) {\n this.isShowMultiSelectColumn = true;\n }\n\n this.cellOrchestratorService.formArray = this.formArray;\n this.cellOrchestratorService.baseColumns = this.options.view.columns;\n this.cellOrchestratorService.options = this.options;\n this.cellOrchestratorService.initKeyboardEventsSubject.next();\n this.cellOrchestratorService.initGridManagementService();\n this.service.freezeTableService = this.freezeTableService;\n\n this.initSubscriptions();\n\n if (this.options.clientTotals) {\n this.calculateTotals();\n this.cdr.detectChanges();\n }\n\n // Subscribes to valueChanges of form to track whether we reached end of page or not.\n if (this.enableInfinityScroll) {\n this.formArray.valueChanges\n .pipe(\n pairwise(),\n debounceTime(1),\n filter(([previous, current]) => current?.length > previous?.length),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (this.checkEndOfPage()) {\n this.service.setEndOfPageReachedValue(true);\n }\n });\n }\n\n this.columnResizeSubject\n .pipe(\n throttleTime(Constants.saveUserViewThrottleTime, asyncScheduler, {\n leading: true,\n trailing: true,\n }),\n )\n .subscribe(([columnName, width]) => {\n this.listService?.setColumnWidth(columnName, width);\n });\n }\n\n public ngAfterViewInit(): void {\n this.cellOrchestratorService.leftTable = this.leftTable.nativeElement;\n if (this.enableInfinityScroll) {\n this.initIntersectionObserver();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.enableInfinityScroll) {\n this.endOfTrackObserver.disconnect();\n }\n }\n\n /**\n * Closes dropdown.\n *\n * @param dropdown Dropdown.\n */\n public closeDropdown(dropdown: NgbDropdown): void {\n dropdown.close();\n }\n\n /**\n * Checks available row commands.\n *\n * @param formGroup Data.\n * @param i Index.\n * @returns has row commands.\n */\n public rowHasCommands(formGroup: UntypedFormGroup, i: number): boolean {\n if (this.options.rowCommands) {\n return !this.options.rowCommands.every(\n (command: Command) =>\n command.allowedFn && !command.allowedFn(formGroup, i),\n );\n }\n return false;\n }\n\n /**\n * Returns the state of being able to edit a grid cell.\n *\n * @param column Grid column.\n * @param formGroup Data.\n * @returns is editing.\n */\n public isEditing(column: GridColumn, formGroup: UntypedFormGroup): boolean {\n if (\n this.service.readonly ||\n !this.options.selectionType ||\n formGroup.controls[column.name].disabled ||\n column.readonly\n ) {\n return false;\n }\n\n switch (this.options.selectionType) {\n case SelectionType.range:\n return (\n formGroup.controls[column.name] ===\n this.cellOrchestratorService.editingControl\n );\n case SelectionType.row:\n return formGroup === this.cellOrchestratorService.selectedGroup;\n case SelectionType.rows:\n return (\n this.cellOrchestratorService.selectedGroups?.length === 1 &&\n formGroup === this.cellOrchestratorService.selectedGroup\n );\n }\n }\n\n /**\n * Opens row menu.\n *\n * @param id row id.\n * @param dropdown dropdown.\n */\n public openMenu(id: string, dropdown: NgbDropdown): void {\n this.rowsWithCommands[id] = true;\n this.cdr.detectChanges();\n dropdown.close();\n dropdown.open();\n }\n\n /**\n * Returns the state of content alignment in cells.\n *\n * @param column Grid column.\n * @returns is right content align .\n */\n public isRightAlign(column: GridColumn): boolean {\n const types = [\n GridColumnType.Currency,\n GridColumnType.Decimal,\n GridColumnType.Integer,\n GridColumnType.Percent,\n GridColumnType.NumberControl,\n GridColumnType.Work,\n ];\n return column.contentType\n ? types.includes(column.contentType)\n : types.includes(column.type);\n }\n\n /**\n * Returns columns count.\n *\n * @returns columns count.\n */\n public getColumnsCount(): number {\n if (!this.options) {\n return 1;\n }\n\n let count = this.options.view.columns.length;\n if (this.options.rowCommands) {\n count++;\n }\n\n if (this.options.multiSelectColumn) {\n count++;\n }\n\n return count;\n }\n\n /**\n * Select row, cell and open context menu if possible.\n *\n * @param formGroup Data.\n * @param event Event.\n * @param column Grid column.\n */\n public onCellRightBtnClick(\n formGroup: UntypedFormGroup,\n event: any,\n column: GridColumn,\n ): void {\n if (\n this.options.selectionType === SelectionType.range &&\n this.isEditing(column, formGroup)\n )\n return;\n\n this.service.openContextMenu(event, formGroup);\n }\n\n /**\n * Perform sorting by column.\n *\n * @param column Grid column.\n */\n public sort(column: GridColumn): void {\n if (!this.options.sorting) {\n return;\n }\n this.service.sort(column);\n }\n\n /** On table outside click event */\n public onTableOutsideClick(): void {\n this.cellOrchestratorService.setEditingControl(null);\n }\n\n /**\n * Column resizing handler.\n *\n * @param param ColumnName + ColumnWidth.\n */\n public onColumnResized(param: [string, number]): void {\n if (!this.options.resizableColumns) {\n return;\n }\n\n const columnName = param[0];\n const column = this.options.view.columns.find((x) => x.name === columnName);\n column.width = param[1].toString() + 'px';\n\n // Save changes after delay.\n this.columnResizeSubject.next([columnName, param[1]]);\n\n this.freezeTableService.redraw();\n this.cdr.detectChanges();\n }\n\n /** Selects/deselects all groups. */\n public switchAllSelection(): void {\n if (\n !this.options.selectionType ||\n this.options.selectionType === SelectionType.row\n ) {\n return;\n }\n\n if (\n this.cellOrchestratorService.selectedGroups.length ===\n this.formArray.controls.length\n ) {\n this.cellOrchestratorService.clearSelectedGroups();\n } else {\n this.cellOrchestratorService.clearSelectedGroups();\n const lastIndex = this.formArray.controls.length - 1;\n for (let i = 0; i <= lastIndex; i++) {\n this.cellOrchestratorService.addGroupToSelected(\n this.formArray.controls[i] as UntypedFormGroup,\n i === lastIndex,\n );\n }\n }\n }\n\n /**\n * Returns header cell classes.\n *\n * @param column header cell column.\n * @returns list of classes.\n */\n public getHeaderCellClasses(column: GridColumn): string[] {\n const result = [];\n\n if (this.isRightAlign(column)) {\n result.push('text-end');\n }\n if (column.icon) {\n result.push('text-center');\n }\n if (column.name === this.service.order?.column) {\n result.push('sort');\n }\n if (this.service.order?.reverse) {\n result.push('reverse');\n }\n if (this.options?.sorting) {\n result.push('sorting');\n }\n\n return result;\n }\n\n /**\n * Returns adjacent row.\n *\n * @param group current selected row\n * @param direction direction of switching\n * @param toEnd is return maximum possible row in target direction\n * @returns row as `UntypedFormGroup`.\n */\n private getAdjacentRow(\n group: UntypedFormGroup,\n direction: 'up' | 'down',\n toEnd?: boolean,\n ): UntypedFormGroup {\n const rows = this.formArray.controls as UntypedFormGroup[];\n if (toEnd) {\n return direction === 'down' ? rows[rows.length - 1] : rows[0];\n }\n\n const index = rows.findIndex((row) => row.value.id === group.value.id);\n if (direction === 'up' && index > 0) {\n return rows[index - 1];\n }\n if (direction === 'down' && index < rows.length - 1) {\n return rows[index + 1];\n }\n return group;\n }\n\n /** Calculates grid totals (local totals mode). */\n private calculateTotals(): void {\n if (!this.formArray || !this.formArray.length) {\n this.totals = null;\n return;\n }\n\n this.totals = this.options.view.columns.every((c) => !c.total) ? null : {};\n this.options.view.columns.forEach((column) => {\n if (column.total === TotalType.Count) {\n this.totals[column.name] = this.formArray.length;\n }\n\n if (column.total === TotalType.Sum) {\n this.totals[column.name] = (this.formArray.value as any[]).reduce(\n (acc, line) => (acc += line[column.name] ?? 0),\n 0,\n );\n }\n });\n }\n\n /**\n * Switches cell.\n *\n * @param switchSetting Setting of cell switching.\n */\n private switchCell(switchSetting: CellSwitchSetting): void {\n const group = (\n switchSetting.cellType === 'active'\n ? this.cellOrchestratorService.activeControl.parent\n : this.cellOrchestratorService.nodalSelectedControl.parent\n ) as UntypedFormGroup;\n\n switch (switchSetting.direction) {\n case 'down':\n this.switchAdjacentCell(\n this.getAdjacentRow(group, 'down', switchSetting.toEnd),\n switchSetting,\n );\n break;\n case 'up':\n this.switchAdjacentCell(\n this.getAdjacentRow(group, 'up', switchSetting.toEnd),\n switchSetting,\n );\n break;\n case 'right':\n this.switchAdjacentCell(group, switchSetting);\n break;\n case 'left':\n this.switchAdjacentCell(group, switchSetting);\n break;\n }\n }\n\n /**\n * Switch next/previous cell in the row.\n *\n * @param group Data.\n * @param switchSetting Cell switch settings.\n */\n private switchAdjacentCell(\n group: UntypedFormGroup,\n switchSetting: CellSwitchSetting,\n ): void {\n let switchingControl;\n if (switchSetting.cellType === 'active') {\n switchingControl = this.cellOrchestratorService.activeControl;\n } else {\n switchingControl = this.cellOrchestratorService.nodalSelectedControl;\n }\n\n const controls: Array<[string, UntypedFormControl]> = Object.entries(\n switchingControl.parent.controls as UntypedFormControl[],\n );\n\n // Change control to control in the new selected group\n if (\n switchSetting.direction === 'up' ||\n switchSetting.direction === 'down'\n ) {\n const control = controls.find((c) => c[1] === switchingControl);\n if (control) {\n const controlName = control[0];\n if (switchSetting.cellType === 'active') {\n this.cellOrchestratorService.setActiveControl(\n group.controls[controlName],\n );\n } else {\n this.cellOrchestratorService.setNodalSelectedControl(\n group.controls[controlName],\n );\n }\n }\n this.cdr.detectChanges();\n return;\n }\n\n const controlIndex = controls.findIndex((c) => c[1] === switchingControl);\n if (controlIndex) {\n const controlName = controls[controlIndex][0];\n const viewColumnNames = this.options.view.columns.map((c) => c.name);\n const viewColumnIndex = viewColumnNames.findIndex(\n (name) => name === controlName,\n );\n\n if (switchSetting.direction === 'left' && viewColumnIndex !== 0) {\n let nextControlName;\n if (switchSetting.toEnd) {\n nextControlName = viewColumnNames[0];\n } else {\n nextControlName = viewColumnNames[viewColumnIndex - 1];\n }\n if (switchSetting.cellType === 'active') {\n this.cellOrchestratorService.setActiveControl(\n group.controls[nextControlName],\n );\n } else {\n this.cellOrchestratorService.setNodalSelectedControl(\n group.controls[nextControlName],\n );\n }\n this.cdr.detectChanges();\n }\n\n if (\n switchSetting.direction === 'right' &&\n viewColumnIndex < viewColumnNames.length - 1\n ) {\n let nextControlName;\n if (switchSetting.toEnd) {\n nextControlName = viewColumnNames[viewColumnNames.length - 1];\n } else {\n nextControlName = viewColumnNames[viewColumnIndex + 1];\n }\n if (switchSetting.cellType === 'active') {\n this.cellOrchestratorService.setActiveControl(\n group.controls[nextControlName],\n );\n } else {\n this.cellOrchestratorService.setNodalSelectedControl(\n group.controls[nextControlName],\n );\n }\n this.cdr.detectChanges();\n }\n }\n }\n\n /** Init component subscriptions. */\n private initSubscriptions(): void {\n this.gridKeyboardEventsService.switchCell$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((switchSettings) => {\n this.switchCell(switchSettings);\n });\n\n this.service.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // Should to turn off the mutation observer for exclude unnecessary rerenders.\n this.freezeTableService.disableMutationObserver();\n this.cdr.detectChanges();\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, checkChangesDebounceTime);\n });\n\n this.formArray.valueChanges\n .pipe(\n debounceTime(checkChangesDebounceTime),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (this.options.clientTotals) {\n this.calculateTotals();\n }\n this.log.debug('Grid: data was changed.');\n // Check is selectedGroup or active/nodal controls exists.\n this.cellOrchestratorService.selectedGroups.forEach((group) => {\n if (\n !this.formArray.value.map((el) => el.id).includes(group.value.id)\n ) {\n if (\n this.options.selectionType === SelectionType.range &&\n this.cellOrchestratorService.activeControl?.parent === group\n ) {\n this.cellOrchestratorService.setActiveControl(null);\n } else {\n this.cellOrchestratorService.removeGroupFromSelected(group);\n }\n }\n });\n\n if (this.options.selectionType === SelectionType.range) {\n this.cellOrchestratorService.updateSelectionCoordinates();\n }\n this.cdr.detectChanges();\n });\n\n this.freezeTableService.scroll$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.menuService.close();\n });\n }\n\n /** Inits observer on endOfTrack element to know when we are at the end of the page. */\n private initIntersectionObserver(): void {\n this.endOfTrackObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n this.service.setEndOfPageReachedValue(!!entry.isIntersecting);\n });\n },\n {\n root: null,\n rootMargin: '0px',\n threshold: 1.0,\n },\n );\n\n this.endOfTrackObserver.observe(\n this.el.nativeElement.querySelector('.end-of-track'),\n );\n }\n\n /** Checks if the end of page reached. */\n private checkEndOfPage(): boolean {\n return (\n this.el.nativeElement\n .querySelector('.end-of-track')\n .getBoundingClientRect().y < this.document.documentElement.clientHeight\n );\n }\n}\n","\n \n\n
    \n
    \n \n \n \n @if (isShowMultiSelectColumn) {\n \n }\n @for (column of options.view.columns; track column.name) {\n \n }\n @if (options.rowCommands) {\n \n }\n \n \n \n @if (isShowMultiSelectColumn) {\n \n
    \n \n
    \n \n }\n\n @for (column of options.view.columns; track column.name) {\n \n @if (column.icon) {\n \n } @else {\n {{ column.header | translate }}\n }\n \n }\n\n @if (options.rowCommands) {\n \n }\n \n \n \n
    \n\n
    \n \n @if (service.loading$ | async) {\n \n \n \n }\n\n \n @if (isShowMultiSelectColumn) {\n \n }\n @for (column of options.view.columns; track column.name) {\n \n }\n @if (options.rowCommands) {\n \n }\n \n\n \n @for (\n formGroup of formArray?.controls;\n track formGroup.value.id;\n let rowIndex = $index\n ) {\n \n @if (isShowMultiSelectColumn) {\n \n \n \n \n \n }\n\n @for (column of options.view.columns; track column.name; let colIndex = $index) {\n \n }\n\n @if (options.rowCommands) {\n \n @if (rowHasCommands(formGroup, rowIndex)) {\n \n \n \n @if (rowsWithCommands[formGroup.value.id]) {\n
    \n @for (command of options.rowCommands; track command.name) {\n \n {{ command.label | translate }}\n \n }\n
    \n }\n }\n \n }\n
    \n }\n @if (!(service.loading$ | async) && !formArray?.controls.length) {\n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n }\n \n
    \n \n
    \n
    \n
    \n \n @if (totals) {\n \n \n @if (isShowMultiSelectColumn) {\n \n }\n @for (column of options.view.columns; track column.name) {\n \n }\n @if (options.rowCommands) {\n \n }\n \n \n \n @if (isShowMultiSelectColumn) {\n \n }\n @for (column of options.view.columns; track column.name) {\n @if (column.total) {\n \n } @else {\n \n }\n }\n @if (options.rowCommands) {\n \n }\n \n \n
    \n }\n
    \n \n\n \n \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { GridComponent } from 'src/app/shared-features/grid/grid.component';\nimport { GridCellComponent } from 'src/app/shared-features/grid/grid-cell/grid-cell.component';\nimport { UserCellComponent } from 'src/app/shared-features/grid/grid-cell/user-cell/user-cell.component';\nimport { StateCellComponent } from 'src/app/shared-features/grid/grid-cell/state-cell/state-cell.component';\nimport { NavigationCellComponent } from 'src/app/shared-features/grid/grid-cell/navigation-cell/navigation-cell.component';\nimport { CommandCellComponent } from 'src/app/shared-features/grid/grid-cell/command-cell/command-cell.component';\nimport { BooleanReadonlyCellComponent } from 'src/app/shared-features/grid/grid-cell/boolean-cell/boolean-cell.component';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { GridTotalCellComponent } from 'src/app/shared-features/grid/grid-cell/grid-total-cell/grid-total-cell.component';\nimport { GridSelectionCellDirective } from 'src/app/shared-features/grid/grid-cell/grid-selection-cell.directive';\nimport { ResourceNavigationCellComponent } from 'src/app/shared-features/grid/grid-cell/resource-navigation-cell/resource-navigation-cell.component';\nimport { CheckboxComponent } from 'src/app/shared/components/controls/checkbox/checkbox.component';\n\n@NgModule({\n declarations: [\n GridComponent,\n GridTotalCellComponent,\n GridCellComponent,\n ResourceNavigationCellComponent,\n UserCellComponent,\n StateCellComponent,\n NavigationCellComponent,\n CommandCellComponent,\n BooleanReadonlyCellComponent,\n GridSelectionCellDirective,\n ],\n imports: [CommonModule, SharedModule, UIRouterModule, CheckboxComponent],\n exports: [GridComponent],\n})\nexport class GridModule {}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Type } from '@angular/core';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { Observable } from 'rxjs';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DirectoryParams } from 'src/app/shared/components/controls/select-box/select-box.component';\nimport { TextBoxExtendedType } from 'src/app/shared/components/controls/text-box/text-box.model';\n\n/** Grid column type. */\nexport enum GridColumnType {\n Navigation,\n ResourceNavigation,\n String,\n Url,\n Email,\n Phone,\n MultilineString,\n Entity,\n Boolean,\n Date,\n DateTime,\n Decimal,\n Integer,\n Percent,\n Work,\n Currency,\n Label,\n User,\n State,\n\n Command,\n\n StringControl,\n DateControl,\n NumberControl,\n SelectControl,\n UserControl,\n BooleanControl,\n CurrencyControl,\n Component,\n FileBox,\n}\n\n/** Navigation column type. */\nexport enum NavigationType {\n 'Resource',\n 'User',\n 'DateTime',\n}\n\n/**\n * Grid column.\n *\n * TODO: refactor to smart one (properties depends on GridColumnType);\n */\nexport interface GridColumn {\n /** Column name for its identification. */\n name: string;\n\n /** Column type. Determines of using control for visualization. */\n type: GridColumnType;\n\n /** Column content type. Determines of header and total cell format. Uses column type if contentType is not defined. */\n contentType?: GridColumnType;\n\n /** Enables force cell updating after change its formGroup abstract control. */\n forceCellUpdating?: boolean;\n\n /** Column header (localization code). */\n header: string;\n\n /** Column icon CSS class. */\n icon?: string;\n\n /** Column hint (localization code). */\n hint: string;\n\n /** Fixed width flag. Used to calculate the width field based on the view.\n * If false, then in view-columns and custom-view-columns the width is set as numbers (1, 2), which sets the column width in %%\n * (%% = number / sum of numbers across all columns).\n * If true, then the width will be set to px.\n */\n fixedWidth?: boolean;\n\n /** CSS column width (25%, 220px).\n * It makes no sense to set it in a declarative description, because will be recalculated from the view settings.\n * */\n width?: string;\n\n /** List of available summary functions. Used when setting up a custom view. */\n availableTotals?: TotalType[];\n\n /** Using (selected) total function. */\n total?: TotalType;\n\n /** Required feature. */\n requiredFeature?: Feature | null;\n\n /** Default value for column cells. Uses with removing cell data. */\n getDefaultValue?: () => any;\n\n /** Determines if the column is forcedly read-only. */\n readonly?: boolean;\n}\n\nexport interface GridNavigationColumn extends GridColumn {\n state: string;\n stateParams?: StateParams;\n navigationType?: NavigationType;\n}\n\n/** List of custom parameters for state. */\nexport interface StateParams {\n fromRow: Record;\n}\n\n/** Cells in the form of links executing the grid service command '.execute'. */\nexport interface GridCommandColumn extends GridColumn {\n command: string;\n}\n\nexport interface GridComponentColumn extends GridColumn {\n component: Type;\n readonlyComponent?: Type;\n allowNull?: boolean;\n}\n\nexport interface GridDateControlColumn extends GridColumn {\n allowNull?: boolean;\n}\n\nexport interface GridSelectControlColumn extends GridColumn {\n values?: any;\n placeholder?: string;\n collection?: string;\n query?: any;\n allowNull?: boolean;\n isIdMode?: boolean;\n directory?: string | DirectoryParams;\n}\n\nexport interface GridStringControlColumn extends GridColumn {\n placeholder?: string;\n propagationMode?: PropagationMode;\n extendedType?: TextBoxExtendedType;\n}\n\nexport interface GridUserControlColumn extends GridColumn {\n placeholder?: string;\n allowNull?: boolean;\n /** OData request for control. */\n query?: any;\n}\n\nexport interface GridNumberControlColumn extends GridColumn {\n controlType: 'integer' | 'decimal' | 'work' | 'currency' | 'percent';\n min?: number;\n max?: number;\n allowNull?: boolean;\n precision?: number;\n propagationMode?: PropagationMode;\n}\n\nexport interface GridCurrencyColumn extends GridColumn {\n currencyCodeProperty?: string;\n currencyCode?: string;\n}\n\nexport interface GridCurrencyControlColumn extends GridColumn {\n min?: number;\n max?: number;\n allowNull?: boolean;\n currencyCode?: string;\n isCurrencyEditable?: boolean;\n currencyCodeProperty?: string;\n}\n\nexport interface GridEntityColumn extends GridColumn {\n values?: Observable | NamedEntity[];\n}\n\nexport interface GridBooleanColumn extends GridColumn {\n reversed?: boolean;\n}\n\nexport interface GridFileBoxColumn extends GridColumn {\n entityType: string;\n}\n","/** Debounce time for some grid changes checking. */\nexport const checkChangesDebounceTime = 10;\n","import { Type } from '@angular/core';\n\nimport { MenuItem } from 'src/app/core/menu.service';\nimport { GridView } from 'src/app/shared-features/grid/models/grid-view.interface';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { AbstractRightSide } from 'src/app/shared-features/grid/abstract-right-side.directive';\n\n// TODO: check optional properties\nexport interface GridOptions {\n /** Grid view setting. */\n view?: GridView;\n /** Grid toolbar component. */\n toolbar?: Type;\n /** Grid right side component. Uses with dynamic calendars. */\n rightSideComponent?: Type;\n /** Enables mode with horizontal scrolling. */\n resizableColumns?: boolean;\n /** Enables editing of separate cell by double click. */\n selectionType?: SelectionType;\n /** Shows multiselect column. */\n multiSelectColumn?: boolean;\n /** Enables keyboard control. */\n keyboardEvents?: boolean;\n /** Custom css style class. By default uses 'wp-nested-table'. */\n css?: string;\n /** Enables grid sorting. */\n sorting?: boolean;\n /** Freezes header in work field. */\n freezingHeader?: boolean;\n /** Freezes footer in work field. */\n freezingFooter?: boolean;\n /** Auto calculate totals on client side. Sum and count types are supported. */\n clientTotals?: boolean;\n /** Commands for using in the grid. */\n commands?: Command[];\n /** Commands for every row. */\n rowCommands?: Command[];\n /** Commands for row context menu. */\n rowContextMenu?: MenuItem[];\n /** Parsers for copy/paste logic. */\n copyPasteParsers?: CopyPasteParser[];\n}\n\n/** Interface for defining parsers that handle the conversion between cell values and text for copy-paste operations in a grid. */\nexport interface CopyPasteParser {\n /** The name of the column to which the parser applies. */\n columnName: string;\n /**\n * Optional function to parse the cell value to a string representation.\n *\n * @param value The value to be converted to text.\n * @returns The string representation of the value.\n */\n parseValueToText?: (value: any) => string;\n /**\n * Optional function to parse the text back to the cell value.\n *\n * @param text The text to be converted to a value.\n * @returns The value derived from the text.\n */\n parseTextToValue?: (text: string) => any;\n}\n\nexport interface Command {\n name: string;\n label?: string;\n handlerFn: (param1?: any, param2?: any) => void;\n allowedFn?: (param1?: any, param2?: any) => boolean;\n /** Keycode (or keycode list) for attach command to keyboard keys with activated keyboardEvents. */\n keyCode?: string | string[];\n}\n\n/** Types of pressed btn. */\nexport enum KeyType {\n symbol,\n digit,\n action,\n}\n\n/** Grid selection type. */\nexport enum SelectionType {\n none,\n row,\n rows,\n range,\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MermaidSchemaData } from './models/state.model';\n\n@Injectable()\nexport class MermaidSchemaService {\n private updateSchemaSubject = new Subject();\n public updateSchema$ = this.updateSchemaSubject.asObservable();\n\n public updateSchema = (schemaData: MermaidSchemaData) => {\n this.updateSchemaSubject.next(schemaData);\n };\n}\n","import { Subject } from 'rxjs';\nimport { Command } from '../models/command.model';\n\nexport class PlannerCommandService {\n private commandSubject = new Subject();\n public command$ = this.commandSubject.asObservable();\n\n public readonly: boolean;\n public execute(command: Command) {\n this.commandSubject.next(command);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { hoursInDay, ValueMode } from '../models/value-mode.enum';\nimport { DecimalPipe } from '@angular/common';\n\n/** Формат отображаемого времени в ресурсном плане и распределении. */\n@Pipe({\n name: 'plannerFormat',\n standalone: false,\n})\nexport class PlannerFormatPipe implements PipeTransform {\n constructor(private decimalPipe: DecimalPipe) {}\n\n transform(\n hours: number,\n mode?: ValueMode,\n scheduleHours?: number,\n fteHours?: number,\n ): string {\n let decimal = true;\n let displayValue;\n\n if (hours == null || hours === 0) {\n displayValue = null;\n } else {\n switch (mode) {\n case ValueMode.Percentage:\n hours = (hours / scheduleHours) * 100;\n decimal = false;\n break;\n case ValueMode.FTE:\n hours = hours / fteHours;\n decimal = true;\n break;\n case ValueMode.Days:\n hours = hours / hoursInDay;\n decimal = true;\n break;\n }\n const template = decimal === false ? '1.0-0' : '1.0-2';\n displayValue = this.decimalPipe.transform(hours, template);\n }\n return displayValue;\n }\n}\n","import { Subject } from 'rxjs';\n\nexport class PlannerPeriodService {\n private nextSubject = new Subject();\n public next$ = this.nextSubject.asObservable();\n\n private previousSubject = new Subject();\n public previous$ = this.previousSubject.asObservable();\n\n private periodSubject = new Subject();\n public period$ = this.periodSubject.asObservable();\n\n public readonly: boolean;\n public next() {\n this.nextSubject.next();\n }\n\n public previous() {\n this.previousSubject.next();\n }\n\n public setPeriod(offset: number) {\n this.periodSubject.next(offset);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { cloneDeep } from 'lodash';\nimport { ValueMode } from '../models/value-mode.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PlanningScale } from '../../../shared/models/enums/planning-scale.enum';\nimport { Slot } from '../models/slot.model';\nimport { DatePipe } from '@angular/common';\nimport { DateTime, Interval } from 'luxon';\n\n/** Сервис управления представлением планировщика. */\n@Injectable()\nexport class PlannerViewService {\n public dates: Interval;\n\n constructor(private translate: TranslateService) {}\n\n /** Возвращает наименование текущего периода. */\n public getPeriodTitle(dates: Interval, planningScale: PlanningScale): string {\n let header = '';\n\n if (planningScale === PlanningScale.Day) {\n header = dates.start.toFormat('LLLL yyyy');\n header = header.substring(0, 1).toUpperCase() + header.substring(1);\n }\n\n if (planningScale === PlanningScale.Week) {\n const sh = dates.start.toLocaleString(DateTime.DATE_MED);\n const eh = dates.end.toLocaleString(DateTime.DATE_MED);\n header =\n sh.substring(0, 1).toUpperCase() +\n sh.substring(1) +\n ' - ' +\n eh.substring(0, 1).toUpperCase() +\n eh.substring(1);\n }\n\n if (planningScale === PlanningScale.Month) {\n const sh = dates.start.toFormat('LLLL yyyy');\n const eh = dates.end.toFormat('LLLL yyyy');\n header =\n sh.substring(0, 1).toUpperCase() +\n sh.substring(1) +\n ' - ' +\n eh.substring(0, 1).toUpperCase() +\n eh.substring(1);\n }\n\n return header;\n }\n\n /** Возвращает набор слотов для представления. */\n public getSlots(dates: Interval, planningScale: PlanningScale): Slot[] {\n this.dates = cloneDeep(dates);\n\n const slots: Slot[] = [];\n\n let date: DateTime;\n if (planningScale === PlanningScale.Day) {\n date = dates.start;\n while (dates.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: Guid.generate(),\n hint: date.toLocaleString(DateTime.DATE_FULL),\n maxDuration: 24,\n date: date.toISODate(),\n stamp: date.toSeconds(),\n header: date.toFormat('dd'),\n today: date.startOf('day').equals(DateTime.now().startOf('day')),\n });\n\n date = date.plus({ days: 1 });\n }\n }\n\n if (planningScale === PlanningScale.Week) {\n date = dates.start;\n\n while (dates.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: Guid.generate(),\n hint: date.toLocaleString(DateTime.DATE_FULL),\n stamp: date.toSeconds(),\n date: date.toISODate(),\n maxDuration: 24 * 7,\n header: date.toFormat('dd.LL'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('week'),\n });\n\n date = date.plus({ days: 7 });\n }\n }\n\n if (planningScale === PlanningScale.Month) {\n date = dates.start;\n while (dates.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: Guid.generate(),\n hint: date.toFormat('LLLL yyyy'),\n stamp: date.toSeconds(),\n date: date.toISODate(),\n maxDuration: date.endOf('month').day * 24,\n header: date.toFormat('MM.yy'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('month'),\n });\n date = date.plus({ months: 1 });\n }\n }\n return slots;\n }\n\n /** Возвращает период для текущих настроек. */\n public getPeriodDates(\n baseDate: DateTime,\n offset: number,\n planningScale: PlanningScale,\n ): Interval {\n let startPeriod: DateTime;\n let endPeriod: DateTime;\n\n if (planningScale === PlanningScale.Day) {\n const currentMonthFirstDay = baseDate.startOf('month');\n\n startPeriod = currentMonthFirstDay.plus({ months: offset });\n\n endPeriod = startPeriod.endOf('month');\n }\n\n if (planningScale === PlanningScale.Week) {\n const slidePeriod = 4;\n const weeksCountInPeriod = 15;\n\n const firstDay = baseDate.startOf('week');\n\n startPeriod = firstDay.plus({ weeks: offset * slidePeriod });\n\n endPeriod = startPeriod.plus({ weeks: weeksCountInPeriod }).endOf('week');\n }\n\n if (planningScale === PlanningScale.Month) {\n const slidePeriod = 1;\n const monthsCountInPeriod = 12;\n\n const firstDay = baseDate.startOf('month');\n\n startPeriod = firstDay.plus({ months: offset * slidePeriod });\n\n endPeriod = startPeriod\n .plus({ months: monthsCountInPeriod })\n .endOf('month');\n }\n\n return Interval.fromDateTimes(startPeriod, endPeriod);\n }\n\n public getValueModeName(valueMode: ValueMode): string {\n switch (valueMode) {\n case ValueMode.Percentage:\n return this.translate.instant('shared.planner.valueMode.percentage');\n case ValueMode.Hours:\n return this.translate.instant('shared.planner.valueMode.hours');\n case ValueMode.FTE:\n return this.translate.instant('shared.planner.valueMode.fte');\n case ValueMode.Days:\n return this.translate.instant('shared.planner.valueMode.days');\n default:\n return null;\n }\n }\n\n public getPlanningScaleName(planningScale: PlanningScale): string {\n return this.translate.instant(`enums.planningScale.${planningScale}`);\n }\n}\n","export enum ValueMode {\n Hours = 'Hours',\n Percentage = 'Percentage',\n FTE = 'FTE',\n Cost = 'Cost',\n Days = 'Days',\n}\n\n/** Hours in one day for \"days\" value mode. */\nexport const hoursInDay = 8;\n","import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n ElementRef,\n Renderer2,\n Input,\n Inject,\n LOCALE_ID,\n ChangeDetectorRef,\n forwardRef,\n booleanAttribute,\n NgZone,\n AfterViewInit,\n} from '@angular/core';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Subscription } from 'rxjs';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { round } from 'lodash';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { hoursInDay, ValueMode } from '../models/value-mode.enum';\nimport { PlannerFormatPipe } from '../core/planner-format.pipe';\nimport { PlanningScale } from '../../../shared/models/enums/planning-scale.enum';\nimport { BaseEntry } from './base-entry.model';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n/** Ячейка планировщика. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpPlannerCell]',\n templateUrl: './planner-cell.component.html',\n styleUrls: ['./planner-cell.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PlannerCellComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class PlannerCellComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy\n{\n @ViewChild('editor') private editor: ElementRef;\n @ViewChild('frame') private frame: ElementRef;\n\n @Input() dayIndex: number;\n @Input() lineIndex: number;\n @Input() valueMode: ValueMode;\n @Input() scale: PlanningScale;\n @Input() minValue = 0;\n @Input() propagationMode: PropagationMode = PropagationMode.onInput;\n @Input({ transform: booleanAttribute }) allowClearInReadonly = false;\n\n readonly: boolean;\n\n public entry: BaseEntry;\n\n public viewValue: string;\n private previousViewValue: string;\n private oldValue: any;\n\n private enterCode = 13;\n private escCode = 27;\n\n public id = Guid.generate();\n public serviceId: string;\n\n private delimiter: string;\n\n private get input() {\n if (this.readonly) {\n return null;\n }\n return this.editor.nativeElement as HTMLInputElement;\n }\n\n public mode = {\n active: false,\n selected: false,\n spreading: false,\n editing: false,\n left: false,\n top: false,\n right: false,\n bottom: false,\n spreader: false,\n spreadBottom: false,\n };\n contentElement: HTMLElement;\n valueElement: HTMLElement;\n\n eventEntrySelectedSubscription: Subscription;\n eventStartEditingSubscription: Subscription;\n eventStopEditingSubscription: Subscription;\n eventValueChangedSubscription: Subscription;\n eventEntryActivatedSubscription: Subscription;\n eventEntryDeactivatedSubscription: Subscription;\n eventEntryDespreadedSubscription: Subscription;\n eventEntryDeselectedSubscription: Subscription;\n eventEntrySpreadedSubscription: Subscription;\n eventResetSubscription: Subscription;\n allocationChangeSubscription: Subscription;\n public mouseEnterListener: () => void;\n\n /** Планирование в относительных значения и база для вычисления == 0 */\n get isRelativeWithZeroBase(): boolean {\n return (\n (this.valueMode === ValueMode.Percentage &&\n this.entry.scheduleHours === 0) ||\n (this.valueMode === ValueMode.FTE && this.entry.fteHours === 0)\n );\n }\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n private plannerFormat: PlannerFormatPipe,\n public entriesOrchestrator: CellsOrchestratorService,\n private renderer: Renderer2,\n private elRef: ElementRef,\n private changeDetector: ChangeDetectorRef,\n private zone: NgZone,\n ) {\n this.delimiter = getLocaleNumberSymbol(locale, NumberSymbol.Decimal);\n }\n\n public propagateChange = (_: BaseEntry) => null;\n public registerOnTouched = (fn: any) => null;\n\n writeValue(obj: any): void {\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.previousViewValue !== this.viewValue\n ) {\n return;\n }\n\n this.entry = obj;\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n this.getViewValue(),\n );\n\n if (this.entry?.scheduleHours === 0) {\n this.renderer.addClass(this.elRef.nativeElement, 'non-working');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'non-working');\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.changeDetector.detectChanges();\n }\n\n /** Возвращает значение ячейки в отображаемых единицах измерения (часах, %% или FTE). */\n private getViewValue(): number {\n let value = this.entry.hours;\n if (value == null || value === 0) {\n return value;\n } else {\n switch (this.valueMode) {\n case ValueMode.Percentage:\n value = (value / this.entry.scheduleHours) * 100;\n break;\n case ValueMode.FTE:\n value = value / this.entry.fteHours;\n break;\n case ValueMode.Days:\n value = value / hoursInDay;\n break;\n }\n }\n return value;\n }\n\n /** Возвращает значение ячейки в часах конвертируя его из значения в отображаемых единицах измерения (часах, %% или FTE). */\n private getHoursFromViewValue(value: number): number {\n if (value == null || value === 0) {\n return 0;\n } else {\n switch (this.valueMode) {\n case ValueMode.Percentage:\n value = (value * this.entry.scheduleHours) / 100;\n break;\n case ValueMode.FTE:\n value = value * this.entry.fteHours;\n break;\n case ValueMode.Days:\n value = value * hoursInDay;\n break;\n }\n }\n return value;\n }\n\n private changeValue(entry: BaseEntry) {\n if (!this.entriesOrchestrator.singleCellMode) {\n // Обновление значения в сервисе, для последующего использования.\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n this.getViewValue(),\n );\n }\n this.propagateChange(entry);\n }\n\n private getValueElement() {\n if (!this.valueElement) {\n this.valueElement = (\n this.elRef.nativeElement as HTMLElement\n ).querySelector('.value');\n }\n return this.valueElement;\n }\n\n private getContentElement() {\n if (!this.contentElement) {\n this.contentElement = (\n this.elRef.nativeElement as HTMLElement\n ).querySelector('.content');\n }\n return this.contentElement;\n }\n\n // Разбор введенного текста.\n private parseViewHours() {\n if (this.readonly) {\n return;\n }\n\n let viewValue = this.input.value;\n\n let duration;\n\n if (!viewValue) {\n if (this.entry.hours !== null && this.entry.hours !== 0) {\n this.entry.hours = null;\n this.changeValue(this.entry);\n }\n return;\n }\n\n // Clears spaces\n viewValue = viewValue.replace(/\\s/g, '');\n const parts = viewValue.split(this.delimiter);\n\n // Если вставили строку и там много разделителей\n if (parts.length > 2) {\n duration = 0;\n } else {\n let wholePart = '';\n let decimalPart = '';\n\n if (parts.length === 1) {\n wholePart = parts[0];\n decimalPart = '0';\n } else {\n wholePart = parts[0];\n decimalPart = parts[1];\n }\n\n if (isNaN(Number(wholePart)) || wholePart.length === 0) {\n wholePart = '0';\n }\n if (isNaN(Number(decimalPart)) || decimalPart.length === 0) {\n decimalPart = '0';\n }\n\n duration = round(Number(wholePart + '.' + decimalPart), 2);\n\n switch (this.valueMode) {\n case ValueMode.Percentage:\n duration = round(this.entry.scheduleHours * (duration / 100), 2);\n break;\n case ValueMode.FTE:\n duration = round(this.entry.fteHours * duration, 2);\n break;\n case ValueMode.Days:\n duration = round(hoursInDay * duration, 2);\n break;\n }\n }\n\n switch (this.scale) {\n case PlanningScale.Day:\n if (duration > this.entry.limitHours) {\n duration = this.entry.limitHours;\n }\n break;\n\n case PlanningScale.Week:\n if (duration > this.entry.limitHours * 7) {\n duration = this.entry.limitHours * 7;\n }\n break;\n\n case PlanningScale.Month:\n if (duration > this.entry.limitHours * 31) {\n {\n duration = this.entry.limitHours * 31;\n }\n }\n break;\n }\n\n if (duration < this.minValue) {\n duration = this.minValue;\n }\n\n if (this.entry.hours !== duration) {\n this.entry.hours = duration;\n this.changeValue(this.entry);\n }\n }\n\n // Обновление отображаемого значения.\n private updateViewValue() {\n const hours = this.entry.hours;\n\n // Формирование ViewDuration (значения для редактирования).\n\n if (hours === null) {\n this.viewValue = '';\n } else {\n this.viewValue = this.plannerFormat.transform(\n hours,\n this.valueMode,\n this.entry.scheduleHours,\n this.entry.fteHours,\n );\n }\n }\n\n public startEditing() {\n // Запрет редактирования на выходной день в режиме %% от расписания.\n if (this.readonly || this.isRelativeWithZeroBase) {\n return;\n }\n\n this.oldValue = this.entry.hours;\n\n this.mode.editing = true;\n this.updateViewValue();\n this.previousViewValue = this.viewValue;\n\n setTimeout(() => {\n this.input.focus();\n });\n this.renderer.addClass(this.getValueElement(), 'hidden');\n this.renderer.addClass(this.getContentElement(), 'glow');\n }\n\n public stopEditing() {\n if (this.mode.editing) {\n this.parseViewHours();\n this.mode.editing = false;\n if (!this.entriesOrchestrator.singleCellMode) {\n this.getContentElement().parentElement.focus();\n }\n this.renderer.removeClass(this.getValueElement(), 'hidden');\n this.renderer.removeClass(this.getContentElement(), 'glow');\n }\n }\n\n public onKeydown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n if (event.keyCode === this.enterCode) {\n this.stopEditing();\n }\n if (event.keyCode === this.escCode || event.charCode === this.enterCode) {\n this.input.value = this.oldValue;\n this.handleInput();\n this.entry.hours = this.oldValue;\n this.stopEditing();\n }\n event.stopPropagation();\n }\n\n /** Handle input changes. */\n public handleInput(): void {\n const selectionStart = this.input.selectionStart;\n const selectionEnd = this.input.selectionEnd;\n let value = this.input.value;\n\n const separators = [' ', '.', ',', ':'];\n\n separators\n .filter((x) => x !== this.delimiter)\n .forEach((separator: string) => {\n const newValue =\n value.indexOf(this.delimiter) === -1 ? this.delimiter : '';\n value = value.replace(separator, newValue);\n });\n\n const normalizedString: string = String(value).replace(this.delimiter, '.');\n if (\n value !== '-' &&\n (value.length > 6 || isNaN(Number(normalizedString)))\n ) {\n value = this.previousViewValue;\n }\n\n if (value !== this.input.value) {\n this.input.value = value;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n if (this.propagationMode === PropagationMode.onInput) {\n this.parseViewHours();\n }\n this.previousViewValue = value;\n }\n\n public onDblClick() {\n if (!this.entriesOrchestrator.singleCellMode) {\n this.startEditing();\n }\n }\n\n public onMouseDown() {\n this.entriesOrchestrator.mouseDown({ x: this.dayIndex, y: this.lineIndex });\n }\n\n public onMouseEnter() {\n this.entriesOrchestrator.mouseEnter({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n }\n\n public onInputMouseDown(event) {\n event.stopPropagation();\n }\n\n public onSpreaderMouseDown(event) {\n if (this.readonly) {\n return;\n }\n this.entriesOrchestrator.spreaderMouseDown({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n event.stopPropagation();\n }\n\n public onSpreaderDblClick(event) {\n if (this.readonly) {\n return;\n }\n this.entriesOrchestrator.spreaderDblClick({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n event.stopPropagation();\n }\n\n private initEvents() {\n this.eventEntrySelectedSubscription =\n this.entriesOrchestrator.entrySelected$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n return;\n }\n this.mode.selected = true;\n this.mode.top = param.top;\n this.mode.right = param.right;\n this.mode.left = param.left;\n this.mode.bottom = param.bottom;\n if (this.mode.bottom && this.mode.right) {\n this.mode.spreader = true;\n }\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntrySpreadedSubscription =\n this.entriesOrchestrator.entrySpreaded$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n return;\n }\n this.mode.spreading = true;\n this.mode.top = param.top;\n this.mode.right = param.right;\n this.mode.left = param.left;\n this.mode.bottom = param.bottom;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryDeselectedSubscription =\n this.entriesOrchestrator.entryDeselected$.subscribe((param) => {\n if (!this.mode.selected) {\n return;\n }\n this.mode.selected = false;\n this.mode.top = false;\n this.mode.right = false;\n this.mode.left = false;\n this.mode.bottom = false;\n this.mode.spreader = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryDespreadedSubscription =\n this.entriesOrchestrator.entryDespreaded$.subscribe(() => {\n if (!this.mode.spreading) {\n return;\n }\n this.mode.spreading = false;\n this.mode.top = false;\n this.mode.right = false;\n this.mode.left = false;\n this.mode.bottom = false;\n this.mode.spreadBottom = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryDeactivatedSubscription =\n this.entriesOrchestrator.entryDeactivated$.subscribe((exceptEntry) => {\n if (\n exceptEntry !== null &&\n exceptEntry.x !== this.dayIndex &&\n exceptEntry.y !== this.lineIndex\n ) {\n return;\n }\n\n this.stopEditing();\n this.mode.active = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryActivatedSubscription =\n this.entriesOrchestrator.entryActivated$.subscribe((pos) => {\n if (pos.x !== this.dayIndex || pos.y !== this.lineIndex) {\n return;\n }\n this.mode.active = true;\n this.changeDetector.detectChanges();\n });\n\n // Событие массового редактирования: растягивание или стирание значения.\n this.eventValueChangedSubscription =\n this.entriesOrchestrator.valueChanged$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n return;\n }\n if (this.readonly) {\n if (\n !this.allowClearInReadonly ||\n (this.allowClearInReadonly && param.value)\n ) {\n return;\n }\n }\n if (this.isRelativeWithZeroBase && param.value !== null) {\n return;\n }\n if (\n param.onlyForWorkDay &&\n (this.entry.hours === 0 || this.entry.hours === null) &&\n this.entry.scheduleHours === 0\n ) {\n return;\n }\n const hours = this.getHoursFromViewValue(param.value);\n if (this.entry.hours === hours) {\n return;\n }\n this.entry.hours = hours;\n this.updateViewValue();\n\n this.changeValue(this.entry);\n this.changeDetector.detectChanges();\n });\n\n this.eventResetSubscription = this.entriesOrchestrator.reset$.subscribe(\n () => {\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n this.getViewValue(),\n );\n this.changeDetector.detectChanges();\n },\n );\n\n this.eventStopEditingSubscription =\n this.entriesOrchestrator.stopEditing$.subscribe(() => {\n this.stopEditing();\n this.changeDetector.detectChanges();\n });\n\n this.eventStartEditingSubscription =\n this.entriesOrchestrator.startEditing$.subscribe((value: string) => {\n if (this.isRelativeWithZeroBase) {\n return;\n }\n\n if (this.mode.active) {\n this.startEditing();\n if (value) {\n this.viewValue = value;\n if (this.propagationMode !== PropagationMode.onExitFromEditing) {\n setTimeout(() => {\n this.parseViewHours();\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n this.changeDetector.detectChanges();\n });\n }\n\n ngOnInit(): void {\n this.serviceId = this.entriesOrchestrator.id;\n this.initEvents();\n }\n\n public ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n this.mouseEnterListener = this.renderer.listen(\n this.frame.nativeElement,\n 'mouseenter',\n () => {\n this.onMouseEnter();\n },\n );\n });\n }\n\n ngOnDestroy() {\n this.stopEditing();\n\n if (this.eventEntrySelectedSubscription) {\n this.eventEntrySelectedSubscription.unsubscribe();\n }\n\n if (this.eventStopEditingSubscription) {\n this.eventStopEditingSubscription.unsubscribe();\n }\n\n if (this.eventEntryActivatedSubscription) {\n this.eventEntryActivatedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDeactivatedSubscription) {\n this.eventEntryDeactivatedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDespreadedSubscription) {\n this.eventEntryDespreadedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDeselectedSubscription) {\n this.eventEntryDeselectedSubscription.unsubscribe();\n }\n\n if (this.eventStartEditingSubscription) {\n this.eventStartEditingSubscription.unsubscribe();\n }\n\n if (this.eventValueChangedSubscription) {\n this.eventValueChangedSubscription.unsubscribe();\n }\n\n if (this.eventEntrySpreadedSubscription) {\n this.eventEntrySpreadedSubscription.unsubscribe();\n }\n\n if (this.eventResetSubscription) {\n this.eventResetSubscription.unsubscribe();\n }\n\n if (this.mouseEnterListener) {\n this.mouseEnterListener();\n }\n }\n}\n","
    \n
    \n
    \n
    \n
    \n {{ entry?.hours | plannerFormat: valueMode : entry.scheduleHours : entry.fteHours }}\n
    \n \n
    \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { PlannerViewService } from '../core/planner-view.service';\nimport { Period } from '../models/period.model';\nimport { PlanningScale } from '../../../shared/models/enums/planning-scale.enum';\nimport { PlannerPeriodService } from '../core/planner-period.service';\nimport { DateTime, Interval } from 'luxon';\n\n@Component({\n selector: 'wp-planner-period',\n templateUrl: './planner-period.component.html',\n styleUrls: ['./planner-period.component.scss'],\n standalone: false,\n})\nexport class PlannerPeriodComponent implements OnInit {\n private _planningScale: PlanningScale;\n @Input()\n get planningScale(): PlanningScale {\n return this._planningScale;\n }\n set planningScale(value: PlanningScale) {\n this._planningScale = value;\n this.update();\n }\n\n private _dates: Interval;\n @Input()\n get dates(): Interval {\n return this._dates;\n }\n set dates(value: Interval) {\n this._dates = value;\n this.update();\n }\n\n private _periodOffset: number;\n @Input()\n get periodOffset(): number {\n return this._periodOffset;\n }\n set periodOffset(value: number) {\n this._periodOffset = value;\n this.update();\n }\n\n private _baseDate: DateTime;\n @Input()\n get baseDate(): DateTime {\n return this._baseDate;\n }\n set baseDate(value: DateTime) {\n this._baseDate = value;\n this.update();\n }\n\n public suitablePeriods: Period[];\n public periodTitle: string;\n\n constructor(\n private plannerViewService: PlannerViewService,\n private plannerPeriodService: PlannerPeriodService,\n ) {}\n\n /** Предыдущий период. */\n public previousPeriod() {\n this.plannerPeriodService.previous();\n }\n\n /** Последующий период. */\n public nextPeriod() {\n this.plannerPeriodService.next();\n }\n\n /** Перейти на выбранный период. */\n public changePeriod(offset: number) {\n this.plannerPeriodService.setPeriod(offset);\n }\n\n private updateSuitablePeriods() {\n this.suitablePeriods = [];\n\n for (\n let suitableOffset = this.periodOffset - 3;\n suitableOffset < this.periodOffset + 4;\n suitableOffset++\n ) {\n const dates = this.plannerViewService.getPeriodDates(\n this.baseDate,\n suitableOffset,\n this.planningScale,\n );\n const title = this.plannerViewService.getPeriodTitle(\n dates,\n this.planningScale,\n );\n\n this.suitablePeriods.push({\n offset: suitableOffset,\n title,\n isBase: suitableOffset === 0,\n });\n }\n }\n\n private updateTitle() {\n if (!this.dates) {\n return;\n }\n\n this.periodTitle = this.plannerViewService.getPeriodTitle(\n this.dates,\n this.planningScale,\n );\n }\n\n private update() {\n if (!this._baseDate) return;\n this.updateTitle();\n this.updateSuitablePeriods();\n }\n\n ngOnInit(): void {\n this.update();\n }\n}\n","
    \n \n \n \n \n \n \n\n
    \n \n {{ periodTitle }}\n \n\n
    \n \n {{ period.title }}\n \n
    \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { PlannerCommandService } from '../core/planner-command.service';\nimport { Command } from '../models/command.model';\n\n@Component({\n selector: 'wp-planner-row-commands',\n templateUrl: './planner-row-commands.component.html',\n styleUrls: ['./planner-row-commands.component.scss'],\n standalone: false,\n})\nexport class PlannerRowCommandsComponent {\n @Input() rowState: any;\n\n constructor(private commandService: PlannerCommandService) {}\n\n public openRowMenu(opened: boolean) {\n this.rowState.isMenuOpened = opened;\n }\n\n /** Команда от строки. */\n public execute(command: Command) {\n this.commandService.execute(command);\n }\n}\n"," 0\"\n (openChange)=\"openRowMenu($event)\"\n>\n \n
    \n \n {{ command.title }}\n \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlannerCellComponent } from './planner-cell/planner-cell.component';\nimport { PlannerFormatPipe } from './core/planner-format.pipe';\nimport { PlannerRowCommandsComponent } from './planner-row-commands/planner-row-commands.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { PlannerPeriodComponent } from './planner-period/planner-period.component';\n\n@NgModule({\n declarations: [\n PlannerCellComponent,\n PlannerFormatPipe,\n PlannerRowCommandsComponent,\n PlannerPeriodComponent,\n ],\n providers: [PlannerFormatPipe],\n imports: [CommonModule, SharedModule, UIRouterModule.forChild()],\n exports: [\n PlannerPeriodComponent,\n PlannerRowCommandsComponent,\n PlannerFormatPipe,\n PlannerCellComponent,\n ],\n})\nexport class PlannerModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { PnlComponent } from './pnl/pnl.component';\nimport { PnlFilterComponent } from './pnl/pnl-filter/pnl-filter.component';\nimport { PnlFilterModalComponent } from './pnl/pnl-filter/pnl-filter-modal/pnl-filter-modal.component';\n\n@NgModule({\n declarations: [PnlComponent, PnlFilterComponent, PnlFilterModalComponent],\n imports: [CommonModule, SharedModule],\n exports: [PnlComponent],\n})\nexport class PnlModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * Provides methods to work with PnL report.\n * */\n@Injectable()\nexport class PnlService {\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private reloadSubject = new Subject();\n public reload$ = this.reloadSubject.asObservable();\n\n private filterModalSubject = new Subject();\n public filterModal$ = this.filterModalSubject.asObservable();\n\n public detectChanges() {\n this.changesSubject.next();\n }\n\n public reload() {\n this.reloadSubject.next();\n }\n\n public openFilterModal() {\n this.filterModalSubject.next();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StateService } from '@uirouter/core';\nimport { DateTime } from 'luxon';\nimport { FilterOperator } from 'src/app/analytics/shared/models/filter/filter-operator.enum';\nimport { TotalFunction } from 'src/app/analytics/shared/models/total-function.enum';\nimport { UserSettings } from 'src/app/analytics/shared/models/user-settings.model';\nimport { ViewSettings } from 'src/app/analytics/shared/models/view-settings/view-settings.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { DateService } from 'src/app/core/date.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PnlCurrencyMode } from 'src/app/shared-features/pnl/shared/pnl-currency-mode.enum';\nimport { PnlFilter } from 'src/app/shared-features/pnl/shared/pnl-filter.model';\nimport { PnlStatementEntryKind } from 'src/app/shared-features/pnl/shared/pnl-statement-entry-kind.enum';\nimport { PnlStatementGroupType } from 'src/app/shared-features/pnl/shared/pnl-statement-group-type.enum';\nimport { PnlStatementType } from 'src/app/shared-features/pnl/shared/pnl-statement-type.enum';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Injectable()\nexport class PnlDrillDownService {\n private readonly revenueLineType = '403af070-8d9f-426c-aba2-70bd6a37a01c';\n\n constructor(\n private blockUI: BlockUIService,\n private data: DataService,\n private state: StateService,\n private notification: NotificationService,\n private dateService: DateService,\n ) {}\n\n /** Creates handler to drill-down report.\n *\n * @param statementType - PnL statement type.\n * @param groupType - PnL grouping type.\n * @param kind - kind of indicator.\n * @param type - type of indicator.\n * @param slotFirstDate - first date of PnL slot (null if no grouping).\n * @param currencyMode - PnL currency mode.\n * @param filter - PnL filter object.\n * @param projectId - PnL project filter.\n * @param organizationId - PnL client filter.\n * @param programId - PnL program filter.\n * @param taskId - PnL project task filter\n * @param accountId - PnL account filter.\n * @returns Function with full-functionality handler to create pivot-report and statement \"go\" to the report builder.\n */\n public getDrillDownFn(\n statementType: PnlStatementType,\n groupType: PnlStatementGroupType,\n kind: PnlStatementEntryKind,\n type: KpiType,\n currencyMode: PnlCurrencyMode = PnlCurrencyMode.base,\n slotFirstDate: string = null,\n filter: PnlFilter = null,\n projectId: string = null,\n organizationId: string = null,\n programId: string = null,\n taskId: string = null,\n accountId: string = null,\n ): () => void {\n let viewSettings: ViewSettings = null;\n let userSettings: UserSettings = { filters: [] };\n\n if (type === KpiType.Actual) {\n const settings = this.setActualSettings(kind, currencyMode, accountId);\n viewSettings = settings.viewSettings;\n userSettings = settings.userSettings;\n }\n\n if (type === KpiType.Estimate) {\n const settings = this.setEstimateSettings(kind, currencyMode, accountId);\n viewSettings = settings.viewSettings;\n userSettings = settings.userSettings;\n }\n\n if (type === KpiType.Plan) {\n const settings = this.setPlanSettings(kind, currencyMode, accountId);\n viewSettings = settings.viewSettings;\n userSettings = settings.userSettings;\n }\n\n if (!viewSettings) {\n return null;\n }\n\n // Add filters.\n if (slotFirstDate) {\n const slotLastDate = this.getSlotLastDate(slotFirstDate, groupType);\n\n userSettings.filters.push({\n key:\n statementType === PnlStatementType.DocumentDate &&\n type === KpiType.Actual\n ? 'AccountingEntryDocumentDate'\n : 'Date',\n value: [\n {\n operator: FilterOperator.GreaterOrEqual,\n value: slotFirstDate,\n },\n ],\n });\n\n userSettings.filters.push({\n key:\n statementType === PnlStatementType.DocumentDate &&\n type === KpiType.Actual\n ? 'AccountingEntryDocumentDate'\n : 'Date',\n value: [\n {\n operator: FilterOperator.LessOrEqual,\n value: slotLastDate,\n },\n ],\n });\n }\n\n const resolvedProjectId = filter?.project?.id ?? projectId;\n if (resolvedProjectId) {\n userSettings.filters.push({\n key: 'ProjectId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: resolvedProjectId,\n },\n ],\n });\n }\n\n const resolvedClientId = filter?.client?.id ?? organizationId;\n if (resolvedClientId) {\n userSettings.filters.push({\n key: 'ClientId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: resolvedClientId,\n },\n ],\n });\n }\n\n const resolvedProgramId = filter?.program?.id ?? programId;\n if (resolvedProgramId) {\n userSettings.filters.push({\n key: 'ProgramId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: resolvedProgramId,\n },\n ],\n });\n }\n\n const resolvedTaskId = filter?.task?.id ?? taskId;\n if (resolvedTaskId) {\n userSettings.filters.push({\n key: 'FirstLevelTaskId',\n value: [{ operator: FilterOperator.Equal, value: resolvedTaskId }],\n });\n }\n\n if (filter?.period) {\n let from = filter.period.from;\n let to = filter.period.to;\n\n if (filter?.period.periodType !== DatePeriodType.Custom) {\n const datePair = this.dateService.getDatePair(filter.period.periodType);\n from = datePair.from;\n to = datePair.to;\n }\n\n userSettings.filters.push({\n key:\n statementType === PnlStatementType.DocumentDate &&\n type === KpiType.Actual\n ? 'AccountingEntryDocumentDate'\n : 'Date',\n value: [\n {\n operator: FilterOperator.GreaterOrEqual,\n value: from,\n },\n ],\n });\n\n userSettings.filters.push({\n key:\n statementType === PnlStatementType.DocumentDate &&\n type === KpiType.Actual\n ? 'AccountingEntryDocumentDate'\n : 'Date',\n value: [\n {\n operator: FilterOperator.LessOrEqual,\n value: to,\n },\n ],\n });\n }\n\n return () => {\n this.blockUI.start();\n\n this.data\n .collection('Reports')\n .action('UpdateNewReport')\n .execute({\n viewSettingsData: `${btoa(JSON.stringify(viewSettings))}`,\n userSettingsData: `${btoa(JSON.stringify(userSettings))}`,\n })\n .subscribe({\n next: () => {\n this.blockUI.stop();\n this.state.go('reportBuilder', {\n navigation: 'analytics.reportBuilder',\n });\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n };\n }\n\n private setActualSettings(\n kind: PnlStatementEntryKind,\n currencyMode: string,\n accountId: string,\n ): { userSettings: UserSettings; viewSettings: ViewSettings } {\n let viewSettings: ViewSettings = null;\n const userSettings: UserSettings = { filters: [] };\n\n const columnFields = [\n { name: 'Date' },\n { name: 'AccountingEntryDocumentDate' },\n { name: 'AccountingEntryNumber' },\n { name: 'AccountingEntryDescription' },\n { name: 'AccountingEntryMode' },\n ];\n\n if (kind === PnlStatementEntryKind.LaborCost) {\n columnFields.push({\n name: 'UserName',\n });\n\n viewSettings = {\n sourceName: 'AccountingEntry',\n columnFields,\n valueFields: [\n {\n name: 'Amount',\n totalFunction: TotalFunction.Sum,\n },\n {\n name: 'Hours',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'AccountType',\n value: [\n {\n operator: FilterOperator.Equal,\n value: FinancialAccountType.expenses.id,\n },\n ],\n },\n {\n key: 'AccountId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: FinancialAccount.laborCostId,\n },\n ],\n },\n );\n }\n if (kind === PnlStatementEntryKind.Revenue) {\n viewSettings = {\n sourceName: 'AccountingEntry',\n columnFields,\n valueFields: [\n {\n name: 'Amount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [],\n columnGroupFields: [],\n };\n userSettings.filters.push({\n key: 'AccountType',\n value: [\n {\n operator: FilterOperator.Equal,\n value: FinancialAccountType.revenue.id,\n },\n ],\n });\n }\n if (kind === PnlStatementEntryKind.Expenses) {\n viewSettings = {\n sourceName: 'AccountingEntry',\n columnFields,\n valueFields: [\n {\n name: currencyMode === PnlCurrencyMode.base ? 'AmountBC' : 'Amount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'AccountType',\n value: [\n {\n operator: FilterOperator.Equal,\n value: FinancialAccountType.expenses.id,\n },\n ],\n },\n {\n key: 'AccountId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: accountId,\n },\n ],\n },\n );\n }\n\n return { viewSettings, userSettings };\n }\n\n private setEstimateSettings(\n kind: PnlStatementEntryKind,\n currencyMode: string,\n accountId: string,\n ): { userSettings: UserSettings; viewSettings: ViewSettings } {\n let viewSettings: ViewSettings = null;\n const userSettings: UserSettings = { filters: [] };\n\n if (kind === PnlStatementEntryKind.LaborCost) {\n viewSettings = {\n sourceName: 'ResourcePlan',\n columnFields: [{ name: 'ResourceName' }],\n valueFields: [\n {\n name: 'EstimatedHours',\n totalFunction: TotalFunction.Sum,\n },\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'EstimatedCostBC'\n : 'EstimatedCostPC',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [{ name: 'FirstLevelTaskName' }],\n columnGroupFields: [],\n };\n userSettings.filters.push({\n key: 'EstimatedHours',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n });\n }\n if (kind === PnlStatementEntryKind.Revenue) {\n viewSettings = {\n sourceName: 'Finance',\n columnFields: [\n {\n name: 'FirstLevelTaskName',\n },\n {\n name: 'Date',\n },\n {\n name: 'Description',\n },\n ],\n valueFields: [\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'EstimatedAmountBC'\n : 'EstimatedAmount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'LineType',\n value: [\n {\n operator: FilterOperator.Equal,\n value: this.revenueLineType,\n },\n ],\n },\n {\n key: 'EstimatedAmount',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n },\n );\n }\n if (kind === PnlStatementEntryKind.Expenses) {\n viewSettings = {\n sourceName: 'Finance',\n columnFields: [\n { name: 'AccountName' },\n { name: 'Date' },\n { name: 'Description' },\n ],\n valueFields: [\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'EstimatedAmountBC'\n : 'EstimatedAmount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [{ name: 'FirstLevelTaskName' }],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'AccountId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: accountId,\n },\n ],\n },\n {\n key: 'EstimatedAmount',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n },\n );\n }\n\n return { viewSettings, userSettings };\n }\n\n private setPlanSettings(\n kind: PnlStatementEntryKind,\n currencyMode: string,\n accountId: string,\n ): { userSettings: UserSettings; viewSettings: ViewSettings } {\n let viewSettings: ViewSettings = null;\n const userSettings: UserSettings = { filters: [] };\n\n if (kind === PnlStatementEntryKind.LaborCost) {\n viewSettings = {\n sourceName: 'ResourcePlan',\n columnFields: [{ name: 'ResourceName' }],\n valueFields: [\n {\n name: 'PlannedHours',\n totalFunction: TotalFunction.Sum,\n },\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'PlannedCostBC'\n : 'PlannedCostPC',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [{ name: 'FirstLevelTaskName' }],\n columnGroupFields: [],\n };\n userSettings.filters.push({\n key: 'PlannedHours',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n });\n }\n if (kind === PnlStatementEntryKind.Revenue) {\n viewSettings = {\n sourceName: 'Finance',\n columnFields: [\n {\n name: 'FirstLevelTaskName',\n },\n {\n name: 'Date',\n },\n {\n name: 'Description',\n },\n ],\n valueFields: [\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'PlannedAmountBC'\n : 'PlannedAmount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'LineType',\n value: [\n {\n operator: FilterOperator.Equal,\n value: this.revenueLineType,\n },\n ],\n },\n {\n key: 'PlannedAmount',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n },\n );\n }\n if (kind === PnlStatementEntryKind.Expenses) {\n viewSettings = {\n sourceName: 'Finance',\n columnFields: [\n { name: 'AccountName' },\n { name: 'Date' },\n { name: 'Description' },\n ],\n valueFields: [\n {\n name:\n currencyMode === PnlCurrencyMode.base\n ? 'PlannedAmountBC'\n : 'PlannedAmount',\n totalFunction: TotalFunction.Sum,\n },\n ],\n rowGroupFields: [{ name: 'FirstLevelTaskName' }],\n columnGroupFields: [],\n };\n userSettings.filters.push(\n {\n key: 'PlannedAmount',\n value: [\n {\n operator: FilterOperator.NotEqual,\n value: 0,\n },\n ],\n },\n {\n key: 'AccountId',\n value: [\n {\n operator: FilterOperator.Equal,\n value: accountId,\n },\n ],\n },\n );\n }\n\n return { viewSettings, userSettings };\n }\n\n private getSlotLastDate(\n slotFirstDate: string,\n groupType: PnlStatementGroupType,\n ): string {\n if (!slotFirstDate) {\n return null;\n }\n\n switch (groupType) {\n case PnlStatementGroupType.Month:\n return DateTime.fromISO(slotFirstDate).endOf('month').toISODate();\n\n case PnlStatementGroupType.Quarter:\n return DateTime.fromISO(slotFirstDate).endOf('quarter').toISODate();\n\n case PnlStatementGroupType.Year:\n return DateTime.fromISO(slotFirstDate).endOf('year').toISODate();\n }\n }\n}\n","export interface PnlRow {\n id: string;\n type: PnlRowType;\n header: string;\n groupId?: string | null;\n isExpanded?: boolean | null;\n isGroupExpanded?: boolean | null;\n isExtendedGroup?: boolean;\n cells: Array;\n}\n\nexport interface PnlCell {\n id: string;\n displayValue: any;\n deviatesFromRuleBase?: boolean;\n baseHint?: string;\n fn?: () => void;\n}\n\nexport enum PnlRowType {\n row = 'row',\n separator = 'separator',\n group = 'group',\n groupItem = 'groupItem',\n expandableGroupItem = 'expandableGroupItem',\n grossMargin = 'grossMargin',\n extendedGrossMargin = 'extendedGrossMargin',\n profitability = 'profitability',\n extendedProfitability = 'extendedProfitability',\n workingCapital = 'workingCapital',\n outstandingCost = 'outstandingCost',\n capitalCost = 'capitalCost',\n corporateTax = 'corporateTax',\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProjectBillingTypes } from 'src/app/shared/models/enums/project-billing-type';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PnlFilter } from 'src/app/shared-features/pnl/shared/pnl-filter.model';\nimport { StateControlItem } from 'src/app/shared/components/features/state-filter/state-select.interface';\n\n@Component({\n selector: 'wp-pnl-filter-modal',\n templateUrl: './pnl-filter-modal.component.html',\n styleUrls: ['./pnl-filter-modal.component.scss'],\n standalone: false,\n})\nexport class PnlFilterModalComponent implements OnInit, OnDestroy {\n @Input() filter: PnlFilter;\n\n billingTypes = ProjectBillingTypes;\n\n public form = this.fb.group({\n period: null,\n project: null,\n task: null,\n program: null,\n client: null,\n projectStates: null,\n billingTypes: this.fb.group({\n NonBillable: [false],\n TM: [false],\n FixedBid: [false],\n }),\n allowNonActiveEntity: false,\n });\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n ngOnInit(): void {\n if (this.filter) {\n this.form.patchValue(this.filter);\n }\n\n this.initSubscriptions();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Resets filter form.\n * */\n public clearValues() {\n this.form.reset();\n }\n\n /**\n * Modal window close event handler.\n * */\n public ok = () => {\n this.form.markAllAsTouched();\n if (!this.form.valid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.activeModal.close(this.form.value);\n };\n\n /**\n * Modal window cancel event handler.\n * */\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n /**\n * Inits subscriptions.\n * */\n private initSubscriptions() {\n this.form.controls.project.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.form.controls.task.setValue(null);\n });\n\n this.form.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.filter = value;\n\n if (value.projectStates) {\n this.filter.projectStates = Object.values(\n value.projectStates as Record,\n ).filter((state) => state.selected);\n }\n });\n }\n}\n","
    \n
    \n

    \n {{ 'shared.pnlStatement.filter.header' | translate }}\n

    \n \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n\n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { cloneDeep } from 'lodash';\nimport { PnlFilterModalComponent } from './pnl-filter-modal/pnl-filter-modal.component';\nimport { PnlFilter } from 'src/app/shared-features/pnl/shared/pnl-filter.model';\nimport { Subject } from 'rxjs';\nimport { PnlService } from 'src/app/shared-features/pnl/pnl.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-pnl-filter',\n templateUrl: './pnl-filter.component.html',\n standalone: false,\n})\nexport class PnlFilterComponent implements OnInit, OnDestroy {\n @Input() filter: PnlFilter;\n @Output() changes = new EventEmitter();\n\n public conditionsCount: number;\n public conditionCountTitle: string;\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private service: PnlService,\n private translate: TranslateService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit(): void {\n this.updateConditionalCount();\n this.service.filterModal$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.open());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n public open() {\n const ref = this.modalService.open(PnlFilterModalComponent, {\n size: 'lg',\n });\n const instance = ref.componentInstance as PnlFilterModalComponent;\n instance.filter = cloneDeep(this.filter);\n\n ref.result.then(\n (filter: PnlFilter) => {\n this.filter = filter;\n this.updateConditionalCount();\n this.changes.emit(this.filter);\n },\n () => null,\n );\n }\n\n private updateConditionalCount() {\n this.conditionsCount = 0;\n\n if (this.filter) {\n if (this.filter.project?.id) {\n this.conditionsCount++;\n }\n if (this.filter.task?.id) {\n this.conditionsCount++;\n }\n if (this.filter.client?.id) {\n this.conditionsCount++;\n }\n if (this.filter.program?.id) {\n this.conditionsCount++;\n }\n if (this.filter.period) {\n this.conditionsCount++;\n }\n\n if (this.filter.projectStates?.length) {\n this.conditionsCount++;\n }\n\n const anyBillingTypeStateSelected = Object.entries(\n this.filter.billingTypes,\n ).some(([_, type]) => type);\n if (anyBillingTypeStateSelected) {\n this.conditionsCount++;\n }\n }\n\n this.conditionCountTitle = StringHelper.declOfNum(this.conditionsCount, [\n this.translate.instant('shared.filterConditionDeclensions.v1'),\n this.translate.instant('shared.filterConditionDeclensions.v2'),\n this.translate.instant('shared.filterConditionDeclensions.v3'),\n ]);\n }\n}\n","\n 0\" class=\"pe-2\">\n {{ conditionsCount }} {{ conditionCountTitle }}\n \n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PnlSettings } from '../shared/pnl-settings.model';\nimport { PnlStatementGroupType } from '../shared/pnl-statement-group-type.enum';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { PnlStatementEntry } from '../shared/pnl-statement-entry.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { DateService } from 'src/app/core/date.service';\nimport { Subject } from 'rxjs';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { PnlService } from '../pnl.service';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FinancePipe } from 'src/app/shared/pipes/finance.pipe';\nimport { PercentPipe } from '@angular/common';\nimport { DateTime } from 'luxon';\nimport { takeUntil } from 'rxjs/operators';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { HttpClient } from '@angular/common/http';\nimport { saveAs } from 'file-saver';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { PnlStatementType } from 'src/app/shared-features/pnl/shared/pnl-statement-type.enum';\nimport { ProjectBillingTypes } from 'src/app/shared/models/enums/project-billing-type';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n PnlCell,\n PnlRow,\n PnlRowType,\n} from 'src/app/shared-features/pnl/pnl/models/pnl-row.model';\nimport { PnlColumn } from 'src/app/shared-features/pnl/pnl/models/pnl-column.model';\nimport { PnlCurrencyMode } from 'src/app/shared-features/pnl/shared/pnl-currency-mode.enum';\nimport { PnlHeaderRow } from 'src/app/shared-features/pnl/pnl/models/pnl-header-row.model';\nimport { PnlPeriod } from 'src/app/shared-features/pnl/pnl/models/pnl-period.model';\nimport { PnlStatementEntryKind } from 'src/app/shared-features/pnl/shared/pnl-statement-entry-kind.enum';\nimport _ from 'lodash';\nimport { PnlStatement } from 'src/app/shared-features/pnl/shared/pnl-statement.model';\nimport { PnlDrillDownService } from 'src/app/shared-features/pnl/pnl/core/pnl-drill-down.service';\nimport { RecurringExpenseRuleDto } from 'src/app/shared/models/entities/projects/recurring-expense-rule-dto.model';\nimport { FinancialAccount } from 'src/app/shared/models/entities/finance/financial-account.model';\nimport { FinancialAccountsService } from 'src/app/core/financial-accounts.service';\nimport { FinancialAccountType } from 'src/app/shared/models/entities/finance/financial-account-type.enum';\nimport { TenantSettingService } from 'src/app/shared/services/tenant-setting.service';\n\n/**\n * Represents PnL report tab content.\n * */\n@Component({\n selector: 'wp-pnl',\n templateUrl: './pnl.component.html',\n styleUrls: ['./pnl.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PnlDrillDownService],\n standalone: false,\n})\nexport class PnlComponent implements OnInit, OnDestroy {\n @Input() showFilter: boolean;\n @Input() projectId: string;\n @Input() projectVersion: ProjectVersion;\n @Input() programId: string;\n @Input() organizationId: string;\n\n public get loading() {\n return this._loading;\n }\n\n public get thereIsNoData() {\n return this._thereIsNoData;\n }\n\n public get isPeriodRequired() {\n return this._isPeriodRequired;\n }\n\n public get showExtendedPnl() {\n return this._showExtendedPnl;\n }\n\n public get headerRows() {\n return this._headerRows;\n }\n\n public get visibleRows() {\n return this._rows.filter(\n (row) => !row.groupId || row.isGroupExpanded !== false,\n );\n }\n\n public get groupTypes() {\n return this._groupTypes;\n }\n\n public get leftTableWidth() {\n return this._leftTableWidth;\n }\n\n public get isGeneral() {\n return !this.projectId && !this.programId && !this.organizationId;\n }\n\n public columns: Array;\n\n public settings: PnlSettings;\n public projectsQuery: any;\n\n public form = this.fb.group({\n showEstimate: false,\n showBudget: false,\n showActual: false,\n showForecast: false,\n hideInformationLines: false,\n hideEmptyExpenseTypes: false,\n task: null,\n project: null,\n currency: null,\n });\n\n accounts: FinancialAccount[];\n expenseRules: RecurringExpenseRuleDto[];\n grossMarginCells: { value: number }[];\n revenueCells: { value: number }[];\n totalExpensesCells: { value: number }[];\n capitalCostCells: { value: number }[];\n\n protected rowType = PnlRowType;\n\n private _loading = true;\n private _thereIsNoData = false;\n private _isPeriodRequired = false;\n\n private _showExtendedPnl = false;\n\n private _showExpenseRules = false;\n private _headerRows: Array = [];\n private _rows: Array = [];\n private _rowIds: Dictionary = {\n expensesGroup: null,\n grossMargin: null,\n extendedGrossMargin: null,\n profitability: null,\n extendedProfitability: null,\n workingCapital: null,\n outstandingCost: null,\n capitalCost: null,\n corporateTax: null,\n };\n private _groupTypes: Array<{ title: string; value: PnlStatementGroupType }>;\n private _pnlTypes: Array<{ title: string; value: PnlStatementType }>;\n private _pnlCurrencies: Array<{ title: string; value: PnlCurrencyMode }>;\n\n private _leftTableWidth = 274;\n\n private readonly localizationStrings = {\n estimate: null,\n plan: null,\n actual: null,\n forecast: null,\n quarterSuffix: null,\n total: null,\n cost: null,\n timeOff: null,\n innerExpenseLine: null,\n revenue: null,\n expenses: null,\n grossMargin: null,\n profitability: null,\n workingCapital: null,\n outstandingCost: null,\n capitalCost: null,\n corporateTax: null,\n };\n\n private readonly ruleDeviationBaseHints = {\n laborCost: '',\n revenue: '',\n workingCapital: '',\n };\n\n private maxPeriod: PnlPeriod;\n private periods: Array;\n private pnlStatement: PnlStatement;\n private extendedKinds: string[] = [\n PnlStatementEntryKind.WorkingCapital,\n PnlStatementEntryKind.OutstandingCost,\n PnlStatementEntryKind.CapitalCost,\n ];\n\n private fnFilteredExtendedKinds = (hideInformationLines: boolean) =>\n !hideInformationLines\n ? this.extendedKinds\n : [PnlStatementEntryKind.CapitalCost];\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n private reloading$ = new Subject();\n\n constructor(\n public service: PnlService,\n private message: MessageService,\n private blockUI: BlockUIService,\n private httpClient: HttpClient,\n private fb: UntypedFormBuilder,\n private translate: TranslateService,\n private data: DataService,\n private notification: NotificationService,\n private dateService: DateService,\n private financePipe: FinancePipe,\n private percentPipe: PercentPipe,\n private localConfigService: LocalConfigService,\n private cdRef: ChangeDetectorRef,\n private tenantSetting: TenantSettingService,\n private drillDownService: PnlDrillDownService,\n private financialAccountService: FinancialAccountsService,\n ) {}\n\n ngOnInit(): void {\n this.initVars();\n this.settings = this.localConfigService.getConfig(PnlSettings);\n this.form.patchValue(this.settings);\n this.checkIfPeriodIsRequired();\n this.initSubscriptions();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.reloading$.next();\n }\n\n /**\n * Tracks row cell by its id for template ngFor.\n *\n * @param index Row cell index.\n * @param cell Row cell.\n * @returns Cell ID.\n * */\n public trackCellById(index: number, cell: any): string {\n return cell.id;\n }\n\n /**\n * Gets expandable row icon CSS class.\n *\n * @param row Row.\n * @returns CSS class.\n * */\n public getExpandableRowIconClass(row: PnlRow): string {\n return row.isExpanded === true ? 'bi-chevron-down' : 'bi-chevron-right';\n }\n\n /**\n * Row icon expand click event handler.\n * Toggles expandable row and its dependent rows expanded state.\n *\n * @param row Expandable row.\n * */\n public onGroupExpand(row: PnlRow): void {\n row.isExpanded = !row.isExpanded;\n this._rows\n .filter((r) => !!r.groupId && r.groupId === row.id)\n .forEach((r) => (r.isGroupExpanded = row.isExpanded));\n }\n\n /**\n * Gets localized PnL group type option by its value.\n *\n * @param groupType PnL group type option value.\n * @returns Localized option title.\n * */\n public getGroupTypeTitle(groupType?: PnlStatementGroupType): string {\n return this._groupTypes.find((v) => v.value === groupType)?.title;\n }\n\n /**\n * Gets localized PnL type option by its value.\n *\n * @param pnlType PnL type option value.\n * @returns Localized option title.\n * */\n public getPnlTypeTitle(pnlType: PnlStatementType): string {\n return this._pnlTypes.find((v) => v.value === pnlType)?.title;\n }\n\n /**\n * Gets localized PnL currency option title by its value.\n *\n * @param currencyMode PnL currency option value.\n * @returns Localized option title.\n * */\n public getPnlCurrencyTitle(currencyMode: PnlCurrencyMode): string {\n return this._pnlCurrencies.find((v) => v.value === currencyMode)?.title;\n }\n\n /**\n * PnL Excel report download button click event handler.\n * Calls Excel report API and runs file download.\n * */\n public downloadPnlReport() {\n const methodName = !this.isGeneral\n ? 'GetPnlStatementsExcel'\n : 'GetGeneralPnlStatementsExcel';\n const url = `${AppConfigService.config.api.url}/PnlReport/${methodName}`;\n\n this.blockUI.start();\n\n const filter = this.getFilter();\n\n this.httpClient\n .post(\n url,\n {\n groupType: this.settings.groupType,\n pnlType: this.settings.pnlType,\n includeEstimate: this.settings.showEstimate,\n includeBudget: this.settings.showBudget,\n includeActual: this.settings.showActual,\n includeForecast: this.settings.showForecast,\n // Prevent passing other parameter value if System setting is disabled.\n hideInformationLines:\n this._showExtendedPnl && this.settings.hideInformationLines,\n hideEmptyExpenses: this.settings.hideEmptyExpenseTypes,\n showInBaseCurrency:\n !this.projectId || this.settings.currency === PnlCurrencyMode.base,\n filter: {\n from: filter.from,\n to: filter.to,\n projectId: filter.projectId,\n projectVersionId: filter.projectVersionId,\n projectTaskId: filter.projectTaskId,\n programId: filter.programId,\n organizationId: filter.organizationId,\n projectStateIds: filter.projectStateIds ?? [],\n billingTypeIds: filter.billingTypeIds,\n },\n },\n {\n responseType: 'blob',\n },\n )\n .subscribe({\n next: (data) => {\n saveAs(data, `P&L Report.xlsx`);\n this.blockUI.stop();\n },\n error: async (error) => {\n const isPromise = !!error && typeof error.then === 'function';\n\n if (isPromise) {\n const errorText = await error;\n const errorObj = JSON.parse(errorText);\n this.message.error(errorObj.error.message);\n this.blockUI.stop();\n } else {\n this.message.error(error.message);\n this.blockUI.stop();\n }\n },\n });\n }\n\n /**\n * Saves updated PnL group type option in settings and reloads tab.\n *\n * @param groupType Updated PnL group type option.\n * */\n public setGroupType(groupType: any) {\n this.settings.groupType = groupType;\n this.saveSettings();\n this.reload();\n }\n\n /**\n * Saves updated PnL currency option in settings and reloads tab.\n *\n * @param currency Updated PnL currency option.\n * */\n public setPnlCurrency(currency: any) {\n this.settings.currency = currency;\n this.saveSettings();\n this.reload();\n }\n\n /**\n * Saves updated PnL type option in settings and reloads tab.\n *\n * @param pnlType Updated PnL type option.\n * */\n public setPnlType(pnlType: any) {\n this.settings.pnlType = pnlType;\n this.saveSettings();\n this.reload();\n }\n\n /**\n * PnL filter change event handler.\n * Saves updated filter in settings and reloads tab.\n *\n * @param filter Updated filter.\n * */\n public onFilterChange(filter: any) {\n this.settings.filter = filter;\n this.checkIfPeriodIsRequired();\n this.saveSettings();\n if (!this._isPeriodRequired) {\n this.reload();\n }\n }\n\n /**\n * Inits variables.\n * */\n private initVars(): void {\n this._showExpenseRules = !!this.projectId;\n Object.keys(this._rowIds).forEach((key) => {\n this._rowIds[key] = Guid.generate();\n });\n this._groupTypes = [\n null,\n PnlStatementGroupType.Month,\n PnlStatementGroupType.Quarter,\n PnlStatementGroupType.Year,\n ].map((v) => ({\n title: this.translate.instant(\n `shared.pnlStatement.groupType.${_.camelCase(v ?? 'without')}`,\n ),\n value: v,\n }));\n this._pnlTypes = [PnlStatementType.DocumentDate, PnlStatementType.Date].map(\n (v) => ({\n title: this.translate.instant(\n `shared.pnlStatement.pnlType.${_.camelCase(v)}`,\n ),\n value: v,\n }),\n );\n this._pnlCurrencies = [PnlCurrencyMode.base, PnlCurrencyMode.project].map(\n (v) => ({\n title: this.translate.instant(\n `shared.pnlStatement.currency.${_.camelCase(v)}`,\n ),\n value: v,\n }),\n );\n Object.keys(this.localizationStrings).forEach((key) => {\n this.localizationStrings[key] = this.translate.instant(\n `shared.pnlStatement.${key}`,\n );\n });\n Object.keys(this.ruleDeviationBaseHints).forEach((key) => {\n this.ruleDeviationBaseHints[key] = this.translate.instant(\n `shared.pnlStatement.calculationBaseHint.${key}`,\n );\n });\n\n if (this.programId) {\n this.projectsQuery = {\n filter: {\n programId: { type: 'guid', value: this.programId },\n },\n };\n }\n\n if (this.organizationId) {\n this.projectsQuery = {\n filter: {\n organizationId: { type: 'guid', value: this.organizationId },\n },\n };\n }\n }\n\n /**\n * Inits subscriptions.\n * */\n private initSubscriptions(): void {\n this.form.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.settings.showEstimate = this.form.value.showEstimate;\n this.settings.showBudget = this.form.value.showBudget;\n this.settings.showActual = this.form.value.showActual;\n this.settings.showForecast = this.form.value.showForecast;\n this.settings.hideInformationLines = this.form.value.hideInformationLines;\n this.settings.hideEmptyExpenseTypes =\n this.form.value.hideEmptyExpenseTypes;\n this.saveSettings();\n this.reload();\n });\n\n this.service.changes$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.cdRef.detectChanges());\n\n this.service.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this._loading = true;\n this.tenantSetting\n .getSetting({\n select: ['showExtendedPnl'],\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (tenantSetting) => {\n this._showExtendedPnl = tenantSetting.showExtendedPnl;\n this.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this._loading = false;\n this.service.detectChanges();\n },\n });\n }\n\n /**\n * Saves PnL settings in Local storage.\n * */\n private saveSettings() {\n this.localConfigService.setConfig(PnlSettings, this.settings);\n }\n\n /**\n * Reloads tab.\n * */\n private reload() {\n if (this._isPeriodRequired) {\n this._loading = false;\n return;\n }\n\n this.reloading$.next();\n this._loading = true;\n this._thereIsNoData = false;\n this.service.detectChanges();\n\n const expandedRows: Dictionary = {};\n this.saveRowExpandedStates(expandedRows);\n\n const groupType = this.settings.groupType\n ? `WP.PnlStatementGroupType'${this.settings.groupType}'`\n : null;\n const pnlType = `WP.PnlStatementType'${this.settings.pnlType}'`;\n\n const filterObject = this.getFilter();\n\n const urlParams = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(filterObject),\n };\n\n const params: Dictionary = {\n groupType,\n pnlType,\n includeEstimate: this.settings.showEstimate,\n includeBudget: this.settings.showBudget,\n includeActual: this.settings.showActual,\n includeForecast: this.settings.showForecast,\n showInBaseCurrency:\n !this.projectId || this.settings.currency === PnlCurrencyMode.base,\n filter: '@filter',\n };\n\n const methodName = !this.isGeneral\n ? 'GetPnlStatement'\n : 'GetGeneralPnlStatement';\n\n this.data.model\n .function(methodName)\n .get(params, null, urlParams)\n .pipe(takeUntil(this.reloading$))\n .subscribe({\n next: (pnlStatement) => {\n this.pnlStatement = pnlStatement;\n this.accounts = this.pnlStatement.accounts\n .filter(\n (account) =>\n ![\n FinancialAccount.laborCostId,\n FinancialAccount.timeOffCostId,\n ].includes(account.id) &&\n account.includedInBalance &&\n account.typeId === FinancialAccountType.expenses.id,\n )\n .slice();\n this.expenseRules = this.pnlStatement.expenseRules.slice();\n\n if (this.settings.hideEmptyExpenseTypes) {\n this.accounts = this.accounts.filter((t) =>\n this.pnlStatement.entries.some((e) => e.accountId === t.id),\n );\n this.expenseRules = this.expenseRules.filter((r) =>\n this.pnlStatement.entries.some((e) => e.expenseRuleId === r.id),\n );\n }\n\n this._thereIsNoData =\n !this.pnlStatement.entries.length &&\n !this.pnlStatement.extendedEntries.length;\n this._loading = false;\n this.buildStatement();\n if (!this._thereIsNoData) {\n this.restoreRowExpandedStates(expandedRows);\n }\n this.service.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this._loading = false;\n this.service.detectChanges();\n },\n });\n }\n\n /**\n * Saves rows expanded state in dictionary.\n *\n * @param expandedRows Rows state dictionary.\n * */\n private saveRowExpandedStates(expandedRows: Dictionary): void {\n this._rows\n .filter(\n (row) =>\n row.type === PnlRowType.expandableGroupItem &&\n row.isExpanded === true,\n )\n .forEach((row) => {\n expandedRows[row.id] = true;\n });\n }\n\n /**\n * Restores rows expanded state from dictionary.\n *\n * @param expandedRows Rows state dictionary.\n * */\n private restoreRowExpandedStates(expandedRows: Dictionary): void {\n this._rows\n .filter((row) => row.type === PnlRowType.expandableGroupItem)\n .forEach((row) => {\n if (expandedRows[row.id] === true) {\n this.onGroupExpand(row);\n }\n });\n }\n\n /**\n * Builds PnL report table.\n * */\n private buildStatement(): void {\n this._rows = [];\n this.fillPeriods();\n this.buildHeader();\n\n if (!this.columns.length) {\n this._thereIsNoData = true;\n }\n\n if (this._thereIsNoData) {\n return;\n }\n\n // Revenue values (for Profitability calculation).\n this.revenueCells = this.getCellsArray();\n // Total Expenses values.\n this.totalExpensesCells = this.getCellsArray();\n this.grossMarginCells = this.getCellsArray();\n this.capitalCostCells = this.getCellsArray();\n\n this.buildRow(\n PnlStatementEntryKind.Revenue,\n null,\n null,\n null,\n this.localizationStrings.revenue,\n );\n\n this._rows.push(this.getSeparatorRow());\n\n const groupHeaderRow: PnlRow = {\n id: this._rowIds.expensesGroup,\n type: PnlRowType.group,\n header: this.localizationStrings.expenses,\n cells: [],\n };\n\n this._rows.push(groupHeaderRow);\n\n this.buildLaborAndTimeOffRows(true);\n\n this.accounts.sort(naturalSort('name')).forEach((account) => {\n const rowId = this.buildRow(\n PnlStatementEntryKind.Expenses,\n null,\n account.id,\n null,\n account.name,\n );\n\n if (\n this._showExpenseRules &&\n this.expenseTypeRowHasRules(account.id, false)\n ) {\n this.buildExpenseRuleRows(rowId, account.id);\n }\n });\n\n groupHeaderRow.cells = this.totalExpensesCells.map((cell) => ({\n id: Guid.generate(),\n displayValue: this.financePipe.transform(cell.value),\n }));\n\n const balanceCells = this.grossMarginCells.map((cell) => ({\n id: Guid.generate(),\n value: cell.value,\n }));\n const hideInformationLines = this.settings.hideInformationLines;\n const showInformationLines =\n !this._showExtendedPnl || !hideInformationLines;\n\n if (showInformationLines) {\n this._rows.push(this.getSeparatorRow());\n\n const grossMarginRow: PnlRow = {\n id: this._rowIds.grossMargin,\n type: PnlRowType.grossMargin,\n header: this.localizationStrings.grossMargin,\n cells: balanceCells.map((cell) => ({\n id: cell.id,\n displayValue: this.financePipe.transform(cell.value),\n })),\n };\n\n this._rows.push(grossMarginRow);\n\n const profitabilityRow: PnlRow = {\n id: this._rowIds.profitability,\n type: PnlRowType.profitability,\n header: this.localizationStrings.profitability,\n cells: this.revenueCells.map((cell, index) => ({\n id: Guid.generate(),\n displayValue:\n cell.value > 0\n ? this.percentPipe.transform(\n this.grossMarginCells[index].value / cell.value,\n '0.2-2',\n )\n : '',\n })),\n };\n\n this._rows.push(profitabilityRow);\n }\n\n if (this._showExtendedPnl) {\n this._rows.push(this.getSeparatorRow());\n\n this.buildLaborAndTimeOffRows(false);\n\n this.pnlStatement.accounts\n .filter(\n (account) =>\n !hideInformationLines &&\n !account.includedInBalance &&\n account.typeId === FinancialAccountType.expenses.id &&\n ![\n FinancialAccount.laborCostId,\n FinancialAccount.timeOffCostId,\n ].includes(account.id),\n )\n .sort(naturalSort('name'))\n .forEach((account) => {\n const rowId = this.buildRow(\n PnlStatementEntryKind.Expenses,\n null,\n account.id,\n null,\n account.name,\n true,\n );\n\n if (\n this._showExpenseRules &&\n this.expenseTypeRowHasRules(account.id, true)\n ) {\n this.buildExpenseRuleRows(rowId, account.id, true);\n }\n });\n\n this.fnFilteredExtendedKinds(hideInformationLines).forEach((kind) =>\n this.buildRow(\n PnlStatementEntryKind[kind],\n null,\n null,\n null,\n this.localizationStrings[_.lowerFirst(kind)],\n true,\n ),\n );\n\n this._rows.push(this.getSeparatorRow());\n\n const extendedGrossMarginRow: PnlRow = {\n id: this._rowIds.extendedGrossMargin,\n type: PnlRowType.extendedGrossMargin,\n header: this.localizationStrings.grossMargin,\n cells: balanceCells.map((cell, index) => ({\n id: Guid.generate(),\n displayValue: this.financePipe.transform(\n cell.value + this.capitalCostCells[index].value,\n ),\n })),\n };\n\n this._rows.push(extendedGrossMarginRow);\n\n const extendedProfitabilityRow: PnlRow = {\n id: this._rowIds.extendedProfitability,\n type: PnlRowType.extendedProfitability,\n header: this.localizationStrings.profitability,\n cells: balanceCells.map((cell, index) => ({\n id: Guid.generate(),\n displayValue:\n this.revenueCells[index].value > 0\n ? this.percentPipe.transform(\n (cell.value + this.capitalCostCells[index].value) /\n this.revenueCells[index].value,\n '0.2-2',\n )\n : '',\n })),\n };\n\n this._rows.push(extendedProfitabilityRow);\n }\n }\n\n /**\n * Gets new PnL report separator row.\n *\n * @returns Separator row.\n * */\n private getSeparatorRow(): PnlRow {\n return {\n id: Guid.generate(),\n type: PnlRowType.separator,\n header: '',\n cells: this.columns.map(\n () =>\n {\n id: Guid.generate(),\n displayValue: '',\n },\n ),\n };\n }\n\n /**\n * Builds PnL report header.\n * */\n private buildHeader() {\n this._headerRows = [];\n this.columns = [];\n const typesCount = this.getTypesCount();\n const hasPeriodTypes =\n typesCount > 1 || (!this.settings.groupType && typesCount === 1);\n\n // Add periods to header.\n if (this.settings.groupType) {\n const periodsRow: PnlHeaderRow = {\n id: Guid.generate(),\n cells: [],\n };\n this.periods.forEach((period) => {\n periodsRow.cells.push({\n id: Guid.generate(),\n header: this.getFormattedPeriod(period.date),\n period: period.iso,\n colspan: this.getColSpan(hasPeriodTypes, period),\n });\n });\n\n // Add Total column.\n periodsRow.cells.push({\n id: Guid.generate(),\n header: this.localizationStrings.total,\n colspan: this.getColSpan(hasPeriodTypes),\n });\n\n this._headerRows.push(periodsRow);\n }\n\n // Add period types to header.\n if (hasPeriodTypes) {\n const periodTypesRow: PnlHeaderRow = {\n id: Guid.generate(),\n cells: [],\n };\n\n if (this.settings.groupType) {\n this.periods.forEach((period) => {\n this.addTypes(period, periodTypesRow);\n });\n }\n\n // Add Total column (if periods selected) or all values without periods.\n this.addTypes(null, periodTypesRow);\n\n this._headerRows.push(periodTypesRow);\n } else {\n if (this.settings.groupType) {\n this.periods.forEach((period) => {\n this.addTypes(period);\n });\n }\n\n // Add Total column.\n this.addTypes(null);\n }\n }\n\n /**\n * Builds PnL report expense type inner line and rule rows.\n *\n * @param groupId Expense type row ID.\n * @param accountId Expense type ID.\n * @param isExtendedEntries Indicates whether to use extended entries.\n * */\n private buildExpenseRuleRows(\n groupId: string,\n accountId: string | null,\n isExtendedEntries = false,\n ): void {\n const entries = isExtendedEntries\n ? this.pnlStatement.extendedEntries\n : this.pnlStatement.entries;\n const ruleIds = _.uniq(\n entries\n .filter(\n (e) =>\n e.accountId === accountId &&\n e.kind === PnlStatementEntryKind.ExpenseRule,\n )\n .map((e) => e.expenseRuleId),\n );\n const rules = this.expenseRules.filter((r) =>\n ruleIds.some(\n (id) =>\n id === r.id &&\n (id === r.crossId ||\n (!this.projectVersion && r.projectId === this.projectId) ||\n (!!this.projectVersion && r.versionId === this.projectVersion.id)),\n ),\n );\n const hasInnerLine = entries.some(\n (e) =>\n e.accountId === accountId &&\n e.kind === PnlStatementEntryKind.InnerExpenseLine,\n );\n\n if (hasInnerLine) {\n this.buildRow(\n PnlStatementEntryKind.InnerExpenseLine,\n groupId,\n accountId,\n null,\n this.localizationStrings.innerExpenseLine,\n isExtendedEntries,\n );\n }\n\n rules.sort(naturalSort('name')).forEach((rule) => {\n this.buildRow(\n PnlStatementEntryKind.ExpenseRule,\n groupId,\n accountId,\n rule,\n rule.name,\n isExtendedEntries,\n );\n });\n }\n\n /**\n * Builds PnL report row.\n *\n * @param kind Entry kind.\n * @param groupId Row group ID (for expansion).\n * @param accountId Expense type ID.\n * @param expenseRule Expense rule.\n * @param header Localized row header.\n * @param isExtendedEntries Indicates whether to use extended entries.\n * @returns New row ID.\n * */\n private buildRow(\n kind: PnlStatementEntryKind,\n groupId: string | null,\n accountId: string | null,\n expenseRule: RecurringExpenseRuleDto | null,\n header: string,\n isExtendedEntries = false,\n ): string {\n const isExpenseTypeRow =\n kind === PnlStatementEntryKind.Expenses && !!accountId;\n const isGroupRow =\n isExpenseTypeRow ||\n kind === PnlStatementEntryKind.LaborCost ||\n kind === PnlStatementEntryKind.TimeOffCost;\n let rowId = Guid.generate();\n let rowType = PnlRowType.row;\n\n if (isGroupRow || isExpenseTypeRow) {\n rowType =\n isExpenseTypeRow &&\n this._showExpenseRules &&\n this.expenseTypeRowHasRules(accountId, isExtendedEntries)\n ? PnlRowType.expandableGroupItem\n : PnlRowType.groupItem;\n rowId = isExpenseTypeRow ? accountId : rowId;\n } else if (this.extendedKinds.includes(kind)) {\n rowId = this._rowIds[_.lowerFirst(kind)];\n rowType = PnlRowType[_.lowerFirst(kind)];\n }\n\n const statementRow: PnlRow = {\n id: rowId,\n type: rowType,\n header,\n groupId,\n cells: [],\n isExtendedGroup: isExtendedEntries,\n };\n\n if (isExpenseTypeRow) {\n statementRow.isExpanded = false;\n }\n\n if (groupId) {\n statementRow.isGroupExpanded = false;\n }\n\n for (\n let columnIndex = 0;\n columnIndex < this.columns.length;\n columnIndex++\n ) {\n if (!this.columns[columnIndex]) {\n return;\n }\n\n const expenseRuleCrossId = expenseRule?.crossId ?? null;\n const date = this.columns[columnIndex].period;\n const type = this.columns[columnIndex].type;\n const filteredEntries = (\n isExtendedEntries\n ? this.pnlStatement.extendedEntries\n : this.pnlStatement.entries\n ).filter((entry) => {\n if ((date && entry.date !== date) || (type && entry.type !== type)) {\n return false;\n }\n\n return (\n entry.kind === kind &&\n (!accountId || entry.accountId === accountId) &&\n (!expenseRuleCrossId ||\n entry.expenseRuleCrossId === expenseRuleCrossId)\n );\n });\n\n let value = this.getCellValue(filteredEntries, kind);\n\n /** Don't show outstanding cost and working capital values in Total column. */\n if (\n this.settings.groupType &&\n !this.columns[columnIndex].period &&\n (kind === PnlStatementEntryKind.OutstandingCost ||\n kind === PnlStatementEntryKind.WorkingCapital)\n ) {\n value = null;\n }\n\n const fn = this.drillDownService.getDrillDownFn(\n this.settings.pnlType,\n this.settings.groupType,\n kind,\n this.columns[columnIndex].type,\n this.settings.currency,\n this.columns[columnIndex].period,\n this.isGeneral ? this.settings.filter : null,\n this.projectId,\n this.organizationId,\n this.programId,\n this.form.value.task?.id,\n accountId,\n );\n\n const cell: PnlCell = {\n id: Guid.generate(),\n fn,\n displayValue: this.financePipe.transform(value),\n };\n\n if (this._showExpenseRules) {\n cell.deviatesFromRuleBase = filteredEntries.some(\n (e) => e.deviatesFromRuleBase === true,\n );\n cell.baseHint = cell.deviatesFromRuleBase\n ? (this.ruleDeviationBaseHints[\n _.camelCase(expenseRule.calculationBase)\n ] ?? '')\n : null;\n }\n\n statementRow.cells.push(cell);\n\n if (value !== null) {\n if (kind === PnlStatementEntryKind.Revenue) {\n // Add value to Revenue row.\n if (this.revenueCells[columnIndex].value === null) {\n this.revenueCells[columnIndex].value = 0;\n }\n this.revenueCells[columnIndex].value += value;\n } else if (kind === PnlStatementEntryKind.CapitalCost) {\n // Add values to capital cost cells.\n if (this.capitalCostCells[columnIndex].value === null) {\n this.capitalCostCells[columnIndex].value = 0;\n }\n this.capitalCostCells[columnIndex].value += value;\n } else if (isGroupRow) {\n // Add value to Total Expenses row.\n this.totalExpensesCells[columnIndex].value += value;\n }\n\n if (\n kind !== PnlStatementEntryKind.InnerExpenseLine &&\n kind !== PnlStatementEntryKind.ExpenseRule\n ) {\n if (this.grossMarginCells[columnIndex].value === null) {\n this.grossMarginCells[columnIndex].value = 0;\n }\n this.grossMarginCells[columnIndex].value += value;\n }\n }\n }\n\n this._rows.push(statementRow);\n\n return statementRow.id;\n }\n\n /**\n * Adds types for specific period to PnL report complex header row.\n *\n * @param period PnL column period. Not passed for Total column.\n * @param headerRow PnL header row. Not passed for empty group type option.\n * */\n private addTypes(period?: PnlPeriod, headerRow?: PnlHeaderRow): void {\n if (this.settings.showEstimate) {\n if (headerRow) {\n headerRow.cells.push({\n id: Guid.generate(),\n header: this.localizationStrings.estimate,\n });\n }\n this.columns.push({\n period: period?.iso,\n type: KpiType.Estimate,\n });\n }\n\n if (this.settings.showBudget) {\n if (headerRow) {\n headerRow.cells.push({\n id: Guid.generate(),\n header: this.localizationStrings.plan,\n });\n }\n this.columns.push({\n period: period?.iso,\n type: KpiType.Plan,\n });\n }\n\n if (this.settings.showActual) {\n if (headerRow) {\n headerRow.cells.push({\n id: Guid.generate(),\n header: this.localizationStrings.actual,\n });\n }\n this.columns.push({\n period: period?.iso,\n type: KpiType.Actual,\n });\n }\n\n if (\n this.settings.showForecast &&\n (!this.settings.groupType || !this.isPeriodInThePast(period))\n ) {\n if (headerRow) {\n headerRow.cells.push({\n id: Guid.generate(),\n header: this.localizationStrings.forecast,\n });\n }\n this.columns.push({\n period: period?.iso,\n type: KpiType.Forecast,\n });\n }\n }\n\n /**\n * Gets column span value for PnL header row cell.\n *\n * @param hasPeriodTypes Indicates whether group type is selected or any data type option is selected or not.\n * @param period PnL column period. Not passed for Total column.\n * @returns Column span value.\n * */\n private getColSpan(hasPeriodTypes: boolean, period?: PnlPeriod): number {\n if (!hasPeriodTypes) {\n return 1;\n } else {\n return this.getTypesCount(period);\n }\n }\n\n /**\n * Gets data type option count.\n *\n * @param period PnL column period. Not passed for Total column.\n * @returns Data type option count.\n * */\n private getTypesCount(period?: PnlPeriod): number {\n let count = 0;\n\n if (this.settings.showEstimate) {\n count++;\n }\n if (this.settings.showActual) {\n count++;\n }\n if (this.settings.showBudget) {\n count++;\n }\n if (\n this.settings.showForecast &&\n (!period || !this.isPeriodInThePast(period))\n ) {\n count++;\n }\n\n return count;\n }\n\n /**\n * Gets PnL report row cell aggregated amount value from PnL statement entries.\n *\n * @param filteredEntries Cell PnL statement entries.\n * @param kind Entry kind.\n * @returns Aggregated amount value.\n * */\n private getCellValue(\n filteredEntries: PnlStatementEntry[],\n kind: PnlStatementEntryKind,\n ): number {\n const value =\n !this.extendedKinds.includes(kind) ||\n kind === PnlStatementEntryKind.CorporateTax ||\n kind === PnlStatementEntryKind.CapitalCost\n ? filteredEntries.reduce((acc, x) => acc + x.amount, 0)\n : (filteredEntries.reverse()[0]?.amount ?? 0);\n\n return kind === PnlStatementEntryKind.Revenue ||\n this.extendedKinds.includes(kind)\n ? value\n : value * -1;\n }\n\n /**\n * Gets PnL row cell formatted period.\n *\n * @param date PnL column period date.\n * @returns Formatted period.\n * */\n private getFormattedPeriod(date: DateTime): string {\n switch (this.settings.groupType) {\n case PnlStatementGroupType.Month:\n return date.toFormat('LLLL yyyy');\n case PnlStatementGroupType.Quarter:\n return `${date.quarter}${\n this.localizationStrings.quarterSuffix\n } ${date.toFormat('yyyy')}`;\n case PnlStatementGroupType.Year:\n return date.toFormat('yyyy');\n default:\n return '';\n }\n }\n\n /**\n * Gets empty PnL report row cell array.\n *\n * @returns Empty cell array.\n * */\n private getCellsArray(): { value: number }[] {\n const arr = [];\n this.columns.forEach(() => {\n arr.push({ value: null });\n });\n return arr;\n }\n\n /**\n * Determines whether period is in the past or not.\n *\n * @param period PnL column period. Not passed for Total column.\n * @returns true if period is defined and is in the past, false otherwise.\n * */\n private isPeriodInThePast(period: PnlPeriod): boolean {\n let date = period?.date ?? this.maxPeriod?.date;\n if (!date) {\n return false;\n }\n\n switch (this.settings.groupType) {\n case PnlStatementGroupType.Month:\n date = date.plus({ months: 1 });\n break;\n case PnlStatementGroupType.Quarter:\n date = date.plus({ quarters: 1 });\n break;\n case PnlStatementGroupType.Year:\n date = date.plus({ years: 1 });\n break;\n }\n\n return date < DateTime.now();\n }\n\n /**\n * Fills periods to show in header.\n * */\n private fillPeriods(): void {\n this.periods = [];\n this.maxPeriod = null;\n if (!this.settings.groupType) {\n return;\n }\n\n const datePeriod = this.pnlStatement.datePeriod;\n const minDate = datePeriod.from;\n const maxDate = datePeriod.to;\n\n const minPeriod: PnlPeriod = {\n iso: minDate,\n date: DateTime.fromISO(minDate),\n };\n const maxPeriod: PnlPeriod = {\n iso: maxDate,\n date: DateTime.fromISO(maxDate),\n };\n\n const currentPeriod = minPeriod;\n\n while (currentPeriod.date <= maxPeriod.date) {\n if (\n this.settings.showEstimate ||\n this.settings.showBudget ||\n this.settings.showActual ||\n !this.isPeriodInThePast(currentPeriod)\n ) {\n this.periods.push(Object.assign({}, currentPeriod));\n }\n\n switch (this.settings.groupType) {\n case PnlStatementGroupType.Month:\n currentPeriod.date = currentPeriod.date.plus({ months: 1 });\n break;\n case PnlStatementGroupType.Quarter:\n currentPeriod.date = currentPeriod.date.plus({ quarters: 1 });\n break;\n case PnlStatementGroupType.Year:\n currentPeriod.date = currentPeriod.date.plus({ years: 1 });\n break;\n }\n currentPeriod.iso = currentPeriod.date.toISODate();\n }\n\n this.maxPeriod = maxPeriod;\n }\n\n /**\n * Gets PnL filter object initialized by Local storage settings and component input parameters.\n *\n * @returns PnL filter object.\n * */\n private getFilter(): any {\n const filterObject = {\n from: null,\n to: null,\n programId: null,\n projectId: null,\n projectVersionId: null,\n projectTaskId: null,\n organizationId: null,\n projectStateIds: [],\n billingTypeIds: [],\n };\n\n if (this.showFilter) {\n filterObject.programId = this.settings.filter.program?.id;\n filterObject.projectId = this.settings.filter.project?.id;\n filterObject.projectTaskId = this.settings.filter.task?.id;\n filterObject.organizationId = this.settings.filter.client?.id;\n filterObject.projectStateIds =\n this.settings.filter.projectStates?.map((state) => state.id) ?? [];\n filterObject.billingTypeIds = this.getBillingTypeIds();\n\n // Update and set period.\n if (this.settings.filter.period) {\n if (this.settings.filter.period.periodType === DatePeriodType.Custom) {\n filterObject.from = this.settings.filter.period.from;\n filterObject.to = this.settings.filter.period.to;\n } else {\n const datePair = this.dateService.getDatePair(\n this.settings.filter.period.periodType,\n );\n filterObject.from = datePair.from;\n filterObject.to = datePair.to;\n }\n }\n } else if (this.projectId) {\n filterObject.projectId = this.projectId;\n filterObject.projectVersionId = this.projectVersion?.id;\n filterObject.projectTaskId = this.form.value.task?.id;\n } else if (this.programId) {\n filterObject.programId = this.programId;\n filterObject.projectId = this.form.value.project?.id;\n } else if (this.organizationId) {\n filterObject.organizationId = this.organizationId;\n filterObject.projectId = this.form.value.project?.id;\n }\n\n return filterObject;\n }\n\n /**\n * Checks whether PnL filter period is required to load report or not.\n * Not required for non-general PnL.\n *\n * @returns true if required, false otherwise.\n * */\n private checkIfPeriodIsRequired(): void {\n this._isPeriodRequired = this.isGeneral && !this.settings.filter.period;\n if (this._isPeriodRequired) {\n this._thereIsNoData = true;\n this._loading = false;\n }\n }\n\n private expenseTypeRowHasRules(\n accountId: string | null,\n isExtendedEntries: boolean,\n ): boolean {\n return (\n isExtendedEntries\n ? this.pnlStatement.extendedEntries\n : this.pnlStatement.entries\n ).some(\n (e) =>\n e.accountId === accountId &&\n e.kind === PnlStatementEntryKind.ExpenseRule,\n );\n }\n\n private getBillingTypeIds(): string[] {\n return Object.entries(this.settings.filter.billingTypes)\n .filter(([_, enabled]) => enabled)\n .map(([code, _]) => ProjectBillingTypes.find((s) => s.code === code).id)\n .filter((id) => !!id);\n }\n\n // TODO: fix it after `PnlStatementEntryKind` refactoring\n private buildLaborAndTimeOffRows(isMainRegion: boolean): void {\n const laborCostIncluded = this.pnlStatement.accounts.find(\n (account) => account.id === FinancialAccount.laborCostId,\n ).includedInBalance;\n const timeOffCostIncluded = this.pnlStatement.accounts.find(\n (account) => account.id === FinancialAccount.timeOffCostId,\n ).includedInBalance;\n const hideInformationLines = this.settings.hideInformationLines;\n\n if (\n (isMainRegion && laborCostIncluded) ||\n (!isMainRegion && !hideInformationLines && !laborCostIncluded)\n ) {\n this.buildRow(\n PnlStatementEntryKind.LaborCost,\n null,\n null,\n null,\n this.localizationStrings.cost,\n !isMainRegion,\n );\n }\n\n if (\n this.isGeneral &&\n ((isMainRegion && timeOffCostIncluded) ||\n (!isMainRegion && !hideInformationLines && !timeOffCostIncluded))\n ) {\n this.buildRow(\n PnlStatementEntryKind.TimeOffCost,\n null,\n null,\n null,\n this.localizationStrings.timeOff,\n !isMainRegion,\n );\n }\n }\n}\n","
    \n
    \n
    \n
    \n \n\n
    \n \n\n \n
    \n
    \n\n @if (projectId) {\n
    \n \n\n
    \n \n\n \n
    \n
    \n }\n\n
    \n \n\n
    \n @for (groupType of groupTypes; track groupType) {\n \n }\n
    \n
    \n\n @if (showFilter) {\n \n }\n\n @if (projectId) {\n \n }\n\n @if (programId || organizationId) {\n \n }\n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n  Excel\n \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n \n \n @for (headerRow of headerRows; track headerRow.id) {\n \n \n \n }\n \n
    \n
    \n\n
    \n \n \n @for (row of visibleRows; track row.id) {\n \n \n \n }\n \n
    \n @if (row.type === rowType.expandableGroupItem) {\n \n \n {{ row.header }}\n \n \n } @else {\n {{ row.header }}\n }\n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n @for (headerRow of headerRows; track headerRow.id) {\n \n @for (headerCell of headerRow.cells; track headerCell.id) {\n \n }\n \n }\n \n
    \n {{ headerCell.header }}\n
    \n
    \n\n
    \n \n \n @for (row of visibleRows; track row.id) {\n \n @for (cell of row.cells; track cell.id) {\n \n @if (cell.fn) {\n \n } @else {\n
    \n {{ cell.displayValue }}\n\n @if (cell.deviatesFromRuleBase) {\n \n }\n
    \n }\n \n }\n \n }\n
    \n
    \n
    \n\n
    \n
    \n\n\n@if (isPeriodRequired) {\n
    \n \n {{ 'shared.pnlStatement.selectPeriod' | translate }}\n \n
    \n}\n\n@if (thereIsNoData && !isPeriodRequired) {\n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n}\n","/** Represents PnL report currency mode. */\nexport enum PnlCurrencyMode {\n /** Base currency mode. */\n base = 'base',\n\n /** Project currency mode. */\n project = 'project',\n}\n","import { PnlStatementGroupType } from './pnl-statement-group-type.enum';\nimport { PnlStatementType } from 'src/app/shared-features/pnl/shared/pnl-statement-type.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\nimport { PnlCurrencyMode } from 'src/app/shared-features/pnl/shared/pnl-currency-mode.enum';\nimport { PnlFilter } from 'src/app/shared-features/pnl/shared/pnl-filter.model';\n\nexport class PnlSettings implements BaseSettings {\n public readonly name = 'PnlSettings';\n version: number;\n showEstimate: boolean;\n showBudget: boolean;\n showActual: boolean;\n showForecast: boolean;\n hideInformationLines: boolean;\n hideEmptyExpenseTypes: boolean;\n groupType: PnlStatementGroupType;\n pnlType: PnlStatementType;\n filter: PnlFilter;\n currency: PnlCurrencyMode;\n\n getDefault(): PnlSettings {\n return {\n version: 6,\n showEstimate: true,\n showBudget: true,\n showActual: true,\n showForecast: true,\n hideInformationLines: false,\n hideEmptyExpenseTypes: false,\n groupType: null,\n pnlType: PnlStatementType.DocumentDate,\n filter: {\n client: null,\n period: null,\n program: null,\n project: null,\n task: null,\n projectStates: null,\n billingTypes: {},\n },\n currency: PnlCurrencyMode.project,\n } as PnlSettings;\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** Represents PnL statement entry kind. */\nexport enum PnlStatementEntryKind {\n /** Unspecified entry kind. */\n Unspecified = 'Unspecified',\n /** Revenue entry kind. */\n Revenue = 'Revenue',\n /** Labor Cost entry kind. */\n LaborCost = 'LaborCost',\n /** Expenses entry kind. */\n Expenses = 'Expenses',\n /** Inner Expense Line entry kind. */\n InnerExpenseLine = 'InnerExpenseLine',\n /** Expense Rule entry kind. */\n ExpenseRule = 'ExpenseRule',\n /** Time Off Cost entry kind. */\n TimeOffCost = 'TimeOffCost',\n /** Working Capital entry kind. */\n WorkingCapital = 'WorkingCapital',\n /** Outstanding cost entry kind. */\n OutstandingCost = 'OutstandingCost',\n /** Cost of capital entry kind. */\n CapitalCost = 'CapitalCost',\n /** Corporate tax entry kind. */\n CorporateTax = 'CorporateTax',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** Represents PnL report group type. */\nexport enum PnlStatementGroupType {\n Month = 'Month',\n Quarter = 'Quarter',\n Year = 'Year',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** Represents PnL report type. */\nexport enum PnlStatementType {\n /* According to the document date of accounting entries. */\n DocumentDate = 'DocumentDate',\n\n /* According to the date of accounting entries. */\n Date = 'Date',\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable } from 'rxjs';\nimport { TemplateService } from 'src/app/core/template.service';\n\n@Component({\n selector: 'wp-quick-start',\n templateUrl: './quick-start.component.html',\n styleUrls: ['./quick-start.component.scss'],\n standalone: false,\n})\nexport class QuickStartComponent implements OnInit {\n @Input() name: string;\n\n public content$: Observable;\n\n constructor(\n private activeModal: NgbActiveModal,\n public templateService: TemplateService,\n ) {}\n\n public close() {\n this.activeModal.dismiss();\n }\n\n public ok() {\n this.activeModal.close();\n }\n\n ngOnInit(): void {\n this.content$ = this.templateService.getHtml('quick-start-' + this.name);\n }\n}\n","
    \n
    \n

    {{ 'quickStart.header' | translate }}

    \n \n
    \n
    \n
    \n \n\n \n
    \n
    \n","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { Observable, Subscription } from 'rxjs';\nimport { sortBy } from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\nimport { Role } from 'src/app/shared/models/entities/settings/role.model';\nimport { EntityType } from '../enums/entity-type.enum';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n/** Диалог добавления ролей ресурса. */\n@Component({\n selector: 'wp-adding-resource-roles-modal',\n templateUrl: './adding-resource-roles-modal.component.html',\n styleUrls: ['./adding-resource-roles-modal.component.scss'],\n standalone: false,\n})\nexport class AddingResourceRolesModalComponent implements OnInit {\n public loadLimit = 250;\n /** Тип сущности, для которой выбираются роли */\n @Input() entityType: EntityType;\n /** Id сущности, для которой выбираются роли */\n @Input() entityId: string;\n\n /** ИД ранее добавленных ролей */\n @Input() alreadyAddedIds: string[];\n\n public isSaving: boolean;\n public isLoading: boolean;\n public loadedPartly: boolean;\n\n @ViewChild('leftTbl') leftTbl: ElementRef;\n\n public leftTableStyles: Dictionary = {};\n public rightTableStyles: Dictionary = {};\n\n public availableRoles: Role[] = [];\n public selectedRoles: Role[] = [];\n\n public filterForm = this.fb.group({\n name: [''],\n });\n\n loadingSubscription: Subscription;\n\n constructor(\n public app: AppService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n ) {}\n\n public resizeLeftTbl() {\n this.leftTableStyles['display'] = 'table';\n this.leftTableStyles['width'] =\n (this.leftTbl.nativeElement).getBoundingClientRect().width +\n 'px';\n }\n\n public selectRole(role: any, index: number) {\n this.selectedRoles.push(role);\n this.selectedRoles = sortBy(this.selectedRoles, ['name']);\n this.availableRoles.splice(index, 1);\n }\n\n removeRole(role: any, index: number) {\n this.availableRoles.push(role);\n this.selectedRoles.splice(index, 1);\n\n this.availableRoles = sortBy(this.availableRoles, ['name']);\n }\n\n public ok() {\n this.activeModal.close(this.selectedRoles);\n }\n\n private load() {\n this.availableRoles = [];\n this.isLoading = true;\n this.loadedPartly = false;\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.loadRoles().subscribe({\n next: (data) => {\n data = data.filter(\n (role) =>\n this.selectedRoles.find((r) => r.id === role.id) == null &&\n this.alreadyAddedIds.find((id) => id === role.id) == null,\n );\n\n this.availableRoles = data;\n this.isLoading = false;\n this.loadedPartly = this.availableRoles.length === this.loadLimit;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading = false;\n },\n });\n }\n\n private loadRoles(): Observable {\n const rolesQuery = {\n orderBy: ['name'],\n select: ['id', 'name', 'description'],\n expand: {\n competences: {\n select: ['id', 'name'],\n filter: { isActive: true },\n orderBy: 'name',\n },\n },\n top: this.loadLimit,\n filter: [{ isActive: true }],\n };\n const defaultFilter = this.filterForm.value;\n if (defaultFilter.name) {\n const name = (defaultFilter.name as string)\n .substring(0, Constants.filterInputLengthLimit)\n .toLowerCase();\n rolesQuery.filter.push({\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: name } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(code)': { contains: name } },\n ],\n });\n }\n\n switch (this.entityType) {\n // case EntityType.user:\n // const queryUserRoles = {\n // select: ['id'],\n // expand: [\n // {\n // resourcePool: {\n // select: ['id', 'allRolesAllowed'],\n // expand: {\n // allowedRoles: {\n // expand: { role: rolesQuery },\n // orderBy: 'role/name',\n // },\n // },\n // },\n // },\n // ],\n // };\n // return this.data\n // .collection('Users')\n // .entity(this.entityId)\n // .get(queryUserRoles)\n // .pipe(\n // switchMap((user) => {\n // if (user.resourcePool.allRolesAllowed) {\n // return this.data.collection('Roles').query(rolesQuery);\n // } else {\n // return of(\n // user.resourcePool.allowedRoles.map(\n // (allowedRole) => allowedRole.role as Role\n // )\n // );\n // }\n // })\n // );\n default:\n return this.data.collection('Roles').query(rolesQuery);\n }\n }\n\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n ngOnInit() {\n this.load();\n this.filterForm.valueChanges.subscribe(() => this.load());\n }\n\n /**\n * Returns competences names string.\n *\n * @param role role for getting competences.\n */\n public getCompetencesString(role: Role): string {\n return role.competences.map((competence) => competence.name).join('; ');\n }\n}\n","
    \n
    \n

    \n {{ 'shared.resourceRoles.addingRolesModal.header' | translate }}\n

    \n \n
    \n
    \n
    \n \n
    \n\n
    \n
    \n \n \n \n \n \n {{ 'shared.resourceRoles.columns.competences' | translate }}\n \n \n {{ 'shared.resourceRoles.columns.description' | translate }}\n \n \n \n
    \n {{ 'shared.resourceRoles.columns.role' | translate }}\n
    \n\n
    \n \n \n \n \n {{ 'shared.resourceRoles.columns.role' | translate }}\n \n \n {{ 'shared.resourceRoles.columns.competences' | translate }}\n \n \n {{ 'shared.resourceRoles.columns.description' | translate }}\n \n \n \n \n \n \n {{ role.name }}\n \n \n {{ getCompetencesString(role) }}\n \n \n {{ role.description }}\n \n \n \n \n {{ 'shared.noDisplayData' | translate }}\n \n \n \n \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n {{ role.name }}\n
    \n\n \n
    \n
    \n {{ 'shared.resourceRoles.addingRolesModal.noDisplayData' | translate }}\n
    \n
    \n
    \n
    \n \n
    \n 0\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"ok()\"\n wpButtonSpinner\n [isBusy]=\"isSaving\"\n >\n {{ 'shared.actions.add' | translate }}\n \n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ResourceRolesComponent } from './resource-roles/resource-roles.component';\nimport { AddingResourceRolesModalComponent } from './adding-resource-roles-modal/adding-resource-roles-modal.component';\nimport { CompetencesCellComponent } from './resource-roles/competences-cell/competences-cell.component';\nimport { CompetencesCellReadonlyComponent } from './resource-roles/competences-cell/competences-cell-readonly.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n ResourceRolesComponent,\n AddingResourceRolesModalComponent,\n CompetencesCellComponent,\n CompetencesCellReadonlyComponent,\n ],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [ResourceRolesComponent],\n})\nexport class ResourceRolesModule {}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n throwError,\n} from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { AddingResourceRolesModalComponent } from './adding-resource-roles-modal/adding-resource-roles-modal.component';\nimport { EntityType } from './enums/entity-type.enum';\nimport { RoleCompetence } from 'src/app/shared/models/entities/settings/role.model';\nimport { UserRole } from 'src/app/shared/models/entities/settings/user-role.model';\n\n@Injectable()\nexport class ResourceRolesService {\n public userId: string;\n\n private changesSubject = new Subject();\n public changes$ = this.changesSubject.asObservable();\n\n private isLoadingSubject = new BehaviorSubject(true);\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n public roles = this.fb.array([]);\n private loadingSubscription: Subscription;\n\n constructor(\n private data: DataService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private modal: NgbModal,\n ) {}\n\n private getGroup(): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n role: null,\n competences: [],\n userRoleCompetences: [],\n });\n\n return group;\n }\n\n public reload() {\n this.load();\n }\n\n public addRoles(resourceType: EntityType) {\n const modalRef = this.modal.open(AddingResourceRolesModalComponent, {\n size: 'lg',\n });\n const instance =\n modalRef.componentInstance as AddingResourceRolesModalComponent;\n\n instance.entityType = resourceType;\n instance.entityId = this.userId;\n instance.alreadyAddedIds = (this.roles.getRawValue() as UserRole[]).map(\n (r) => r.role.id,\n );\n\n modalRef.result.then(\n (newRoles: NamedEntity[]) => {\n newRoles.forEach((role) => {\n const group = this.getGroup();\n group.controls.role.setValue(role);\n\n this.roles.push(group);\n });\n\n this.changesSubject.next();\n },\n () => null,\n );\n }\n\n public delete(index: number) {\n this.roles.removeAt(index);\n this.changesSubject.next();\n }\n\n public load() {\n this.roles.clear();\n this.isLoadingSubject.next(true);\n\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n }\n\n this.loadingSubscription = this.data\n .collection('Users')\n .entity(this.userId)\n .collection('AdditionalUserRoles')\n .query({\n select: ['id'],\n expand: {\n role: {\n select: ['id', 'name', 'description'],\n expand: {\n competences: {\n select: ['id', 'name'],\n filter: { isActive: true },\n },\n },\n orderBy: 'competence/name',\n },\n userRoleCompetences: {\n select: ['id', 'competenceId'],\n },\n },\n orderBy: 'role/name',\n })\n .subscribe({\n next: (userRoles) => {\n userRoles.forEach((userRole: UserRole) => {\n const group = this.getGroup();\n group.patchValue(userRole, { emitEvent: false });\n const competences: RoleCompetence[] = userRole.role.competences;\n const addingCompetences: RoleCompetence[] = [];\n competences.map((item) => {\n const found = userRole.userRoleCompetences?.find(\n (assign) => assign.competenceId === item.id,\n );\n if (found) {\n addingCompetences.push(item);\n }\n });\n group.patchValue({ competences: addingCompetences });\n this.roles.push(group);\n });\n\n this.isLoadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoadingSubject.next(false);\n },\n });\n }\n\n public save(): Observable {\n this.roles.markAllAsTouched();\n\n if (this.roles.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return throwError(() => new Error());\n }\n\n const data = {\n userRoles: (this.roles.getRawValue() as UserRole[]).map(\n (userRole: Record) => {\n const result: Record = {\n id: userRole.id,\n roleId: userRole.role.id,\n userId: this.userId,\n };\n result.userRoleCompetences = [];\n userRole.competences?.map((competence) => {\n result.userRoleCompetences.push({\n competenceId: competence.id,\n userRoleId: userRole.role.id,\n });\n });\n\n return result;\n },\n ),\n };\n\n return this.data\n .collection('Users')\n .entity(this.userId)\n .action('UpdateUserRoles')\n .execute(data)\n .pipe(\n catchError((error: Exception) => {\n this.notification.error(error.message);\n return throwError(() => new Error(error.message));\n }),\n );\n }\n\n /* Detects changes for saving. */\n public detectChanges(): void {\n this.changesSubject.next();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { RoleCompetence } from 'src/app/shared/models/entities/settings/role.model';\n\n@Component({\n selector: 'tmt-competences-cell-readonly',\n templateUrl: './competences-cell-readonly.component.html',\n styleUrl: './competences-cell-readonly.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CompetencesCellReadonlyComponent\n implements GridComponentCell, OnInit\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public competences: RoleCompetence[] = [];\n public title: string;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public gridService: GridService,\n public cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.initCompetences();\n\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n /* Inits competences. */\n private initCompetences(): void {\n this.competences =\n (this.formGroup.value.competences as RoleCompetence[]) ?? [];\n this.title = this.competences.map((item) => item.name).join('; ');\n }\n}\n","
    \n @for (competence of competences; track competence.id) {\n \n @if (!$last) {\n {{ competence.name }};\n } @else {\n {{ competence.name }}\n }\n \n }\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport _ from 'lodash';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { ResourceRolesService } from '../../resource-roles.service';\nimport { RoleCompetence } from 'src/app/shared/models/entities/settings/role.model';\n\n@Component({\n selector: 'tmt-competences-cell',\n templateUrl: './competences-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CompetencesCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public roleCompetences: RoleCompetence[] = [];\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private gridService: GridService,\n private cdr: ChangeDetectorRef,\n private resourceRolesService: ResourceRolesService,\n ) {}\n\n public ngOnInit(): void {\n this.roleCompetences = this.formGroup.getRawValue().role.competences;\n\n this.gridService.detectChanges$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.formGroup\n .get('competences')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.resourceRolesService.detectChanges();\n });\n }\n}\n","\n \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { Subscription } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { ResourceRolesService } from '../resource-roles.service';\nimport { EntityType } from '../enums/entity-type.enum';\nimport { CompetencesCellComponent } from './competences-cell/competences-cell.component';\nimport { CompetencesCellReadonlyComponent } from './competences-cell/competences-cell-readonly.component';\n\n@Component({\n selector: 'wp-resource-roles',\n templateUrl: './resource-roles.component.html',\n styleUrls: ['./resource-roles.component.scss'],\n providers: [],\n standalone: false,\n})\nexport class ResourceRolesComponent implements OnInit {\n @Input() userId: string;\n @Input() resourceType: EntityType;\n @Input() readonly: string;\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.resourceRolesService.delete(index);\n },\n },\n ],\n commands: [],\n view: {\n name: 'resourceRoles',\n columns: [\n {\n name: 'role',\n header: 'shared.resourceRoles.columns.role',\n hint: 'shared.resourceRoles.columns.role',\n type: GridColumnType.Entity,\n width: '40%',\n },\n {\n name: 'competences',\n header: 'shared.resourceRoles.columns.competences',\n hint: 'shared.resourceRoles.columns.competences',\n type: GridColumnType.Component,\n width: '60%',\n component: CompetencesCellComponent,\n readonlyComponent: CompetencesCellReadonlyComponent,\n },\n ],\n },\n };\n\n reloadSubscription: Subscription;\n loadingSubscription: Subscription;\n\n constructor(\n public app: AppService,\n public resourceRolesService: ResourceRolesService,\n ) {}\n\n public addRoles() {\n this.resourceRolesService.addRoles(this.resourceType);\n }\n\n ngOnInit() {\n this.resourceRolesService.userId = this.userId;\n this.resourceRolesService.load();\n }\n}\n","
    \n
    \n \n  {{\n 'shared.resourceRoles.actions.addRoles' | translate\n }}\n \n
    \n \n\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DateTime, Interval } from 'luxon';\nimport { Subject } from 'rxjs';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { RbcSettings } from 'src/app/projects/card/project-rbc/models/rbc.settings';\nimport { ScheduleNavigationContext } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-context.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from 'src/app/shared-features/planner/models/value-mode.enum';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { ExpensesCalendarSettings } from 'src/app/projects/card/project-expenses/models/expenses-calendar.settings';\nimport { ResourcePlannerSettings } from 'src/app/projects/card/project-resources/models/resource-planner-settings.model';\nimport { ResourceForecastCalendarPlannerSettings } from 'src/app/projects/card/project-resources/models/resource-forecast-calendar-settings.model';\nimport { BookingSettings } from 'src/app/booking/booking/models/booking.settings';\nimport { ProjectSummaryViewSettings } from 'src/app/project-summary/models/project-summary-view.settings';\nimport { AppService } from 'src/app/core/app.service';\nimport { ResourceRequirementsSettings } from 'src/app/projects/card/project-resource-requirements/models/resource-requirements-settings.model';\nimport { ResourceSummaryViewSettings } from 'src/app/resource-summary/models/resource-summary-view.settings';\nimport { TimelineSettings } from 'src/app/projects/card/project-tasks/shared/tasks-grid/timeline-right-side/models/timeline.settings';\n\n/**\n * Сервис для навигации по дате и времени в расписаниях\n */\n@Injectable()\nexport class ScheduleNavigationService {\n public planningScale: PlanningScale;\n public valueMode: ValueMode;\n\n // Changing values of `ValueMode` and `planningScale` emits asynchronous action.\n // On Resolve value changes, on Reject nothing happened.\n // If property is null, value changes immediately.\n public asyncActionBeforeChange: () => Promise | null = null;\n\n /** Уведомление о переходе на следующий период */\n private nextSubject = new Subject();\n public next$ = this.nextSubject.asObservable();\n\n /** Уведомление о переходе на предыдущий период */\n private previousSubject = new Subject();\n public previous$ = this.previousSubject.asObservable();\n\n /** Уведомление о \"прыжке\" на конкретную дату */\n private jumpSubject = new Subject();\n public jump$ = this.jumpSubject.asObservable();\n\n /** Уведомление о изменении planningScale */\n private planningScaleSubject = new Subject();\n public planningScale$ = this.planningScaleSubject.asObservable();\n\n /** Уведомление о изменении valueMode */\n private valueModeSubject = new Subject();\n public valueMode$ = this.valueModeSubject.asObservable();\n\n /** Контекст, в котором будет работать сервис */\n public context: ScheduleNavigationContext = ScheduleNavigationContext.Booking;\n public isFixedBookingScale: boolean;\n\n constructor(\n private translate: TranslateService,\n private localConfigService: LocalConfigService,\n private appService: AppService,\n ) {\n /** Извлекаем сохраненные данные из localStorage */\n const config = this.localConfigService.getConfig(BookingSettings);\n this.planningScale = config.planningScale;\n this.valueMode = config.valueMode;\n }\n\n /**\n * Инициализирует сервис навигации.\n *\n * @param context - контекст, в котором будет работать сервис.\n * @example\n * init(ScheduleNavigationContext.Booking)\n */\n\n public init(context: ScheduleNavigationContext) {\n this.context = context;\n switch (this.context) {\n case ScheduleNavigationContext.ResourceRequirements: {\n const config = this.localConfigService.getConfig(\n ResourceRequirementsSettings,\n );\n const planningScaleFromSession =\n this.appService.session.configuration.bookingScale;\n if (planningScaleFromSession) {\n this.planningScale = planningScaleFromSession;\n this.isFixedBookingScale = true;\n } else {\n this.planningScale = config.planningScale;\n this.isFixedBookingScale = false;\n }\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(ResourceRequirementsSettings, config);\n break;\n }\n case ScheduleNavigationContext.Booking: {\n const config = this.localConfigService.getConfig(BookingSettings);\n const planningScaleFromSession =\n this.appService.session.configuration.bookingScale;\n\n if (planningScaleFromSession) {\n this.planningScale = planningScaleFromSession;\n this.isFixedBookingScale = true;\n } else {\n this.planningScale = config.planningScale;\n this.isFixedBookingScale = false;\n }\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(BookingSettings, config);\n break;\n }\n case ScheduleNavigationContext.Rbc: {\n const config = this.localConfigService.getConfig(RbcSettings);\n this.planningScale = config.planningScale;\n this.localConfigService.setConfig(RbcSettings, config);\n break;\n }\n case ScheduleNavigationContext.Expenses: {\n const config = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n this.planningScale = config.planningScale;\n this.localConfigService.setConfig(ExpensesCalendarSettings, config);\n break;\n }\n case ScheduleNavigationContext.ProjectSummary: {\n const config = this.localConfigService.getConfig(\n ProjectSummaryViewSettings,\n );\n this.planningScale = config.planningScale;\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(ProjectSummaryViewSettings, config);\n break;\n }\n case ScheduleNavigationContext.Resources: {\n const config = this.localConfigService.getConfig(\n ResourcePlannerSettings,\n );\n this.planningScale = config.planningScale;\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(ResourcePlannerSettings, config);\n break;\n }\n case ScheduleNavigationContext.ResourceSummary: {\n const config = this.localConfigService.getConfig(\n ResourceSummaryViewSettings,\n );\n this.planningScale = config.planningScale;\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(ResourceSummaryViewSettings, config);\n break;\n }\n case ScheduleNavigationContext.ResourcesCalendar: {\n const config = this.localConfigService.getConfig(\n ResourceForecastCalendarPlannerSettings,\n );\n this.planningScale = config.planningScale;\n this.valueMode = config.valueMode;\n this.localConfigService.setConfig(\n ResourceForecastCalendarPlannerSettings,\n config,\n );\n break;\n }\n case ScheduleNavigationContext.ProjectTasksTimeline: {\n const config = this.localConfigService.getConfig(TimelineSettings);\n this.planningScale = config.planningScale;\n this.localConfigService.setConfig(TimelineSettings, config);\n }\n }\n }\n\n /**\n * Следующий период.\n *\n */\n\n public next() {\n this.nextSubject.next();\n }\n\n /**\n * Предыдущий период.\n *\n */\n\n public previous() {\n this.previousSubject.next();\n }\n\n /**\n * Переход к указанной дате.\n *\n * @param date - дата к которой необходимо перейти.\n */\n\n public jump(date: DateTime) {\n this.jumpSubject.next(date);\n }\n\n /**\n * Устанавливает масштаб планирования (Day, Week, Year)\n *\n * @example\n * setPlanningScale(planningScale: PlanningScale.Day)\n */\n\n public setPlanningScale(planningScale: PlanningScale) {\n const handle = () => {\n this.planningScale = planningScale;\n this.saveSettings();\n this.planningScaleSubject.next(planningScale);\n };\n\n if (this.asyncActionBeforeChange) {\n this.asyncActionBeforeChange().then((value) => {\n if (value) {\n handle();\n }\n });\n } else {\n handle();\n }\n }\n\n /**\n * Устанавливает единицы измерения для отображения (FTE, %, Hours).\n *\n * @example\n * setValueMode(ValueMode.FTE)\n */\n\n public setValueMode(valueMode: ValueMode) {\n const handle = () => {\n this.valueMode = valueMode;\n this.saveSettings();\n this.valueModeSubject.next(valueMode);\n };\n\n if (this.asyncActionBeforeChange) {\n this.asyncActionBeforeChange().then((value) => {\n if (value) {\n handle();\n }\n });\n } else {\n handle();\n }\n }\n\n /**\n * Сохраняет настройки навигации в текущем контексте. Контекст (context) определен внутри сервиса.\n */\n\n private saveSettings() {\n switch (this.context) {\n case ScheduleNavigationContext.ResourceRequirements:\n {\n const config = this.localConfigService.getConfig(\n ResourceRequirementsSettings,\n );\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(\n ResourceRequirementsSettings,\n config,\n );\n }\n break;\n case ScheduleNavigationContext.Booking:\n {\n const config = this.localConfigService.getConfig(BookingSettings);\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(BookingSettings, config);\n }\n break;\n case ScheduleNavigationContext.Rbc:\n {\n const config = this.localConfigService.getConfig(RbcSettings);\n config.planningScale = this.planningScale;\n this.localConfigService.setConfig(RbcSettings, config);\n }\n break;\n case ScheduleNavigationContext.Expenses:\n {\n const config = this.localConfigService.getConfig(\n ExpensesCalendarSettings,\n );\n config.planningScale = this.planningScale;\n this.localConfigService.setConfig(ExpensesCalendarSettings, config);\n }\n break;\n case ScheduleNavigationContext.ProjectSummary:\n {\n const config = this.localConfigService.getConfig(\n ProjectSummaryViewSettings,\n );\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(ProjectSummaryViewSettings, config);\n }\n break;\n case ScheduleNavigationContext.Resources:\n {\n const config = this.localConfigService.getConfig(\n ResourcePlannerSettings,\n );\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(ResourcePlannerSettings, config);\n }\n break;\n\n case ScheduleNavigationContext.ResourceSummary:\n {\n const config = this.localConfigService.getConfig(\n ResourceSummaryViewSettings,\n );\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(\n ResourceSummaryViewSettings,\n config,\n );\n }\n break;\n\n case ScheduleNavigationContext.ResourcesCalendar:\n {\n const config = this.localConfigService.getConfig(\n ResourceForecastCalendarPlannerSettings,\n );\n config.planningScale = this.planningScale;\n config.valueMode = this.valueMode;\n this.localConfigService.setConfig(\n ResourceForecastCalendarPlannerSettings,\n config,\n );\n }\n break;\n case ScheduleNavigationContext.ProjectTasksTimeline: {\n const config = this.localConfigService.getConfig(TimelineSettings);\n config.planningScale = this.planningScale;\n this.localConfigService.setConfig(TimelineSettings, config);\n }\n }\n }\n\n /**\n * Возвращает список слотов и список групп слотов.\n *\n * @param dates - интервал, из которого будут составляться списки.\n * @param planningScale - масштаб планирования.\n */\n\n public getSlots(\n dates: Interval,\n planningScale: PlanningScale,\n ): { slots: Slot[]; groups: SlotGroup[] } {\n const interval = this.getNormalizedInterval(dates, planningScale);\n\n const slots: Slot[] = [];\n const groups: SlotGroup[] = [];\n\n let date: DateTime;\n if (planningScale === PlanningScale.Day) {\n date = interval.start;\n while (interval.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: date.toSeconds(),\n hint: date.toLocaleString(DateTime.DATE_HUGE),\n date,\n header: date.toFormat('EEE'),\n today: date.startOf('day').equals(DateTime.now().startOf('day')),\n });\n\n const groupId = date.startOf('week').toISODate();\n const slotGroup = groups.find((g) => g.id === groupId);\n if (!slotGroup) {\n groups.push({\n id: groupId,\n hint: '',\n header: date.toLocaleString(DateTime.DATE_FULL),\n slotsCount: 1,\n });\n } else {\n slotGroup.slotsCount++;\n }\n\n date = date.plus({ days: 1 });\n }\n }\n\n if (planningScale === PlanningScale.Week) {\n date = interval.start;\n\n while (interval.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: date.toSeconds(),\n hint: date.toLocaleString(DateTime.DATE_HUGE),\n date,\n header: date.toFormat('W'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('week'),\n });\n\n const groupId = date.startOf('month').toISODate();\n const slotGroup = groups.find((g) => g.id === groupId);\n if (!slotGroup) {\n groups.push({\n id: groupId,\n hint: '',\n header: date.toLocaleString(DateTime.DATE_FULL),\n slotsCount: 1,\n });\n } else {\n slotGroup.slotsCount++;\n }\n\n date = date.plus({ days: 7 });\n }\n }\n\n if (planningScale === PlanningScale.Month) {\n date = interval.start;\n\n while (interval.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: date.toSeconds(),\n hint: date.toLocaleString(DateTime.DATE_HUGE),\n date,\n header: date.toFormat('LLL'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('month'),\n });\n\n const groupId = date.startOf('year').toISODate();\n const slotGroup = groups.find((g) => g.id === groupId);\n if (!slotGroup) {\n groups.push({\n id: groupId,\n hint: '',\n header: date.toFormat('yyyy'),\n slotsCount: 1,\n });\n } else {\n slotGroup.slotsCount++;\n }\n\n date = date.plus({ months: 1 });\n }\n }\n\n if (planningScale === PlanningScale.Quarter) {\n date = interval.start;\n while (interval.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: date.toSeconds(),\n hint: date.toLocaleString(DateTime.DATE_HUGE),\n date,\n header: date.toFormat('q'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('quarter'),\n });\n\n const groupId = date.startOf('year').toISODate();\n const slotGroup = groups.find((g) => g.id === groupId);\n if (!slotGroup) {\n groups.push({\n id: groupId,\n hint: '',\n header: date.toFormat('yyyy'),\n slotsCount: 1,\n });\n } else {\n slotGroup.slotsCount++;\n }\n\n date = date.plus({ quarters: 1 });\n }\n }\n\n if (planningScale === PlanningScale.Year) {\n date = interval.start;\n while (interval.end.startOf('day') >= date.startOf('day')) {\n slots.push({\n id: date.toSeconds(),\n hint: date.toLocaleString(DateTime.DATE_HUGE),\n date,\n header: date.toFormat('y'),\n today:\n DateTime.now().startOf('day') >= date &&\n DateTime.now().startOf('day') <= date.endOf('year'),\n });\n\n const decadeStart = date.year - (date.year % 10);\n const decadeEnd = decadeStart + 10;\n const groupId = DateTime.fromObject({ year: decadeStart }).toISODate();\n const slotGroup = groups.find((g) => g.id === groupId);\n if (!slotGroup) {\n groups.push({\n id: groupId,\n hint: '',\n header: `${decadeStart} - ${decadeEnd}`,\n slotsCount: 1,\n });\n } else {\n slotGroup.slotsCount++;\n }\n\n date = date.plus({ years: 1 });\n }\n }\n\n return { slots, groups };\n }\n\n /**\n * Возвращает нормализованный временной интервал (начинается с пн. заканчивается вс.).\n *\n * @param planningScale - масштаб планирования.\n * @param interval - временной интервал, который необходимо нормализовать.\n */\n\n public getNormalizedInterval(\n interval: Interval,\n planningScale: PlanningScale,\n ) {\n let start = interval.start;\n let end = interval.end;\n\n if (planningScale === PlanningScale.Week) {\n start = interval.start.startOf('week');\n end = interval.end.endOf('week');\n }\n\n if (planningScale === PlanningScale.Month) {\n start = interval.start.startOf('month');\n end = interval.end.endOf('month');\n }\n\n if (planningScale === PlanningScale.Quarter) {\n start = interval.start.startOf('quarter');\n end = interval.end.endOf('quarter');\n }\n\n if (planningScale === PlanningScale.Year) {\n start = interval.start.startOf('year');\n end = interval.end.endOf('year');\n }\n\n return Interval.fromDateTimes(start, end);\n }\n\n /**\n * Возвращает временной интервал.\n *\n * @param planningScale - масштаб планирования.\n * @param date - дата отсчёта. По умолчанию: DateTime.now().\n * */\n\n public getInterval(planningScale: PlanningScale, date?: DateTime): Interval {\n const now = date ?? DateTime.now().startOf('day');\n\n let startPeriod: DateTime = now;\n let endPeriod: DateTime = now;\n\n if (planningScale === PlanningScale.Day) {\n startPeriod = now.minus({ days: 7 }).startOf('week');\n endPeriod = now.plus({ days: 45 }).endOf('week');\n }\n\n if (planningScale === PlanningScale.Week) {\n startPeriod = now.startOf('week').minus({ weeks: 4 });\n endPeriod = now.endOf('week').plus({ weeks: 25 });\n }\n\n if (planningScale === PlanningScale.Month) {\n startPeriod = now.startOf('month').minus({ month: 2 });\n endPeriod = now.endOf('month').plus({ month: 25 });\n }\n\n if (planningScale === PlanningScale.Quarter) {\n startPeriod = now.startOf('quarter').minus({ quarter: 4 });\n endPeriod = now.endOf('quarter').plus({ quarter: 8 });\n }\n\n if (planningScale === PlanningScale.Year) {\n startPeriod = now.startOf('year').minus({ year: 2 });\n endPeriod = now.endOf('year').plus({ year: 18 });\n }\n\n return Interval.fromDateTimes(startPeriod, endPeriod);\n }\n\n /**\n * Возвращает наименование масштаба планирования.\n *\n * @param planningScale - масштаб планирования.\n */\n\n public getPlanningScaleName(planningScale: PlanningScale): string {\n return this.translate.instant(`enums.planningScale.${planningScale}`);\n }\n}\n","export * from './core/schedule-navigation.service';\nexport * from './models/schedule-navigation-context.enum';\nexport * from './models/schedule-navigation-parts.enum';\nexport * from './models/slot.model';\nexport * from './schedule-navigation.component/schedule-navigation.component';\n","export enum ScheduleNavigationContext {\n Booking = 'Booking',\n Rbc = 'Rbc',\n Expenses = 'Expenses',\n ProjectSummary = 'ProjectSummary',\n Resources = 'Resources',\n ResourcesCalendar = 'ResourcesCalendar',\n ResourceSummary = 'ResourceSummary',\n ProjectTasksTimeline = 'ProjectTasksTimeline',\n ResourceRequirements = 'ResourceRequirements',\n}\n","export enum VisibleParts {\n calendar,\n valueModeSelector,\n planningScaleSelector,\n}\n","import { DateTime } from 'luxon';\n\nexport interface Slot {\n id: number;\n hint: string;\n date: DateTime;\n header: string;\n today: boolean;\n}\n\nexport interface SlotGroup {\n id: string;\n hint: string;\n header: string;\n slotsCount: number;\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { ScheduleNavigationService } from '../core/schedule-navigation.service';\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport {\n AllPlanningScales,\n PlanningScale,\n} from 'src/app/shared/models/enums/planning-scale.enum';\nimport { ValueMode } from '../../planner/models/value-mode.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ScheduleNavigationContext } from '../models/schedule-navigation-context.enum';\nimport { VisibleParts } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-parts.enum';\n\n@Component({\n selector: 'wp-schedule-navigation',\n templateUrl: './schedule-navigation.component.html',\n styleUrls: ['./schedule-navigation.component.scss'],\n standalone: false,\n})\nexport class ScheduleNavigationComponent {\n @Input() currentDateSelector: string | null = null;\n @Input() maxScale = PlanningScale.Month;\n @Input() set usedValueModes(valueModes: ValueMode[]) {\n this.valueModes = valueModes;\n }\n @Input() visibleParts: VisibleParts[] = [\n VisibleParts.calendar,\n VisibleParts.planningScaleSelector,\n VisibleParts.valueModeSelector,\n ];\n\n public valueModes: ValueMode[] = [\n ValueMode.Hours,\n ValueMode.Percentage,\n ValueMode.FTE,\n ValueMode.Days,\n ];\n\n @Input() disabled = false;\n\n valueMode = ValueMode;\n\n public calendarIsOpen = false;\n\n public get scales(): PlanningScale[] {\n return AllPlanningScales.filter(\n (_, index) => index <= AllPlanningScales.indexOf(this.maxScale),\n );\n }\n\n get isCalendarVisible() {\n return this.visibleParts.includes(VisibleParts.calendar);\n }\n\n get isPlanningScaleVisible() {\n return this.visibleParts.includes(VisibleParts.planningScaleSelector);\n }\n\n get isValueModeVisible() {\n return this.visibleParts.includes(VisibleParts.valueModeSelector);\n }\n\n constructor(\n public service: ScheduleNavigationService,\n private changeDetector: ChangeDetectorRef,\n private translate: TranslateService,\n ) {}\n\n /** Предыдущий период. */\n public previousPeriod() {\n this.service.previous();\n }\n\n /** Последующий период. */\n public nextPeriod() {\n this.service.next();\n }\n\n public jump(date: NgbDate) {\n this.service.jump(DateTime.local(date.year, date.month, date.day));\n this.closeCalendar();\n }\n\n public getValueModeName(valueMode: ValueMode): string {\n switch (valueMode) {\n case ValueMode.Percentage:\n return this.translate.instant('shared.planner.valueMode.percentage');\n case ValueMode.Hours:\n return this.translate.instant('shared.planner.valueMode.hours');\n case ValueMode.FTE:\n return this.translate.instant('shared.planner.valueMode.fte');\n case ValueMode.Cost:\n return this.translate.instant('shared.planner.valueMode.cost');\n case ValueMode.Days:\n return this.translate.instant('shared.planner.valueMode.days');\n default:\n return null;\n }\n }\n\n public getPlanningScaleName(planningScale: PlanningScale): string {\n return this.translate.instant(`enums.planningScale.${planningScale}`);\n }\n\n public closeCalendar() {\n this.calendarIsOpen = false;\n this.changeDetector.detectChanges();\n }\n\n public isResourcesContext() {\n return (\n this.service.context === ScheduleNavigationContext.Booking ||\n this.service.context === ScheduleNavigationContext.Resources ||\n this.service.context === ScheduleNavigationContext.ResourceSummary ||\n this.service.context === ScheduleNavigationContext.ProjectSummary ||\n this.service.context === ScheduleNavigationContext.ResourcesCalendar ||\n this.service.context === ScheduleNavigationContext.ResourceRequirements\n );\n }\n}\n","
    \n \n \n \n \n \n \n\n \n \n \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n {{ getValueModeName(service.valueMode) }}\n \n
    \n \n {{ 'shared.planner.valueMode.' + valueMode.toLowerCase() | translate }}\n \n
    \n
    \n\n
    \n \n {{ getPlanningScaleName(service.planningScale) }}\n \n
    \n \n {{ 'enums.planningScale.' + scale | translate }}\n \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ScheduleNavigationComponent } from './schedule-navigation.component/schedule-navigation.component';\n\n@NgModule({\n declarations: [ScheduleNavigationComponent],\n providers: [],\n imports: [CommonModule, SharedModule],\n exports: [ScheduleNavigationComponent],\n})\nexport class ScheduleNavigationModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { CommentsModule } from './comments/comments.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, SharedModule, UIRouterModule],\n exports: [CommentsModule, GridModule],\n})\nexport class SharedFeaturesModule {}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CommonModule } from '@angular/common';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { StateHistoryComponent } from 'src/app/shared-features/shared/state-history/state-history.component';\nimport { EntityWorkflowTasksComponent } from 'src/app/shared-features/shared/entity-workflow-tasks/entity-workflow-tasks.component';\nimport { StateChangingCellComponent } from 'src/app/shared/components/features/state-changing-cell/state-changing-cell.component';\nimport { SubstitutionUserCellComponent } from 'src/app/shared/components/features/substitution-user-cell/substitution-user-cell.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\n\n@NgModule({\n declarations: [\n EntityWorkflowTasksComponent,\n StateHistoryComponent,\n StateChangingCellComponent,\n SubstitutionUserCellComponent,\n ],\n imports: [UIRouterModule, CommonModule, SharedModule, GridModule],\n exports: [\n EntityWorkflowTasksComponent,\n StateHistoryComponent,\n StateChangingCellComponent,\n SubstitutionUserCellComponent,\n ],\n})\nexport class BaseSharedModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { WorkflowTask } from 'src/app/shared/models/entities/workflow-tasks/workflow-task.model';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport { orderBy } from 'lodash';\nimport { SubstitutionUserCellComponent } from 'src/app/shared/components/features/substitution-user-cell/substitution-user-cell.component';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-entity-workflow-tasks',\n templateUrl: './entity-workflow-tasks.component.html',\n styleUrls: ['./entity-workflow-tasks.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [GridService],\n standalone: false,\n})\nexport class EntityWorkflowTasksComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public formArray = this.fb.array([]);\n\n private isLoadingSubject = new BehaviorSubject(false);\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n private loadSubscription: Subscription;\n public gridOptions: GridOptions = {\n css: 'table table-striped table-layout-fixed',\n view: {\n name: 'stateHistory',\n columns: [\n {\n name: 'created',\n header: 'base.workflow.columns.created',\n hint: 'base.workflow.columns.created',\n type: GridColumnType.DateTime,\n width: '140px',\n fixedWidth: true,\n },\n {\n name: 'name',\n header: 'base.workflow.columns.name',\n hint: 'base.workflow.columns.name',\n type: GridColumnType.String,\n width: '70%',\n },\n {\n name: 'assigned',\n header: 'base.workflow.columns.assigned',\n hint: 'base.workflow.columns.assigned',\n type: GridColumnType.User,\n width: '70%',\n },\n {\n name: 'state',\n header: 'base.workflow.columns.state',\n hint: 'base.workflow.columns.state',\n type: GridColumnType.State,\n width: '150px',\n fixedWidth: true,\n },\n {\n name: 'workflowActionLabel',\n header: 'base.workflow.columns.workflowActionLabel',\n hint: 'base.workflow.columns.workflowActionLabel',\n type: GridColumnType.String,\n width: '150px',\n },\n {\n name: 'comment',\n header: 'base.workflow.columns.resolutionComment',\n hint: 'base.workflow.columns.resolutionComment',\n type: GridColumnType.MultilineString,\n width: '100%',\n },\n {\n name: 'performed',\n header: 'base.workflow.columns.performed',\n hint: 'base.workflow.columns.performed',\n type: GridColumnType.DateTime,\n width: '140px',\n fixedWidth: true,\n },\n {\n name: 'performer',\n header: 'base.workflow.columns.performer',\n hint: 'base.workflow.columns.performer',\n type: GridColumnType.Component,\n component: SubstitutionUserCellComponent,\n width: '70%',\n },\n ],\n },\n };\n\n constructor(\n private data: DataService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n @Inject(META_ENTITY_TYPE) private metaEntityType: string,\n private lifecycleService: LifecycleService,\n private sortService: SortService,\n ) {}\n\n private load(): void {\n this.isLoadingSubject.next(true);\n this.loadSubscription?.unsubscribe();\n this.loadSubscription = this.lifecycleService\n .getCollection()\n .pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.entityId)\n .function('GetEntityTasks')\n .query(null, {\n expand: [\n { assigned: { select: ['id', 'name'] } },\n { performer: { select: ['id', 'name'] } },\n { realPerformer: { select: ['id', 'name'] } },\n { state: { select: ['name', 'style'] } },\n ],\n orderBy: 'created desc',\n }),\n ),\n )\n .pipe(\n map((tasks) =>\n orderBy(\n tasks,\n ['created'],\n this.sortService.sortDirection === SortDirection.newest\n ? 'desc'\n : 'asc',\n ),\n ),\n )\n .subscribe({\n next: (tasks: WorkflowTask[]) => {\n this.formArray.clear();\n tasks.forEach((task) =>\n this.formArray.push(\n this.fb.group({\n id: Guid.generate(),\n created: task.created,\n name: task.name,\n assigned: task.assigned,\n state: task.state,\n workflowActionLabel: task.workflowActionLabel,\n comment: task.resolutionComment,\n performed: task.performed,\n performer: {\n performer: task.performer,\n realPerformer: task.realPerformer,\n },\n }),\n ),\n );\n this.isLoadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.isLoadingSubject.next(false);\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit(): void {\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n });\n\n this.sortService.sortDirection$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((direction) => {\n const newArray = orderBy(\n this.formArray.getRawValue(),\n ['created'],\n direction === SortDirection.newest ? 'desc' : 'asc',\n );\n\n this.formArray.clear();\n newArray.forEach((row) => {\n this.formArray.push(this.fb.group(row));\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n@if (!(isLoading$ | async)) {\n \n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n OnDestroy,\n} from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { StateChangingCellComponent } from 'src/app/shared/components/features/state-changing-cell/state-changing-cell.component';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport { orderBy } from 'lodash';\nimport { SubstitutionUserCellComponent } from 'src/app/shared/components/features/substitution-user-cell/substitution-user-cell.component';\nimport { GridOptions } from 'src/app/shared-features/grid/models/grid-options.model';\n\n@Component({\n selector: 'tmt-state-history',\n templateUrl: './state-history.component.html',\n styleUrls: ['./state-history.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [GridService],\n standalone: false,\n})\nexport class StateHistoryComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public formArray = this.fb.array([]);\n\n private isLoadingSubject = new BehaviorSubject(false);\n public isLoading$ = this.isLoadingSubject.asObservable();\n\n /** The component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n private loadSubscription: Subscription;\n public gridOptions: GridOptions = {\n css: 'table table-striped table-layout-fixed',\n view: {\n name: 'stateHistory',\n columns: [\n {\n name: 'performer',\n header: 'base.stateHistory.columns.performer',\n hint: 'base.stateHistory.columns.performer',\n type: GridColumnType.Component,\n component: SubstitutionUserCellComponent,\n width: '350px',\n },\n {\n name: 'date',\n header: 'base.stateHistory.columns.date',\n hint: 'base.stateHistory.columns.date',\n type: GridColumnType.DateTime,\n width: '140px',\n fixedWidth: true,\n },\n {\n name: 'changing',\n header: 'base.stateHistory.columns.changing',\n hint: 'base.stateHistory.columns.changing',\n type: GridColumnType.Component,\n component: StateChangingCellComponent,\n width: '300px',\n },\n {\n name: 'comment',\n header: 'base.stateHistory.columns.comment',\n hint: 'base.stateHistory.columns.comment',\n type: GridColumnType.MultilineString,\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n private data: DataService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private lifecycleService: LifecycleService,\n private sortService: SortService,\n ) {}\n\n private load(): void {\n this.isLoadingSubject.next(true);\n this.loadSubscription?.unsubscribe();\n this.loadSubscription = this.lifecycleService\n .getCollection()\n .pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.entityId)\n .function('GetStateHistory')\n .query(null, {\n expand: [\n { fromState: { select: ['name', 'style'] } },\n { toState: { select: ['name', 'style'] } },\n { performer: { select: ['name', 'id'] } },\n { realPerformer: { select: ['name', 'id'] } },\n ],\n orderBy: 'created desc',\n }),\n ),\n map((logs) =>\n orderBy(\n logs,\n ['created'],\n this.sortService.sortDirection === SortDirection.newest\n ? 'desc'\n : 'asc',\n ),\n ),\n )\n .subscribe({\n next: (stateHistoryLogs: any[]) => {\n this.formArray.clear();\n stateHistoryLogs.forEach((log) => {\n this.formArray.push(\n this.fb.group({\n id: Guid.generate(),\n performer: {\n performer: log.performer,\n realPerformer: log.realPerformer,\n },\n date: log.created,\n changing: { fromState: log.fromState, toState: log.toState },\n comment: log.comment,\n }),\n );\n });\n this.isLoadingSubject.next(false);\n },\n error: (error: Exception) => {\n this.isLoadingSubject.next(false);\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit(): void {\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n });\n\n this.sortService.sortDirection$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((direction) => {\n const newArray = orderBy(\n this.formArray.getRawValue(),\n ['date'],\n direction === SortDirection.newest ? 'desc' : 'asc',\n );\n\n this.formArray.clear();\n newArray.forEach((row) => {\n this.formArray.push(this.fb.group(row));\n });\n });\n }\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","\n\n@if (!(isLoading$ | async)) {\n \n}\n","import {\n trigger,\n style,\n animate,\n transition,\n query,\n stagger,\n} from '@angular/animations';\n\nexport const init = trigger('init', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('200ms', style({ opacity: 1 })),\n ]),\n]);\n\nexport const destroy = trigger('destroy', [\n transition(':leave', [animate('200ms', style({ opacity: 0 }))]),\n]);\n\nexport const initAndDestroy = trigger('initAndDestroy', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('200ms', style({ opacity: 1 })),\n ]),\n transition(':leave', [animate('200ms', style({ opacity: 0 }))]),\n]);\n\nexport const initAndDestroyHeight = trigger('initAndDestroyHeight', [\n transition(':enter', [\n style({ height: 0, margin: 0, overflow: 'hidden' }),\n animate('300ms', style({ height: '*', margin: '*', overflow: 'auto' })),\n ]),\n transition(':leave', [\n animate('300ms', style({ height: 0, margin: 0, overflow: 'hidden' })),\n ]),\n]);\n\nexport const listFade = trigger('listFade', [\n transition(':enter, * => 0, * => -1', []),\n transition(':increment', [\n query(\n ':enter',\n [\n style({ opacity: 0 }),\n stagger(55, [animate('600ms ease-out', style({ opacity: 1 }))]),\n ],\n { optional: true },\n ),\n ]),\n transition(':decrement', [\n query(':leave', [\n stagger(55, [animate('300ms ease-out', style({ opacity: 0 }))]),\n ]),\n ]),\n]);\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport _ from 'lodash';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Entity } from 'src/app/shared/models/entities/entity.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n/** Adding entities modal window. */\n@Component({\n selector: 'tmt-add-entities-modal',\n templateUrl: './add-entities-modal.component.html',\n styleUrls: ['./add-entities-modal.component.scss'],\n imports: [SharedModule, GridModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class AddEntitiesModalComponent\n implements OnInit, AfterViewInit\n{\n @Input() public parentEntityId!: string;\n @Input() public existedEntities: Entity[] = [];\n\n /** Field to sort on client after removing. It can be nested.\n *\n * @example\n * 'resource.name',\n * 'name'\n */\n protected fieldToSortOnClient: string;\n\n protected selectionLimitWarning: string;\n protected modalWindowHeader: string;\n protected noDisplayDataMessage: string;\n\n protected hasAvatar: boolean;\n protected loadingLimit = 250;\n protected selectionLimit = 30;\n protected formArray: UntypedFormArray;\n protected gridOptions: GridOptions;\n protected availableEntities: NamedEntity[] = [];\n protected selectedEntities: NamedEntity[] = [];\n\n protected readonly isSaving = signal(false);\n protected readonly isLoading = signal(false);\n protected readonly loadedPartly = signal(false);\n\n protected readonly activeModal = inject(NgbActiveModal);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly dataService = inject(DataService);\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly fb = inject(UntypedFormBuilder);\n protected readonly filterService = inject(FilterService);\n protected readonly gridService = inject(GridService);\n protected readonly listService = inject(ListService);\n protected readonly notification = inject(NotificationService);\n\n constructor() {\n this.formArray = this.fb.array([]);\n this.gridOptions = {\n toolbar: AbstractToolbar,\n resizableColumns: true,\n selectionType: SelectionType.row,\n view: this.listService.getGridView(),\n commands: [{ name: 'setUserView', handlerFn: () => this.setUserView() }],\n };\n\n this.filterService.values$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.load());\n }\n\n public ngOnInit(): void {\n this.load();\n }\n\n public ngAfterViewInit(): void {\n this.gridService.selectedGroup$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((group) => {\n if (!group) return;\n const index = this.formArray.controls.findIndex(\n (control) => control.value.id === group.value.id,\n );\n const entity = this.availableEntities.find(\n (entity) => entity.id === group.value.id,\n );\n\n this.selectEntity(entity, index);\n });\n }\n\n /** Loads data. */\n protected abstract load(): void;\n\n /** Saves data. */\n protected abstract ok(): void;\n\n /** Creates a form group for a given entity. */\n protected abstract getEntityFormGroup(entity: NamedEntity): UntypedFormGroup;\n\n /** Dismisses changes. */\n protected cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Removes entity.\n *\n * @param entity entity to unselect.\n * @param index number.\n */\n protected removeEntity(\n entityTotal: NamedEntity,\n index: number,\n event: any,\n ): void {\n event.stopPropagation();\n this.selectedEntities.splice(index, 1);\n\n this.availableEntities.push(entityTotal);\n this.availableEntities = _.sortBy(this.availableEntities, ['name']);\n\n const group = this.getEntityFormGroup(entityTotal);\n this.formArray.push(group);\n this.formArray.controls = _.sortBy(this.formArray.controls, [\n (control: AbstractControl) =>\n _.get(control.getRawValue(), this.fieldToSortOnClient),\n ]);\n }\n\n /**\n * Selects entities.\n *\n * @param entity entity.\n * @param index number.\n */\n private selectEntity(entity: NamedEntity, index: number): void {\n if (this.selectedEntities.length === this.selectionLimit) {\n this.notification.warningLocal(this.selectionLimitWarning);\n return;\n }\n\n this.selectedEntities.push(entity);\n this.selectedEntities = _.sortBy(this.selectedEntities, [\n this.fieldToSortOnClient,\n ]);\n\n this.availableEntities.splice(index, 1);\n this.formArray.controls.splice(index, 1);\n }\n\n /** Opens view configuration dialog. */\n private setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.load();\n },\n () => null,\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnDestroy,\n Injector,\n signal,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport _ from 'lodash';\n\nimport {\n MenuAction,\n MenuActionsGroup,\n SubAction,\n} from 'src/app/shared/models/inner/menu-action';\nimport { AutosaveStateService } from 'src/app/shared/services/autosave-state.service';\nimport { OffCanvasActionPanelService } from 'src/app/shared/components/features/off-canvas/off-canvas.component';\n\n/** Панель действий. */\n@Component({\n selector: 'tmt-action-panel',\n templateUrl: './action-panel.component.html',\n styleUrls: ['./action-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ActionPanelComponent implements OnDestroy {\n public isShowBackButton = input(true);\n public groups: MenuActionsGroup[] = [];\n public additionalActions: SubAction[] = [];\n public isDisabled = false;\n public isSaving = signal(false);\n public hasAutosave = signal(false);\n public hasReloader = signal(true);\n\n protected actionPanelService: ActionPanelService;\n\n constructor(\n public navigationService: NavigationService,\n public autosaveStateService: AutosaveStateService,\n private cdr: ChangeDetectorRef,\n private injector: Injector,\n rootActionPanelService: ActionPanelService,\n ) {\n this.actionPanelService = this.injector.get(\n OffCanvasActionPanelService,\n rootActionPanelService,\n {\n optional: true,\n },\n );\n\n this.actionPanelService.updated$\n .pipe(takeUntilDestroyed())\n .subscribe((groups: MenuActionsGroup[]) => {\n this.isDisabled = groups\n .flatMap((g) => g.actions)\n .some((a) => a.isBusy);\n this.groups = groups.filter((g) => g.actions.length);\n this.cdr.markForCheck();\n });\n\n this.actionPanelService.additionalUpdated$\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this.additionalActions = this.actionPanelService.additionalActions;\n this.cdr.markForCheck();\n });\n\n this.actionPanelService.hasAutosave$\n .pipe(takeUntilDestroyed())\n .subscribe((hasAutosave) => {\n this.hasAutosave.set(hasAutosave);\n });\n\n this.actionPanelService.hasReloader$\n .pipe(takeUntilDestroyed())\n .subscribe((hasReloader) => {\n this.hasReloader.set(hasReloader);\n });\n\n this.autosaveStateService.isSaving$\n .pipe(takeUntilDestroyed())\n .subscribe((isSaving) => {\n this.isSaving.set(isSaving);\n });\n }\n\n public ngOnDestroy(): void {\n this.actionPanelService.setHasAutosave(false);\n }\n\n /** Returns `true` if action or sub-actions is visible. */\n public isVisibleElement(value: MenuAction | SubAction[]): boolean {\n if (Array.isArray(value)) {\n return !!value.find((item) => item.isVisible);\n }\n\n if (!value.isDropDown) {\n return value.isVisible;\n }\n\n if (value.isVisible) {\n return !!value.actions.find(\n (subAction) => _.isObject(subAction) && subAction.isVisible,\n );\n }\n\n return false;\n }\n\n /** Run action event on click. */\n public click(action: MenuAction): void {\n if (this.isDisabled || action.isDropDown) {\n return;\n }\n\n this.actionPanelService.runAction(action);\n }\n\n /** Send command to reload for `form-header`. */\n public reload(): void {\n this.actionPanelService.reload();\n }\n\n public isNeedDivider(index: number, actions: SubAction[]): boolean {\n return !!actions\n .slice(0, index)\n .reverse()\n .find((a) => a.isVisible && a.group !== actions[index].group);\n }\n}\n","
    \n @if (isShowBackButton() && navigationService.previousState$ | async) {\n
    \n \n \n \n
    \n }\n\n @if (actionPanelService.actionsVisibility$ | async) {\n
      \n @for (group of groups; track group; let lastGroup = $last) {\n \n @for (action of group.actions; track action; let lastAction = $last) {\n \n
      \n @if (action.isDropDown) {\n \n \n \n } @else {\n \n \n \n }\n\n @if (action.isDropDown) {\n
      \n @for (subAction of action.actions; track subAction.name) {\n \n @if (isNeedDivider($index, action.actions) && subAction.isVisible) {\n
      \n }\n \n {{ subAction.title | translate }}\n \n
      \n }\n
      \n }\n \n }\n
      \n }\n
    \n }\n
      \n @if (hasAutosave()) {\n \n \n \n \n \n }\n\n @if (hasReloader()) {\n \n \n \n \n \n }\n\n @if (\n additionalActions.length &&\n isVisibleElement(additionalActions) &&\n (actionPanelService.actionsVisibility$ | async)\n ) {\n \n \n \n \n\n
      \n @for (subAction of additionalActions; track subAction.name) {\n \n @if (isNeedDivider($index, additionalActions) && subAction.isVisible) {\n
      \n }\n \n {{ subAction.title | translate }}\n \n
      \n }\n
      \n \n }\n
    \n
    \n\n\n @if (action.iconClass || action.isBusy) {\n
    \n \n @if (action.isBusy) {\n \n }\n
    \n }\n \n {{ action.title | translate }}\n \n
    \n","import {\n Component,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n HostBinding,\n Input,\n HostListener,\n OnChanges,\n ViewChild,\n} from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { HistoryItem, HistoryService } from 'src/app/core/history.service';\nimport { AppName } from 'src/app/shared/globals/app-name';\n\n/** Панель приложений. */\n@Component({\n selector: 'wp-app-menu',\n templateUrl: './app-menu.component.html',\n styleUrls: ['./app-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AppMenuComponent implements OnInit, OnChanges {\n @HostBinding('id') id = 'moduleTitle';\n @HostBinding('hidden') @Input() isClosed = true;\n @ViewChild('scrollBox') scrollBox;\n @Output() closed = new EventEmitter();\n public appName = AppName;\n constructor(\n private app: AppService,\n private history: HistoryService,\n ) {}\n\n ngOnInit(): void {\n this.history.getHistory().subscribe((value) => {\n this.historyState = value;\n });\n }\n\n ngOnChanges(): void {\n this.scrollBox?.nativeElement?.scrollTo(0, 0);\n }\n\n public historyState: HistoryItem[] = [];\n\n public checkAppAccess(app: AppName): boolean {\n return this.app.checkAppAccess(app);\n }\n\n @HostListener('window:keyup.escape')\n public close() {\n if (!this.isClosed) {\n this.closed.emit();\n }\n }\n}\n","
    \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n

    \n
    \n
    \n
    \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n
    \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n\n \n
    \n \n
    \n

    \n
    \n
    \n \n
    \n
    0\" class=\"history-list\">\n

    {{ 'shared.appMenu.history' | translate }}

    \n \n \n \n \n \n \n \n \n \n \n \n {{ 'shared.apps.' + historyItem.app | translate }}\n
    \n\n \n

    \n \n {{ segment }}\n \n

    \n \n \n
    \n
    \n\n","import { Component } from '@angular/core';\n\n/** Индикатор блокировки интерфейса. */\n@Component({\n selector: 'wp-block-ui',\n templateUrl: './block-ui.component.html',\n styleUrls: ['./block-ui.component.scss'],\n standalone: false,\n})\nexport class BlockUIComponent {}\n","
    \n
    {{ 'shared.blockUIMessage' | translate }}
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Observable, Subject } from 'rxjs';\nimport { UntypedFormControl, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { HistoryService } from 'src/app/core/history.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n/** Заголовок странницы с формой. */\n@Component({\n selector: 'wp-form-header',\n templateUrl: './form-header.component.html',\n styleUrls: ['./form-header.component.scss'],\n standalone: false,\n})\nexport class FormHeaderComponent implements OnInit, OnDestroy {\n private _name: string;\n\n private destroyed$ = new Subject();\n\n /** Признак доступности редактирования наименования. */\n @Input() public isEditable: boolean;\n\n /** Имя страницы (формы). */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this.title.setTitle(value);\n this.cardName = this.name ? this.name : ' ';\n if (value) {\n this.history.addHistory([value], this.navigation.getAppName());\n return;\n }\n }\n\n /** Признак наличия имени формы. */\n @Input() hasName: boolean;\n\n /** Признак наличия индикатора автосохранения. */\n @Input() hasAutosave: boolean;\n\n /** DEPRECATED - do nothing. */\n @Input() isSaving: boolean;\n\n /** Событие на перезагрузку данных. */\n @Output() reloaded = new EventEmitter();\n\n /** Событие после изменения наименования. */\n @Output() nameSaved = new EventEmitter();\n\n /** Функция для выполнения сохранения наименования. */\n @Input() saveFn: (name: string) => Observable;\n\n public textControl = new UntypedFormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]);\n public isNameSaving: boolean;\n\n private originalName: string;\n public cardName: string;\n public isEditMode: boolean;\n\n constructor(\n private notification: NotificationService,\n private title: Title,\n private navigation: NavigationService,\n private history: HistoryService,\n public panelService: ActionPanelService,\n ) {}\n\n /** Переход в режим редактирования наименования. */\n onClickHeader = () => {\n if (!this.isEditable) {\n return;\n }\n\n this.textControl.setValue(this.name);\n this.originalName = this.name;\n this.isEditMode = true;\n };\n\n /** Выход из режима редактирования наименования. */\n cancel = () => {\n this.isEditMode = false;\n this.name = this.originalName;\n };\n\n /** Сохранить наименование. */\n public save = () => {\n const observable = this.saveFn(this.textControl.value);\n\n if (observable) {\n this.isNameSaving = true;\n observable.subscribe({\n next: () => {\n this.isNameSaving = false;\n this.isEditMode = false;\n this.name = this.textControl.value;\n this.nameSaved.emit(this.name);\n },\n error: (error: Exception) => {\n this.isNameSaving = false;\n this.notification.error(error.message);\n },\n });\n } else {\n this.isEditMode = false;\n this.name = this.textControl.value;\n }\n };\n\n /** Перезагружает данные формы. */\n reload() {\n this.reloaded.emit();\n }\n\n ngOnInit() {\n if (this.hasName == null) {\n this.hasName = true;\n }\n\n this.panelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.panelService.setHasAutosave(this.hasAutosave);\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.panelService.setHasAutosave(false);\n }\n}\n","\n {{ cardName }}\n\n\n
    \n
    \n \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n\n \n
    \n","import { Injectable } from '@angular/core';\nimport { HeaderIndicator } from './header-indicator.model';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class FormHeaderService {\n private indicatorsSubject = new ReplaySubject();\n public indicators$ = this.indicatorsSubject.asObservable();\n\n public updateIndicators(headerIndicators: HeaderIndicator[]) {\n this.indicatorsSubject.next(headerIndicators);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n Optional,\n signal,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormControl, Validators } from '@angular/forms';\nimport { Title } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { HistoryService } from 'src/app/core/history.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { FormHeaderService } from './form-header.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Component({\n selector: 'tmt-form-header',\n templateUrl: './form-header2.component.html',\n styleUrls: ['./form-header2.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class FormHeader2Component implements OnInit {\n /** Indicates whether the name can be edited. */\n @Input() public isEditable: boolean;\n\n /** Name of page (form). */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this.title.setTitle(value);\n this.cardName = this.name ? this.name : ' ';\n if (value) {\n this.history.addHistory([value], this.navigation.getAppName());\n\n return;\n }\n }\n\n /** Indicates whether the form name exists */\n @Input() hasName: boolean;\n\n /** Function for performing name saving. */\n @Input() saveFn: (name: string) => Observable;\n\n public textControl = new UntypedFormControl('', [\n Validators.required,\n Validators.maxLength(Constants.formNameMaxLength),\n ]);\n public isNameSaving = signal(false);\n public isEditMode = signal(false);\n public cardName: string;\n\n private _name: string;\n private originalName: string;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Optional() public formHeaderService: FormHeaderService,\n private notification: NotificationService,\n private title: Title,\n private history: HistoryService,\n private navigation: NavigationService,\n ) {}\n\n public ngOnInit(): void {\n if (this.hasName == null) {\n this.hasName = true;\n }\n }\n\n /** Switching to the name editing mode. */\n public onClickHeader = (): void => {\n if (!this.isEditable) {\n return;\n }\n this.textControl.setValue(this.name);\n this.originalName = this.name;\n this.isEditMode.set(true);\n };\n\n /** Exit the name editing mode. */\n public cancel = (): void => {\n this.isEditMode.set(false);\n this.name = this.originalName;\n };\n\n /** Save name. */\n public save = (): void => {\n const observable = this.saveFn(this.textControl.value);\n\n if (observable) {\n this.isNameSaving.set(true);\n observable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: () => {\n this.isNameSaving.set(false);\n this.isEditMode.set(false);\n this.name = this.textControl.value;\n },\n error: (error: Exception) => {\n this.isNameSaving.set(false);\n this.notification.error(error.message);\n },\n });\n } else {\n this.isEditMode.set(false);\n this.name = this.textControl.value;\n }\n };\n}\n","
    \n @if (hasName) {\n
    \n {{ cardName }}\n
    \n }\n\n @if (isEditMode()) {\n
    \n
    \n \n
    \n \n {{ 'shared2.actions.save' | translate }}\n \n\n \n
    \n }\n
    \n\n@if (formHeaderService && formHeaderService.indicators$ | async) {\n
    \n @for (indicator of formHeaderService.indicators$ | async; track indicator) {\n
    \n
    {{ indicator.value }}
    \n
    {{ indicator.description | translate }}
    \n
    \n }\n
    \n}\n","import { Component, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n/** Компонента сообщения. */\n@Component({\n selector: 'wp-message',\n templateUrl: './message.component.html',\n standalone: false,\n})\nexport class MessageComponent {\n @Input() message: string;\n @Input() header: string;\n @Input() items: string[];\n @Input() buttonOk: string;\n @Input() buttonCancel: string;\n\n constructor(private activeModal: NgbActiveModal) {}\n\n ok() {\n this.activeModal.close();\n }\n\n cancel() {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    {{ header }}

    \n \n
    \n
    \n

    \n 0\">\n
      \n
    • {{ item }}
    • \n
    \n
    \n
    \n
    \n \n {{ buttonOk }}\n \n \n {{ buttonCancel }}\n \n
    \n
    \n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {\n IndicatorItem,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport {\n Navigation,\n NavigationGroup,\n NavigationItem,\n} from 'src/app/shared/models/navigation/navigation';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { WebSocketsService } from 'src/app/core/web-sockets.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport _ from 'lodash';\n\n/** Панель навигации. */\n@Component({\n selector: 'wp-navigation-panel',\n templateUrl: './navigation-panel.component.html',\n styleUrls: ['./navigation-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NavigationPanelComponent implements OnInit {\n public navigation: Navigation;\n public groups: NavigationGroup[];\n public filteredGroups: NavigationGroup[];\n public selectedNavigationItem: NavigationItem;\n public isNavPanelShown: boolean;\n public isNavPanelExpanded = false;\n public mode: 'default' | 'edit' = 'default';\n\n constructor(\n public chromeService: ChromeService,\n public navigationService: NavigationService,\n private webSocketsService: WebSocketsService,\n private dataService: DataService,\n private appService: AppService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.navigationService.initNavigationViews();\n\n this.navigationService.navigation$.subscribe((navigation: Navigation) => {\n this.navigation = navigation;\n this.groups = _.cloneDeep(navigation.groups);\n this.setFilteredGroups();\n });\n\n this.navigationService.indicatorUpdated$.subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.navigationService.navigationItem$.subscribe(\n (selectedNavigationItem: NavigationItem) => {\n this.selectedNavigationItem = selectedNavigationItem;\n this.isNavPanelExpanded = false;\n this.cdr.markForCheck();\n },\n );\n\n this.chromeService.compactMode$.subscribe(() => {\n this.updateState();\n });\n\n this.chromeService.permanentCompactMode$.subscribe(() => {\n this.cdr.markForCheck();\n });\n\n this.webSocketsService.connection$.subscribe((connection) => {\n connection.on('Indicator', (indicators: IndicatorItem[]) => {\n this.navigationService.propagateIndicators(indicators);\n });\n });\n\n this.dataService.model\n .function('GetIndicators')\n .get()\n .subscribe((data) => {\n this.navigationService.propagateIndicators(data);\n });\n }\n\n /**\n * Toggles panel mode.\n * `default` - like usual, just links.\n * `edit` - allows to edit item's visibility.\n */\n public toggleMode(): void {\n this.mode = this.mode === 'default' ? 'edit' : 'default';\n\n if (this.mode === 'default') {\n this.groups = this.navigationService.currentNavigation.groups;\n }\n\n this.setFilteredGroups();\n }\n\n /**\n * Toggles item's visibility.\n *\n * @param item Navigation Item.\n */\n public toggleItemVisible(item: NavigationItem): void {\n item.isVisible = !item.isVisible;\n }\n\n /** Saves updated navigation view. */\n public saveNewGroup(): void {\n this.mode = 'default';\n this.navigationService.saveNavigationView({\n ...this.navigation,\n groups: this.filteredGroups,\n });\n }\n\n /** Resets navigation view to default. */\n public resetToDefault(): void {\n this.navigationService.resetNavigationView({\n ...this.navigation,\n groups: this.filteredGroups,\n });\n }\n\n /** Развернуть панель. */\n public expandNavPanel(): void {\n this.isNavPanelExpanded = true;\n this.updateState();\n }\n\n /** Свернуть панель. */\n public collapseNavPanel(): void {\n this.isNavPanelExpanded = false;\n this.updateState();\n }\n\n public onClickItem(): void {\n this.collapseNavPanel();\n }\n\n public groupIsVisible(group: NavigationGroup): boolean {\n return (\n group.items?.filter(\n (item) =>\n !item.indicator ||\n this.navigationService.indicatorValues.get(\n item.indicator.eventName || item.name,\n ) > 0 ||\n this.navigationService.selectedNavigationItem?.name === item.name,\n )?.length > 0\n );\n }\n\n /** Обновить состояние (показывать или нет). */\n public updateState(): void {\n this.isNavPanelShown =\n this.isNavPanelExpanded || !this.chromeService.compactMode;\n\n if (!this.isNavPanelShown && this.mode === 'edit') {\n this.toggleMode();\n }\n\n this.cdr.markForCheck();\n }\n\n private isItemVisible(item: NavigationItem): boolean {\n if (item.allowedFn && !item.allowedFn(this.appService)) {\n return false;\n }\n\n item.isVisible ??= true;\n\n if (\n (item.entityType &&\n !this.appService.checkEntityPermission(\n item.entityType,\n PermissionType.Read,\n )) ||\n (!item.isVisible && this.mode === 'default')\n ) {\n return false;\n }\n\n return true;\n }\n\n private setFilteredGroups(): void {\n this.filteredGroups = _.cloneDeep(this.groups);\n this.filteredGroups.forEach((group) => {\n group.items.forEach((item) => {\n if (!item.stateParams) {\n item.stateParams = {};\n }\n item.stateParams.navigation = item.name;\n });\n\n group.items = group.items.filter((item) => this.isItemVisible(item));\n });\n\n this.cdr.markForCheck();\n }\n}\n","@if (isNavPanelShown) {\n \n @if (chromeService.compactMode) {\n \n ×\n \n }\n\n \n \n \n \n
    \n @for (group of filteredGroups; track $index) {\n
    \n @if (groupIsVisible(group)) {\n
    {{ group.header | translate }}
    \n
      \n @for (item of group.items; track $index) {\n @if (\n !item.indicator ||\n navigationService.indicatorValues.get(item.indicator.eventName || item.name) >\n 0 ||\n navigationService.selectedNavigationItem?.name === item.name\n ) {\n \n @if (mode === 'default') {\n \n
      \n {{ item.header | translate }}\n
      \n\n @if (\n item.indicator &&\n navigationService.indicatorValues.get(\n item.indicator.eventName || item.name\n ) > 0\n ) {\n
      \n {{\n navigationService.indicatorValues.get(\n item.indicator.eventName || item.name\n ) | number\n }}\n
      \n }\n \n }\n\n @if (mode === 'edit') {\n
      \n
      \n {{ item.header | translate }}\n
      \n \n
      \n }\n \n }\n }\n
    \n }\n
    \n }\n
    \n \n} @else {\n \n \n @if (selectedNavigationItem) {\n {{ selectedNavigationItem.header | translate }}\n }\n \n}\n\n\n @if (mode === 'default') {\n \n \n \n }\n\n @if (mode === 'edit') {\n \n \n \n \n \n \n \n \n \n }\n\n @if (!chromeService.permanentCompactMode) {\n \n \n \n }\n\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nimport { Subject, pipe } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n/** Сообщение \"Сущность не найдена\". */\n@Component({\n selector: 'tmt-not-found',\n templateUrl: './not-found.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NotFoundComponent implements OnInit, OnChanges, OnDestroy {\n @Input() public state: CardState;\n /** Get the `statusCode` if the request url contains this value */\n @Input() public urlMustContain: string | null = null;\n\n public statusCode: number;\n\n private destroyed$ = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private dataService: DataService,\n private actionPanelService: ActionPanelService,\n ) {}\n\n public ngOnInit(): void {\n this.dataService.requestStatus$\n .pipe(\n this.urlMustContain\n ? filter((v) => v.url.includes(this.urlMustContain))\n : pipe(),\n takeUntil(this.destroyed$),\n )\n .subscribe((v) => {\n this.statusCode = v.code;\n this.cdr.markForCheck();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['state']) {\n this.actionPanelService.setVisibility(this.state === CardState.Ready);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","

    \n {{ 'shared.entityNotFound.title' | translate }}
    \n {{ 'shared.entityNotFound.details' | translate }}\n

    \n","import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n QueryList,\n ViewChildren,\n ElementRef,\n} from '@angular/core';\nimport { NgbToast } from '@ng-bootstrap/ng-bootstrap';\n\nimport _isFunction from 'lodash/isFunction';\n\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n Notification,\n NotificationType,\n} from '../../../models/inner/notification.model';\n\n/** Отображение уведомления о событии. */\n@Component({\n selector: 'wp-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NotificationComponent {\n @ViewChildren(NgbToast)\n private toasts: QueryList;\n @ViewChildren(NgbToast, { read: ElementRef })\n private toastsRef: QueryList>;\n\n public notifications: Notification[] = [];\n public defaultByType: Record> = {\n info: {\n delay: 10000,\n icon: 'bi-info-circle',\n },\n error: {\n delay: 10000,\n icon: 'bi-dash-circle',\n keepShowOnHover: true,\n },\n success: {\n delay: 2000,\n icon: 'bi-check-circle',\n keepShowOnHover: true,\n },\n warning: {\n delay: 6000,\n icon: 'bi-exclamation-circle',\n keepShowOnHover: true,\n },\n };\n\n private listGap = 15;\n\n constructor(\n private cdr: ChangeDetectorRef,\n notificationService: NotificationService,\n ) {\n notificationService.created$.subscribe((notification: Notification) => {\n this.show(notification);\n });\n }\n\n /**\n * Show notification.\n *\n * @param notification Notification params.\n *\n * */\n public show(notification: Notification): void {\n for (const key in this.defaultByType[notification.type]) {\n if (notification[key] === undefined) {\n notification[key] = this.defaultByType[notification.type][key];\n }\n }\n\n this.notifications.push(notification);\n this.cdr.markForCheck();\n }\n\n /**\n * Close notification.\n *\n * @param notification Notification params.\n *\n * */\n public close(index: number): void {\n this.toasts.get(index)?.hide();\n this.cdr.markForCheck();\n }\n\n /**\n * Handler for the notification callback on a click event.\n *\n * @param notification Notification params.\n *\n * */\n public clickHandler(notification: Notification): void {\n if (_isFunction(notification.onClick)) {\n notification.onClick();\n this.close(this.notifications.indexOf(notification));\n }\n }\n\n /**\n * Set height of the notification on `shown` toast event\n *\n * @param index notification index.\n *\n * */\n public setHeight(index: number): void {\n this.notifications[index].height = this.toastsRef\n .get(index)\n .nativeElement.getBoundingClientRect().height;\n\n if (index) {\n this.notifications[index].position = this.notifications\n .slice(0, index)\n .reduce((result, item) => result + item.height + this.listGap, 0);\n } else {\n this.notifications[index].position = 0;\n }\n }\n\n /**\n * Remove the notification on `hidden` toast event\n *\n * @param index notification index.\n *\n * */\n public remove(index: number): void {\n const removedNotification = this.notifications[index];\n this.notifications.splice(index, 1);\n\n if (_isFunction(removedNotification.onClose)) {\n removedNotification.onClose();\n }\n\n for (let i = index; i < this.notifications.length; i++) {\n this.notifications[i].position -=\n removedNotification.height + this.listGap;\n }\n\n this.cdr.markForCheck();\n }\n\n /**\n * Notification does not close if user hover over it.\n *\n * @param event Mouse event.\n * @param index Notification index.\n *\n * */\n public hoverHandler(event: MouseEvent, index: number): void {\n if (this.notifications[index].keepShowOnHover) {\n this.notifications[index].autohide = event.type !== 'mouseenter';\n }\n }\n}\n","
    \n \n
    \n \n {{ notification.text }}\n \n
    \n \n
    \n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n NgZone,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { debounceTime } from 'rxjs';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n/** Application main route viewer. */\n@Component({\n selector: 'tmt-route-navigator',\n templateUrl: './route-navigator.component.html',\n styleUrls: ['./route-navigator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class RouteNavigatorComponent implements OnInit {\n public textLimit: number | undefined;\n\n private navbarId = 'navbar';\n private navbarTitleId = 'navbarTitle';\n private navbarLineId = 'navbarLine';\n private breadcrumbItemClass = 'breadcrumb-item';\n\n constructor(\n public navigationService: NavigationService,\n @Inject(DOCUMENT) private readonly document: Document,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private zone: NgZone,\n ) {}\n\n public ngOnInit(): void {\n this.navigationService.route$.pipe(debounceTime(0)).subscribe(() => {\n this.calculateWidth();\n });\n this.zone.runOutsideAngular(() => {\n this.renderer.listen(window, 'resize', () => this.calculateWidth());\n });\n }\n\n /**\n * Returns tooltip based on textLimit.\n *\n * @param title Breadcrumb title.\n *\n * @returns title or null.\n */\n public getTooltip(title: string): string | null {\n return title.length > this.textLimit ? title : null;\n }\n\n private calculateWidth(): void {\n this.textLimit = undefined;\n this.cdr.detectChanges();\n const navbarWidth = this.document.getElementById(this.navbarId).clientWidth;\n const navbarTitleWidth = this.document.getElementById(\n this.navbarTitleId,\n ).clientWidth;\n let navbarLineWidth = this.document.getElementById(\n this.navbarLineId,\n ).clientWidth;\n\n const targetWidth = navbarWidth - navbarTitleWidth;\n\n const elementsArray = Array.from(\n document.querySelectorAll(`.${this.breadcrumbItemClass}`),\n );\n const maxElementNameLength = Math.max(\n ...elementsArray.map((el) => el.innerText.length),\n );\n\n const checkFunction = (): void => {\n this.cdr.detectChanges();\n navbarLineWidth = this.document.getElementById(\n this.navbarLineId,\n ).clientWidth;\n };\n\n let textLimitLength = maxElementNameLength;\n\n while (navbarLineWidth > targetWidth) {\n const lastNavbarLineWidth = navbarLineWidth;\n textLimitLength--;\n this.textLimit = textLimitLength;\n checkFunction();\n if (lastNavbarLineWidth === navbarLineWidth) {\n return;\n }\n }\n }\n}\n","
      \n
    1. \n @for (breadCrumb of navigationService.route$ | async; track breadCrumb; let last = $last) {\n
    2. \n @if (breadCrumb.state && !last) {\n {{ breadCrumb.title | truncate: textLimit }}\n }\n @if (!breadCrumb.state || last) {\n {{\n breadCrumb.title | truncate: textLimit\n }}\n }\n
    3. \n }\n
    \n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n signal,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { LogService } from 'src/app/core/log.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../../shared.module';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridUserControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-co-managers-modal',\n templateUrl: './co-managers-modal.component.html',\n imports: [CommonModule, SharedModule, GridModule],\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CoManagersModalComponent implements OnInit {\n @Input() readonly: boolean;\n @Input() entityId: string;\n @Input() manager: NamedEntity;\n @Input() type: 'resourcePool' | 'project' | 'program';\n\n public isSaving = signal(false);\n public isLoading = signal(true);\n\n public formArray = this.fb.array([]);\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.formArray.removeAt(index);\n this.formArray.markAsDirty();\n },\n },\n ],\n view: {\n name: 'managers',\n columns: [\n {\n name: 'user',\n header: 'shared.coManagersForm.coManager',\n hint: 'shared.coManagersForm.coManager',\n type: GridColumnType.UserControl,\n width: '100%',\n placeholder: 'shared.coManagersForm.manager',\n query: () => ({ filter: this.getUserQuery() }),\n },\n ],\n },\n };\n\n private coManagersCollection: string;\n private foreignKey: string;\n private rootEntityCollection: string;\n private action: string;\n\n constructor(\n private log: LogService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private activeModal: NgbActiveModal,\n private gridService: GridService,\n ) {}\n\n public ngOnInit(): void {\n switch (this.type) {\n case 'project':\n this.coManagersCollection = 'ProjectCoManagers';\n this.foreignKey = 'projectId';\n this.rootEntityCollection = 'Projects';\n this.action = 'UpdateCoManagers';\n break;\n case 'program':\n this.coManagersCollection = 'ProgramCoManagers';\n this.foreignKey = 'programId';\n this.rootEntityCollection = 'Programs';\n this.action = 'UpdateCoManagers';\n break;\n case 'resourcePool':\n this.coManagersCollection = 'ResourcePoolCoManagers';\n this.foreignKey = 'resourcePoolId';\n this.rootEntityCollection = 'ResourcePools';\n this.action = 'UpdateResourcePoolCoManagers';\n break;\n }\n\n this.load();\n }\n\n /** Saves data and closes modal. */\n public ok(): void {\n this.formArray.markAllAsTouched();\n this.gridService.detectChanges();\n if (this.formArray.valid) {\n this.isSaving.set(true);\n\n const data = { coManagers: [] };\n\n (this.formArray.value as any[]).forEach((row) => {\n const cm: any = { userId: row.user.id };\n cm[this.foreignKey] = this.entityId;\n data.coManagers.push(cm);\n });\n\n this.data\n .collection(this.rootEntityCollection)\n .entity(this.entityId)\n .action(this.action)\n .execute(data)\n .subscribe({\n next: () => {\n this.isSaving.set(false);\n this.notification.successLocal('shared.coManagersForm.saved');\n this.activeModal.close();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.isSaving.set(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n /** Closes modal and dismisses changes. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /** Adds line of co-managers. */\n public addLine(): void {\n const group = this.fb.group({\n id: [Guid.generate()],\n user: [null, Validators.required],\n });\n this.formArray.push(group);\n this.gridService.selectGroup(group);\n }\n\n private load(): void {\n this.isLoading.set(true);\n this.log.debug('Loading co-managers list...');\n\n const query = {\n expand: [{ user: { select: ['id', 'name'] } }],\n };\n\n this.data\n .collection(this.rootEntityCollection)\n .entity(this.entityId)\n .collection('CoManagers')\n .query(query)\n .subscribe({\n next: (data) => {\n data.forEach((row) => {\n this.formArray.push(\n this.fb.group({\n id: [row.id],\n user: [row.user, Validators.required],\n }),\n );\n });\n\n this.isLoading.set(false);\n\n //TODO: switch to [readonly] in tmt-grid after DEV-2405\n if (this.readonly) {\n this.formArray.disable();\n } else {\n this.formArray.enable();\n }\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.isLoading.set(false);\n },\n });\n }\n\n private getUserQuery(): Record[] {\n const filter: Record[] = [];\n filter.push({ id: { ne: { type: 'guid', value: this.manager.id } } });\n\n (this.formArray.value as any[]).forEach((row) => {\n if (row.user) {\n filter.push({ id: { ne: { type: 'guid', value: row.user.id } } });\n }\n });\n return filter;\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'shared.coManagersForm.header' | translate }}\n

    \n\n \n
    \n
    \n
    \n \n \n {{ manager.name }}\n
    \n
    \n
    \n\n
    \n @if (!readonly) {\n \n \n {{ 'shared.actions.addLine' | translate }}\n \n }\n
    \n \n \n\n
    \n @if (!readonly) {\n \n {{ 'shared.actions.save' | translate }}\n \n }\n \n
    \n\n","import {\n AfterViewInit,\n DestroyRef,\n Directive,\n inject,\n Injector,\n Input,\n} from '@angular/core';\nimport { AbstractControl, FormControl, NgControl } from '@angular/forms';\n\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n/** Abstract class for custom controls. */\n@Directive({\n standalone: false,\n})\nexport class AbstractBox implements AfterViewInit {\n /** Value change propagation mode. */\n @Input() public propagationMode: PropagationMode = PropagationMode.onInput;\n\n protected ngControl: AbstractControl | null;\n protected readonly injector = inject(Injector);\n protected readonly destroyRef = inject(DestroyRef);\n\n public ngAfterViewInit(): void {\n const ngControl: NgControl = this.injector.get(NgControl, null);\n\n if (ngControl) {\n this.ngControl = ngControl.control as FormControl;\n }\n }\n\n public toggleControlDirty(previousValue: string, newValue: string): void {\n if (!this.ngControl) {\n return;\n }\n\n if (previousValue !== newValue) {\n this.ngControl.markAsDirty();\n } else {\n this.ngControl.markAsPristine();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Component({\n selector: 'tmt-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, AfterViewInit {\n @Input() control: UntypedFormControl;\n @Input() label = '';\n @Input() reversed = false;\n @Input() readonly = false;\n @Input() autofocus?: boolean;\n @Input() initialValue?: unknown;\n\n @ViewChild('input') input;\n @HostBinding('class') get hostClasses(): string {\n return this.label ? 'form-check' : 'no-label';\n }\n\n public id = Guid.generate();\n public value = false;\n public disabled = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /** Handles the change event for the checkbox and propagates the updated value. */\n public onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.value = target.checked;\n this.propagateChange(this.checkReversed(this.value));\n }\n\n public ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.input.nativeElement?.focus();\n }\n if (this.initialValue === ' ') {\n this.control.setValue(!this.control.value);\n this.cdr.detectChanges();\n }\n }\n\n public propagateChange = (value: boolean) => null;\n public propagateTouch = () => null;\n\n public writeValue(value: boolean): void {\n this.value = this.checkReversed(value);\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n /** Updates the disabled state of the form control without emitting events. */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n /** Adjusts the value based on the 'reversed' flag. */\n private checkReversed(value: boolean): boolean {\n return this.reversed ? !value : value;\n }\n}\n","@if (!readonly) {\n \n \n}\n@if (readonly && value) {\n \n}\n","import {\n Component,\n forwardRef,\n ElementRef,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterViewInit,\n signal,\n input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { basicSetup, EditorView } from 'codemirror';\nimport { Compartment, EditorState } from '@codemirror/state';\nimport { StreamLanguage, StreamParser } from '@codemirror/language';\nimport { keymap, placeholder } from '@codemirror/view';\nimport { indentWithTab } from '@codemirror/commands';\nimport { csharp } from '@codemirror/legacy-modes/mode/clike';\nimport { javascript } from '@codemirror/legacy-modes/mode/javascript';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'tmt-code-editor-box',\n templateUrl: './code-editor-box.component.html',\n styleUrls: ['./code-editor-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditorBoxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CodeEditorBoxComponent\n extends AbstractBox\n implements ControlValueAccessor, AfterViewInit, OnDestroy\n{\n public placeholder = input('');\n public language = input<'csharp' | 'javascript'>('csharp');\n public readonly = signal(false);\n public langsObject: Record<\n string,\n { parser: StreamParser; iconClass: string }\n > = {\n csharp: {\n parser: csharp,\n iconClass: 'bi bi-filetype-cs',\n },\n javascript: {\n parser: javascript,\n iconClass: 'bi bi-filetype-js',\n },\n };\n\n private view: EditorView;\n private value = signal('');\n private keyboardSubscription: Subscription;\n private compartment = new Compartment();\n\n constructor(\n private el: ElementRef,\n private translateService: TranslateService,\n ) {\n super();\n }\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.view = new EditorView({\n parent: this.el.nativeElement.querySelector('.code-editor-container'),\n state: EditorState.create({\n doc: this.value() ?? '',\n extensions: [\n EditorView.updateListener.of((e) => {\n if (e.docChanged) {\n const value = e.state.doc.toString().trim();\n\n if (this.propagationMode === PropagationMode.onInput) {\n this.value.set(value);\n this.propagateChange(this.value());\n this.ngControl.markAsTouched();\n }\n\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.value() !== value\n ) {\n this.ngControl.markAsDirty();\n }\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.onFocus(),\n blur: () => this.onBlur(),\n }),\n basicSetup,\n this.compartment.of([\n placeholder(\n this.readonly()\n ? this.translateService.instant('shared2.props.empty')\n : this.placeholder(),\n ),\n EditorState.readOnly.of(this.readonly()),\n EditorView.editable.of(!this.readonly()),\n ]),\n StreamLanguage.define(this.langsObject[this.language()].parser),\n keymap.of([indentWithTab]),\n ],\n }),\n });\n }\n\n public ngOnDestroy(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.onBlur();\n }\n\n this.keyboardSubscription?.unsubscribe();\n this.view.destroy();\n }\n\n public propagateChange = (_: any) => null;\n public propagateTouch = () => null;\n\n public writeValue(value: string | null): void {\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.value() !== value\n ) {\n return;\n }\n this.value.set(value ?? '');\n this.view?.dispatch(\n this.view.state.update({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: this.value(),\n },\n }),\n );\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n /**\n * Sets disabled state.\n *\n * @param isDisabled disable state flag.\n */\n public setDisabledState(isDisabled: boolean): void {\n this.readonly.set(isDisabled);\n this.view?.dispatch({\n effects: [\n this.compartment?.reconfigure([\n placeholder(\n !isDisabled\n ? this.placeholder()\n : this.translateService.instant('shared2.props.empty'),\n ),\n EditorState.readOnly.of(isDisabled),\n EditorView.editable.of(!isDisabled),\n ]),\n ],\n });\n }\n\n /** Handles editor focus logic. */\n private onFocus(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.initKeysSubscribes();\n }\n }\n\n /** Handles editor blur logic. */\n private onBlur(): void {\n this.propagateTouch();\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n const value = this.view.state.doc.toString().trim();\n if (this.value() !== value) {\n this.value.set(value);\n this.propagateChange(value);\n }\n this.keyboardSubscription?.unsubscribe();\n }\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.keyboardSubscription = fromEvent(window, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n switch (event.code) {\n case 'Escape':\n this.view?.dispatch(\n this.view.state.update({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: this.value(),\n },\n }),\n );\n break;\n }\n }\n return;\n },\n );\n }\n}\n","
    \n @if (!readonly()) {\n \n }\n
    \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n LOCALE_ID,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n ViewRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n CurrencyPipe,\n DecimalPipe,\n getCurrencySymbol,\n getLocaleNumberSymbol,\n NumberSymbol,\n} from '@angular/common';\nimport { round } from 'lodash';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\nimport { CurrencyValue } from 'src/app/shared/models/entities/settings/currency-value.model';\nimport { CurrenciesService } from 'src/app/shared/services/currencies.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { createPopper, Instance } from '@popperjs/core';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\n\n/** Контрол ввода валюты. */\n@Component({\n selector: 'wp-currency-box',\n templateUrl: './currency-box.component.html',\n styleUrls: ['./currency-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CurrencyBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CurrencyBoxComponent\n implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy\n{\n /** Заменитель пустого текста. */\n @Input() placeholder: string;\n\n /** Допускать пустые значения. */\n @Input() allowNull = true;\n\n /** Символьный код валюты. */\n @Input() currencyCode?;\n\n /** Заблокировать изменение валюты. */\n @Input() isCurrencyEditable = true;\n\n /** Только чтение. */\n @Input() readonly = false;\n\n /** Select the input value after rendering. */\n @Input() autofocus?: boolean;\n\n /** Значение для отображение (без фокуса если). */\n @Input() set viewValue(value: number) {\n this._viewValue = value;\n if (!this.isFocused) {\n this.setInputValue();\n }\n }\n get viewValue(): number {\n return this._viewValue;\n }\n\n /** Минимально допустимое значение. */\n @Input() get min(): number {\n return this._min;\n }\n set min(value: number) {\n if (!isNaN(value)) {\n this._min = value;\n }\n }\n\n /** Максимально допустимое значение. */\n @Input() get max(): number {\n return this._max;\n }\n set max(value: number) {\n if (!isNaN(value)) {\n this._max = value;\n }\n }\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n @ViewChild('expandingArea') expandingArea: ElementRef;\n @ViewChild('currencyBoxContainer') currencyBoxContainer: ElementRef;\n @ViewChild('currency') currencyEl: ElementRef;\n\n private popperInstance: Instance;\n private _editor: ElementRef;\n @ViewChild('editor')\n set editor(value: ElementRef) {\n if (!this._editor) {\n this._editor = value;\n this.input.value = this.getDisplayValue();\n } else {\n this._editor = value;\n }\n }\n get editor(): ElementRef {\n return this._editor;\n }\n\n private get input() {\n if (this.readonly) {\n return null;\n }\n return this.editor.nativeElement as HTMLInputElement;\n }\n\n constructor(\n private app: AppService,\n @Inject(LOCALE_ID) public locale: string,\n public wpCurrencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n private ref: ChangeDetectorRef,\n private currencyPipe: CurrencyPipe,\n private service: CurrenciesService,\n private notification: NotificationService,\n private renderer: Renderer2,\n ) {\n this.decimalSeparator = getLocaleNumberSymbol(locale, NumberSymbol.Decimal);\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.input.select();\n }\n\n this.applyInitialValue();\n }\n\n /** Apply initial value after rendering. */\n private applyInitialValue() {\n if (this.initialValue === undefined) {\n return;\n }\n if (this.input) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.input.value = this.initialValue;\n this.input.focus();\n this.input.dispatchEvent(event);\n } else if (this.initialValue === null) {\n this.input.value = '';\n this.input.focus();\n this.input.dispatchEvent(event);\n }\n }\n this.initialValue = undefined;\n }\n\n private destroyed$ = new Subject();\n\n /**Доступные валюты. */\n currencies: Currency[] = [];\n\n private _viewValue: number | null = null;\n previousViewValue: string;\n listOpened = false;\n isLoading = false;\n\n private _min = 0;\n\n private _max = 9999999999;\n\n /** Дефолтное значение контрола. */\n private defaultValue: CurrencyValue = {\n value: null,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n };\n private _value: CurrencyValue = this.defaultValue;\n set value(obj: CurrencyValue) {\n this._value = obj ? obj : this.defaultValue;\n }\n get value(): CurrencyValue {\n return this._value;\n }\n\n private decimalSeparator: string;\n private isFocused: boolean;\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n writeValue(value: CurrencyValue): void {\n this.value = value;\n this.ref.detectChanges();\n this.setInputValue();\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n /** Вернуть строку, которую пользователь будет редактировать в контроле. */\n private getStringForEditing() {\n const template = '1.2-2';\n return this.value.value != null\n ? this.numberPipe\n .transform(this.value.value, template)\n .replace(/\\s+/g, '')\n : '';\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.ref.detectChanges();\n }\n\n setInputValue() {\n if (!this.editor || !this.input) {\n return;\n }\n if (this.isFocused) {\n this.input.value = this.getStringForEditing();\n } else {\n this.input.value = this.getDisplayValue();\n }\n this.ref.detectChanges();\n }\n\n onBlur() {\n this.propagateTouch();\n this.input.value = this.getDisplayValue();\n this.isFocused = false;\n }\n\n onFocus() {\n this.isFocused = true;\n this.input.value = this.getStringForEditing();\n this.previousViewValue = this.input.value;\n this.input.select();\n this.setInputValue();\n }\n\n /** Обновить значение разобрав отображаемое значение. */\n updateValueFromDisplayValue() {\n const roundPrecision = 2;\n\n let value = 0;\n let displayValue: string = this.input.value;\n\n if (displayValue || displayValue === '0') {\n displayValue = String(displayValue).replace(this.decimalSeparator, '.');\n\n if (displayValue.indexOf('.') === displayValue.length - 1) {\n displayValue = displayValue.substring(0, displayValue.length - 1);\n }\n\n // Получаем число.\n const floatValue = parseFloat(displayValue);\n if (!isNaN(floatValue)) {\n value = round(floatValue, roundPrecision);\n\n if (value > this.max) {\n value = this.max;\n }\n\n if (value < this.min) {\n value = this.min;\n }\n }\n } else {\n if (this.allowNull) {\n value = null;\n } else {\n // Sets value nearest to zero.\n if (this.min < 0) {\n if (this.max > 0) {\n value = 0;\n } else {\n value = this.max;\n }\n } else {\n value = this.min;\n }\n }\n }\n\n if (this.value.value !== value) {\n this.value.value = value;\n this.propagateChange(this.value);\n }\n }\n\n /** Возвращает отображаемый текст. */\n getDisplayValue = () => {\n const value = this.viewValue === null ? this.value.value : this.viewValue;\n return this.getFormattedValue(value);\n };\n\n private getFormattedValue(value: number): string {\n if (!value && value !== 0) {\n return '';\n }\n if (this.readonly) {\n return this.currencyPipe.transform(\n value,\n this.value.currencyCode,\n 'symbol-narrow',\n );\n } else {\n return this.numberPipe.transform(value, '1.2-2');\n }\n }\n\n private parseCurrencyString(value: string): string {\n // AXT-338. Convert to number.\n const trimmedValue = value.replace(/[^-,.\\d]/gm, '');\n return trimmedValue;\n }\n\n handleInput() {\n const selectionStart = this.input.selectionStart;\n const selectionEnd = this.input.selectionEnd;\n let value = this.input.value;\n value = this.parseCurrencyString(value);\n\n const separators = [' ', '.', ','];\n\n separators\n .filter((x) => x !== this.decimalSeparator)\n .forEach((separator: string) => {\n const newValue =\n value.indexOf(this.decimalSeparator) === -1\n ? this.decimalSeparator\n : '';\n value = value.replace(separator, newValue);\n });\n\n const normalizedString: string = String(value).replace(\n this.decimalSeparator,\n '.',\n );\n if (isNaN(Number(normalizedString))) {\n value = this.previousViewValue;\n }\n\n if (value !== this.input.value) {\n this.input.value = value;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n if (normalizedString === '-') {\n value = '';\n this.input.value = normalizedString;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n this.previousViewValue = this.input.value;\n\n this.updateValueFromDisplayValue();\n }\n\n /** Обновление отступа в интпуте в зависимости от ширины символа валюты. */\n getInputRightPadding() {\n return this.currencyEl?.nativeElement.offsetWidth > 0\n ? this.currencyEl?.nativeElement.offsetWidth * 0.06 + 0.982\n : 1.462;\n }\n\n mousedownOnRow(event) {\n event.preventDefault();\n }\n\n clickRow(row: Currency) {\n this.changeCurrency(row);\n this.closeList();\n this.ref.detectChanges();\n }\n\n closeList() {\n this.listOpened = false;\n this.propagateTouch();\n }\n\n /** Изменить значение и если оно отличается - передать в форму. */\n private changeCurrency(currency: Currency) {\n if (this._value.currencyCode !== currency.alpha3Code) {\n this.value.currencyCode = currency.alpha3Code;\n this.propagateChange(this.value);\n this.ref.detectChanges();\n }\n }\n\n openList() {\n if (!this.isCurrencyEditable) {\n return;\n }\n if (this.currencies.length === 0) {\n this.getCurrencies();\n }\n if (this.listOpened) {\n this.closeList();\n return;\n }\n this.listOpened = true;\n this.ref.detectChanges();\n this.popperInstance = createPopper(\n this.currencyBoxContainer.nativeElement,\n this.expandingArea.nativeElement,\n {\n strategy: 'fixed',\n placement: 'bottom-end',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 5],\n },\n },\n ],\n },\n );\n\n this.show();\n }\n\n private show() {\n // Make the popper visible\n this.renderer.setAttribute(\n this.expandingArea.nativeElement,\n 'data-show',\n '',\n );\n\n // Update its position\n this.popperInstance.update();\n }\n\n private getCurrencies() {\n this.isLoading = true;\n this.service.currencies$.pipe(takeUntil(this.destroyed$)).subscribe({\n next: (res: Currency[]) => {\n this.currencies = res.filter((currency) => currency.isActive);\n this.isLoading = false;\n this.ref.detectChanges();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.ref.detectChanges();\n this.notification.error(error.message);\n },\n });\n }\n\n /** Возвращает символ по коду валюты. */\n getNarrowCurrencySymbol = (code: string) =>\n getCurrencySymbol(code, 'narrow', this.locale);\n\n /** Возвращает символ по коду валюты. */\n getWideCurrencySymbol = (code: string) =>\n getCurrencySymbol(code, 'wide', this.locale);\n\n ngOnInit(): void {\n this.value.currencyCode =\n this.currencyCode ?? this.app.session.configuration.baseCurrencyCode;\n if (this.placeholder == null) {\n this.placeholder = this.getFormattedValue(0);\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n \n {{ getNarrowCurrencySymbol(value.currencyCode) }}\n
    \n\n

    \n {{ getDisplayValue() }}\n

    \n

    \n {{ 'shared.empty' | translate }}\n

    \n\n\n \n\n \n

    {{ 'shared.noOptions' | translate }}

    \n \n \n \n \n \n \n \n
    {{ getWideCurrencySymbol(currency.alpha3Code) }}
    \n\n","import { Injectable } from '@angular/core';\nimport { NgbCalendarGregorian, NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { DateTime } from 'luxon';\nimport { AppService } from 'src/app/core/app.service';\n\n@Injectable()\n/**The service overrides getToday to show the current day based on the user's time zone. */\nexport class CustomNgbCalendarService extends NgbCalendarGregorian {\n constructor(private appService: AppService) {\n super();\n }\n\n public override getToday(): NgbDate {\n const { day, month, year } = DateTime.now()\n .toUTC()\n .setZone(this.appService.session.timeZone);\n\n return new NgbDate(year, month, day);\n }\n}\n","import {\n AfterViewInit,\n Component,\n forwardRef,\n Input,\n OnDestroy,\n ViewChild,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n Inject,\n LOCALE_ID,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport {\n NgbCalendar,\n NgbDateParserFormatter,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { WpParserFormatter } from './wp-parser-formatter';\nimport { DatePipe } from '@angular/common';\nimport { DateTime, Interval } from 'luxon';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { customPopperOptions } from '../../../helpers/modern-grid.helper';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { NgbDateTimeStruct } from 'src/app/shared/components/controls/date-box/date-box.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { CustomNgbCalendarService } from 'src/app/shared/components/controls/date-box/customNgbCalendar.service';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\n\n/** Контрол ввода даты. */\n@Component({\n selector: 'wp-date-box',\n templateUrl: './date-box.component.html',\n styleUrls: ['./date-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateBoxComponent),\n multi: true,\n },\n { provide: NgbDateParserFormatter, useClass: WpParserFormatter },\n //** Required to adjust the current date by session time zone.*/\n { provide: NgbCalendar, useClass: CustomNgbCalendarService },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n standalone: false,\n})\nexport class DateBoxComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges\n{\n /** Можно стирать значение. */\n @Input() allowNull = true;\n @Input() readonly: boolean;\n\n @Input() excludePeriod: Interval;\n @Input() autofocus?: boolean;\n\n /** Callback function for checking if date must be disabled. */\n @Input() checkIsDisabled?: (date: DateTime) => boolean;\n\n /** Callback function for checking if date must be highlighted. */\n @Input() checkIsHighlighted?: (date: DateTime) => boolean;\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n @HostBinding('class.date-time-width')\n @Input()\n includeTime?: boolean;\n\n @ViewChild('d') datePicker;\n @ViewChild('dropdownMenu') dropdownMenu;\n\n public dateControl = new UntypedFormControl(null);\n public value: string = null;\n public disabled = false;\n public timeOptions: string[] = [];\n public time: DateTime = DateTime.now().set({ hour: 0, minute: 0 });\n public placeholder: string;\n\n /** Indicates is emitting of control value blocked. */\n private isEmittingBlocked: boolean;\n\n /** Last input value which was before focusing on the input. */\n private controlValueBeforeFocusing: NgbDateTimeStruct | null;\n private keyboardSubscription: Subscription;\n private destroyed$ = new Subject();\n\n constructor(\n private datePipe: DatePipe,\n private cdr: ChangeDetectorRef,\n private app: AppService,\n private scrollToService: ScrollToService,\n @Inject(LOCALE_ID) private locale: string,\n ) {\n this.dateControl.valueChanges\n .pipe(\n filter(() => !this.isEmittingBlocked),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n const newValue = this.getValueFromControl();\n if (!this.allowNull && newValue === null) {\n return;\n }\n if (this.value !== newValue) {\n this.value = this.includeTime\n ? DateTime.fromISO(newValue).toUTC().toISO()\n : DateTime.fromISO(newValue).toISODate();\n this.propagateChange(this.value);\n }\n\n // Needs if input view value is not equal to real value\n this.datePicker._elRef.nativeElement.value = this.getTitle();\n });\n\n this.generateTimeOptions();\n }\n\n public ngOnInit() {\n this.placeholder = this.datePipe.transform(\n DateTime.local().startOf('year').toISODate(),\n this.includeTime ? 'short' : 'shortDate',\n );\n }\n\n public ngAfterViewInit(): void {\n if (this.autofocus && this.datePicker) {\n this.datePicker._elRef?.nativeElement?.select();\n }\n\n this.applyInitialValue();\n\n if (this.readonly) {\n this.disabled = this.readonly;\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['readonly']) {\n this.disabled = this.readonly;\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n }\n\n public popperOptions = customPopperOptions;\n\n /** Writes a value to the component, updating the internal date control.*/\n public writeValue(value: string): void {\n if (this.isEmittingBlocked) {\n return;\n }\n\n if (!value) {\n this.dateControl.setValue(null, { emitEvent: false });\n } else {\n const mDate = DateTime.fromISO(value);\n const ngbDate = {\n day: mDate.day,\n month: mDate.month,\n year: mDate.year,\n hour: mDate.hour,\n minute: mDate.minute,\n };\n this.time = this.time.set({ hour: mDate.hour, minute: mDate.minute });\n this.dateControl.setValue(ngbDate, { emitEvent: false });\n }\n\n this.value = this.getValueFromControl();\n this.dateControl.markAsPristine();\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n /** Input onFocus logic.*/\n public onFocus(): void {\n this.isEmittingBlocked = true;\n this.controlValueBeforeFocusing = this.dateControl.value;\n this.initKeysSubscribes();\n }\n\n /** Sets disabled state of the component. */\n public setDisabledState?(isDisabled: boolean): void {\n if (!this.readonly) {\n this.disabled = isDisabled;\n }\n this.cdr.markForCheck();\n }\n\n /** Updates the time after selecting it from the list.*/\n public updateTime(time: string): void {\n const time24 = this.to24HourFormat(time);\n const [hour, minute] = time24.split(':');\n this.time = this.time.set({ hour: +hour, minute: +minute });\n const now = DateTime.now();\n\n if (!this.value) {\n this.dateControl.setValue(\n {\n year: now.year,\n month: now.month,\n day: now.day,\n },\n { emitEvent: false },\n );\n }\n this.dateControl.updateValueAndValidity();\n }\n\n /** Closes the date selection widget.*/\n public closePopper(): void {\n this.datePicker.close();\n }\n\n /** Input onBlur logic.*/\n public onBlur(): void {\n this.controlValueBeforeFocusing = null;\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.isEmittingBlocked = false;\n this.dateControl.updateValueAndValidity();\n this.propagateTouch();\n\n const currValue = this.getValueFromControl();\n if (!this.allowNull && currValue === null) {\n this.writeValue(this.value);\n }\n\n const currDateTime = DateTime.fromISO(currValue);\n const currNgbDate = this.dateTimeToNgbDate(currDateTime);\n if (\n currDateTime.isValid &&\n this.checkIsExcludedByPeriod(currNgbDate) &&\n !this.readonly\n ) {\n if (\n this.excludePeriod &&\n +this.excludePeriod.start < +currDateTime &&\n +currDateTime < +this.excludePeriod.end\n ) {\n const includedDate = this.excludePeriod.end.plus({ days: 1 });\n this.dateControl.setValue(this.dateTimeToNgbDate(includedDate));\n }\n }\n }\n\n /** Gets the title from control.*/\n public getTitle(): string {\n if (!this.value) {\n return '';\n }\n\n return this.datePipe.transform(\n new Date(this.value),\n this.includeTime ? 'short' : 'shortDate',\n this.app.session.timeZoneOffset,\n );\n }\n\n /** Indicates is date needs to exclude by period.\n *\n * @param date checking date\n * @returns is date needs to exclude\n */\n public checkIsExcludedByPeriod(date: NgbDateTimeStruct): boolean {\n let excludedByPeriod = false;\n\n const currDate = DateTime.fromObject(date);\n\n if (this.excludePeriod) {\n const periodStart = this.excludePeriod.start;\n const periodEnd = this.excludePeriod.end;\n excludedByPeriod =\n (+currDate > +periodStart && +currDate < +periodEnd) ||\n +currDate === +periodStart ||\n +currDate === +periodEnd;\n }\n\n return excludedByPeriod;\n }\n\n /**\n * Scrolls the dropdown menu to the element with ID 'time-09-00' if the menu is open.\n *\n * @param isOpen - Indicates whether the dropdown menu is open.\n */\n public scrollToMiddle(isOpen: boolean): void {\n if (!isOpen) return;\n\n this.cdr.detectChanges();\n this.scrollToService.scrollTo(\n 'time-09-00',\n this.dropdownMenu.nativeElement,\n );\n }\n\n /** Disables date in the date-picker.\n *\n * @param date checking date\n * @returns isDisable\n */\n protected markDisabled = (date: NgbDateTimeStruct): boolean => {\n const excluded = this.checkIsExcludedByPeriod(date);\n const luxonDate = DateTime.fromObject(date);\n let excludedByFunc = false;\n if (this.checkIsDisabled) {\n excludedByFunc = this.checkIsDisabled(luxonDate);\n }\n return excluded || excludedByFunc;\n };\n\n /** Highlights date in the date-picker.\n *\n * @param date checking date\n * @returns isHighlight\n */\n protected markHighlighted = (date: NgbDateTimeStruct): boolean => {\n if (this.checkIsHighlighted) {\n const luxonDate = DateTime.fromObject(date);\n return this.checkIsHighlighted(luxonDate);\n }\n return false;\n };\n\n /** Apply initial value after rendering. */\n private applyInitialValue(): void {\n if (this.initialValue === undefined) {\n return;\n }\n if (this.datePicker?._elRef?.nativeElement) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.datePicker._elRef.nativeElement.value = this.initialValue;\n this.datePicker._elRef.nativeElement.dispatchEvent(event);\n } else if (this.initialValue === null) {\n this.datePicker._elRef.nativeElement.value = '';\n this.datePicker._elRef.nativeElement.dispatchEvent(event);\n }\n }\n this.initialValue = undefined;\n }\n\n private propagateChange = (_: string) => null;\n\n private propagateTouch = () => null;\n\n private getValueFromControl(): string {\n let newValue: string;\n if (!this.dateControl.value || typeof this.dateControl.value === 'string') {\n newValue = null;\n } else {\n const mDate = DateTime.fromObject({\n year: this.dateControl.value.year,\n month: this.dateControl.value.month,\n day: this.dateControl.value.day,\n hour: this.time?.hour || 0,\n minute: this.time?.minute || 0,\n });\n if (!mDate.isValid) return null;\n newValue = mDate.toISO();\n }\n return newValue;\n }\n\n private dateTimeToNgbDate(date: DateTime): NgbDateTimeStruct {\n return {\n day: date.day,\n month: date.month,\n year: date.year,\n hour: date.hour,\n minute: date.minute,\n };\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.keyboardSubscription = fromEvent(window, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n if (this.isEmittingBlocked) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter': {\n this.isEmittingBlocked = false;\n this.dateControl.updateValueAndValidity();\n\n // For showing previous control value in case of invalid incoming value\n if (!this.allowNull && this.getValueFromControl() === null) {\n this.writeValue(this.value);\n }\n\n this.isEmittingBlocked = true;\n break;\n }\n case 'Escape':\n this.isEmittingBlocked = false;\n this.dateControl.setValue(this.controlValueBeforeFocusing);\n this.onBlur();\n break;\n }\n }\n }\n return;\n },\n );\n }\n\n // Generates an array of time options in 30-minute intervals, formatted based on the locale (12-hour or 24-hour).\n private generateTimeOptions(): void {\n this.timeOptions = Array.from({ length: 48 }, (_, i) => {\n const hour = Math.floor(i / 2);\n const minute = (i % 2) * 30;\n\n if (this.locale === 'en') {\n const hour12 = hour % 12 === 0 ? 12 : hour % 12;\n const period = hour < 12 ? 'AM' : 'PM';\n return `${hour12.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')} ${period}`;\n }\n\n return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n });\n }\n\n // Converts 12-hour time format (AM/PM) to 24-hour format.\n private to24HourFormat(time: string): string {\n if (!/AM|PM/.test(time)) return time;\n\n // Separate time string to hour, minutes and period.\n const [timePart, period] = time.split(' ');\n const [hourStr, minuteStr] = timePart.split(':');\n let hour = +hourStr;\n\n // Align minutes to 2-symbols format\n const minute = minuteStr.padStart(2, '0');\n\n // Take into account post meridiem time and midnight hours time\n if (period === 'PM' && hour !== 12) hour += 12;\n if (period === 'AM' && hour === 12) hour = 0;\n\n return `${hour.toString().padStart(2, '0')}:${minute}`;\n }\n}\n","@if (!disabled) {\n
    \n \n\n \n \n \n\n @if (includeTime) {\n \n \n \n \n @for (time of timeOptions; track time) {\n \n }\n
    \n }\n \n}\n\n@if (disabled && value) {\n

    \n {{ getTitle() }}\n

    \n}\n\n@if (disabled && !value) {\n

    \n {{ 'shared.empty' | translate }}\n

    \n}\n\n\n \n {{ date.day }}\n \n\n","import {\n NgbDateParserFormatter,\n NgbDateStruct,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport {\n DatePipe,\n FormatWidth,\n getLocaleDateFormat,\n getLocaleTimeFormat,\n} from '@angular/common';\nimport { DateTime } from 'luxon';\nimport { NgbDateTimeStruct } from 'src/app/shared/components/controls/date-box/date-box.model';\nimport { DateBoxComponent } from 'src/app/shared/components/controls/date-box/date-box.component';\nimport { AppService } from 'src/app/core/app.service';\n\n@Injectable()\nexport class WpParserFormatter implements NgbDateParserFormatter {\n constructor(\n @Inject(LOCALE_ID) private locale: string,\n private datePipe: DatePipe,\n private dateBox: DateBoxComponent,\n private app: AppService,\n ) {}\n\n /**\n *\n * @param value {string} the value obtained from the dateBox text field\n * @returns formatted date value\n */\n public parse(value: string): NgbDateStruct {\n /**\n * Removing unnecessary characters such as: ./-\n */\n const valueWithoutSymbols = this.replaceSymbols(value);\n if (!valueWithoutSymbols) {\n this.dateBox.time = this.dateBox.time.set({\n hour: 0,\n minute: 0,\n });\n return null;\n }\n\n /**\n * Getting the date format for the current regional settings\n */\n const dateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n const timeFormat = getLocaleTimeFormat(this.locale, FormatWidth.Short);\n\n const format = `${dateFormat} ${timeFormat}`;\n\n /**\n * Doing \"smart\" parsing of the received value into the date\n * If the user entered the data in the format: 22 03 2003 or 22-03-2003, 22/03/2003\n * * data is being converted 22*03*2003 , where * is the separator\n * which is accepted in the current regional settings for\n * Date separations\n *\n * If the user has entered only a day, the current month and year are substituted instead of the month and year\n * If you entered the day and month, then the current year is substituted\n *\n * If the user entered an incorrect date, the previous value is returned\n */\n const autocompletedValue = this.autocompleteByDateFormat(\n valueWithoutSymbols,\n format,\n );\n\n if (!autocompletedValue) {\n return null;\n }\n\n /**\n * Converting the date to the current regional format\n */\n const date = DateTime.fromFormat(autocompletedValue, format);\n if (!date.isValid) {\n return null;\n }\n\n this.dateBox.time = this.dateBox.time.set({\n hour: date.hour,\n minute: date.minute,\n });\n\n return {\n day: date.day,\n month: date.month,\n year: date.year,\n hour: date.hour,\n minute: date.minute,\n };\n }\n\n /** Formats incoming data to a localized short date string; */\n public format(date: NgbDateTimeStruct): string {\n if (!date) return '';\n\n return this.datePipe.transform(\n DateTime.local(\n date.year,\n date.month,\n date.day,\n this.dateBox.time?.hour || 0,\n this.dateBox.time?.minute || 0,\n ).toISO(),\n this.dateBox.includeTime ? 'short' : 'shortDate',\n this.app.session.timeZoneOffset,\n );\n }\n\n /**\n * The function replaces the symbol: (.), (-), (/), ( space) to the specified separator\n *\n * @param value{string} the string to replace\n * @param replaceWith{string} separator\n * @returns{string} modified string\n */\n private replaceSymbols(value: string, replaceWith = '/'): string {\n const dateRegexp = /\\.| |\\/|-|:|, /gm;\n return value.replace(dateRegexp, replaceWith);\n }\n\n /**\n * @param value{string} string to format\n * @param format{string} regional date format\n * @returns{string} regionally formatted date\n */\n private autocompleteByDateFormat(value: string, format): string | null {\n const newValue = value.split('/');\n const newFormat = this.unifyFormat(format).split('');\n\n if (newValue.every((item) => item === '') && !this.dateBox.allowNull) {\n return null;\n }\n\n let monthIndex = null;\n let yearIndex = null;\n let dayIndex = null;\n let hourIndex = null;\n let minuteIndex = null;\n\n // check if 12-hours format\n const is12HourFormat = newFormat.includes('a');\n\n newFormat.forEach((formatValue, index) => {\n switch (formatValue) {\n case DateTimeFormat.month:\n if (!newValue[index]) {\n newValue[index] = String(new Date().getMonth() + 1);\n }\n monthIndex = index;\n break;\n case DateTimeFormat.day:\n if (!newValue[index]) {\n newValue[index] = String(new Date().getDate());\n }\n dayIndex = index;\n break;\n case DateTimeFormat.year:\n if (!newValue[index]) {\n newValue[index] = String(new Date().getFullYear());\n }\n yearIndex = index;\n break;\n\n case DateTimeFormat.hour:\n if (!newValue[index]) {\n newValue[index] = is12HourFormat ? '12' : '00';\n }\n hourIndex = index;\n break;\n\n case DateTimeFormat.minute:\n if (!newValue[index]) {\n newValue[index] = '00';\n }\n minuteIndex = index;\n break;\n\n case DateTimeFormat.midDay:\n if (!newValue[index]) {\n newValue[index] = 'AM';\n }\n break;\n }\n });\n\n if (newValue[yearIndex].length < 4) {\n const prevCenturyStart = 70;\n const prevCenturyEnd = 999;\n const isPrevCentury =\n +newValue[yearIndex] >= prevCenturyStart &&\n +newValue[yearIndex] <= prevCenturyEnd;\n\n let yearPrefix = isPrevCentury ? '1' : '2';\n const yearCurrentLength = newValue[yearIndex].length;\n for (let i = 0; i < 4 - yearCurrentLength - 1; i++) {\n yearPrefix += isPrevCentury ? '9' : '0';\n }\n newValue[yearIndex] = yearPrefix + newValue[yearIndex];\n }\n\n const padWithZero = (index: number): void => {\n if (newValue[index].length === 1) {\n newValue[index] = '0' + newValue[index];\n }\n };\n\n padWithZero(dayIndex);\n padWithZero(monthIndex);\n padWithZero(hourIndex);\n padWithZero(minuteIndex);\n\n const isDayCorrect = +newValue[dayIndex] <= 31 && +newValue[dayIndex] >= 1;\n const isMonthCorrect =\n +newValue[monthIndex] <= 12 && +newValue[monthIndex] >= 1;\n const isYearCorrect =\n +newValue[yearIndex] >= 1900 && +newValue[yearIndex] <= 9999;\n const isHoursCorrect =\n +newValue[hourIndex] >= 0 && +newValue[hourIndex] <= 23;\n const isMinutesCorrect =\n +newValue[minuteIndex] >= 0 && +newValue[minuteIndex] <= 59;\n if (\n !isDayCorrect ||\n !isMonthCorrect ||\n !isYearCorrect ||\n !isHoursCorrect ||\n !isMinutesCorrect\n ) {\n return null;\n }\n\n const dateSeparator = this.getDateSeparator(format);\n\n const timeArray = newValue.slice(3);\n const timePart = is12HourFormat\n ? `${timeArray[0]}:${timeArray[1]} ${timeArray[2]}`\n : timeArray.join(':');\n\n const datePart = newValue.slice(0, 3).join(dateSeparator);\n\n return `${datePart} ${timePart}`;\n }\n\n /**\n * @returns{string} separator for dates in the current regional format\n */\n private getDateSeparator(format: string): string {\n return format.match(/[^A-Za-z0-9]/)[0];\n }\n\n /**\n * @param format{string} current regional format\n * @returns{string} returns the order of the date parts\n * in the current regional format\n */\n private unifyFormat(format: string) {\n format = this.replaceSymbols(format, '');\n return [...new Set(format)]\n .map((letter) => {\n // crutch due to the different case of the hour symbol in the RU and EN locales\n if (letter.toLowerCase() === DateTimeFormat.hour) {\n letter = letter.toLowerCase();\n }\n return letter;\n })\n .join('');\n }\n}\n\nexport enum DateTimeFormat {\n day = 'd',\n month = 'M',\n year = 'y',\n hour = 'h',\n minute = 'm',\n midDay = 'a',\n}\n","import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { DateService } from 'src/app/core/date.service';\nimport { isEqual } from 'lodash';\n\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { DateTime } from 'luxon';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Контрол выбора периода дат. */\n@Component({\n selector: 'wp-date-period-box',\n templateUrl: './date-period-box.component.html',\n styleUrls: ['./date-period-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePeriodBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class DatePeriodBoxComponent implements OnInit, ControlValueAccessor {\n /** Заменить значения в пустом контроле. */\n @Input() placeholder: string;\n\n /** True - показывать расширенный набор вычисляемых периодов. */\n @Input() advanced = false;\n\n @Output() onDisplayTextChanged = new EventEmitter();\n\n @ViewChild('input') inputEl: ElementRef;\n\n public disabled = false;\n\n private _value: NamedEntity = null;\n set value(obj: NamedEntity) {\n this._value = obj;\n\n this.setDisplayText();\n this.textControl.markAsPristine();\n }\n get value(): NamedEntity {\n return this._value;\n }\n\n rows: NamedEntity[] = [];\n storedRows: NamedEntity[] = null;\n listOpened = false;\n customPeriodOpened = false;\n\n selectedRow: NamedEntity;\n textControl = new UntypedFormControl('');\n title: string;\n areaId: string = Guid.generate();\n\n datesForm = this.fb.group({\n from: [null, Validators.required],\n to: [null, Validators.required],\n });\n\n propagateChange = (_: DatePeriod) => null;\n propagateTouch = () => null;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private readonly scrollToService: ScrollToService,\n private readonly dateService: DateService,\n private readonly fb: UntypedFormBuilder,\n private readonly translate: TranslateService,\n private readonly element: ElementRef,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n private setDisplayText() {\n let displayText = '';\n\n if (this.value) {\n displayText =\n this.value.id === DatePeriodType.Custom\n ? this.getDatePeriodTitle()\n : this.value.name;\n }\n\n this.textControl.setValue(displayText, { emitEvent: false });\n }\n\n /** Изменить значение в форме. */\n private changeValue(value: NamedEntity) {\n if (!isEqual(this.value, value) || value?.id === DatePeriodType.Custom) {\n this.propagateChange(this.getDatePeriodFromRow(value));\n }\n\n this.value = value;\n this.updateTitle();\n }\n\n private updateTitle() {\n this.title = this.value\n ? `${this.value.name} (${this.getDatePeriodTitle()})`\n : '';\n this.onDisplayTextChanged.emit(this.title);\n }\n\n private getDatePeriodFromRow(value: NamedEntity): DatePeriod {\n let period: DatePeriod = null;\n\n if (value) {\n period = {\n periodType: value.id,\n from: null,\n to: null,\n };\n\n if (period.periodType === DatePeriodType.Custom) {\n period.from = this.datesForm.get('from').value;\n period.to = this.datesForm.get('to').value;\n } else {\n const pair = this.dateService.getDatePair(period.periodType);\n period.from = pair.from;\n period.to = pair.to;\n }\n }\n return period;\n }\n\n writeValue(value: DatePeriod): void {\n if (value) {\n if (value.periodType === DatePeriodType.Custom) {\n this.datesForm.patchValue(value);\n }\n\n this.value = this.storedRows.find(\n (row: NamedEntity) => row.id === value.periodType,\n );\n } else {\n this.value = null;\n this.datesForm.reset();\n }\n\n this.updateTitle();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onBlur() {\n this.propagateTouch();\n }\n\n refreshRows() {\n if (this.textControl.dirty && this.textControl.value) {\n const filteringValue = this.textControl.value.toLowerCase().trim();\n this.rows = this.storedRows.filter(\n (row: NamedEntity) =>\n row.name.toLowerCase().indexOf(filteringValue) !== -1,\n );\n } else {\n this.rows = Object.assign([], this.storedRows);\n }\n }\n\n selectRow(row: any) {\n this.selectedRow = row;\n }\n\n clickRow(row: NamedEntity) {\n if (row.id === 'Custom') {\n this.customPeriodOpened = true;\n this.closeList();\n this.setDisplayText();\n // this.ref.detectChanges();\n return;\n }\n\n this.changeValue(row);\n this.closeList();\n // this.ref.detectChanges();\n }\n\n selectCustomPeriod() {\n if (this.datesForm.valid) {\n const row = this.storedRows.find(\n (r: NamedEntity) => r.id === DatePeriodType.Custom,\n );\n this.changeValue(row);\n this.customPeriodOpened = false;\n }\n }\n\n getDatePeriodTitle(): string {\n if (!this.value) {\n return '';\n }\n const datePeriod = this.getDatePeriodFromRow(this.value);\n return `${DateTime.fromISO(\n datePeriod.from,\n ).toLocaleString()}-${DateTime.fromISO(datePeriod.to).toLocaleString()}`;\n }\n\n onKeyDown(event: KeyboardEvent) {\n const escCode = 27;\n const enterCode = 13;\n const downCode = 40;\n const upCode = 38;\n\n if (event.keyCode === escCode) {\n this.cancel();\n }\n\n if (event.keyCode === enterCode) {\n // Очистили текст, нажали Enter (но нет активной записи) = убрали выбор.\n if (!this.textControl.value && !this.selectedRow) {\n this.changeValue(null);\n this.cancel();\n return;\n }\n\n if (this.selectedRow) {\n this.clickRow(this.selectedRow);\n }\n }\n\n if (event.keyCode === downCode) {\n this.selectNext();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === upCode) {\n this.selectPrevious();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n // Команда выделения следующего элемента.\n selectNext() {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index < this.rows.length - 1) {\n this.selectedRow = this.rows[index + 1];\n this.scrollToSelectRow();\n }\n }\n\n // this.ref.detectChanges();\n }\n\n // Команда выделения предыдущего элемента\n selectPrevious() {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index > 0) {\n this.selectedRow = this.rows[index - 1];\n this.scrollToSelectRow();\n }\n }\n\n // this.ref.detectChanges();\n }\n\n // Скролл до выбранной строки.\n scrollToSelectRow() {\n if (this.selectedRow) {\n this.scrollToService.scrollTo(\n this.selectedRow.id,\n this.element.nativeElement,\n );\n }\n }\n\n onInputClick() {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n clear() {\n this.changeValue(null);\n this.closeList();\n this.customPeriodOpened = false;\n }\n\n closeList() {\n this.listOpened = false;\n this.selectedRow = null;\n }\n\n openList() {\n if (this.listOpened || this.customPeriodOpened) {\n this.cancel();\n return;\n }\n\n this.selectedRow = null;\n this.inputEl.nativeElement.select();\n this.propagateTouch();\n this.listOpened = true;\n this.refreshRows();\n }\n\n cancel() {\n this.closeList();\n this.customPeriodOpened = false;\n this.textControl.markAsPristine();\n\n if (this.textControl.value && this.value) {\n this.setDisplayText();\n } else {\n this.changeValue(null);\n }\n }\n\n ngOnInit() {\n const advancedPeriods = [\n DatePeriodType.Last30Days,\n DatePeriodType.Last7Days,\n DatePeriodType.NextMonth,\n DatePeriodType.NextQuarter,\n DatePeriodType.NextWeek,\n DatePeriodType.NextYear,\n ];\n\n // Заполнить список периодов.\n this.storedRows = [];\n for (const datePeriodType in DatePeriodType) {\n if (\n !this.advanced &&\n advancedPeriods.includes(datePeriodType)\n ) {\n continue;\n }\n\n this.storedRows.push({\n name: this.translate.instant(`enums.datePeriodType.${datePeriodType}`),\n id: datePeriodType,\n });\n }\n\n this.textControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (!this.listOpened) {\n this.openList();\n }\n\n this.refreshRows();\n });\n\n FormHelper.controlDatePair(\n this.datesForm,\n 'from',\n 'to',\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","@if (!disabled) {\n \n \n\n ×\n\n @if (listOpened) {\n
    \n @if (!rows.length) {\n
    \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n }\n \n \n @for (row of rows; track $index) {\n \n \n \n }\n \n
    {{ row.name }}
    \n
    \n }\n\n @if (customPeriodOpened) {\n
    \n
    \n \n \n
    \n\n
    \n @if (datesForm.valid) {\n \n }\n \n
    \n
    \n }\n\n \n \n \n \n}\n\n@if (disabled && value) {\n

    \n {{ textControl.value }}\n

    \n}\n\n@if (disabled && !value) {\n

    \n {{ 'shared.empty' | translate }}\n

    \n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppConfigService } from 'src/app/core/app-config.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Language } from 'src/app/shared/models/enums/language.enum';\n\n/** Docs modal. */\n@Component({\n selector: 'tmt-doc-modal',\n templateUrl: './doc-modal.component.html',\n styleUrls: ['./doc-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DocModalComponent {\n @Input() route: string;\n\n // TODO: Add multi-language support.\n language = Language.ru;\n\n public get docUrl() {\n this.route = this.route.startsWith('/')\n ? this.route.substring(1)\n : this.route;\n\n const url = `${AppConfigService.config.site.url}${\n this.language === Language.en ? '' : '/' + this.language.toLowerCase()\n }/embedded-docs/${this.route}`;\n\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n constructor(\n private activeModal: NgbActiveModal,\n private sanitizer: DomSanitizer,\n ) {}\n\n public cancel() {\n this.activeModal.dismiss();\n }\n}\n","
    \n \n \n\n","import { DecimalPipe, DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { DimensionItem } from 'src/app/shared/models/enums/dimension-item.enum';\nimport { DurationMode } from 'src/app/shared/models/enums/duration-mode.enum';\n\n@Component({\n selector: 'tmt-duration-box',\n templateUrl: './duration-box.component.html',\n styleUrls: ['./duration-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DurationBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class DurationBoxComponent\n implements OnChanges, OnInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /** Indicates can the value be deleted. */\n @Input() allowNull = true;\n\n /** Placeholder. */\n @Input() placeholder: string;\n\n /** Indicates is control in readonly mode. */\n @Input() readonly: boolean;\n\n /** Set focus to the input after rendering. */\n @Input() autofocus = false;\n\n /** Minimum count of days. */\n @Input() min = 1;\n\n /** Maximum count of days. */\n @Input() max = 2000;\n\n @Input() dimensionItem = DimensionItem.day;\n @Input() durationMode = DurationMode.work;\n\n @ViewChild('editor') editor: ElementRef;\n\n /** Value of control. */\n public value: number | null;\n /** Value for view in the input. */\n public viewValue: string;\n\n public disabled = false;\n\n /** Indicates input has focus. */\n private isFocused = false;\n\n /** Returns input element. */\n private get input() {\n if (this.disabled) {\n return null;\n }\n return this.editor.nativeElement as HTMLInputElement;\n }\n\n private keyboardSubscription: Subscription;\n\n private dayWords = [\n 'д',\n 'д.',\n 'дн',\n 'дн.',\n 'дней',\n 'дня',\n 'день',\n 'd',\n 'd.',\n 'day',\n 'days',\n ];\n private weekWords = [\n 'н',\n 'н.',\n 'нед',\n 'нед.',\n 'недель',\n 'недели',\n 'неделя',\n 'w',\n 'w.',\n 'week',\n 'weeks',\n ];\n private monthWords = [\n 'м',\n 'м.',\n 'мес',\n 'мес.',\n 'месяцев',\n 'месяца',\n 'месяц',\n 'месяцы',\n 'm',\n 'm.',\n 'month',\n 'months',\n ];\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private cdr: ChangeDetectorRef,\n private translateService: TranslateService,\n private numberPipe: DecimalPipe,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['readonly']) {\n this.disabled = this.readonly;\n }\n }\n\n ngOnInit(): void {\n if (!this.placeholder) {\n this.placeholder = `${this.translateService.instant(\n 'shared.duration.ph',\n )} \"2 ${this.translateService.instant(\n 'shared.duration.' + this.dimensionItem,\n )}\"`;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.input.focus();\n }\n if (this.readonly) {\n this.disabled = this.readonly;\n }\n }\n\n ngOnDestroy(): void {\n this.onBlur();\n this.keyboardSubscription?.unsubscribe();\n }\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n writeValue(value: number): void {\n if (this.viewValue) {\n const parsedViewValue = this.parseValue(this.viewValue);\n if (parsedViewValue) {\n if (this.value !== parsedViewValue) {\n this.value = value;\n return;\n }\n }\n }\n\n const dayCount = typeof value === 'string' ? this.parseValue(value) : value;\n if (this.value !== dayCount) {\n this.value = dayCount;\n this.cdr.detectChanges();\n this.setInputValue();\n }\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n if (!this.readonly) {\n this.disabled = isDisabled;\n }\n this.cdr.detectChanges();\n\n if (this.viewValue) {\n const parsedViewValue = this.parseValue(this.viewValue);\n if (parsedViewValue) {\n if (this.value !== parsedViewValue) {\n return;\n }\n }\n }\n this.setInputValue();\n }\n\n /** Update input after blur. */\n public onBlur() {\n this.isFocused = false;\n this.keyboardSubscription?.unsubscribe();\n const parsedViewValue = this.parseValue(this.viewValue);\n if (\n parsedViewValue === 0 ||\n parsedViewValue ||\n (this.allowNull && this.viewValue === '')\n ) {\n if (this.value !== parsedViewValue) {\n this.value = parsedViewValue;\n this.propagateChange(this.value);\n }\n }\n this.setInputValue();\n this.propagateTouch();\n }\n\n /** Update input after focus. */\n public onFocus() {\n this.isFocused = true;\n if (this.value) {\n this.setInputValue();\n }\n this.input.select();\n this.initKeysSubscribes();\n }\n\n /** Clear control value. */\n public clear() {\n if (!this.allowNull) {\n return;\n }\n this.value = null;\n this.viewValue = '';\n this.propagateChange(null);\n this.setInputValue();\n }\n\n /** Set user value into the input if possible. */\n public setUserValue(value: unknown) {\n if (!this.disabled && this.input) {\n const event = new Event('input');\n if (typeof value === 'string') {\n this.input.value = '';\n this.input.value = value;\n this.input.dispatchEvent(event);\n } else if (value === null) {\n this.input.value = '';\n this.viewValue = '';\n this.input.dispatchEvent(event);\n }\n }\n }\n\n /** Listens of input changes. */\n public handleInput() {\n this.viewValue = this.input?.value;\n }\n\n /** Returns days count if possible. */\n private parseValue(value: string | null): number | null {\n const number = parseInt(value, 10);\n const text = value.replace(/ /g, '').substring(number.toString().length);\n if (Number.isNaN(number)) {\n return null;\n }\n\n let weekLength = 5;\n let monthLength = 20;\n\n if (this.durationMode === DurationMode.calendar) {\n weekLength = 7;\n monthLength = 28;\n }\n\n switch (this.dimensionItem) {\n case DimensionItem.day:\n if (text === '' || this.dayWords.includes(text)) {\n return this.checkLimits(number);\n }\n if (this.weekWords.includes(text)) {\n return this.checkLimits(number * weekLength);\n }\n if (this.monthWords.includes(text)) {\n return this.checkLimits(number * monthLength);\n }\n break;\n\n case DimensionItem.week:\n if (this.dayWords.includes(text)) {\n return this.checkLimits(Math.round(number / weekLength));\n }\n if (text === '' || this.weekWords.includes(text)) {\n return this.checkLimits(number);\n }\n if (this.monthWords.includes(text)) {\n return this.checkLimits(Math.round(number * 4));\n }\n break;\n\n case DimensionItem.month:\n if (this.dayWords.includes(text)) {\n return this.checkLimits(Math.round(number / monthLength));\n }\n if (this.weekWords.includes(text)) {\n return this.checkLimits(Math.round(number / 4));\n }\n if (text === '' || this.monthWords.includes(text)) {\n return this.checkLimits(number);\n }\n break;\n\n default:\n break;\n }\n return null;\n }\n\n /** Check current limits of duration\n *\n * @param value checking value\n * @returns corrected value\n */\n private checkLimits(value: number): number {\n if (value < this.min) {\n return this.min;\n }\n if (value > this.max) {\n return this.max;\n }\n return value;\n }\n\n /** Sets input value. */\n private setInputValue() {\n if (!this.editor || !this.input) {\n this.viewValue =\n this.value || this.value === 0\n ? this.numberPipe.transform(this.value, '1.0-0') +\n ' ' +\n this.translateService.instant(\n 'shared.duration.' + this.dimensionItem,\n )\n : '';\n this.cdr.detectChanges();\n return;\n }\n\n if (this.isFocused) {\n this.viewValue =\n this.value || this.value === 0 ? this.value.toString() : '';\n this.input.value = this.viewValue;\n } else {\n this.setFullStringValue();\n }\n\n this.cdr.detectChanges();\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.keyboardSubscription = fromEvent(this.document, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n if (this.viewValue) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter': {\n const parsedViewValue = this.parseValue(this.viewValue);\n if (parsedViewValue) {\n if (this.value !== parsedViewValue) {\n this.value = parsedViewValue;\n this.propagateChange(this.value);\n }\n this.setFullStringValue();\n }\n break;\n }\n case 'Escape':\n this.setInputValue();\n this.onBlur();\n break;\n }\n }\n }\n return;\n },\n );\n }\n\n /** Set full string value. */\n private setFullStringValue() {\n const formattedNumber = this.numberPipe.transform(this.value, '1.0-0');\n this.viewValue =\n this.value || this.value === 0\n ? formattedNumber +\n ' ' +\n this.translateService.instant('shared.duration.' + this.dimensionItem)\n : '';\n this.input.value = this.viewValue;\n }\n}\n","
    \n \n ×\n
    \n

    \n {{ viewValue }}\n

    \n

    \n {{ 'shared.empty' | translate }}\n

    \n","import { Component, OnInit, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\n\n/** Контрол ввода эл. почты. */\n@Component({\n selector: 'wp-email-box',\n templateUrl: './email-box.component.html',\n styleUrls: ['./email-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EmailBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class EmailBoxComponent implements OnInit, ControlValueAccessor {\n constructor(\n private app: AppService,\n private data: DataService,\n ) {\n this.domains = [];\n }\n @Input() placeholder: string;\n @Input() readonly: boolean;\n\n domains: string[] = [];\n\n domain = '';\n value = '';\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n writeValue(value: any): void {\n if (!value) {\n this.value = '';\n this.domain = this.app.session.configuration.primaryDomain;\n } else {\n const atIndex = value.indexOf('@');\n this.value = value.substring(0, atIndex);\n this.domain = value.substring(atIndex + 1);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n }\n\n onBlur() {\n this.propagateTouch();\n }\n\n onChange(newValue: string) {\n this.value = newValue;\n this.setValue();\n }\n\n setValue() {\n this.propagateChange(`${this.value}@${this.domain}`);\n }\n\n setDomain(domain: string) {\n this.domain = domain;\n this.setValue();\n }\n\n ngOnInit() {\n this.data.model\n .function('GetActiveDomains')\n .query()\n .subscribe((domains: string[]) => {\n this.domains = domains;\n });\n }\n}\n","
    \n \n\n \n
    \n \n
    \n
    \n

    \n {{ value }}\n

    \n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, Renderer2 } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { FileBoxViewMode } from 'src/app/shared/components/controls/file-box/file-box.model';\nimport { FilesService } from 'src/app/shared/components/controls/file-box/files.service';\n\n@Component({\n selector: 'tmt-file-box-button-add',\n imports: [TranslateModule],\n templateUrl: './file-box-button-add.component.html',\n styleUrl: './file-box-button-add.component.scss'\n})\nexport class FileBoxButtonAddComponent {\n @Input({ required: true }) public mode: FileBoxViewMode;\n\n protected inputFilesListener: () => void;\n\n constructor(\n protected renderer: Renderer2,\n protected filesService: FilesService,\n @Inject(DOCUMENT) protected document: Document,\n ) {}\n\n public attachFiles(): void {\n const input: HTMLInputElement = this.renderer.createElement('input');\n this.renderer.setAttribute(input, 'type', 'file');\n this.renderer.setAttribute(input, 'multiple', 'true');\n\n this.inputFilesListener = this.renderer.listen(\n input,\n 'change',\n (event: Event) => {\n this.filesService.addFiles(\n Array.from((event.target as HTMLInputElement).files || []),\n );\n this.inputFilesListener();\n },\n );\n\n input.click();\n }\n}\n","@if (mode === 'inline') {\n \n}\n\n@if (mode === 'preview') {\n \n}\n\n@if (mode === 'cell') {\n \n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n effect,\n OnInit,\n inject,\n DestroyRef,\n input,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { filter, forkJoin, switchMap } from 'rxjs';\n\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\nimport { FileBoxComponent } from '../file-box.component';\nimport { FilesService } from '../files.service';\n\n@Component({\n selector: 'tmt-file-box-cell',\n styleUrl: './file-box-cell.component.scss',\n templateUrl: './file-box-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FileBoxComponent],\n providers: [FilesService],\n})\nexport class FileBoxCellComponent implements OnInit, GridComponentCell {\n public entityType = input.required();\n @Input() public column: GridColumn;\n @Input() public formGroup: UntypedFormGroup;\n @Input() public initialValue: unknown;\n\n private readonly filesService = inject(FilesService);\n private readonly notificationService = inject(NotificationService);\n private readonly destroyRef = inject(DestroyRef);\n\n public get control(): UntypedFormControl {\n return this.formGroup?.controls[this.column.name] as UntypedFormControl;\n }\n\n public get entityId(): string {\n return this.formGroup.controls['id'].getRawValue();\n }\n\n constructor() {\n effect(() => {\n const files = this.filesService.files();\n this.control?.setValue(files.length ? files : null, { emitEvent: false });\n\n files\n .filter((file) => file.dataReadyStatus === 'fail')\n .forEach((file) => {\n this.notificationService.error(file.message);\n });\n\n if (files.some((file) => file.dataReadyStatus === 'fail')) {\n this.filesService.setInitialFiles(null);\n this.filesService.reload();\n }\n });\n }\n\n public ngOnInit(): void {\n this.control.valueChanges\n .pipe(\n filter((value) => value === null),\n switchMap(() =>\n forkJoin(\n this.filesService\n .files()\n .map((file) => this.filesService.deleteAttachment(file.id)),\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.filesService.clearFiles();\n });\n\n this.control.valueChanges\n .pipe(\n filter((value) => Array.isArray(value)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n this.filesService.setInitialFiles(value);\n this.filesService.reload();\n });\n }\n}\n","\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n inject,\n Input,\n NgZone,\n Renderer2,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport {\n concatMap,\n filter,\n first,\n fromEvent,\n merge,\n startWith,\n tap,\n} from 'rxjs';\n\nimport { FilesService } from 'src/app/shared/components/controls/file-box/files.service';\n\n@Directive({\n selector: '[tmtFileBoxDnDZone]',\n standalone: true,\n})\nexport class FileBoxDnDZoneDirective implements AfterViewInit {\n @Input() public enabled = true;\n\n @HostBinding('class.hovered') public fileOver: boolean;\n\n protected destroyRef = inject(DestroyRef);\n\n constructor(\n protected ngZone: NgZone,\n protected el: ElementRef,\n protected renderer: Renderer2,\n protected filesService: FilesService,\n protected translateService: TranslateService,\n @Inject(DOCUMENT) protected document: Document,\n ) {}\n\n public ngAfterViewInit(): void {\n this.renderer.addClass(this.el.nativeElement, 'drop-zone-container');\n this.renderer.setAttribute(\n this.el.nativeElement,\n 'data-title',\n this.translateService.instant('shared.dropFileHere'),\n );\n\n fromEvent(this.el.nativeElement, 'drop')\n .pipe(\n filter(() => this.enabled),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event: DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n const files = event.dataTransfer.files;\n\n if (files.length > 0) {\n this.filesService.addFiles(Array.from(files));\n this.document\n .querySelectorAll('.drop-zone-container.awaited')\n .forEach((el) => {\n this.renderer.removeClass(el, 'awaited');\n });\n }\n });\n\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.el.nativeElement, 'dragover')\n .pipe(\n filter(() => this.enabled),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n });\n\n fromEvent(this.el.nativeElement, 'dragleave')\n .pipe(\n filter(() => this.enabled),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n });\n\n merge(\n fromEvent(this.document, 'pointerup'),\n fromEvent(this.document, 'dragend'),\n fromEvent(this.el.nativeElement, 'drop'),\n )\n .pipe(\n startWith(true),\n filter(() => this.enabled),\n tap(() =>\n this.renderer.removeClass(this.el.nativeElement, 'awaited'),\n ),\n concatMap(() =>\n merge(\n fromEvent(this.document, 'dragstart'),\n fromEvent(this.document, 'dragover'),\n fromEvent(this.el.nativeElement, 'dragover'),\n ).pipe(\n filter(() => this.enabled),\n first(),\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() =>\n this.renderer.addClass(this.el.nativeElement, 'awaited'),\n );\n });\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n inject,\n Input,\n OnInit,\n Optional,\n SkipSelf,\n} from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { init } from 'src/app/shared/animations';\nimport {\n Attachment,\n AttachmentItem,\n} from 'src/app/shared/models/entities/attachments/attachment.interface';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\n\nimport { FilesService } from './files.service';\nimport { FileBoxViewMode } from './file-box.model';\nimport { FileBoxButtonAddComponent } from './file-box-button-add/file-box-button-add.component';\nimport { FileBoxDnDZoneDirective } from './file-box-dnd-zone/dnd-zone.directive';\n\n@Component({\n selector: 'tmt-file-box',\n imports: [\n SharedModule,\n DatePipe,\n TranslateModule,\n NgbTooltipModule,\n FileBoxButtonAddComponent,\n FileBoxDnDZoneDirective,\n ],\n providers: [\n {\n provide: FilesService,\n deps: [[new Optional(), new SkipSelf(), FilesService]],\n useFactory: (parentService: FilesService | null) =>\n parentService || new FilesService(),\n },\n ],\n templateUrl: './file-box.component.html',\n styleUrl: './file-box.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [init],\n})\nexport class FileBoxComponent implements OnInit {\n @Input({ required: true }) public entityType: string;\n @Input({ required: true }) public entityId: string;\n @Input() public mode: FileBoxViewMode = 'preview';\n /** If `false` you have to run save or delete manually from `FilesService`. */\n @Input() public instantSave = true;\n /** Indicates whether the component works without save or delete actions. */\n @Input() public isContainerMode?: boolean;\n @Input() public maxCount?: number;\n @Input() public editAllowed = true;\n @Input() public initialFiles: Attachment[];\n\n public isAddButtonShown = true;\n public readonly spinnerParams: SpinnerParams = {\n spinnerSize: '20px',\n spinnerSpeed: '0.8s',\n spinnerCircleColor: '--bs-selected-color-o15',\n spinnerSpinColor: '--bs-primary',\n spinnerBackgroundColor: '#56565666',\n spinnerBorderRadius: '0.3rem',\n };\n\n protected readonly destroyRef = inject(DestroyRef);\n\n constructor(protected filesService: FilesService) {\n effect(() => {\n const files = filesService.files();\n\n if (typeof this.maxCount === 'number') {\n this.isAddButtonShown =\n files.filter((file) => file.afterSaveAction !== 'delete').length <\n this.maxCount;\n }\n });\n }\n\n public ngOnInit(): void {\n this.filesService.init(\n this.entityType,\n this.entityId,\n this.mode,\n this.maxCount,\n this.instantSave,\n this.initialFiles,\n );\n }\n\n /**\n * Opens file viewer.\n *\n * @param id first item to show.\n */\n public openViewer(id: string): void {\n this.filesService.openViewer(this.filesService.files(), id);\n }\n\n /**\n * File actions handler.\n *\n * @param event Mouse event.\n * @param item file.\n * @param type action type.\n */\n public action(\n event: MouseEvent,\n item: AttachmentItem,\n type: 'save' | 'remove' | 'abortRemove',\n ): void {\n event.stopPropagation();\n\n switch (type) {\n case 'save':\n this.filesService.downloadAttachmentItem(item);\n break;\n case 'remove':\n this.filesService.removeFile(item);\n break;\n case 'abortRemove':\n this.filesService.abortFileRemove(item);\n break;\n }\n }\n}\n","
    \n
    \n @if (mode === 'cell') {\n @if (filesService.files().length) {\n \n
    \n \n
    \n \n\n @if (filesService.files().length - 1) {\n
    \n +{{ filesService.files().length - 1 }}\n
    \n }\n }\n\n @if (!filesService.files().length && editAllowed) {\n \n }\n } @else {\n @if (isAddButtonShown && mode === 'inline' && !isContainerMode && editAllowed) {\n \n }\n\n @for (file of filesService.files(); track file.id) {\n \n \n
    \n @if (file.template === 'image' && mode === 'preview') {\n \n } @else {\n \n }\n
    \n\n \n {{ file.shortName }}\n \n\n
    \n {{ file.created | date: 'd MMM' }}\n
    \n\n @if (file.dataReadyStatus === 'success') {\n
    \n \n
    \n }\n\n @if (file.dataReadyStatus === 'fail') {\n
    \n \n
    \n }\n\n
    \n @if (file.afterSaveAction === 'delete') {\n \n \n \n } @else {\n @if (editAllowed) {\n \n \n \n }\n\n \n \n \n }\n
    \n \n \n }\n\n @if (!filesService.files().length && !editAllowed && !isContainerMode) {\n

    \n {{ 'components.fileBoxComponent.props.empty' | translate }}\n

    \n }\n\n @if (isAddButtonShown && mode === 'preview' && !isContainerMode && editAllowed) {\n \n }\n }\n
    \n
    \n","export type FileBoxViewMode = 'preview' | 'inline' | 'cell';\n","import {\n DestroyRef,\n Injectable,\n OnDestroy,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HttpClient } from '@angular/common/http';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport {\n catchError,\n firstValueFrom,\n forkJoin,\n map,\n Observable,\n of,\n switchMap,\n tap,\n} from 'rxjs';\nimport { saveAs } from 'file-saver';\nimport _ from 'lodash';\n\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppConfigService } from 'src/app/core/app-config.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport {\n Attachment,\n AttachmentItem,\n UploadFileDTO,\n} from 'src/app/shared/models/entities/attachments/attachment.interface';\nimport { AttachmentHelper } from 'src/app/shared/models/entities/attachments/attachment.helper';\nimport { ViewerComponent } from 'src/app/shared/components/features/viewer/viewer.component';\nimport { FILE_EXTENSION } from 'src/app/shared/models/entities/attachments/file-extension.config';\n\nimport { FileBoxViewMode } from './file-box.model';\n\n@Injectable()\nexport class FilesService implements OnDestroy {\n protected _files = signal([]);\n public files = computed(this._files);\n public entityId: string;\n\n protected entityType: string;\n protected mode: FileBoxViewMode;\n protected instantSave: boolean;\n protected maxCount?: number;\n protected initialFiles?: Attachment[];\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly dataService = inject(DataService);\n protected readonly messageService = inject(MessageService);\n protected readonly notificationService = inject(NotificationService);\n protected readonly translateService = inject(TranslateService);\n protected readonly modal = inject(NgbModal);\n protected readonly httpClient = inject(HttpClient);\n\n public ngOnDestroy(): void {\n this.files().forEach((file) => window.URL.revokeObjectURL(file.url));\n }\n\n /** Sets service configuration from component, then loads files. */\n public init(\n entityType: string,\n entityId: string,\n mode: FileBoxViewMode,\n maxCount: number,\n instantSave: boolean,\n initialFiles?: Attachment[],\n ): void {\n this.entityType = entityType;\n this.entityId = entityId;\n this.mode = mode;\n this.maxCount = maxCount;\n this.instantSave = instantSave;\n this.initialFiles = initialFiles;\n this.reload();\n }\n\n /** Loads attachments. */\n public reload(): void {\n this.getAttachments()\n .pipe(\n tap((data) => {\n data = _.orderBy(data, ['created', 'name'], ['desc', 'desc']);\n this._files.set(data.map((file) => this.buildAttachmentItem(file)));\n }),\n switchMap(() =>\n this.mode === 'preview'\n ? forkJoin(\n this.files()\n .filter(\n (item) =>\n AttachmentHelper.getTemplateType(item.ext) === 'image',\n )\n .map((file) =>\n this.downloadBlob(file.id).pipe(\n tap((blob) => {\n if (blob) {\n file.urlPreview = window.URL.createObjectURL(blob);\n file.template = 'image';\n } else {\n file.urlPreview = null;\n }\n }),\n ),\n ),\n )\n : of(true),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this._files.update((value) => value.slice(0)));\n }\n\n /**\n * Runs after save actions for current files.\n * It is necessary to subscribe to the returned Observable.\n *\n * @returns true, if all actions resolved successful, otherwise false.\n */\n public runSaveActions(): Observable {\n const actions: Observable[] = [];\n\n this._files.update((values) => {\n values\n .filter((file) => file.afterSaveAction)\n .forEach((file) => {\n file.dataReadyStatus = 'loading';\n const action =\n file.afterSaveAction === 'delete'\n ? this.deleteAttachment(file.id)\n : this.uploadAttachment(file);\n\n actions.push(\n action.pipe(\n tap((result) => {\n if (typeof result === 'string') {\n file.dataReadyStatus = 'fail';\n file.message = result;\n } else {\n file.dataReadyStatus = 'success';\n }\n }),\n ),\n );\n });\n\n return values.slice(0);\n });\n\n if (!actions.length) {\n return of(true);\n }\n\n return forkJoin(actions).pipe(\n tap(() =>\n this._files.update((values) =>\n values.slice(0).filter((file) => {\n const isKeepFile =\n !file.afterSaveAction ||\n file.afterSaveAction === 'upload' ||\n (file.afterSaveAction === 'delete' &&\n file.dataReadyStatus === 'fail');\n\n file.afterSaveAction = null;\n\n return isKeepFile;\n }),\n ),\n ),\n map((results) => results.every((v) => v === true)),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Adds files from input or DnD event. */\n public addFiles(files: File[]): void {\n const currentFilesCount = this.files().length;\n const availableCount = this.maxCount\n ? Math.max(0, this.maxCount - currentFilesCount)\n : Infinity;\n\n if (availableCount <= files.length) {\n this.notificationService.errorLocal(\n 'components.fileService.messages.maxCount',\n {\n count: this.maxCount,\n },\n );\n\n if (!availableCount) {\n return;\n }\n }\n\n const newFiles: AttachmentItem[] = [];\n\n Array.from(files)\n .slice(0, availableCount)\n .forEach((file) => {\n newFiles.push(this.buildAttachmentItem(file));\n });\n\n if (newFiles.length) {\n for (const newFile of newFiles) {\n if (!AttachmentHelper.isValidFormat([newFile.data as File])) {\n newFile.afterSaveAction = null;\n newFile.dataReadyStatus = 'fail';\n newFile.message = this.translateService.instant(\n 'shared.messages.attachmentWrongFormat',\n );\n\n continue;\n }\n\n if (newFile.data.size > Constants.maxAttachmentSize) {\n newFile.afterSaveAction = null;\n newFile.dataReadyStatus = 'fail';\n newFile.message = this.translateService.instant(\n 'shared.comments.notifications.incorrectFileSize',\n { size: Constants.maxAttachmentSize / 1024 / 1024 },\n );\n }\n }\n\n this._files.update((value) => value.concat(newFiles));\n\n if (this.instantSave) {\n this.runSaveActions().subscribe();\n }\n }\n }\n\n /**\n * Removes file. If instantSave is false, it marks file as \"for deletion\" except case when `dataReadyStatus` is `fail` after upload.\n *\n *\n * @param file attachment item.\n */\n public removeFile(file: AttachmentItem): void {\n if (\n (file.data instanceof File &&\n !this.instantSave &&\n !file.dataLazyLoad) ||\n (file.data instanceof File &&\n this.instantSave &&\n file.dataReadyStatus === 'fail')\n ) {\n this._files.update((values) =>\n values.filter((value) => value.id !== file.id),\n );\n return;\n }\n\n if (this.instantSave) {\n this.deleteAttachmentWithConfirm(file);\n return;\n }\n\n file.afterSaveAction = 'delete';\n }\n\n /** Clears all files from view, but not from server! */\n public clearFiles(): void {\n this._files.set([]);\n }\n\n /**\n * Removes 'for deletion' mark from file.\n *\n * @param file attachment item.\n */\n public abortFileRemove(file: AttachmentItem): void {\n file.afterSaveAction = null;\n }\n\n /** Removes 'for deletion' mark from file and removes 'for upload' files from current collection. */\n public abortAfterSaveActions(): void {\n this._files.update((files) =>\n files.filter((file) => {\n if (file.afterSaveAction === 'delete') {\n file.afterSaveAction = null;\n }\n\n return !file.afterSaveAction;\n }),\n );\n }\n\n /**\n * Gets icon name by file extension.\n *\n * @param fileExt file extension.\n * @returns icon name.\n */\n public getIcon(fileExt: string): string {\n return FILE_EXTENSION.get(fileExt) ?? FILE_EXTENSION.get('default');\n }\n\n /**\n * Gets short name by file name.\n *\n * @param fileName\n * @returns short name.\n */\n public getShortName(fileName: string): string {\n const resultLength = this.mode === 'preview' ? 8 : 24;\n\n return fileName.length <= resultLength\n ? fileName\n : fileName.slice(0, resultLength / 2).trim() +\n '…' +\n fileName.slice(-resultLength / 2).trim();\n }\n\n /**\n * Transforms item to `AttachmentItem`.\n *\n * @param file `File` or `Attachment`\n * @returns Attachment item.\n */\n public buildAttachmentItem(file: File | Attachment): AttachmentItem {\n const [name, ...other] = file.name.split('.');\n const ext = other.pop();\n const item: Partial = Object.assign(\n file instanceof File\n ? {\n name: file.name,\n }\n : file,\n {\n ext: ext.toLowerCase(),\n icon: this.getIcon(ext.toLowerCase()),\n shortName: this.getShortName(`${name}.${ext}`),\n },\n );\n\n if (file instanceof File) {\n item.id = Guid.generate();\n item.url = window.URL.createObjectURL(file);\n item.urlPreview = item.url;\n item.data = file;\n item.modified = new Date();\n item.created = new Date();\n item.entityId = this.entityId;\n item.entityType = this.entityType;\n item.afterSaveAction = 'upload';\n item.template = AttachmentHelper.getTemplateType(item.ext);\n } else {\n item.template = 'other';\n item.dataLazyLoad = !item.data\n ? () => firstValueFrom(this.downloadBlob(item.id))\n : null;\n }\n\n return item as AttachmentItem;\n }\n\n /**\n * Open attachments viewer.\n *\n * @param attachments list of files.\n * @param activeItemId id of first file for show.\n * @param fullscreen Indicates whether to open viewer in fullscreen mode.\n *\n * */\n public openViewer(\n attachments: AttachmentItem[],\n activeItemId?: string,\n fullscreen = true,\n ): void {\n const modalRef = this.modal.open(ViewerComponent, {\n fullscreen: !!fullscreen,\n modalDialogClass: fullscreen ? 'modal-transparent' : 'modal-overflow',\n size: !fullscreen ? 'xl' : null,\n });\n\n const items: AttachmentItem[] = attachments.map((value) => {\n if (value.data || value.dataLazyLoad) {\n return value;\n }\n\n return {\n ...value,\n url: '',\n dataLazyLoad: () => firstValueFrom(this.downloadBlob(value.id)),\n };\n });\n\n (modalRef.componentInstance as ViewerComponent).params = {\n attachments: items,\n activeId: activeItemId,\n outsideClickCallback: () => modalRef.close(),\n };\n }\n\n /**\n * Deletes attachment after confirmation.\n *\n * @param attachment Attachment.\n *\n * */\n public deleteAttachmentWithConfirm(attachment: AttachmentItem): void {\n this.messageService.confirmLocal('shared.deleteConfirmation').then(\n () => {\n attachment.afterSaveAction = 'delete';\n this.runSaveActions().subscribe(\n () => (attachment.afterSaveAction = null),\n );\n },\n () => null,\n );\n }\n\n /**\n * Downloads attachment item.\n *\n * @param attachment Attachment item.\n *\n * */\n public async downloadAttachmentItem(\n attachment: AttachmentItem,\n ): Promise {\n if (!attachment.data) {\n attachment.dataReadyStatus = 'loading';\n attachment.data = await firstValueFrom(this.downloadBlob(attachment.id));\n attachment.dataReadyStatus = 'awaiting';\n this._files.update((values) => values.slice(0));\n\n if (!attachment.data) {\n return;\n }\n }\n\n saveAs(attachment.data, attachment.name || 'Attachment');\n }\n\n /**\n * Gets all attachments of current entity.\n *\n * @returns attachments.\n */\n public getAttachments(): Observable {\n return this.initialFiles\n ? of(this.initialFiles)\n : this.dataService\n .collection('Files')\n .function('GetFilesMetadata')\n .get({ entityId: this.entityId })\n .pipe(\n catchError((err: Exception) => {\n this.notificationService.error(err.message);\n return of([]);\n }),\n );\n }\n\n /**\n * Uploads attachment.\n *\n * @param data entity type, entity id and attachment as FormData.\n * @returns true if success, otherwise error message.\n */\n public uploadAttachment(file: AttachmentItem): Observable {\n const formData = new FormData();\n const data: UploadFileDTO = {\n entityType: this.entityType,\n entityId: this.entityId,\n attachment: file.data as File,\n };\n\n for (const key of Object.keys(data)) {\n formData.append(key, data[key]);\n }\n\n return this.dataService\n .collection('Files')\n .action('UploadFile')\n .execute(formData)\n .pipe(\n tap((result) => (file.id = result.id)),\n map(() => true),\n catchError((error) => of(error.message)),\n );\n }\n\n /**\n * Deletes attachment.\n *\n * @param fileKey attachment id.\n * @returns true if success, otherwise error message.\n */\n public deleteAttachment(fileKey: string): Observable {\n return this.dataService\n .collection('Files')\n .action('DeleteFile')\n .execute({ fileKey })\n .pipe(\n map(() => true),\n catchError((error) => of(error.message)),\n );\n }\n\n /**\n * Rewrite initial files.\n *\n * @param files new files.\n */\n public setInitialFiles(files: AttachmentItem[]): void {\n this.initialFiles = files;\n }\n\n protected downloadBlob(fileKey: string): Observable {\n return this.httpClient\n .get(\n `${AppConfigService.config.api.url}/odata/Files/GetFile(fileKey=${fileKey})`,\n {\n responseType: 'blob',\n },\n )\n .pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n );\n }\n}\n","export * from './file-box.model';\nexport * from './files.service';\nexport * from './file-box.component';\nexport * from './file-box-button-add/file-box-button-add.component';\nexport * from './file-box-dnd-zone/dnd-zone.directive';\n","import {\n Input,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n Directive,\n AfterViewInit,\n inject,\n DestroyRef,\n ViewRef,\n Renderer2,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { Instance, bottom, createPopper } from '@popperjs/core';\nimport { firstValueFrom, isObservable, Observable } from 'rxjs';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TreeListComponent } from 'src/app/shared/components/features/tree-list';\n\n@Directive()\nexport class AbstractHierarchicalBoxComponent\n implements OnChanges, AfterViewInit, ControlValueAccessor\n{\n @ViewChild('input') protected inputEl: ElementRef;\n @ViewChild('expandingArea') private expandingArea: ElementRef;\n @ViewChild(TreeListComponent, { read: ElementRef })\n protected treeListEl: ElementRef;\n\n @Input() public autofocus?: boolean;\n @Input() public placeholder?: string;\n @Input() public allowNull = true;\n @Input() public allowInactive?: boolean;\n @Input() public items?: any[] | Observable;\n @Input() public collection: string;\n @Input({ required: true }) public parentIdKey: string;\n @Input() public withHierarchy = false;\n @Input() public predefined: any[] = [];\n\n public includeSubElements: boolean;\n public readonly = false;\n public listOpened = false;\n public isLoading = false;\n public rows: any[] = [];\n public selectedRow: any;\n public focusedRow: any;\n public textControl = new UntypedFormControl('');\n public treeListTarget: string | null;\n public propagateChange = (_: any) => null;\n public propagateTouch = () => null;\n\n protected popperInstance: Instance;\n protected loadLimit?: number = 500;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n protected notificationService: NotificationService,\n protected dataService?: DataService,\n protected translateService?: TranslateService,\n protected cdr?: ChangeDetectorRef,\n protected renderer?: Renderer2,\n protected el?: ElementRef,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['allowInactive'] && !changes['allowInactive'].firstChange) {\n this.rows = [];\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.autofocus && this.inputEl) {\n this.inputEl.nativeElement.click();\n }\n\n this.textControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.treeListTarget =\n (!!value.trim().length && this.textControl.dirty) ||\n (!!value.trim().length && !this.selectedRow)\n ? value\n : null;\n });\n }\n\n public writeValue(value: any): void {\n throw Error(`The \"writeValue\" method was not implemented!`);\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr?.detectChanges();\n }\n }\n\n /** Propagates touch on blur event. */\n public onBlur(): void {\n this.propagateTouch();\n }\n\n /**\n * KeyboardEvent handler.\n *\n * @param event KeyboardEvent\n *\n * */\n public onKeyDown(event: KeyboardEvent): void {\n const downCode = 'ArrowDown';\n const escCode = 'Escape';\n const enterCode = 'Enter';\n\n if (event.code === downCode) {\n this.treeListEl?.nativeElement\n ?.querySelector('.tree-list')\n .focus();\n }\n\n if (event.code === enterCode) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.textControl.value && !this.selectedRow && !this.focusedRow) {\n this.cancel();\n return;\n }\n\n if (this.focusedRow) {\n this.onSelected(this.focusedRow);\n }\n }\n\n if (event.code === escCode) {\n this.cancel();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** Input click handler. */\n public onInputClick(): void {\n if (!this.listOpened) {\n this.toggleList();\n }\n }\n\n /**\n * Sets focused row from tree-list.\n *\n * @param value tree-list item.\n */\n public onFocused(value: any): void {\n this.focusedRow = value;\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr?.detectChanges();\n }\n }\n\n /** Drops value. */\n public clear(): void {\n this.selectedRow = null;\n this.treeListTarget = null;\n this.setTextBoxValue(null);\n this.propagateChange(null);\n this.includeSubElements = false;\n this.closeList();\n }\n\n /**\n * Propagates selected value.\n *\n * @param value any entity.\n */\n public onSelected(value: any): void {\n this.propagateTouch();\n this.selectedRow = value;\n this.propagateChange({\n id: value.id,\n name: value.name,\n [this.parentIdKey]: value[this.parentIdKey],\n });\n this.setTextBoxValue(value);\n this.cancel();\n }\n\n /** Closes list and sets value to text input. */\n public cancel(): void {\n this.closeList();\n this.textControl.markAsPristine();\n\n if (this.textControl.value && this.selectedRow) {\n this.setTextBoxValue(this.selectedRow);\n return;\n }\n\n if (this.selectedRow) {\n this.setTextBoxValue(this.selectedRow);\n }\n }\n\n /** Toggles `listOpened` state. Also loads data, if `rows` is empty or `items` is defined. */\n public toggleList(): void {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.inputEl.nativeElement.select();\n this.propagateTouch();\n this.listOpened = true;\n\n // TODO: always load data?\n if (!this.rows?.length || this.items) {\n this.rows = [];\n this.loadData().then(() => this.popperInstance?.update());\n }\n\n this.popperInstance = createPopper(\n this.el.nativeElement,\n this.expandingArea.nativeElement,\n );\n\n this.popperInstance\n .setOptions({\n strategy: 'fixed',\n placement: bottom,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n state.elements.reference.getBoundingClientRect().width\n }px`;\n },\n },\n ],\n })\n .then(() => {\n this.popperInstance.update();\n this.cdr.detectChanges();\n });\n }\n\n /** Closes list. */\n public closeList(): void {\n this.focusedRow = null;\n this.listOpened = false;\n }\n\n /** Returns text value for readonly mode. */\n public getReadOnlyDisplayText(): string {\n if (this.textControl.value) {\n return this.textControl.value;\n }\n\n return this.translateService.instant('shared.valueNotSelected');\n }\n\n protected setTextBoxValue(value: any): void {\n this.textControl.setValue(value?.name ?? '', { emitEvent: false });\n }\n\n protected async loadData(): Promise {\n try {\n if (Array.isArray(this.items)) {\n this.rows = (this.items as T[]) || [];\n this.enrichFromPredefined();\n return;\n }\n\n const query: any = {\n top: this.loadLimit,\n select: ['id', 'name', this.parentIdKey],\n filter: [],\n orderBy: 'name',\n };\n\n if (!this.allowInactive) {\n query.filter.push({ isActive: { eq: true } });\n }\n\n this.isLoading = true;\n this.cdr?.markForCheck();\n\n const result = await firstValueFrom(\n isObservable(this.items)\n ? this.items\n : this.dataService\n .collection(this.collection)\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef)),\n );\n\n this.rows = result;\n this.enrichFromPredefined();\n\n this.isLoading = false;\n this.cdr?.markForCheck();\n } catch (error) {\n this.errorHandler(error);\n this.isLoading = false;\n this.cdr?.markForCheck();\n }\n }\n\n protected enrichFromPredefined(): void {\n this.predefined?.forEach((item) => {\n this.rows.unshift({\n ...item,\n className: 'predefined',\n });\n });\n }\n\n protected errorHandler(error: any): void {\n this.notificationService.error(error.message ?? error.code);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Renderer2,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { AbstractHierarchicalBoxComponent } from 'src/app/shared/components/controls/hierarchical-box/abstract-hierarchical-box.component';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { SubordinatesValue } from 'src/app/shared/components/controls/hierarchical-box/hierarchical-box-value.model';\n\n@Component({\n selector: 'tmt-hierarchical-box',\n templateUrl: './hierarchical-box.component.html',\n styleUrls: ['./hierarchical-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HierarchicalBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class HierarchicalBoxComponent extends AbstractHierarchicalBoxComponent {\n constructor(\n protected override notificationService: NotificationService,\n protected override dataService: DataService,\n protected override translateService: TranslateService,\n protected override cdr: ChangeDetectorRef,\n protected override renderer: Renderer2,\n protected override el: ElementRef,\n ) {\n super(\n notificationService,\n dataService,\n translateService,\n cdr,\n renderer,\n el,\n );\n }\n\n public override writeValue(item: any): void {\n if (this.withHierarchy) {\n this.includeSubElements = item?.includeSubordinates ?? false;\n this.selectedRow = item?.value;\n this.textControl.setValue(item?.value.name ?? '', { emitEvent: false });\n } else {\n this.selectedRow = item;\n this.textControl.setValue(item?.name ?? '', { emitEvent: false });\n }\n\n this.cdr.detectChanges();\n }\n\n /** Toggles the display mode of subordinates. */\n public setIncludingSubElements(): void {\n this.includeSubElements = !this.includeSubElements;\n this.propagateChange(this.getFormValue());\n }\n\n public override onSelected(value: any): void {\n this.selectedRow = value;\n this.propagateChange(this.getFormValue());\n this.setTextBoxValue(value);\n this.cancel();\n }\n\n private getFormValue(): SubordinatesValue | NamedEntity {\n const value = this.selectedRow\n ? {\n id: this.selectedRow.id,\n name: this.selectedRow.name,\n }\n : null;\n\n return this.withHierarchy\n ? {\n value,\n includeSubordinates: this.includeSubElements,\n }\n : value;\n }\n}\n","@if (readonly) {\n \n {{ getReadOnlyDisplayText() }}\n

    \n} @else {\n \n \n\n ×\n \n\n @if (withHierarchy) {\n \n \n \n }\n\n
    \n @if (listOpened) {\n
    \n \n\n @if (!rows.length && !isLoading) {\n
    \n

    \n {{ 'shared.noOptions' | translate }}\n

    \n
    \n }\n\n @if (rows.length) {\n \n }\n
    \n }\n
    \n\n \n \n \n \n}\n","import {\n Component,\n OnInit,\n forwardRef,\n Input,\n ViewChild,\n ElementRef,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n/** Контрол ввода многострочного текста. */\n@Component({\n selector: 'wp-multiline-text-box',\n templateUrl: './multiline-text-box.component.html',\n styleUrls: ['./multiline-text-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultilineTextBoxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MultilineTextBoxComponent\n extends AbstractBox\n implements ControlValueAccessor, OnInit, OnDestroy\n{\n @Input() placeholder: string;\n @Input() maxLength = 10240;\n @Input() readonly: boolean;\n @Input() spellcheck = true;\n @Input() rows = 3;\n\n @ViewChild('editor') editor: ElementRef;\n\n public formControl = new UntypedFormControl('');\n\n private _value = '';\n private keyboardSubscription: Subscription;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.formControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n value &&= value.trim();\n\n if (this.propagationMode === PropagationMode.onInput) {\n this._value = value;\n this.propagateChange(this._value);\n }\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.toggleControlDirty(this._value, value);\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.onBlur();\n }\n this.keyboardSubscription?.unsubscribe();\n }\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n writeValue(value: any): void {\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.formControl.value !== this._value\n ) {\n return;\n }\n this._value = value ? value : '';\n this.formControl.setValue(this._value, { emitEvent: false });\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n /** Sets disable state.\n *\n * @param isDisabled disable state flag.\n */\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.cdr.detectChanges();\n }\n\n /** Input onFocus logic.*/\n public onFocus(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.initKeysSubscribes();\n }\n }\n\n /** Input onBlur logic.*/\n public onBlur(): void {\n this.propagateTouch();\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n const value = this.formControl.value.trim();\n if (this._value !== value) {\n this._value = value;\n this.propagateChange(value);\n }\n this.keyboardSubscription?.unsubscribe();\n }\n }\n\n /** Sets focus. */\n public focus() {\n (this.editor.nativeElement as HTMLElement).focus();\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.keyboardSubscription = fromEvent(window, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n switch (event.code) {\n case 'Escape':\n this.formControl.setValue(this._value, { emitEvent: false });\n break;\n }\n }\n return;\n },\n );\n }\n}\n","
    \n \n
    \n

    \n\n {{ 'shared.empty' | translate }}\n

    \n","import {\n OnInit,\n AfterViewInit,\n OnChanges,\n ChangeDetectorRef,\n ViewChild,\n ViewRef,\n Input,\n ElementRef,\n Renderer2,\n SimpleChanges,\n Directive,\n inject,\n DestroyRef,\n TemplateRef,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { firstValueFrom, debounceTime, filter } from 'rxjs';\nimport _ from 'lodash';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\ntype MultiSelectTheme =\n | 'default'\n | 'tokens-trim'\n | 'tokens-scroll-list'\n | 'tokens-endless-list';\n\n@Directive()\nexport class AbstractMultiSelectBoxComponent\n implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor\n{\n @ViewChild('expandingArea') private expandingArea: TemplateRef;\n\n @Input() public theme?: MultiSelectTheme = 'default';\n @Input() public readonly?: boolean;\n @Input() public placeholder?: string;\n @Input() public autofocus?: boolean;\n @Input() public allowInactive?: boolean;\n @Input() public items?: any[] = [];\n @Input() public collection?: string;\n @Input() public query?: any;\n /* Property for choosing item by default. */\n @Input() public defaultModeProperty?: string;\n\n public filteredItems: any[] = [];\n public selectedItems: Map = new Map();\n public focusedItem: any;\n public title: string | null;\n public titleShort: string | null;\n public searchControl = new FormControl('');\n public listOpened = false;\n public isLoading: boolean;\n public propagateChange = (_: any[]) => null;\n public propagateTouch = () => null;\n\n protected popupId: string;\n protected mouseEnterListener: () => void;\n protected readonly loadLimit = 500;\n protected readonly controlDelay = Constants.textInputClientDebounce;\n protected readonly destroyRef = inject(DestroyRef);\n\n public get allValues(): any[] {\n return this.items.slice(0);\n }\n\n public get controlName(): string {\n return this.el.nativeElement.attributes.getNamedItem('formControlName')\n .textContent;\n }\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected renderer: Renderer2,\n protected el: ElementRef,\n protected dataService: DataService,\n protected notificationService: NotificationService,\n protected scrollToService: ScrollToService,\n protected infoPopupService: InfoPopupService,\n ) {}\n\n public ngOnInit(): void {\n this.initSubscribers();\n this.updateTitle();\n }\n\n public ngAfterViewInit(): void {\n if (this.autofocus) {\n this.onInputClick();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['items'] && this.items?.length) {\n this.updateTitle();\n this.updateOption();\n }\n }\n\n public writeValue(value: any): void {\n throw Error(`The \"writeValue\" method was not implemented!`);\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.listOpened = false;\n\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr.detectChanges();\n }\n }\n\n /** Propagate touch on blur event. */\n public onBlur(): void {\n this.propagateTouch();\n }\n\n /** Input click handler. */\n public onInputClick(): void {\n if (!this.listOpened) {\n this.toggleList();\n }\n }\n\n /**\n * Checkbox click handler\n *\n * @param targetItem - enabled/disabled item\n */\n public itemCLickHandler(event: PointerEvent, targetItem: any): void {\n if (event.pointerId === 1) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.focusedItem = targetItem;\n this.selectItem(targetItem);\n }\n\n /** Drops all selected items. */\n public clearValues(): void {\n this.selectedItems.clear();\n this.updateOption();\n this.propagateChange(this.getControlValue());\n this.cancel();\n }\n\n /** Drop search string in the dropdown. */\n public clearSearch(): void {\n this.searchControl.setValue('');\n this.updateOption();\n }\n\n /** Toggles `listOpened` state. Also loads data, if `items` is empty. */\n public toggleList(): void {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.propagateTouch();\n this.updateOption();\n this.listOpened = true;\n\n if (!this.items?.length && this.collection) {\n this.loadData();\n }\n\n this.popupId = this.infoPopupService.open({\n target: this.el.nativeElement,\n data: {\n templateRef: this.expandingArea,\n },\n containerStyles: null,\n isHideArrow: true,\n popperModifiers: this.infoPopupService.controlPopperModifiers,\n mutationObserverElement: 'target',\n });\n\n if (this.defaultModeProperty) {\n this.updateFilteredItemsDefaultProperty();\n }\n }\n\n /** Cancel handler. */\n public cancel(): void {\n this.listOpened = false;\n this.focusedItem = false;\n this.searchControl.setValue('');\n this.infoPopupService.close(this.popupId);\n this.cdr.markForCheck();\n }\n\n /**\n * Keyboard handler.\n *\n * @param event\n */\n public onKeyDown(event: KeyboardEvent): void {\n const enterCode = 'Enter';\n const downCode = 'ArrowDown';\n const upCode = 'ArrowUp';\n const escCode = 'Escape';\n\n switch (event.code) {\n case downCode: {\n if (!this.focusedItem) {\n this.focusedItem = this.filteredItems[0];\n } else {\n const index = this.filteredItems.findIndex(\n (el) => el.id === this.focusedItem.id,\n );\n\n this.focusedItem = this.filteredItems[index + 1] ?? this.focusedItem;\n }\n break;\n }\n case upCode:\n {\n if (!this.focusedItem) {\n this.focusedItem = this.filteredItems[this.items.length - 1];\n } else {\n const index = this.filteredItems.findIndex(\n (el) => el.id === this.focusedItem.id,\n );\n\n this.focusedItem =\n this.filteredItems[index - 1] ?? this.focusedItem;\n }\n }\n break;\n case enterCode: {\n this.selectItem(this.focusedItem);\n break;\n }\n case escCode: {\n this.cancel();\n break;\n }\n }\n\n if ([downCode, upCode].includes(event.code)) {\n this.cdr.markForCheck();\n\n setTimeout(() => {\n this.scrollToFocusedItem();\n });\n }\n\n if ([downCode, upCode, escCode, enterCode].includes(event.code)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Unselects item.\n *\n * @param item element of items.\n */\n public removeToken(event: MouseEvent, item: any): void {\n event.preventDefault();\n event.stopPropagation();\n\n const itemToRemove =\n this.filteredItems.find((el) => el.id === item.id) ??\n this.items.find((el) => el.id === item.id);\n\n if (itemToRemove) {\n this.selectItem(itemToRemove);\n } else {\n this.selectedItems.delete(item.id);\n this.propagateChange(this.getControlValue());\n }\n }\n\n /**\n * Mouseenter handler.\n *\n * @param item\n */\n public focusItem(item: any): void {\n this.focusedItem = item;\n }\n\n public changeFilter(filterPart: any): void {\n if (!this.query) {\n this.query = {};\n }\n\n this.query.filter = filterPart;\n this.refreshRows();\n }\n\n public async refreshRows(): Promise {\n this.items.length = 0;\n this.filteredItems.length = 0;\n await this.loadData();\n }\n\n protected selectItem(targetItem: any): void {\n this.propagateTouch();\n targetItem.selected = !targetItem.selected;\n\n if (targetItem.selected) {\n this.selectedItems.set(targetItem.id, targetItem);\n } else {\n this.selectedItems.delete(targetItem.id);\n }\n\n if (this.defaultModeProperty) {\n targetItem[this.defaultModeProperty] = false;\n }\n\n this.updateTitle();\n this.propagateChange(this.getControlValue());\n this.cdr.markForCheck();\n }\n\n protected updateTitle(): void {\n const selectedItems: any[] = [];\n\n Array.from(this.selectedItems).forEach((i) => {\n selectedItems.push(i[1]);\n });\n\n selectedItems.sort(naturalSort('name'));\n\n this.titleShort = selectedItems.map((i) => i.name).join('; ');\n this.title = selectedItems.map((i) => i.name).join('; ');\n this.sortSelectedItems();\n }\n\n protected updateOption(): void {\n if (!this.items.length) {\n this.updateTitle();\n return;\n }\n\n this.focusedItem = null;\n this.filteredItems = this.items\n .filter((item) =>\n item.name\n .toLowerCase()\n .includes(this.searchControl.value.toLowerCase()),\n )\n .map((item) => ({\n ...item,\n selected: this.selectedItems.has(item.id),\n }));\n this.filteredItems.sort(naturalSort('name'));\n this.filteredItems = _.sortBy(this.filteredItems, (t) => !t.selected);\n\n this.updateTitle();\n this.cdr.detectChanges();\n }\n\n protected getControlValue(): any[] {\n return this.selectedItems.size\n ? Array.from(this.selectedItems.values())\n : null;\n }\n\n protected initSubscribers(): void {\n this.searchControl.valueChanges\n .pipe(\n debounceTime(this.controlDelay),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.updateOption();\n });\n\n this.infoPopupService.event$\n .pipe(\n filter((e) => e.name === 'destroy' && e.popup?.id === this.popupId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.listOpened = false;\n this.focusedItem = false;\n this.searchControl.setValue('');\n });\n }\n\n protected async loadData(): Promise {\n try {\n if (this.items?.length) {\n this.items = this.items as T[];\n return;\n }\n\n const query: any = {\n top: this.loadLimit,\n select: ['id', 'name'],\n filter: [],\n orderBy: 'name',\n };\n\n if (!this.allowInactive) {\n query.filter.push({ isActive: { eq: true } });\n }\n\n if (this.query) {\n if (this.query.filter) {\n query.filter = query.filter.concat(this.query.filter);\n }\n\n if (this.query.select) {\n query.select = this.query.select;\n }\n\n if (this.query.expand) {\n query.expand = this.query.expand;\n }\n }\n\n this.isLoading = true;\n this.cdr?.markForCheck();\n\n const result = await firstValueFrom(\n this.dataService\n .collection(this.collection)\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef)),\n { defaultValue: [] }, // will be used to resolve a Promise when observable completes without emitted values.\n );\n\n this.items = result;\n this.updateOption();\n this.isLoading = false;\n this.cdr?.detectChanges();\n this.infoPopupService.update(this.popupId);\n } catch (error) {\n this.errorHandler(error);\n this.isLoading = false;\n this.cdr?.markForCheck();\n }\n }\n\n protected errorHandler(error: any): void {\n this.notificationService.error(error.message ?? error.code);\n }\n\n protected scrollToFocusedItem(): void {\n if (this.focusedItem) {\n this.scrollToService.scrollTo(\n `item-${this.focusedItem?.id}`,\n 'selecting-list',\n );\n }\n }\n\n /**\n * Toggles option's default flag.\n *\n * @param event click event.\n * @param item option for toggling flag.\n */\n public toggleDefault(event: PointerEvent, item: any): void {\n event.stopPropagation();\n Array.from(this.selectedItems).forEach((i) => {\n if (i[0] !== item.id) {\n i[1][this.defaultModeProperty] = false;\n }\n });\n item[this.defaultModeProperty] = !item[this.defaultModeProperty];\n this.selectedItems.set(item.id, item);\n this.sortSelectedItems();\n this.updateFilteredItemsDefaultProperty();\n this.propagateChange(this.getControlValue());\n this.cdr.markForCheck();\n }\n\n /* Updates filtered items default property. */\n private updateFilteredItemsDefaultProperty(): void {\n if (!this.defaultModeProperty) {\n return;\n }\n this.filteredItems.map(\n (item) =>\n (item[this.defaultModeProperty] = this.selectedItems.has(item.id)\n ? this.selectedItems.get(item.id)[this.defaultModeProperty]\n : false),\n );\n }\n\n /* Sorts selected items by default property. */\n private sortSelectedItems(): void {\n this.selectedItems = new Map(\n [...this.selectedItems.entries()].sort(\n (a, b) =>\n b[1][this.defaultModeProperty] - a[1][this.defaultModeProperty],\n ),\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n ElementRef,\n Renderer2,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { AbstractMultiSelectBoxComponent } from 'src/app/shared/components/controls/multiselect-box/abstract-multiselect-box.component';\n\n@Component({\n selector: 'tmt-multiselect-box',\n templateUrl: './multiselect-box.component.html',\n styleUrls: ['./multiselect-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class MultiSelectBoxComponent extends AbstractMultiSelectBoxComponent {\n constructor(\n protected override cdr: ChangeDetectorRef,\n renderer: Renderer2,\n el: ElementRef,\n dataService: DataService,\n notificationService: NotificationService,\n scrollToService: ScrollToService,\n infoPopupService: InfoPopupService,\n ) {\n super(\n cdr,\n renderer,\n el,\n dataService,\n notificationService,\n scrollToService,\n infoPopupService,\n );\n }\n\n public override writeValue(value: any): void {\n if (!value) {\n this.selectedItems.clear();\n this.updateTitle();\n this.cdr.markForCheck();\n return;\n }\n\n if (Array.isArray(value)) {\n value.forEach((el) => {\n if (!this.selectedItems.has(el.id)) {\n el.selected = true;\n this.selectedItems.set(el.id, el);\n }\n });\n } else {\n value.selected = true;\n this.selectedItems.set(value.id, value);\n }\n\n if (this.listOpened) {\n this.updateOption();\n } else {\n this.updateTitle();\n }\n\n this.cdr.markForCheck();\n }\n}\n","@if (readonly && title) {\n

    \n {{ titleShort }}\n

    \n}\n\n@if (readonly && !title) {\n

    \n {{ 'shared.valueNotSelected' | translate }}\n

    \n}\n\n@if (!readonly) {\n
    \n @if (theme.includes('tokens')) {\n \n @if (!selectedItems.size) {\n \n {{ placeholder }}\n \n }\n\n @for (item of selectedItems.values(); track $index) {\n
    \n
    {{ item.name }}
    \n \n
    \n }\n
    \n } @else {\n \n @for (item of selectedItems.values(); track item.id) {\n \n @if (!$last) {\n {{ item.name }};\n } @else {\n {{ item.name }}\n }\n \n } @empty {\n {{ placeholder }}\n }\n \n }\n\n @if (selectedItems.size) {\n \n ×\n \n }\n\n \n \n \n \n}\n\n\n
    \n
    \n @if (items?.length) {\n
    \n \n\n \n ×\n \n
    \n }\n\n \n @for (item of filteredItems; track item.id) {\n \n
    \n \n \n
    \n
    \n @if (defaultModeProperty && item.selected) {\n \n }\n
    \n
    \n }\n
    \n\n @if (!filteredItems.length && !isLoading) {\n
    \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n }\n\n \n \n \n
    \n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n DecimalPipe,\n getLocaleNumberSymbol,\n NumberSymbol,\n PercentPipe,\n} from '@angular/common';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { round } from 'lodash';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\n\nexport type NumberBoxType =\n | 'decimal'\n | 'integer'\n | 'currency'\n | 'work'\n | 'percent';\n\n/**\n * Represents number box control.\n * */\n@Component({\n selector: 'wp-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NumberBoxComponent\n extends AbstractBox\n implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor, OnDestroy\n{\n /** Empty value placeholder. */\n @Input() placeholder: string;\n\n /**\n * Currency code.\n *\n * @remarks Only applicable for {@link type 'currency'}. Uses Base currency if not assigned.\n * */\n @Input() currencyCode: string;\n\n /** Determines whether null values are allowed or not. */\n @Input() allowNull = true;\n\n /** Value type. */\n @Input() type: NumberBoxType;\n\n /** Determines whether to select the input value after rendering or not. */\n @Input() autofocus?: boolean;\n\n /** Value precision. */\n @Input() set precision(value: number) {\n if (!isNaN(value)) {\n this._precision = value;\n }\n }\n\n get precision(): number {\n return this._precision;\n }\n\n /** Value alignment. */\n @Input() align: 'left' | 'right' = 'right';\n\n /** Determines whether input is readonly or not. */\n @Input() readonly = false;\n\n /** Value to render (without focus). */\n @Input() set viewValue(value: number) {\n this._viewValue = value;\n this._displayValue = this.getDisplayValue();\n if (!this.isFocused) {\n this.setInputValue();\n }\n }\n get viewValue(): number {\n return this._viewValue;\n }\n\n private _displayValue: string;\n public get displayValue(): string {\n return this._displayValue;\n }\n\n /** Min value restriction. */\n @Input() get min(): number {\n return this._min;\n }\n set min(value: number) {\n if (!isNaN(value)) {\n this._min = value;\n }\n }\n\n /** Max value restriction. */\n @Input() get max(): number {\n return this._max;\n }\n set max(value: number) {\n if (!isNaN(value)) {\n this._max = value;\n }\n }\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n private keyboardSubscription: Subscription;\n\n @ViewChild('editor')\n set editor(value: ElementRef) {\n this._editor = value;\n this.setInputValue();\n }\n get editor(): ElementRef {\n return this._editor;\n }\n\n private get input() {\n if (this.disabled) {\n return null;\n }\n return this.editor.nativeElement as HTMLInputElement;\n }\n\n public value: number = null;\n public disabled = false;\n\n private _viewValue: number;\n private previousViewValue: string;\n\n private _min = 0;\n private _max = 9999999999;\n private _precision = 2;\n\n private _editor: ElementRef;\n\n private readonly decimalSeparator: string;\n private isFocused: boolean;\n\n private selectInputValueOnFocus = true;\n\n private readonly percentValue = 100;\n\n // Uses with 'onExitFromEditing' propagationMode\n private lastEmittedValue: number;\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n private app: AppService,\n private wpCurrencyPipe: WpCurrencyPipe,\n private numberPipe: DecimalPipe,\n private workPipe: WorkPipe,\n private percentPipe: PercentPipe,\n private ref: ChangeDetectorRef,\n ) {\n super();\n this.decimalSeparator = getLocaleNumberSymbol(locale, NumberSymbol.Decimal);\n }\n\n ngOnInit(): void {\n if (this.type === 'integer') {\n this.max = 999999;\n }\n\n if (this.type === 'currency' && !this.currencyCode) {\n this.currencyCode = this.app.session.configuration.baseCurrencyCode;\n }\n\n if (this.placeholder == null) {\n this.placeholder = this.getFormattedValue(0);\n }\n }\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n if (this.autofocus && this.input) {\n this.input.focus();\n }\n\n this.applyInitialValue();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['readonly']) {\n this.disabled = this.readonly;\n this.ref.markForCheck();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.onBlur();\n }\n this.keyboardSubscription?.unsubscribe();\n }\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n writeValue(value: any): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n if (this.lastEmittedValue === value) {\n return;\n }\n }\n\n this.value = value == undefined || value === '' ? null : value;\n this._displayValue = this.getDisplayValue();\n this.lastEmittedValue = this.value;\n this.setInputValue();\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (!this.readonly) {\n this.disabled = isDisabled;\n }\n\n this.ref.detectChanges();\n }\n\n setInputValue() {\n if (!this.editor || !this.input) {\n return;\n }\n\n if (this.isFocused) {\n this.input.value = this.getStringForEditing();\n } else {\n this.input.value = this._displayValue;\n }\n }\n\n /** Input onBlur logic. */\n public onBlur(): void {\n this.propagateTouch();\n if (this.input) {\n this.input.value = this._displayValue;\n }\n this.isFocused = false;\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.lastEmittedValue !== this.value\n ) {\n this.propagateChange(this.value);\n this.lastEmittedValue = this.value;\n this.keyboardSubscription?.unsubscribe();\n }\n }\n\n /** Input onFocus logic. */\n public onFocus(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.initKeysSubscribes();\n }\n this.isFocused = true;\n this.input.value = this.getStringForEditing();\n this.previousViewValue = this.input.value;\n if (this.selectInputValueOnFocus) {\n this.input.select();\n }\n this.selectInputValueOnFocus = true;\n }\n\n handleInput(event: any) {\n const selectionStart = this.input.selectionStart;\n const selectionEnd = this.input.selectionEnd;\n let value = this.input.value;\n value = this.parseCurrencyString(value);\n\n const separators = [' ', '.', ','];\n\n separators\n .filter((x) => x !== this.decimalSeparator)\n .forEach((separator: string) => {\n const newValue =\n value.indexOf(this.decimalSeparator) === -1\n ? this.decimalSeparator\n : '';\n value = value.replace(separator, newValue);\n });\n\n const normalizedString: string = String(value).replace(\n this.decimalSeparator,\n '.',\n );\n if (isNaN(Number(normalizedString))) {\n value = this.previousViewValue;\n }\n\n if (value !== this.input.value) {\n this.input.value = value;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n if (normalizedString === '-') {\n value = '';\n this.input.value = normalizedString;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.toggleControlDirty(this.previousViewValue, this.input.value);\n }\n\n this.previousViewValue = this.input.value;\n\n this.updateValueFromDisplayValue();\n }\n\n /** Apply initial value after rendering. */\n private applyInitialValue() {\n if (this.initialValue === undefined) {\n return;\n }\n if (this.input) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.input.value = this.initialValue;\n this.input.dispatchEvent(event);\n this.selectInputValueOnFocus = false;\n this.input.focus();\n } else if (this.initialValue === null) {\n this.input.value = '';\n this.input.dispatchEvent(event);\n this.selectInputValueOnFocus = false;\n this.input.focus();\n }\n }\n this.initialValue = undefined;\n }\n\n /**\n * Gets displayed control value.\n *\n * @returns Displayed control value.\n * */\n getDisplayValue = (): string => {\n const value = this.viewValue == null ? this.value : this.viewValue;\n return this.getFormattedValue(value);\n };\n\n /**\n * Gets string value for user to edit inside input.\n *\n * @returns String value.\n * */\n private getStringForEditing(): string {\n const template = this.getDigitInfo();\n\n let valueStr = '';\n if (this.value != null) {\n valueStr =\n this.type === 'percent'\n ? this.numberPipe.transform(this.value * this.percentValue, template) // Show user percent value.\n : this.numberPipe.transform(this.value, template);\n valueStr = valueStr.replace(/\\s+/g, '');\n }\n return valueStr;\n }\n\n private getDigitInfo(): string {\n let template = '';\n\n switch (this.type) {\n case 'percent':\n template = `0.0-${this.precision}`;\n break;\n case 'currency':\n template = `1.0-${this.precision}`;\n break;\n case 'integer':\n template = `1.0-0`;\n break;\n default:\n template = `1.0-${this.precision}`;\n break;\n }\n return template;\n }\n\n /**\n * Updates control value by displayed one.\n * */\n private updateValueFromDisplayValue(): void {\n let value = 0;\n let displayValue: string = this.input.value;\n const roundPrecision = this.type === 'integer' ? 0 : this.precision;\n\n if (displayValue || displayValue === '0') {\n displayValue = String(displayValue).replace(this.decimalSeparator, '.');\n\n if (displayValue.indexOf('.') === displayValue.length - 1) {\n displayValue = displayValue.substring(0, displayValue.length - 1);\n }\n\n // Get numeric value.\n const floatValue = parseFloat(displayValue);\n if (!isNaN(floatValue)) {\n value = round(floatValue, roundPrecision);\n\n if (value > this.max) {\n value = this.max;\n }\n\n if (value < this.min) {\n value = this.min;\n }\n\n // Save math percent value.\n if (this.type === 'percent') {\n value /= this.percentValue;\n }\n }\n } else {\n if (this.allowNull) {\n value = null;\n } else {\n value = this.min;\n }\n }\n\n if (this.value !== value) {\n this.value = value;\n this._displayValue = this.getDisplayValue();\n if (this.propagationMode === PropagationMode.onInput) {\n this.propagateChange(this.value);\n this.lastEmittedValue = this.value;\n }\n }\n }\n\n private getFormattedValue(value: number): string {\n if (!value && value !== 0) {\n return '';\n }\n if (this.type === 'currency') {\n return this.wpCurrencyPipe.transform(value, this.currencyCode);\n }\n\n if (this.type === 'work') {\n return this.workPipe.transform(value);\n }\n\n if (this.type === 'integer') {\n return this.numberPipe.transform(value, this.getDigitInfo());\n }\n\n if (this.type === 'percent') {\n return this.percentPipe.transform(value, this.getDigitInfo());\n }\n\n return this.numberPipe.transform(value, this.getDigitInfo());\n }\n\n private parseCurrencyString(value: string): string {\n // AXT-338. Convert to number.\n const trimmedValue = value.replace(/[^-,.\\d]/gm, '');\n return trimmedValue;\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n if (this.keyboardSubscription) {\n this.keyboardSubscription.unsubscribe();\n }\n this.keyboardSubscription = fromEvent(window, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n if (this.lastEmittedValue !== this.value) {\n this.propagateChange(this.value);\n this.lastEmittedValue = this.value;\n }\n break;\n }\n }\n return;\n },\n );\n }\n}\n","
    \n \n
    \n\n

    \n {{ displayValue }}\n

    \n

    \n {{ 'shared.empty' | translate }}\n

    \n","import {\n Component,\n OnInit,\n forwardRef,\n Input,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n OnDestroy,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, isObservable, Subscription } from 'rxjs';\nimport { ProjectVersionsService } from 'src/app/projects/project-versions/project-versions.service';\nimport { debounceTime } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { isFunction } from 'lodash';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\n\n/** Represents the Project version select control. */\n@Component({\n selector: 'wp-project-versions-box',\n templateUrl: './project-versions-box.component.html',\n styleUrls: ['./project-versions-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProjectVersionsBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class ProjectVersionsBoxComponent\n implements OnInit, OnDestroy, ControlValueAccessor\n{\n @ViewChild('input') inputEl: ElementRef;\n\n /** Determines whether null values are allowed or not. */\n @Input() allowNull = true;\n\n /** The text displayed when the control value is not populated. */\n @Input() placeholder: string;\n\n /** Determines whether the control value is readonly or not. */\n @Input() readonly: boolean;\n\n /** The control values collection, function or Observable. The collection priority is the lowest. */\n @Input() values?: ProjectVersion[] = null;\n\n /** The \"Work\" default Project version to show in control values. */\n @Input() workProjectVersion: ProjectVersion;\n\n /** Determines whether the Create version button is disabled or not. */\n @Input() createVersionButtonDisabled?: boolean = false;\n\n private _value: ProjectVersion = null;\n set value(obj: ProjectVersion) {\n this._value = obj;\n this.setTextControlValue(obj);\n this.textControl.markAsPristine();\n }\n get value(): ProjectVersion {\n return this._value;\n }\n\n rows: ProjectVersion[] = [];\n listOpened = false;\n isLoading = false;\n loadedPartly = false;\n projectVisible = true;\n projectVersionLabel = '';\n selectedRow: ProjectVersion;\n textControl = new UntypedFormControl('');\n private searchListener: Subscription;\n storedRows: ProjectVersion[] = null;\n\n areaId: string = Guid.generate();\n excludeOutsideClick = `#${StringHelper.toUnicode(this.areaId)}`;\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n constructor(\n private scrollToService: ScrollToService,\n private element: ElementRef,\n private ref: ChangeDetectorRef,\n private translate: TranslateService,\n public versionService: ProjectVersionsService,\n ) {\n this.projectVersionLabel = this.translate.instant(\n 'acts.card.mainProps.project',\n );\n }\n\n ngOnInit() {\n this.searchListener = this.textControl.valueChanges\n .pipe(debounceTime(500))\n .subscribe(() => {\n if (!this.listOpened) {\n this.openList();\n }\n this.refreshRows();\n });\n }\n\n ngOnDestroy(): void {\n this.searchListener.unsubscribe();\n }\n\n /**\n * Gets the state circle class.\n *\n * @param value The control value.\n * */\n public getStateCircleClass(value: ProjectVersion) {\n if (!value?.state) {\n return 'bi-house-door';\n }\n\n let circleClass = !value.masterBaseline\n ? 'bi-circle-fill'\n : 'bi-check-circle-fill';\n circleClass += ' text-' + value.state.style;\n\n return circleClass;\n }\n\n /**\n * Gets the state badge class.\n *\n * @param row The control values row.\n * */\n public getStateBadgeClass(row: ProjectVersion) {\n return row?.state ? 'text-bg-' + row.state?.style : '';\n }\n\n /**\n * Opens the modal dialog to create the Project version with the selected source.\n *\n * @param value The Project version selected in control values.\n * */\n createProjectVersion(value: ProjectVersion): void {\n this.versionService.createVersion(value);\n this.listOpened = false;\n }\n\n /**\n * Writes the value to the control.\n *\n * @param value The control value.\n * */\n writeValue(value: ProjectVersion): void {\n this.value = value;\n this.ref.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n /**\n * Sets the control state to readonly/editable depending on the state passed.\n *\n * @param isDisabled The new control state.\n * */\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.ref.detectChanges();\n }\n\n /**\n * Loads the control values using the input passed.\n * If input is a function, calls the respective one.\n * If input is an Observable, subscribes to the respective one.\n *\n * @returns The Observable of the control values.\n * */\n loadStoredRows(): Observable {\n return new Observable((subscribe) => {\n // Use local values, loading is not needed.\n if (this.values && !isObservable(this.values)) {\n const values = isFunction(this.values) ? this.values() : this.values;\n subscribe.next(values);\n return;\n }\n\n if (this.values && isObservable(this.values)) {\n this.isLoading = true;\n this.ref.detectChanges();\n (this.values as Observable).subscribe((data) => {\n this.isLoading = false;\n this.loadedPartly = false;\n subscribe.next(data);\n });\n return;\n }\n });\n }\n\n /**\n * Refreshes the control values.\n * */\n refreshRows() {\n this.loadStoredRows().subscribe((data: ProjectVersion[]) => {\n data.sort((a, b) => {\n if (a.masterBaseline) {\n return -1;\n }\n if (b.masterBaseline) {\n return 1;\n }\n\n const dateA = new Date(a.created);\n const dateB = new Date(b.created);\n\n return dateA.getTime() - dateB.getTime();\n });\n this.storedRows = data;\n\n if (this.textControl.dirty && this.textControl.value.trim()) {\n const filteringValue = this.textControl.value.toLowerCase().trim();\n this.rows = this.storedRows.filter(\n (row: ProjectVersion) =>\n row.name.toLowerCase().indexOf(filteringValue) !== -1,\n );\n this.projectVisible =\n this.projectVersionLabel.toLowerCase().indexOf(filteringValue) !== -1;\n } else {\n this.projectVisible = true;\n this.rows = Object.assign([], this.storedRows);\n }\n\n if (this.value) {\n this.selectRow(this.rows.find((row) => row.id === this.value.id));\n }\n\n this.ref.detectChanges();\n\n this.scrollToSelectRow();\n });\n }\n\n /**\n * The control values row select handler.\n *\n * @param row The control values row.\n * */\n selectRow(row: ProjectVersion) {\n this.selectedRow = row;\n }\n\n /**\n * The control values row click handler.\n *\n * @param row The control values row.\n * */\n clickRow(row: ProjectVersion) {\n this.changeValue(row);\n this.closeList();\n this.ref.detectChanges();\n }\n\n /**\n * The control input keydown handler.\n *\n * @param event The keyboard event.\n * */\n onKeyDown(event: KeyboardEvent) {\n const escCode = 27;\n const enterCode = 13;\n const downCode = 40;\n const upCode = 38;\n\n if (event.keyCode === escCode) {\n this.cancel();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === enterCode) {\n // Clear the selection if the text has been cleared, but there is no active row.\n if (!this.textControl.value && !this.selectedRow) {\n if (this.allowNull) {\n this.changeValue(null);\n }\n this.cancel();\n return;\n }\n\n if (this.selectedRow) {\n this.clickRow(this.selectedRow);\n }\n }\n\n if (event.keyCode === downCode) {\n this.selectNext();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === upCode) {\n this.selectPrevious();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Selects the next control values row.\n * */\n selectNext() {\n if (!this.listOpened) {\n this.openList();\n }\n const index = this.rows.indexOf(this.selectedRow);\n\n if (\n index >= this.rows.length ||\n this.rows.length === 0 ||\n !this.selectedRow\n ) {\n this.selectedRow = this.workProjectVersion;\n return;\n }\n\n if (index < this.rows.length - 1) {\n this.selectedRow = this.rows[index + 1];\n this.scrollToSelectRow();\n }\n }\n\n /**\n * Selects the previous control values row.\n * */\n selectPrevious() {\n if (!this.listOpened) {\n this.openList();\n }\n\n const index = this.rows.indexOf(this.selectedRow);\n\n if (index <= 0 || this.rows.length === 0 || !this.selectedRow) {\n this.selectedRow = this.workProjectVersion;\n return;\n }\n\n this.selectedRow = this.rows[index - 1];\n this.scrollToSelectRow();\n }\n\n /**\n * Scrolls to the selected control values row.\n * */\n scrollToSelectRow() {\n if (this.selectedRow) {\n this.scrollToService.scrollTo(\n this.selectedRow.id,\n this.element.nativeElement,\n );\n }\n }\n\n /**\n * The control input click handler.\n * */\n onInputClick() {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n /**\n * The control input clear handler.\n * */\n clear() {\n this.changeValue(null);\n this.closeList();\n }\n\n /**\n * The control values list close handler.\n * */\n closeList() {\n this.listOpened = false;\n this.selectedRow = null;\n }\n\n /**\n * The control values list open handler.\n * */\n openList() {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.selectedRow = null;\n this.inputEl.nativeElement.select();\n this.propagateTouch();\n this.listOpened = true;\n this.refreshRows();\n }\n\n /**\n * The control values list row selection cancel handler.\n * */\n cancel() {\n this.closeList();\n this.textControl.markAsPristine();\n\n if (this.textControl.value && this.value) {\n this.setTextControlValue(this.value);\n } else {\n if (this.allowNull) {\n this.changeValue(null);\n } else {\n // Do nothing if null values are forbidden and value is not selected yet.\n if (this.value) {\n this.setTextControlValue(this.value);\n }\n }\n }\n }\n\n /**\n * Sets the control input value.\n *\n * @param value The control value.\n * */\n private setTextControlValue(value: ProjectVersion) {\n this.textControl.setValue(\n value.state ? value.name : this.projectVersionLabel,\n { emitEvent: false },\n );\n }\n\n /**\n * Changes the control input value.\n *\n * @param value The control value.\n * */\n private changeValue(value: ProjectVersion) {\n if (\n !(\n this._value === value ||\n (this._value && value && this._value.id === value.id)\n )\n ) {\n this.propagateChange(value);\n }\n this.value = value;\n }\n}\n","\n \n\n \n\n ×\n\n \n \n \n \n \n \n {{ 'projects.projectVersions.actions.createProjectVersion.label' | translate }}\n \n \n
    \n \n
    \n
    {{ projectVersionLabel }}
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n {{ 'projects.projectVersions.list.columns.masterBaseline' | translate }}\n \n
    {{ row?.name }}
    \n
    \n
    \n \n {{ row?.state?.name }}\n \n
    \n
    \n \n
    \n
    \n \n

    {{ 'shared.noOptions' | translate }}

    \n \n \n\n \n\n","import { Node } from 'prosemirror-model';\nimport { Command, NodeSelection, TextSelection } from 'prosemirror-state';\nimport {\n NodeChild,\n getLastChildOfNode,\n} from 'src/app/shared/components/controls/rich-editor-box/utils/nodes';\nimport { get$CursorAtBlockStart } from 'src/app/shared/components/controls/rich-editor-box/utils/selection';\n\n// Code from https://github.com/gravity-ui/markdown-editor/blob/main/src/commands/join.ts\n\nexport interface JoinPreviousBlockParams {\n checkPrevNode: (node: Node) => boolean;\n skipNode: (node: Node) => boolean;\n}\n\nexport const joinPreviousBlock =\n ({ checkPrevNode, skipNode }: JoinPreviousBlockParams): Command =>\n (state, dispatch) => {\n const $cursor = get$CursorAtBlockStart(state.selection);\n if (!$cursor) return false;\n const index = $cursor.index(-1);\n const nodeBefore = $cursor.node(-1).maybeChild(index - 1);\n if (!nodeBefore || !checkPrevNode(nodeBefore)) return false;\n\n const textBlock = $cursor.parent;\n const docWithTextBlock = state.schema.topNodeType.create(null, textBlock);\n const isEmptyTextblock = textBlock.childCount === 0;\n\n let node = nodeBefore;\n let offset = $cursor.before() - nodeBefore.nodeSize;\n let lastChild: NodeChild;\n while ((lastChild = getLastChildOfNode(node))) {\n if (lastChild.node.isTextblock) {\n const tr = state.tr;\n const insertPos = offset + lastChild.offset + lastChild.node.nodeSize;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(insertPos, textBlock.content);\n tr.setSelection(TextSelection.create(tr.doc, insertPos));\n dispatch?.(tr.scrollIntoView());\n return true;\n }\n\n if (\n !skipNode(lastChild.node) &&\n lastChild.node.canAppend(docWithTextBlock)\n ) {\n const tr = state.tr;\n const insertPos =\n offset + 1 + lastChild.offset + lastChild.node.nodeSize - 1;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(insertPos, textBlock);\n tr.setSelection(TextSelection.create(tr.doc, insertPos + 1));\n dispatch?.(tr.scrollIntoView());\n return true;\n }\n\n if (lastChild.node.isAtom || lastChild.node.isLeaf) {\n const { tr } = state;\n if (isEmptyTextblock) {\n tr.delete($cursor.before(), $cursor.after());\n tr.setSelection(\n NodeSelection.create(tr.doc, offset + 1 + lastChild.offset),\n );\n } else if (!skipNode(node) && node.canAppend(docWithTextBlock)) {\n const insertPos = offset + node.nodeSize - 1;\n tr.insert(insertPos, textBlock);\n tr.setSelection(TextSelection.create(tr.doc, insertPos));\n } else {\n tr.setSelection(\n NodeSelection.create(tr.doc, offset + 1 + lastChild.offset),\n );\n }\n dispatch?.(tr.scrollIntoView());\n return true;\n }\n\n node = lastChild.node;\n offset += lastChild.offset + 1;\n }\n\n return false;\n };\n","import { isNodeSelection } from 'prosemirror-utils';\nimport { Command, EditorState, TextSelection } from 'prosemirror-state';\nimport { get$Cursor } from 'src/app/shared/components/controls/rich-editor-box/utils/selection';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\nimport { isHrSelection } from 'src/app/shared/components/controls/rich-editor-box/markdown/additional/horizontal-rule/consts';\n\n/**\n * Adds horizontal rule and empty paragraph after it.\n *\n * @returns editor view state command.\n */\nexport function addHr(): Command {\n return (state, dispatch) => {\n if (isHrSelection(state.selection)) return true;\n\n if (isNodeSelection(state.selection)) {\n dispatch?.(\n state.tr\n .replaceSelectionWith(state.schema.nodes.horizontal_rule.create())\n .scrollIntoView(),\n );\n return true;\n }\n\n const $cursor = get$Cursor(state.selection);\n if (!$cursor || $cursor.parent.type.spec.complex) return false;\n\n if (!dispatch) return true;\n\n const { tr } = state;\n const isEmptyParagraph =\n $cursor.parent.type === state.schema.nodes.paragraph &&\n $cursor.parent.nodeSize === 2;\n\n if (isEmptyParagraph) {\n const pos = $cursor.before();\n tr.insert(pos, state.schema.nodes.horizontal_rule.create());\n } else {\n const pos = $cursor.after();\n tr.insert(pos, [\n state.schema.nodes.horizontal_rule.create(),\n state.schema.nodes.paragraph.create(),\n ]);\n tr.setSelection(TextSelection.create(tr.doc, pos + 2)); // set cursor to paragraph after hr\n }\n\n dispatch(tr.scrollIntoView());\n\n return true;\n };\n}\n\n/**\n * Changes horizontal rule (tag hr) disabled property.\n *\n * @param item additional menu item.\n * @param state editor view current state.\n */\nexport function disableHorizontalRule(\n item: MenuItem,\n state: EditorState,\n): void {\n item.subItems.find((item) => item.id === 'hr').disabled = !addHr()(\n state,\n null,\n );\n}\n","import { isNodeSelection } from 'prosemirror-utils';\nimport { Selection } from 'prosemirror-state';\n\n/**\n * Checks if selection is horizontal_rule type.\n *\n * @param selection current selection.\n * @returns boolean value.\n */\nexport const isHrSelection = (selection: Selection): boolean =>\n isNodeSelection(selection) && selection.node.type.name === 'horizontal_rule';\n","import { wrapIn } from 'prosemirror-commands';\nimport { Command, EditorState } from 'prosemirror-state';\nimport { ResolvedPos } from 'prosemirror-model';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\nimport { isTextSelection } from 'src/app/shared/components/controls/rich-editor-box/utils/selection';\nimport { isBlockqouteNode } from 'src/app/shared/components/controls/rich-editor-box/markdown/blockquote/consts';\nimport { hasParentNodeOfType } from 'prosemirror-utils';\n\n/**\n * Toggles blockquote.\n *\n * @returns editor view state command.\n */\nexport function toggleQuote(): Command {\n return (state, dispatch) => {\n const { selection } = state;\n const qType = state.schema.nodes.blockquote;\n if (!isTextSelection(selection) || !selection.$cursor) {\n return wrapIn(qType)(state, dispatch);\n }\n const { $cursor } = selection;\n let { depth } = $cursor;\n while (depth > 0) {\n const node = $cursor.node(depth);\n const nodeSpec = node.type.spec;\n if (!nodeSpec.complex || nodeSpec.complex === 'root') {\n const targetDepth = depth - 1;\n const range = getBlockRange($cursor, depth);\n if (isBlockqouteNode($cursor.node(targetDepth))) {\n dispatch?.(state.tr.lift(range!, targetDepth - 1).scrollIntoView());\n } else {\n dispatch?.(state.tr.wrap(range!, [{ type: qType }]).scrollIntoView());\n }\n return true;\n }\n depth--;\n }\n return false;\n };\n}\n\n/**\n * Gets editor view selection range.\n *\n * @param $pos cursor position.\n * @param depth node depth\n * @returns selection range.\n */\nfunction getBlockRange($pos: ResolvedPos, depth?: number) {\n const { doc } = $pos;\n const $before = doc.resolve($pos.before(depth));\n const $after = doc.resolve($pos.after(depth));\n return $before.blockRange($after);\n}\n\n/**\n * Toggles blockquote menu item isActive.\n *\n * @param item selected item.\n * @param state editor view state.\n */\nexport function toggleBlockquoteActive(\n item: MenuItem,\n state: EditorState,\n): void {\n item.isActive = hasParentNodeOfType(state.schema.nodes.blockquote)(\n state.selection,\n );\n}\n","import { Node } from 'prosemirror-model';\n\n/**\n * Checks if node is blockquote type.\n *\n * @param node node for checking.\n * @returns boolean value.\n */\nexport const isBlockqouteNode = (node: Node): boolean =>\n node && node.type.name === 'blockquote';\n","import { MarkItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\n\nexport function tokenize(state: any, silent: any, markerCode: number): boolean {\n const start = state.pos;\n const marker = state.src.charCodeAt(start);\n\n if (silent) {\n return false;\n }\n\n if (marker !== markerCode) {\n return false;\n }\n\n const scanned = state.scanDelims(state.pos, true);\n let len = scanned.length;\n const ch = String.fromCharCode(marker);\n\n if (len < 2) {\n return false;\n }\n\n if (len % 2) {\n const token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (let i = 0; i < len; i += 2) {\n const token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker,\n length: 0,\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close,\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n}\n\nexport function postProcess(\n state: any,\n delimiters: any,\n mark: MarkItem,\n tag: string,\n): void {\n let token;\n const loneMarkers = [];\n const max = delimiters.length;\n\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i];\n\n if (startDelim.marker !== mark.markerCode) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n const endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = `${tag}_open`;\n token.tag = tag;\n token.nesting = 1;\n token.markup = mark.open;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = `${tag}_close`;\n token.tag = tag;\n token.nesting = -1;\n token.markup = mark.close;\n token.content = '';\n\n if (\n state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === mark.open.charAt(0)\n ) {\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n while (loneMarkers.length) {\n const i = loneMarkers.pop();\n let j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === `${tag}_close`) {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\nexport function ruler2Func(state: any, mark: MarkItem, tag: string): void {\n const tokensMeta = state.tokens_meta;\n const max = (state.tokens_meta || []).length;\n\n postProcess(state, state.delimiters, mark, tag);\n\n for (let curr = 0; curr < max; curr++) {\n if (tokensMeta[curr] && tokensMeta[curr].delimiters) {\n postProcess(state, tokensMeta[curr].delimiters, mark, tag);\n }\n }\n}\n","import { setBlockType } from 'prosemirror-commands';\nimport { Command, EditorState } from 'prosemirror-state';\nimport { toParagraph } from 'src/app/shared/components/controls/rich-editor-box/markdown/heading/consts';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\n\n/**\n * Resets heading block type (uses on Backspace key click).\n *\n * @returns editor view state command.\n */\nexport function resetHeading(): Command {\n return (state, dispatch, view) => {\n const { selection } = state;\n if (\n selection.empty &&\n selection.$from.parent.type === state.schema.nodes.heading &&\n view?.endOfTextblock('backward', state)\n ) {\n return toParagraph(state, dispatch, view);\n }\n return false;\n };\n}\n\n/**\n * Sets heading or paragraph block type depending on level.\n *\n * @param level tag h's level.\n * @returns editor view state command.\n */\nexport function heading(level: number): Command {\n return (state, dispatch) => {\n if (level) {\n return setBlockType(state.schema.nodes.heading, { level })(\n state,\n dispatch,\n );\n } else {\n return setBlockType(state.schema.nodes.paragraph)(state, dispatch);\n }\n };\n}\n\n/**\n * Toggles heading menu item isActive.\n *\n * @param item selected item.\n * @param state editor view state.\n */\nexport function toggleHeadingActive(item: MenuItem, state: EditorState): void {\n item.subItems.forEach((item) => (item.isActive = false));\n if (state.selection.$head.parent.type.name === 'heading') {\n item.isActive = true;\n item.subItems.find(\n (subItem) =>\n subItem.id === `heading${state.selection.$head.parent.attrs.level}`,\n ).isActive = true;\n } else {\n item.isActive = false;\n item.subItems[0].isActive = true;\n }\n}\n","import { setBlockType } from 'prosemirror-commands';\nimport { Command } from 'prosemirror-state';\n\n/**\n * Sets paragraph block type.\n *\n * @param state editor view state.\n * @param dispatch editor view dispatch.\n * @returns editor view state command.\n */\nexport const toParagraph: Command = (state, dispatch) =>\n setBlockType(state.schema.nodes.paragraph)(state, dispatch);\n","import { wrapIn } from 'prosemirror-commands';\nimport { redo, undo } from 'prosemirror-history';\nimport { splitListItem } from 'prosemirror-schema-list';\nimport {\n heading,\n resetHeading,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/heading/commands';\nimport {\n liftLiItem,\n list,\n sinkLiItem,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/commands';\nimport {\n joinPrevList,\n ListNode,\n liType,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/consts';\nimport { markItem } from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/commands';\n\nexport const customKeymap = {\n 'Mod-z': undo,\n 'Mod-y': redo,\n 'Shift-Enter': (state, dispatch) => {\n const { schema, tr } = state;\n dispatch(tr.replaceSelectionWith(schema.nodes.hard_break.create()));\n\n return true;\n },\n // Menu items hot keys.\n 'Ctrl-b': (state, dispatch) => markItem('strong')(state, dispatch),\n 'Ctrl-i': (state, dispatch) => markItem('em')(state, dispatch),\n 'Ctrl-Shift-s': (state, dispatch) => markItem('strike')(state, dispatch),\n 'Ctrl-u': (state, dispatch) => markItem('ins')(state, dispatch),\n 'Ctrl-Shift-0': (state, dispatch) => heading(0)(state, dispatch),\n 'Ctrl-Shift-1': (state, dispatch) => heading(1)(state, dispatch),\n 'Ctrl-Shift-2': (state, dispatch) => heading(2)(state, dispatch),\n 'Ctrl-Shift-3': (state, dispatch) => heading(3)(state, dispatch),\n 'Ctrl-Shift-4': (state, dispatch) => heading(4)(state, dispatch),\n 'Ctrl-Shift-5': (state, dispatch) => heading(5)(state, dispatch),\n 'Ctrl-Shift-6': (state, dispatch) => heading(6)(state, dispatch),\n 'Ctrl-Shift-.': (state, dispatch) =>\n wrapIn(state.schema.nodes.blockquote)(state, dispatch),\n 'Ctrl-e': (state, dispatch) => markItem('code')(state, dispatch),\n Enter: (state, dispatch) =>\n splitListItem(liType(state.schema))(state, dispatch),\n Backspace: (state, dispatch, view) => {\n joinPrevList(state, dispatch);\n resetHeading()(state, dispatch, view);\n return false;\n },\n Tab: (state, dispatch, view) => {\n sinkLiItem()(state, dispatch);\n view.focus();\n return true;\n },\n 'Shift-Tab': (state, dispatch, view) => {\n liftLiItem()(state, dispatch);\n view.focus();\n return true;\n },\n 'Ctrl-Shift-l': (state, dispatch, view) => {\n list(ListNode.BulletList)(state, dispatch);\n view.focus();\n return true;\n },\n 'Ctrl-Shift-m': (state, dispatch, view) => {\n list(ListNode.OrderedList)(state, dispatch);\n view.focus();\n return true;\n },\n};\n","import { toggleMark } from 'prosemirror-commands';\nimport { Command, TextSelection } from 'prosemirror-state';\nimport { isMarkActive } from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/commands';\n\n/**\n * Performs link menu item click event.\n *\n * @returns editor view command.\n */\nexport function link(): Command {\n return (state, dispatch, view) => {\n if (state.selection.empty) {\n view.dom.parentElement\n .getElementsByClassName('link')[0]\n .setAttribute('is-empty-link', 'true');\n view.updateState(view.state);\n } else {\n if (isMarkActive(state, state.schema.marks.link)) {\n const { from, to } = state.selection;\n const tr = state.tr.removeMark(from, to, state.schema.marks.link);\n\n const selectedText = state.doc.textBetween(from, to);\n const countOfWhitespacesAtEnd =\n selectedText.length - selectedText.trimEnd().length;\n tr.setSelection(\n TextSelection.create(tr.doc, to - countOfWhitespacesAtEnd),\n );\n dispatch(tr);\n return true;\n }\n toggleMark(state.schema.marks.link, {\n href: '',\n })(state, dispatch);\n view\n .domAtPos(state.selection.to - 1, -1)\n .node.parentElement.setAttribute('is-link', 'true');\n }\n return true;\n };\n}\n","import { keydownHandler } from 'prosemirror-keymap';\nimport { MarkType } from 'prosemirror-model';\nimport {\n EditorState,\n Plugin,\n PluginView,\n Selection,\n TextSelection,\n} from 'prosemirror-state';\nimport { Node } from 'prosemirror-model';\nimport { findChildrenByMark, findParentNode } from 'prosemirror-utils';\nimport { ContentNodeWithPos } from 'prosemirror-utils/dist/types';\nimport { Decoration, DecorationSet, EditorView } from 'prosemirror-view';\nimport { link } from 'src/app/shared/components/controls/rich-editor-box/markdown/links/commands';\nimport { isMarkActive } from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/commands';\nimport { LinkPopupComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/link-popup/link-popup.component';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\nconst className = 'pm-link-focus-deco';\n\nexport function getLinkTextNode(state: EditorState): {\n node: Node;\n pos: number;\n absolutePos: number;\n parent: ContentNodeWithPos;\n from: number;\n to: number;\n} | null {\n if (\n !(state.selection instanceof TextSelection) ||\n !state.selection.empty ||\n !isMarkActive(state, state.schema.marks.link)\n )\n return null;\n\n const parent = findParentNode(Boolean)(state.selection);\n\n if (!parent) {\n return null;\n }\n\n const textNodes = findChildrenByMark(parent?.node, state.schema.marks.link);\n\n const textNode = textNodes.find((n) => {\n const start = n.pos + parent.pos;\n const end = start + n.node.nodeSize;\n return start <= state.selection.from && end >= state.selection.from;\n })!;\n\n if (!textNode) return null;\n\n const absolutePos = textNode.pos + parent.pos + 1;\n\n return {\n ...textNode,\n absolutePos,\n parent,\n from: absolutePos,\n to: absolutePos + textNode.node.nodeSize,\n };\n}\n\nexport const linkPopupPlugin = (infoPopupService: InfoPopupService) => {\n let viewPopup: SelectionPopup | null = null;\n return new Plugin({\n view(view) {\n viewPopup = new SelectionPopup(view, infoPopupService);\n return viewPopup;\n },\n props: {\n handleKeyDown: keydownHandler({\n 'Ctrl-Shift-k': (state, dispatch, view) =>\n link()(state, dispatch, view),\n }),\n decorations(state) {\n const textNode = getLinkTextNode(state);\n if (!textNode) return DecorationSet.empty;\n\n const { from, to } = textNode;\n return DecorationSet.create(state.doc, [\n Decoration.inline(from, to, {\n class: `pm-node-selected ${className}`,\n }),\n ]);\n },\n },\n });\n};\n\nclass SelectionPopup implements PluginView {\n private textNodeRef: HTMLElement | undefined;\n private popupId: string;\n\n private get selection(): Selection {\n return this.view.state.selection;\n }\n\n constructor(\n private view: EditorView,\n private infoPopupService: InfoPopupService,\n ) {\n this.update(view, null);\n }\n\n public update(view: EditorView, prevState?: EditorState | null): void {\n if (!view.dom.parentNode) {\n this.hidePopup();\n return;\n }\n\n const { state } = view;\n\n const el = this.view.domAtPos(state.selection.to - 1, -1).node\n .parentElement;\n if (el && el.getAttribute('is-link')) {\n this.renderPopup(\n el as HTMLElement,\n {\n editorView: this.view,\n link: el.getAttribute('href') ?? '',\n text: el.innerText ?? '',\n },\n () =>\n view.dispatch(\n this.view.state.tr.setSelection(\n TextSelection.create(this.view.state.doc, state.selection.to),\n ),\n ),\n );\n el.removeAttribute('is-link');\n\n return;\n }\n\n if (\n prevState &&\n prevState.doc.eq(state.doc) &&\n prevState.selection.eq(this.selection)\n ) {\n const el = view.dom.parentElement.getElementsByClassName('link')[0];\n if (el && el.getAttribute('is-empty-link')) {\n this.renderPopup(el as HTMLElement, {\n editorView: this.view,\n });\n el.removeAttribute('is-empty-link');\n }\n return;\n }\n\n this.updateTextNodeRef();\n\n if (!this.textNodeRef) {\n if (\n this.view\n .domAtPos(this.selection.head + 1)\n .node.parentElement.closest('a') ||\n this.view\n .domAtPos(this.selection.to - 1)\n .node.parentElement.closest('a')\n ) {\n this.hidePopup();\n }\n\n return;\n }\n\n if (\n !this.infoPopupService.popups.length ||\n this.textNodeRef !== this.infoPopupService.popups[0].target\n ) {\n this.renderPopup(\n this.textNodeRef,\n {\n editorView: this.view,\n link: this.textNodeRef.getAttribute('href') ?? '',\n text: this.textNodeRef.innerText ?? '',\n },\n null,\n true,\n );\n }\n }\n\n /** Closes popups. */\n private hidePopup(): void {\n this.infoPopupService.close(this.popupId);\n }\n\n /** Updates text node ref. */\n private updateTextNodeRef(): void {\n const tagA = this.isInsideLink(\n this.view.state,\n this.view.state.schema.marks.link,\n )\n ? this.view.dom\n .getElementsByClassName(className)[0]\n ?.parentElement.closest('a')\n : null;\n this.textNodeRef = tagA;\n }\n\n /**\n * Renders popup for link creation/editing.\n *\n * @param el target element.\n * @param inputs LinkPopupComponent inputs.\n * @param onDestroy function to perform on destroy.\n * @param stopPropagation is need to stop propagation.\n */\n public renderPopup(\n el: HTMLElement,\n inputs: any,\n onDestroy: () => any = null,\n stopPropagation = false,\n ): void {\n if (stopPropagation) {\n this.hidePopup();\n el.onclick = (event: MouseEvent) => event.stopPropagation();\n }\n this.popupId = this.infoPopupService.open({\n target: el,\n data: {\n component: LinkPopupComponent,\n componentParams: {\n inputs,\n },\n },\n onDestroy,\n });\n }\n\n /**\n * Checks if cursor is inside link.\n *\n * @param state editor view state.\n * @param markType mark type to check (link).\n * @returns boolean value.\n */\n private isInsideLink(state: EditorState, markType: MarkType): boolean {\n if (this.selection.empty) {\n return !!markType.isInSet(\n state.storedMarks || this.selection.$from.marks(),\n );\n }\n\n const fromMark = !!markType.isInSet(this.selection.$from.marks());\n const toMark = !!markType.isInSet(this.selection.$to.marks());\n\n return fromMark && toMark;\n }\n}\n","import {\n normalizeReference,\n isSpace,\n} from 'node_modules/markdown-it/lib/common/utils.mjs';\nimport { stateFromUrl } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\n\n// eslint-disable-next-line complexity\nexport default function linkRuler(state, silent) {\n let code, label, res, ref;\n let href = '';\n let title = '';\n let start = state.pos;\n let parseReference = true;\n\n if (state.src.charCodeAt(state.pos) !== 0x5b /* [ */) {\n return false;\n }\n\n const oldPos = state.pos;\n const max = state.posMax;\n const labelStart = state.pos + 1;\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) {\n return false;\n }\n\n let pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28 /* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n if (pos >= max) {\n return false;\n }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29 /* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') {\n return false;\n }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5b /* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) {\n label = state.src.slice(labelStart, labelEnd);\n }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n if (stateFromUrl(href)) {\n const token = state.push('magic_link', '', 0);\n token.attrs = [['href', href]];\n token.content = state.src.slice(state.pos, state.posMax);\n } else {\n const token_o = state.push('link_open', 'a', 1);\n const attrs = [['href', href]];\n token_o.attrs = attrs;\n if (title) {\n attrs.push(['title', title]);\n }\n\n state.linkLevel++;\n state.md.inline.tokenize(state);\n state.linkLevel--;\n\n state.push('link_close', 'a', -1);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n}\n","import { NodeType } from 'prosemirror-model';\nimport {\n liftListItem,\n sinkListItem,\n wrapInList,\n} from 'prosemirror-schema-list';\nimport { Command, EditorState } from 'prosemirror-state';\nimport {\n blType,\n findAnyParentList,\n isIntoListOfType,\n ListNode,\n liType,\n olType,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/consts';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\n\n/**\n * Wraps in list depending on list type or just change type if parent is already list.\n * @param listType list type (bullet or ordered).\n * @returns editor view state command.\n */\nexport function toList(listType: NodeType): Command {\n return (state, dispatch) => {\n const parentList = findAnyParentList(state.schema)(state.selection);\n if (parentList) {\n if (listType === parentList.node.type) return true;\n\n dispatch?.(state.tr.setNodeMarkup(parentList.pos, listType));\n return true;\n }\n return wrapInList(listType)(state, dispatch);\n };\n}\n\n/**\n * Adds list block type.\n *\n * @param type list type.\n * @returns editor view state command.\n */\nexport function list(\n type: ListNode.BulletList | ListNode.OrderedList,\n): Command {\n return (state, dispatch) => {\n if (type === ListNode.BulletList) {\n return toList(blType(state.schema))(state, dispatch);\n }\n if (type === ListNode.OrderedList) {\n return toList(olType(state.schema))(state, dispatch);\n }\n };\n}\n\n/**\n * Lifts list item.\n *\n * @returns editor view state command.\n */\nexport function liftLiItem(): Command {\n return (state, dispatch) =>\n liftListItem(liType(state.schema))(state, dispatch);\n}\n\n/**\n * Sinks list item.\n *\n * @returns editor view state command.\n */\nexport function sinkLiItem(): Command {\n return (state, dispatch) =>\n sinkListItem(liType(state.schema))(state, dispatch);\n}\n\n/**\n * Changes lists menu items isActive and disabled properties.\n * @param item lists menu item.\n * @param state editor view current state.\n */\nexport function toggleListActiveAndDisable(\n item: MenuItem,\n state: EditorState,\n): void {\n item.subItems.find((item) => item.id === ListNode.BulletList).isActive =\n isIntoListOfType(ListNode.BulletList)(state);\n item.subItems.find((item) => item.id === ListNode.OrderedList).isActive =\n isIntoListOfType(ListNode.OrderedList)(state);\n\n const isParentActive = item.subItems.find(\n (item) =>\n (ListNode.BulletList === item.id || ListNode.OrderedList === item.id) &&\n item.isActive,\n );\n item.isActive = !!isParentActive;\n\n item.subItems.find((item) => item.id === 'lift_item').disabled =\n !item.isActive || !liftListItem(liType(state.schema))(state);\n item.subItems.find((item) => item.id === 'sink_item').disabled =\n !item.isActive || !sinkListItem(liType(state.schema))(state);\n}\n","import { Schema, Node } from 'prosemirror-model';\nimport { EditorState } from 'prosemirror-state';\nimport { findParentNodeOfType } from 'prosemirror-utils';\nimport { joinPreviousBlock } from 'src/app/shared/components/controls/rich-editor-box/commands/join';\n\nexport enum ListNode {\n ListItem = 'list_item',\n BulletList = 'bullet_list',\n OrderedList = 'ordered_list',\n}\n\nexport const nodeTypeFactory = (nodeName: string) => (schema: Schema) =>\n schema.nodes[nodeName];\n\nexport const liType = nodeTypeFactory(ListNode.ListItem);\nexport const blType = nodeTypeFactory(ListNode.BulletList);\nexport const olType = nodeTypeFactory(ListNode.OrderedList);\n\nexport const findAnyParentList = (schema: Schema) =>\n findParentNodeOfType([blType(schema), olType(schema)]);\n\nexport const isIntoListOfType = (nodeName: ListNode) => (state: EditorState) =>\n findAnyParentList(state.schema)(state.selection)?.node.type.name === nodeName;\n\nexport const isListNode = ({ type }: Node): boolean =>\n type === blType(type.schema) || type === olType(type.schema);\n\nexport const isListItemNode = (node: Node): boolean =>\n node.type === liType(node.type.schema);\n\nexport const isListOrItemNode = (node: Node): boolean =>\n isListNode(node) || isListItemNode(node);\n\nexport const joinPrevList = joinPreviousBlock({\n checkPrevNode: isListNode,\n skipNode: isListOrItemNode,\n});\n","import { wrappingInputRule } from 'prosemirror-inputrules';\nimport type { NodeType } from 'prosemirror-model';\n\n/**\n * Given a list node type, returns an input rule that turns a number\n * followed by a dot or parenthesis at the start of a textblock into an ordered list.\n */\nexport function orderedListRule(nodeType: NodeType) {\n return wrappingInputRule(\n /^(\\d+)([.)])\\s$/,\n nodeType,\n (match) => ({\n order: Number(match[1]),\n markup: match[2],\n }),\n (match, node) => node.childCount + node.attrs.order === Number(match[1]),\n );\n}\n\ninterface BulletListInputRuleConfig {\n /** @default true */\n dash?: boolean;\n /** @default true */\n asterisk?: boolean;\n}\n\n/**\n * Given a list node type, returns an input rule that turns a bullet\n * (dash or asterisk) at the start of a textblock into a\n * bullet list.\n */\nexport function bulletListRule(\n nodeType: NodeType,\n config?: BulletListInputRuleConfig,\n) {\n const bullets: string[] = [];\n if (config?.dash !== false) bullets.push('-');\n if (config?.asterisk !== false) bullets.push('*');\n if (bullets.length === 0) return null;\n\n const regexp = new RegExp(`^\\\\s*([${bullets.join('')}])\\\\s$`); // same as /^\\s*([-+*])\\s$/\n return wrappingInputRule(regexp, nodeType, (match) => ({ bullet: match[1] }));\n}\n","import { Node } from 'prosemirror-model';\nimport { Plugin, Transaction } from 'prosemirror-state';\nimport { findChildren, hasParentNode } from 'prosemirror-utils';\nimport { isListNode } from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/consts';\n\n// Code from https://github.com/gravity-ui/markdown-editor/blob/main/src/extensions/markdown/Lists/plugins/MergeListsPlugin.ts\n\nexport const mergeListsPlugin = () =>\n new Plugin({\n appendTransaction(trs, oldState, newState) {\n const docChanged = trs.some((tr) => tr.docChanged);\n if (!docChanged) return null;\n\n const hasParentList =\n hasParentNode(isListNode)(newState.selection) ||\n hasParentNode(isListNode)(oldState.selection);\n if (!hasParentList) return null;\n\n const { tr } = newState;\n const listNodes = findChildren(tr.doc, isListNode, true);\n\n mergeAdjacentNodesWithSameType(tr, listNodes);\n\n return tr.docChanged ? tr : null;\n },\n });\n\nfunction mergeAdjacentNodesWithSameType(\n tr: Transaction,\n nodes: ReturnType,\n): void {\n const posAfterMap: Partial> = {};\n\n for (const item of nodes) {\n const posBefore = item.pos;\n const posAfter = posBefore + item.node.nodeSize;\n\n posAfterMap[posAfter] = item.node;\n\n const nodeBefore = posAfterMap[posBefore];\n if (nodeBefore?.type === item.node.type) {\n tr.join(tr.mapping.map(posBefore));\n posAfterMap[posBefore] = undefined;\n }\n }\n}\n","import { RawParams, StateDeclaration } from '@uirouter/core';\nimport { isNodeSelection } from 'prosemirror-utils';\nimport { Selection } from 'prosemirror-state';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nexport const uiRouter: { states: StateDeclaration[] } = {\n states: [],\n};\n\n/**\n * Gets state from given url.\n *\n * @param url url string for check.\n * @param states state service all states list.\n * @returns found state or null.\n */\nexport function stateFromUrl(url: string): RawParams | null {\n if (!url) {\n return null;\n }\n\n let urlObject: URL;\n try {\n urlObject = new URL(url);\n } catch (_) {\n return null;\n }\n\n if (urlObject.hostname !== window.location.hostname) {\n return null;\n }\n\n let pathName = '/';\n const paths = urlObject.pathname.split('/');\n const index = paths.findIndex((path) => isGuid(path));\n for (let i = 0; i < index; i++) {\n if (paths[i]) {\n pathName += paths[i] + '/';\n }\n }\n pathName += paths[index];\n\n for (const state of uiRouter.states) {\n if (state.$$state().url?.exec) {\n const match = state.$$state().url.exec(pathName.replace(/\\/$/, ''));\n\n if (match && match.entityId && isGuid(match.entityId)) {\n return {\n state,\n params: match,\n };\n }\n }\n }\n\n return null;\n}\n\n/**\n * Checks if given string is guid.\n *\n * @param guid string for checking.\n * @returns boolean value.\n */\nfunction isGuid(guid: string): boolean {\n if (guid.match(Constants.guidRegex)) {\n return true;\n }\n return false;\n}\n\nexport const isMagicLinkSelection = (selection: Selection): boolean =>\n isNodeSelection(selection) && selection.node.type.name === 'magic_link';\n","import { Plugin } from 'prosemirror-state';\nimport { EditorView } from 'prosemirror-view';\nimport { stateFromUrl } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\n\nexport const magicLinkPastePlugin = () =>\n new Plugin({\n props: {\n handlePaste: (view: EditorView) => {\n const { tr } = view.state;\n\n view.state.tr.doc.descendants((node, pos) => {\n if (\n node.type.name === 'text' &&\n node.marks.find(\n (mark) => mark.type === view.state.schema.marks.link,\n ) &&\n stateFromUrl(node.text)\n ) {\n tr.replaceWith(\n tr.mapping.map(pos),\n tr.mapping.map(pos + node.nodeSize),\n view.state.schema.nodes.magic_link.create({\n href: node.text,\n title: node.text,\n pos: tr.mapping.map(pos),\n load: true,\n }),\n );\n }\n });\n\n view.dispatch(tr);\n },\n },\n });\n","import {\n MarkdownParser,\n MarkdownSerializer,\n MarkdownSerializerState,\n} from 'prosemirror-markdown';\nimport { Node } from 'prosemirror-model';\n\nconst magicLinkSerializer = (state: MarkdownSerializerState, node: Node) => {\n state.write(`[${node.attrs.title}](${node.attrs.href})`);\n};\n\nexport function setMagicLinkSerializer(\n serializer: MarkdownSerializer,\n parser: MarkdownParser,\n): void {\n serializer.nodes['magic_link'] = magicLinkSerializer;\n parser.tokens['magic_link'] = {\n node: 'magic_link',\n getAttrs: (tok) => ({\n href: tok.attrGet('href'),\n title: tok.content,\n load: tok.attrGet('load'),\n pos: tok.attrGet('pos'),\n }),\n };\n}\n","import { NodeSpec } from 'prosemirror-model';\n\nexport const magicLinkSpec: NodeSpec = {\n inline: true,\n group: 'inline',\n selectable: true,\n atom: true,\n attrs: {\n href: {},\n title: {},\n load: {},\n pos: {},\n },\n toDOM: (node) => [\n 'span',\n { class: 'magic-link', href: node.attrs.href },\n node.attrs.title,\n ],\n parseDOM: [\n {\n tag: 'span.magic-link',\n getAttrs: (dom) => ({\n href: dom.getAttribute('href'),\n load: dom.getAttribute('load'),\n pos: dom.getAttribute('pos'),\n title: dom.textContent,\n }),\n },\n ],\n};\n","import { Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { delay, switchMap, takeUntil } from 'rxjs/operators';\nimport { Node } from 'prosemirror-model';\nimport { EditorView } from 'prosemirror-view';\nimport _ from 'lodash';\nimport { DataService } from 'src/app/core/data.service';\nimport { LinkPopupComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/link-popup/link-popup.component';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { stateFromUrl } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\n\nexport class MagicLinkView {\n public dom: HTMLElement;\n\n private clickListener: () => void;\n private delayTime = 1000;\n private destroyed$ = new Subject();\n\n constructor(\n private node: Node,\n private renderer: Renderer2,\n private infoPopupService: InfoPopupService,\n private view: EditorView,\n private dataService: DataService,\n private entityTypesService: EntityTypesService,\n ) {\n this.dom = this.renderer.createElement('span');\n this.renderer.addClass(this.dom, 'magic-link');\n\n const link = this.renderer.createElement('a');\n this.renderer.setAttribute(link, 'href', this.node.attrs.href);\n\n const icon = this.renderer.createElement('i');\n this.renderer.addClass(icon, 'bi');\n this.renderer.addClass(icon, 'bi-card-checklist');\n\n const text = this.renderer.createElement('span');\n this.renderer.addClass(text, 'magic-link-name');\n text.textContent = this.node.attrs.title;\n\n this.dom.append(link);\n link.append(icon);\n link.append(text);\n\n this.clickListener = this.renderer.listen(\n link,\n 'click',\n (event: MouseEvent) => {\n event.preventDefault();\n\n if (this.dom.classList.contains('loading')) {\n return;\n }\n\n this.infoPopupService.open({\n target: this.dom,\n data: {\n component: LinkPopupComponent,\n componentParams: {\n inputs: {\n editorView: this.view,\n link: this.node.attrs.href ?? '',\n text: '',\n isMagicLink: true,\n },\n },\n },\n });\n },\n );\n\n const state = stateFromUrl(this.node.attrs.href);\n if (state && this.node.attrs.load) {\n const names = state.state.name.split('.');\n if (names[0] === 'settings') {\n names[0] = names[names.length - 1];\n }\n this.renderer.addClass(this.dom, 'loading');\n\n this.entityTypesService\n .getEntityTypeCollection(_.upperFirst(names[0]))\n .pipe(\n switchMap((collectionName) =>\n this.dataService\n .collection(collectionName)\n .entity(state.params.entityId)\n .get({ select: ['name'] }),\n ),\n delay(this.delayTime),\n takeUntil(this.destroyed$),\n )\n .subscribe({\n next: (entity) => {\n this.updateNodeView(text, entity.name ?? this.node.attrs.href);\n this.renderer.removeClass(this.dom, 'loading');\n },\n error: () => {\n this.renderer.removeClass(this.dom, 'loading');\n },\n });\n }\n }\n\n public destroy(): void {\n this.clickListener();\n this.destroyed$.next();\n }\n\n private updateNodeView(text: any, name: string): void {\n text.textContent = name;\n this.view.dispatch(\n this.view.state.tr.replaceWith(\n this.node.attrs.pos,\n this.node.attrs.pos + this.node.nodeSize,\n this.view.state.schema.nodes.magic_link.create({\n href: this.node.attrs.href,\n title: name,\n load: false,\n pos: this.node.attrs.pos,\n }),\n ),\n );\n }\n}\n","import MarkdownIt from 'markdown-it';\nimport {\n ruler2Func,\n tokenize,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/custom-rules';\nimport linkRuler from 'src/app/shared/components/controls/rich-editor-box/markdown/links/ruler';\nimport { additionalMarks } from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/consts';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nexport const md = MarkdownIt('commonmark', {\n html: false,\n breaks: true,\n maxNesting: 100,\n});\n\nconst defaultTextRenderer =\n md.renderer.rules.text ||\n function (tokens, idx, options, env, self) {\n return self.renderInline(tokens, idx, options);\n };\n\nmd.renderer.rules.mention = function (tokens, idx, options, env, self) {\n return `${defaultTextRenderer(tokens, idx, options, env, self)}`;\n};\n\nmd.inline.ruler.push('mention', function (state, silent) {\n let pos = state.pos;\n const start = pos;\n\n // Ignore mention rule if it is inside a link\n for (let i = 0; i < state.tokens.length; i++) {\n const token = state.tokens[i];\n\n if (token.type === 'link_open') {\n return false;\n }\n }\n\n // 0x40 - it is '@'\n if (state.src.charCodeAt(pos) !== 0x40) {\n return false;\n }\n\n const textBefore = state.src.slice(0, start);\n const textAfter = state.src.slice(start);\n\n if (Constants.emailRegex.test(textBefore + textAfter)) {\n return false;\n }\n\n pos++;\n\n while (pos < state.posMax && /[a-zA-Z0-9_]/.test(state.src.charAt(pos))) {\n pos++;\n }\n\n if (pos > start + 1) {\n if (!silent) {\n const token = state.push('mention', '', 0);\n token.content = state.src.slice(start, pos);\n }\n\n state.pos = pos;\n return true;\n }\n\n return false;\n});\n\nmd.inline.ruler.before('strikethrough', 'strike', (state, silent) =>\n tokenize(state, silent, additionalMarks.strike.markerCode),\n);\nmd.inline.ruler2.before('strikethrough', 'strike', (state) =>\n ruler2Func(state, additionalMarks.strike, 'strike'),\n);\n\nmd.inline.ruler.before('emphasis', 'ins', (state, silent) =>\n tokenize(state, silent, additionalMarks.ins.markerCode),\n);\nmd.inline.ruler2.before('emphasis', 'ins', (state) =>\n ruler2Func(state, additionalMarks.ins, 'ins'),\n);\n\nmd.inline.ruler.before('entity', 'samp', (state, silent) =>\n tokenize(state, silent, additionalMarks.samp.markerCode),\n);\nmd.inline.ruler2.before('fragments_join', 'samp', (state) =>\n ruler2Func(state, additionalMarks.samp, 'samp'),\n);\n\nconst defaultLinkRender =\n md.renderer.rules.link_open ||\n function (tokens, idx, options, env, self) {\n return self.renderToken(tokens, idx, options);\n };\n\nmd.renderer.rules.link_open = function (tokens, idx, options, env, self) {\n tokens[idx].attrPush(['target', '_blank']);\n return defaultLinkRender(tokens, idx, options, env, self);\n};\n\nmd.renderer.rules.magic_link = function (tokens, idx, options, env, self) {\n const href = tokens[idx].attrs[0][1];\n return `\n \n \n ${defaultTextRenderer(tokens, idx, options, env, self)}\n \n `;\n};\n\nmd.inline.ruler.at('link', (state, silent) => linkRuler(state, silent));\n","import { toggleMark } from 'prosemirror-commands';\nimport { Mark, MarkType, Node } from 'prosemirror-model';\nimport { Command, EditorState } from 'prosemirror-state';\nimport { NodeItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/consts';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\n\n/**\n * Toggles mark by id.\n *\n * @param id mark's id.\n * @returns editor view state command.\n */\nexport function markItem(id: NodeItem): Command {\n return (state, dispatch) =>\n toggleMark(state.schema.marks[id])(state, dispatch);\n}\n\n/**\n * Toggles mark menu item isActive.\n *\n * @param item clicked item.\n * @param state editor view state.\n */\nexport function toggleMarkActive(item: MenuItem, state: EditorState): void {\n item.isActive = !!isMarkActive(state, state.schema.marks[item.id]);\n\n if (item.id === 'code') {\n item.subItems.find((item) => item.id === 'inlineCode').isActive =\n item.isActive;\n }\n}\n\nexport function isMarkActive(state: EditorState, type: MarkType): boolean {\n const { from, $from, to, empty } = state.selection;\n\n if (empty) {\n return !!type.isInSet(state.storedMarks || $from.marks());\n }\n\n return state.doc.rangeHasMark(from, to, type);\n}\n\nexport const findMark = (node: Node, markType: MarkType): Mark | undefined =>\n node.marks.find((mark) => mark.type.name === markType.name);\n","import { MarkItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\n\nexport const tagMark = (tag: string): any => ({\n [tag]: {\n parseDOM: [{ tag }],\n toDOM: () => [tag, 0],\n },\n});\n\nexport const additionalMarks: Record = {\n // Strikethrough\n strike: {\n open: '~~',\n close: '~~',\n markerCode: 0x7e,\n },\n // Underline\n ins: {\n open: '++',\n close: '++',\n markerCode: 0x2b,\n },\n // Monospaced\n samp: {\n open: '##',\n close: '##',\n markerCode: 0x23,\n },\n};\n","import { FromTo } from 'prosemirror-autocomplete';\nimport { MarkdownSerializerState } from 'prosemirror-markdown';\nimport { Node } from 'prosemirror-model';\nimport { EditorView } from 'prosemirror-view';\n\nexport function insertMention(\n view: EditorView,\n label: string,\n id: string,\n range?: FromTo,\n): void {\n const { from, to } = range ?? view.state.selection;\n\n const { schema, tr } = view.state;\n const mention = schema.nodes.mention.create({ id, label });\n\n view.dispatch(tr.deleteRange(from, to).replaceSelectionWith(mention));\n}\n\nexport const MentionSerializer = (\n state: MarkdownSerializerState,\n node: Node,\n parent: Node,\n) => {\n let spaceBefore = ' ';\n let spaceAfter = ' ';\n\n parent.descendants((n, pos) => {\n if (n.eq(node)) {\n const childBefore = parent.childBefore(pos);\n const childAfter = parent.childAfter(pos + 1);\n\n if (childBefore?.node?.text && childBefore.node.text.endsWith(' ')) {\n spaceBefore = '';\n }\n\n if (childAfter?.node?.text && childAfter.node.text.startsWith(' ')) {\n spaceAfter = '';\n }\n\n return false;\n }\n\n return true;\n });\n\n state.write(`${spaceBefore}${node.attrs.label}${spaceAfter}`);\n};\n","import { NodeSpec } from 'prosemirror-model';\n\nexport const mentionSpec: NodeSpec = {\n inline: true,\n group: 'inline',\n selectable: false,\n atom: true,\n attrs: {\n id: {},\n label: {},\n },\n toDOM: (node) => [\n 'span',\n { class: 'mention', 'data-id': node.attrs.id },\n node.attrs.label,\n ],\n parseDOM: [\n {\n tag: 'span.mention',\n getAttrs: (dom) => ({\n id: dom.getAttribute('data-id'),\n label: dom.textContent,\n }),\n },\n ],\n};\n","import { Renderer2, WritableSignal } from '@angular/core';\nimport { Node } from 'prosemirror-model';\nimport _ from 'lodash';\n\nexport class MentionView {\n public dom: HTMLElement;\n\n private clickListener: () => void;\n\n constructor(\n private node: Node,\n private renderer: Renderer2,\n private mentionIds: WritableSignal,\n ) {\n this.dom = renderer.createElement('span');\n this.dom.textContent = node.attrs.label;\n renderer.addClass(this.dom, 'mention');\n\n if (node.attrs.id) {\n setTimeout(() => {\n mentionIds.update((mentions) => _.uniq(mentions.concat(node.attrs.id)));\n });\n }\n\n this.clickListener = renderer.listen(this.dom, 'click', () => {\n console.log(node.attrs);\n });\n }\n\n public stopEvent(event: any): boolean {\n return event.type === 'click';\n }\n\n public destroy(): void {\n if (this.node.attrs.id) {\n this.mentionIds.update((mentions) =>\n mentions.filter((id) => id !== this.node.attrs.id),\n );\n }\n\n this.clickListener();\n }\n}\n","import { Schema } from 'prosemirror-model';\nimport { addListNodes } from 'prosemirror-schema-list';\nimport { schema as basicSchema } from 'prosemirror-schema-basic';\nimport { tagMark } from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/consts';\nimport { mentionSpec } from 'src/app/shared/components/controls/rich-editor-box/markdown/mention/spec';\nimport { magicLinkSpec } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/spec';\n\nconst nodes = basicSchema.spec.nodes\n .remove('image')\n .addToEnd('mention', mentionSpec)\n .addToEnd('magic_link', magicLinkSpec);\n\nbasicSchema.spec.marks.get('link').inclusive = false;\nexport const newSchema = new Schema({\n nodes: addListNodes(nodes, '(paragraph | block) block*', 'block'),\n marks: basicSchema.spec.marks\n .remove('code')\n .append(tagMark('strike'))\n .append(tagMark('ins'))\n .append(tagMark('samp'))\n .append(tagMark('code')), // Code rank should be higher than other marks rank.\n});\n","export * from './rich-editor-box-menu.component';\nexport * from './link-popup/link-popup.component';\nexport * from './models/consts';\nexport * from './models/menu';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { EditorState, TextSelection } from 'prosemirror-state';\nimport { EditorView } from 'prosemirror-view';\nimport { getLinkTextNode } from 'src/app/shared/components/controls/rich-editor-box/markdown/links/popup-plugin';\nimport { stateFromUrl } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@Component({\n selector: 'tmt-link-popup',\n templateUrl: './link-popup.component.html',\n styleUrl: './link-popup.component.scss',\n imports: [CommonModule, SharedModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkPopupComponent implements OnInit, OnDestroy {\n @Input() public link = '';\n @Input() public text = '';\n @Input() public isMagicLink = false;\n\n @Input() private editorView: EditorView;\n\n public form: FormGroup = this.formBuilder.group({\n link: '',\n text: '',\n });\n public isUpdateMode = signal(false);\n\n public get state(): EditorState {\n return this.editorView.state;\n }\n\n constructor(\n private formBuilder: FormBuilder,\n private infoPopupService: InfoPopupService,\n ) {}\n\n ngOnInit(): void {\n this.form.patchValue({\n link: this.link,\n text: this.text,\n });\n this.isUpdateMode.set(!!(this.link || (!this.link && this.text)));\n }\n\n ngOnDestroy(): void {\n if (!this.link && this.text && !this.isMagicLink) {\n const textNode = getLinkTextNode(this.state);\n const { from, to } = textNode ?? this.getFromTo();\n this.editorView.dispatch(\n this.state.tr.removeMark(from, to, this.state.schema.marks.link),\n );\n }\n }\n\n /** Updates link. */\n public update(): void {\n if (!this.form.value.link) {\n return;\n }\n this.link = this.form.value.link;\n this.updateLinkMark({\n text: this.form.value.text || this.form.value.link,\n href: this.form.value.link,\n });\n this.close();\n }\n\n /** Creates new link. */\n public create(): void {\n if (!this.form.value.link) {\n return;\n }\n\n const attrs: Record = {\n text: this.form.value.text || this.form.value.link,\n href: this.form.value.link,\n };\n const schema = this.editorView.state.schema;\n const node = schema.text(attrs.text, [schema.marks.link.create(attrs)]);\n this.editorView.dispatch(this.state.tr.replaceSelectionWith(node, false));\n this.close();\n }\n\n /** Closes link popup. */\n public close(): void {\n setTimeout(() => this.infoPopupService.close());\n }\n\n /**\n * Updates link mark.\n *\n * @param attrs links new attributes.\n * @returns function for updating editor state.\n */\n private updateLinkMark(attrs: { text: string; href: string }): void {\n if (this.isMagicLink) {\n const { from, to } = this.state.selection;\n if (!this.form.value.text) {\n if (stateFromUrl(attrs.href)) {\n this.editorView.dispatch(\n this.editorView.state.tr.replaceWith(\n from,\n to,\n this.editorView.state.schema.nodes.magic_link.create({\n href: attrs.href,\n title: attrs.href,\n load: true,\n pos: from,\n }),\n ),\n );\n this.editorView.dispatch(\n this.editorView.state.tr.setSelection(\n TextSelection.create(this.editorView.state.doc, from + 1),\n ),\n );\n this.editorView.focus();\n } else {\n this.editorView.dispatch(\n this.state.tr.replaceWith(\n from,\n to,\n this.state.schema.text(attrs.href, [\n this.state.schema.marks.link.create(attrs),\n ]),\n ),\n );\n }\n return;\n }\n this.editorView.dispatch(\n this.state.tr.replaceWith(\n from,\n to,\n this.state.schema.text(this.form.value.text, [\n this.state.schema.marks.link.create(attrs),\n ]),\n ),\n );\n } else {\n const textNode = getLinkTextNode(this.state);\n const { from, to } = textNode ?? this.getFromTo();\n this.editorView.dispatch(\n this.state.tr.addMark(\n from,\n to,\n this.state.schema.marks.link.create(attrs),\n ),\n );\n }\n }\n\n /**\n * Gets from and to.\n *\n * @returns object with positions.\n */\n private getFromTo(): { from: number; to: number } {\n let { from, to } = this.state.selection;\n if (from === to) {\n const position = this.state.tr.doc.resolve(from);\n const parentInfo = position.parent.childBefore(position.parentOffset);\n from = parentInfo.offset + position.depth;\n to = from + (parentInfo.node?.nodeSize || 0);\n }\n\n return { from, to };\n }\n}\n","
    \n
    \n \n
    \n \n
    \n
    \n @if (!text || isMagicLink) {\n
    \n \n
    \n
    \n }\n
    \n @if (!isMagicLink) {\n \n }\n \n {{ (isUpdateMode() ? 'shared2.actions.save' : 'shared2.actions.create') | translate }}\n \n
    \n
    \n","export const ITEMS_IDS = [\n 'strong',\n 'em',\n 'strike',\n 'ins',\n 'samp',\n 'link',\n 'code',\n 'heading',\n 'heading0',\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6',\n 'lists',\n 'bullet_list',\n 'ordered_list',\n 'sink_item',\n 'lift_item',\n 'blockquote',\n 'code',\n 'inlineCode',\n 'additional',\n 'hr',\n] as const;\n\nexport type NodeItem = (typeof ITEMS_IDS)[number];\n","import { Command } from 'prosemirror-state';\nimport { NodeItem } from './consts';\nexport interface MenuItem {\n /** ID. */\n id: NodeItem;\n /** Command on click. */\n command: Command;\n /** Shows if active or not. */\n isActive?: boolean;\n /** Toggles isActive property on state change. */\n toggleActive?: (...args) => void;\n /** Title. */\n title: string;\n /** Icon class name. */\n bootstrapClassName?: string;\n /** Hot key for toggling item's activation. */\n hotKey?: string;\n /** Text for using instead of icon. */\n innerText?: string;\n /** Sub items for selecting in dropdown. */\n subItems?: Omit;\n /** Shows if hide dropdown arrow or not. Uses with subItems. */\n hideDropdownArrow?: boolean;\n /** Shows if item disabled or not. */\n disabled?: boolean;\n}\n\nexport interface MarkItem {\n /** Mark open symbols. */\n open: string;\n /** Mark close symbols. */\n close: string;\n /** Mark char code. */\n markerCode: number;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n NgbDropdownModule,\n NgbTooltipModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Options } from '@popperjs/core';\nimport { Selection } from 'prosemirror-state';\nimport { EditorView } from 'prosemirror-view';\nimport {\n addHr,\n disableHorizontalRule,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/additional/horizontal-rule/commands';\nimport { MenuItem } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box-menu/models/menu';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport {\n markItem,\n toggleMarkActive,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/marks/commands';\nimport {\n heading,\n toggleHeadingActive,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/heading/commands';\nimport {\n toggleBlockquoteActive,\n toggleQuote,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/blockquote/commands';\nimport {\n liftLiItem,\n list,\n sinkLiItem,\n toggleListActiveAndDisable,\n} from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/commands';\nimport { ListNode } from 'src/app/shared/components/controls/rich-editor-box/markdown/lists/consts';\nimport { isHrSelection } from 'src/app/shared/components/controls/rich-editor-box/markdown/additional/horizontal-rule/consts';\nimport { link } from 'src/app/shared/components/controls/rich-editor-box/markdown/links/commands';\nimport { isMagicLinkSelection } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\n\n@Component({\n selector: 'tmt-rich-editor-box-menu',\n templateUrl: './rich-editor-box-menu.component.html',\n styleUrl: './rich-editor-box-menu.component.scss',\n imports: [NgbTooltipModule, TranslateModule, CommonModule, NgbDropdownModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RichEditorBoxMenuComponent implements OnInit, AfterViewInit {\n @Input() public editorView: EditorView;\n\n public items: MenuItem[] = [];\n\n public popperOptions = (options: Partial) => {\n options.placement = 'bottom';\n options.modifiers.push({\n name: 'flip',\n options: {\n allowedAutoPlacements: ['top', 'bottom'],\n fallbackPlacements: ['top'],\n },\n });\n return options;\n };\n\n public get selection(): Selection {\n return this.editorView.state.selection;\n }\n\n constructor(\n public infoPopupService: InfoPopupService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.items = [\n {\n id: 'strong',\n bootstrapClassName: 'bi-type-bold',\n title: 'components.richEditorBoxComponent.props.bold',\n hotKey: 'Ctrl+B',\n command: markItem('strong'),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'em',\n bootstrapClassName: 'bi-type-italic',\n title: 'components.richEditorBoxComponent.props.italic',\n hotKey: 'Ctrl+I',\n command: markItem('em'),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'strike',\n bootstrapClassName: 'bi-type-strikethrough',\n title: 'components.richEditorBoxComponent.props.strikethrough',\n hotKey: 'Ctrl+Shift+S',\n command: markItem('strike'),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'ins',\n bootstrapClassName: 'bi-type-underline',\n title: 'components.richEditorBoxComponent.props.underline',\n hotKey: 'Ctrl+U',\n command: markItem('ins'),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'samp',\n innerText: 'M',\n title: 'components.richEditorBoxComponent.props.monospace',\n command: markItem('samp'),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'link',\n bootstrapClassName: 'bi-link-45deg',\n title: 'components.richEditorBoxComponent.props.link',\n hotKey: 'Ctrl+Shift+K',\n command: link(),\n toggleActive: (item, state) => toggleMarkActive(item, state),\n },\n {\n id: 'heading',\n innerText: 'H',\n title: 'components.richEditorBoxComponent.props.heading',\n command: () => null,\n toggleActive: (item, state) => toggleHeadingActive(item, state),\n subItems: [\n {\n id: 'heading0',\n innerText: 'T',\n title: 'components.richEditorBoxComponent.props.heading0',\n hotKey: 'Ctrl+Shift+0',\n command: heading(0),\n },\n {\n id: 'heading1',\n bootstrapClassName: 'bi-type-h1',\n title: 'components.richEditorBoxComponent.props.heading1',\n hotKey: 'Ctrl+Shift+1',\n command: heading(1),\n },\n {\n id: 'heading2',\n bootstrapClassName: 'bi-type-h2',\n title: 'components.richEditorBoxComponent.props.heading2',\n hotKey: 'Ctrl+Shift+2',\n command: heading(2),\n },\n {\n id: 'heading3',\n bootstrapClassName: 'bi-type-h3',\n title: 'components.richEditorBoxComponent.props.heading3',\n hotKey: 'Ctrl+Shift+3',\n command: heading(3),\n },\n {\n id: 'heading4',\n bootstrapClassName: 'bi-type-h4',\n title: 'components.richEditorBoxComponent.props.heading4',\n hotKey: 'Ctrl+Shift+4',\n command: heading(4),\n },\n {\n id: 'heading5',\n bootstrapClassName: 'bi-type-h5',\n title: 'components.richEditorBoxComponent.props.heading5',\n hotKey: 'Ctrl+Shift+5',\n command: heading(5),\n },\n {\n id: 'heading6',\n bootstrapClassName: 'bi-type-h6',\n title: 'components.richEditorBoxComponent.props.heading6',\n hotKey: 'Ctrl+Shift+6',\n command: heading(6),\n },\n ],\n },\n {\n id: 'lists',\n bootstrapClassName: 'bi-list-ul',\n title: 'components.richEditorBoxComponent.props.list',\n command: () => null,\n toggleActive: (item, state) => toggleListActiveAndDisable(item, state),\n subItems: [\n {\n id: 'bullet_list',\n bootstrapClassName: 'bi-list-ul',\n title: 'components.richEditorBoxComponent.props.bulletList',\n hotKey: 'Ctrl+Shift+L',\n command: list(ListNode.BulletList),\n },\n {\n id: 'ordered_list',\n bootstrapClassName: 'bi-list-ol',\n title: 'components.richEditorBoxComponent.props.orderedList',\n hotKey: 'Ctrl+Shift+M',\n command: list(ListNode.OrderedList),\n },\n {\n id: 'sink_item',\n bootstrapClassName: 'bi-text-indent-left',\n title: 'components.richEditorBoxComponent.props.sinkItem',\n hotKey: 'Tab',\n command: sinkLiItem(),\n },\n {\n id: 'lift_item',\n bootstrapClassName: 'bi-text-indent-right',\n title: 'components.richEditorBoxComponent.props.liftItem',\n hotKey: 'Shift+Tab',\n command: liftLiItem(),\n },\n ],\n },\n {\n id: 'blockquote',\n bootstrapClassName: 'bi-quote',\n title: 'components.richEditorBoxComponent.props.blockquote',\n hotKey: 'Ctrl+Shift+.',\n command: toggleQuote(),\n toggleActive: (item, state) => toggleBlockquoteActive(item, state),\n },\n {\n id: 'code',\n bootstrapClassName: 'bi-code-slash',\n title: 'components.richEditorBoxComponent.props.code',\n command: () => null,\n toggleActive: (item, state) => toggleMarkActive(item, state),\n subItems: [\n {\n id: 'inlineCode',\n bootstrapClassName: 'bi-code-slash',\n title: 'components.richEditorBoxComponent.props.inlineCode',\n hotKey: 'Ctrl+E',\n command: markItem('code'),\n },\n ],\n },\n {\n id: 'additional',\n bootstrapClassName: 'bi-three-dots',\n title: 'components.richEditorBoxComponent.props.additional',\n command: () => null,\n hideDropdownArrow: true,\n toggleActive: () => null,\n subItems: [\n {\n id: 'hr',\n bootstrapClassName: 'bi-dash',\n title: 'components.richEditorBoxComponent.props.hr',\n command: addHr(),\n },\n ],\n },\n ];\n }\n\n ngAfterViewInit(): void {\n this.toggleActive();\n }\n\n /** Toggles items isActive on editor view state change. */\n public toggleActive(): void {\n this.items.forEach((item) =>\n item.toggleActive(item, this.editorView.state),\n );\n this.cdr.markForCheck();\n }\n\n /** Performs actions on editor view state change. */\n public onEditorStateChange(): void {\n this.toggleActive();\n\n if (isHrSelection(this.selection)) {\n this.items\n .filter(\n (item) => !['blockquote', 'lists', 'additional'].includes(item.id),\n )\n .forEach((item) => (item.disabled = true));\n } else {\n this.items.forEach((item) => (item.disabled = false));\n }\n\n if (isMagicLinkSelection(this.selection)) {\n this.items.find((item) => item.id === 'link').disabled = true;\n } else {\n this.items.find((item) => item.id === 'link').disabled = false;\n }\n\n disableHorizontalRule(\n this.items.find((item) => item.id === 'additional'),\n this.editorView.state,\n );\n }\n\n public onItemClick(item: MenuItem): void {\n item.command(\n this.editorView.state,\n this.editorView.dispatch,\n this.editorView,\n );\n this.editorView.focus();\n }\n}\n","
    \n @for (item of items; track item.id) {\n @if (item.subItems) {\n \n \n \n @if (item.bootstrapClassName) {\n \n } @else {\n {{ item?.innerText }}\n }\n \n
    \n @for (subItem of item.subItems; track subItem.id) {\n \n \n @if (subItem.bootstrapClassName) {\n \n } @else {\n {{ subItem?.innerText }}\n }\n {{ subItem.title | translate }}\n \n @if (subItem.hotKey) {\n {{ subItem.hotKey }}\n }\n \n }\n
    \n
    \n \n } @else {\n \n @if (item.bootstrapClassName) {\n \n } @else {\n {{ item?.innerText }}\n }\n \n }\n }\n\n\n\n {{ item.title | translate }}\n @if (item.hotKey) {\n {{ item.hotKey }}\n }\n\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n Component,\n forwardRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n ViewRef,\n Renderer2,\n AfterViewInit,\n TemplateRef,\n Output,\n EventEmitter,\n Input,\n OnDestroy,\n signal,\n effect,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { EditorState } from 'prosemirror-state';\nimport { EditorView } from 'prosemirror-view';\nimport { history } from 'prosemirror-history';\nimport { baseKeymap } from 'prosemirror-commands';\nimport { keymap } from 'prosemirror-keymap';\nimport autocomplete, {\n KEEP_OPEN,\n AutocompleteAction,\n ActionKind,\n FromTo,\n closeAutocomplete,\n} from 'prosemirror-autocomplete';\nimport codemark from 'prosemirror-codemark';\nimport {\n MarkdownParser,\n MarkdownSerializer,\n defaultMarkdownParser,\n defaultMarkdownSerializer,\n} from 'prosemirror-markdown';\nimport { inputRules } from 'prosemirror-inputrules';\n\nimport {\n BehaviorSubject,\n Subject,\n debounceTime,\n fromEvent,\n switchMap,\n tap,\n} from 'rxjs';\nimport { LinkyPipe } from 'ngx-linky';\nimport { StateService } from '@uirouter/core';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport {\n UserInfoComponentParams,\n UserInfoComponent,\n} from 'src/app/shared/components/features/user-info';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\nimport { RichEditorBoxMenuComponent } from './rich-editor-box-menu';\nimport { md } from './markdown/markdown';\nimport { mergeListsPlugin } from './markdown/lists/merge-plugin';\nimport { additionalMarks } from './markdown/marks/consts';\nimport { bulletListRule, orderedListRule } from './markdown/lists/inputrules';\nimport { customKeymap } from './markdown/keymap';\nimport { MentionView } from './markdown/mention/view';\nimport { insertMention, MentionSerializer } from './markdown/mention/commands';\nimport { newSchema } from './markdown/schema';\nimport { linkPopupPlugin } from 'src/app/shared/components/controls/rich-editor-box/markdown/links/popup-plugin';\nimport { MagicLinkView } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/view';\nimport { setMagicLinkSerializer } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/serializer';\nimport { magicLinkPastePlugin } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/paste-plugin';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { uiRouter } from 'src/app/shared/components/controls/rich-editor-box/markdown/magic-link/helpers';\n\n@Component({\n selector: 'tmt-rich-editor-box',\n templateUrl: './rich-editor-box.component.html',\n styleUrls: ['./rich-editor-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichEditorBoxComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, SharedModule, RichEditorBoxMenuComponent],\n})\nexport class RichEditorBoxComponent\n extends AbstractBox\n implements ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy\n{\n @ViewChild('popup') private suggestionsEl: TemplateRef;\n @ViewChild(RichEditorBoxMenuComponent)\n private menuBar: RichEditorBoxMenuComponent;\n\n @Input() public placeholder = 'shared.comments.placeholder';\n @Input() public loadLimit = 50;\n @Input() public mentionedUserIds: string[];\n /** When `false`, propagation mode is `onExitFromEditing` */\n @Input() public isAlwaysEditingMode = false;\n //TODO: Add removing from scheme\n @Input() public hasMentions = true;\n @Input() public emptyText = '';\n\n @Output() public mentionedUserIds$ = new EventEmitter();\n @Output() public editing$ = new EventEmitter();\n\n public editorView: EditorView;\n public selectedSuggestion: any;\n public suggestions: any = [];\n public suggestionsLoading$ = new BehaviorSubject(true);\n public autocompleteValue$ = new Subject();\n public popupId: string;\n public content = '';\n public readonly = signal(false);\n public isFocused = signal(null);\n public isEditButtonShown = signal(true);\n public loadedPartly: boolean;\n public isEmpty: boolean;\n public propagateChange = (_: any) => null;\n public propagateTouch = () => null;\n\n private mentionIds = signal([]);\n private range: FromTo | null;\n private markdownParser: MarkdownParser;\n private onPasteLinker = new LinkyPipe();\n private currentContent = '';\n\n public get renderedValue(): string {\n return md.render(this.content ?? '');\n }\n\n constructor(\n private dataService: DataService,\n private infoPopupService: InfoPopupService,\n private scrollToService: ScrollToService,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n private el: ElementRef,\n private stateService: StateService,\n private entityTypesService: EntityTypesService,\n ) {\n super();\n\n uiRouter.states = this.stateService.get();\n\n effect(() => {\n const isReadonly = this.readonly();\n\n this.mentionedUserIds$.emit(this.mentionIds());\n this.editing$.emit(!isReadonly);\n\n if (isReadonly) {\n this.infoPopupService.close();\n }\n });\n\n effect(() => {\n if (this.isFocused() === false) {\n this.onBlur();\n }\n });\n }\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n if (!this.isAlwaysEditingMode) {\n this.propagationMode = PropagationMode.onExitFromEditing;\n }\n\n // TODO: to separate file\n Object.keys(additionalMarks).map((mark) => {\n defaultMarkdownSerializer.marks[mark] = {\n open: additionalMarks[mark].open,\n close: additionalMarks[mark].close,\n expelEnclosingWhitespace: true,\n mixable: true,\n };\n defaultMarkdownParser.tokens[mark] = {\n mark,\n };\n });\n // TODO: to separate file\n defaultMarkdownSerializer.nodes['mention'] = MentionSerializer;\n defaultMarkdownParser.tokens['mention'] = {\n node: 'mention',\n getAttrs: (tok) => ({\n id: tok.attrGet('data-id'),\n label: tok.content,\n }),\n };\n setMagicLinkSerializer(defaultMarkdownSerializer, defaultMarkdownParser);\n // TODO: to separate file\n const notRegisteredNodes = ['image'];\n notRegisteredNodes.forEach((key) => {\n delete defaultMarkdownSerializer.nodes[key];\n delete defaultMarkdownParser.tokens[key];\n });\n // TODO: to separate file\n this.markdownParser = new MarkdownParser(\n newSchema,\n md,\n defaultMarkdownParser.tokens,\n );\n // TODO: to separate file\n const markdownSerializer = new MarkdownSerializer(\n defaultMarkdownSerializer['nodes'],\n defaultMarkdownSerializer['marks'],\n { escapeExtraCharacters: /(? this.handleAutocomplete(action),\n }),\n history(),\n keymap(customKeymap),\n keymap(baseKeymap),\n ...codemark({ markType: newSchema.marks.code }),\n linkPopupPlugin(this.infoPopupService),\n magicLinkPastePlugin(),\n mergeListsPlugin(),\n inputRules({\n rules: [\n bulletListRule(newSchema.nodes.bullet_list),\n orderedListRule(newSchema.nodes.ordered_list),\n ],\n }),\n ],\n });\n\n this.editorView = new EditorView(\n this.el.nativeElement.querySelector('.editor-container'),\n {\n state,\n dispatchTransaction: (transaction) => {\n if (\n !(transaction.doc.content.size - 2) &&\n this.currentContent?.length > 2\n ) {\n transaction.storedMarks = null;\n }\n\n this.editorView.updateState(this.editorView.state.apply(transaction));\n this.menuBar?.onEditorStateChange();\n this.currentContent = markdownSerializer.serialize(\n this.editorView.state.doc,\n );\n this.updateIsEmpty();\n\n if (this.isAlwaysEditingMode) {\n if (\n this.propagationMode === PropagationMode.onInput &&\n this.content !== this.currentContent\n ) {\n this.content = this.currentContent;\n this.propagateChange(this.content);\n }\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.toggleControlDirty(this.currentContent, this.content);\n }\n }\n },\n nodeViews: {\n mention: (node) =>\n new MentionView(node, this.renderer, this.mentionIds),\n magic_link: (node) =>\n new MagicLinkView(\n node,\n this.renderer,\n this.infoPopupService,\n this.editorView,\n this.dataService,\n this.entityTypesService,\n ),\n },\n attributes: {\n class: 'comments-input', // TODO: make like options\n },\n transformPastedText: (text) => {\n this.editorView.pasteHTML(\n this.onPasteLinker.transform(md.render(text), {\n stripPrefix: false,\n }),\n );\n return '';\n },\n },\n );\n\n this.initSubscribers();\n\n if (!this.isAlwaysEditingMode) {\n this.readonly.set(true);\n this.editorView.dom.style.display = 'none';\n }\n\n this.updateEditorContent();\n this.cdr.markForCheck();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['mentionedUserIds']) {\n this.mentionIds.set(this.mentionedUserIds ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n this.editorView.destroy();\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.onBlur();\n }\n }\n\n public writeValue(value: any): void {\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.currentContent !== this.content\n ) {\n return;\n }\n\n value ??= '';\n this.content = value;\n this.currentContent = value;\n this.updateEditorContent();\n\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly.set(isDisabled);\n this.isEditButtonShown.set(!isDisabled);\n /** Editor's dom shown depends on isDisabled. */\n if (this.editorView) {\n this.editorView.dom.style.display = isDisabled ? 'none' : 'block';\n }\n /** When there is an edit button, enable an editor only by click. */\n if (!this.isAlwaysEditingMode) {\n this.readonly.set(true);\n if (this.editorView) {\n this.editorView.dom.style.display = 'none';\n }\n }\n\n if (!(this.cdr as ViewRef).destroyed) {\n this.cdr.markForCheck();\n }\n }\n\n public onBlur(): void {\n this.propagateTouch();\n\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.isAlwaysEditingMode &&\n this.content !== this.currentContent\n ) {\n this.content = this.currentContent;\n this.cdr.markForCheck();\n this.propagateChange(this.content);\n }\n }\n\n /**\n * Inserts node with selected suggestion.\n *\n * @param suggestion user or something else.\n */\n public onSuggestionClick(suggestion: any): void {\n insertMention(\n this.editorView,\n `@${suggestion?.email.split('@')[0]}`,\n suggestion.id,\n this.range,\n );\n closeAutocomplete(this.editorView);\n this.editorView.focus();\n }\n\n /** Makes editor editable. */\n public showEditor(): void {\n if (!this.isEditButtonShown()) {\n return;\n }\n\n this.editorView.dom.style.display = 'block';\n this.readonly.set(false);\n this.updateEditorContent();\n this.editorView.focus();\n this.ngControl.markAsDirty();\n this.cdr.detectChanges();\n }\n\n /** Makes editor readonly. */\n public makeReadonly(): void {\n this.editorView.dom.style.display = 'none';\n this.readonly.set(true);\n this.ngControl.markAsPristine();\n }\n\n /** Saves editor content and propagates change. */\n public save(): void {\n this.content = this.currentContent;\n this.propagateChange(this.content);\n this.makeReadonly();\n }\n\n /**\n * Opens user info if mention was clicked.\n *\n * @param event Mouse event.\n */\n public openUserInfo(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n if (!target?.classList.contains('mention')) {\n return;\n }\n\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n nickname: target.textContent,\n },\n injector: this.injector,\n },\n });\n }\n\n private openUsersPopup(): void {\n if (this.popupId) {\n this.infoPopupService.close(this.popupId);\n }\n\n this.popupId = this.infoPopupService.open({\n target: {\n getBoundingClientRect: () =>\n this.el.nativeElement\n .querySelector('.autocomplete')\n ?.getBoundingClientRect(),\n contextElement: this.el.nativeElement.querySelector('.ProseMirror'),\n },\n data: {\n templateRef: this.suggestionsEl,\n },\n containerStyles: {\n padding: 0,\n overflow: 'hidden',\n },\n isHideArrow: true,\n clickOutsideEnabled: false,\n });\n }\n\n private updateEditorContent(): void {\n this.editorView?.dispatch(\n this.editorView.state.tr.replaceWith(\n 0,\n this.editorView.state.doc.content.size,\n this.markdownParser.parse(this.content ?? '').content,\n ),\n );\n }\n\n private scrollToSelectRow(): void {\n if (this.selectedSuggestion && this.popupId) {\n this.scrollToService.scrollTo(this.selectedSuggestion.id, 'suggestions');\n }\n }\n\n private insertText(text: string, range?: FromTo): void {\n const { from, to } = range ?? this.editorView.state.selection;\n this.editorView.dispatch(\n this.editorView.state.tr.deleteRange(from, to).insertText(text),\n );\n }\n\n /** Updates isEmpty on editor state change. */\n private updateIsEmpty(): void {\n const doc = this.editorView?.state?.doc;\n this.isEmpty =\n doc?.childCount === 1 &&\n (doc?.firstChild?.type?.name === 'paragraph' ||\n doc?.firstChild?.type?.name === 'heading') &&\n doc?.firstChild?.childCount === 0;\n }\n\n /**\n * Autocomplete plugin handler.\n *\n * @param action AutocompleteAction.\n * @returns `boolean` or `KEEP_OPEN` - to keep the suggestion open after selecting.\n */\n private handleAutocomplete(\n action: AutocompleteAction,\n ): boolean | typeof KEEP_OPEN {\n if (!this.hasMentions) {\n return false;\n }\n\n switch (action.kind) {\n case ActionKind.open:\n this.range = action.range;\n this.autocompleteValue$.next('');\n this.openUsersPopup();\n\n return true;\n case ActionKind.up: {\n const currentIndex = !this.selectedSuggestion\n ? 0\n : this.suggestions.findIndex(\n (el) => el.id === this.selectedSuggestion.id,\n );\n\n if (currentIndex) {\n this.scrollToSelectRow();\n this.selectedSuggestion = this.suggestions[currentIndex - 1];\n this.cdr.markForCheck();\n }\n\n return true;\n }\n case ActionKind.down: {\n const currentIndex = !this.selectedSuggestion\n ? 0\n : this.suggestions.findIndex(\n (el) => el.id === this.selectedSuggestion.id,\n );\n\n if (currentIndex !== this.suggestions.length - 1) {\n this.scrollToSelectRow();\n this.selectedSuggestion = this.suggestions[currentIndex + 1];\n this.cdr.markForCheck();\n }\n\n return true;\n }\n case ActionKind.filter:\n this.range = action.range;\n this.autocompleteValue$.next(action.filter);\n\n return KEEP_OPEN;\n case ActionKind.enter: {\n insertMention(\n this.editorView,\n `@${this.selectedSuggestion?.email.split('@')[0]}`,\n this.selectedSuggestion?.id,\n action.range,\n );\n\n return true;\n }\n case ActionKind.close:\n this.infoPopupService.close(this.popupId);\n\n return true;\n default:\n return false;\n }\n }\n\n private initSubscribers(): void {\n fromEvent(this.editorView.dom, 'focus')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.isFocused.set(true));\n\n fromEvent(this.editorView.dom, 'blur')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.isFocused.set(false));\n\n this.autocompleteValue$\n .pipe(\n tap(() => {\n this.suggestionsLoading$.next(true);\n }),\n debounceTime(Constants.textInputClientDebounce),\n switchMap((search) => {\n this.suggestionsLoading$.next(true);\n\n const dataParams: any = {\n top: this.loadLimit,\n select: ['id', 'name', 'email'],\n filter: [{ isActive: true }],\n orderBy: 'name',\n };\n\n if (search.trim()) {\n dataParams.filter.push({\n or: [\n {\n 'tolower(name)': {\n contains: search.trim().toLowerCase(),\n },\n },\n {\n 'tolower(email)': {\n contains: search.trim().toLowerCase(),\n },\n },\n ],\n });\n }\n\n return this.dataService.collection('Users').query(dataParams);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((data) => {\n this.loadedPartly = data.length && data.length === this.loadLimit;\n\n this.suggestions = data;\n this.selectedSuggestion = this.suggestions[0];\n\n this.suggestionsLoading$.next(false);\n });\n }\n}\n","\n @if (readonly()) {\n @if (!content || !content.length) {\n \n {{ emptyText || 'shared.empty' | translate }}\n

    \n } @else {\n
    \n }\n\n @if (isEditButtonShown()) {\n \n \n \n }\n } @else {\n @if (editorView) {\n \n }\n\n @if (isEmpty) {\n \n {{ placeholder | translate }}\n \n }\n\n
    \n @if (!isAlwaysEditingMode) {\n
    \n \n \n
    \n } @else {\n \n }\n
    \n }\n\n\n\n \n @if (!(suggestionsLoading$ | async)) {\n @for (item of suggestions; track item.id) {\n \n
    \n \n
    \n
    {{ item.name }}
    \n \n \n } @empty {\n

    {{ 'shared.noOptions' | translate }}

    \n }\n @if (loadedPartly) {\n
    \n

    \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n

    \n
    \n }\n } @else {\n \n }\n \n
    \n","import { Fragment, Node } from 'prosemirror-model';\n\nexport interface NodeChild {\n node: Node;\n offset: number;\n index: number;\n}\n\n/**\n * Gets node's children.\n * @param node parent node.\n * @returns children array.\n */\nexport function getChildrenOfNode(node: Node | Fragment): NodeChild[] {\n const children: NodeChild[] = [];\n node.forEach((node, offset, index) => children.push({ node, offset, index }));\n return children;\n}\n\n/**\n * Gets node's last child.\n * @param node parent node.\n * @returns child node.\n */\nexport function getLastChildOfNode(node: Node | Fragment): NodeChild {\n const children = getChildrenOfNode(node);\n return children[children.length - 1];\n}\n","import { ResolvedPos } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection } from 'prosemirror-state';\n\nNodeSelection.prototype['selectionName'] = 'NodeSelection';\nTextSelection.prototype['selectionName'] = 'TextSelection';\n\n/**\n * Checks if state selection is text type.\n *\n * @param selection current selection.\n * @returns boolean value.\n */\nexport const isTextSelection = (\n selection: Selection,\n): selection is TextSelection =>\n selection['selectionName'] === TextSelection.prototype['selectionName'];\n\n/**\n * Checks if state selection is node type.\n *\n * @param selection current selection.\n * @returns boolean value.\n */\nexport const isNodeSelection = (\n selection: Selection,\n): selection is NodeSelection =>\n selection['selectionName'] === NodeSelection.prototype['selectionName'];\n\n/**\n * Gets cursor position.\n * @param selection editor view state current selection.\n * @returns cursor position or null.\n */\nexport const get$Cursor = (selection: Selection): ResolvedPos | null =>\n isTextSelection(selection) ? selection.$cursor : null;\n\n/**\n * Gets cursor position at current selection start.\n * @param selection editor view state current selection.\n * @returns cursor position or null.\n */\nexport function get$CursorAtBlockStart(\n selection: Selection,\n): ResolvedPos | null {\n const $cursor = get$Cursor(selection);\n if (!$cursor || $cursor.parentOffset > 0 || $cursor.parent.isInline)\n return null;\n return $cursor;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnInit,\n ViewChild,\n ViewRef,\n OnChanges,\n SimpleChanges,\n inject,\n DestroyRef,\n TemplateRef,\n ContentChild,\n AfterContentInit,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { firstValueFrom, isObservable, Observable } from 'rxjs';\nimport { auditTime, filter, map, take, tap } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ValueIteratee, groupBy, isFunction } from 'lodash';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DirectoriesService } from 'src/app/shared/services/directories.service';\nimport { AppService } from 'src/app/core/app.service';\n\n/** Контрол выбора значения из списка. */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'wp-select-box',\n templateUrl: './select-box.component.html',\n styleUrls: ['./select-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n standalone: false,\n})\nexport class SelectBoxComponent\n implements\n OnInit,\n OnChanges,\n ControlValueAccessor,\n AfterViewInit,\n AfterContentInit\n{\n @ViewChild('input') private inputEl: ElementRef;\n @ViewChild('expandingArea') private expandingArea: TemplateRef;\n @ViewChild('selectBoxContainer') private selectBoxContainer: ElementRef;\n @ContentChild('rowTemplate', { static: true })\n protected rowTemplate: TemplateRef;\n @ContentChild('prefixTemplate', { static: true })\n protected prefixTemplate: TemplateRef;\n\n /** Determines whether control works with id instead NamedEntity. */\n @Input() isIdMode = false;\n\n /** Максимальное число загружаемых строк (с сервера). */\n @Input() loadLimit = 50;\n\n /** Заменить пустого текста. */\n @Input() placeholder: string;\n\n /** Признак режима только-чтение. */\n @Input() readonly: boolean;\n\n /** Допустить очистку значения. */\n @Input() allowNull = true;\n\n /** Допустить выбор (с сервера) неактивных сущностей. */\n @Input() allowInactive = false;\n\n /** List of values, function or Observable. Highest priority. */\n @Input() values?: any = null;\n\n /** Имя коллекции на сервере. */\n @Input() collection?: string = null;\n\n /** Id of directory for getting directoryEntries as values. Priority higher that collection. */\n @Input() directory?: string | DirectoryParams = null;\n\n /** Признак необходимости фильтрации на сервере. */\n @Input() filterOnServer = true;\n\n /** Запрос (OData Query) к источнику (дополнительная фильтрация или запрос данных). */\n @Input() query: any = null;\n\n /** Признак, указывающий что выпадающая область будет иметь фиксированную позицию. */\n @Input() fixedPosition = false;\n\n /** Select input text and open expanding area after rendering. */\n @Input() autofocus?: boolean;\n\n /**\n * Group values by property, array of properties or callback.\n *\n * @example\n * groupHandler = \"key\";\n * groupHandler = \"['key1', 'key2', ...]\";\n * groupHandler = (item) => (item[prop] === 'example' ? 'Group1': 'Group2');\n */\n @Input() groupHandler: ValueIteratee;\n\n /** Key used as text/name/title for a select-box option. */\n @Input() optionLabel = 'name';\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n public get directoryId(): string {\n if (!this.directory) {\n return null;\n }\n\n if (typeof this.directory === 'string') {\n return this.directory;\n }\n\n return this.app.getPropertyRelatedDictionaryId(\n this.directory.entityName,\n this.directory.propertyName,\n );\n }\n\n public rows: any[] = [];\n public listOpened = false;\n public isLoading = false;\n public loadedPartly = false;\n public selectedRow: any;\n public textControl = new UntypedFormControl('');\n public disabled = false;\n public paddingLeft = '0.75rem';\n\n /** Symbol property to show grouped items title, allow create “hidden” property of rows item */\n public readonly groupName = Symbol();\n\n private storedRows: any[] = null;\n private popupId: string;\n private destroyRef = inject(DestroyRef);\n\n private _value: any = null;\n public set value(obj: any) {\n this._value = obj;\n this.textControl.setValue(obj ? obj[this.optionLabel] : '', {\n emitEvent: false,\n });\n this.textControl.markAsPristine();\n }\n public get value(): any {\n return this._value;\n }\n\n public get allValues(): any[] {\n return this.storedRows?.slice(0);\n }\n\n public get controlName(): string {\n return (\n this.el.nativeElement.attributes.getNamedItem('formControlName')\n ?.textContent ??\n this.el.nativeElement.attributes.getNamedItem('ng-reflect-name')\n ?.textContent\n );\n }\n\n constructor(\n private app: AppService,\n private scrollToService: ScrollToService,\n private translate: TranslateService,\n private data: DataService,\n private ref: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n private el: ElementRef,\n private directoriesService: DirectoriesService,\n ) {}\n\n public ngOnInit(): void {\n if (this.values) {\n this.filterOnServer = false;\n }\n\n this.textControl.valueChanges\n .pipe(\n tap((v) => {\n if (!v?.length && this.allowNull) {\n this.changeValue(null);\n }\n }),\n auditTime(this.filterOnServer ? 500 : 0),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (!this.listOpened) {\n this.openList();\n }\n\n if (this.filterOnServer) {\n this.storedRows = [];\n }\n\n this.refreshRows();\n });\n }\n\n public ngAfterViewInit(): void {\n if (this.inputEl && this.autofocus) {\n this.openList();\n }\n\n this.applyInitialValue();\n }\n\n public ngAfterContentInit(): void {\n this.updatePadding();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['readonly']) {\n this.disabled = this.readonly;\n this.ref.markForCheck();\n }\n }\n\n public writeValue(value: any): void {\n if (this.isIdMode && value) {\n const existEntity = this.rows.find((row) => row.id === value);\n if (existEntity) {\n this.value = existEntity;\n return;\n }\n if (this.values) {\n if (isObservable(this.values)) {\n this.values.pipe(take(1)).subscribe((val: NamedEntity[]) => {\n this.value = val.find((v) => v.id === value);\n });\n return;\n } else {\n const valueById = this.values.find((v) => v.id === value);\n this.value = valueById;\n return;\n }\n }\n if (this.directoryId || this.collection) {\n this.getEntityById(value)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((entity) => {\n this.value = entity;\n this.ref.markForCheck();\n });\n }\n return;\n }\n this.value = value;\n\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n if (!this.readonly) {\n this.disabled = isDisabled;\n }\n\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n /** Listens event OnBlur. */\n public onBlur(): void {\n this.propagateTouch();\n }\n\n /**\n * Selects row.\n *\n * @param row row\n */\n public selectRow(row: any): void {\n this.selectedRow = row;\n }\n\n /**\n * Listens event mousedownOnRow.\n *\n * @param event event.\n */\n public mousedownOnRow(event): void {\n event.preventDefault();\n }\n\n /**\n * Chooses value.\n *\n * @param row row.\n */\n public clickRow(row: any): void {\n this.changeValue(row);\n this.closeList();\n this.ref.markForCheck();\n }\n\n /**\n * Listens event onKeyDown.\n *\n * @param event KeyboardEvent.\n */\n public onKeyDown(event: KeyboardEvent): void {\n const escCode = 27;\n const enterCode = 13;\n const downCode = 40;\n const upCode = 38;\n\n if (event.keyCode === escCode) {\n this.cancel();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === enterCode) {\n // Очистили текст, нажали Enter (но нет активной записи) = убрали выбор.\n if (!this.textControl.value && !this.selectedRow) {\n if (this.allowNull) {\n this.changeValue(null);\n }\n this.cancel();\n return;\n }\n\n if (this.selectedRow) {\n this.clickRow(this.selectedRow);\n }\n }\n\n if (event.keyCode === downCode) {\n this.selectNext();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === upCode) {\n this.selectPrevious();\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.ref.detectChanges();\n }\n\n /** Listens event onClick. */\n public onInputClick(): void {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n /** CLears value. */\n public clear(): void {\n this.changeValue(null);\n this.closeList();\n }\n\n /** Closes list. */\n public closeList(): void {\n this.listOpened = false;\n this.selectedRow = null;\n this.infoPopupService.close(this.popupId);\n this.ref.detectChanges();\n }\n\n /** Opens list. */\n public openList(): void {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.selectedRow = null;\n this.inputEl.nativeElement.select();\n this.listOpened = true;\n\n this.popupId = this.infoPopupService.open({\n target: this.selectBoxContainer.nativeElement,\n data: {\n templateRef: this.expandingArea,\n },\n containerStyles: null,\n isHideArrow: true,\n popperModifiers: this.infoPopupService.controlPopperModifiers,\n onDestroy: () => {\n this.onCancel();\n this.listOpened = false;\n this.selectedRow = null;\n },\n });\n\n this.refreshRows();\n }\n\n /** Cancels changes. */\n public cancel(): void {\n this.closeList();\n this.onCancel();\n }\n\n /**\n * Gets readonly display text.\n *\n * @returns text as string.\n */\n public getReadOnlyDisplayText(): string {\n if (this.textControl.value) {\n return this.textControl.value;\n }\n\n return this.translate.instant('shared.valueNotSelected');\n }\n\n public changeFilter(filterPart: any): void {\n if (!this.query) {\n this.query = {};\n }\n\n this.query.filter = filterPart;\n }\n\n private updatePadding(): void {\n if (this.prefixTemplate) {\n setTimeout(() => {\n this.paddingLeft =\n this.el.nativeElement.querySelector('.prefix')\n .offsetWidth + 'px';\n this.ref.markForCheck();\n });\n }\n }\n\n private getEntityById(id: string): Observable {\n if (this.directoryId) {\n return this.directoriesService.getDirectoryEntries(this.directoryId).pipe(\n take(1),\n map(\n (entries: NamedEntity[]) =>\n entries.find((entry) => entry.id === id) ?? null,\n ),\n );\n }\n return this.data\n .collection(this.collection)\n .entity(id)\n .get({ select: ['id', 'name'] });\n }\n\n private applyInitialValue(): void {\n if (this.initialValue === undefined) {\n return;\n }\n if (this.inputEl) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.inputEl.nativeElement.value = this.initialValue;\n this.inputEl.nativeElement.dispatchEvent(event);\n } else if (this.initialValue === null) {\n this.inputEl.nativeElement.value = '';\n this.inputEl.nativeElement.dispatchEvent(event);\n }\n }\n this.initialValue = undefined;\n }\n\n private loadStoredRows(): Observable {\n return new Observable((subscribe) => {\n // Используем локальные значения, загрузка не нужна.\n if (this.values && !isObservable(this.values)) {\n const values = isFunction(this.values) ? this.values() : this.values;\n subscribe.next(values);\n return;\n }\n\n if (this.values && isObservable(this.values)) {\n this.isLoading = true;\n this.ref.detectChanges();\n (this.values as Observable).subscribe((data) => {\n this.isLoading = false;\n this.loadedPartly = false;\n subscribe.next(data);\n });\n return;\n }\n\n // Есть значения и загрузка не нужна.\n if (\n (this.collection || this.directoryId) &&\n !this.filterOnServer &&\n this.storedRows\n ) {\n subscribe.next(this.storedRows);\n return;\n }\n\n if (!this.directoryId && !this.collection) return;\n\n this.isLoading = true;\n this.ref.detectChanges();\n\n const dataParams: any = {\n top: this.loadLimit,\n select: ['id', 'name'],\n filter: [],\n orderBy: 'name',\n };\n\n if (!this.allowInactive) {\n dataParams.filter.push({ isActive: { eq: true } });\n }\n\n if (this.query) {\n if (this.query.filter) {\n dataParams.filter = dataParams.filter.concat(this.query.filter);\n }\n\n if (this.query.select) {\n dataParams.select = this.query.select;\n }\n\n if (this.query.expand) {\n dataParams.expand = this.query.expand;\n }\n }\n\n if (\n this.textControl.value.trim() &&\n this.filterOnServer &&\n this.textControl.dirty\n ) {\n dataParams.filter.push({\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': {\n contains: this.textControl.value.trim().toLowerCase(),\n },\n });\n }\n\n let requestCollection: string;\n if (this.directoryId) {\n dataParams.filter.push({\n directoryId: { type: 'guid', value: this.directoryId },\n });\n requestCollection = 'DirectoryEntries';\n } else {\n requestCollection = this.collection;\n }\n\n this.data\n .collection(requestCollection)\n .query(dataParams)\n .subscribe((data) => {\n this.isLoading = false;\n this.loadedPartly =\n this.loadLimit &&\n data.length === this.loadLimit &&\n data.length !== 0;\n subscribe.next(data);\n });\n });\n }\n\n private changeValue(value: any): void {\n this.updatePadding();\n this.propagateTouch();\n\n if (\n !(\n this._value === value ||\n (this._value && value && this._value.id === value.id)\n )\n ) {\n this.value = value;\n this.propagateChange(this.isIdMode ? (value?.id ?? null) : value);\n return;\n }\n\n this.value = value;\n }\n\n public refreshRows(): Promise {\n return new Promise((resolve) => {\n this.loadStoredRows().subscribe((data: any[]) => {\n this.storedRows = data;\n if (\n !this.filterOnServer &&\n this.textControl.dirty &&\n this.textControl.value.trim()\n ) {\n const filteringValue = this.textControl.value.toLowerCase().trim();\n this.rows = this.storedRows.filter(\n (row: any) =>\n row[this.optionLabel].toLowerCase().indexOf(filteringValue) !==\n -1,\n );\n } else {\n this.rows = Object.assign([], this.storedRows);\n }\n\n if (this.value) {\n this.selectRow(this.rows.find((row) => row.id === this.value.id));\n }\n\n if (this.groupHandler) {\n this.groupRows();\n }\n\n this.ref.detectChanges();\n\n this.infoPopupService.update(this.popupId);\n firstValueFrom(\n this.infoPopupService.event$.pipe(filter((e) => e.name === 'update')),\n ).then(() => {\n this.scrollToSelectRow();\n });\n\n resolve();\n });\n });\n }\n\n private groupRows(): void {\n let groupedRows = null;\n switch (typeof this.groupHandler) {\n case 'string':\n groupedRows = groupBy(\n this.rows,\n (item) => `${item[this.groupHandler as string]}`,\n );\n break;\n case 'object':\n groupedRows = groupBy(this.rows, (item) =>\n (this.groupHandler as string[]).reduce(\n (accumulator, currentValue) =>\n accumulator + item[currentValue] + ' ',\n ``,\n ),\n );\n break;\n case 'function':\n groupedRows = groupBy(this.rows, this.groupHandler);\n break;\n default:\n return;\n }\n this.rows = [];\n for (const group of Object.keys(groupedRows)) {\n for (const row of groupedRows[group]) {\n row[this.groupName] =\n group === 'null'\n ? this.translate.instant('shared.withoutGroup')\n : group;\n this.rows.push(row);\n }\n }\n }\n\n private selectNext(): void {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index < this.rows.length - 1) {\n this.selectedRow = this.rows[index + 1];\n this.scrollToSelectRow();\n }\n }\n }\n\n private selectPrevious(): void {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index > 0) {\n this.selectedRow = this.rows[index - 1];\n this.scrollToSelectRow();\n }\n }\n }\n\n private scrollToSelectRow(): void {\n if (this.selectedRow && this.listOpened) {\n this.scrollToService.scrollTo(this.selectedRow.id, 'selecting-list');\n }\n }\n\n private onCancel(): void {\n this.textControl.markAsPristine();\n\n if (this.textControl.value && this.value) {\n this.textControl.setValue(this.value[this.optionLabel], {\n emitEvent: false,\n });\n } else {\n if (this.allowNull) {\n this.changeValue(null);\n } else {\n // Если запрещено \"не выбрать\", но выбора еще не было - то ничего не делаем.\n if (this.value) {\n this.textControl.setValue(this.value[this.optionLabel], {\n emitEvent: false,\n });\n }\n }\n }\n }\n\n private propagateChange = (_: any) => null;\n private propagateTouch = () => null;\n}\n\nexport interface DirectoryParams {\n entityName: string;\n propertyName: string;\n}\n","\n \n\n @if (rowTemplate) {\n
    \n \n
    \n }\n\n ×\n\n \n\n\n\n {{ getReadOnlyDisplayText() }}\n

    \n\n\n
    \n
    \n \n\n \n \n @for (row of rows; track row.id) {\n @if (groupHandler && (!$index || row[groupName] !== rows[$index - 1][groupName])) {\n \n \n \n }\n \n \n \n } @empty {\n
    \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n }\n \n
    \n {{ row[groupName] }}\n
    \n @if (rowTemplate) {\n \n } @else {\n {{ row[optionLabel] }}\n }\n
    \n \n

    \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n

    \n
    \n
    \n \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { firstValueFrom, map } from 'rxjs';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { AbstractHierarchicalBoxComponent } from 'src/app/shared/components/controls/hierarchical-box/abstract-hierarchical-box.component';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport {\n ProjectTaskInfo,\n ProjectTaskInfoService,\n} from 'src/app/shared/services/project-tasks-info.service';\nimport _ from 'lodash';\n\ninterface ProjectTaskRow extends ProjectTaskInfo {\n nameOriginal: string;\n}\n\n/** Контрол ввода подразделения. */\n@Component({\n selector: 'tmt-task-box',\n templateUrl: './task-box.component.html',\n styleUrls: ['./task-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TaskBoxComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class TaskBoxComponent\n extends AbstractHierarchicalBoxComponent\n implements OnChanges, OnInit\n{\n @Input({ required: false }) public override collection = 'ProjectTasks';\n @Input({ required: false }) public override parentIdKey = 'leadTaskId';\n @Input({ required: true }) public projectId: string;\n @Input() public projectVersion: ProjectVersion;\n @Input() public userId: string;\n @Input() public showMainTask = true;\n @Input() public indent = 1;\n @Input() public filterFn: (tasks: ProjectTaskInfo[]) => ProjectTaskRow[];\n\n constructor(\n protected override notificationService: NotificationService,\n protected override translateService: TranslateService,\n protected override cdr: ChangeDetectorRef,\n protected override renderer: Renderer2,\n protected override el: ElementRef,\n private projectTasksService: ProjectTasksService,\n private projectTaskInfoService: ProjectTaskInfoService,\n ) {\n super(notificationService, null, translateService, cdr, renderer, el);\n }\n\n public ngOnInit(): void {\n if (this.items) {\n throw new Error('TaskBoxComponent does not supported \"items\" property');\n }\n }\n\n public override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes['projectId'] && !changes['projectId'].firstChange) {\n this.reloadData();\n return;\n }\n\n if (changes['projectVersion'] && !changes['projectVersion'].firstChange) {\n this.reloadData();\n }\n }\n\n public override writeValue(value: any): void {\n value = _.clone(value);\n this.enrichTask(value);\n this.setTextBoxValue(value);\n this.selectedRow = value;\n }\n\n /**\n * Propagates selected value.\n *\n * @param value any entity.\n */\n public override onSelected(value: ProjectTaskRow): void {\n if (\n this.selectedRow !== value ||\n (this.selectedRow && value && this.selectedRow.id !== value.id)\n ) {\n this.selectedRow = value;\n\n this.propagateChange(\n value\n ? {\n ...value,\n name: value.nameOriginal,\n [this.parentIdKey]: value[this.parentIdKey],\n }\n : null,\n );\n\n this.setTextBoxValue(value);\n }\n this.cancel();\n }\n\n protected override async loadData(): Promise {\n try {\n this.isLoading = true;\n this.cdr.markForCheck();\n\n let result = await firstValueFrom(\n this.userId\n ? this.projectTaskInfoService.getProjectTasksInfo(\n this.projectId,\n this.userId,\n )\n : this.projectTasksService\n .getProjectTasks(this.projectId, this.projectVersion, this.indent)\n .pipe(\n map((tasks) =>\n tasks.map((task) => {\n const taskInfo = {\n id: task.id,\n structNumber: task.structNumber,\n allowEntry: task.allowTimeEntry,\n indent: task.indent,\n isActive: task.isActive,\n leadTaskId: task.leadTaskId,\n number: task.number,\n name: task.name,\n crossId: task.crossId,\n startDate: task.startDate,\n endDate: task.endDate,\n } as ProjectTaskInfo;\n return taskInfo;\n }),\n ),\n ),\n );\n\n if (!this.showMainTask) {\n result = result.filter((r) => r[this.parentIdKey]);\n }\n\n if (this.filterFn) {\n result = this.filterFn(result);\n }\n\n result.forEach((task: ProjectTaskRow) => this.enrichTask(task));\n result.sort(naturalSort('name'));\n\n this.rows = result;\n this.isLoading = false;\n this.cdr.detectChanges();\n } catch (error) {\n this.errorHandler(error);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private async reloadData(): Promise {\n this.onSelected(null);\n await this.loadData();\n this.onSelected(this.rows[0]);\n }\n\n private enrichTask(task: ProjectTaskRow): void {\n if (task) {\n task.nameOriginal = task.name;\n task.name = task.structNumber\n ? `${task.structNumber ?? ''} ${task.name ?? ''}`\n : (task.name ?? '');\n }\n }\n}\n","@if (readonly) {\n \n {{ getReadOnlyDisplayText() }}\n

    \n} @else {\n \n \n\n ×\n \n\n
    \n @if (listOpened) {\n
    \n \n\n @if (!rows.length && !isLoading) {\n
    \n

    \n {{ 'shared.noOptions' | translate }}\n

    \n
    \n }\n\n @if (rows.length) {\n \n }\n
    \n }\n
    \n\n \n \n \n \n}\n","import {\n Component,\n forwardRef,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewRef,\n OnInit,\n ViewChild,\n ElementRef,\n AfterViewInit,\n Inject,\n Optional,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n booleanAttribute,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { fromEvent, pairwise, Subscription } from 'rxjs';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\nimport { TextBoxExtendedType } from 'src/app/shared/components/controls/text-box/text-box.model';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { PhonePipe } from 'src/app/shared/pipes/phone.pipe';\nimport { PhoneService } from 'src/app/shared/services/phone.service';\n\n/** Контрол ввода текста. */\n@Component({\n selector: 'wp-text-box',\n templateUrl: './text-box.component.html',\n styleUrls: ['./text-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TextBoxComponent\n extends AbstractBox\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n /** Заменить пустого текста. */\n @Input() placeholder: string;\n\n /** Признак режима только-чтение. */\n @Input({ transform: booleanAttribute }) readonly: boolean;\n\n /** Признак режима \"пароль\". */\n @Input() password = false;\n\n /** Признак установки автофокуса при отображении. */\n @Input() autofocus = false;\n\n /** Максимальная длина вводимого текста. */\n @Input() maxLength = Constants.formTextMaxLength;\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n /** Property for working in chosen link mode. */\n @Input() extendedType: TextBoxExtendedType;\n\n private keyboardSubscription: Subscription;\n\n @ViewChild('editor') editor: ElementRef;\n @ViewChild('clearBtn') clearBtn: ElementRef;\n\n public disabled = false;\n public viewType = 'text';\n public formControl = new UntypedFormControl(null);\n\n private _value = '';\n\n private get input(): HTMLInputElement | null {\n if (this.readonly) {\n return null;\n }\n return this.editor.nativeElement;\n }\n\n constructor(\n private ref: ChangeDetectorRef,\n @Optional() @Inject(NG_VALIDATORS) private validators: any,\n private phonePipe: PhonePipe,\n private phoneService: PhoneService,\n ) {\n super();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['readonly']) {\n this.disabled = this.readonly;\n this.ref.markForCheck();\n }\n }\n\n public ngOnInit(): void {\n if (this.password) {\n this.viewType = 'password';\n }\n\n this.formControl.valueChanges\n .pipe(pairwise(), takeUntilDestroyed(this.destroyRef))\n .subscribe(([oldValue, newValue]) => {\n newValue &&= newValue.trim();\n const isPhone = this.extendedType === 'phone';\n\n switch (this.propagationMode) {\n case PropagationMode.onInput: {\n let newControlValue: string;\n if (isPhone) {\n const newViewValue = this.phoneService.getFormattedPhoneValue(\n false,\n this.formControl.value,\n this.phoneService.extractNumbers(newValue).length >\n Constants.maxPhoneLength\n ? undefined\n : oldValue,\n );\n this.formControl.setValue(newViewValue, { emitEvent: false });\n newControlValue = this.phoneService.extractNumbers(newViewValue);\n } else {\n newControlValue = newValue;\n }\n this.toggleControlDirty(this._value, newControlValue);\n if (newControlValue === this._value) return;\n this._value = newControlValue;\n this.propagateChange(this._value);\n return;\n }\n\n case PropagationMode.onExitFromEditing: {\n if (isPhone) {\n this.toggleControlDirty(\n this.phonePipe.transform(this._value),\n newValue,\n );\n this.formControl.setValue(\n this.phoneService.getFormattedPhoneValue(\n false,\n this.formControl.value,\n oldValue,\n ),\n { emitEvent: false },\n );\n } else {\n this.toggleControlDirty(this._value, newValue);\n }\n return;\n }\n }\n });\n\n // Necessary for init value after valueChange subscription for init oldValue in pairwise\n this.formControl.setValue('');\n\n switch (this.extendedType) {\n case 'phone':\n this.placeholder = '+0 (000) 000-00-00';\n break;\n case 'email':\n this.placeholder = 'example@domain.com';\n break;\n case 'url':\n this.placeholder = 'https://example.com';\n break;\n default:\n }\n }\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n if (this.autofocus) {\n this.input?.focus();\n }\n\n this.applyInitialValue();\n }\n\n public ngOnDestroy(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.onExitEditing();\n }\n this.keyboardSubscription?.unsubscribe();\n }\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n public getTitle() {\n if (this.password) {\n return null;\n }\n\n return this.formControl.value;\n }\n\n writeValue(value: any): void {\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n (this.extendedType === 'phone'\n ? this._value !==\n this.phoneService.extractNumbers(this.formControl.value)\n : this._value !== this.formControl.value)\n ) {\n return;\n }\n\n this._value = value ? value : '';\n\n const formattedValue =\n this.extendedType === 'phone'\n ? this.phonePipe.transform(this._value)\n : this._value;\n\n this.formControl.setValue(formattedValue, { emitEvent: false });\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (!this.readonly) {\n this.disabled = isDisabled;\n }\n\n if (!(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n }\n\n /** Input onFocus logic.*/\n public onFocus(): void {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.initKeysSubscribes();\n }\n }\n\n /**\n * Handles the logic for when the input exits editing mode.\n *\n * @param resetValue - A boolean indicating whether to reset the form control's value to an empty string.\n * @param unsubscribe - A boolean indicating whether to unsubscribe from the keyboard events.\n */\n\n public onExitEditing(resetValue = false, unsubscribe = true): void {\n this.propagateTouch();\n if (unsubscribe) this.keyboardSubscription?.unsubscribe();\n let value = resetValue ? '' : this.formControl.value?.trim();\n\n if (resetValue) {\n this.formControl.setValue(value);\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.propagateChange(value);\n }\n\n return;\n }\n\n switch (this.extendedType) {\n case 'phone':\n value = this.getPhoneValue(value);\n break;\n case 'url':\n value = this.getUrlValue(value);\n this.formControl.setValue(value, { emitEvent: false });\n break;\n }\n if (this._value === value) {\n return;\n }\n\n this._value = value;\n this.propagateChange(value);\n }\n\n private getPhoneValue(value: string): string {\n const formatted = this.phoneService.getFormattedPhoneValue(true, value);\n this.formControl.setValue(formatted, { emitEvent: false });\n return this.phoneService.extractNumbers(formatted);\n }\n\n private getUrlValue(value: string): string {\n if (value && !/^https?:\\/\\//.test(value)) {\n value = `https://${value}`;\n }\n return value;\n }\n\n /** Apply initial value after rendering. */\n private applyInitialValue(): void {\n if (this.initialValue === undefined) {\n return;\n }\n if (!this.readonly && this.input) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.input.value = this.initialValue;\n this.input.dispatchEvent(event);\n this.input.focus();\n } else if (this.initialValue === null) {\n this.input.value = '';\n this.input.dispatchEvent(event);\n this.input.focus();\n }\n }\n this.initialValue = undefined;\n }\n\n /** Initializes keyboard listener. */\n private initKeysSubscribes() {\n this.keyboardSubscription?.unsubscribe();\n this.keyboardSubscription = fromEvent(window, 'keydown').subscribe(\n (event: KeyboardEvent) => {\n if (!event.repeat) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.onExitEditing(false, false);\n }\n }\n },\n );\n }\n}\n","
    \n \n \n @if (extendedType && formControl.value) {\n \n }\n \n \n \n \n
    \n@if (disabled && formControl.value) {\n @switch (extendedType) {\n @case ('phone') {\n {{ formControl.value }}\n }\n @case ('email') {\n {{ formControl.value }}\n }\n @case ('url') {\n {{\n formControl.value\n }}\n }\n @default {\n

    \n {{ formControl.value }}\n

    \n }\n }\n}\n@if (disabled && !formControl.value) {\n

    \n {{ 'shared.empty' | translate }}\n

    \n}\n\n\n @switch (extendedType) {\n @case ('phone') {\n \n \n \n }\n @case ('email') {\n \n \n \n }\n @case ('url') {\n \n \n \n }\n }\n\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n input,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\n\n@Component({\n selector: 'tmt-time-tracker-box',\n templateUrl: './time-tracker-box.component.html',\n styleUrls: ['./time-tracker-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeTrackerBoxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimeTrackerBoxComponent\n extends AbstractBox\n implements ControlValueAccessor, OnDestroy\n{\n private editor = viewChild('editor');\n\n public autofocus = input(false);\n public viewValue = signal('');\n public readonly = signal(false);\n\n public placeholder = '00:00';\n\n private hours: number;\n private previousViewValue: string;\n private delimiter = ':';\n private enterCode = 13;\n\n private get input(): null | HTMLInputElement {\n if (this.readonly()) {\n return null;\n }\n\n return (this.editor()?.nativeElement as HTMLInputElement) ?? null;\n }\n\n private propagateChange = (_: any) => null;\n private propagateTouch = () => null;\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n if (this.autofocus()) {\n this.input?.focus();\n }\n }\n\n public ngOnDestroy(): void {\n this.onBlur();\n }\n\n public writeValue(value: number): void {\n this.hours = value;\n this.updateViewValue();\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.readonly.set(isDisabled);\n }\n\n /** Handles editor input event. */\n public handleInput(): void {\n const selectionStart = this.input.selectionStart;\n const selectionEnd = this.input.selectionEnd;\n let value = this.input.value;\n\n const separators = [' ', '.', ',', ':'];\n\n separators\n .filter((x) => x !== this.delimiter)\n .forEach((separator: string) => {\n const newValue =\n value.indexOf(this.delimiter) === -1 ? this.delimiter : '';\n value = value.replace(separator, newValue);\n });\n\n const parts = value.split(this.delimiter);\n\n if (\n value.length > 5 ||\n parts.length > 2 ||\n isNaN(Number(parts[0])) ||\n (parts.length === 2 && isNaN(Number(parts[1])))\n ) {\n value = this.previousViewValue;\n }\n\n this.input.value = value ?? '';\n this.viewValue.set(value ?? '');\n this.input.setSelectionRange(selectionStart, selectionEnd);\n\n if (this.propagationMode === PropagationMode.onInput) {\n this.parseViewHours();\n }\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.toggleControlDirty(this.previousViewValue, value);\n }\n\n this.previousViewValue = value;\n }\n\n /**\n * Handles keydown event.\n *\n * @param event keyboard event.\n */\n public onKeydown(event: KeyboardEvent): void {\n if (this.readonly()) {\n return;\n }\n if (event.keyCode === this.enterCode) {\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.parseViewHours();\n }\n this.updateViewValue();\n }\n\n event.stopPropagation();\n }\n\n /** Handles input blur event. */\n public onBlur(): void {\n this.propagateTouch();\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.parseViewHours();\n }\n this.updateViewValue();\n }\n\n private changeValue(value: number): void {\n this.propagateChange(value);\n }\n\n /** Parses view hours. */\n private parseViewHours(): void {\n if (this.readonly() || !this.input) {\n return;\n }\n\n const viewValue = this.input.value;\n let hours: number;\n\n if (!viewValue) {\n if (this.hours !== null) {\n this.hours = null;\n this.changeValue(this.hours);\n }\n\n return;\n }\n\n const parts = viewValue.split(this.delimiter);\n\n if (parts.length > 2) {\n hours = 0;\n } else {\n let wholePart = '';\n let decimalPart = '';\n\n if (parts.length === 1) {\n if (parts[0].length === 0) {\n wholePart = '0';\n decimalPart = '0';\n } else {\n if (parts[0].length <= 2) {\n wholePart = '0';\n decimalPart = parts[0];\n } else {\n wholePart = parts[0].substring(0, parts[0].length - 2);\n decimalPart = parts[0].substring(parts[0].length - 2);\n }\n }\n } else {\n wholePart = parts[0];\n decimalPart = parts[1];\n }\n\n if (isNaN(Number(wholePart)) || wholePart.length === 0) {\n wholePart = '0';\n }\n\n if (isNaN(Number(decimalPart)) || decimalPart.length === 0) {\n decimalPart = '0';\n }\n\n hours = Number(wholePart) + Number(decimalPart) / 60;\n\n hours = Math.min(hours, 24);\n }\n\n if (this.hours !== hours) {\n this.hours = hours;\n this.changeValue(this.hours);\n }\n }\n\n /** Updates view value. */\n private updateViewValue(): void {\n if (this.hours === null || this.hours === 0) {\n this.viewValue.set('');\n } else {\n let minutesPart = Math.round(this.hours * 60);\n const hoursPart = Math.floor(minutesPart / 60);\n minutesPart = minutesPart % 60;\n\n let hoursStringPart = String(hoursPart);\n if (hoursStringPart.length === 1) {\n hoursStringPart = '0' + hoursStringPart;\n }\n\n let minutesStringPart = String(minutesPart);\n if (minutesStringPart.length === 1) {\n minutesStringPart = '0' + minutesStringPart;\n }\n this.viewValue.set(`${hoursStringPart}:${minutesStringPart}`);\n }\n }\n}\n","@if (!readonly()) {\n
    \n \n
    \n} @else {\n

    {{ viewValue() }}

    \n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Injector,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { firstValueFrom, Subscription } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { sortBy } from 'lodash';\nimport { SearchTask } from './search-task.model';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { auditTime } from 'rxjs/operators';\nimport { TimesheetProject } from './timesheet-project.model';\nimport { TimesheetProjectTask } from './timesheet-project-task.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { TaskInfoComponent } from 'src/app/shared/components/features/task-info/task-info.component';\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\nimport { TaskInfoParams } from 'src/app/shared/components/features/task-info/task-info.model';\nimport { TimesheetTask } from 'src/app/timesheets/card/shared/models/task.model';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtTimesheetTask]',\n templateUrl: './timesheet-task.component.html',\n styleUrls: ['./timesheet-task.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimesheetTaskComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetTaskComponent implements ControlValueAccessor {\n private inputEl = viewChild>('input');\n\n public userId = input.required();\n public timesheetTemplateId = input.required();\n public showClient = input();\n public theme = input<'cell' | 'input'>('cell');\n\n public task = signal(null);\n public openedTaskInfo = signal(null);\n public readonly = signal(false);\n public areaExpanded = signal(false);\n public clientsLoading = signal(false);\n public projectsLoading = signal(false);\n public tasksLoading = signal(false);\n public searchLoading = signal(false);\n public expandedTasks: string[] = []; // TODO: change to tree-list.component.\n public searchControl = this.fb.control('');\n public clients: NamedEntity[];\n public projects: TimesheetProject[];\n public tasks: TimesheetProjectTask[];\n public searchTasks: SearchTask[] = [];\n public selectedClient: NamedEntity;\n public selectedProject: TimesheetProject;\n public selectedTask: TimesheetProjectTask;\n public selectedSearchTask: SearchTask;\n public propagateChange = (_: any) => null;\n public propagateTouch = () => null;\n\n private clientLoadingSubscription: Subscription;\n private projectsLoadingSubscription: Subscription;\n private tasksLoadingSubscription: Subscription;\n private searchSubscription: Subscription;\n\n public get searchPh(): string {\n return this.showClient()\n ? 'timesheets.card.taskSelector.searchPlaceholder'\n : 'timesheets.card.taskSelector.searchPlaceholderWithoutClient';\n }\n\n public get phSelectTask(): string {\n return this.showClient()\n ? 'timesheets.card.columns.task.header'\n : 'timesheets.card.columns.taskWithoutClient.header';\n }\n\n constructor(\n private scrollToService: ScrollToService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private data: DataService,\n private translate: TranslateService,\n public infoPopupService: InfoPopupService,\n private injector: Injector,\n private timeSheetCacheService: TimeSheetCacheService,\n private appService: AppService,\n ) {\n this.searchControl.valueChanges\n .pipe(auditTime(Constants.textInputClientDebounce), takeUntilDestroyed())\n .subscribe(() => {\n this.search();\n });\n }\n\n public writeValue(obj: TimesheetTask | null): void {\n if (\n (obj.project?.id && !obj.project?.name) ||\n (obj.projectTask?.id && !obj.projectTask?.name)\n ) {\n this.getProjectValues(obj.project.id, obj.projectTask.id).then(\n (result) => {\n this.task.set(result);\n },\n );\n } else {\n this.task.set(obj);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.readonly.set(isDisabled);\n }\n\n /** Resets data and selected value. */\n public reset(): void {\n this.clients = [];\n this.projects = [];\n this.tasks = [];\n this.selectedClient = null;\n this.selectedProject = null;\n this.selectedTask = null;\n this.selectedSearchTask = null;\n this.searchControl.setValue('', { emitEvent: false });\n this.expandedTasks = [];\n }\n\n /** Opens select list. */\n public openArea(): void {\n if (this.readonly()) {\n return;\n }\n\n this.reset();\n\n if (this.showClient()) {\n this.clientsLoad();\n } else {\n this.projectsLoad();\n }\n\n this.areaExpanded.set(!this.areaExpanded());\n\n // Установить фокус на поле поиска.\n setTimeout(() => {\n this.inputEl().nativeElement.select();\n });\n }\n\n /** Closes select list and opened popup. */\n public close(): void {\n if (this.areaExpanded()) {\n this.areaExpanded.set(false);\n this.infoPopupService.close();\n }\n }\n\n /** Closes select list */\n public cancel(): void {\n if (this.areaExpanded()) {\n this.areaExpanded.set(false);\n }\n }\n\n /**\n * Selects clients.\n *\n * @param id client id.\n */\n public clientClick(id: string): void {\n this.cancelLoading();\n const client = this.clients.find((c) => c.id === id);\n\n this.selectedClient = client;\n\n this.projects = [];\n this.tasks = [];\n\n this.selectedProject = null;\n this.selectedTask = null;\n\n this.projectsLoad();\n }\n\n /**\n * Selects project.\n *\n * @param id project id.\n */\n public projectClick(id: string): void {\n this.cancelLoading();\n\n const project = this.projects.find((p) => p.id === id);\n\n this.selectedProject = project;\n\n this.tasks = [];\n this.selectedTask = null;\n\n this.tasksLoad();\n }\n\n /**\n * Selects task.\n *\n * @param id task id.\n * @param e Mouse event.\n */\n public taskClick(id: string, e: MouseEvent): void {\n // NOTE: ignore click if target is icon\n if ((e.target as HTMLElement).nodeName === 'SPAN') {\n return;\n }\n\n this.cancelLoading();\n const task = this.tasks.find((t) => t.id === id);\n if (!task.allowEntry) {\n return;\n }\n\n this.selectedTask = task;\n }\n\n /** Selects task from search list. */\n public searchTaskClick(id: string): void {\n const task = this.searchTasks.find((t) => t.id === id);\n this.selectedSearchTask = task;\n }\n\n /** Propagates selected value. */\n public ok(): void {\n if (!this.selectedSearchTask && !this.selectedTask) {\n return;\n }\n\n // Выбор строки из таблицы поиска.\n if (this.selectedSearchTask) {\n this.task.set({\n client: this.selectedSearchTask.organization.id\n ? this.selectedSearchTask.organization\n : null,\n project: {\n id: this.selectedSearchTask.project.id,\n name: this.selectedSearchTask.project.name,\n },\n projectTask: {\n id: this.selectedSearchTask.projectTask.id,\n name: this.selectedSearchTask.projectTask.name,\n },\n isMainTask: this.selectedSearchTask.isMainTask,\n billingTypeCode: this.selectedSearchTask.billingTypeCode,\n });\n } else {\n this.task.set({\n client: this.selectedProject.organizationId\n ? {\n id: this.selectedProject.organizationId,\n name: this.selectedProject.organizationName,\n }\n : null,\n project: this.selectedProject,\n projectTask: this.selectedTask,\n isMainTask: !this.selectedTask.leadTaskId,\n billingTypeCode: this.selectedProject.billingTypeCode,\n });\n }\n\n this.propagateChange(this.task());\n this.areaExpanded.set(false);\n }\n\n /** Selects tasks.\n *\n * @param task timesheet project task.\n */\n public selectTask(task: TimesheetProjectTask): void {\n if (task.allowEntry) {\n this.selectedTask = task;\n this.ok();\n }\n }\n\n /** TODO: change to tree-list.component. */\n public getTaskMargin(level: number, isLead: boolean): Record {\n let margin = 20 * level;\n\n if (isLead == undefined) {\n margin += 27;\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n return { 'margin-left': margin + 'px' };\n }\n\n /** Gets placeholder name. */\n public getClPrName(): string {\n if (!this.task().project) {\n return '';\n }\n\n let text = '';\n if (this.showClient()) {\n if (!this.task().client) {\n text = `[${this.translate.instant(\n 'timesheets.card.taskSelector.withoutClient',\n )}]`;\n } else {\n text = this.task().client.name;\n }\n\n if (!this.task().isMainTask) {\n text += ' > ';\n }\n }\n\n return this.task().isMainTask ? text : text + this.task().project.name;\n }\n\n /** TODO: change to tree-list.component. */\n public clickExpander(row: any): void {\n const task = this.tasks.find((t) => t.id === row.id);\n task.isExpanded = !row.isExpanded;\n\n if (task.isExpanded) {\n this.addExpanded(task.id);\n } else {\n this.removeExpanded(task.id);\n }\n\n this.updateTaskView();\n }\n\n /** TODO: to static variable. */\n public getHint(): string {\n if (!this.task().project) {\n return '';\n }\n\n let projectName = this.getClPrName();\n\n if (projectName) {\n projectName += '\\n';\n }\n\n return projectName + (this.task().projectTask?.name ?? '');\n }\n\n /**\n * Opens task info.\n *\n * @param $event Mouse event.\n * @param taskId project task id.\n */\n public openInfo($event: MouseEvent, taskId: string): void {\n if (!this.task()) {\n return;\n }\n\n $event.stopPropagation();\n this.infoPopupService.close();\n\n this.infoPopupService.open({\n target: $event.target,\n data: {\n component: TaskInfoComponent,\n params: {\n userId: this.userId(),\n projectTaskId: taskId,\n },\n injector: this.injector,\n },\n popperModifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 3],\n },\n },\n ],\n onDestroy: () => {\n this.openedTaskInfo.set(null);\n },\n });\n\n this.openedTaskInfo.set(taskId);\n }\n\n private clientsLoad(): void {\n this.clients = [];\n this.clientsLoading.set(true);\n\n this.clientLoadingSubscription = this.timeSheetCacheService\n .getOrganizations(this.userId(), this.timesheetTemplateId())\n .subscribe({\n next: (data) => {\n this.clients = data;\n\n if (this.clients.length > 0 && this.clients[0].id === null) {\n this.clients[0].id = 'null';\n this.clients[0].name =\n '[' +\n this.translate.instant(\n 'timesheets.card.taskSelector.withoutClient',\n ) +\n ']';\n }\n\n if (this.clients[0]?.id !== 'any') {\n this.clients.splice(0, 0, {\n id: 'any',\n name:\n '[' +\n this.translate.instant(\n 'timesheets.card.taskSelector.anyClient',\n ) +\n ']',\n });\n }\n\n this.clientsLoading.set(false);\n\n // If the client is existed in the value, try to find it in the uploaded ones and select the row\n if (this.task().project) {\n let selectedId: string;\n\n if (this.task().project && !this.task().client) {\n selectedId = 'null';\n } else {\n selectedId = this.task().client.id;\n }\n\n const currentClient = this.clients.find(\n (client) => client.id === selectedId,\n );\n if (currentClient) {\n this.selectedClient = currentClient;\n\n setTimeout(() => {\n this.scrollToService.scrollTo(\n this.selectedClient.id,\n 'clients-container',\n );\n });\n this.projectsLoad();\n return;\n }\n }\n\n // If no project is loaded in the value or not found, then select \"Any project\".\n this.selectedClient = { id: 'any', name: '' };\n this.projectsLoad();\n },\n error: (error: Exception) => {\n this.clientsLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n private projectsLoad(): void {\n this.projectsLoading.set(true);\n\n let organizationId: string | null | undefined = undefined;\n\n if (this.selectedClient && this.selectedClient.id !== 'any') {\n organizationId = this.selectedClient.id;\n }\n\n this.projectsLoadingSubscription = this.timeSheetCacheService\n .getProjects(this.userId(), this.timesheetTemplateId(), organizationId)\n .subscribe({\n next: (data) => {\n this.projects = data;\n this.projectsLoading.set(false);\n\n // If the project is existed in the value, try to find it in the uploaded ones and select the row.\n if (this.task().project) {\n const currentProject = this.projects.find(\n (project) => this.task().project.id === project.id,\n );\n if (currentProject) {\n this.selectedProject = currentProject;\n\n setTimeout(() => {\n this.scrollToService.scrollTo(\n this.selectedProject.id,\n 'projects-container',\n );\n });\n\n this.tasksLoad();\n }\n }\n },\n error: (error: Exception) => {\n this.projectsLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n private tasksLoad(): void {\n this.tasksLoading.set(true);\n this.tasks = [];\n\n this.tasksLoadingSubscription = this.timeSheetCacheService\n .getProjectTasks(\n this.userId(),\n this.timesheetTemplateId(),\n this.selectedProject.id,\n )\n .subscribe({\n next: (data) => {\n this.tasks = data;\n\n this.tasksLoading.set(false);\n\n // If the project task is existed in the value, try to find it in the uploaded ones and select the row.\n if (this.task().projectTask) {\n const currentTask = this.tasks.find(\n (task) => task.id === this.task().projectTask.id,\n );\n\n if (currentTask) {\n this.selectedTask = currentTask;\n\n // Expand all tree to target.\n this.expandUp(this.selectedTask.id);\n\n setTimeout(() => {\n this.scrollToService.scrollTo(\n this.selectedTask.id,\n 'tasks-container',\n );\n });\n }\n }\n\n // Expand lead task.\n const leadTask = this.tasks.find((task) => !task.leadTaskId);\n this.addExpanded(leadTask.id);\n this.updateTaskView();\n },\n error: (error: Exception) => {\n this.tasksLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n private search(): void {\n this.searchTasks = [];\n this.selectedSearchTask = null;\n this.searchLoading.set(true);\n\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n\n const text = encodeURIComponent(\n `'${this.searchControl.value.split(\"'\").join(\"''\")}'`,\n );\n\n this.searchSubscription = this.data.model\n .function('SearchTimeTrackingProjectTasks')\n .query(\n {\n userId: this.appService.session.user.id,\n timesheetTemplateId: this.timesheetTemplateId(),\n text,\n },\n { orderBy: 'projectTask/name' },\n )\n .subscribe({\n next: (data) => {\n this.searchTasks = data;\n\n this.searchTasks.forEach((task) => {\n task.id = task.projectTask.id;\n\n if (!task.organization) {\n task.organization.name =\n '[' +\n this.translate.instant(\n 'timesheets.card.taskSelector.withoutClient',\n ) +\n ']';\n }\n });\n this.searchLoading.set(false);\n },\n error: (error: Exception) => {\n this.searchLoading.set(false);\n this.notification.error(error.message);\n },\n });\n }\n\n // TODO: change to tree-list.component\n private updateTaskView(): void {\n const createdRows = [];\n const isTaskShow = (leadTaskId) => {\n if (!leadTaskId) {\n return true;\n }\n\n const t = this.tasks.find((task) => task.id === leadTaskId);\n if (t.isExpanded === false) {\n return false;\n }\n\n if (t.leadTaskId) {\n return isTaskShow(t.leadTaskId);\n }\n\n return true;\n };\n\n const renderLevel = (\n renderTasks: TimesheetProjectTask[],\n indent: number,\n ) => {\n const rows = sortBy(renderTasks, 'number');\n\n for (let i = 0; i < rows.length; i++) {\n const storedTask = this.tasks.find((t) => t.id === rows[i].id);\n const task = rows[i];\n\n task.isShow = true;\n\n const childTasks = this.tasks.filter(\n (t) => t.leadTaskId === rows[i].id,\n );\n\n // Обнаружили суммарную задачу.\n if (childTasks.length > 0) {\n storedTask.isExpanded = task.isExpanded = this.isExpanded(task.id);\n } else {\n storedTask.isExpanded = null;\n }\n\n // Установка видимости задачи.\n task.isShow = isTaskShow(task.leadTaskId);\n task.indent = indent;\n createdRows.push(task);\n renderLevel(childTasks, indent + 1);\n }\n };\n\n const tasks = this.tasks.filter((task) => !task.leadTaskId);\n renderLevel(tasks, 0);\n this.tasks = createdRows;\n }\n\n /** TODO: change to tree-list.component. */\n private addExpanded(id: string): void {\n if (!this.expandedTasks.find((taskId) => taskId === id)) {\n this.expandedTasks.push(id);\n }\n }\n\n /** TODO: change to tree-list.component. */\n private removeExpanded(id: string): void {\n for (let i = 0; i < this.expandedTasks.length; i++) {\n if (this.expandedTasks[i] === id) {\n this.expandedTasks.splice(i, 1);\n return;\n }\n }\n }\n\n /** TODO: change to tree-list.component. */\n private expandUp(id: string): void {\n const task = this.tasks.find((t) => t.id === id);\n this.addExpanded(id);\n if (task && task.leadTaskId) {\n this.expandUp(task.leadTaskId);\n }\n }\n\n /** TODO: change to tree-list.component. */\n private isExpanded(id: string): boolean {\n for (let i = 0; i < this.expandedTasks.length; i++) {\n if (this.expandedTasks[i] === id) {\n return true;\n }\n }\n return false;\n }\n\n // Cancels current loadings.\n private cancelLoading(): void {\n if (this.clientLoadingSubscription) {\n this.clientLoadingSubscription.unsubscribe();\n }\n\n if (this.projectsLoadingSubscription) {\n this.projectsLoadingSubscription.unsubscribe();\n }\n\n if (this.tasksLoadingSubscription) {\n this.tasksLoadingSubscription.unsubscribe();\n }\n\n this.projectsLoading.set(false);\n this.clientsLoading.set(false);\n this.tasksLoading.set(false);\n }\n\n private async getProjectValues(\n projectId: string,\n projectTaskId: string,\n ): Promise {\n const projects = await firstValueFrom(\n this.timeSheetCacheService.getProjects(\n this.userId(),\n this.timesheetTemplateId(),\n undefined,\n ),\n );\n const project = projects.find((v) => v.id === projectId);\n let projectTask = null;\n\n if (project) {\n const projectTasks = await firstValueFrom(\n this.timeSheetCacheService.getProjectTasks(\n this.userId(),\n this.timesheetTemplateId(),\n project.id,\n ),\n );\n projectTask = projectTasks.find((v) => v.id === projectTaskId);\n }\n\n return {\n client: !project.organizationId\n ? null\n : {\n id: project.organizationId,\n name: project.organizationName,\n },\n project,\n projectTask,\n isMainTask: projectTask && !projectTask.leadTaskId,\n billingTypeCode: project?.billingTypeCode,\n };\n }\n}\n","\n \n @if (task().project) {\n
    \n {{ getClPrName() }}\n
    \n
    {{ task()?.projectTask?.name }}
    \n } @else {\n @if (theme() === 'cell' || (theme() === 'input' && !readonly())) {\n
    \n {{ phSelectTask | translate }}\n
    \n }\n\n @if (theme() === 'input' && readonly()) {\n

    \n {{ 'shared.valueNotSelected' | translate }}\n

    \n }\n }\n\n @if (task().projectTask) {\n \n }\n\n \n \n\n @if (areaExpanded()) {\n \n\n
    \n \n \n \n \n @if (showClient()) {\n \n }\n\n \n \n \n \n
    \n {{ 'timesheets.card.taskSelector.client' | translate }}\n \n {{ 'timesheets.card.taskSelector.project' | translate }}\n \n {{ 'timesheets.card.taskSelector.task' | translate }}\n
    \n\n \n @if (searchControl.value) {\n \n \n \n \n \n \n
    \n
    \n @if (searchLoading()) {\n \n } @else {\n @if (!searchTasks.length) {\n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n }\n\n \n \n @for (searchTask of searchTasks; track searchTask.id) {\n \n @if (showClient()) {\n \n }\n\n \n\n \n \n }\n \n
    \n
    {{ searchTask.organization.name }}
    \n
    \n
    {{ searchTask.project.name }}
    \n
    \n
    {{ searchTask.projectTask.name }}
    \n
    \n\n @if (searchTasks.length === 50) {\n
    \n {{ 'timesheets.card.taskSelector.displayFirst50Records' | translate }}\n
    \n }\n }\n
    \n
    \n } @else {\n \n \n \n @if (showClient()) {\n \n }\n\n \n\n \n \n \n
    \n
    \n @if (clientsLoading()) {\n \n } @else {\n \n \n @for (client of clients; track client.id) {\n \n \n \n }\n \n
    \n
    {{ client.name }}
    \n
    \n }\n
    \n
    \n
    \n @if (projectsLoading()) {\n \n } @else {\n @if (!projects.length) {\n
    \n {{ 'timesheets.card.taskSelector.empty' | translate }}\n
    \n }\n\n \n \n @for (project of projects; track project.id) {\n \n \n \n }\n \n
    \n
    {{ project.name }}
    \n
    \n }\n
    \n
    \n
    \n @if (tasksLoading()) {\n \n } @else {\n @if (!tasks.length) {\n
    \n {{ 'timesheets.card.taskSelector.empty' | translate }}\n
    \n }\n\n \n \n @for (projectTask of tasks; track projectTask.id) {\n \n \n \n @if (projectTask.isExpanded === true) {\n \n }\n\n @if (projectTask.isExpanded === false) {\n \n }\n\n {{ projectTask.name }}\n \n\n \n \n \n }\n \n
    \n }\n
    \n
    \n }\n\n \n
    \n @if (selectedTask || selectedSearchTask) {\n \n }\n\n \n
    \n
    \n }\n\n","import {\n Component,\n OnInit,\n forwardRef,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n AfterViewInit,\n OnChanges,\n SimpleChanges,\n inject,\n DestroyRef,\n TemplateRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormControl,\n} from '@angular/forms';\nimport { DataService } from 'src/app/core/data.service';\nimport { Observable, firstValueFrom, of } from 'rxjs';\nimport { debounceTime, filter, first, tap } from 'rxjs/operators';\nimport { isFunction } from 'lodash';\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { StandaloneFormControlDirective } from 'src/app/shared/directives/form-control.directive';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\n/** Контрол выбора пользователя. */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'wp-user-box',\n templateUrl: './user-box.component.html',\n styleUrls: ['./user-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => UserBoxComponent),\n multi: true,\n },\n ],\n hostDirectives: [\n {\n directive: StandaloneFormControlDirective,\n inputs: ['formControl: control'],\n },\n ],\n standalone: false,\n})\nexport class UserBoxComponent\n implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor\n{\n @ViewChild('expandingArea') private expandingArea: TemplateRef;\n\n public resourceType = ResourceType;\n public loadLimit = 50;\n private collection = 'Users';\n\n /** Заменить пустого текста. */\n @Input() placeholder: string;\n\n /** Признак режима только-чтение. */\n @Input() readonly: boolean;\n\n /** Допустить очистку значения. */\n @Input() allowNull = true;\n\n /** Допустить выбор (с сервера) неактивных сущностей. */\n @Input() allowInactive = false;\n\n /** Запрос (OData Query) к источнику (дополнительная фильтрация или запрос данных). */\n @Input() query: any = null;\n\n /** Select input text and open expanding area after rendering. */\n @Input() autofocus?: boolean;\n\n @Input() users?: NamedEntity[];\n\n /** Initial value for input element after rendering. */\n @Input() initialValue?: unknown;\n\n /** Angular abstract control for binding to form outside of template. */\n @Input() control?: AbstractControl;\n\n @ViewChild('input') inputEl: ElementRef;\n\n private _value: any = null;\n set value(obj: any) {\n this._value = obj;\n this.textControl.setValue(obj ? obj.name : '', { emitEvent: false });\n this.textControl.markAsPristine();\n }\n get value(): any {\n return this._value;\n }\n\n rows: any[] = [];\n listOpened = false;\n isLoading = false;\n loadedPartly = false;\n selectedRow: any;\n textControl = new UntypedFormControl('');\n\n /** Property for opens list without inputs text selecting by keyboard key init event. */\n private openListWithInputSelect = true;\n private popupId: string;\n private readonly destroyRef = inject(DestroyRef);\n\n propagateChange = (_: any) => null;\n propagateTouch = () => null;\n\n constructor(\n private scrollToService: ScrollToService,\n private element: ElementRef,\n private data: DataService,\n private ref: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n ) {}\n\n public ngOnInit(): void {\n this.textControl.valueChanges\n .pipe(\n tap((v) => {\n if (!v?.length && this.allowNull) {\n this.changeValue(null);\n }\n }),\n debounceTime(500),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (!this.listOpened) {\n this.openList();\n }\n this.refreshRows();\n });\n\n this.infoPopupService.event$\n .pipe(\n filter((e) => e.name === 'destroy' && e.popup?.id === this.popupId),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onCancel();\n this.listOpened = false;\n this.selectedRow = null;\n });\n }\n\n public ngAfterViewInit(): void {\n if (this.inputEl && this.autofocus) {\n this.openList();\n }\n\n this.applyInitialValue();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['users']) {\n this.refreshRows();\n }\n }\n\n /** Cancels changes. */\n public cancel(): void {\n this.closeList();\n this.onCancel();\n }\n\n /** Apply initial value after rendering. */\n private applyInitialValue() {\n if (this.initialValue === undefined) {\n return;\n }\n if (this.inputEl) {\n const event = new Event('input');\n if (typeof this.initialValue === 'string') {\n this.textControl.setValue(this.initialValue);\n this.inputEl.nativeElement.value = this.initialValue;\n this.openListWithInputSelect = false;\n this.inputEl.nativeElement.focus();\n this.inputEl.nativeElement.dispatchEvent(event);\n } else if (this.initialValue === null) {\n this.textControl.setValue('');\n this.inputEl.nativeElement.value = '';\n this.inputEl.nativeElement.focus();\n this.inputEl.nativeElement.dispatchEvent(event);\n }\n }\n this.initialValue = undefined;\n }\n\n private changeValue(value: any): void {\n this.propagateTouch();\n\n if (\n !(\n this._value === value ||\n (this._value && value && this._value.id === value.id)\n )\n ) {\n this.propagateChange(value);\n }\n\n this.value = value;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.ref.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.ref.detectChanges();\n }\n\n onBlur() {\n this.propagateTouch();\n }\n\n loadStoredRows(): Observable {\n if (this.users) {\n return of(\n this.textControl.value.trim() && this.textControl.dirty\n ? this.users.filter((u) =>\n u.name\n .toLowerCase()\n .includes(this.textControl.value.toLowerCase().trim()),\n )\n : this.users,\n );\n }\n\n this.isLoading = true;\n this.ref.detectChanges();\n\n const query = this.query\n ? isFunction(this.query)\n ? this.query()\n : this.query\n : null;\n\n return new Observable((subscribe) => {\n const dataParams: any = {\n top: this.loadLimit,\n select: ['id', 'name'],\n filter: [],\n orderBy: 'name',\n };\n\n if (!this.allowInactive) {\n dataParams.filter.push({ isActive: true });\n }\n\n if (query) {\n if (query.filter) {\n dataParams.filter = dataParams.filter.concat(query.filter);\n }\n }\n if (this.textControl.value.trim() && this.textControl.dirty) {\n dataParams.filter.push({\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': {\n contains: (this.textControl.value as string).trim().toLowerCase(),\n },\n });\n }\n\n this.data\n .collection(this.collection)\n .query(dataParams)\n .subscribe((data) => {\n this.isLoading = false;\n this.loadedPartly =\n this.loadLimit &&\n data.length === this.loadLimit &&\n data.length !== 0;\n subscribe.next(data);\n });\n });\n }\n\n refreshRows() {\n this.loadStoredRows()\n .pipe(first())\n .subscribe((data: any[]) => {\n this.rows = data;\n if (this.value) {\n this.selectRow(this.rows.find((row) => row.id === this.value.id));\n }\n this.infoPopupService.update(this.popupId);\n firstValueFrom(\n this.infoPopupService.event$.pipe(filter((e) => e.name === 'update')),\n ).then(() => {\n this.scrollToSelectRow();\n });\n this.ref.detectChanges();\n });\n }\n\n selectRow(row: any) {\n this.selectedRow = row;\n }\n\n clickRow(row: any) {\n this.changeValue(row);\n this.closeList();\n }\n\n onKeyDown(event: KeyboardEvent) {\n const escCode = 27;\n const enterCode = 13;\n const downCode = 40;\n const upCode = 38;\n\n if (event.keyCode === escCode) {\n this.cancel();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === enterCode) {\n // Очистили текст, нажали Enter (но нет активной записи) = убрали выбор.\n if (!this.textControl.value && !this.selectedRow) {\n if (this.allowNull) {\n this.changeValue(null);\n }\n this.cancel();\n return;\n }\n\n if (this.selectedRow) {\n this.clickRow(this.selectedRow);\n }\n }\n\n if (event.keyCode === downCode) {\n this.selectNext();\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.keyCode === upCode) {\n this.selectPrevious();\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.ref.detectChanges();\n }\n\n // Команда выделения следующего элемента.\n selectNext() {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index < this.rows.length - 1) {\n this.selectedRow = this.rows[index + 1];\n this.scrollToSelectRow();\n }\n }\n }\n\n // Команда выделения предыдущего элемента\n selectPrevious() {\n if (!this.listOpened) {\n this.openList();\n }\n if (this.rows.length === 0) {\n return;\n }\n\n if (!this.selectedRow) {\n this.selectedRow = this.rows[0];\n } else {\n const index = this.rows.indexOf(this.selectedRow);\n if (index > 0) {\n this.selectedRow = this.rows[index - 1];\n this.scrollToSelectRow();\n }\n }\n }\n\n scrollToSelectRow() {\n if (this.selectedRow && this.listOpened) {\n this.scrollToService.scrollTo(this.selectedRow.id, 'selecting-list');\n }\n }\n\n onInputClick() {\n if (!this.listOpened) {\n this.openList();\n }\n }\n\n clear() {\n this.changeValue(null);\n this.closeList();\n }\n\n closeList() {\n this.listOpened = false;\n this.selectedRow = null;\n this.infoPopupService.close(this.popupId);\n this.ref.detectChanges();\n }\n\n openList() {\n if (this.listOpened) {\n this.cancel();\n return;\n }\n\n this.selectedRow = null;\n if (this.openListWithInputSelect) {\n this.inputEl.nativeElement.select();\n } else {\n this.inputEl.nativeElement.focus();\n this.openListWithInputSelect = true;\n }\n this.propagateTouch();\n this.listOpened = true;\n\n this.popupId = this.infoPopupService.open({\n target: this.element.nativeElement,\n data: {\n templateRef: this.expandingArea,\n },\n containerStyles: null,\n placement: 'bottom',\n isHideArrow: true,\n popperModifiers: this.infoPopupService.controlPopperModifiers,\n });\n\n this.refreshRows();\n }\n\n private onCancel(): void {\n this.textControl.markAsPristine();\n\n if (this.textControl.value && this.value) {\n this.textControl.setValue(this.value.name, { emitEvent: false });\n } else {\n if (this.allowNull) {\n this.changeValue(null);\n } else {\n // Если запрещено \"не выбрать\", но выбора еще не было - то ничего не делаем.\n if (this.value) {\n this.textControl.setValue(this.value.name, { emitEvent: false });\n }\n }\n }\n }\n}\n","\n \n\n \n\n ×\n\n \n\n\n@if (readonly && !value) {\n

    \n {{ 'shared.valueNotSelected' | translate }}\n

    \n}\n\n@if (readonly && value) {\n
    \n \n
    \n {{ value.name }}\n
    \n
    \n}\n\n\n
    \n
    \n \n\n \n

    {{ 'shared.noOptions' | translate }}

    \n
    \n\n \n \n \n \n \n \n \n
    \n \n {{ row.name }}
    \n\n \n

    \n {{ 'shared.showFirstNRecordsMessage' | translate: { limit: loadLimit } }}
    \n {{ 'shared.refineQueryMessage' | translate }}\n

    \n
    \n \n \n
    \n\n\n @if (item?.resourceType === resourceType.generic) {\n \n } @else {\n \n }\n\n","import {\n Component,\n OnInit,\n OnDestroy,\n Input,\n Inject,\n Optional,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { Title } from '@angular/platform-browser';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NavigationItem } from 'src/app/shared/models/navigation/navigation';\nimport { EntityListService } from './entity-list.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { FILTER, MULTI_SELECT_LIST } from 'src/app/shared/tokens';\nimport { HistoryService } from 'src/app/core/history.service';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CommonModule } from '@angular/common';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-entity-list',\n templateUrl: './entity-list.component.html',\n styleUrls: ['./entity-list.component.scss'],\n imports: [CommonModule, SharedModule, GridModule],\n})\nexport class EntityListComponent implements OnInit, OnDestroy {\n /** Determines if the grid is nested. */\n @Input() nested = false;\n @Input() hasViewSettings = true;\n @Input() showCommands = true;\n\n public gridOptions: GridOptions = {\n css: 'root',\n sorting: true,\n view: null,\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'delete',\n handlerFn: () => {\n if (this.actions.action('delete')?.isShown) {\n this.actions.action('delete').execute();\n }\n },\n keyCode: 'Delete',\n },\n {\n name: 'enter',\n handlerFn: () => {\n if (this.actions.action('card')?.isShown) {\n this.actions.action('card').execute();\n }\n },\n keyCode: ['Enter', 'NumpadEnter'],\n },\n {\n name: 'insert',\n handlerFn: () => {\n if (this.actions.action('create')?.isShown) {\n this.actions.action('create').execute();\n }\n },\n keyCode: 'Insert',\n },\n ],\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Optional() @Inject(FILTER) public entityFilter: EntityFilter,\n public gridService: GridService,\n public service: EntityListService,\n public panelService: ActionPanelService,\n @Optional() @Inject(MULTI_SELECT_LIST) private multiSelectList: boolean,\n private actions: ActionPanelService,\n private listService: ListService,\n private history: HistoryService,\n private navigation: NavigationService,\n private titleService: Title,\n private translate: TranslateService,\n private routerGlobals: UIRouterGlobals,\n ) {}\n\n public ngOnInit(): void {\n this.gridOptions.view = this.listService.getGridView();\n if (this.service.rowCommands) {\n this.gridOptions.rowCommands = this.service.rowCommands;\n }\n\n if (this.nested) {\n this.gridOptions.css = 'wp-nested-table';\n }\n\n if (!this.nested) {\n this.panelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.service.reload());\n }\n\n if (this.multiSelectList) {\n this.gridOptions.multiSelectColumn = true;\n this.gridOptions.selectionType = SelectionType.rows;\n }\n\n this.service.reload();\n this.service.enableInfinityScroll();\n\n this.navigation.navigationItem$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((item: NavigationItem) => {\n const translatedTitle: string = this.translate.instant(item.header);\n this.titleService.setTitle(translatedTitle);\n\n let title = '';\n\n if (Array.isArray(this.routerGlobals.params['route'])) {\n this.routerGlobals.params['route'].reverse().forEach((el) => {\n if (el.title) {\n title += el.title + ' ';\n }\n });\n }\n\n this.history.addHistory(\n [title || translatedTitle],\n this.navigation.getAppName(),\n );\n });\n\n if (this.multiSelectList) {\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groups: UntypedFormGroup[]) => {\n if (this.actions.action('delete')) {\n this.actions.action('delete').isShown =\n groups.length &&\n this.gridService.selectedGroupsValue.some(\n (value) => !value.state?.isEntityProtected,\n );\n }\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.service.dispose();\n }\n\n /**\n * Sets the user view for the list service and updates the grid view.\n * Reloads the service after setting the user view.\n */\n public setUserView(): void {\n this.listService.setUserView().then(\n () => {\n this.gridOptions.view = this.listService.getGridView();\n this.service.reload();\n },\n () => null,\n );\n }\n}\n","
    \n @if (showCommands) {\n
    \n \n @if (entityFilter) {\n
    \n {{ 'shared.filter.context' | translate }}: {{ entityFilter?.name }}\n
    \n }\n @if ((gridService.selectedGroups$ | async).length > 1 && !gridService.isAllSelected) {\n
    \n
    \n {{ 'shared.groupEditing.selectedRecordsCount' | translate }}: {{\n (gridService.selectedGroups$ | async).length\n }}\n
    \n
    \n }\n @if (gridService.isAllSelected) {\n
    \n
    \n {{ 'shared.groupEditing.selectedRecordsCount' | translate }}: \n {{ 'shared.groupEditing.all' | translate }}\n
    \n
    \n }\n\n
    \n @if (hasViewSettings) {\n \n \n \n }\n
    \n
    \n }\n\n
    \n
    \n \n
    \n
    \n
    \n","import {\n ChangeDetectorRef,\n DestroyRef,\n inject,\n Inject,\n Injectable,\n Optional,\n ViewRef,\n} from '@angular/core';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport {\n FILTER,\n LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { DataColumn, List } from 'src/app/shared/models/inner/list';\nimport { UserViewColumn } from 'src/app/shared/models/inner/user-view';\nimport { Order } from 'src/app/shared/models/inner/order';\nimport {\n firstValueFrom,\n map,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n tap,\n} from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { LogService } from 'src/app/core/log.service';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { Command } from 'src/app/shared-features/grid/models/grid-options.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport _ from 'lodash';\nimport { MassOperationComponent } from 'src/app/shared/components/mass-operation/mass-operation.component';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/** Entity list management service. */\n@Injectable()\nexport class EntityListService {\n public pageSize = 50;\n public contextFilter: any[] = [];\n public rowCommands: Command[];\n public formArray: UntypedFormArray = this.fb.array([]);\n\n public totalsSubject = new Subject>();\n public totals$ = this.totalsSubject.asObservable();\n public pageLoaded$ = new Subject();\n\n private loading = false;\n private loadedAll = false;\n private currentPage = 0;\n\n private requestPageListener: Subscription;\n private requestTotalListener: Subscription;\n private scrollListener: Subscription;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(VIEW_NAME) protected viewName: string,\n @Optional() @Inject(FILTER) protected entityFilter: EntityFilter,\n @Inject(LIST) private list: List,\n @Optional()\n @Inject(MASS_OPERATION_PARAMETERS)\n private massOperationParameters: MassOperationParameters,\n @Optional()\n @Inject(META_ENTITY_TYPE)\n private metaEntityType: string,\n private chrome: ChromeService,\n private fb: UntypedFormBuilder,\n private gridService: GridService,\n private listService: ListService,\n private filterService: FilterService,\n private data: DataService,\n private log: LogService,\n private messageService: MessageService,\n private notification: NotificationService,\n private app: AppService,\n private navigationService: NavigationService,\n private actionPanelService: ActionPanelService,\n private modalService: NgbModal,\n private cdr: ChangeDetectorRef,\n private entityTypeService: EntityTypesService,\n ) {\n this.applyFilter();\n\n filterService.values$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.reload());\n let order = this.listService.getUserView().order;\n if (!order) {\n order = {};\n }\n this.gridService.order$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((o: Order) => this.orderChanged(o));\n this.gridService.setOrder(order);\n this.gridService.setReadonlyState(true);\n }\n\n /** Applies filter for current view. */\n public applyFilter(): void {\n let filter = this.list.views.find(\n (v) => v.name === this.viewName,\n )?.contextFilter;\n\n if (this.entityFilter) {\n this.contextFilter = this.contextFilter.concat(this.entityFilter.filter);\n }\n\n if (!filter) {\n return;\n }\n\n // Apply tokens.\n filter = JSON.parse(\n JSON.stringify(filter).replaceAll('#user', this.app.session.user.id),\n );\n\n this.contextFilter = this.contextFilter.concat(filter);\n }\n\n /**\n * Updates the order of the user view and reloads the list.\n *\n * @param order The new order to be applied.\n */\n public orderChanged(order: Order): void {\n const userView = this.listService.getUserView();\n userView.order = order;\n this.listService.saveUserView(userView);\n this.reload();\n }\n\n /**\n * Reloads the list by clearing the form array, resetting the totals,\n * and reloading the first page of data.\n */\n public reload(): void {\n this.log.debug(`Reload list.`);\n this.formArray.clear();\n this.totalsSubject.next(null);\n this.loadedAll = false;\n this.currentPage = 0;\n this.enableInfinityScroll();\n this.loadPage();\n this.loadTotals();\n }\n\n /**\n * Initiates the deletion process for selected entities.\n *\n * This method determines whether to delete a single entity or multiple entities\n * based on the number of selected groups in the grid.\n */\n public delete: () => void = () => {\n if (this.gridService.selectedGroupsValue.length === 1) {\n this.deleteSingle();\n } else {\n this.deleteMany();\n }\n };\n\n private getCollectionName(): Observable {\n return this.metaEntityType\n ? this.entityTypeService.getEntityTypeCollection(this.metaEntityType)\n : of(this.list.dataCollection);\n }\n\n /**\n * Gets the source based on list collection and passed params.\n * Applies queryFunction if present.\n *\n * @param params - Optional dictionary of string parameters to be included in the request.\n * @param queryParams - Optional OData parameters to be appended to the URL.\n * @param urlParams - Optional dictionary of string parameters to be included in the URL.\n * @returns An Observable of type T representing the response from the server.\n * */\n private getSource(\n params?: Dictionary,\n queryParams?: object,\n urlParams?: Dictionary,\n ): Observable {\n return this.list.queryFunction\n ? this.data\n .collection(this.list.dataCollection)\n .function(this.list.queryFunction)\n .query(params, queryParams, urlParams)\n : this.data\n .collection(this.list.dataCollection)\n .query(queryParams, urlParams);\n }\n\n /**\n * Deletes the selected entity from the collection.\n * Prompts the user for confirmation before deletion.\n * On successful deletion, reloads the list and updates navigation indicators.\n */\n private deleteSingle: () => void = () => {\n this.messageService.confirmLocal('shared.deleteConfirmation').then(\n () => {\n this.getCollectionName()\n .pipe(\n switchMap((collection) =>\n this.data\n .collection(collection)\n .entity(this.gridService.selectedGroupValue.id)\n .delete(),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.deleteCompleted');\n this.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n },\n () => null,\n );\n };\n\n /**\n * Handles the deletion of multiple entities.\n *\n * This method performs the following steps:\n * 1. Retrieves the delete action button from the action panel service.\n * 2. Filters and maps the selected groups to get the IDs of non-protected entities.\n * 3. Applies additional filtering based on entity state if necessary.\n * 4. If all items are selected, fetches all entity IDs matching the current filter.\n * 5. Opens a modal dialog for mass deletion confirmation.\n * 6. If confirmed, resets selection, reloads the list, and updates navigation indicators.\n *\n * @returns A promise that is resolved when the deletion process is complete.\n */\n private deleteMany = async (): Promise => {\n const actionButton = this.actionPanelService.action('delete');\n\n const items: any[] = this.gridService.selectedGroupsValue.filter(\n (row) => !row.state?.isEntityProtected,\n );\n let ids = items.map((r) => r.id);\n\n const filter = this.filterService.getODataFilter();\n if (this.gridService.selectedGroupsValue.some((g) => g.state)) {\n const nestedEntityName = this.massOperationParameters?.entityPropertyName;\n const filterByState = {};\n if (nestedEntityName) {\n filterByState[nestedEntityName] = {\n state: { isEntityProtected: false },\n };\n } else {\n filterByState['state'] = { isEntityProtected: false };\n }\n\n filter.push(filterByState);\n }\n\n const query = {\n select: ['id'],\n };\n\n if (this.gridService.isAllSelected) {\n const source = this.getSource(null, {\n ...MassOperationParameters.getSelectQuery(this.massOperationParameters),\n ...query,\n filter: [...filter, ...this.contextFilter],\n });\n actionButton.isBusy = true;\n ids = await firstValueFrom(\n source.pipe(\n tap((entities) => entities.forEach((el) => items.push(el))),\n map((entities) =>\n _.uniq(\n entities.map((entity) =>\n this.massOperationParameters.entityPropertyName\n ? entity[this.massOperationParameters.entityPropertyName].id\n : entity.id,\n ),\n ),\n ),\n ),\n );\n actionButton.isBusy = false;\n }\n\n const ref = this.modalService.open(MassOperationComponent);\n const instance = ref.componentInstance as MassOperationComponent;\n\n instance.massOperationType = 'delete';\n instance.entityIds = ids;\n instance.items = _.uniqBy(items, 'id');\n instance.collection = await firstValueFrom(this.getCollectionName());\n instance.state = this.massOperationParameters.state;\n instance.entityPropertyName =\n this.massOperationParameters.entityPropertyName;\n\n ref.result.then(\n () => {\n this.gridService.selectGroup(null);\n this.reload();\n this.navigationService.updateIndicators();\n },\n () => null,\n );\n };\n\n /** Loads a next page of data for the entity list. */\n public loadPage(): void {\n if (this.loadedAll || this.loading) {\n return;\n }\n\n this.loading = true;\n this.gridService.setLoadingState(true);\n\n if (this.requestPageListener) {\n this.requestPageListener.unsubscribe();\n }\n\n this.log.debug(`Load page ${this.currentPage}.`);\n const dataQuery: any = this.listService.getODataQuery(\n this.currentPage,\n this.pageSize,\n this.contextFilter,\n );\n\n if ((this.cdr as ViewRef).destroyed) {\n return;\n }\n\n const source = this.getSource[]>(\n null,\n dataQuery,\n this.filterService.getDatePeriodUrlParams(),\n );\n this.requestPageListener = source\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (data: object[]) => {\n this.loadedAll = data.length < this.pageSize;\n if (this.loadedAll) {\n this.scrollListener?.unsubscribe();\n }\n this.pageLoaded$.next(data);\n this.currentPage++;\n this.loading = false;\n this.gridService.setLoadingState(false);\n data.forEach((row: any) => {\n this.formArray.push(this.listService.getFormGroupForRow(row));\n });\n this.gridService.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.gridService.setLoadingState(false);\n this.loading = false;\n },\n });\n }\n\n /**\n * Loads the totals for the entity list based on the current filters and context.\n * This method aggregates the data according to the user view columns that have totals enabled.\n */\n public loadTotals(): void {\n const transform: any = {\n filter: this.filterService.getODataFilter(),\n aggregate: {},\n };\n\n const userView = this.listService.getUserView();\n\n const keys: Dictionary = {};\n\n userView.columns.forEach((viewColumn: UserViewColumn, index: number) => {\n if (viewColumn.total) {\n const column = this.list.columns.find(\n (c: GridColumn) => c.name === viewColumn.column,\n );\n const dataColumn = this.list.dataColumns.find(\n (c: DataColumn) => c.column === column.name,\n );\n\n let dataField = Array.isArray(dataColumn.field)\n ? dataColumn.field[0]\n : dataColumn.field;\n dataField = dataField.replace('.', '/');\n\n if (viewColumn.total === TotalType.Count) {\n dataField = 'id';\n }\n\n const asKey = 'f' + index;\n keys[asKey] = column.name;\n transform.aggregate[dataField] = {\n with: viewColumn.total,\n as: asKey,\n };\n }\n });\n\n if (Object.keys(transform.aggregate).length === 0) {\n return;\n }\n\n if (this.contextFilter) {\n if (transform.filter) {\n transform.filter.push(this.contextFilter);\n } else {\n transform.filter = [this.contextFilter];\n }\n }\n\n const dataQuery: any = { transform };\n\n if (this.requestTotalListener) {\n this.requestTotalListener.unsubscribe();\n }\n\n let urlParams: Dictionary =\n this.filterService.getDatePeriodUrlParams();\n if (!urlParams) {\n urlParams = {};\n }\n\n if ((this.cdr as ViewRef).destroyed) {\n return;\n }\n\n const source = this.getSource[]>(\n null,\n dataQuery,\n urlParams,\n );\n this.requestTotalListener = source\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (totals) => {\n let totalsResponse: Dictionary = null;\n\n if (totals.length > 0) {\n totalsResponse = {};\n for (const key of Object.keys(keys)) {\n totalsResponse[keys[key]] = totals[0][key];\n }\n }\n\n this.totalsSubject.next(totalsResponse);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.totalsSubject.next(null);\n },\n });\n }\n\n /** Enables lazy-loading on scroll event. */\n public enableInfinityScroll(): void {\n this.scrollListener?.unsubscribe();\n this.scrollListener = this.chrome.setInfinityScroll(() => this.loadPage());\n }\n\n /** Unsubscribes from the scroll listener. */\n public dispose(): void {\n this.scrollListener?.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n MetaEntityBaseProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\n/** Custom field service. */\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomFieldService {\n constructor(private app: AppService) {}\n\n /** Adds custom-field controls in a `FormGroup`.\n *\n * @param formGroup - FormGroup.\n * @param entityType - Type of entity.\n * @param disableValidators - Force disable validation of fields.\n * @param disabled - Control will be disabled.\n */\n public enrichFormGroup(\n formGroup: UntypedFormGroup,\n entityType: string,\n disableValidators = false,\n disabled = false,\n ) {\n const fields = this.app.getCustomFields(entityType);\n\n fields.forEach((f) => {\n const control = new UntypedFormControl({ value: null, disabled });\n if (f.isRequired && !disableValidators) {\n control.setValidators(Validators.required);\n }\n if (f.type === MetaEntityPropertyType.directory) {\n formGroup.addControl(\n (f as MetaEntityNavigationProperty).keyProperty,\n control,\n );\n } else {\n formGroup.addControl(f.name, control);\n }\n });\n }\n\n /**\n * Enriches the FormGroup with default values for custom fields based on the entity type.\n *\n * @param formGroup - The FormGroup to be enriched.\n * @param entityType - The type of entity for which custom fields are defined.\n */\n public enrichFormGroupWithDefaultValues(\n formGroup: UntypedFormGroup,\n entityType: string,\n ) {\n const fields = this.app.getCustomFields(entityType);\n\n fields.forEach((f) => {\n let control;\n if (f.type === MetaEntityPropertyType.directory) {\n control =\n formGroup.controls[(f as MetaEntityNavigationProperty).keyProperty];\n } else {\n control = formGroup.controls[f.name];\n }\n\n if (f.viewConfiguration.formDefaultValue) {\n control.setValue(f.viewConfiguration.formDefaultValue);\n }\n });\n }\n\n /**\n * Enriches the query with custom fields for a given entity type.\n *\n * @param query - The query to be enriched.\n * @param entityType - The type of entity for which custom fields are defined.\n */\n public enrichQuery(query: any, entityType: string): void {\n if (!query.select) {\n query.select = [];\n }\n\n const fields = this.app.getCustomFields(entityType);\n fields.forEach((field) => {\n // TODO: DEV-2584\n if (field.type === MetaEntityPropertyType.directory) {\n query.expand ??= [];\n\n if (Array.isArray(query.expand)) {\n query.expand.push({\n [field.name]: { select: ['id', 'name'] },\n });\n } else {\n query.expand[field.name] = { select: ['id', 'name'] };\n }\n\n query.select.push((field as MetaEntityNavigationProperty).keyProperty);\n } else {\n query.select.push(field.name);\n }\n });\n }\n\n /**\n * Assigns values from the source object to the target object based on custom fields for a given entity type.\n *\n * @param target The object to which values will be assigned.\n * @param source The object from which values will be taken.\n * @param entityType The type of entity for which custom fields are defined.\n */\n public assignValues(target: any, source: any, entityType: string): void {\n const fields = this.app.getCustomFields(entityType);\n fields.forEach((field) => {\n const dataField = field.name;\n if (field.type === MetaEntityPropertyType.directory) {\n const key = (field as MetaEntityNavigationProperty).keyProperty;\n target[key] = source[key];\n } else {\n target[dataField] = source[dataField];\n }\n });\n }\n\n /** Returns additional field list. */\n public getList(entityType: string): MetaEntityBaseProperty[] {\n return this.app.getCustomFields(entityType);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ViewContainerRef,\n OnDestroy,\n input,\n} from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { CustomFieldMode } from 'src/app/shared/components/features/custom-fields/custom-fields.component';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { DateBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/date-box-wrapper.component';\nimport { NumberBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/number-box-wrapper.component';\nimport { SelectBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/select-box-wrapper.component';\nimport { TextBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/text-box-wrapper.component';\nimport { Wrapper } from 'src/app/shared/components/features/custom-fields/wrappers/wrapper.interface';\nimport { CustomFieldHostDirective } from 'src/app/shared/components/features/custom-fields/wrappers/custom-field-host.directive';\n\n@Component({\n selector: 'wp-custom-field',\n template: '',\n standalone: false,\n})\nexport class CustomFieldComponent implements OnInit, OnDestroy {\n @ViewChild(CustomFieldHostDirective, { static: true })\n private host: CustomFieldHostDirective;\n\n @Input() control: UntypedFormControl;\n @Input() field: MetaEntityBaseProperty;\n @Input() mode: CustomFieldMode = 'default';\n public propagationMode = input(PropagationMode.onInput);\n\n private componentRef: any;\n private viewContainerRef: ViewContainerRef;\n\n public ngOnInit(): void {\n this.viewContainerRef = this.host.hostContainer;\n\n switch (this.field.type) {\n case MetaEntityPropertyType.dateOnly:\n this.renderDateControl();\n break;\n case MetaEntityPropertyType.decimal:\n this.renderNumberControl('decimal');\n break;\n case MetaEntityPropertyType.integer:\n this.renderNumberControl('integer');\n break;\n case MetaEntityPropertyType.directory:\n this.renderSelectControl();\n break;\n case MetaEntityPropertyType.string:\n case MetaEntityPropertyType.url:\n case MetaEntityPropertyType.email:\n case MetaEntityPropertyType.phone:\n this.renderStringControl();\n break;\n }\n\n if (this.field.isOnlyForApi && this.mode === 'default') {\n this.componentRef.instance.readonly = true;\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n if (this.viewContainerRef) {\n this.viewContainerRef.remove();\n this.viewContainerRef = null;\n }\n }\n\n private renderNumberControl(type: string): void {\n this.componentRef = this.viewContainerRef.createComponent(\n NumberBoxWrapperComponent,\n );\n const instance = this.componentRef.instance;\n instance.control = this.control;\n instance.type = type;\n instance.propagationMode = this.propagationMode();\n }\n\n private renderSelectControl(): void {\n this.componentRef = this.viewContainerRef.createComponent(\n SelectBoxWrapperComponent,\n );\n const instance = this.componentRef.instance;\n instance.isIdMode = true;\n instance.control = this.control;\n instance.directory = (\n this.field as MetaEntityDirectoryProperty\n ).directoryId;\n instance.placeholder = this.field.viewConfiguration.placeholder;\n }\n\n private renderStringControl(): void {\n this.componentRef = this.viewContainerRef.createComponent(\n TextBoxWrapperComponent,\n );\n const instance = this.componentRef.instance;\n instance.control = this.control;\n instance.placeholder = this.field.viewConfiguration.placeholder;\n instance.propagationMode = this.propagationMode();\n instance.type = this.field.type;\n }\n\n private renderDateControl(): void {\n this.componentRef = this.viewContainerRef.createComponent(\n DateBoxWrapperComponent,\n );\n const instance = this.componentRef.instance;\n instance.control = this.control;\n }\n}\n","import { Component, OnInit, Input, input } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { sortBy } from 'lodash';\nimport {\n MetaEntityBaseProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\nexport type CustomFieldMode = 'default' | 'filter';\n\n@Component({\n selector: 'wp-custom-fields',\n templateUrl: './custom-fields.component.html',\n styleUrls: ['./custom-fields.component.scss'],\n standalone: false,\n})\nexport class CustomFieldsComponent implements OnInit {\n /** Entity type for generating custom fields. Has higher priory than `fields`. */\n @Input() entityType: string;\n /** Predefined fields. */\n @Input() fields: MetaEntityBaseProperty[];\n @Input() columnClasses = 'col-6';\n @Input() formGroup: UntypedFormGroup;\n @Input() isVisibleHr = true;\n @Input() mode: CustomFieldMode = 'default';\n public propagationMode = input(PropagationMode.onInput);\n\n constructor(private app: AppService) {}\n\n private _leftFields: MetaEntityBaseProperty[] = [];\n public get leftFields(): MetaEntityBaseProperty[] {\n return this._leftFields;\n }\n private _rightFields: MetaEntityBaseProperty[] = [];\n public get rightFields(): MetaEntityBaseProperty[] {\n return this._rightFields;\n }\n\n public ngOnInit(): void {\n if (this.entityType) {\n this.fields = this.app\n .getCustomFields(this.entityType)\n .filter((f) =>\n this.mode === 'default'\n ? f.viewConfiguration.isShownInEntityForms\n : f.viewConfiguration.isShownInEntityListFilters,\n );\n }\n\n this._leftFields = sortBy(\n this.fields.filter((f) => f.viewConfiguration.formColumn === 'Left'),\n ['viewConfiguration.orderNumber'],\n );\n\n this._rightFields = sortBy(\n this.fields.filter((f) => f.viewConfiguration.formColumn === 'Right'),\n ['viewConfiguration.orderNumber'],\n );\n }\n\n /**\n * Retrieves the form control associated with a given field.\n *\n * @param field - The MetaEntityBaseProperty representing the field.\n * @returns The UntypedFormControl associated with the field.\n */\n public getControl(field: MetaEntityBaseProperty): UntypedFormControl {\n if (field.type === MetaEntityPropertyType.directory) {\n return this.formGroup.controls[\n (field as MetaEntityNavigationProperty).keyProperty\n ] as UntypedFormControl;\n } else {\n return this.formGroup.controls[field.name] as UntypedFormControl;\n }\n }\n}\n","@if (fields.length && isVisibleHr) {\n
    \n
    \n
    \n}\n\n
    \n
    \n @for (field of leftFields; track field) {\n
    \n \n \n
    \n }\n
    \n
    \n @for (field of rightFields; track field) {\n
    \n \n \n
    \n }\n
    \n
    \n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { CurrencyBoxComponent } from 'src/app/shared/components/controls/currency-box/currency-box.component';\n\nimport { Wrapper } from './wrapper.interface';\n\n@Component({\n selector: 'wp-currency-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class CurrencyBoxWrapperComponent implements Wrapper, OnInit {\n @Input() control: UntypedFormControl;\n\n @Input() values: NamedEntity[];\n @Input() min: number;\n @Input() max: number;\n @Input() allowNull: boolean;\n @Input() isCurrencyEditable: boolean;\n @Input() currencyCode: string;\n @Input() autofocus?: boolean;\n @Input() readonly?: boolean;\n\n @ViewChild('component') component: CurrencyBoxComponent;\n\n public ngOnInit(): void {\n if (this.allowNull === undefined) {\n this.allowNull = true;\n }\n }\n}\n","import { Directive, ViewContainerRef, ElementRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tmt-custom-field-host]',\n standalone: false,\n})\nexport class CustomFieldHostDirective {\n constructor(\n public hostContainer: ViewContainerRef,\n public hostElement: ElementRef,\n ) {}\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { DateBoxComponent } from 'src/app/shared/components/controls/date-box/date-box.component';\nimport { Wrapper } from './wrapper.interface';\n\n@Component({\n selector: 'wp-date-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class DateBoxWrapperComponent implements Wrapper, OnInit {\n @Input() control: UntypedFormControl;\n @Input() allowNull: boolean;\n @Input() autofocus?: boolean;\n @Input() readonly?: boolean;\n\n @ViewChild('component') component: DateBoxComponent;\n\n public ngOnInit(): void {\n if (this.allowNull === undefined) {\n this.allowNull = true;\n }\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NumberBoxComponent } from 'src/app/shared/components/controls/number-box/number-box.component';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { Wrapper } from './wrapper.interface';\n\n@Component({\n selector: 'wp-number-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class NumberBoxWrapperComponent implements Wrapper, OnInit {\n @Input() control: UntypedFormControl;\n\n @Input() values: NamedEntity[];\n @Input() type: string;\n @Input() min: number;\n @Input() max: number;\n @Input() precision: number;\n @Input() allowNull: boolean;\n @Input() currencyCode: string;\n @Input() autofocus?: boolean;\n @Input() readonly?: boolean;\n\n @ViewChild('component') component: NumberBoxComponent;\n @Input() propagationMode: PropagationMode = PropagationMode.onInput;\n\n public ngOnInit(): void {\n if (this.allowNull === undefined) {\n this.allowNull = true;\n }\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport {\n DirectoryParams,\n SelectBoxComponent,\n} from 'src/app/shared/components/controls/select-box/select-box.component';\nimport { Wrapper } from './wrapper.interface';\n\n@Component({\n selector: 'wp-select-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class SelectBoxWrapperComponent implements Wrapper {\n @Input() control: UntypedFormControl;\n\n @Input() values: () => any;\n\n @Input() placeholder?: string;\n @Input() query?: any;\n @Input() collection?: string;\n @Input() autofocus?: boolean;\n @Input() readonly?: boolean;\n @Input() allowNull?: boolean;\n @Input() directory?: string | DirectoryParams = null;\n @Input() isIdMode = false;\n\n @ViewChild('component') component: SelectBoxComponent;\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { TextBoxComponent } from 'src/app/shared/components/controls/text-box/text-box.component';\nimport { Wrapper } from './wrapper.interface';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { MetaEntityPropertyType } from 'src/app/shared/models/entities/settings/metamodel.model';\n\n@Component({\n selector: 'wp-text-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class TextBoxWrapperComponent implements Wrapper {\n @Input() control: UntypedFormControl;\n @Input() type?: MetaEntityPropertyType;\n\n @Input() placeholder?: string;\n @Input() autofocus?: boolean;\n @Input() readonly?: boolean;\n\n @Input() propagationMode: PropagationMode = PropagationMode.onInput;\n\n @ViewChild('component') component: TextBoxComponent;\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { Wrapper } from './wrapper.interface';\n\nimport { UserBoxComponent } from 'src/app/shared/components/controls/user-box/user-box.component';\n\n@Component({\n selector: 'wp-user-box-wrapper',\n template: ``,\n standalone: false,\n})\nexport class UserBoxWrapperComponent implements Wrapper {\n @Input() control: UntypedFormControl;\n @Input() placeholder?: string;\n @Input() query?: any = null;\n @Input() autofocus?: boolean;\n\n @ViewChild('component') component: UserBoxComponent;\n}\n","import {\n Component,\n Optional,\n signal,\n input,\n OnInit,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n OnDestroy,\n SkipSelf,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl } from '@angular/forms';\n\nimport { merge, of } from 'rxjs';\n\nimport {\n initAndDestroy,\n initAndDestroyHeight,\n} from 'src/app/shared/animations';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\nimport { DataNotSavedIndicatorService } from './data-not-saved-indicator.service';\n\n/** Unsaved form indicator. */\n@Component({\n selector: 'wp-data-not-saved-indicator',\n templateUrl: './data-not-saved-indicator.component.html',\n styleUrls: ['./data-not-saved-indicator.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [initAndDestroy, initAndDestroyHeight],\n providers: [\n {\n provide: DataNotSavedIndicatorService,\n deps: [\n [new Optional(), new SkipSelf(), DataNotSavedIndicatorService],\n [new Optional(), SavingQueueService],\n ],\n useFactory: (\n parentService: DataNotSavedIndicatorService | null,\n savingQueueService: SavingQueueService | null,\n ) =>\n parentService || new DataNotSavedIndicatorService(savingQueueService),\n },\n ],\n})\nexport class DataNotSavedIndicatorComponent implements OnInit, OnDestroy {\n public form = input.required();\n\n public dirtyMessageShown = signal(false);\n public invalidMessageShown = signal(false);\n\n private formIndex: number;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public dataNotSavedIndicatorService: DataNotSavedIndicatorService,\n @Optional() public savingQueueService: SavingQueueService | null,\n ) {}\n\n public ngOnInit(): void {\n this.formIndex = this.dataNotSavedIndicatorService.registerForm(\n this.form(),\n );\n\n merge(this.form().events, this.savingQueueService?.save$ ?? of(null))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.dirtyMessageShown.set(this.form().dirty && this.form().touched);\n this.invalidMessageShown.set(\n this.form().invalid && this.form().touched,\n );\n\n if (\n this.form().invalid &&\n this.form().touched &&\n this.savingQueueService\n ) {\n this.form().markAllAsTouched();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.dataNotSavedIndicatorService.unregisterForm(this.formIndex);\n }\n}\n","@if (dirtyMessageShown() && !savingQueueService) {\n

    {{ 'shared2.messages.dataNotSaved' | translate }}

    \n}\n\n@if (invalidMessageShown() && savingQueueService) {\n \n {{ 'shared2.messages.dataNotValid' | translate }}\n \n}\n","import { inject, Injectable, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { TransitionService, StateService, Transition } from '@uirouter/core';\n\nimport { MessageService } from 'src/app/core/message.service';\n\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n@Injectable()\nexport class DataNotSavedIndicatorService implements OnDestroy {\n private forms: AbstractControl[] = [];\n private disableLeaveControl = false;\n private messageIsOpened = false;\n private transitionOnStartListener: ReturnType;\n private readonly beforeUnloadHandler = (event: BeforeUnloadEvent) => {\n if (this.preventLeave) {\n const dialogText = this.translate.instant(\n 'shared2.messages.leavePageMessage',\n );\n event.returnValue = dialogText;\n return dialogText;\n }\n };\n\n private readonly zone = inject(NgZone);\n private readonly messageService = inject(MessageService);\n private readonly translate = inject(TranslateService);\n private readonly transitionService = inject(TransitionService);\n private readonly state = inject(StateService);\n\n public get preventLeave(): boolean {\n return (\n this.forms.some((form) => form.dirty) || this.savingQueueService?.isSaving\n );\n }\n\n constructor(\n @Optional() public savingQueueService: SavingQueueService | null,\n ) {\n window.addEventListener('beforeunload', this.beforeUnloadHandler);\n\n this.transitionOnStartListener = this.transitionService.onStart(\n null,\n (trans: Transition) => {\n if (this.preventLeave && !this.disableLeaveControl) {\n if (this.messageIsOpened) {\n return false;\n }\n\n this.messageIsOpened = true;\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => {\n this.disableLeaveControl = true;\n const toState = trans.to();\n\n this.zone.run(() => {\n this.state.go(toState.name, trans.params());\n });\n\n this.messageIsOpened = false;\n },\n () => {\n this.messageIsOpened = false;\n },\n );\n\n return false;\n }\n },\n );\n }\n\n public ngOnDestroy(): void {\n this.transitionOnStartListener();\n window.removeEventListener('beforeunload', this.beforeUnloadHandler);\n }\n\n /**\n * Registers forms to the service.\n *\n * @param form any form.\n * @returns index of form in the collection.\n */\n public registerForm(form: AbstractControl): number {\n return this.forms.push(form) - 1;\n }\n\n /**\n * Removes form from the service.\n *\n * @param index form index.\n */\n public unregisterForm(index: number): void {\n this.forms.splice(index, 1);\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[wp-filter-details-host]',\n standalone: false,\n})\nexport class FilterDetailsHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FilterService } from './filter.service';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FilterDetailsHostDirective } from './filter-details-host.directive';\nimport { UntypedFormBuilder, UntypedFormControl } from '@angular/forms';\nimport { debounceTime, takeUntil, throttleTime } from 'rxjs/operators';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport _isEmpty from 'lodash/isEmpty';\nimport { asyncScheduler, Subject } from 'rxjs';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\n\n/** Компонента фильтра списков. */\n@Component({\n selector: 'wp-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss'],\n standalone: false,\n})\nexport class FilterComponent implements OnInit, OnDestroy {\n // Задержка при вводе текста для начала поиска (мс).\n private textInputDebounce = Constants.textInputDebounce;\n\n @ViewChild(FilterDetailsHostDirective, { static: true })\n wpFilterDetailsHost: FilterDetailsHostDirective;\n\n placeholder: string;\n\n id = `id-${Guid.generate()}`;\n excludeClickOutside = `#${this.id}, tmt-popup-container`;\n\n // Условия фильтра.\n oldText: string;\n\n textControl = new UntypedFormControl('');\n public periodControl = new UntypedFormControl(null);\n allowInactiveControl = new UntypedFormControl(false);\n\n extraConditionsCount: number;\n extraConditionTitle: string;\n areaIsExpanded: boolean;\n componentRef: any;\n\n public customFieldsForm = this.fb.group({});\n public isShowCustomFieldsForm: boolean;\n\n private destroyed$ = new Subject();\n\n constructor(\n public service: FilterService,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n ) {\n this.service.enrichFilterForm(this.customFieldsForm);\n this.isShowCustomFieldsForm = !_isEmpty(this.customFieldsForm.controls);\n }\n\n public ngOnInit(): void {\n this.textControl.setValue(this.service.values.text);\n this.oldText = this.service.values.text;\n this.periodControl.setValue(this.service.values.period);\n this.service.values$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n if (this.service.values.text !== this.textControl.value) {\n this.textControl.setValue(this.service.values.text, {\n emitEvent: false,\n });\n }\n if (this.service.values.period !== this.periodControl.value) {\n this.periodControl.setValue(this.service.values.period, {\n emitEvent: false,\n });\n }\n this.updateConditionCount();\n });\n\n this.updateConditionCount();\n this.placeholder = this.service.placeholder;\n\n this.textControl.valueChanges\n .pipe(debounceTime(this.textInputDebounce), takeUntil(this.destroyed$))\n .subscribe(() => {\n const text = this.textControl.value;\n if (\n text.length >= this.service.minStringLengthForFilter ||\n (text.length < this.service.minStringLengthForFilter &&\n this.oldText &&\n this.oldText.length >= this.service.minStringLengthForFilter)\n ) {\n this.service.values.text = text;\n this.service.changeValues(this.service.values);\n }\n this.oldText = this.service.values.text;\n });\n\n this.periodControl.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((period: DatePeriod) => {\n this.setPeriod(period);\n });\n\n this.allowInactiveControl.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.setAllowingInactive(this.allowInactiveControl.value);\n });\n\n if (this.isShowCustomFieldsForm) {\n this.customFieldsForm.patchValue(this.service.values);\n\n this.service.resetValues$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.customFieldsForm.reset();\n });\n\n this.customFieldsForm.valueChanges\n .pipe(\n throttleTime(this.textInputDebounce, asyncScheduler, {\n leading: true,\n trailing: true,\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.service.changeValues(\n Object.assign(this.service.values, this.customFieldsForm.value),\n );\n });\n }\n\n this.addDetailsComponent();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n updateConditionCount() {\n this.extraConditionsCount = this.service.getCriteriaCount();\n this.extraConditionTitle = StringHelper.declOfNum(\n this.extraConditionsCount,\n [\n this.translate.instant('shared.filterConditionDeclensions.v1'),\n this.translate.instant('shared.filterConditionDeclensions.v2'),\n this.translate.instant('shared.filterConditionDeclensions.v3'),\n ],\n );\n }\n\n clear() {\n this.service.values.text = '';\n this.areaIsExpanded = false;\n this.service.changeValues(this.service.values);\n }\n\n clearValues() {\n this.service.resetValues();\n }\n openDetails() {\n this.areaIsExpanded = !this.areaIsExpanded;\n this.addDetailsComponent();\n }\n\n cancel() {\n this.areaIsExpanded = false;\n }\n\n setView(view: any) {\n this.service.values.view = view;\n this.service.changeValues(this.service.values);\n }\n\n setPeriod(period: DatePeriod) {\n this.service.values.period = period;\n this.service.changeValues(this.service.values);\n }\n\n addDetailsComponent() {\n if (\n this.service.hasDetails &&\n this.service.component &&\n !this.componentRef\n ) {\n const viewContainerRef = this.wpFilterDetailsHost.viewContainerRef;\n viewContainerRef.clear();\n this.componentRef = viewContainerRef.createComponent(\n this.service.component,\n );\n }\n }\n}\n","
    \n
    \n \n\n ×\n
    \n\n @if (service.hasDetails) {\n \n @if (extraConditionsCount) {\n +{{ extraConditionsCount }} {{ extraConditionTitle }} \n }\n\n \n \n }\n
    \n\n@if (service.hasViewSelector) {\n
    \n \n {{ service.values?.view?.local | translate }}\n \n\n
    \n @for (view of service.views; track $index) {\n \n }\n
    \n
    \n}\n\n@if (service.hasPeriodSelector) {\n \n}\n\n\n
    \n \n\n
    \n
    \n \n
    \n
    \n\n
    \n \n \n\n
    \n
    \n @if (service.hasAllowInactive) {\n
    \n \n \n
    \n }\n\n \n {{ 'shared.actions.clear' | translate }}\n \n
    \n
    \n
    \n\n","import { Inject, Injectable, Optional, Type } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { LocalStorageService } from 'ngx-webstorage';\n\nimport { Subject } from 'rxjs';\nimport _ from 'lodash';\n\nimport { FilterDetails } from './filter-details.interface';\nimport { FILTER, LIST, VIEW_NAME } from 'src/app/shared/tokens';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { DateService } from 'src/app/core/date.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { EntityFilter } from 'src/app/core/navigation.service';\nimport {\n MetaEntityBaseProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\n/** Базовый сервис фильтров. */\n@Injectable()\nexport class FilterService {\n /** Custom handlers for filter counter. */\n public customCriteriaCount: Record number> = {\n text: () => 0,\n period: () => (this.hasPeriodSelector || !this.values.period ? 0 : 1),\n states: () => (this.stateConditionExist() ? 1 : 0),\n };\n /** Минимальное число символов, введенных пользователем, для выполнения поиска. */\n public minStringLengthForFilter = 2;\n\n /** Имя хранилища (local storage) для сохранения фильтра. */\n public storageName: string;\n\n /** Плейсхолдер в основном контроле. */\n public placeholder: string;\n\n /** Компонента, реализующая выпадающую секцию с детализацией фильтра. */\n public component: Type;\n\n /** Detail area filter container styles. */\n public detailAreaStyles: Record;\n\n /** Значения всех свойств фильтра. */\n protected _values: any;\n public get values() {\n if (!this.storageName) {\n this.storageName = this.list\n ? `filter_${this.list.name}_${this.viewName}`\n : null;\n }\n\n if (!this._values && !this.filter && this.storageName) {\n this._values = this.localStorageService.retrieve(this.storageName);\n }\n\n if (!this._values) {\n this._values = this.getDefaultValues();\n }\n\n return this._values;\n }\n\n public set values(values: any) {\n this._values = values;\n }\n\n /** Признак наличия детальной (выпадающей) области. */\n public hasDetails = false;\n\n /** Признак наличия кнопки выбора представления области. */\n public hasViewSelector = true;\n\n /** Indicates if the period selector is available. */\n public hasPeriodSelector = false;\n /** Placeholder for external period selector. */\n public periodSelectorPlaceholder = '';\n\n public hasAllowInactive = true;\n\n public views: { code: string; local: string }[];\n\n private allowInactiveSubject: Subject = new Subject();\n public allowInactive$ = this.allowInactiveSubject.asObservable();\n\n private valuesSubject: Subject = new Subject();\n public values$ = this.valuesSubject.asObservable();\n\n private resetValuesSubject = new Subject();\n public resetValues$ = this.resetValuesSubject.asObservable();\n\n protected get period(): any | null {\n return this.values?.period ?? null;\n }\n\n constructor(\n protected app: AppService,\n protected dateService: DateService,\n private localStorageService: LocalStorageService,\n private customFieldService: CustomFieldService,\n @Optional() @Inject(LIST) protected list: List,\n @Optional() @Inject(VIEW_NAME) protected viewName: string,\n @Optional() @Inject(FILTER) protected filter: EntityFilter,\n ) {}\n\n public get customFieldEntityType(): string {\n return this.list?.customFieldEntityType;\n }\n\n public changeValues(values: any): void {\n if (!this.filter && this.storageName) {\n this.localStorageService.store(this.storageName, values);\n }\n\n this.values = { ...values, view: this.values.view };\n this.valuesSubject.next(values);\n }\n\n protected getDefaultValues(): any {\n return {\n text: '',\n };\n }\n\n /** Сбрасывает фильтр. */\n public resetValues(): void {\n const defaultValues = this.getDefaultValues();\n delete defaultValues.view;\n this.changeValues(defaultValues);\n this.resetValuesSubject.next(null);\n }\n\n /**\n * Runs callback from config if there is special handler for `Form` keys.\n * Otherwise, counter is just incremented if other keys has value.\n *\n * @returns number of criteria selected.\n * */\n public getCriteriaCount(): number {\n let count = 0;\n const criteriaKeys = Object.keys(this.values);\n\n Object.keys(this.customCriteriaCount).forEach((k) => {\n count += this.customCriteriaCount[k](); // Custom callback from config\n _.remove(criteriaKeys, (key) => key === k);\n });\n\n for (const key of criteriaKeys) {\n if (!this.values[key] && this.values[key] !== 0) {\n continue;\n }\n\n if (Array.isArray(this.values[key])) {\n count += this.values[key].length ? 1 : 0;\n continue;\n }\n\n count++;\n }\n\n return count;\n }\n\n /**\n * Criteria counter handler for arrays.\n * Returns `1` if form has values and values length is not same with original array.\n *\n * @param key form property key.\n * @param length length of original array.\n * @returns `1` or `0`.\n */\n public arrayConditionExist(key: string, length: number): number {\n if (!Array.isArray(this.values[key])) {\n return 0;\n }\n\n return this.values[key].length && this.values[key].length !== length\n ? 1\n : 0;\n }\n\n /**\n * Checks if there is a state condition.\n * Only works with `StateControlItem`-like interface!\n *\n * @returns `true` if condition exists, otherwise `false`.\n *\n * TODO: make better?\n */\n public stateConditionExist(): boolean {\n let allKeysIsTrue = true;\n let allKeysIsFalse = true;\n\n for (const name in this.values.states) {\n if (this.values.states[name].selected) {\n allKeysIsFalse = false;\n } else {\n allKeysIsTrue = false;\n }\n }\n\n return !allKeysIsTrue && !allKeysIsFalse;\n }\n\n /**\n * Returns query's filter part. By default includes filters for custom field of the entity.\n *\n * @returns OData object.\n *\n * // TODO Make a config for form values !\n */\n public getODataFilter(): any {\n const result = [];\n\n if (!this.customFieldEntityType) {\n return result;\n }\n\n const customFields = this.customFieldService.getList(\n this.customFieldEntityType,\n );\n\n if (customFields.length) {\n customFields.forEach((field) => {\n let value = _.get(this.values, field.name);\n // try to get filter value by keyProperty\n if (!value && field.type === MetaEntityPropertyType.directory) {\n value = _.get(\n this.values,\n (field as MetaEntityNavigationProperty).keyProperty,\n );\n }\n\n if (value) {\n result.push({\n [this.list.customFieldPrefixForDataField\n ? _.camelCase(this.customFieldEntityType)\n : 'and']: {\n [this.getFilterFieldKey(field)]: this.getFilterOperator(\n field,\n value,\n ),\n },\n });\n }\n });\n }\n\n return result;\n }\n\n /**\n * Gets filter part by keys.\n *\n * @param keys property names.\n * @param value property values.\n * @returns OData with `or` array.\n */\n public getTextFilter(keys: string[], value: string): any {\n return {\n or: keys.map((key) => ({ [`tolower(${key})`]: { contains: value } })),\n };\n }\n\n /**\n * Gets date period from the filter.\n * Created for `entity-list`!\n *\n * @returns date object or `null`.\n */\n public getDatePeriodUrlParams(): Record | null {\n return this.dateService.getDatePairFromPeriodForFilter(this.period);\n }\n\n public setAllowingInactive(allowInactive: boolean): void {\n this.allowInactiveSubject.next(allowInactive);\n }\n\n public enrichFilterForm(form: UntypedFormGroup): void {\n if (!this.list) {\n return;\n }\n\n this.customFieldService.enrichFormGroup(\n form,\n this.customFieldEntityType,\n true,\n );\n }\n\n protected getClearText(text: string): string {\n return text.toLowerCase();\n }\n\n private getFilterOperator(field: MetaEntityBaseProperty, value: any): any {\n switch (field.type) {\n case MetaEntityPropertyType.dateOnly:\n return { eq: { type: 'raw', value } };\n case MetaEntityPropertyType.decimal:\n return value;\n case MetaEntityPropertyType.integer:\n return value;\n case MetaEntityPropertyType.directory:\n return { type: 'guid', value };\n case MetaEntityPropertyType.string:\n case MetaEntityPropertyType.email:\n case MetaEntityPropertyType.phone:\n case MetaEntityPropertyType.url:\n return { contains: this.getClearText(value) };\n }\n }\n\n private getFilterFieldKey(field: MetaEntityBaseProperty): string {\n switch (field.type) {\n case MetaEntityPropertyType.directory:\n return (field as MetaEntityNavigationProperty).keyProperty;\n case MetaEntityPropertyType.string:\n return `tolower(${field.name})`;\n default:\n return field.name;\n }\n }\n}\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-financial-type-cell',\n templateUrl: './financial-type-cell.component.html',\n styleUrls: ['./financial-type-cell.component.scss'],\n standalone: false,\n})\nexport class FinancialTypeCellComponent implements GridComponentCell {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'tmt-garland',\n template: `
      \n
    • \n
    `,\n styleUrls: ['./garland.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GarlandComponent {\n public lights = new Array(200);\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { createPopper } from '@popperjs/core';\nimport { filter } from 'rxjs';\nimport _ from 'lodash';\n\nimport { InfoPopupEntry } from '../info-popup.interface';\nimport { InfoPopupService } from '../info-popup.service';\n\n@Component({\n selector: 'tmt-popup-item',\n templateUrl: './info-popup-item.component.html',\n styleUrls: ['./info-popup-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InfoPopupEntryComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @ViewChild('popper', { static: true }) private popper!: ElementRef;\n\n @Input({ required: true }) public popup: InfoPopupEntry;\n\n private destroyRef = inject(DestroyRef);\n private mutationObserver: MutationObserver;\n\n constructor(\n public infoPopupService: InfoPopupService,\n public injector: Injector,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.popup.clickOutsideEnabled ??= true;\n\n // TODO: remove this after `params` refactoring\n if (this.popup.data.params !== undefined) {\n this.popup.data.componentParams = {\n inputs: this.popup.data.params\n ? {\n params: this.popup.data.params,\n }\n : null,\n injector:\n this.popup.data.componentParams?.injector ?? this.popup.data.injector,\n };\n }\n\n if (this.popup.data.injector) {\n this.popup.data.componentParams.injector = this.popup.data.injector;\n }\n }\n\n public ngAfterViewInit(): void {\n const modifiers = this.popup.popperModifiers\n ? [\n ...this.infoPopupService.defaultPopperModifiers,\n ...this.popup.popperModifiers,\n ]\n : this.infoPopupService.defaultPopperModifiers;\n\n this.popup.popperInstance = createPopper(\n this.popup.target,\n this.popper.nativeElement,\n {\n placement: this.popup.placement ?? 'bottom',\n modifiers,\n },\n );\n this.popup.popperInstance.update().then(() => {\n this.cdr.detectChanges();\n });\n\n this.initMutationObserver();\n\n if (\n _.isElement(this.popup.target) &&\n !this.popup.observeIntersectionDisabled\n ) {\n this.infoPopupService.observeIntersection(this.popup.target);\n }\n\n if (\n _.isElement(this.popup.target.contextElement) &&\n !this.popup.observeIntersectionDisabled\n ) {\n this.infoPopupService.observeIntersection(\n this.popup.target.contextElement,\n );\n }\n\n this.infoPopupService.event$\n .pipe(\n filter(\n (e) =>\n e.name === 'update' && (!e.popup || e.popup?.id === this.popup.id),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n if (this.popup.onDestroy) {\n this.popup.onDestroy();\n }\n\n this.mutationObserver.disconnect();\n }\n\n /**\n * Subscribes to the mutation event for the element.\n *\n * @param element needed element for observing.\n */\n private observeMutation(element: Element): void {\n if (!_.isElement(element)) {\n return;\n }\n\n this.mutationObserver.observe(element, {\n attributes: true,\n childList: true,\n characterData: true,\n });\n }\n\n /* Generates new mutation observer. */\n private initMutationObserver(): void {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach(() => this.infoPopupService.update());\n });\n\n switch (this.popup.mutationObserverElement) {\n case 'target':\n this.observeMutation(this.popup.target);\n break;\n case 'popup':\n this.observeMutation(this.popper.nativeElement);\n break;\n default:\n this.observeMutation(\n this.popup.mutationObserverElement ?? this.popup.target,\n );\n break;\n }\n }\n}\n","\n
    \n\n @if (popup.data.component) {\n \n } @else if (popup.data.templateRef) {\n \n }\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n OnInit,\n} from '@angular/core';\n\nimport { InfoPopupService } from './info-popup.service';\n\n@Component({\n selector: 'tmt-popup-container',\n templateUrl: './info-popup.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InfoPopupComponent implements OnInit {\n constructor(\n public infoPopupService: InfoPopupService,\n public injector: Injector,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.infoPopupService.event$.subscribe((event) => {\n switch (event.name) {\n case 'create':\n case 'destroy':\n this.cdr.markForCheck();\n break;\n }\n });\n }\n}\n","@for (popup of infoPopupService.popups; track popup) {\n \n}\n","import { Inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport _ from 'lodash';\nimport { Observable, Subject, debounceTime } from 'rxjs';\nimport { State } from '@popperjs/core';\n\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\nimport { InfoPopupEntry, InfoPopupEvent } from './info-popup.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InfoPopupService {\n public popups: InfoPopupEntry[] = [];\n public readonly defaultPopperModifiers = [\n {\n name: 'offset',\n options: {\n offset: [0, 11],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n padding: 25,\n },\n },\n ];\n public readonly controlPopperModifiers = [\n {\n name: 'offset',\n options: {\n offset: [0, 2],\n },\n },\n {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n state.elements.reference.getBoundingClientRect().width\n }px`;\n },\n },\n ];\n\n private eventSubject = new Subject();\n private intersectionObserver: IntersectionObserver;\n private readonly closeHandler: (e: KeyboardEvent) => void = (e) =>\n this.handlerEscape(e);\n\n public get event$(): Observable {\n return this.eventSubject.asObservable();\n }\n\n constructor(\n private chromeService: ChromeService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.initIntersectionObserver();\n this.initResizeSubscribe();\n }\n\n /**\n * Gets popup entry by id.\n *\n * @param id popup id.\n * @returns popup entry or `undefined` if entry is not found.\n */\n public getById(id: string): InfoPopupEntry | undefined {\n return this.popups.find((p) => p.id === id);\n }\n\n /**\n * Opens popup.\n *\n * @param entry popup config.\n *\n * @returns popup id.\n */\n public open(entry: InfoPopupEntry): string {\n if (!this.popups.length) {\n this.document.addEventListener('keydown', this.closeHandler);\n }\n\n entry.id ??= Guid.generate();\n\n this.popups.push(entry);\n this.eventSubject.next({ name: 'create', popup: entry });\n\n return entry.id;\n }\n\n /**\n * Closes the popup or all popups if `entry` is `null`.\n *\n * @param entry popup entry, popup id or `null`.\n */\n public close(target: InfoPopupEntry | string | null = null): void {\n const entry = typeof target === 'string' ? this.getById(target) : target;\n\n if (entry) {\n entry.popperInstance.destroy();\n _.remove(\n this.popups,\n entry.id\n ? (popup) => popup.id === entry.id\n : (popup) => popup.target.isEqualNode(entry.target), // TODO not correct\n );\n } else {\n this.popups.forEach((popup) => {\n popup.popperInstance.destroy();\n });\n this.popups.length = 0;\n }\n\n this.eventSubject.next({ name: 'destroy', popup: entry });\n\n if (!this.popups.length) {\n this.document.removeEventListener('keydown', this.closeHandler);\n }\n }\n\n /**\n * Emits popup's `forceUpdate` method or all popups if `entry` is `null`.\n *\n * @param entry popup entry, popup id or `null`.\n */\n public forceUpdate(target: InfoPopupEntry | string | null = null): void {\n const entry = typeof target === 'string' ? this.getById(target) : target;\n\n if (entry) {\n entry.popperInstance.forceUpdate();\n } else {\n this.popups.forEach((popup) => {\n popup.popperInstance.forceUpdate();\n });\n }\n\n this.eventSubject.next({ name: 'force-update', popup: entry });\n }\n\n /**\n * Emits popup's `update` method or all popups if `entry` is `null`.\n *\n * @param entry popup entry, popup id or `null`.\n */\n public update(target: InfoPopupEntry | string | null = null): void {\n const entry = typeof target === 'string' ? this.getById(target) : target;\n // TODO fix please.\n setTimeout(() => {\n const updating: Promise>[] = [];\n\n if (entry) {\n updating.push(entry.popperInstance?.update());\n } else {\n this.popups.forEach((item) => {\n updating.push(item.popperInstance?.update());\n });\n }\n\n Promise.all(updating).then(() => {\n this.eventSubject.next({ name: 'update', popup: entry });\n });\n });\n }\n\n /**\n * Subscribes to the intersection event for the popup target.\n *\n * @param target HTML Element.\n */\n public observeIntersection(target: Element): void {\n this.intersectionObserver.observe(target);\n }\n\n private handlerEscape(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.close(this.popups.pop());\n }\n }\n\n private initResizeSubscribe(): void {\n this.chromeService.mainAreaSize$.pipe(debounceTime(100)).subscribe(() => {\n this.update();\n });\n }\n\n private initIntersectionObserver(): void {\n const intersectionOptions: IntersectionObserverInit = {\n threshold: 0.5,\n };\n\n this.intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((intersectionEntry) => {\n if (!intersectionEntry.isIntersecting) {\n this.intersectionObserver.unobserve(intersectionEntry.target);\n\n const item = this.popups.find((item) => {\n if (_.isElement(item.target)) {\n return item.target.isEqualNode(intersectionEntry.target);\n }\n\n if (_.isElement(item.target.contextElement)) {\n return item.target.contextElement.isEqualNode(\n intersectionEntry.target,\n );\n }\n\n return false;\n });\n\n if (item) {\n this.close(item);\n }\n }\n });\n }, intersectionOptions);\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Component, computed, effect, input, model } from '@angular/core';\n\nimport { map, Observable, timer } from 'rxjs';\n\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\n\n/** Loading indicator. */\n@Component({\n selector: 'wp-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n standalone: false,\n})\nexport class LoadingIndicatorComponent {\n public loading = model(false);\n /** Delay in milliseconds */\n public delay = model();\n\n public isSpinnerMode = input(false);\n /** Works like `[isSpinnerMode] = true`. */\n public isOverlay = input(false);\n public spinnerParams = input();\n public state = input();\n public progress = input(null);\n\n public delayTimer$: Observable;\n public progressWidthStyle = computed(() =>\n typeof this.progress() === 'number' ? this.progress() : 100,\n );\n\n /** Returns Record object for spinner styles. */\n public get spinnerStyleVariables(): Record {\n const spinnerParams = this.spinnerParams();\n\n if (!spinnerParams || !Object.keys(spinnerParams).length) {\n return;\n }\n\n for (const key in spinnerParams) {\n if (spinnerParams[key]) {\n spinnerParams[key] = this.formatCssVar(spinnerParams[key]);\n }\n }\n\n return {\n '--spinner-size': spinnerParams?.spinnerSize,\n '--spinner-speed': spinnerParams?.spinnerSpeed,\n '--spinner-circle-color': spinnerParams?.spinnerCircleColor,\n '--spinner-spin-color': spinnerParams?.spinnerSpinColor,\n '--spinner-background-color': spinnerParams?.spinnerBackgroundColor,\n '--spinner-border-radius': spinnerParams?.spinnerBorderRadius,\n '--spinner-top': spinnerParams?.spinnerTopPosition,\n };\n }\n\n constructor() {\n effect(() => {\n const state = this.state();\n\n if (state !== undefined) {\n this.loading.set(state === CardState.Loading);\n }\n });\n }\n\n public ngOnInit(): void {\n if (this.delay() === undefined) {\n this.delay.set(this.isSpinnerMode() || this.isOverlay() ? 0 : 300);\n }\n\n this.delayTimer$ = timer(this.delay()).pipe(map(() => true));\n }\n\n /**\n * Formats spinner parameters.\n *\n * @param value spinner parameter value. Can be set as a concrete value or a variable.\n * Variable shall starts with '--', otherwise use var() function.\n * @returns formatted string.\n *\n * @example\n * const formattedValue1 = this.formatCssVar('--bs-primary');\n * const formattedValue2 = this.formatCssVar('var(--bs-border-radius)');\n * const formattedValue3 = this.formatCssVar('30px');\n */\n private formatCssVar(value: string): string {\n if (!value) return;\n const trimmed = value.trim();\n return trimmed.startsWith('--') ? `var(${trimmed})` : trimmed;\n }\n}\n","
    \n @if (isOverlay()) {\n @if (loading()) {\n @defer (when delayTimer$ | async) {\n
    \n
    \n }\n }\n\n \n }\n\n @if (!isOverlay() && loading()) {\n @defer (when delayTimer$ | async) {\n @if (isSpinnerMode()) {\n
    \n } @else {\n
    \n
    \n
    \n }\n }\n }\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgbCollapse } from '@ng-bootstrap/ng-bootstrap';\n\nimport { merge } from 'rxjs';\n\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { MenuItem, MenuService, MenuSubItem } from 'src/app/core/menu.service';\n\nimport { InfoPopupService } from '../info-popup/info-popup.service';\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\n\n@Component({\n selector: 'tmt-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class MenuComponent implements OnInit {\n @Input() menuItems: MenuItem[];\n @Input() context: any | null = null;\n /** Shows menu items sub actions collapse. */\n public isCollapsed: Record = {};\n public isPending: Record = {};\n public readonly spinnerParams: SpinnerParams = {\n spinnerSize: '20px',\n spinnerSpeed: '0.8s',\n spinnerBackgroundColor: 'rgba(86, 86, 86, 0.5)',\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private menuService: MenuService,\n private chrome: ChromeService,\n private popupService: InfoPopupService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.menuItems.forEach((item, index) => {\n if (\n (item.subActions && item.subActions.length) ||\n item.subActionsLazyResolver\n ) {\n this.isCollapsed[index] = true;\n }\n });\n\n // SetTimeout needs for align popper in small right gap\n setTimeout(() => {\n this.popupService.update();\n });\n\n this.initSubscribers();\n }\n\n /**\n * Returns label string.\n *\n * @param label label element.\n * @returns label computed to string.\n */\n public getLabelString(label: string | ((context?: any) => string)): string {\n if (!label) {\n return;\n }\n if (typeof label === 'string') {\n return label;\n }\n return label(this.context);\n }\n\n public canExecute(item: MenuItem): boolean {\n return item.allowedFn ? item.allowedFn(this.context) : true;\n }\n\n /** Check have at least one icon. */\n public checkHasIcon(): boolean {\n return !!this.menuItems.find((item) => item.iconClass);\n }\n\n /**\n * Toggles actions list.\n *\n * @param event click event.\n * @param index action index.\n * @param item action.\n * @param collapseRef NgbCollapse directive reference.\n * @returns\n */\n public toggleSubMenu(\n event: MouseEvent,\n index: number,\n item: MenuItem,\n collapseRef: NgbCollapse,\n ): void {\n event.stopPropagation();\n\n if (this.isPending[index]) {\n return;\n }\n\n if (\n typeof item.subActionsLazyResolver === 'function' &&\n !item.subActions?.length\n ) {\n this.isPending[index] = true;\n item\n .subActionsLazyResolver(this.context)\n .then((subActions: MenuSubItem[]) => {\n item.subActions = subActions;\n this.isPending[index] = false;\n this.cdr.detectChanges();\n collapseRef.toggle();\n });\n\n return;\n }\n\n collapseRef.toggle();\n }\n\n /**\n * Actions after sub menu item collapse changes.\n *\n * @param collapsed boolean shows is item collapsed.\n * @param index item's with sub actions index.\n */\n public onSubActionsCollapseChange(collapsed: boolean, index: number): void {\n for (const index of Object.keys(this.isCollapsed)) {\n this.isCollapsed[index] = true;\n }\n\n this.isCollapsed[index] = collapsed;\n }\n\n private initSubscribers(): void {\n merge(this.chrome.mainAreaSize$, this.chrome.scroll$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.menuService.close());\n }\n}\n","
    \n @for (item of menuItems; track item.name) {\n @if ((item.subActions && item.subActions.length) || item.subActionsLazyResolver) {\n \n \n @if (item.iconClass) {\n \n }\n {{ getLabelString(item.label) | translate }}\n \n \n \n\n \n @for (subAction of item.subActions; track subAction.name) {\n \n }\n
    \n } @else if (!item.hasOwnProperty('subActions')) {\n \n }\n }\n\n\n\n \n @if (item.iconClass) {\n \n }\n {{ getLabelString(item.label) | translate }}\n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Injectable,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { initAndDestroy } from 'src/app/shared/animations';\n\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\n\n@Injectable()\nexport class OffCanvasActionPanelService extends ActionPanelService {}\n\n@Component({\n selector: 'tmt-off-canvas',\n templateUrl: './off-canvas.component.html',\n styleUrl: './off-canvas.component.scss',\n providers: [OffCanvasActionPanelService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [initAndDestroy],\n standalone: false,\n})\nexport class OffCanvasComponent implements OnInit, OnDestroy {\n public breakPointClassName: string;\n public excludeClickOutside =\n '.notification-list, .modal-dialog, tmt-popup-container, .menubar-item-tooltip';\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public offCanvasActionPanelService: OffCanvasActionPanelService,\n public offCanvasService: OffCanvasService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.offCanvasService.offCanvasActionPanelService =\n this.offCanvasActionPanelService;\n\n this.offCanvasService.offCanvasWidth$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((width) => {\n this.breakPointClassName = 'offcanvas-body--sm';\n\n if (width >= 768) {\n this.breakPointClassName = 'offcanvas-body--md';\n }\n\n if (width >= 992) {\n this.breakPointClassName = 'offcanvas-body--lg';\n }\n\n if (width >= 1200) {\n this.breakPointClassName = 'offcanvas-body--xl';\n }\n\n this.cdr.markForCheck();\n });\n\n if (this.offCanvasService.offCanvasEntry?.exclude) {\n this.excludeClickOutside +=\n ', ' + this.offCanvasService.offCanvasEntry.exclude;\n }\n }\n\n public ngOnDestroy(): void {\n this.offCanvasService.offCanvasEntry = null;\n }\n}\n","\n
    \n
    \n
    \n
    \n \n \n
    \n\n @if (!(offCanvasService.reRender$ | async)) {\n
    \n @if (offCanvasService.offCanvasEntry?.content?.component) {\n \n } @else if (offCanvasService.offCanvasEntry?.content?.templateRef) {\n \n }\n
    \n }\n\n","import { DecimalPipe, getCurrencySymbol, PercentPipe } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport { ReplaySubject, Subscription } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { DatePeriodType } from 'src/app/shared/models/enums/date-period-type.enum';\nimport { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { WpCurrencyPipe } from 'src/app/shared/pipes/currency.pipe';\nimport {\n DurationPipe,\n NullHandlerType,\n} from 'src/app/shared/pipes/duration.pipe';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { KpiCardModel } from '../kpi-card/kpi-card.model';\nimport { Kpi } from '../shared/kpi.model';\nimport {\n KpiPeriodType,\n OverviewKpiCurrencyMode,\n OverviewKpiSettings,\n} from '../shared/overview-kpi.settings';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { isEqual } from 'lodash';\n\n@Injectable()\nexport class OverviewKpiService {\n public loading$ = new ReplaySubject();\n\n private defaultSettings = new OverviewKpiSettings().getDefault();\n public projectCurrencyCode: string;\n public settings: OverviewKpiSettings;\n public cards: KpiCardModel[] = [];\n\n public kpi: Kpi;\n public entityCollection: 'Projects' | 'Programs' | 'Organizations';\n public projectVersion: ProjectVersion;\n public financeViewAllowed: boolean;\n public nonBillable: boolean;\n\n private loadingSubscription: Subscription;\n\n public get currencyCode(): string {\n return this.settings.currency === OverviewKpiCurrencyMode.base\n ? null\n : this.projectCurrencyCode;\n }\n\n constructor(\n @Inject('entityId') public entityId,\n private data: DataService,\n private workPipe: WorkPipe,\n private translate: TranslateService,\n private percentPipe: PercentPipe,\n private decimalPipe: DecimalPipe,\n private durationPipe: DurationPipe,\n private currencyPipe: WpCurrencyPipe,\n private notification: NotificationService,\n ) {\n this.settings = { ...this.defaultSettings } as OverviewKpiSettings;\n\n // Для обновления типа периода.\n this.setPeriodByCurrentType();\n }\n\n public reload() {\n this.buildCards();\n\n this.loading$.next(true);\n\n this.loadingSubscription?.unsubscribe();\n\n let period: DatePeriod = null;\n\n switch (this.settings.periodType) {\n case KpiPeriodType.onTheCurrentDate:\n period = {\n from: '1900-01-01',\n to: DateTime.now().toISODate(),\n periodType: DatePeriodType.Custom,\n };\n break;\n case KpiPeriodType.onTheEndOfProject:\n period = null;\n break;\n case KpiPeriodType.onTheDate:\n period = {\n from: '1900-01-01',\n to: this.settings.date ?? '2100-12-31',\n periodType: DatePeriodType.Custom,\n };\n break;\n case KpiPeriodType.forThePeriod:\n period = this.settings.period;\n break;\n }\n\n const urlParams = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@request': JSON.stringify({\n period,\n filterByTaskId: this.settings.task?.id ?? null,\n projectVersionId: this.projectVersion?.id ?? null,\n showInBaseCurrency:\n this.settings.currency === OverviewKpiCurrencyMode.base,\n }),\n };\n\n const params: Dictionary = {\n request: '@request',\n };\n\n this.loadingSubscription = this.data\n .collection(this.entityCollection)\n .entity(this.entityId)\n .function('GetKpi')\n .get(params, null, urlParams)\n .subscribe({\n next: (kpi: Kpi) => {\n this.kpi = kpi;\n this.buildCards();\n this.loading$.next(false);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.loading$.next(false);\n },\n });\n }\n\n public setPeriodByCurrentType(): boolean {\n let newPeriodType: KpiPeriodType;\n switch (this.settings.type) {\n case KpiType.Actual:\n newPeriodType = KpiPeriodType.onTheCurrentDate;\n break;\n case KpiType.Forecast:\n newPeriodType = KpiPeriodType.onTheEndOfProject;\n break;\n case KpiType.Estimate:\n newPeriodType = KpiPeriodType.onTheEndOfProject;\n break;\n case KpiType.Plan:\n newPeriodType = KpiPeriodType.onTheEndOfProject;\n break;\n }\n\n if (this.settings.periodType !== newPeriodType) {\n this.settings.periodType = newPeriodType;\n return true;\n }\n\n return false;\n }\n\n public setType(type: KpiType) {\n this.settings.type = type;\n\n if (this.setPeriodByCurrentType()) {\n this.reload();\n }\n\n this.buildCards();\n }\n\n public setPeriodType(type: KpiPeriodType) {\n this.settings.periodType = type;\n this.reload();\n }\n\n public buildCards() {\n if (!this.kpi) {\n this.kpi = {};\n }\n\n this.cards = [];\n\n this.addCard(KpiKind.Hours);\n\n if (this.financeViewAllowed) {\n this.addCard(KpiKind.Cost);\n this.addCard(KpiKind.Expenses);\n\n if (!this.nonBillable) {\n this.addCard(KpiKind.Revenue);\n this.addCard(KpiKind.Profit);\n this.addCard(KpiKind.Profitability);\n this.addCard(KpiKind.Billing);\n }\n }\n if (this.entityCollection === 'Projects') {\n this.addCard(KpiKind.Duration);\n }\n }\n\n public assertSettingsChanged(): boolean {\n return !isEqual(this.settings, this.defaultSettings);\n }\n\n private addCard(kind: KpiKind) {\n const header = `projects.overview.kpi.${kind.toLowerCase()}`;\n\n let mainTypePrefix = '';\n let leftTypePrefix = '';\n let rightTypePrefix = '';\n\n let leftLabel = '';\n let rightLabel = '';\n\n switch (this.settings.type) {\n case KpiType.Actual:\n mainTypePrefix = 'actual';\n leftTypePrefix = 'estimated';\n rightTypePrefix = 'planned';\n leftLabel = 'projects.overview.type.estimate';\n rightLabel = 'projects.overview.type.plan';\n break;\n case KpiType.Plan:\n mainTypePrefix = 'planned';\n leftTypePrefix = 'estimated';\n rightTypePrefix = 'actual';\n leftLabel = 'projects.overview.type.estimate';\n rightLabel = 'projects.overview.type.actual';\n break;\n case KpiType.Estimate:\n mainTypePrefix = 'estimated';\n leftTypePrefix = 'actual';\n rightTypePrefix = 'planned';\n leftLabel = 'projects.overview.type.actual';\n rightLabel = 'projects.overview.type.plan';\n break;\n case KpiType.Forecast:\n mainTypePrefix = 'forecasted';\n leftTypePrefix = 'actual';\n rightTypePrefix = 'planned';\n leftLabel = 'projects.overview.type.actual';\n rightLabel = 'projects.overview.type.plan';\n break;\n }\n\n const value = this.kpi[`${mainTypePrefix}${kind}`];\n const leftValue = this.kpi[`${leftTypePrefix}${kind}`];\n const rightValue = this.kpi[`${rightTypePrefix}${kind}`];\n\n let formattedValue = '';\n let unit = '';\n\n let formattedLeftValue = '';\n let formattedRightValue = '';\n\n switch (kind) {\n case KpiKind.Hours:\n formattedValue = this.decimalPipe.transform(value, '0.0-0');\n formattedLeftValue = this.workPipe.transform(leftValue);\n formattedRightValue = this.workPipe.transform(rightValue);\n unit = this.translate.instant('shared.unitHour');\n break;\n\n case KpiKind.Profitability:\n formattedValue = this.decimalPipe.transform(value * 100, '0.0-0');\n formattedLeftValue = this.percentPipe.transform(leftValue);\n formattedRightValue = this.percentPipe.transform(rightValue);\n unit = '%';\n break;\n\n case KpiKind.Duration:\n formattedValue = this.decimalPipe.transform(value, '0.0-0') ?? '—';\n formattedLeftValue = this.durationPipe.transform(\n leftValue,\n NullHandlerType.dash,\n );\n formattedRightValue = this.durationPipe.transform(\n rightValue,\n NullHandlerType.dash,\n );\n unit = this.translate.instant('shared.unitDay');\n break;\n\n default:\n formattedValue = this.decimalPipe.transform(value, '0.0-0');\n formattedLeftValue = this.currencyPipe.transform(\n leftValue,\n this.currencyCode,\n '0.0-0',\n );\n formattedRightValue = this.currencyPipe.transform(\n rightValue,\n this.currencyCode,\n '0.0-0',\n );\n unit = getCurrencySymbol(this.currencyCode, 'narrow');\n break;\n }\n\n const card = {\n header,\n value: formattedValue,\n unit,\n leftDetail: {\n label: leftLabel,\n value: formattedLeftValue,\n },\n rightDetail: {\n label: rightLabel,\n value: formattedRightValue,\n },\n } as KpiCardModel;\n\n if (\n this.settings.type === KpiType.Actual ||\n this.settings.type === KpiType.Estimate ||\n this.settings.type === KpiType.Forecast\n ) {\n switch (kind) {\n case KpiKind.Profit:\n card.attention = value < rightValue;\n break;\n case KpiKind.Profitability:\n card.attention = value < rightValue;\n break;\n case KpiKind.Revenue:\n card.attention = value < rightValue;\n break;\n default:\n card.attention = value > rightValue;\n break;\n }\n }\n\n this.cards.push(card);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { OverviewKpiService } from '../core/overview-kpi.service';\nimport { KpiCardModel } from './kpi-card.model';\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\n\n@Component({\n selector: 'wp-kpi-card',\n templateUrl: './kpi-card.component.html',\n styleUrls: ['./kpi-card.component.scss'],\n standalone: false,\n})\nexport class KpiCardComponent {\n @Input() model: KpiCardModel;\n\n public readonly spinnerParams: SpinnerParams = {\n spinnerBackgroundColor: '--bs-light',\n spinnerBorderRadius: '--bs-border-radius',\n };\n\n constructor(public overviewKpiService: OverviewKpiService) {}\n}\n","\n
    \n
    \n
    \n \n {{ model.header | translate }}\n \n \n
    \n
    \n {{ model.value }}\n {{ model.unit }}\n
    \n
    \n
    \n {{ model.leftDetail.label | translate }}:\n {{ model.leftDetail.value }}\n
    \n\n
    \n {{ model.rightDetail.label | translate }}:\n {{ model.rightDetail.value }}\n
    \n
    \n
    \n
    \n
    \n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { OverviewKpiService } from './core/overview-kpi.service';\nimport {\n KpiPeriodType,\n OverviewKpiCurrencyMode,\n} from './shared/overview-kpi.settings';\n\n@Component({\n selector: 'wp-overview-kpi',\n templateUrl: './overview-kpi.component.html',\n styleUrls: ['./overview-kpi.component.scss'],\n providers: [ProjectTasksService],\n standalone: false,\n})\nexport class OverviewKpiComponent implements OnInit {\n @Input() entityCollection: 'Projects' | 'Programs' | 'Organizations';\n @Input() projectVersion: ProjectVersion;\n @Input() defaultType: KpiType;\n @Input() financeViewAllowed = false;\n @Input() nonBillable: boolean;\n @Input() currencyCode: string = null;\n\n public kpiType = KpiType;\n public kpiPeriodType = KpiPeriodType;\n\n public form = this.fb.group({\n date: null,\n task: null,\n period: null,\n currency: null,\n });\n\n get currencyModeBase() {\n return OverviewKpiCurrencyMode.base;\n }\n\n get currencyModeProject() {\n return OverviewKpiCurrencyMode.project;\n }\n\n constructor(\n @Inject('entityId') entityId,\n projectTasksService: ProjectTasksService,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n public service: OverviewKpiService,\n ) {\n projectTasksService.resetProjectTasks(entityId, this.projectVersion);\n }\n\n ngOnInit(): void {\n this.form.patchValue(this.service.settings, {\n emitEvent: false,\n });\n\n this.service.entityCollection = this.entityCollection;\n this.service.projectVersion = this.projectVersion;\n this.service.financeViewAllowed = this.financeViewAllowed;\n this.service.nonBillable = this.nonBillable;\n\n this.form.valueChanges.subscribe(() => {\n this.service.settings.date = this.form.value.date;\n this.service.settings.period = this.form.value.period;\n this.service.settings.task = this.form.value.task;\n this.service.settings.currency =\n this.entityCollection !== 'Projects'\n ? OverviewKpiCurrencyMode.base\n : this.form.value.currency;\n\n this.service.reload();\n });\n\n const settingsChanged = this.service.assertSettingsChanged();\n if (this.defaultType && !settingsChanged) {\n this.service.settings.type = this.defaultType;\n this.service.setPeriodByCurrentType();\n }\n\n this.service.projectCurrencyCode = this.currencyCode;\n this.service.reload();\n }\n\n public getTypeTitle(type: KpiType) {\n switch (type) {\n case KpiType.Actual:\n return this.translate.instant('projects.overview.type.actual');\n case KpiType.Plan:\n return this.translate.instant('projects.overview.type.plan');\n case KpiType.Estimate:\n return this.translate.instant('projects.overview.type.estimate');\n case KpiType.Forecast:\n return this.translate.instant('projects.overview.type.forecast');\n }\n }\n\n public getPeriodTypeTitle(periodType: KpiPeriodType) {\n return this.translate.instant(`projects.overview.periodType.${periodType}`);\n }\n\n public getCurrencyTitle(currency: OverviewKpiCurrencyMode) {\n return this.translate.instant(`projects.overview.currency.${currency}`);\n }\n\n public setOverviewCurrency(currency: OverviewKpiCurrencyMode) {\n this.service.settings.currency = currency;\n this.service.reload();\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n\n \n \n\n
    \n \n\n \n
    \n
    \n\n
    \n \n
    \n \n {{ getPeriodTypeTitle(kpiPeriodType.onTheCurrentDate) }}\n \n\n \n {{ getPeriodTypeTitle(kpiPeriodType.onTheEndOfProject) }}\n \n\n \n\n \n
    \n
    \n\n \n\n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { KpiCardComponent } from './kpi-card/kpi-card.component';\nimport { OverviewKpiComponent } from './overview-kpi.component';\nimport { OverviewSwitcherModule } from 'src/app/shared/components/features/overview/overview-switcher/overview-switcher.module';\n\n@NgModule({\n declarations: [OverviewKpiComponent, KpiCardComponent],\n imports: [CommonModule, SharedModule, OverviewSwitcherModule],\n exports: [OverviewKpiComponent],\n})\nexport class OverviewKpiModule {}\n","import { DatePeriod } from 'src/app/shared/models/entities/date-period.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { KpiType } from 'src/app/shared/models/enums/kpi-type.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class OverviewKpiSettings implements BaseSettings {\n public readonly name = 'OverviewKpiSettings';\n version: number;\n date?: string;\n period: DatePeriod;\n task: NamedEntity;\n type: KpiType;\n periodType: KpiPeriodType;\n currency: OverviewKpiCurrencyMode;\n\n getDefault(): OverviewKpiSettings {\n return {\n version: 1,\n period: null,\n type: KpiType.Actual,\n periodType: KpiPeriodType.onTheCurrentDate,\n currency: OverviewKpiCurrencyMode.project,\n } as OverviewKpiSettings;\n }\n}\n\nexport enum KpiPeriodType {\n onTheCurrentDate = 'onTheCurrentDate',\n onTheDate = 'onTheDate',\n onTheEndOfProject = 'onTheEndOfProject',\n forThePeriod = 'forThePeriod',\n}\n\nexport enum OverviewKpiCurrencyMode {\n base = 'base',\n project = 'project',\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StateService } from '@uirouter/angular';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'tmt-overview-switcher',\n templateUrl: './overview-switcher.component.html',\n standalone: false,\n})\nexport class OverviewSwitcherComponent implements OnInit {\n public control = new FormControl('parameters');\n\n constructor(\n private state: StateService,\n @Inject('entityType') private entityType: string,\n ) {}\n\n ngOnInit(): void {\n switch (this.state.current.name) {\n case `${this.entityType}.overview.kpi`:\n this.control.setValue('kpi');\n break;\n case `${this.entityType}.overview.analysis`:\n this.control.setValue('analysis');\n break;\n }\n\n this.control.valueChanges.subscribe(() => {\n this.state.go(`${this.entityType}.overview.${this.control.value}`, {\n routeMode: RouteMode.keep,\n });\n });\n }\n}\n","
    \n \n \n\n \n \n
    \n","import { NgModule } from '@angular/core';\nimport { OverviewSwitcherComponent } from 'src/app/shared/components/features/overview/overview-switcher/overview-switcher.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [OverviewSwitcherComponent],\n imports: [CommonModule, SharedModule],\n exports: [OverviewSwitcherComponent],\n})\nexport class OverviewSwitcherModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TrendsKpiModule } from 'src/app/shared/components/features/overview/trends-kpi/trends-kpi.module';\nimport { OverviewKpiModule } from 'src/app/shared/components/features/overview/overview-kpi/overview-kpi.module';\nimport { OverviewKpiComponent } from 'src/app/shared/components/features/overview/overview-kpi/overview-kpi.component';\nimport { TrendsKpiComponent } from 'src/app/shared/components/features/overview/trends-kpi/trends-kpi.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, OverviewKpiModule, TrendsKpiModule],\n exports: [OverviewKpiComponent, TrendsKpiComponent],\n})\nexport class OverviewModule {}\n","import { Inject, Injectable } from '@angular/core';\nimport { ReplaySubject, Subscription } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { KpiTrends } from '../shared/kpi-trends.model';\nimport { TrendsKpiSettings } from '../shared/trends-kpi.settings';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { Dictionary } from 'lodash';\n\n@Injectable()\nexport class TrendsKpiService {\n public loading$ = new ReplaySubject();\n public kpiTrends$ = new ReplaySubject();\n public settings: TrendsKpiSettings;\n public entityCollection: string;\n public projectVersion: ProjectVersion;\n\n public financeViewAllowed: boolean;\n\n private loadingSubscription: Subscription;\n\n constructor(\n @Inject('entityId') public entityId,\n private localConfigService: LocalConfigService,\n private data: DataService,\n private notification: NotificationService,\n ) {\n this.settings = localConfigService.getConfig(TrendsKpiSettings);\n }\n\n public reload() {\n this.loading$.next(true);\n\n this.loadingSubscription?.unsubscribe();\n\n const urlParams = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@request': JSON.stringify({\n kind: this.settings.kind,\n projectVersionId: this.projectVersion?.id ?? null,\n }),\n };\n\n const params: Dictionary = {\n request: '@request',\n };\n\n this.loadingSubscription = this.data\n .collection(this.entityCollection)\n .entity(this.entityId)\n .function('GetTrends')\n .query(params, null, urlParams)\n .subscribe({\n next: (kpiTrends: KpiTrends) => {\n this.loading$.next(false);\n this.kpiTrends$.next(kpiTrends);\n },\n error: (error: Exception) => {\n this.loading$.next(false);\n this.notification.error(error.message);\n },\n });\n }\n\n saveSettings() {\n this.localConfigService.setConfig(TrendsKpiSettings, this.settings);\n }\n\n public setKind(kind: KpiKind) {\n this.settings.kind = kind;\n this.saveSettings();\n this.reload();\n }\n}\n","import { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class TrendsKpiSettings implements BaseSettings {\n public readonly name = 'TrendsKpiSettings';\n version: number;\n\n scale: PlanningScale;\n kind: KpiKind;\n\n getDefault(): TrendsKpiSettings {\n return {\n version: 1,\n scale: PlanningScale.Day,\n kind: KpiKind.Hours,\n } as TrendsKpiSettings;\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { DateTimeLabelFormats } from 'src/app/shared/globals/hightstock.cfg';\nimport { KpiKind } from 'src/app/shared/models/enums/kpi-kind.model';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { TrendsKpiService } from './core/trends-kpi.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { HighchartsService } from 'src/app/core/highcharts.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'wp-trends-kpi',\n templateUrl: './trends-kpi.component.html',\n styleUrls: ['./trends-kpi.component.scss'],\n standalone: false,\n})\nexport class TrendsKpiComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() entityCollection: 'Projects' | 'Programs' | 'Organizations';\n @Input() projectVersion: ProjectVersion;\n @Input() financeViewAllowed = false;\n @Input() nonBillable: boolean;\n\n public isEmpty = false;\n public planningScale = PlanningScale;\n public kpiKind = KpiKind;\n public highcharts = this.highchartsService.getHighcharts();\n public chart: Highcharts.Chart;\n\n public chartOptions: Highcharts.Options = {\n chart: {\n alignTicks: false,\n width: null,\n events: {},\n },\n legend: {\n enabled: false,\n },\n loading: {\n labelStyle: {\n fontSize: '20px',\n fontFamily: 'Segoe UI',\n fontWeight: 'light',\n },\n },\n credits: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n navigator: {\n enabled: true,\n },\n title: {\n text: '',\n },\n yAxis: {\n title: null,\n },\n xAxis: {\n type: 'datetime',\n ordinal: false,\n events: {},\n },\n series: [\n {\n type: 'column',\n name: this.translate.instant('projects.overview.type.actual'),\n tooltip: {\n valueDecimals: 2,\n },\n dataGrouping: {\n enabled: true,\n forced: true,\n units: [['month', [3]]],\n dateTimeLabelFormats: DateTimeLabelFormats,\n },\n data: [[]],\n },\n {\n type: 'column',\n name: this.translate.instant('projects.overview.type.plan'),\n tooltip: {\n valueDecimals: 2,\n },\n dataGrouping: {\n forced: true,\n units: [['month', [3]]],\n dateTimeLabelFormats: DateTimeLabelFormats,\n },\n data: [],\n },\n ],\n };\n\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n public service: TrendsKpiService,\n private translate: TranslateService,\n private highchartsService: HighchartsService,\n private chrome: ChromeService,\n ) {}\n\n public getScaleName(scale: PlanningScale): string {\n switch (scale) {\n case PlanningScale.Day:\n return this.translate.instant('projects.overview.scale.periodDay');\n case PlanningScale.Week:\n return this.translate.instant('projects.overview.scale.periodWeek');\n case PlanningScale.Month:\n return this.translate.instant('projects.overview.scale.periodMonth');\n }\n }\n\n public setScale(scale: PlanningScale) {\n this.service.settings.scale = scale;\n this.service.saveSettings();\n let period = [];\n switch (scale) {\n case PlanningScale.Day:\n period = [['day', [1]]];\n break;\n case PlanningScale.Week:\n period = [['week', [1]]];\n break;\n case PlanningScale.Month:\n period = [['month', [1]]];\n break;\n }\n\n this.chart.series.forEach((series) => {\n series.xAxis.setDataGrouping(\n {\n units: period,\n },\n false,\n );\n });\n\n this.chart.redraw();\n }\n\n public getKindName(kind: KpiKind): string {\n return this.translate.instant(\n `projects.overview.kpi.${kind.toLowerCase()}`,\n );\n }\n\n ngOnInit(): void {\n this.service.entityCollection = this.entityCollection;\n this.service.financeViewAllowed = this.financeViewAllowed;\n this.service.projectVersion = this.projectVersion;\n\n this.service.loading$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((loading) => {\n if (loading) {\n this.chart?.showLoading();\n } else {\n this.chart?.hideLoading();\n }\n });\n\n this.service.reload();\n }\n\n ngAfterViewInit(): void {\n this.chart = this.highcharts.stockChart('highcharts', this.chartOptions);\n\n this.chart.reflow();\n\n this.service.kpiTrends$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((kpiTrends) => {\n this.chart.series[0].setData(kpiTrends.actual.map((e) => [e.d, e.v]));\n this.chart.series[1].setData(kpiTrends.plan.map((e) => [e.d, e.v]));\n\n this.isEmpty =\n kpiTrends.actual.length === 0 && kpiTrends.plan.length === 0;\n\n this.setScale(this.service.settings.scale);\n\n const ax0 = this.chart.series[0].xAxis as any;\n const ax1 = this.chart.series[1].xAxis as any;\n\n ax0.userMin = Math.min(ax0.dataMin, ax1.dataMin);\n ax0.userMax = Math.max(ax0.dataMax, ax1.dataMax);\n\n this.chart.redraw();\n this.chart.reflow();\n });\n\n this.chrome.mainAreaSize$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.chart?.reflow();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n {{ getKindName(kpiKind.Cost) }}\n \n \n {{ getKindName(kpiKind.Expenses) }}\n \n \n {{ getKindName(kpiKind.Revenue) }}\n \n
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n

    \n  {{ 'projects.overview.noDataForChart' | translate }}\n

    \n
    \n
    \n\n
    \n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TrendsKpiComponent } from './trends-kpi.component';\nimport { OverviewSwitcherModule } from 'src/app/shared/components/features/overview/overview-switcher/overview-switcher.module';\n\n@NgModule({\n declarations: [TrendsKpiComponent],\n imports: [CommonModule, SharedModule, OverviewSwitcherModule],\n exports: [TrendsKpiComponent],\n})\nexport class TrendsKpiModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Subject } from 'rxjs';\nimport { LicenseProductInfo } from 'src/app/shared/models/entities/settings/license-info.model';\nimport { FormBuilder } from '@angular/forms';\nimport { ModalForm } from 'src/app/shared/models/inner/modal-form.interface';\nimport { LicenseProduct } from 'src/app/shared/models/session/client-session.model';\n\n@Component({\n selector: 'tmt-product-selector-modal',\n templateUrl: './product-selector-modal.component.html',\n styleUrls: ['./product-selector-modal.component.scss'],\n standalone: false,\n})\nexport class ProductSelectorModalComponent implements OnInit, ModalForm {\n @Input() licenseProducts: LicenseProductInfo[] = [];\n\n public saving$ = new Subject();\n public form = this.fb.group({});\n isSharedModal = true;\n\n public selectedProducts: LicenseProduct[] = [];\n\n constructor(\n private fb: FormBuilder,\n private data: DataService,\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ngOnInit() {\n this.licenseProducts = this.licenseProducts.filter(\n (product) => !product.isLegacy,\n );\n this.licenseProducts.forEach((product) => {\n this.form.addControl(product.product, this.fb.control(product.limit > 0));\n });\n\n this.form.valueChanges.subscribe(() => {\n this.updateSelectedProducts();\n });\n\n this.updateSelectedProducts();\n }\n\n private updateSelectedProducts() {\n const value = this.form.value;\n this.selectedProducts = [];\n Object.keys(value).forEach((product: LicenseProduct) => {\n if (value[product]) {\n this.selectedProducts.push(product);\n }\n });\n }\n\n ok() {\n this.saving$.next(true);\n this.data\n .singleton('Tenant')\n .action('SetTrialProducts')\n .execute({ products: this.selectedProducts })\n .subscribe({\n next: () => {\n this.notification.successLocal(\n 'settings.account.productSelector.messages.configured',\n );\n this.saving$.next(false);\n location.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.saving$.next(false);\n },\n });\n }\n\n cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n close() {\n this.activeModal.close();\n }\n}\n","
    \n
    \n

    \n {{ 'settings.account.productSelector.header' | translate }}\n

    \n \n
    \n
    \n \n\n
    \n \n
    \n \n \n
    \n
    \n\n \n
    \n
    \n \n {{ 'settings.account.productSelector.actions.apply' | translate }}\n \n
    \n\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n QueryList,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@Component({\n selector: 'tmt-profile-resource-controls',\n templateUrl: './profile-resource-controls.component.html',\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, SharedModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProfileResourceControlsComponent implements AfterViewInit {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n @Input() form: FormGroup;\n private destroyRef = inject(DestroyRef);\n\n public ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.form,\n this.cascadeControls,\n [\n [\n {\n controlName: 'role',\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","
    \n
    \n
    \n \n\n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n} from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { RoleName } from 'src/app/shared/models/enums/role-name.enum';\nimport { InfoPopupService } from '../info-popup/info-popup.service';\n\n/** Сведения о пользователе (вплывающее окно). */\n@Component({\n selector: 'wp-project-info',\n templateUrl: './project-info.component.html',\n styleUrls: ['./project-info.component.scss'],\n standalone: false,\n})\nexport class ProjectInfoComponent implements OnInit {\n @Input() params: any;\n\n public project: Project;\n public isLoading: boolean;\n public notFound: boolean;\n\n constructor(\n private data: DataService,\n private app: AppService,\n private notification: NotificationService,\n private changeDetector: ChangeDetectorRef,\n private infoPopupService: InfoPopupService,\n ) {}\n\n private open(projectId: string) {\n this.load(projectId);\n this.changeDetector.detectChanges();\n }\n\n public close = () => {\n this.infoPopupService.close();\n };\n\n private load(projectId: string) {\n this.isLoading = true;\n this.notFound = false;\n const query = {\n expand: [{ state: { select: 'name' } }, { manager: { select: 'name' } }],\n select: ['id', 'name', 'startDate', 'endDate', 'description'],\n };\n\n this.data\n .collection('Projects')\n .entity(projectId)\n .get(query)\n .subscribe({\n next: (project) => {\n this.project = project;\n this.isLoading = false;\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.notFound = true;\n } else {\n this.notification.error(error.message);\n }\n this.changeDetector.detectChanges();\n this.infoPopupService.update();\n },\n });\n }\n\n public hasProjectRole = () => this.app.checkRole(RoleName.ProjectManager);\n\n ngOnInit() {\n this.open(this.params.projectId);\n }\n}\n","@if (!isLoading && !notFound) {\n
    \n
    \n {{ project?.name }}\n
    \n\n
    \n
    \n {{ 'shared.projectInfo.status' | translate }}\n

    {{ project?.state.name }}

    \n
    \n
    \n {{ 'shared.projectInfo.period' | translate }}\n

    \n {{ project?.startDate | date: 'shortDate' }} — {{\n project?.endDate | date: 'shortDate'\n }}\n

    \n
    \n
    \n\n
    \n
    \n {{ 'shared.projectInfo.manager' | translate }}\n

    {{ project?.manager.name }}

    \n
    \n
    \n\n
    \n
    \n {{\n 'shared.projectInfo.description' | translate\n }}\n
    \n
    \n
    \n \n}\n\n@if (notFound) {\n
    \n {{ 'shared.entityNotFound.title' | translate }}\n
    \n}\n\n\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Inject,\n Input,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ReactiveFormsModule,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { RateMatrixStructureCollection } from 'src/app/settings-app/rate-matrix/model/rate-matrix-structure.enum';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-rate-matrices-lines-filter',\n templateUrl: './rate-matrices-lines-filter.component.html',\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, SharedModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RateMatricesLinesFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n public detailsForm: UntypedFormGroup;\n public rateMatrixStructureCollection = RateMatrixStructureCollection;\n public dependentAnalytics: Record = {\n competence: {\n dependent: 'role',\n query: null,\n },\n grade: {\n dependent: 'level',\n query: null,\n },\n };\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public filterService: FilterService,\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n const form = {\n rateMatrix: null,\n };\n for (const key of Object.keys(this.rateMatrixStructureCollection)) {\n form[key] = null;\n }\n this.detailsForm = this.fb.group(form);\n this.detailsForm.patchValue(this.filterService.values);\n\n this.filterService.values$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((values) => {\n for (const key of Object.keys(this.rateMatrixStructureCollection)) {\n this.detailsForm.get(key).setValue(null, { emitEvent: false });\n }\n this.detailsForm.patchValue(values, { emitEvent: false });\n this.cdr.markForCheck();\n });\n\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n this.cdr.markForCheck();\n });\n\n this.initDependentAnalyticsSubscriptions();\n }\n\n /* Inits dependent analytics form control changes subscriptions. */\n private initDependentAnalyticsSubscriptions(): void {\n for (const key of Object.keys(this.dependentAnalytics)) {\n this.detailsForm\n .get(this.dependentAnalytics[key].dependent)\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (value) {\n this.dependentAnalytics[key].query = {\n filter: {\n [this.dependentAnalytics[key].dependent + 'Id']: {\n type: 'guid',\n value: value.id,\n },\n },\n };\n } else {\n this.dependentAnalytics[key].query = null;\n }\n this.detailsForm.get(key).setValue(null, { emitEvent: false });\n });\n }\n }\n}\n","
    \n
    \n @for (item of filterService.values.rateMatrix?.rateMatrixStructure; track item) {\n
    \n \n \n
    \n }\n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { RateMatricesLinesFilterComponent } from './rate-matrices-lines-filter.component';\nimport { RateMatrixStructureCollection } from 'src/app/settings-app/rate-matrix/model/rate-matrix-structure.enum';\nimport { RateMatricesFilter } from 'src/app/shared/components/features/rate-matrices-filter/rate-matrices-filter.model';\n\n@Injectable()\nexport class RateMatricesLinesFilterService extends FilterService {\n public override component: Type =\n RateMatricesLinesFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = false;\n public override placeholder = 'shared.rateMatrices.filter.placeholder';\n public rateMatrixStructureCollection = RateMatrixStructureCollection;\n\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n rateMatrix: () => 0,\n };\n\n /* Gets filter default value. */\n public override getDefaultValues(): RateMatricesFilter {\n const result: RateMatricesFilter = {\n text: '',\n rateMatrix: null,\n };\n for (const key of Object.keys(this.rateMatrixStructureCollection)) {\n result[key] = null;\n }\n return result;\n }\n\n /* Resets filter values. */\n public override resetValues(): void {\n const newValues = this.getDefaultValues();\n newValues.rateMatrix = this.values.rateMatrix;\n this.changeValues(newValues);\n }\n\n /* Gets filter in odata format. */\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n const or: any[] = [];\n for (const key of this.values.rateMatrix.rateMatrixStructure) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n or.push({ [key]: { 'tolower(name)': { contains: text } } });\n }\n result.push({ or });\n }\n\n if (this.values.rateMatrix) {\n result.push({\n rateMatrixId: { type: 'guid', value: this.values.rateMatrix.id },\n });\n }\n\n for (const key of Object.keys(this.rateMatrixStructureCollection)) {\n if (this.values[key]) {\n result.push({\n [key + 'Id']: { type: 'guid', value: this.values[key].id },\n });\n }\n }\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\n\n@Injectable({\n providedIn: 'root',\n})\n/**\n * Service for sort component management\n * Provide this service in component where you use sort component\n *\n * */\nexport class SortService {\n private sortDirectionSubject = new BehaviorSubject(\n SortDirection.newest,\n );\n\n /** Observable that emit current sort direction */\n public sortDirection$ = this.sortDirectionSubject.asObservable();\n private visibilitySubject = new BehaviorSubject(true);\n\n /** Observable that emit current sort component visibility */\n public visibility$ = this.visibilitySubject.asObservable();\n\n private _sortDirection: SortDirection = SortDirection.newest;\n\n /** Function that returns current sort direction */\n public get sortDirection(): SortDirection {\n return this._sortDirection;\n }\n\n /** Function that change current sort direction */\n public set sortDirection(direction: SortDirection) {\n this._sortDirection = direction;\n this.sortDirectionSubject.next(direction);\n }\n\n /** Function that toggle current sort direction */\n public toggleDirection() {\n if (this._sortDirection === SortDirection.oldest) {\n this.sortDirection = SortDirection.newest;\n return;\n }\n this.sortDirection = SortDirection.oldest;\n }\n\n /** Function that show sort component */\n public show() {\n this.visibilitySubject.next(true);\n }\n\n /** Function that hide sort component */\n public hide() {\n this.visibilitySubject.next(false);\n }\n}\n","import { Component } from '@angular/core';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { SortService } from './core/sort.service';\n\n@Component({\n selector: 'wp-sort',\n templateUrl: './sort.component.html',\n styleUrls: ['./sort.component.scss'],\n standalone: false,\n})\nexport class SortComponent {\n public sortDirection = SortDirection;\n\n constructor(public sortService: SortService) {}\n\n public toggleDirection() {\n this.sortService.toggleDirection();\n }\n}\n","
    \n
    \n \n {{ 'shared.sort.oldest' | translate }}\n
    \n
    \n \n {{ 'shared.sort.newest' | translate }}\n
    \n
    \n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { State } from 'src/app/shared/models/entities/state.model';\n\n@Component({\n selector: 'tmt-state-badge',\n templateUrl: './state-badge.component.html',\n styleUrls: ['./state-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class StateBadgeComponent {\n @Input() state: State;\n}\n","
    \n {{ state?.name }}\n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { State } from 'src/app/shared/models/entities/state.model';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-state-changing-cell',\n styleUrls: ['./state-changing-cell.component.scss'],\n templateUrl: './state-changing-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class StateChangingCellComponent implements GridComponentCell, OnInit {\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public value: { fromState: State; toState: State };\n\n ngOnInit(): void {\n this.value = this.formGroup.controls.changing.getRawValue();\n }\n}\n","
    \n @if (value.fromState?.name) {\n \n {{ value.fromState.name }}\n
    \n\n \n }\n \n {{ value.toState.name }}\n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\n\nimport { DataService } from 'src/app/core/data.service';\n\nimport { State } from 'src/app/shared/models/entities/state.model';\n\nimport { StateControlItem } from './state-select.interface';\n\n@Component({\n selector: 'tmt-state-select',\n templateUrl: './state-select.component.html',\n styleUrls: ['./state-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StateSelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class StateSelectComponent implements OnInit, ControlValueAccessor {\n @Input({ required: true }) public collection: string;\n\n public statesForm: UntypedFormGroup = this.fb.group({});\n public allStates: State[] = [];\n\n private values: Record> = {};\n\n /* ControlValueAccessor **/\n public propagateChange = (_: any) => null;\n public propagateTouch = () => null;\n public registerOnChange = (fn: any): void => (this.propagateChange = fn);\n public registerOnTouched = (fn: any): void => (this.propagateTouch = fn);\n\n constructor(\n private dataService: DataService,\n private cdr: ChangeDetectorRef,\n private fb: UntypedFormBuilder,\n ) {}\n\n public ngOnInit(): void {\n this.loadStates();\n }\n\n public writeValue(states: any): void {\n Object.keys(this.values).forEach((key) => {\n this.values[key].selected = false;\n });\n\n if (Array.isArray(states)) {\n states.forEach((state) => {\n state.selected = true;\n this.values[state.code] = state;\n });\n } else if (states) {\n this.values = states;\n }\n\n this.syncControls();\n }\n\n /** Handles value change of checkbox. */\n public toggleState(event: InputEvent, code: string): void {\n this.values[code].selected = (\n event.currentTarget as HTMLInputElement\n ).checked;\n this.propagateChange(this.values);\n }\n\n private loadStates(): void {\n this.dataService\n .collection(this.collection)\n .function('GetStates')\n .query(null, { select: ['id', 'code', 'name', 'index'] })\n .subscribe((states: State[]) => {\n this.allStates = states.sort((a, b) => (a.index < b.index ? -1 : 0));\n\n this.statesForm = this.fb.group(\n Object.values(states).reduce(\n (curr, next) => ({ ...curr, [next.code]: false }),\n {},\n ),\n );\n\n states.forEach((state) => {\n if (!this.values[state.code]) {\n this.values[state.code] = state;\n this.values[state.code].selected = false;\n }\n });\n\n this.syncControls();\n });\n }\n\n private syncControls(): void {\n const valueToPatch: Record = {};\n\n Object.keys(this.values).forEach((key) => {\n valueToPatch[key] = !!this.values[key].selected;\n });\n\n this.statesForm.patchValue(valueToPatch, { emitEvent: false });\n this.statesForm.markAsPristine();\n this.cdr.markForCheck();\n }\n}\n","\n \n\n @for (state of allStates; track state.id) {\n
    \n \n \n
    \n }\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport {\n LifecycleInfo,\n LifecycleInfoTransition,\n} from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wp-state-indicator',\n templateUrl: './state-indicator.component.html',\n styleUrls: ['./state-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class StateIndicatorComponent implements OnDestroy, OnInit {\n private destroyed$ = new Subject();\n public lifecycle: LifecycleInfo;\n\n constructor(\n private lifecycleService: LifecycleService,\n private cdr: ChangeDetectorRef,\n private messageService: MessageService,\n private translate: TranslateService,\n ) {}\n ngOnInit(): void {\n this.lifecycleService.lifecycleInfo$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((lc) => {\n this.lifecycle = lc;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Check have at least one icon. */\n public checkHasIcon(): boolean {\n return !!this.lifecycle.transitions.find((item) => item.iconClass);\n }\n\n /** Запустить переход ЖЦ. */\n public performTransition(transition: LifecycleInfoTransition) {\n if (this.lifecycle.workflowIndicatorData) {\n this.messageService\n .confirmLocal(\n this.translate.instant('shared.workflow.workflowCancelConfirmation'),\n )\n .then(\n () => {\n this.lifecycleService.setState(\n transition.nextStateId,\n null,\n transition,\n );\n },\n () => null,\n );\n } else {\n this.lifecycleService.setState(transition.nextStateId, null, transition);\n }\n }\n}\n","\n
    \n {{\n lifecycle.currentState.name\n }}\n\n
    \n \n {{ action.label }}\n \n
    \n
    \n\n {{ lifecycle.currentState?.name }}\n
    \n","import { Component, OnInit } from '@angular/core';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { Subscription, timer } from 'rxjs';\n\n/** Индикатор счетчика времени на панели действий. */\n@Component({\n selector: 'wp-stopwatch-indicator',\n templateUrl: './stopwatch-indicator.component.html',\n styleUrls: ['./stopwatch-indicator.component.scss'],\n standalone: false,\n})\nexport class StopwatchIndicatorComponent implements OnInit {\n public isVisible: boolean;\n public isPaused: boolean;\n public swHours: string;\n public swMinutes: string;\n\n private intervalSubscription: Subscription;\n\n constructor(public stopwatchService: StopwatchService) {}\n\n public ngOnInit(): void {\n this.stopwatchService.stopwatch$.subscribe((stopwatch) => {\n this.isPaused = stopwatch?.state === 'Paused';\n\n this.intervalSubscription?.unsubscribe();\n this.updateViewValue();\n\n if (stopwatch && !this.isPaused) {\n // TODO: get rid from subscribe in subscribe?\n this.intervalSubscription = timer(0, 1000).subscribe(() => {\n this.updateViewValue();\n });\n }\n });\n }\n\n /** Opens stopwatch popup. */\n public onClick(): void {\n this.stopwatchService.openPopup();\n }\n\n /** Updates time in UI. */\n private updateViewValue(): void {\n [this.swHours, this.swMinutes] =\n this.stopwatchService.getFormattedDuration();\n }\n}\n","
  • \n
    \n \n {{ swHours }}:{{ swMinutes }}\n
    \n
  • \n","import { Component, OnInit } from '@angular/core';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { Stopwatch } from 'src/app/shared/models/entities/base/stopwatch.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\n\n/** Сведения о счетчике времени (всплывающее окно). */\n@Component({\n selector: 'wp-stopwatch-popup',\n templateUrl: './stopwatch-popup.component.html',\n styleUrls: ['./stopwatch-popup.component.scss'],\n standalone: false,\n})\nexport class StopwatchPopupComponent implements OnInit {\n private width = 390;\n private height = 130;\n private containerId = 'wp-stopwatch-indicator';\n\n public hasProfileLink: boolean;\n public isShown: boolean;\n public containerStyles: Dictionary = {};\n public swExecuted: boolean;\n public isPaused: boolean;\n public clientAndProjectName: string;\n public taskName: any;\n\n public stopwatch: Stopwatch;\n loading: boolean;\n\n constructor(\n private blockUI: BlockUIService,\n private translate: TranslateService,\n private chrome: ChromeService,\n private stopwatchService: StopwatchService,\n ) {}\n\n private updateContainer() {\n const element = document.getElementById(this.containerId);\n const rect = element.getBoundingClientRect();\n this.containerStyles['left'] =\n rect.left + rect.width / 2 - this.width + 30 + 'px';\n\n this.containerStyles['top'] = rect.bottom + 13 + 'px';\n this.containerStyles['width'] = this.width + 'px';\n this.containerStyles['height'] = this.height + 'px';\n }\n\n /** Открыть диалог. */\n private open() {\n this.loading = true;\n this.isShown = true;\n this.stopwatchService.updateStopwatch().then(() => {\n this.loading = false;\n });\n this.updateContainer();\n }\n\n /** Закрыть диалог. */\n public close = () => {\n this.isShown = false;\n };\n\n /** Приостановить счетчик. */\n public pause() {\n this.swExecuted = true;\n\n this.stopwatchService.pause().then(\n () => {\n this.swExecuted = false;\n this.updateUI();\n },\n () => {\n this.swExecuted = false;\n this.updateUI();\n },\n );\n }\n\n /** Возобновить счетчик. */\n public resume() {\n this.swExecuted = true;\n this.stopwatchService.resume().then(\n () => {\n this.swExecuted = false;\n this.updateUI();\n },\n () => {\n this.swExecuted = false;\n this.updateUI();\n },\n );\n }\n\n /** Завершить счетчик. */\n public stop(type) {\n this.swExecuted = true;\n this.blockUI.start();\n this.stopwatchService.stop(type).then(\n () => {\n this.swExecuted = false;\n this.blockUI.stop();\n this.close();\n },\n () => {\n this.swExecuted = false;\n this.blockUI.stop();\n this.updateUI();\n },\n );\n }\n\n private updateUI() {\n const stopwatch = this.stopwatch;\n if (stopwatch.project) {\n let clientAndProjectString = '';\n\n if (stopwatch.showClient) {\n clientAndProjectString =\n stopwatch.client?.name ??\n '[' +\n this.translate.instant(\n 'timesheets.card.taskSelector.withoutClient',\n ) +\n ']';\n\n if (!stopwatch.projectTaskIsMain) {\n clientAndProjectString += ' > ';\n }\n }\n\n if (!stopwatch.projectTaskIsMain) {\n clientAndProjectString += stopwatch.project.name;\n }\n\n this.taskName = stopwatch.projectTask?.name;\n this.clientAndProjectName = clientAndProjectString;\n }\n }\n\n ngOnInit(): void {\n this.stopwatchService.openPopup$.subscribe((param) => {\n this.open();\n });\n\n this.chrome.mainAreaSize$.subscribe(() => {\n if (this.isShown) {\n this.updateContainer();\n }\n });\n\n this.chrome.scroll$.subscribe(() => {\n if (this.isShown) {\n this.updateContainer();\n }\n });\n\n this.stopwatchService.stopwatch$.subscribe((stopwatch) => {\n this.isPaused = stopwatch?.state === 'Paused';\n this.stopwatch = stopwatch;\n\n if (!stopwatch) {\n this.close();\n } else {\n this.updateUI();\n }\n });\n }\n}\n","\n \n\n \n
    \n {{ 'stopwatch.withoutProject' | translate }}\n
    \n\n
    \n
    \n {{ clientAndProjectName }}\n
    \n
    {{ taskName }}
    \n
    \n\n
    \n\n
    \n \n  {{\n 'stopwatch.actions.pause.label' | translate\n }}\n \n \n  {{\n 'stopwatch.actions.resume.label' | translate\n }}\n \n\n
    \n \n  {{\n 'stopwatch.actions.stop.label' | translate\n }}\n \n\n
    \n
    \n
    \n \n {{ 'stopwatch.actions.stopAndOverwrite.label' | translate }}\n \n\n \n {{ 'stopwatch.actions.stopAndCancel.label' | translate }}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'tmt-substitution-user-cell',\n templateUrl: './substitution-user-cell.component.html',\n styleUrls: ['./substitution-user-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SubstitutionUserCellComponent\n implements GridComponentCell, OnInit\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public value: { performer: NamedEntity; realPerformer: NamedEntity };\n\n ngOnInit(): void {\n this.value = this.formGroup.controls.performer.getRawValue();\n }\n}\n","@if (value.realPerformer && value.performer) {\n \n \n
    \n @if (value.realPerformer.id !== value.performer.id) {\n {{ value.realPerformer.name }}\n {{ 'shared.comments.titles.for' | translate }} \n }\n {{ value.performer.name }}\n
    \n \n}","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\nimport { ProjectTaskInfo, TaskInfoParams } from './task-info.model';\n\n@Component({\n selector: 'tmt-task-info',\n templateUrl: './task-info.component.html',\n styleUrls: ['./task-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TaskInfoComponent implements OnInit {\n @Input() public params: TaskInfoParams;\n\n public taskInfo: ProjectTaskInfo;\n public isLoading = signal(true);\n public notFound = signal(false);\n public hoursProgress = signal<{\n hours: number;\n type: 'danger' | 'info';\n } | null>(null);\n\n constructor(\n private dataService: DataService,\n private notificationService: NotificationService,\n private infoPopupService: InfoPopupService,\n ) {}\n\n public ngOnInit(): void {\n this.dataService\n .collection('ProjectTasks')\n .entity(this.params.projectTaskId)\n .function('GetInfo')\n .get({ userId: this.params.userId })\n .subscribe({\n next: (taskInfo) => {\n this.taskInfo = taskInfo;\n const hours =\n this.taskInfo.plannedHours > 0\n ? this.taskInfo.actualHours / this.taskInfo.plannedHours\n : 0;\n this.hoursProgress.set({\n hours,\n type: hours > 1 ? 'danger' : 'info',\n });\n\n this.isLoading.set(false);\n this.infoPopupService.update();\n },\n error: (error: Exception) => {\n this.isLoading.set(false);\n\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.notFound.set(false);\n } else {\n this.notificationService.error(error.message);\n }\n\n this.infoPopupService.update();\n },\n });\n }\n}\n","@if (!isLoading() && !notFound()) {\n
    \n
    {{ taskInfo?.name }}
    \n\n @if (taskInfo?.description) {\n
    \n
    \n {{\n 'shared.projectInfo.description' | translate\n }}\n
    \n
    \n
    \n }\n\n
    \n
    \n {{ 'shared.props.project' | translate }}\n

    {{ taskInfo?.project.name }}

    \n
    \n
    \n\n
    \n
    \n {{ 'shared.projectInfo.manager' | translate }}\n

    {{ taskInfo?.projectManager.name }}

    \n
    \n
    \n\n
    \n
    0\">\n {{ 'shared.taskInfo.plan' | translate }}\n

    {{ taskInfo.plannedHours | wpWork }}

    \n
    \n
    \n {{ 'shared.taskInfo.actual' | translate }}\n\n

    {{ taskInfo.actualHours | wpWork }}

    \n
    \n
    \n\n
    \n
    0\" class=\"w-100\">\n {{ 'shared.taskInfo.hoursProgress' | translate }}\n\n \n {{ hoursProgress().hours | percent: '1.0-2' }}\n \n
    \n
    \n \n}\n\n@if (notFound()) {\n
    \n {{ 'shared.entityNotFound.title' | translate }}\n
    \n}\n\n\n","import { Component, Input, ViewRef, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\n\n@Component({\n selector: 'wp-time-off-balance-entries-type-cell',\n templateUrl: './time-off-balance-entries-type-cell.component.html',\n styleUrls: ['./time-off-balance-entries-type-cell.component.scss'],\n standalone: false,\n})\nexport class TimeOffBalanceEntriesTypeCellComponent\n implements GridComponentCell\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n get control(): UntypedFormControl {\n return this.formGroup.controls[this.column.name];\n }\n\n constructor(\n public service: GridService,\n private ref: ChangeDetectorRef,\n ) {\n this.service.detectChanges$.subscribe(() => {\n if (this.ref && !(this.ref as ViewRef).destroyed) {\n this.ref.detectChanges();\n }\n });\n }\n}\n","
    \n","import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport {\n GetTransitionFormPropertyValue,\n TransitionFormDescription,\n} from 'src/app/shared/models/entities/lifecycle/transition-form.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\nimport {\n MetaEntity,\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { BehaviorSubject, forkJoin, Observable, switchMap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n selector: 'tmt-transition-form-modal',\n templateUrl: './transition-form-modal.component.html',\n styleUrls: ['./transition-form-modal.component.scss'],\n standalone: false,\n})\nexport class TransitionFormModalComponent implements OnInit {\n @Input() stateId: string;\n @Input() action: MenuAction;\n @Input() entityId: string;\n @Input() collection: string;\n @Input() transitionId: string;\n\n public isLoading = false;\n public transitionForm: FormGroup = this.fb.group({});\n public transitionProperties: GetTransitionFormPropertyValue[];\n public requestComment = false;\n public metaEntity: MetaEntity;\n protected readonly MetaEntityPropertyType = MetaEntityPropertyType;\n private metaEntityProps: MetaEntityBaseProperty[];\n\n private collectionValuesSubject = new BehaviorSubject(undefined);\n public collectionValues$ = this.collectionValuesSubject.asObservable();\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private activeModal: NgbActiveModal,\n private dataService: DataService,\n private notificationService: NotificationService,\n private fb: FormBuilder,\n private entityTypesService: EntityTypesService,\n public appService: AppService,\n ) {}\n\n public ngOnInit(): void {\n this.isLoading = true;\n\n this.dataService\n .collection(this.collection)\n .entity(this.entityId)\n .function('GetTransitionFormDescription')\n .query({ transitionId: this.transitionId })\n .subscribe({\n next: (transitionFormDescription: TransitionFormDescription) => {\n this.transitionProperties =\n transitionFormDescription.transitionFormPropertyValues;\n if (this.metaEntity) {\n this.metaEntityProps = [\n ...this.metaEntity.primitiveProperties,\n ...this.metaEntity.navigationProperties,\n ...this.metaEntity.complexProperties,\n ...this.metaEntity.directoryProperties,\n ];\n }\n this.requestComment = transitionFormDescription.requestComment;\n\n if (this.requestComment) {\n this.transitionForm.addControl(\n 'comment',\n this.fb.control(\n null,\n transitionFormDescription.commentIsRequired\n ? Validators.required\n : null,\n ),\n );\n }\n\n this.makeForm();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Resolves modal with form data. */\n public ok(): void {\n this.transitionForm.markAllAsTouched();\n\n if (this.transitionForm.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n\n return;\n }\n\n const data = {\n stateId: this.stateId,\n transitionFormValue: {\n propertyValues: [],\n comment: this.transitionForm.value.comment,\n },\n };\n\n Object.keys(this.transitionForm.value).forEach((key) => {\n const isNavigationProperty = this.transitionProperties.some(\n (p) =>\n p.name === key &&\n this.getMetaEntityProperty(key)?.type ===\n MetaEntityPropertyType.navigation,\n );\n if (isNavigationProperty) {\n data.transitionFormValue.propertyValues.push({\n name: key,\n value: this.transitionForm.value[key]?.id,\n });\n } else if (key !== 'comment' && !isNavigationProperty) {\n data.transitionFormValue.propertyValues.push({\n name: key,\n value: this.transitionForm.value[key],\n });\n }\n });\n\n this.activeModal.close(data);\n }\n\n /** Closes modal without result. */\n public cancel(): void {\n this.activeModal.dismiss(null);\n }\n\n /**\n * Returns MetaEntity property.\n * @param propertyName Property name.\n */\n public getMetaEntityProperty(propertyName: string): MetaEntityBaseProperty {\n return this.metaEntityProps.find((x: any) => x.name === propertyName);\n }\n\n /**\n * Returns DirectoryId from MetaEntity property.\n * @param propertyName Property name.\n */\n public getMetaEntityPropertyDirectoryId(propertyName: string): string {\n return (\n this.metaEntityProps.find(\n (x: any) => x.name === propertyName,\n ) as MetaEntityDirectoryProperty\n ).directoryId;\n }\n\n private makeForm(): void {\n const collectionObservables: Record> = {};\n const collectionValues: Record = {};\n const hasNavigationProperties = this.transitionProperties.some(\n (prop) =>\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.navigation,\n );\n\n if (!hasNavigationProperties) {\n this.setControlValues(null);\n return;\n }\n\n this.entityTypesService\n .getEntityTypes()\n .pipe(\n switchMap((entityTypeDescriptions) => {\n this.transitionProperties\n .filter(\n (prop) =>\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.navigation ||\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.directory,\n )\n .forEach((prop) => {\n const mmProperty = this.getMetaEntityProperty(prop.name);\n const query = {\n filter: { isActive: true, directoryId: undefined },\n };\n if (mmProperty.type === MetaEntityPropertyType.directory) {\n query.filter.directoryId = {\n type: 'guid',\n value: (mmProperty as MetaEntityDirectoryProperty)\n .directoryId,\n };\n }\n const collection = entityTypeDescriptions.find(\n (x) =>\n x.entityTypeName ===\n this.getMetaEntityProperty(prop.name).clrType,\n ).collection;\n collectionObservables[prop.name] = this.dataService\n .collection(collection)\n .query(query);\n });\n return forkJoin(collectionObservables);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (collections) => {\n Object.keys(collections).forEach((key) => {\n collectionValues[key] = collections[key];\n });\n\n this.setControlValues(collectionValues);\n this.collectionValuesSubject.next(collectionValues);\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notificationService.error(error.message);\n },\n });\n }\n\n private setControlValues(collectionValues: any) {\n this.transitionProperties.forEach((property) => {\n let value: any;\n if (\n (this.getMetaEntityProperty(property.name).type ===\n MetaEntityPropertyType.navigation ||\n this.getMetaEntityProperty(property.name).type ===\n MetaEntityPropertyType.directory) &&\n collectionValues\n ) {\n const entity = collectionValues[property.name].find(\n (item) => item.id === property.value,\n );\n if (entity) {\n value = { name: entity.name, id: entity.value };\n }\n } else {\n value = property.value;\n }\n\n this.transitionForm.addControl(\n property.name,\n this.fb.control(\n value,\n property.isRequired ? Validators.required : null,\n ),\n );\n });\n this.isLoading = false;\n }\n}\n","\n\n@if (!isLoading) {\n
    \n
    \n

    \n {{ 'settings.lifecycles.card.transitionForm.header' | translate }}\n

    \n \n
    \n\n
    \n @for (control of transitionProperties; track control.name) {\n
    \n
    \n \n\n @switch (this.getMetaEntityProperty(control.name).type) {\n @case (MetaEntityPropertyType.dateOnly) {\n \n }\n @case (MetaEntityPropertyType.dateTime) {\n \n }\n @case (MetaEntityPropertyType.string) {\n \n }\n @case (MetaEntityPropertyType.integer) {\n \n }\n @case (MetaEntityPropertyType.navigation) {\n \n }\n @case (MetaEntityPropertyType.directory) {\n \n }\n @case (MetaEntityPropertyType.currency) {\n \n }\n @case (MetaEntityPropertyType.percent) {\n \n }\n }\n
    \n
    \n }\n\n @if (requestComment) {\n
    \n \n\n \n
    \n }\n
    \n\n
    \n \n \n
    \n
    \n}\n","export * from './tree-list.component';\nexport * from './tree-list.interface';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ScrollToService } from 'src/app/shared/services/scroll-to.service';\n\nimport _ from 'lodash';\n\nimport { TreeItemNested, TreeItemPlane } from './tree-list.interface';\n\n@Component({\n selector: 'tmt-tree-list',\n templateUrl: './tree-list.component.html',\n styleUrls: ['./tree-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule]\n})\nexport class TreeListComponent implements OnInit, OnChanges {\n /** Required if the list is of type `TreeItemPlane`. */\n @Input() public parentIdKey: string;\n @Input() public itemsPlane: TreeItemPlane[];\n @Input() public itemsNested: TreeItemNested[];\n @Input() public target: string;\n @Input() public selectedItem: TreeItemPlane;\n @Input() public padding = 20;\n\n @Output() public focused$ = new EventEmitter();\n @Output() public selected$ = new EventEmitter();\n @Output() public keyDown$ = new EventEmitter();\n\n public list: TreeItemNested[] = [];\n public focusedItem: TreeItemNested;\n /** Array for ease of operation with list. */\n public treeItems: TreeItemNested[] = [];\n public readonly itemClass = 'tree-list__container';\n\n constructor(\n private cdr: ChangeDetectorRef,\n private el: ElementRef,\n private scrollToService: ScrollToService,\n ) {}\n\n public ngOnInit(): void {\n if (this.itemsPlane.length) {\n this.buildList();\n }\n\n if (this.selectedItem) {\n this.expandFromChild(this.selectedItem[this.parentIdKey]);\n }\n\n if (this.target?.trim()?.length) {\n this.list = this.getFilteredItems(\n this.target.trim().toLowerCase(),\n this.itemsNested,\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['itemsPlane'] && this.itemsPlane?.length) {\n this.buildList();\n }\n\n if (changes['target']) {\n this.list = this.target?.trim()?.length\n ? this.getFilteredItems(\n this.target.trim().toLowerCase(),\n this.itemsNested,\n )\n : this.itemsNested;\n\n this.clearTreeIds();\n this.updateTreeIds();\n }\n }\n\n /**\n * Toggles item.\n *\n * @param item list item.\n */\n public toggleList(item: TreeItemNested): void {\n item.isExpanded = !item.isExpanded;\n this.cdr.markForCheck();\n }\n\n /** First focus handler. */\n public onFocus(event: FocusEvent): void {\n if (event.relatedTarget && !this.focusedItem) {\n this.focusedItem = this.selectedItem\n ? this.treeItems.find((el) => el.id === this.selectedItem.id)\n : this.list[0];\n }\n }\n\n /**\n * Click handler.\n *\n * @param event MouseEvent.\n * @param item list item.\n */\n public onClick(event: MouseEvent, item: TreeItemNested): void {\n this.focusedItem = item;\n this.selected$.emit(item);\n event.stopPropagation();\n }\n\n /**\n * Keyboard handler.\n *\n * @param event\n */\n public onKeyDown(event: KeyboardEvent): void {\n const enterCode = 'Enter';\n const downCode = 'ArrowDown';\n const upCode = 'ArrowUp';\n const rightCode = 'ArrowRight';\n const leftCode = 'ArrowLeft';\n const escCode = 'Escape';\n const focusableCodes = [downCode, upCode, rightCode, leftCode];\n\n this.keyDown$.emit(event);\n\n if (event.code === downCode) {\n if (!this.focusedItem) {\n this.focusedItem = this.treeItems[0];\n } else {\n const index = this.treeItems.findIndex(\n (el) => el.id === this.focusedItem.id,\n );\n\n const elements = this.el.nativeElement.querySelectorAll(\n `.${this.itemClass}`,\n );\n let currentElementIndex: number | null;\n\n for (let index = 0; index < elements.length; index++) {\n if (\n elements.item(index).getAttribute('data-id') === this.focusedItem.id\n ) {\n currentElementIndex = index;\n break;\n }\n }\n\n this.focusedItem =\n this.treeItems.find(\n (el) =>\n el.id ===\n elements.item(currentElementIndex + 1)?.getAttribute('data-id'),\n ) ?? this.treeItems[index];\n }\n }\n\n if (event.code === upCode) {\n if (!this.focusedItem) {\n this.focusedItem = this.treeItems[this.treeItems.length - 1];\n } else {\n const index = this.treeItems.findIndex(\n (el) => el.id === this.focusedItem.id,\n );\n\n const elements = this.el.nativeElement.querySelectorAll(\n `.${this.itemClass}`,\n );\n let currentElementIndex: number | null;\n\n for (let index = 0; index < elements.length; index++) {\n if (\n elements.item(index).getAttribute('data-id') === this.focusedItem.id\n ) {\n currentElementIndex = index;\n break;\n }\n }\n\n this.focusedItem =\n this.treeItems.find(\n (el) =>\n el.id ===\n elements.item(currentElementIndex - 1)?.getAttribute('data-id'),\n ) ?? this.treeItems[index];\n }\n }\n\n if (event.code === rightCode && this.focusedItem.list.length) {\n this.focusedItem.isExpanded = true;\n this.focusedItem = this.focusedItem.list[0];\n }\n\n if (event.code === leftCode) {\n if (this.focusedItem.isExpanded) {\n this.focusedItem.isExpanded = false;\n } else {\n const index = this.treeItems.findIndex(\n (el) => el.id === this.focusedItem.id,\n );\n\n this.focusedItem =\n this.treeItems\n .slice(0, index)\n .reverse()\n .find(\n (el) =>\n el.level === this.focusedItem.level - 1 &&\n el.id !== this.focusedItem.id,\n ) ?? this.focusedItem;\n }\n }\n\n if (focusableCodes.includes(event.code)) {\n this.focused$.emit(this.focusedItem);\n this.cdr.markForCheck();\n event.preventDefault();\n event.stopPropagation();\n\n setTimeout(() => {\n this.scrollTo();\n });\n }\n\n if (event.code === enterCode) {\n event.preventDefault();\n event.stopPropagation();\n\n this.selected$.emit(this.focusedItem);\n }\n\n if (event.code === escCode) {\n this.dropSelectedIndex();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Mouseenter handler.\n *\n * @param item\n */\n public focusItem(item: any): void {\n this.focusedItem = item;\n this.focused$.emit(item);\n }\n\n /** Clears selected. */\n public dropSelectedIndex(): void {\n this.focusedItem = null;\n this.cdr.markForCheck();\n }\n\n private buildList(): void {\n const groupsByParent: Record<'lead' | string, TreeItemNested[]> = {\n lead: [],\n };\n\n for (const item of this.itemsPlane) {\n const newItem: TreeItemNested = {\n ...item,\n isExpanded: false,\n list: [],\n };\n\n if (!newItem[this.parentIdKey]) {\n groupsByParent['lead'].push(newItem);\n continue;\n }\n\n if (!groupsByParent[newItem[this.parentIdKey]]) {\n groupsByParent[newItem[this.parentIdKey]] = [newItem];\n } else {\n groupsByParent[newItem[this.parentIdKey]].push(newItem);\n }\n }\n\n if (!groupsByParent.lead.length) {\n const newLeadIds: string[] = [];\n\n for (const parentKey in groupsByParent) {\n if (!this.itemsPlane.find((el) => el.id === parentKey)) {\n newLeadIds.push(parentKey);\n }\n }\n\n newLeadIds.forEach((k) => {\n if (k !== 'lead') {\n groupsByParent.lead = groupsByParent.lead.concat(groupsByParent[k]);\n delete groupsByParent[k];\n }\n });\n }\n\n if (groupsByParent.lead.length === 1) {\n groupsByParent.lead[0].isExpanded = true;\n }\n\n let level = 0;\n\n const fillRecursive = (list: TreeItemNested[]): void => {\n list.forEach((item: TreeItemNested) => {\n item.level = level;\n\n if (groupsByParent[item.id]) {\n item.list = groupsByParent[item.id];\n delete groupsByParent[item.id];\n level++;\n fillRecursive(item.list);\n level--;\n }\n });\n };\n\n fillRecursive(groupsByParent['lead']);\n this.list = groupsByParent['lead'];\n this.itemsNested = _.cloneDeep(this.list);\n this.clearTreeIds();\n this.updateTreeIds();\n this.cdr.markForCheck();\n }\n\n /**\n * Finds string inside list and all nested lists.\n *\n * @param target string.\n * @param list tree list.\n * @returns expanded tree list with search target.\n */\n private getFilteredItems(\n target: string,\n list: TreeItemNested[],\n ): TreeItemNested[] {\n return list?.reduce((filtered: TreeItemNested[], item: TreeItemNested) => {\n const nestedList = this.getFilteredItems(target, item.list);\n\n if (nestedList?.length || item.name.toLowerCase().includes(target)) {\n filtered.push({\n ...item,\n isExpanded: true,\n list: nestedList,\n });\n }\n\n return filtered;\n }, []);\n }\n\n private expandFromChild(parentId: string | number): void {\n if (!parentId) {\n return;\n }\n\n const parent = this.treeItems.find((el) => el.id === parentId);\n\n if (parent) {\n parent.isExpanded = true;\n this.expandFromChild(parent[this.parentIdKey]);\n }\n }\n\n private clearTreeIds(): void {\n this.focusedItem = null;\n this.treeItems.length = 0;\n }\n\n private updateTreeIds(list: TreeItemNested[] = this.list): void {\n list.forEach((item) => {\n this.treeItems.push(item);\n\n if (item.list?.length) {\n this.updateTreeIds(item.list);\n }\n });\n }\n\n private scrollTo(): void {\n if (this.focusedItem) {\n this.scrollToService.scrollTo(\n `item-${this.focusedItem?.id}`,\n this.el.nativeElement,\n );\n }\n }\n}\n","@if (list.length) {\n \n \n \n\n \n @for (item of data; track item) {\n \n \n\n
    \n {{ item.name }}\n
    \n \n\n @if (item.list?.length && item.isExpanded) {\n \n }\n }\n
    \n} @else {\n
    {{ 'shared.noOptions' | translate }}
    \n}\n","export interface TreeItem {\n /** Id of any entity. */\n id: string;\n /** Name of any entity. */\n name: string;\n}\n\nexport interface TreeItemNested extends TreeItem {\n /** List with any entities. */\n list: TreeItemNested[];\n /** Indicates whether item is expanded. */\n isExpanded?: boolean;\n /** Level of nesting relative to first parent. */\n level?: number;\n}\n\nexport interface TreeItemPlane extends TreeItem {\n /** Any key of parent id. */\n [parentIdKey: string]: string | number;\n}\n","export * from './user-info.component';\nexport * from './user-info.interface';\nexport * from './user-info.settings';\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { UserInfoSettings } from './user-info.settings';\nimport { InfoPopupService } from '../info-popup/info-popup.service';\nimport { UserInfoComponentParams } from './user-info.interface';\nimport { firstValueFrom, map } from 'rxjs';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RawParams } from '@uirouter/core';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n/** Сведения о пользователе (вплывающее окно). */\n@Component({\n selector: 'wp-user-info',\n templateUrl: './user-info.component.html',\n styleUrls: ['./user-info.component.scss'],\n standalone: false,\n})\nexport class UserInfoComponent implements OnInit {\n @Input() params: UserInfoComponentParams;\n\n public notFound: boolean;\n public user: User;\n public isLoading: boolean;\n public isShown: boolean;\n public containerId: string = Guid.generate();\n public skills = '';\n public settings: UserInfoSettings;\n public stateParams: RawParams = {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n route: this.navigationService.storedRoute,\n };\n\n constructor(\n private dataService: DataService,\n private appService: AppService,\n private notification: NotificationService,\n private cdr: ChangeDetectorRef,\n private localConfigService: LocalConfigService,\n private infoPopupService: InfoPopupService,\n private navigationService: NavigationService,\n ) {}\n\n private open(): void {\n this.load();\n this.isShown = true;\n this.cdr.markForCheck();\n }\n\n public close = () => {\n this.infoPopupService.close();\n };\n\n private async load(): Promise {\n try {\n this.notFound = false;\n this.isLoading = true;\n\n const query: any = {\n expand: [\n {\n location: { select: 'name' },\n level: { select: 'name' },\n department: { select: 'name' },\n supervisor: { select: 'name' },\n role: { select: 'name' },\n competence: { select: 'name' },\n legalEntity: { select: 'name' },\n resourcePool: {\n select: 'name',\n },\n skills: { expand: { skill: { select: 'name' } } },\n },\n ],\n select: ['id', 'name', 'phone', 'email', 'position'],\n filter: [],\n };\n\n let user: User;\n\n if (this.params.userId) {\n query.expand.supervisors = {\n filter: {\n eq: { type: 'guid', value: this.appService.session.user.id },\n },\n };\n\n user = await firstValueFrom(\n this.dataService\n .collection('Users')\n .entity(this.params.userId)\n .get(query),\n );\n } else {\n query.filter.push({\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(email)': {\n contains:\n `${this.params.nickname.slice(1)}@${this.appService.session.configuration.primaryDomain}`.toLowerCase(),\n },\n });\n\n user = await firstValueFrom(\n this.dataService\n .collection('Users')\n .query(query)\n .pipe(map((users) => users[0])),\n );\n }\n\n if (!user) {\n this.notFound = true;\n this.isLoading = false;\n this.cdr.markForCheck();\n return;\n }\n\n this.user = user;\n\n const skills = user.skills.map((ra) => ra.skill.name) as string[];\n const skillsCount = skills.length;\n this.skills = skills.slice(0, 5).join(', ');\n if (skillsCount > 5) {\n this.skills += ` (+${skillsCount - 5})`;\n }\n\n this.isLoading = false;\n this.cdr.markForCheck();\n this.infoPopupService.update();\n } catch (error) {\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.notFound = true;\n } else {\n this.notification.error(error.message);\n }\n }\n }\n\n public switch() {\n this.settings.collapsed = !this.settings.collapsed;\n this.localConfigService.setConfig(UserInfoSettings, this.settings);\n this.cdr.markForCheck();\n this.infoPopupService.update();\n }\n\n ngOnInit() {\n this.settings = this.localConfigService.getConfig(UserInfoSettings);\n this.open();\n }\n}\n","\n\n@if (!isLoading && !notFound) {\n
    \n
    \n
    \n \n \n
    \n\n
    \n {{ user?.name }}\n\n @if (user.position) {\n

    \n {{ user.position }}\n

    \n }\n\n

    \n {{ user?.email }}\n

    \n\n @if (user?.phone) {\n

    \n {{ user?.phone }}\n

    \n }\n\n @if (user?.level) {\n

    \n {{ user?.level?.name }}\n

    \n }\n
    \n
    \n\n
    \n
    \n @if (user?.department) {\n
    \n {{ 'shared.props.department' | translate }}\n

    \n {{ user?.department?.name }}\n

    \n
    \n }\n\n @if (user?.supervisor) {\n
    \n {{ 'shared.props.supervisor' | translate }}\n

    \n {{ user?.supervisor?.name }}\n

    \n
    \n }\n @if (user?.location) {\n
    \n {{ 'shared.props.location' | translate }}\n

    \n {{ user?.location?.name }}\n

    \n
    \n }\n
    \n
    \n @if (user?.resourcePool) {\n
    \n {{ 'shared.props.resourcePool' | translate }}\n

    \n {{ user?.resourcePool?.name }}\n

    \n
    \n }\n @if (user?.role) {\n
    \n {{ 'shared.props.role' | translate }}\n

    \n {{ user?.role?.name }}\n

    \n
    \n }\n @if (user?.competence) {\n
    \n {{ 'shared.props.competence' | translate }}\n

    \n {{ user?.competence?.name }}\n

    \n
    \n }\n
    \n\n
    \n @if (skills) {\n
    \n {{ 'shared.userInfo.skills' | translate }}\n

    \n {{ skills }}\n

    \n
    \n }\n
    \n
    \n
    \n}\n\n@if (notFound) {\n
    \n {{ 'shared.entityNotFound.title' | translate }}\n
    \n}\n","export interface UserInfoComponentParams {\n /** User id */\n userId?: string;\n /** Email part before `@` */\n nickname?: string;\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class UserInfoSettings implements BaseSettings {\n public readonly name = 'UserInfoSettings';\n version: number;\n\n collapsed: boolean;\n\n getDefault(): UserInfoSettings {\n return {\n version: 1,\n collapsed: false,\n } as UserInfoSettings;\n }\n}\n","import { Component, ElementRef, Injector } from '@angular/core';\nimport { UserNotificationService } from 'src/app/core/user-notification.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserNotificationPopupComponent } from 'src/app/shared/components/features/user-notification-indicator/user-notification-popup/user-notification-popup.component';\n\n/** User notification indicator. */\n@Component({\n selector: 'wp-user-notification-indicator',\n templateUrl: './user-notification-indicator.component.html',\n styleUrls: ['./user-notification-indicator.component.scss'],\n standalone: false,\n providers: [UserNotificationService],\n})\nexport class UserNotificationIndicatorComponent {\n private openedPopupId: string | null = null;\n\n constructor(\n public service: UserNotificationService,\n private popupService: InfoPopupService,\n private el: ElementRef,\n private injector: Injector,\n ) {}\n\n /** Toggles user notification popup. */\n public togglePopup(): void {\n if (this.openedPopupId) {\n this.popupService.close(this.openedPopupId);\n this.openedPopupId = null;\n return;\n }\n this.openedPopupId = this.popupService.open({\n target: this.el.nativeElement,\n data: {\n component: UserNotificationPopupComponent,\n componentParams: {\n injector: this.injector,\n },\n },\n containerStyles: { padding: '0' },\n });\n }\n}\n","
  • \n
    \n \n
    \n
    \n
    \n
  • \n","import {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppService } from 'src/app/core/app.service';\nimport { UserNotificationService } from 'src/app/core/user-notification.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserSettingsModalComponent } from 'src/app/shared/modules/user-settings-modal/user-settings-modal.component';\n\n@Component({\n selector: 'tmt-user-notification-popup',\n templateUrl: './user-notification-popup.component.html',\n styleUrls: ['./user-notification-popup.component.scss'],\n standalone: false,\n})\nexport class UserNotificationPopupComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('notificationsWrapper') container: ElementRef;\n\n constructor(\n public service: UserNotificationService,\n public appService: AppService,\n private popupService: InfoPopupService,\n private modal: NgbModal,\n ) {}\n\n ngAfterViewInit(): void {\n this.service.reload();\n this.service.enableInfinityScroll(this.container.nativeElement);\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n }\n\n public trackById = (index: number, row: any) => row.id;\n\n /**\n * Notification will be marked as read and popup will be closed\n *\n * @param notificationId id of notification\n */\n public handleClick(notificationId: string): void {\n this.service.markAsRead(notificationId);\n this.popupService.close();\n }\n\n /**\n * Method opens a user settings and closes the popup.\n */\n public openUserSettings(): void {\n const modalRef = this.modal.open(UserSettingsModalComponent, {\n size: 'md',\n });\n (modalRef.componentInstance as UserSettingsModalComponent).activeTab =\n 'notifications';\n this.popupService.close();\n }\n}\n","
    \n
    \n \n\n \n \n \n\n \n \n {{ 'shared.notifications.markAllAsRead' | translate }}\n \n \n
    \n \n \n
    \n {{ notification.created | date: 'short' : this.appService.session.timeZoneOffset }}\n
    \n
    \n {{ notification.subject }}\n
    \n
    \n {{ notification.message }}\n
    \n \n
    \n \n {{ 'shared.notifications.hasNoUnreadNotifications' | translate }}\n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n UserView,\n UserViewColumn,\n} from 'src/app/shared/models/inner/user-view';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport { View, ViewColumn } from 'src/app/shared/models/inner/view';\nimport { Dictionary } from 'src/app/shared/models/dictionary';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { SortableEvent, SortableOptions } from 'sortablejs';\nimport { NotificationService } from '../../../../core/notification.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport _ from 'lodash';\n\n/** Диалог настройки представления. */\n@Component({\n selector: 'wp-view-settings-modal',\n templateUrl: './view-settings-modal.component.html',\n styleUrls: ['./view-settings-modal.component.scss'],\n standalone: false,\n})\nexport class ViewSettingsModalComponent implements OnInit {\n columns: any[] = [];\n selectedColumns: any[] = [];\n columnsContainerId = 'columns-container';\n\n @Input() userView: UserView;\n @Input() defaultUserView: UserView;\n @Input() list: List;\n @Input() view: View;\n @Input() viewName: string;\n\n @Input() modern: boolean;\n\n public isSaving = false;\n public viewTableStyle: Dictionary = {};\n\n dropEventHandler = () => null;\n\n columnsSortableOptions: SortableOptions = {\n group: {\n name: 'columns',\n pull: 'clone',\n put: false,\n },\n sort: false,\n handle: '.handle',\n animation: 0,\n filter: '.not-draggable',\n };\n\n selectedColumnsSortableOptions: SortableOptions = {\n group: {\n name: 'selectedColumns',\n pull: true,\n put: (from, to, dragEl) => {\n const columnName = dragEl.dataset.name;\n\n return !this.selectedColumns.find((c) => c.name === columnName);\n },\n },\n handle: '.handle',\n chosenClass: 'chosen-selected',\n ghostClass: 'ghost-selected',\n dragClass: 'drag-selected',\n onStart: (event: SortableEvent) => {\n const columnName = event.item.dataset.name;\n\n const column = this.selectedColumns.find((c) => c.name === columnName);\n\n this.dropEventHandler = () => {\n if (column.required) return;\n this.deleteItem(column);\n };\n\n document\n .getElementById(this.columnsContainerId)\n .addEventListener('drop', this.dropEventHandler, { once: true });\n },\n onEnd: () => {\n document\n .getElementById(this.columnsContainerId)\n .removeEventListener('drop', this.dropEventHandler);\n },\n };\n\n constructor(\n private translate: TranslateService,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n /* Функция для клонирования элементов SortableJS списка. */\n cloneFieldHandler(column) {\n column.isSelected = true;\n return column;\n }\n\n /* Формирует представления по настройкам. */\n parseSettings() {\n this.columns = [];\n this.selectedColumns = [];\n\n this.view.columns.forEach((viewColumn: ViewColumn) => {\n const listColumn = this.list.columns.find(\n (c: GridColumn) => c.name === viewColumn.column,\n );\n const userViewColumn = this.userView.columns.find(\n (c: UserViewColumn) => c.column === viewColumn.column,\n );\n\n const column = {\n name: listColumn.name,\n header: this.translate.instant(listColumn.header ?? listColumn.hint),\n hint: this.translate.instant(listColumn.hint),\n total: userViewColumn\n ? userViewColumn.total\n : viewColumn.totalByDefault,\n totals: listColumn.availableTotals,\n fixedWidth: listColumn.fixedWidth === true,\n width: userViewColumn ? userViewColumn.width : viewColumn.width,\n isSelected: false,\n required: viewColumn.isRequired,\n };\n\n this.columns.push(column);\n });\n\n this.columns = _.sortBy(this.columns, ['required']);\n\n this.userView.columns.forEach((userViewColumn: UserViewColumn) => {\n const column: any = this.columns.find(\n (c: any) => c.name === userViewColumn.column,\n );\n\n column.isSelected = true;\n this.selectedColumns.push(column);\n });\n }\n\n /* Добавляет или удаляет из выбранных колонок*/\n\n onSelected = (column: any) => {\n if (column.isSelected) {\n // Insert with respect to view settings.\n let index = this.selectedColumns.length - 1;\n\n let viewColumnIndex = this.view.columns.findIndex(\n (c) => c.column === column.name,\n );\n\n // Search nearest predecessor.\n while (viewColumnIndex > 0) {\n viewColumnIndex--;\n const predecessorViewColumn = this.view.columns[viewColumnIndex];\n const selectedPredecessorColumnIndex = this.selectedColumns.findIndex(\n (c) => c.name === predecessorViewColumn.column,\n );\n if (selectedPredecessorColumnIndex > 0) {\n index = selectedPredecessorColumnIndex + 1;\n break;\n }\n }\n\n this.selectedColumns.splice(index, 0, column);\n } else {\n this.selectedColumns = this.selectedColumns.filter(\n (c: any) => c.isSelected,\n );\n }\n };\n\n /* Возвращает отображаемое имя функции итогов.*/\n getTotalTitle(total?: TotalType) {\n const localString = total ? `shared.total.${total}` : `shared.total.none`;\n return this.translate.instant(localString);\n }\n\n /* Сбрасывает настройки представления по умолчанию. */\n public toDefault() {\n this.userView = this.defaultUserView;\n this.parseSettings();\n }\n\n /* Сохраняет настройки представления */\n\n public ok() {\n if (this.selectedColumns.length === 0) {\n this.notification.warningLocal('shared.columnsCountError');\n return;\n }\n\n this.isSaving = true;\n\n const userView: UserView = {\n version: this.list.version,\n name: this.view.name,\n columns: [],\n order: this.userView.order,\n };\n\n this.selectedColumns.forEach((selectedColumn: any) => {\n const userViewColumn: UserViewColumn = {\n column: selectedColumn.name,\n // eslint-disable-next-line radix\n width: parseInt(selectedColumn.width),\n total: selectedColumn.total,\n };\n\n userView.columns.push(userViewColumn);\n });\n\n this.activeModal.close(userView);\n }\n\n /* Закрывает модальное окно */\n public cancel() {\n this.activeModal.dismiss();\n }\n\n /* Удаляет колонку из выбранных */\n public deleteItem(column: any) {\n column.isSelected = false;\n this.onSelected(column);\n }\n\n ngOnInit() {\n this.view = this.list.views.find((v: View) => v.name === this.viewName);\n this.parseSettings();\n }\n}\n","
    \n
    \n

    {{ 'shared.viewSettings.header' | translate }}

    \n \n
    \n
    \n
    \n
    \n
    \n \n {{ 'shared.viewSettings.columns.availableColumns' | translate }}\n
    \n\n \n
    \n @if (!column.required) {\n
    \n \n
    \n }\n \n {{ column.header }}\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n {{ 'shared.viewSettings.columns.column' | translate }}\n \n \n {{ 'shared.viewSettings.columns.width' | translate }}\n \n \n {{ 'shared.viewSettings.columns.total' | translate }}\n \n
    \n\n \n \n
    \n \n {{ column.header }}\n \n @if (!column.required) {\n \n ×\n \n } @else {\n \n }\n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n 0\"\n class=\"form-select\"\n [(ngModel)]=\"column.total\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n \n \n {{ getTotalTitle(total) }}\n \n \n
    \n
    \n
    \n {{ 'shared.dragColumn' | translate }}\n
    \n \n \n \n \n
    \n
    \n
    \n \n {{ 'shared.viewSettings.byDefault' | translate }}\n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n \n
    \n
    \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n} from '@angular/core';\n\nimport { NgbSlideEvent } from '@ng-bootstrap/ng-bootstrap';\n\nimport _isFunction from 'lodash/isFunction';\nimport { saveAs } from 'file-saver';\n\nimport { ImageZoomDirective } from 'src/app/shared/directives/image-zoom/image-zoom.directive';\nimport { ViewerComponentParams } from 'src/app/shared/components/features/viewer/viewer.interface';\nimport {\n AttachmentTemplate,\n AttachmentItem,\n} from 'src/app/shared/models/entities/attachments/attachment.interface';\nimport { AttachmentHelper } from 'src/app/shared/models/entities/attachments/attachment.helper';\n\n@Component({\n selector: 'tmt-viewer',\n templateUrl: './viewer.component.html',\n styleUrls: ['./viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ViewerComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChildren(ImageZoomDirective)\n private zoomDirectives: QueryList;\n\n @Input() public params: ViewerComponentParams;\n\n public pdfZoom = 1;\n public activeAttachmentTemplate: AttachmentTemplate = 'other';\n public activeZoomItem: ImageZoomDirective | null = null;\n public readonly typeWithZoom: AttachmentTemplate[] = ['image', 'pdf'];\n public readonly attachmentStatuses: Record<\n string,\n AttachmentItem['dataReadyStatus']\n > = {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this.params.activeId = String(\n this.params.activeId || this.params.attachments[0].id,\n );\n this.prepareAttachments();\n this.lazyLoad(this.activeItem);\n this.activeAttachmentTemplate = this.activeItem.template;\n }\n\n public ngAfterViewInit(): void {\n this.checkZoom(this.activeItem);\n }\n\n public ngOnDestroy(): void {\n this.clear();\n }\n\n /**\n * Get attachment from current slide.\n *\n * @return attachment item.\n * */\n public get activeItem(): AttachmentItem {\n return this.params.attachments.find((el) => el.id === this.params.activeId);\n }\n\n /**\n * Slide transition handler.\n *\n * @param event NgbSlideEvent.\n *\n * */\n public onSlide(event: NgbSlideEvent): void {\n this.params.activeId = String(event.current);\n const item: AttachmentItem = this.activeItem;\n this.activeAttachmentTemplate = item.template;\n this.pdfZoom = 1;\n this.lazyLoad(item);\n this.checkZoom(item);\n this.cdr.markForCheck();\n }\n\n /**\n * Download the file.\n *\n * @param file AttachmentItem.\n *\n * */\n public saveFile(file: AttachmentItem): void {\n if (!file.data) {\n this.attachmentStatuses[file.id] = 'awaiting';\n this.cdr.markForCheck();\n this.lazyLoad(file, () => saveAs(file.data, file.name));\n\n return;\n }\n\n saveAs(file.data, file.name);\n }\n\n /** Zoom in! */\n public zoomIn(): void {\n this.activeZoomItem?.zoomIn();\n\n if (this.activeAttachmentTemplate === 'pdf') {\n this.pdfZoom += 0.2;\n }\n }\n\n /** Zoom out! */\n public zoomOut(): void {\n this.activeZoomItem?.zoomOut();\n\n if (this.activeAttachmentTemplate === 'pdf') {\n this.pdfZoom -= 0.2;\n }\n }\n\n private prepareAttachments(): void {\n this.params.attachments.forEach((item) => {\n item.id = String(item.id);\n item.template = AttachmentHelper.getTemplateType(\n item.ext || item.name.split('.').pop().toLowerCase(),\n );\n\n if (item.data) {\n item.url = window.URL.createObjectURL(item.data);\n }\n\n this.attachmentStatuses[item.id] =\n _isFunction(item.dataLazyLoad) && item.template !== 'other'\n ? 'awaiting'\n : 'success';\n });\n }\n\n private lazyLoad(item: AttachmentItem, onSuccess?: () => void): void {\n if (item.data) {\n this.attachmentStatuses[item.id] = 'success';\n return;\n }\n\n if (this.attachmentStatuses[item.id] === 'awaiting') {\n this.attachmentStatuses[item.id] = 'loading';\n\n item\n .dataLazyLoad()\n .then((response) => {\n item.data = response;\n item.url = window.URL.createObjectURL(response);\n this.attachmentStatuses[item.id] = 'success';\n\n if (onSuccess) {\n onSuccess();\n }\n })\n .catch(() => {\n this.attachmentStatuses[item.id] = 'fail';\n })\n .finally(() => {\n this.cdr.markForCheck();\n });\n }\n }\n\n private checkZoom(item: AttachmentItem): void {\n if (item.template === 'image') {\n this.activeZoomItem = this.zoomDirectives.find(\n (el) => el.imageId === item.id,\n );\n } else {\n this.activeZoomItem = null;\n }\n }\n\n private clear(): void {\n this.params.attachments.forEach((item) => {\n window.URL.revokeObjectURL(item.url);\n });\n }\n}\n"," 1\"\n [showNavigationIndicators]=\"params.attachments.length > 1\"\n (slide)=\"onSlide($event)\"\n (clickOutside)=\"params.outsideClickCallback()\"\n [delayClickOutsideInit]=\"true\"\n>\n @for (item of params.attachments; track item.id) {\n \n @if (attachmentStatuses[item.id] !== 'fail') {\n \n @switch (item.template) {\n @case ('image') {\n \n \n \n }\n\n @case ('pdf') {\n @if (!params.pdfIframe) {\n \n }\n\n @if (params.pdfIframe && attachmentStatuses[item.id] === 'success') {\n \n }\n }\n\n @case ('video') {\n \n }\n\n @case ('other') {\n \n

    {{ 'shared.messages.viewerWrongFormat' | translate }}

    \n }\n }\n \n } @else {\n
    \n \n

    {{ 'shared.unknownError' | translate }}

    \n
    \n }\n\n
    \n
    \n @if (typeWithZoom.includes(item.template)) {\n \n }\n\n @if (typeWithZoom.includes(item.template)) {\n \n }\n\n \n\n @if (item.url) {\n \n \n \n }\n
    \n\n

    \n {{ item.name }}\n

    \n\n \n
    \n
    \n }\n\n\n
    \n \n {{ 'shared.actions.close' | translate }}\n
    \n","import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n GetTransitionFormPropertyValue,\n TransitionFormDescription,\n} from 'src/app/shared/models/entities/lifecycle/transition-form.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { BehaviorSubject, forkJoin, switchMap } from 'rxjs';\nimport {\n MetaEntity,\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-workflow-action-comment-form',\n templateUrl: './workflow-action-comment-form.component.html',\n standalone: false,\n})\nexport class WorkflowActionCommentFormComponent implements OnInit {\n @Input() collection: string;\n @Input() entityId: string;\n @Input() actionId: string;\n @Input() taskId: string;\n @Input() actionName: string;\n\n public isSaving = false;\n\n public actionForm: FormGroup = this.formBuilder.group({});\n public actionProperties: GetTransitionFormPropertyValue[];\n\n public isLoading = false;\n protected readonly MetaEntityPropertyType = MetaEntityPropertyType;\n\n private collectionValuesSubject = new BehaviorSubject(undefined);\n public collectionValues$ = this.collectionValuesSubject.asObservable();\n public metaEntity: MetaEntity;\n private metaEntityProps: MetaEntityBaseProperty[];\n public get requestComment() {\n return this._requestComment;\n }\n private destroyRef = inject(DestroyRef);\n private _requestComment = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n private data: DataService,\n public appService: AppService,\n private entityTypesService: EntityTypesService,\n ) {}\n\n ngOnInit(): void {\n const params = { actionId: this.actionId };\n this.isLoading = true;\n this.data\n .collection(this.collection)\n .entity(this.entityId)\n .function('GetWorkflowActionFormDescription')\n .query(params)\n .subscribe({\n next: (actionFormDescription: TransitionFormDescription) => {\n this.actionProperties =\n actionFormDescription.transitionFormPropertyValues;\n if (this.metaEntity) {\n this.metaEntityProps = [\n ...this.metaEntity.primitiveProperties,\n ...this.metaEntity.navigationProperties,\n ...this.metaEntity.complexProperties,\n ...this.metaEntity.directoryProperties,\n ];\n }\n this._requestComment = actionFormDescription.requestComment;\n if (this.requestComment) {\n this.actionForm.addControl(\n 'comment',\n this.formBuilder.control(\n null,\n actionFormDescription.commentIsRequired\n ? Validators.required\n : null,\n ),\n );\n }\n\n this.makeForm();\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notification.error(error.message);\n },\n });\n }\n\n public ok() {\n this.actionForm.markAllAsTouched();\n\n if (this.actionForm.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.isSaving = true;\n\n const data = {\n actionId: this.actionId,\n actionFormValue: {\n comment: this.actionForm.value.comment,\n propertyValues: [],\n },\n };\n\n Object.keys(this.actionForm.value).forEach((key) => {\n const isNavigationProperty = this.actionProperties.some(\n (p) =>\n (p.name === key &&\n this.getMetaEntityProperty(key)?.type ===\n MetaEntityPropertyType.navigation) ||\n this.getMetaEntityProperty(key)?.type ===\n MetaEntityPropertyType.directory,\n );\n if (isNavigationProperty) {\n data.actionFormValue.propertyValues.push({\n name: key,\n value: this.actionForm.value[key]?.id,\n });\n } else if (key !== 'comment' && !isNavigationProperty) {\n data.actionFormValue.propertyValues.push({\n name: key,\n value: this.actionForm.value[key],\n });\n }\n });\n\n this.activeModal.close(data);\n }\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Returns MetaEntity property.\n * @param propertyName Property name.\n */\n public getMetaEntityProperty(propertyName: string): MetaEntityBaseProperty {\n return this.metaEntityProps.find((x: any) => x.name === propertyName);\n }\n\n /**\n * Returns DirectoryId from MetaEntity property.\n * @param propertyName Property name.\n */\n public getMetaEntityPropertyDirectoryId(propertyName: string): string {\n return (\n this.metaEntityProps.find(\n (x: any) => x.name === propertyName,\n ) as MetaEntityDirectoryProperty\n ).directoryId;\n }\n\n private makeForm() {\n const collectionObservables = {};\n const collectionValues = {};\n const hasNavigationProperties = this.actionProperties.some(\n (prop) =>\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.navigation,\n );\n\n if (!hasNavigationProperties) {\n this.setControlValues(null);\n return;\n }\n this.entityTypesService\n .getEntityTypes()\n .pipe(\n switchMap((entityTypeDescriptions) => {\n this.actionProperties\n .filter(\n (prop) =>\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.navigation ||\n this.getMetaEntityProperty(prop.name).type ===\n MetaEntityPropertyType.directory,\n )\n .forEach((prop) => {\n const mmProperty = this.getMetaEntityProperty(prop.name);\n const query = {\n filter: { isActive: true, directoryId: undefined },\n };\n if (mmProperty.type === MetaEntityPropertyType.directory) {\n query.filter.directoryId = {\n type: 'guid',\n value: (mmProperty as MetaEntityDirectoryProperty)\n .directoryId,\n };\n }\n const collection = entityTypeDescriptions.find(\n (x) =>\n x.entityTypeName ===\n this.getMetaEntityProperty(prop.name).clrType,\n ).collection;\n collectionObservables[prop.name] = this.data\n .collection(collection)\n .query(query);\n });\n return forkJoin(collectionObservables);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (collections) => {\n Object.keys(collections).forEach((key) => {\n collectionValues[key] = collections[key];\n });\n\n this.setControlValues(collectionValues);\n this.collectionValuesSubject.next(collectionValues);\n },\n error: (error: Exception) => {\n this.isLoading = false;\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return;\n }\n this.notification.error(error.message);\n },\n });\n }\n\n private setControlValues(collectionValues: any) {\n this.actionProperties.forEach((property) => {\n let value: any;\n if (\n (this.getMetaEntityProperty(property.name).type ===\n MetaEntityPropertyType.navigation ||\n this.getMetaEntityProperty(property.name).type ===\n MetaEntityPropertyType.directory) &&\n collectionValues\n ) {\n const entity = collectionValues[property.name].find(\n (item) => item.id === property.value,\n );\n if (entity) {\n value = { name: entity.name, id: entity.value };\n }\n } else {\n value = property.value;\n }\n\n this.actionForm.addControl(\n property.name,\n this.formBuilder.control(\n value,\n property.isRequired ? Validators.required : null,\n ),\n );\n });\n this.isLoading = false;\n }\n}\n","\n\n@if (!isLoading) {\n
    \n
    \n

    \n {{ 'settings.workflows.card.workflowForm.header' | translate }}\n

    \n \n
    \n
    \n @for (control of actionProperties; track control.name) {\n
    \n
    \n \n \n @switch (getMetaEntityProperty(control.name).type) {\n @case (MetaEntityPropertyType.dateOnly) {\n \n }\n @case (MetaEntityPropertyType.dateTime) {\n \n }\n @case (MetaEntityPropertyType.string) {\n \n }\n @case (MetaEntityPropertyType.integer) {\n \n }\n @case (MetaEntityPropertyType.navigation) {\n \n }\n @case (MetaEntityPropertyType.directory) {\n \n }\n @case (MetaEntityPropertyType.currency) {\n \n }\n @case (MetaEntityPropertyType.percent) {\n \n }\n }\n
    \n
    \n }\n\n @if (requestComment) {\n
    \n \n \n
    \n }\n
    \n
    \n \n {{ 'settings.workflows.card.action.perform' | translate }}\n \n\n \n
    \n
    \n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\n\n@Component({\n selector: 'tmt-workflow-indicator-popup',\n templateUrl: './workflow-indicator-popup.component.html',\n styleUrls: ['./workflow-indicator-popup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class WorkflowIndicatorPopupComponent {\n constructor(\n public lifecycleService: LifecycleService,\n public appService: AppService,\n ) {}\n}\n","
    \n
    \n {{ 'shared.props.name' | translate }}\n
    \n {{ (lifecycleService.lifecycleInfo$ | async)?.workflowIndicatorData.name }}\n
    \n
    \n
    \n {{\n 'shared.workflow.workflowIndicator.initiator' | translate\n }}\n
    \n {{ (lifecycleService.lifecycleInfo$ | async)?.workflowIndicatorData.initiator }}\n
    \n
    \n
    \n {{\n 'shared.workflow.workflowIndicator.startDate' | translate\n }}\n
    \n {{\n (lifecycleService.lifecycleInfo$ | async)?.workflowIndicatorData.startDate\n | date: 'short' : this.appService.session.timeZoneOffset\n }}\n
    \n
    \n \n {{ 'shared.props.description' | translate }}\n
    \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n} from '@angular/core';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { WorkflowIndicatorPopupComponent } from 'src/app/shared/components/features/workflow-indicator/workflow-indicator-popup/workflow-indicator-popup.component';\n\n@Component({\n selector: 'tmt-workflow-indicator',\n templateUrl: './workflow-indicator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class WorkflowIndicatorComponent {\n constructor(\n public lifecycleService: LifecycleService,\n private injector: Injector,\n private popupService: InfoPopupService,\n private el: ElementRef,\n ) {}\n\n /** Open user notification popup. */\n public openPopup(): void {\n this.popupService.open({\n target: this.el.nativeElement,\n data: {\n component: WorkflowIndicatorPopupComponent,\n params: null,\n injector: this.injector,\n },\n containerStyles: { padding: '0' },\n });\n }\n}\n","\n {{ 'shared.workflow.workflowInfo' | translate }}\n\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport {\n catchError,\n filter,\n firstValueFrom,\n map,\n merge,\n Observable,\n of,\n pairwise,\n switchMap,\n take,\n} from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DirectoriesService } from 'src/app/shared/services/directories.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { EntityTypesService } from 'src/app/shared/services/entity-types.service';\nimport {\n MetaEntityDirectoryProperty,\n MetaEntityPropertyKind,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\nimport {\n FilterCondition,\n FilterOperator,\n MetaEntityData,\n OPERATOR_BY_META_ENTITY_TYPE,\n} from '../filter-conditions-builder.model';\nimport _ from 'lodash';\n\n@Component({\n selector: 'tmt-filter-condition',\n imports: [SharedModule],\n templateUrl: './filter-condition.component.html',\n styleUrl: './filter-condition.component.scss',\n host: {\n class: 'condition',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilterConditionComponent {\n @HostBinding('class.condition--nullable')\n protected get nullableOperator(): boolean {\n return ['IsNull', 'IsNotNull'].includes(this.operator());\n }\n\n public filterCondition = input.required();\n public metaEntityPropertyData = input.required();\n public entityName = input.required();\n public allowInactive = input.required();\n\n public onRemoveClick = output();\n public onConditionChange = output();\n\n public loading = signal(false);\n public operators: FilterOperator[] = [];\n public operator = signal(null);\n public propertyControl = new FormControl(null);\n public propertyRangeForm = new FormGroup({\n left: new FormControl(),\n right: new FormControl(),\n });\n public collectionName?: string;\n public directoryId?: string;\n public parentIdKey?: string;\n public states$?: Observable;\n\n private readonly appService = inject(AppService);\n private readonly entityTypesService = inject(EntityTypesService);\n private readonly dataService = inject(DataService);\n private readonly directoriesService = inject(DirectoriesService);\n private readonly translateService = inject(TranslateService);\n private readonly notificationService = inject(NotificationService);\n\n constructor() {\n toObservable(this.operator)\n .pipe(\n filter((v) => !!v),\n pairwise(),\n takeUntilDestroyed(),\n )\n .subscribe(([prev, current]) => {\n if (current === 'IsNull' || current === 'IsNotNull') {\n this.propertyControl.setValue(null);\n } else if (\n (current === 'InPeriod' && prev !== 'InPeriod') ||\n (current !== 'InPeriod' && prev === 'InPeriod')\n ) {\n this.propertyControl.setValue(null);\n } else {\n this.onConditionChange.emit({\n operator: current,\n value: this.getPlainValue(this.propertyControl.value),\n });\n }\n });\n\n merge(\n this.propertyControl.valueChanges,\n this.propertyRangeForm.valueChanges,\n )\n .pipe(takeUntilDestroyed())\n .subscribe((value: any) => {\n this.onConditionChange.emit({\n operator: this.operator(),\n value: this.getPlainValue(value),\n });\n });\n }\n\n public async ngOnInit(): Promise {\n const metaEntityPropertyData = this.metaEntityPropertyData();\n const metaEntity = this.appService.getMetaEntity(\n metaEntityPropertyData.clrType,\n );\n const { operator, value } = this.filterCondition();\n\n this.operator.set(operator);\n this.operators =\n OPERATOR_BY_META_ENTITY_TYPE[metaEntityPropertyData.type].slice(0);\n this.parentIdKey =\n metaEntity?.hierarchyProperty &&\n _.camelCase(`${metaEntity.hierarchyProperty}Id`);\n\n if (\n metaEntityPropertyData.type === MetaEntityPropertyType.boolean &&\n value === null\n ) {\n this.propertyControl.setValue(false);\n\n return;\n }\n\n if (operator === 'Between' && value) {\n const [left, right] = value;\n\n this.propertyRangeForm.patchValue(\n {\n left,\n right,\n },\n { emitEvent: false },\n );\n\n return;\n // TODO: add for Percent type\n }\n\n this.loading.set(true);\n\n let data$: Observable | null = of(value);\n\n if (metaEntityPropertyData.kind === MetaEntityPropertyKind.directory) {\n this.directoryId = (\n metaEntityPropertyData as MetaEntityDirectoryProperty\n ).directoryId;\n\n if (value) {\n data$ = this.directoriesService\n .getDirectoryEntries(this.directoryId)\n .pipe(\n take(1),\n map((entries: NamedEntity[]) => entries.pop() || null),\n );\n }\n }\n\n if (metaEntityPropertyData.kind === MetaEntityPropertyKind.navigation) {\n this.collectionName = await firstValueFrom(\n this.entityTypesService.getEntityTypeCollection(\n metaEntityPropertyData.clrType,\n ),\n );\n\n if (value) {\n data$ = this.dataService\n .collection(this.collectionName)\n .entity(value)\n .get();\n }\n\n if (metaEntityPropertyData.clrType === 'State') {\n data$ = this.entityTypesService\n .getEntityTypeCollection(this.entityName())\n .pipe(\n switchMap((collectionName) => {\n this.states$ = this.getStates(collectionName);\n return value ? this.states$ : of([]);\n }),\n map(\n (entries: NamedEntity[]) =>\n entries.find((state) => state.id === value) ?? null,\n ),\n );\n }\n }\n\n const result = await firstValueFrom(\n data$.pipe(\n catchError((error) => {\n if (error.code === Exception.BtEntityNotFoundException.code) {\n return of({\n id: value,\n name: this.translateService.instant(\n 'shared.entityNotFound.title',\n ),\n });\n } else {\n this.notificationService.error(error.message);\n return of(null);\n }\n }),\n ),\n );\n\n this.propertyControl.setValue(result, { emitEvent: false });\n this.loading.set(false);\n }\n\n private getPlainValue(\n value: number | string | boolean | Record,\n ): number | boolean | string | [number | null, number | null] {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'bigint':\n case 'symbol':\n return value;\n case 'boolean':\n return Boolean(value);\n case 'object':\n return typeof value?.left === 'number'\n ? [value.left ?? null, value.right ?? null]\n : value?.id\n ? value.id\n : value;\n default:\n return null;\n }\n }\n\n private getStates(collectionName: string): Observable {\n return this.dataService\n .collection(collectionName)\n .function('GetStates')\n .query(null, { select: ['id', 'code', 'name', 'index'] });\n }\n}\n","@if (!loading()) {\n
    \n \n {{ 'enums.filterOperator.' + operator() | translate }}\n \n\n
    \n @for (item of operators; track $index) {\n \n }\n
    \n
    \n\n
    \n @if (\n ['Navigation', 'Directory'].includes(metaEntityPropertyData().type) &&\n ['Equal', 'NotEqual'].includes(operator())\n ) {\n @switch (metaEntityPropertyData().clrType) {\n @case ('User') {\n \n }\n\n @case ('State') {\n \n }\n\n @default {\n @if (parentIdKey) {\n \n } @else {\n \n }\n }\n }\n }\n\n @if (['String', 'Text'].includes(metaEntityPropertyData().type)) {\n \n }\n\n @if (['Integer', 'Decimal'].includes(metaEntityPropertyData().type)) {\n @switch (operator()) {\n @case ('Between') {\n
    \n \n \n \n
    \n }\n\n @default {\n \n }\n }\n }\n\n @if (metaEntityPropertyData().type === 'Boolean') {\n
    \n \n
    \n }\n\n @if (['DateTime', 'DateOnly'].includes(metaEntityPropertyData().type)) {\n @switch (operator()) {\n @case ('InPeriod') {\n \n }\n\n @default {\n \n }\n }\n }\n
    \n\n \n \n \n} @else {\n \n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { filter } from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { init, initAndDestroy, listFade } from 'src/app/shared/animations';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { LocalStringHelper } from 'src/app/shared/models/enums/language.enum';\nimport {\n MetaEntity,\n MetaEntityPrimitiveProperty,\n MetaEntityPropertyKind,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\nimport {\n Filter,\n FilterCondition,\n FilterProperty,\n MetaEntityData,\n} from './filter-conditions-builder.model';\nimport { FilterConditionComponent } from './filter-condition/filter-condition.component';\n\n@Component({\n selector: 'tmt-filter-conditions-builder',\n imports: [SharedModule, FilterConditionComponent],\n templateUrl: './filter-conditions-builder.component.html',\n styleUrl: './filter-conditions-builder.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [init, initAndDestroy, listFade]\n})\nexport class FilterConditionsBuilderComponent {\n public source = input.required();\n public isNavigationExpanded = input(false); // TODO: change it?\n\n public onTitleChanged = output();\n\n public filters = model([]);\n\n public indicatorTitle: string;\n public loading = signal(false);\n public sourceBoxShown = signal(false);\n public sourceFields = computed(() =>\n this.buildSource(this.source()),\n );\n public sourceControl = new FormControl<{ id: string; name: string } | null>(\n null,\n );\n public availableSourceFields: FilterProperty[] = [];\n public paramsBySourceField: Record<\n string,\n { title: string; metaEntityPropertyData: MetaEntityData }\n > = {};\n public metaEntity: MetaEntity;\n public allowInactiveControl = new FormControl(false);\n\n private readonly appService = inject(AppService);\n private readonly translateService = inject(TranslateService);\n\n constructor() {\n this.sourceControl.valueChanges\n .pipe(\n filter((v) => !!v),\n takeUntilDestroyed(),\n )\n .subscribe((value) => {\n const item = this.sourceFields().find((v) => v.id === value.id);\n\n this.sourceBoxShown.set(false);\n this.sourceControl.setValue(null, { emitEvent: false });\n\n this.filters.update((values) => {\n this.updateIndicator(values.length + 1);\n return values.concat([\n {\n property: item.key,\n conditions: [\n {\n operator: 'Equal',\n value: null,\n },\n ],\n },\n ]);\n });\n });\n }\n\n public ngOnInit(): void {\n this.updateIndicator(this.filters().length);\n }\n\n /**\n * Adds condition to criterion.\n *\n * @param index criterion index.\n */\n public addCondition(index: number): void {\n this.filters.update((values) => {\n values.at(index).conditions.push({\n operator: 'Equal',\n value: null,\n });\n\n return values.slice(0);\n });\n }\n\n /**\n * Updates filters.\n *\n * @param filterIndex\n * @param criterionIndex\n * @param data updated filter conditions.\n */\n public updateCondition(\n filterIndex: number,\n criterionIndex: number,\n data: FilterCondition,\n ): void {\n this.filters.update((values) => {\n Object.assign(values.at(filterIndex).conditions.at(criterionIndex), data);\n return values.slice(0);\n });\n }\n\n /**\n * Removes condition from criterion.\n *\n * @param filterIndex\n * @param criterionIndex\n */\n public removeCondition(filterIndex: number, criterionIndex: number): void {\n this.filters.update((values) => {\n values.at(filterIndex).conditions.splice(criterionIndex, 1);\n return values.slice(0);\n });\n }\n\n /**\n * Removes criterion from filters.\n *\n * @param index condition index.\n */\n public removeCriterion(index: number): void {\n this.filters.update((values) => {\n values.splice(index, 1);\n this.updateIndicator(values.length);\n return values.slice(0);\n });\n }\n\n /** Removes all criterions. */\n public clearCriterions(): void {\n this.updateIndicator(0);\n this.filters.set([]);\n }\n\n private updateIndicator(length: number): void {\n if (!length) {\n this.indicatorTitle = this.translateService.instant(\n 'analytics.reportFilters.noFiltersDefined',\n );\n } else {\n const count = { count: length };\n\n this.indicatorTitle = StringHelper.declOfNum(length, [\n this.translateService.instant(\n 'analytics.reportFilters.criteriaCountForms.v1',\n count,\n ),\n this.translateService.instant(\n 'analytics.reportFilters.criteriaCountForms.v2',\n count,\n ),\n this.translateService.instant(\n 'analytics.reportFilters.criteriaCountForms.v3',\n count,\n ),\n ]);\n }\n\n this.onTitleChanged.emit(this.indicatorTitle);\n }\n\n private buildSource(\n source: FilterProperty[] | string,\n ): FilterProperty[] | null {\n if (Array.isArray(source)) {\n return source;\n }\n\n this.metaEntity = this.appService.getMetaEntity(source);\n\n if (typeof source !== 'string' || !this.metaEntity) {\n return null;\n }\n\n const sourceFields: FilterProperty[] = [];\n // TODO: collection, complex?\n this.metaEntity.primitiveProperties\n .concat(this.metaEntity.directoryProperties)\n .concat(this.metaEntity.navigationProperties)\n .filter(\n // TODO: remove it after API fix\n (property) =>\n ![\n MetaEntityPropertyType.dateOnly,\n MetaEntityPropertyType.dateTime,\n ].includes(property.type),\n )\n .forEach((property) => {\n const name = this.getPropertyName(property);\n const sourceField: FilterProperty = {\n id: name,\n name: LocalStringHelper.getTranslate(\n property.displayNames,\n this.appService.session.language,\n ),\n type: property.type,\n key: [name],\n group: null,\n };\n\n this.paramsBySourceField[sourceField.id] = {\n title: sourceField.name,\n metaEntityPropertyData: property,\n };\n\n sourceFields.push(sourceField);\n\n if (\n [\n MetaEntityPropertyKind.navigation,\n MetaEntityPropertyKind.directory,\n ].includes(property.kind) &&\n this.isNavigationExpanded()\n ) {\n const navigationMetaEntity = this.appService.getMetaEntity(\n property.clrType,\n );\n\n navigationMetaEntity?.primitiveProperties\n .concat(navigationMetaEntity.directoryProperties)\n .concat(navigationMetaEntity.navigationProperties)\n .forEach((navigationProperty) => {\n const navigationName = this.getPropertyName(navigationProperty);\n const navigationSourceField: FilterProperty = {\n id: `${property.name}/${navigationName}`,\n name: `${sourceField.name} (${LocalStringHelper.getTranslate(\n navigationProperty.displayNames,\n this.appService.session.language,\n )})`,\n type: navigationProperty.type,\n key: [property.name, navigationName],\n group: name,\n };\n\n this.paramsBySourceField[navigationSourceField.id] = {\n title: navigationSourceField.name,\n metaEntityPropertyData: navigationProperty,\n };\n\n sourceFields.push(navigationSourceField);\n });\n }\n });\n\n return sourceFields.sort(naturalSort('name'));\n }\n\n private getPropertyName(property: MetaEntityPrimitiveProperty): string {\n return [\n MetaEntityPropertyKind.directory,\n MetaEntityPropertyKind.navigation,\n ].includes(property.kind)\n ? `${property.name}Id`\n : property.name;\n }\n}\n","@if (sourceFields()?.length) {\n
    \n \n
    \n\n
    \n
    \n \n
    \n \n {{ 'components.filterConditionsBuilderComponent.actions.removeCriterions' | translate }}\n \n
    \n\n
    \n @for (filter of filters(); track filter.property; let filterIndex = $index) {\n @if (paramsBySourceField[filter.property.join('/')]) {\n \n
    \n
    \n {{ paramsBySourceField[filter.property.join('/')].title }}\n
    \n\n \n \n \n
    \n\n
    \n @for (condition of filter.conditions; track condition) {\n \n\n @if (filter.conditions[$index + 1]) {\n
    \n {{ 'analytics.reportFilters.or' | translate }}\n
    \n }\n }\n\n
    \n \n {{ 'components.filterConditionsBuilderComponent.actions.addCondition' | translate }}\n \n
    \n
    \n
    \n } @else {\n
    \n
    \n
    \n {{ 'components.filterConditionsBuilderComponent.props.notFound' | translate }}\n
    \n\n \n \n \n
    \n
    \n {{ filter.property }}\n
    \n
    \n }\n\n @if (filters()[filterIndex + 1]) {\n
    \n {{ 'analytics.reportFilters.and' | translate }}\n
    \n }\n }\n\n @if (sourceBoxShown()) {\n \n } @else {\n \n }\n \n}\n","import {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityNavigationProperty,\n MetaEntityPrimitiveProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\nexport interface FilterProperty extends Pick {\n /** Generated ID. */\n id: string;\n /** Translated property title. */\n name: string;\n /** Group name. */\n group: string;\n /** Property key. */\n key: string[];\n}\n\nexport interface Filter {\n /** Property name. */\n property: string[];\n /** Conditions by `or`. */\n conditions: FilterCondition[];\n}\n\nexport interface FilterCondition {\n /** Operator. */\n operator: FilterOperator;\n /** Property value. */\n value: any;\n}\n\nexport const FILTER_OPERATORS = [\n 'Equal',\n 'NotEqual',\n 'Greater',\n 'Less',\n 'GreaterOrEqual',\n 'LessOrEqual',\n 'Contains',\n 'DoesNotContain',\n 'Between',\n 'InPeriod',\n 'InHierarchy',\n 'IsNull',\n 'IsNotNull',\n 'StartsWith',\n 'EndsWith',\n] as const;\n\nexport type FilterOperator = (typeof FILTER_OPERATORS)[number];\n\nexport type MetaEntityData =\n | MetaEntityPrimitiveProperty\n | MetaEntityDirectoryProperty\n | MetaEntityNavigationProperty;\n\nexport const OPERATOR_BY_META_ENTITY_TYPE: Record<\n MetaEntityPropertyType,\n readonly FilterOperator[]\n> = {\n [MetaEntityPropertyType.string]: [\n 'Equal',\n 'NotEqual',\n 'Contains',\n 'DoesNotContain',\n 'StartsWith',\n 'EndsWith',\n ],\n [MetaEntityPropertyType.text]: [\n 'Equal',\n 'NotEqual',\n 'Contains',\n 'DoesNotContain',\n 'StartsWith',\n 'EndsWith',\n ],\n [MetaEntityPropertyType.decimal]: [\n 'Equal',\n 'NotEqual',\n 'Between',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n ],\n [MetaEntityPropertyType.percent]: [\n 'Equal',\n 'NotEqual',\n 'Between',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n ],\n [MetaEntityPropertyType.currency]: [\n 'Equal',\n 'NotEqual',\n 'Between',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n ],\n [MetaEntityPropertyType.integer]: [\n 'Equal',\n 'NotEqual',\n 'Between',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n ],\n [MetaEntityPropertyType.dateTime]: [\n 'Equal',\n 'NotEqual',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n 'InPeriod',\n ],\n [MetaEntityPropertyType.dateOnly]: [\n 'Equal',\n 'NotEqual',\n 'Greater',\n 'GreaterOrEqual',\n 'Less',\n 'LessOrEqual',\n 'InPeriod',\n ],\n [MetaEntityPropertyType.directory]: [\n 'Equal',\n 'NotEqual',\n 'IsNull',\n 'IsNotNull',\n ],\n [MetaEntityPropertyType.navigation]: [\n 'Equal',\n 'NotEqual',\n 'IsNull',\n 'IsNotNull',\n ],\n [MetaEntityPropertyType.boolean]: ['Equal'],\n [MetaEntityPropertyType.phone]: [\n 'Equal',\n 'NotEqual',\n 'Contains',\n 'DoesNotContain',\n 'StartsWith',\n 'EndsWith',\n ],\n [MetaEntityPropertyType.url]: [\n 'Equal',\n 'NotEqual',\n 'Contains',\n 'DoesNotContain',\n 'StartsWith',\n 'EndsWith',\n ],\n [MetaEntityPropertyType.email]: [\n 'Equal',\n 'NotEqual',\n 'Contains',\n 'DoesNotContain',\n 'StartsWith',\n 'EndsWith',\n ],\n};\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmt-icon-picker]',\n templateUrl: './icon-picker.component.html',\n styleUrl: './icon-picker.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IconPickerComponent {\n @Input({ required: true }) public control: FormControl;\n\n public readonly biLink = {\n link: 'https://icons.getbootstrap.com/',\n title: 'icons.getbootstrap.com',\n };\n}\n","\n\n
    \n
    \n \n
    \n\n \n \n \n
    \n\n
    \n {{ 'settings.workflows.card.action.icon.hint' | translate }}\n {{ biLink.title }} \n {{ 'settings.workflows.card.action.icon.example' | translate }}\n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { RawParams } from '@uirouter/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { LifecycleCardService } from 'src/app/settings-app/lifecycle/card/lifecycle-card.service';\nimport {\n MassOperationHelper,\n MassOperationResult,\n} from 'src/app/shared/helpers/mass-operation.helper';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { ErrorGroup } from 'src/app/shared/components/mass-operation/model/mass-operation-error.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MassOperationType } from 'src/app/shared/components/mass-operation/model/mass-change-type.model';\nimport { MetaEntityPropertyType } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { ChangeStateParams } from 'src/app/shared/models/entities/lifecycle/transition-form.model';\n\n@Component({\n selector: 'tmt-mass-operation',\n templateUrl: './mass-operation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, SharedModule, UIRouterModule]\n})\nexport class MassOperationComponent implements OnInit {\n @Input() massOperationType: MassOperationType;\n /** Entity items for visualize mass operation errors. */\n @Input() items: NamedEntity[];\n @Input() entityIds: string[];\n /** Collection for manage mass operations. */\n @Input() collection: string;\n /** Entity name for wrapper collection. */\n @Input() entityPropertyName?: string;\n /** The name of the state to link to errored entity. */\n @Input() state: string;\n /** Properties for mass change states. */\n @Input() changeStateParams?: ChangeStateParams;\n\n public operationInProgress = false;\n public progress = 0;\n public actionsCount: number;\n public successActionsCount: number;\n public failActionsCount: number;\n public massOperationCompleted = false;\n public errorGroups: ErrorGroup[] = [];\n public stateParams: RawParams = {\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n };\n public metaEntityPropertyType = MetaEntityPropertyType;\n\n private massOperationHelper: MassOperationHelper;\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public lifecycle: LifecycleCardService,\n private activeModal: NgbActiveModal,\n private data: DataService,\n private navigationService: NavigationService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.actionsCount = this.entityIds.length;\n this.successActionsCount = 0;\n }\n\n /** Executes mass operation. */\n public apply(): void {\n switch (this.massOperationType) {\n case 'changeState': {\n this.initChangeStateMassOperationHelper();\n break;\n }\n case 'delete':\n this.initDeleteMassOperationHelper();\n break;\n case 'reAccount':\n this.initReAccountMassOperationHelper();\n break;\n default:\n return;\n }\n\n this.operationInProgress = true;\n this.massOperationHelper\n .start()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((v) => {\n this.successActionsCount = this.massOperationHelper.completedCount;\n this.progress = Math.round(v);\n\n if (v === 100) {\n this.operationInProgress = false;\n this.massOperationCompleted = true;\n this.errorsHandler(this.massOperationHelper.errors);\n }\n this.cdr.detectChanges();\n });\n }\n\n /** Closes modal with \"Ok\" result. */\n public ok(): void {\n this.activeModal.close('ok');\n }\n\n /** Closes modal with \"Cancel\" result. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /**\n * Transforms error details to string;\n *\n * @param error Errors.\n * @returns Errors in single message.\n */\n public detailsMessage(error: Exception): string {\n return error.details?.map((d) => d.message)?.join('\\n');\n }\n\n /** Initializes the MassOperationHelper for change state operations. */\n private initChangeStateMassOperationHelper(): void {\n this.massOperationHelper = new MassOperationHelper(\n this.entityIds.map((id) =>\n this.data\n .collection(this.collection)\n .entity(id)\n .action('SetState')\n .execute(this.changeStateParams),\n ),\n {\n takeUntil: takeUntilDestroyed(this.destroyRef),\n },\n );\n }\n\n /** Initializes the MassOperationHelper for delete operations. */\n private initDeleteMassOperationHelper(): void {\n this.massOperationHelper = new MassOperationHelper(\n this.entityIds.map((entityId) =>\n this.data.collection(this.collection).entity(entityId).delete(),\n ),\n {\n takeUntil: takeUntilDestroyed(this.destroyRef),\n },\n );\n }\n\n /** Initializes the MassOperationHelper for change state operations. */\n private initReAccountMassOperationHelper(): void {\n this.massOperationHelper = new MassOperationHelper(\n this.entityIds.map((id) =>\n this.data\n .collection(this.collection)\n .entity(id)\n .action('ReAccount')\n .execute(),\n ),\n {\n takeUntil: takeUntilDestroyed(this.destroyRef),\n },\n );\n }\n\n private errorsHandler(errors: MassOperationResult[]): void {\n this.failActionsCount = errors.length;\n\n errors.forEach((error) => {\n const errorTitle = error.result.message ?? error.result.code;\n const item = {\n error: error.result,\n item: this.items[error.originalIndex],\n };\n\n const groupIndex = this.errorGroups.findIndex(\n (group) => group.title === errorTitle,\n );\n\n if (groupIndex === -1) {\n this.errorGroups.push({\n title: errorTitle,\n items: [item],\n });\n } else {\n this.errorGroups[groupIndex].items.push(item);\n }\n });\n }\n}\n","
    \n
    \n

    \n {{ 'components.massOperationComponent.props.header' | translate }}\n

    \n\n \n
    \n\n
    \n
    \n \n\n @if (!operationInProgress && !massOperationCompleted) {\n {{\n 'components.massOperationComponent.messages.actionsCount'\n | translate: { count: actionsCount }\n }}\n }\n\n @if (massOperationCompleted) {\n
    \n
    \n {{\n 'components.massOperationComponent.messages.successActionsCount'\n | translate: { count: successActionsCount }\n }}\n
    \n
    \n }\n\n @if (massOperationCompleted && errorGroups.length) {\n
    \n
    \n {{\n 'components.massOperationComponent.messages.failActionsCount'\n | translate: { count: failActionsCount }\n }}\n
    \n
      \n @for (group of errorGroups; track $index) {\n
    • \n {{ group.title }}\n
        \n @for (el of group.items; track el) {\n
      • \n
        \n @if (el.error.details) {\n \n \n }\n \n {{ el.item[entityPropertyName]?.name ?? el.item.name ?? el.item.id }}\n \n
        \n
      • \n }\n
      \n
    • \n }\n
    \n
    \n }\n
    \n
    \n\n
    \n @if (!massOperationCompleted) {\n \n {{ 'components.massOperationComponent.actions.label' | translate }}\n \n }\n\n @if (massOperationCompleted) {\n \n }\n\n @if (!massOperationCompleted) {\n \n {{ 'shared.actions.cancel' | translate }}\n \n }\n
    \n
    \n","export class MassOperationParameters {\n /** Key name of entity property. It used for wrapper collection with entity in the separate property. */\n entityPropertyName?: string;\n /** UIRouter's state name of card page */\n state: string;\n\n /**\n * Gets `select` part of query.\n *\n * @param params mass operations parameters.\n * @returns part of query.\n */\n public static getSelectQuery(params: MassOperationParameters): any {\n return params.entityPropertyName\n ? {\n select: ['id'],\n expand: {\n [params.entityPropertyName]: {\n select: ['id', 'name', 'stateId'],\n },\n },\n }\n : { select: ['id', 'stateId', 'name'] };\n }\n\n /**\n * Gets `$apply` part of query.\n *\n * @param params mass operations parameters.\n * @param kindProperty lifecycle kind property. Transforms property to `kindPropertyId`.\n * @returns part of query.\n */\n public static getGroupByStateIdQuery(\n params: MassOperationParameters,\n kindProperty: string | null,\n ): any {\n const stateProperty = params.entityPropertyName\n ? `${params.entityPropertyName}/stateId`\n : 'stateId';\n let kindIdProperty: string;\n\n if (kindProperty) {\n kindIdProperty = params.entityPropertyName\n ? `${params.entityPropertyName}/${kindProperty}Id`\n : `${kindProperty}Id`;\n }\n\n return {\n groupBy: {\n properties: kindIdProperty\n ? [stateProperty, kindIdProperty]\n : [stateProperty],\n transform: {\n aggregate: {\n [stateProperty]: {\n with: 'countdistinct',\n as: 'count',\n },\n },\n },\n },\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { EntityNavigation } from 'src/app/shared/models/navigation/navigation';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { AsyncPipe } from '@angular/common';\nimport {\n GridSelectControlColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'tmt-navigation-items',\n templateUrl: './navigation-items.component.html',\n providers: [GridService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [GridModule, TranslateModule, AsyncPipe],\n})\nexport class NavigationItemsComponent implements OnInit {\n @Input() readonly: boolean;\n @Input() navigations: FormArray;\n @Input() navigationResponse: EntityNavigation[];\n\n public gridOptions: GridOptions;\n public areas: Record[] = [];\n\n private destroyRef = inject(DestroyRef);\n private groupsObject: Record[]> = {};\n\n constructor(\n public gridService: GridService,\n private fb: FormBuilder,\n private translateService: TranslateService,\n private navigationService: NavigationService,\n ) {}\n\n ngOnInit(): void {\n this.initAreasGroupsOptions();\n this.initNavigationArray();\n\n this.navigations.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.navigations.parent) {\n this.navigations.parent.markAllAsTouched();\n } else {\n this.navigations.markAllAsTouched();\n }\n });\n\n this.gridOptions = {\n css: 'wp-nested-table stop-context',\n selectionType: SelectionType.row,\n commands: [\n {\n name: 'add',\n handlerFn: () => this.addNavigationItem(),\n allowedFn: () => !this.readonly,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared2.actions.delete',\n handlerFn: (_, index: number) => {\n this.navigations.removeAt(index);\n this.navigations.markAsDirty();\n },\n allowedFn: () => !this.readonly,\n },\n ],\n view: {\n name: 'navigation',\n columns: [\n {\n name: 'area',\n header: 'components.boardCardNavigationsComponent.props.area.value',\n hint: 'components.boardCardNavigationsComponent.props.area.value',\n placeholder: this.translateService.instant(\n 'components.boardCardNavigationsComponent.props.area.ph',\n ),\n type: GridColumnType.SelectControl,\n values: () =>\n this.areas.filter(\n (item) =>\n !this.navigations.value?.some(\n (nav) => nav.area?.key === item.key,\n ),\n ),\n allowNull: false,\n },\n {\n name: 'group',\n header:\n 'components.boardCardNavigationsComponent.props.group.value',\n hint: 'components.boardCardNavigationsComponent.props.group.value',\n placeholder: this.translateService.instant(\n 'components.boardCardNavigationsComponent.props.group.ph',\n ),\n type: GridColumnType.SelectControl,\n values: () =>\n this.groupsObject[\n this.gridService.selectedGroup$.getValue()?.get('area')?.value\n ?.key\n ] ?? [],\n allowNull: false,\n },\n ],\n },\n };\n }\n\n /** Adds navigation item. */\n public addNavigationItem(): void {\n this.navigations.push(\n this.fb.group({\n area: [null, Validators.required],\n group: [{ value: null, disabled: true }, Validators.required],\n id: Guid.generate(),\n }),\n );\n\n const addingGroup = this.navigations.at(\n this.navigations.length - 1,\n ) as FormGroup;\n this.initNavigationRowSubscription(addingGroup);\n this.gridService.selectGroup(addingGroup);\n addingGroup.markAsDirty();\n }\n\n /** Removes navigation item. */\n public removeNavigationItem(): void {\n this.navigations.removeAt(\n this.navigations.controls.findIndex(\n (control) =>\n control.value.id === this.gridService.selectedGroupValue.id,\n ),\n );\n this.navigations.markAsDirty();\n }\n\n /**\n * Inits row area value change subscription.\n *\n * @param row form array item.\n */\n private initNavigationRowSubscription(row: FormGroup): void {\n row\n .get('area')\n .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (value) {\n row.get('group').enable();\n } else {\n row.get('group').disable();\n }\n\n if (\n !this.groupsObject[value?.key]?.find(\n (group) => group.key === row.get('group').value?.key,\n )\n ) {\n row.get('group').setValue(null);\n }\n });\n }\n\n /** Inits navigations array values. */\n private initNavigationArray(): void {\n this.navigations.clear();\n for (const nav of this.navigationResponse) {\n const group = this.fb.group({\n area: [\n this.areas.find((area) => area.key === nav.area),\n Validators.required,\n ],\n group: [\n this.groupsObject[nav.area].find((group) => group.key === nav.group),\n Validators.required,\n ],\n id: Guid.generate(),\n });\n this.navigations.push(group);\n this.initNavigationRowSubscription(group);\n if (this.readonly) {\n this.navigations.disable({ emitEvent: false });\n }\n }\n }\n\n /** Inits areas and groups select options. */\n private initAreasGroupsOptions(): void {\n this.navigationService.appToNavigationMap.forEach((navigation) => {\n this.areas.push({\n id: Guid.generate(),\n name: this.translateService.instant(navigation.applicationTitle),\n key: navigation.name,\n });\n\n this.groupsObject[navigation.name] = [];\n navigation.groups.map((group) =>\n this.groupsObject[navigation.name].push({\n id: Guid.generate(),\n name: this.translateService.instant(group.header),\n key: group.name,\n }),\n );\n });\n\n this.areas.sort(naturalSort('name'));\n }\n}\n","
    \n
    \n \n
    \n
    \n
    \n @if (!readonly) {\n
    \n
    \n \n  {{ 'shared2.actions.add' | translate }}\n \n\n \n \n \n
    \n
    \n }\n \n
    \n","import {\n AfterViewInit,\n DestroyRef,\n Directive,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { NgbAccordionItem } from '@ng-bootstrap/ng-bootstrap';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { AccordionStateSettings } from 'src/app/shared/directives/accordion-state/accordion-state.settings';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/** Directive to save accordion state (open/closed) in local configuration. */\n@Directive({\n selector: '[tmtAccordionState]',\n standalone: true,\n})\nexport class AccordionStateDirective implements OnInit {\n @Input('tmtAccordionState') accordionId: string;\n\n public settings = this.localConfigService.getConfig(AccordionStateSettings);\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private accordion: NgbAccordionItem,\n private localConfigService: LocalConfigService,\n ) {}\n\n public ngOnInit(): void {\n this.initializeAccordionState();\n this.listenToAccordionEvents();\n }\n\n /** Initializes the accordion state based on saved settings. */\n private initializeAccordionState(): void {\n const shown =\n this.settings.accordionItems.find(\n (item) => item.name === this.accordionId,\n )?.expanded ?? true;\n\n this.accordion.collapsed = !shown;\n }\n\n /** Listens to accordion shown/hidden events and updates the state. */\n private listenToAccordionEvents(): void {\n this.accordion.shown\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.saveAccordionState(true));\n\n this.accordion.hidden\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.saveAccordionState(false));\n }\n\n /**\n * Saves the accordion state to local configuration.\n *\n * @param isShown Indicates whether the accordion is shown or hidden.\n */\n private saveAccordionState(isShown: boolean): void {\n const item = this.settings.accordionItems.find(\n (item) => item.name === this.accordionId,\n );\n\n if (item) {\n item.expanded = isShown;\n } else {\n this.settings.accordionItems.push({\n name: this.accordionId,\n expanded: isShown,\n });\n }\n\n this.localConfigService.setConfig(AccordionStateSettings, this.settings);\n }\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport interface AccordionItem {\n name: string;\n expanded: boolean;\n}\n\nexport class AccordionStateSettings implements BaseSettings {\n public readonly name = 'AccordionStateSettings';\n version: number;\n accordionItems: AccordionItem[];\n\n getDefault(): AccordionStateSettings {\n return {\n version: 1,\n accordionItems: [],\n } as AccordionStateSettings;\n }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n Input,\n Output,\n OnInit,\n HostListener,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\nimport { Position, IPosition } from './position';\nimport { HelperBlock } from './helper-block';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[ngDraggable]',\n exportAs: 'ngDraggable',\n standalone: false,\n})\nexport class AngularDraggableDirective\n implements OnInit, OnDestroy, OnChanges, AfterViewInit\n{\n private allowDrag = true;\n private moving = false;\n private orignal: Position = null;\n private oldTrans = new Position(0, 0);\n private tempTrans = new Position(0, 0);\n private currTrans = new Position(0, 0);\n private oldZIndex = '';\n private _zIndex = '';\n private needTransform = false;\n\n private draggingSub: Subscription = null;\n\n /**\n * Bugfix: iFrames, and context unrelated elements block all events, and are unusable\n * https://github.com/xieziyu/angular2-draggable/issues/84\n */\n private _helperBlock: HelperBlock = null;\n\n @Output() started = new EventEmitter();\n @Output() stopped = new EventEmitter();\n @Output() edge = new EventEmitter();\n\n /** Make the handle HTMLElement draggable */\n @Input() handle: HTMLElement;\n\n /** Set the bounds HTMLElement */\n @Input() bounds: HTMLElement;\n\n /** List of allowed out of bounds edges. */\n @Input() outOfBounds = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n /** Round the position to nearest grid */\n @Input() gridSize = 1;\n\n /** Set z-index when dragging */\n @Input() zIndexMoving: string;\n\n /** Set z-index when not dragging */\n @Input() set zIndex(setting: string) {\n this.renderer.setStyle(this.el.nativeElement, 'z-index', setting);\n this._zIndex = setting;\n }\n /** Whether to limit the element stay in the bounds */\n @Input() inBounds = false;\n\n /** Whether the element should use it's previous drag position on a new drag event. */\n @Input() trackPosition = true;\n\n /** Input css scale transform of element so translations are correct */\n @Input() scale = 1;\n\n /** Whether to prevent default event */\n @Input() preventDefaultEvent = false;\n\n /** Set initial position by offsets */\n @Input() position: IPosition = { x: 0, y: 0 };\n\n /** Lock axis: 'x' or 'y' */\n @Input() lockAxis: string = null;\n\n /** Emit position offsets when moving */\n @Output() movingOffset = new EventEmitter();\n\n /** Emit position offsets when put back */\n @Output() endOffset = new EventEmitter();\n\n @Input()\n set ngDraggable(setting: any) {\n if (setting !== undefined && setting !== null && setting !== '') {\n this.allowDrag = !!setting;\n\n const element = this.getDragEl();\n\n if (this.allowDrag) {\n this.renderer.addClass(element, 'ng-draggable');\n } else {\n this.putBack();\n this.renderer.removeClass(element, 'ng-draggable');\n }\n }\n }\n\n private el: ElementRef;\n constructor(\n private elRef: ElementRef,\n private renderer: Renderer2,\n private infoPopupService: InfoPopupService,\n private zone: NgZone,\n ) {}\n\n ngOnInit() {\n this.el = new ElementRef(this.elRef.nativeElement.parentNode.parentNode);\n this._helperBlock = new HelperBlock(this.el.nativeElement, this.renderer);\n\n if (this.allowDrag) {\n const element = this.getDragEl();\n this.renderer.addClass(element, 'ng-draggable');\n }\n this.resetPosition();\n }\n\n ngOnDestroy() {\n this.bounds = null;\n this.handle = null;\n this.orignal = null;\n this.oldTrans = null;\n this.tempTrans = null;\n this.currTrans = null;\n this._helperBlock.dispose();\n this._helperBlock = null;\n\n if (this.draggingSub) {\n this.draggingSub.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['position'] && !changes['position'].isFirstChange()) {\n const p = changes['position'].currentValue;\n\n if (!this.moving) {\n if (Position.isIPosition(p)) {\n this.oldTrans.set(p);\n } else {\n this.oldTrans.reset();\n }\n\n this.transform();\n } else {\n this.needTransform = true;\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.inBounds) {\n this.boundsCheck();\n this.oldTrans.add(this.tempTrans);\n this.tempTrans.reset();\n }\n }\n\n private getDragEl() {\n return this.handle ? this.handle : this.el.nativeElement;\n }\n\n resetPosition() {\n if (Position.isIPosition(this.position)) {\n this.oldTrans.set(this.position);\n } else {\n this.oldTrans.reset();\n }\n this.tempTrans.reset();\n this.transform();\n }\n\n private moveTo(p: Position) {\n if (this.orignal) {\n p.subtract(this.orignal);\n this.tempTrans.set(p);\n this.tempTrans.divide(this.scale);\n this.transform();\n\n if (this.bounds) {\n this.edge.emit(this.boundsCheck());\n }\n\n this.movingOffset.emit(this.currTrans.value);\n }\n }\n\n private transform() {\n let translateX = this.tempTrans.x + this.oldTrans.x;\n let translateY = this.tempTrans.y + this.oldTrans.y;\n\n if (this.lockAxis === 'x') {\n translateX = this.oldTrans.x;\n this.tempTrans.x = 0;\n } else if (this.lockAxis === 'y') {\n translateY = this.oldTrans.y;\n this.tempTrans.y = 0;\n }\n\n // Snap to grid: by grid size\n if (this.gridSize > 1) {\n translateX = Math.round(translateX / this.gridSize) * this.gridSize;\n translateY = Math.round(translateY / this.gridSize) * this.gridSize;\n }\n\n this.renderer.setStyle(\n this.el.nativeElement,\n 'top',\n `${Math.round(translateY)}px`,\n );\n this.renderer.setStyle(\n this.el.nativeElement,\n 'left',\n `${Math.round(translateX)}px`,\n );\n\n // save current position\n this.currTrans.x = translateX;\n this.currTrans.y = translateY;\n }\n\n private pickUp() {\n // get old z-index:\n this.oldZIndex = this.el.nativeElement.style.zIndex\n ? this.el.nativeElement.style.zIndex\n : '';\n\n if (window) {\n this.oldZIndex = window\n .getComputedStyle(this.el.nativeElement, null)\n .getPropertyValue('z-index');\n }\n\n if (this.zIndexMoving) {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'z-index',\n this.zIndexMoving,\n );\n }\n\n if (!this.moving) {\n this.started.emit(this.el.nativeElement);\n this.moving = true;\n\n const element = this.getDragEl();\n this.renderer.addClass(element, 'ng-dragging');\n\n /**\n * Fix performance issue:\n * https://github.com/xieziyu/angular2-draggable/issues/112\n */\n this.subscribeEvents();\n }\n }\n\n private subscribeEvents() {\n this.zone.runOutsideAngular(() => {\n this.draggingSub = fromEvent(document, 'mousemove', {\n passive: false,\n }).subscribe((event) => this.onMouseMove(event as MouseEvent));\n this.draggingSub.add(\n fromEvent(document, 'touchmove', { passive: false }).subscribe(\n (event) => this.onMouseMove(event as TouchEvent),\n ),\n );\n this.draggingSub.add(\n fromEvent(document, 'mouseup', { passive: false }).subscribe(() =>\n this.putBack(),\n ),\n );\n });\n // checking if browser is IE or Edge - https://github.com/xieziyu/angular2-draggable/issues/153\n const isIEOrEdge = /msie\\s|trident\\//i.test(window.navigator.userAgent);\n if (!isIEOrEdge) {\n this.draggingSub.add(\n fromEvent(document, 'mouseleave', { passive: false }).subscribe(() =>\n this.putBack(),\n ),\n );\n }\n this.draggingSub.add(\n fromEvent(document, 'touchend', { passive: false }).subscribe(() =>\n this.putBack(),\n ),\n );\n this.draggingSub.add(\n fromEvent(document, 'touchcancel', { passive: false }).subscribe(() =>\n this.putBack(),\n ),\n );\n }\n\n private unsubscribeEvents() {\n this.draggingSub.unsubscribe();\n this.draggingSub = null;\n }\n\n boundsCheck() {\n if (this.bounds) {\n const boundary = this.bounds.getBoundingClientRect();\n const elem = this.el.nativeElement.getBoundingClientRect();\n const result = {\n top: this.outOfBounds.top ? true : boundary.top < elem.top,\n right: this.outOfBounds.right ? true : boundary.right > elem.right,\n bottom: this.outOfBounds.bottom ? true : boundary.bottom > elem.bottom,\n left: this.outOfBounds.left ? true : boundary.left < elem.left,\n };\n\n if (this.inBounds) {\n if (!result.top) {\n this.tempTrans.y -= (elem.top - boundary.top) / this.scale;\n }\n\n if (!result.bottom) {\n this.tempTrans.y -= (elem.bottom - boundary.bottom) / this.scale;\n }\n\n if (!result.right) {\n this.tempTrans.x -= (elem.right - boundary.right) / this.scale;\n }\n\n if (!result.left) {\n this.tempTrans.x -= (elem.left - boundary.left) / this.scale;\n }\n\n this.transform();\n }\n\n return result;\n }\n }\n\n /** Get current offset */\n getCurrentOffset() {\n return this.currTrans.value;\n }\n\n private putBack() {\n if (this._zIndex) {\n this.renderer.setStyle(this.el.nativeElement, 'z-index', this._zIndex);\n } else if (this.zIndexMoving) {\n if (this.oldZIndex) {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'z-index',\n this.oldZIndex,\n );\n } else {\n this.el.nativeElement.style.removeProperty('z-index');\n }\n }\n\n if (this.moving) {\n this.stopped.emit(this.el.nativeElement);\n\n // Remove the helper div:\n this._helperBlock.remove();\n\n if (this.needTransform) {\n if (Position.isIPosition(this.position)) {\n this.oldTrans.set(this.position);\n } else {\n this.oldTrans.reset();\n }\n\n this.transform();\n this.needTransform = false;\n }\n\n if (this.bounds) {\n this.edge.emit(this.boundsCheck());\n }\n\n this.moving = false;\n this.endOffset.emit(this.currTrans.value);\n\n if (this.trackPosition) {\n this.oldTrans.add(this.tempTrans);\n }\n\n this.tempTrans.reset();\n\n if (!this.trackPosition) {\n this.transform();\n }\n\n const element = this.getDragEl();\n this.renderer.removeClass(element, 'ng-dragging');\n\n /**\n * Fix performance issue:\n * https://github.com/xieziyu/angular2-draggable/issues/112\n */\n this.unsubscribeEvents();\n }\n }\n\n checkHandleTarget(target: EventTarget, element: Element) {\n // Checks if the target is the element clicked, then checks each child element of element as well\n // Ignores button clicks\n\n // Ignore elements of type button\n if (element.tagName === 'BUTTON') {\n return false;\n }\n\n // If the target was found, return true (handle was found)\n if (element === target) {\n return true;\n }\n\n // Recursively iterate this elements children\n for (const child in element.children) {\n if (Object.prototype.hasOwnProperty.call(element.children, child)) {\n if (this.checkHandleTarget(target, element.children[child])) {\n return true;\n }\n }\n }\n\n // Handle was not found in this lineage\n // Note: return false is ignore unless it is the parent element\n return false;\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMouseDown(event: MouseEvent | TouchEvent) {\n // 1. skip right click;\n if (event instanceof MouseEvent && event.button === 2) {\n return;\n }\n\n const targetElement: any = event.target;\n if (\n !targetElement.classList.contains('modal-header') &&\n !targetElement.classList.contains('modal-title')\n ) {\n return;\n }\n\n // 2. if handle is set, the element can only be moved by handle\n const target = event.target || event.srcElement;\n if (\n this.handle !== undefined &&\n !this.checkHandleTarget(target, this.handle)\n ) {\n return;\n }\n\n // 3. if allow drag is set to false, ignore the mousedown\n if (this.allowDrag === false) {\n return;\n }\n\n if (this.preventDefaultEvent) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n this.orignal = Position.fromEvent(event, this.getDragEl());\n this.pickUp();\n }\n\n onMouseMove(event: MouseEvent | TouchEvent) {\n if (this.moving && this.allowDrag) {\n if (this.preventDefaultEvent) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n // Add a transparent helper div:\n this._helperBlock.add();\n this.moveTo(Position.fromEvent(event, this.getDragEl()));\n this.infoPopupService.forceUpdate();\n }\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport class HelperBlock {\n protected _helper: Element;\n private _added = false;\n\n constructor(\n protected parent: Element,\n protected renderer: Renderer2,\n ) {\n // generate helper div\n const helper = renderer.createElement('div');\n renderer.setStyle(helper, 'position', 'absolute');\n renderer.setStyle(helper, 'width', '100%');\n renderer.setStyle(helper, 'height', '100%');\n renderer.setStyle(helper, 'background-color', 'transparent');\n renderer.setStyle(helper, 'top', '0');\n renderer.setStyle(helper, 'left', '0');\n\n // done\n this._helper = helper;\n }\n\n add() {\n // append div to parent\n if (this.parent && !this._added) {\n this.parent.appendChild(this._helper);\n this._added = true;\n }\n }\n\n remove() {\n if (this.parent && this._added) {\n this.parent.removeChild(this._helper);\n this._added = false;\n }\n }\n\n dispose() {\n this._helper = null;\n this._added = false;\n }\n\n get el() {\n return this._helper;\n }\n}\n","export interface IPosition {\n x: number;\n y: number;\n}\n\nexport class Position implements IPosition {\n constructor(\n public x: number,\n public y: number,\n ) {}\n\n static fromEvent(e: MouseEvent | TouchEvent, el: any = null) {\n /**\n * Fix issue: Resize doesn't work on Windows10 IE11 (and on some windows 7 IE11)\n * https://github.com/xieziyu/angular2-draggable/issues/164\n * e instanceof MouseEvent check returns false on IE11\n */\n if (this.isMouseEvent(e)) {\n return new Position(e.clientX, e.clientY);\n } else {\n if (el === null || e.changedTouches.length === 1) {\n return new Position(\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY,\n );\n }\n\n /**\n * Fix issue: Multiple phone draggables at the same time\n * https://github.com/xieziyu/angular2-draggable/issues/128\n */\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < e.changedTouches.length; i++) {\n if (e.changedTouches[i].target === el) {\n return new Position(\n e.changedTouches[i].clientX,\n e.changedTouches[i].clientY,\n );\n }\n }\n }\n }\n\n static isMouseEvent(e: MouseEvent | TouchEvent): e is MouseEvent {\n return Object.prototype.toString.apply(e).indexOf('MouseEvent') === 8;\n }\n\n static isIPosition(obj): obj is IPosition {\n return !!obj && 'x' in obj && 'y' in obj;\n }\n\n static getCurrent(el: Element) {\n const pos = new Position(0, 0);\n\n if (window) {\n const computed = window.getComputedStyle(el);\n if (computed) {\n const x = parseInt(computed.getPropertyValue('left'), 10);\n const y = parseInt(computed.getPropertyValue('top'), 10);\n pos.x = isNaN(x) ? 0 : x;\n pos.y = isNaN(y) ? 0 : y;\n }\n return pos;\n } else {\n console.error('Not Supported!');\n return null;\n }\n }\n\n static copy(p: IPosition) {\n return new Position(0, 0).set(p);\n }\n\n get value(): IPosition {\n return { x: this.x, y: this.y };\n }\n\n add(p: IPosition) {\n this.x += p.x;\n this.y += p.y;\n return this;\n }\n\n subtract(p: IPosition) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n }\n\n multiply(n: number) {\n this.x *= n;\n this.y *= n;\n }\n\n divide(n: number) {\n this.x /= n;\n this.y /= n;\n }\n\n reset() {\n this.x = 0;\n this.y = 0;\n return this;\n }\n\n set(p: IPosition) {\n this.x = p.x;\n this.y = p.y;\n return this;\n }\n}\n","import {\n Directive,\n Input,\n ElementRef,\n AfterViewInit,\n booleanAttribute,\n} from '@angular/core';\n\n@Directive({\n selector: '[tmtAutofocus]',\n standalone: false,\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input({ transform: booleanAttribute, alias: 'tmtAutofocus' })\n public autoFocus: boolean;\n\n constructor(private el: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.autoFocus) {\n setTimeout(() => {\n this.el.nativeElement.focus();\n }, 25);\n }\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[wpButtonSpinner]',\n standalone: false,\n})\nexport class ButtonSpinnerDirective implements AfterViewInit {\n private _isBusy = false;\n private _isDisabled = false;\n private _text = '';\n\n @Input()\n set isBusy(isBusy: boolean) {\n this._isBusy = isBusy;\n this.update();\n }\n\n get isBusy(): boolean {\n return this._isBusy;\n }\n\n @Input()\n set isDisabled(isDisabled: boolean) {\n this._isDisabled = isDisabled;\n this.updateDisabled();\n }\n\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef,\n ) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this._text = this.el.nativeElement.innerHTML;\n this.update();\n });\n }\n\n private update(): void {\n if (!this._text) {\n return;\n }\n let text = '';\n\n if (this.isBusy) {\n text = ' ';\n }\n\n text += this._text;\n this.renderer.setProperty(this.el.nativeElement, 'innerHTML', text);\n\n if (!this.isDisabled) {\n if (this.isBusy) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'true');\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n }\n }\n\n private updateDisabled(): void {\n if (this.isDisabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'true');\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Injectable,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n SimpleChanges,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: '[clickOutside]',\n standalone: false,\n})\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\n @Input() clickOutsideEnabled = true;\n\n @Input() attachOutsideOnClick = false;\n @Input() delayClickOutsideInit = false;\n @Input() delayClickOutsideEmit = false;\n @Input() emitOnBlur = false;\n\n @Input() exclude = '';\n @Input() excludeBeforeClick = false;\n\n @Input() clickOutsideEvents = '';\n\n @Output() clickOutside: EventEmitter = new EventEmitter();\n\n private _nodesExcluded: Array = [];\n private _events: Array = ['click'];\n\n constructor(\n private _el: ElementRef,\n private _ngZone: NgZone,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private platformId: Object,\n ) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n }\n\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n this._init();\n }\n\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (\n changes['attachOutsideOnClick'] ||\n changes['exclude'] ||\n changes['emitOnBlur']\n ) {\n this._init();\n }\n }\n\n private _init() {\n if (this.clickOutsideEvents !== '') {\n this._events = this.clickOutsideEvents.split(',').map((e) => e.trim());\n }\n\n this._excludeCheck();\n\n if (this.attachOutsideOnClick) {\n this._initAttachOutsideOnClickListener();\n } else {\n this._initOnClickBody();\n }\n\n if (this.emitOnBlur) {\n this._initWindowBlurListener();\n }\n }\n\n private _initOnClickBody() {\n if (this.delayClickOutsideInit) {\n setTimeout(this._initClickOutsideListener.bind(this));\n } else {\n this._initClickOutsideListener();\n }\n }\n\n private _excludeCheck() {\n if (this.exclude) {\n try {\n const nodes = Array.from(\n document.querySelectorAll(this.exclude),\n ) as Array;\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n } catch (err) {\n console.error(\n '[ng-click-outside] Check your exclude selector syntax.',\n err,\n );\n }\n }\n }\n\n private _onClickBody(ev: Event) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n\n if (this.excludeBeforeClick) {\n this._excludeCheck();\n }\n\n if (\n document.body.contains(ev.target) &&\n !this._el.nativeElement.contains(ev.target) &&\n !this._shouldExclude(ev.target)\n ) {\n if (this.delayClickOutsideEmit) {\n this._ngZone.runOutsideAngular(() =>\n setTimeout(() => this._emit(ev), 100),\n );\n } else {\n this._emit(ev);\n }\n\n if (this.attachOutsideOnClick) {\n this._removeClickOutsideListener();\n }\n }\n }\n\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n private _onWindowBlur(ev: Event) {\n setTimeout(() => {\n if (!document.hidden) {\n this._emit(ev);\n }\n });\n }\n\n private _emit(ev: Event) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n\n this._ngZone.run(() => this.clickOutside.emit(ev));\n }\n\n private _shouldExclude(target): boolean {\n for (const excludedNode of this._nodesExcluded) {\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _initClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n document.body.addEventListener(e, this._onClickBody),\n );\n });\n }\n\n private _removeClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n document.body.removeEventListener(e, this._onClickBody),\n );\n });\n }\n\n private _initAttachOutsideOnClickListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n this._el.nativeElement.addEventListener(e, this._initOnClickBody),\n );\n });\n }\n\n private _removeAttachOutsideOnClickListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach((e) =>\n this._el.nativeElement.removeEventListener(e, this._initOnClickBody),\n );\n });\n }\n\n private _initWindowBlurListener() {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('blur', this._onWindowBlur);\n });\n }\n\n private _removeWindowBlurListener() {\n this._ngZone.runOutsideAngular(() => {\n window.removeEventListener('blur', this._onWindowBlur);\n });\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LogService } from 'src/app/core/log.service';\nimport { DocModalComponent } from 'src/app/shared/components/controls/doc-modal/doc-modal.component';\n\n@Directive({\n selector: '[tmtDocsArticle]',\n standalone: false,\n})\nexport class DocsArticleDirective {\n @Input() tmtDocsArticle: string;\n\n @HostListener('click', ['$event']) onClick($event) {\n this.open();\n }\n constructor(\n private modalService: NgbModal,\n private log: LogService,\n ) {}\n\n open() {\n this.log.debug('Open docs article: ' + this.tmtDocsArticle);\n const modalRef = this.modalService.open(DocModalComponent, {\n size: 'xl',\n modalDialogClass: 'full-height',\n backdrop: true,\n animation: false,\n });\n modalRef.componentInstance.route = this.tmtDocsArticle;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport _ from 'lodash';\nimport {\n Observable,\n Subject,\n concatMap,\n debounceTime,\n delay,\n filter,\n first,\n forkJoin,\n fromEvent,\n merge,\n of,\n pairwise,\n startWith,\n switchMap,\n takeUntil,\n tap,\n timer,\n} from 'rxjs';\n\nimport { ChromeService } from 'src/app/core/chrome.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { Position } from 'src/app/shared/models/inner/position.model';\nimport {\n DragEvent as DragDropEvent,\n DragContext,\n LocalDragDropService,\n} from 'src/app/shared/services/drag-drop';\nimport {\n DetectedItem,\n DirectionX,\n DirectionY,\n DragAndDropData,\n DragAndDropOptions,\n} from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\n\n@Directive({\n selector: '[tmtDragAndDrop]',\n standalone: true,\n})\nexport class DragAndDropDirective implements AfterViewInit, OnDestroy {\n /* List for drag and drop. */\n @Input('tmtDragAndDrop') items: any[] = [];\n /* Options with d&d areas info. */\n @Input('tmtDragAndDropOptions') options: DragAndDropOptions;\n /* Indicates whether to disable DnD. */\n @Input('dragDisabled') dragDisabled: boolean;\n /* Indicates whether to disable Drop. */\n @Input('dropDisabled') dropDisabled: boolean;\n\n private isCloneOver = false;\n private animating: boolean;\n private readonly animating$ = new Subject();\n private readonly animateTime = 0.3;\n private readonly placeholderClass = 'dnd-placeholder';\n private readonly cloneClass = 'dnd-clone';\n private readonly escapeObservable$ = fromEvent(this.document, 'keydown').pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n tap(() => {\n if (this.dragData) {\n this.dragData.toGroupName = null;\n }\n }),\n );\n private readonly destroyRef = inject(DestroyRef);\n\n private get draggableElements(): HTMLElement[] {\n return Array.from(\n this.elementRef.nativeElement.querySelectorAll(\n `.${this.options.draggableClass}`,\n ),\n );\n }\n\n private get dragData(): DragAndDropData | null {\n return this.dragDropService.data;\n }\n private set dragData(data: DragAndDropData | null) {\n this.dragDropService.data = data;\n }\n\n constructor(\n private dragDropService: LocalDragDropService,\n private chromeService: ChromeService,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n public ngAfterViewInit(): void {\n this.options.sortable = this.options.sortable ?? true;\n\n this.initStyles();\n this.initSubscribers();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'data-group-name',\n this.options.group.name,\n );\n }\n\n public ngOnDestroy(): void {\n if (\n this.dragData?.clone.element &&\n this.dragData?.fromGroupName === this.options.group.name\n ) {\n this.renderer.removeChild(this.document, this.dragData.clone.element);\n }\n }\n\n /**\n * Makes dragging element clone element and init it.\n *\n * @param node element for making clone.\n */\n public makeClone(\n node: any,\n className: string = this.cloneClass,\n ): HTMLElement {\n const elRect = (node as HTMLElement).getBoundingClientRect();\n const clone = node.cloneNode(true);\n\n this.renderer.setStyle(clone, 'position', 'fixed');\n this.renderer.setStyle(clone, 'left', `${elRect.left}px`);\n this.renderer.setStyle(clone, 'top', `${elRect.top}px`);\n this.renderer.setStyle(clone, 'z-index', '9999');\n this.renderer.setStyle(clone, 'width', `${node.offsetWidth}px`);\n this.renderer.setStyle(clone, 'height', `${node.offsetHeight}px`);\n this.renderer.setStyle(clone, 'margin', '0');\n this.renderer.setStyle(clone, 'padding', '0');\n this.renderer.setStyle(clone, 'opacity', 1);\n this.renderer.setStyle(clone, 'transition', 'none');\n this.renderer.setStyle(clone, 'pointer-events', 'none');\n\n if (className) {\n this.renderer.addClass(clone, className);\n }\n\n this.renderer.appendChild(this.document.body, clone);\n\n return clone;\n }\n\n /**\n * Removes element from DOM and array. Also runs list transform.\n *\n * @param element HTMLElement.\n * @param index index in array.\n * @returns Transform animation observable.\n */\n public destroyElement(\n element: HTMLElement,\n index: number,\n ): Observable {\n this.renderer.removeChild(this.elementRef.nativeElement, element);\n this.cdr.detectChanges();\n this.items.splice(index, 1);\n\n return this.runTransformAnimation(index, {\n translate: this.options.listDirection === 'vertical' ? 'y' : 'x',\n withoutTransition: true,\n }).pipe(takeUntilDestroyed(this.destroyRef));\n }\n\n /** Creates placeholder. This is needed to change height of column. */\n public makePlaceholder(): void {\n const placeholder = this.makeClone(\n this.dragData.clone.element,\n 'dnd-placeholder',\n );\n this.renderer.removeClass(placeholder, this.options.draggableClass);\n this.renderer.removeStyle(placeholder, 'position');\n this.renderer.setStyle(placeholder, 'opacity', 0);\n this.renderer.appendChild(this.elementRef.nativeElement, placeholder);\n }\n\n /** Sets the `transition` style for all draggable elements. */\n public initStyles(): void {\n this.draggableElements.forEach((el) => {\n this.renderer.setStyle(\n el,\n 'transition',\n `transform ${this.animateTime}s`,\n );\n });\n }\n\n /* Makes operations when dragging starts. Sets service initial data. */\n private onDragStart(element: HTMLElement, event: PointerEvent): void {\n let index = this.draggableElements.findIndex(\n (el) => el === element.closest(`.${this.options.draggableClass}`),\n );\n index = index === -1 ? 0 : index;\n\n const containerRect = this.elementRef.nativeElement.getBoundingClientRect();\n const rect = element.getBoundingClientRect();\n const dragContext: DragContext = {\n leftOffset: event.clientX - rect.left,\n topOffset: event.clientY - rect.top,\n };\n\n this.dragData = {\n item: this.items[index],\n oldIndex: index,\n fromGroupName: this.options.group.name,\n fromGroupKey: this.options.group.key,\n toGroupName: this.options.group.name,\n clone: {\n element: this.makeClone(element),\n lastDragX: 0,\n lastDragY: 0,\n offsetX: dragContext.leftOffset,\n offsetY: dragContext.topOffset,\n oldPosition: {\n x: rect.x - containerRect.left,\n y: rect.y - containerRect.top,\n },\n },\n };\n\n this.destroyElement(element, index).subscribe(() => {\n this.cdr.detectChanges();\n });\n\n this.renderer.setStyle(\n this.document.body,\n 'cursor',\n 'grabbing',\n RendererStyleFlags2.Important,\n );\n this.renderer.setStyle(\n this.document.body,\n 'user-select',\n 'none',\n RendererStyleFlags2.Important,\n );\n\n this.clearSelection();\n\n this.dragDropService.setOnStart();\n this.dragDropService\n .drag(event, dragContext, {\n container: this.document.querySelector(\n `#${Constants.defaultRootContainerId}`,\n ),\n target: this.dragData.clone.element,\n takeUntil: takeUntil(this.escapeObservable$),\n })\n .pipe(\n startWith({\n x: event.x - dragContext.leftOffset,\n y: event.y - dragContext.topOffset,\n diffY: 0,\n diffX: 0,\n }),\n filter(() => !!this.dragData),\n )\n .pipe(\n takeUntil(this.escapeObservable$),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this.moveClone(event);\n const toGroupName = this.getDestinationGroup();\n\n if (toGroupName !== this.dragData.toGroupName) {\n this.dragData.newIndex = undefined;\n }\n\n this.dragData.toGroupName = toGroupName;\n this.dragDropService.setOnDragOver(toGroupName);\n });\n\n merge(this.dragDropService.dragEnd$, this.escapeObservable$)\n .pipe(first(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.renderer.removeStyle(this.document.body, 'cursor');\n this.renderer.removeStyle(this.document.body, 'user-select');\n\n if (this.dragData?.toGroupName) {\n this.dragDropService.setOnDrop();\n } else {\n this.dragDropService.setOnEnd();\n }\n });\n\n this.chromeService.scroll$\n .pipe(\n takeUntil(\n merge(this.dragDropService.dragEnd$, this.dragDropService.onEnd$),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n const toGroupName = this.getDestinationGroup();\n\n if (toGroupName !== this.dragData.toGroupName) {\n this.dragData.newIndex = undefined;\n }\n\n this.dragData.toGroupName = toGroupName;\n this.dragDropService.setOnDragOver(toGroupName);\n });\n }\n\n /* Makes operations when dragging element is over droppable area. */\n private onDragOver(): void {\n const { crossed, closest } = this.getClosestElement(\n this.dragData?.clone.element,\n this.draggableElements,\n this.options.listDirection === 'vertical' ? 'y' : 'x',\n );\n\n if (\n !this.elementRef.nativeElement.querySelector(`.${this.placeholderClass}`)\n ) {\n this.makePlaceholder();\n }\n\n if (!crossed.element) {\n if (!this.items.length) {\n this.dragData.newIndex = 0;\n return;\n }\n\n if (\n this.items.length - 1 === closest.index &&\n !this.draggableElements[this.items.length - 1].style.transform\n ) {\n this.dragData.newIndex = closest.index + 1;\n return;\n }\n\n return;\n }\n\n const directionValidations: Record = {\n before:\n this.options.listDirection === 'vertical' ? 'to bottom' : 'to right',\n after: this.options.listDirection === 'vertical' ? 'to top' : 'to left',\n };\n\n // TODO: not correct\n if (this.animating && !this.isCloneOver) {\n return;\n }\n\n if (\n crossed.breakpoint === 'before' &&\n (this.dragData.clone.movementDirection.includes(\n directionValidations['before'],\n ) ||\n !this.isCloneOver)\n ) {\n const index = crossed.index + (this.isCloneOver ? 1 : 0);\n this.dragData.newIndex = index;\n\n forkJoin([\n this.restoreTransform(0, index, true),\n this.runTransformAnimation(index, {\n translate: this.options.listDirection === 'vertical' ? 'y' : 'x',\n keepTransform: true,\n }),\n ])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isCloneOver = true;\n });\n }\n\n if (\n crossed.breakpoint === 'after' &&\n (this.dragData.clone.movementDirection.includes(\n directionValidations['after'],\n ) ||\n !this.isCloneOver)\n ) {\n this.dragData.newIndex = crossed.index;\n\n this.runTransformAnimation(crossed.index, {\n translate: this.options.listDirection === 'vertical' ? 'y' : 'x',\n keepTransform: true,\n })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isCloneOver = true;\n });\n }\n }\n\n /* Makes operations after element dropped. Not calling when event happens out of droppable area. */\n private onDrop(): void {\n if (\n this.dragData?.newIndex === undefined ||\n !this.options.group.put.includes(this.dragData?.fromGroupName) ||\n this.dropDisabled\n ) {\n this.dragDropService.setOnEnd();\n return;\n }\n\n forkJoin([\n this.runTransformAnimation(\n this.dragData.newIndex ?? this.dragData.oldIndex,\n {\n translate: this.options.listDirection === 'vertical' ? 'y' : 'x',\n keepTransform: true,\n },\n ),\n this.runMagnetAnimation('onDrop'),\n ])\n .pipe(\n tap(() => {\n const dragData = _.clone(this.dragData);\n this.removePlaceholders();\n this.updateItems();\n this.removeClone();\n this.dragData = null;\n this.dragDropService.setOnItemUpdate(dragData);\n this.dragDropService.setCompleted();\n }),\n switchMap(() => this.restoreTransform(null, null, false)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.initStyles();\n });\n }\n\n /* Uses for returning element into beginning position after element dropped into not droppable area. */\n private onDragEnd(): void {\n forkJoin([\n this.runTransformAnimation(this.dragData.oldIndex, {\n translate: this.options.listDirection === 'vertical' ? 'y' : 'x',\n keepTransform: true,\n }),\n this.runMagnetAnimation('onEnd'),\n ])\n .pipe(\n tap(() => {\n this.items.splice(this.dragData.oldIndex, 0, this.dragData.item);\n this.cdr.detectChanges();\n this.dragData = null;\n this.removeClone();\n this.dragDropService.setCompleted();\n }),\n switchMap(() => this.restoreTransform(null, null, false)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.initStyles();\n });\n }\n\n /* Moves cloned item on screen. */\n private moveClone(event: DragDropEvent): void {\n let useX = event.x;\n let useY = event.y;\n\n this.dragData.clone.movementDirection = [\n event.y - this.dragData.clone.lastDragY < 0 ? 'to top' : 'to bottom',\n event.x - this.dragData.clone.lastDragX < 0 ? 'to left' : 'to right',\n ];\n\n if (useX === 0 && useY === 0) {\n useX = this.dragData.clone.lastDragX;\n useY = this.dragData.clone.lastDragY;\n }\n\n if (\n useX === this.dragData.clone.lastDragX &&\n useY === this.dragData.clone.lastDragY\n ) {\n return;\n }\n\n this.renderer.setStyle(this.dragData.clone.element, 'left', `${useX}px`);\n this.renderer.setStyle(this.dragData.clone.element, 'top', `${useY}px`);\n\n this.dragData.clone.lastDragX = useX;\n this.dragData.clone.lastDragY = useY;\n }\n\n private getDestinationGroup(): string | null {\n const groupElements = Array.from(\n this.document.querySelectorAll(`[data-group-name]`),\n );\n\n if (!groupElements.length) {\n return null;\n }\n\n const closestGroup = this.getClosestElement(\n this.dragData.clone.element,\n groupElements,\n 'all',\n ).crossed;\n\n return !closestGroup.element\n ? null\n : closestGroup.element.dataset['groupName'];\n }\n\n /**\n * Gets the closest and crossed element from the list.\n *\n * @param target element over list.\n * @param elements list elements.\n * @param byWhat axis along which the coordinates are compared. If option is set to `all`, only the crossed element is returned!\n * @returns items with element, its index and breakpoint.\n */\n private getClosestElement(\n target: HTMLElement,\n elements: HTMLElement[],\n byWhat: 'x' | 'y' | 'all',\n ): {\n crossed: DetectedItem;\n closest: DetectedItem;\n } | null {\n const targetRect = target.getBoundingClientRect();\n const targetCenter: Position = {\n x: targetRect.left + targetRect.width / 2,\n y: targetRect.top + targetRect.height / 2,\n };\n let crossDistance: Position = {\n x: Infinity,\n y: Infinity,\n };\n let crossElement: HTMLElement | null = null;\n let crossIndex: number | null = null;\n let closestDistance: Position = {\n x: Infinity,\n y: Infinity,\n };\n let closestElement: HTMLElement | null = null;\n let closestIndex: number | null = null;\n let breakpoint: 'before' | 'after' | null = null;\n\n elements.forEach((el, index) => {\n const elRect = el.getBoundingClientRect();\n const elCenter: Position = {\n x: elRect.left + elRect.width / 2,\n y: elRect.top + elRect.height / 2,\n };\n const positionDiff: Position = {\n x: Math.abs(elCenter.x - targetCenter.x),\n y: Math.abs(elCenter.y - targetCenter.y),\n };\n\n switch (byWhat) {\n case 'x':\n if (positionDiff.x < closestDistance.x) {\n closestDistance = positionDiff;\n closestElement = el;\n closestIndex = index;\n }\n\n if (\n positionDiff.x < targetRect.width / 2 &&\n positionDiff.x < crossDistance.x\n ) {\n crossDistance = positionDiff;\n crossElement = el;\n crossIndex = index;\n breakpoint = elCenter.x - targetCenter.x > 0 ? 'before' : 'after';\n }\n\n break;\n case 'y':\n if (positionDiff.y < closestDistance.y) {\n closestDistance = positionDiff;\n closestElement = el;\n closestIndex = index;\n }\n\n if (\n positionDiff.y < targetRect.height / 2 &&\n positionDiff.y < crossDistance.y\n ) {\n crossDistance = positionDiff;\n crossElement = el;\n crossIndex = index;\n breakpoint = elCenter.y - targetCenter.y > 0 ? 'before' : 'after';\n }\n\n break;\n case 'all':\n if (\n positionDiff.x < elRect.width / 2 &&\n positionDiff.x <= crossDistance.x &&\n positionDiff.y < elRect.height / 2 &&\n positionDiff.y <= crossDistance.y\n ) {\n crossDistance = positionDiff;\n crossElement = el;\n crossIndex = index;\n }\n\n break;\n }\n });\n\n return {\n crossed: {\n index: crossIndex,\n element: crossElement,\n breakpoint,\n },\n closest: {\n index: closestIndex,\n element: closestElement,\n breakpoint,\n },\n };\n }\n\n /** Updates items after drop. */\n private updateItems(): void {\n if (!this.items) {\n return;\n }\n\n this.items.splice(\n this.dragData.newIndex ?? this.dragData.oldIndex,\n 0,\n this.dragData.item,\n );\n\n this.cdr.detectChanges();\n }\n\n private getDraggable(target: HTMLElement): HTMLElement | null {\n if (target.classList.contains(this.options.draggableClass)) {\n return target;\n }\n\n if (target.parentElement) {\n return this.getDraggable(target.parentElement);\n }\n\n return null;\n }\n\n /**\n * Runs transform animation in the list.\n *\n * @param index Start position in array.\n * @param options Animation options.\n *\n * `translate` - `x` is for translateX property, `y` is for translateY property.\n *\n * `withoutTransition` - instant transform.\n *\n * `keepTransform - indicates to save transform after animation complete.\n *\n * @returns Observable on animation complete.\n */\n private runTransformAnimation(\n index: number,\n options: {\n translate: 'x' | 'y';\n withoutTransition?: boolean;\n keepTransform?: boolean;\n },\n ): Observable {\n const elements = this.draggableElements\n .slice(index)\n .filter((el) => !el.style.transform);\n const { height, width } =\n this.dragData.clone.element.getBoundingClientRect();\n\n if (!elements.length) {\n return of(true);\n }\n\n elements.forEach((el) => {\n if (options.withoutTransition) {\n this.renderer.removeStyle(el, 'transition');\n }\n\n this.renderer.setStyle(\n el,\n 'transform',\n options.translate === 'x'\n ? `translateX(calc(${width}px + ${this.options.listGap}px))`\n : `translateY(calc(${height}px + ${this.options.listGap}px))`,\n );\n });\n\n if (options.withoutTransition) {\n return of(true).pipe(\n delay(0),\n tap(() => {\n this.initStyles();\n }),\n );\n }\n\n this.animating$.next();\n\n return merge(\n fromEvent(elements[0], 'transitionend'),\n timer(this.animateTime * 1000),\n ).pipe(\n first(),\n tap(() => {\n elements.forEach((el) => {\n if (!options.keepTransform) {\n this.renderer.removeStyle(el, 'transform');\n }\n });\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Removes transform property from items of list.\n *\n * @param from Array start index.\n * @param to Array last index.\n * @param animated Indicates whether to save animation.\n * @returns Observable on animation complete.\n */\n public restoreTransform(\n from?: number | null,\n to?: number | null,\n animated?: boolean,\n ): Observable {\n const elements = this.draggableElements\n .slice(from ?? undefined, to ?? undefined)\n .filter((el) => el.style.transform);\n\n if (!elements.length) {\n return of(true);\n }\n\n elements.forEach((el) => {\n if (!animated) {\n this.renderer.removeStyle(el, 'transition');\n }\n\n this.renderer.removeStyle(el, 'transform');\n });\n\n if (animated) {\n this.animating$.next();\n\n return fromEvent(elements[0], 'transitionend').pipe(\n first(),\n takeUntilDestroyed(this.destroyRef),\n );\n } else {\n return of(true).pipe(\n delay(0),\n tap(() => this.initStyles()),\n );\n }\n }\n\n /** Runs the return animation for the clone element. */\n private runMagnetAnimation(type: 'onEnd' | 'onDrop'): Observable {\n const position: Position = {\n x: 0,\n y: 0,\n };\n const elements = this.draggableElements;\n const index = this.dragData.newIndex ?? this.dragData.oldIndex;\n const containerRect = this.elementRef.nativeElement.getBoundingClientRect();\n const targetEl = elements[index - 1];\n const cloneRect = this.dragData.clone.element.getBoundingClientRect();\n\n if (type === 'onEnd') {\n position.y = this.dragData.clone.oldPosition.y + containerRect.top;\n position.x = this.dragData.clone.oldPosition.x + containerRect.left;\n }\n\n if (type === 'onDrop') {\n const paddings = this.getPaddings(this.elementRef.nativeElement);\n position.y = containerRect.y + paddings.top;\n position.x = containerRect.x + paddings.left;\n\n position.y +=\n this.options.listDirection === 'vertical'\n ? this.options.listGap * index\n : 0;\n position.x +=\n this.options.listDirection === 'horizontal'\n ? this.options.listGap * index\n : 0;\n\n if (targetEl) {\n position.y +=\n this.options.listDirection === 'vertical'\n ? elements\n .slice(0, index)\n .reduce(\n (total, el) => total + el.getBoundingClientRect().height,\n 0,\n )\n : 0;\n\n position.x +=\n this.options.listDirection === 'horizontal'\n ? elements\n .slice(0, index)\n .reduce(\n (total, el) => total + el.getBoundingClientRect().width,\n 0,\n )\n : 0;\n }\n }\n\n if (\n cloneRect.x.toFixed(1) === position.x.toFixed(1) &&\n cloneRect.y.toFixed(1) === position.y.toFixed(1)\n ) {\n return of(true);\n }\n\n this.renderer.setStyle(\n this.dragData.clone.element,\n 'transition',\n `all ${this.animateTime}s`,\n );\n this.renderer.setStyle(\n this.dragData.clone.element,\n 'top',\n `calc(${position.y}px)`,\n );\n this.renderer.setStyle(\n this.dragData.clone.element,\n 'left',\n `calc(${position.x}px)`,\n );\n\n return fromEvent(this.dragData.clone.element, 'transitionend').pipe(\n first(),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n private removeClone(): void {\n this.document\n .querySelectorAll(`.${this.cloneClass}`)\n .forEach((clone) => {\n this.renderer.removeChild(this.document.body, clone);\n });\n }\n\n private removePlaceholders(): void {\n this.elementRef.nativeElement\n .querySelectorAll(`.${this.placeholderClass}`)\n .forEach((placeholder) => {\n this.renderer.removeChild(this.document.body, placeholder);\n });\n }\n\n private clearSelection(): void {\n this.document.getSelection().removeAllRanges();\n\n fromEvent(this.document, 'dragstart')\n .pipe(first())\n .subscribe((event) => {\n event.preventDefault();\n });\n }\n\n // TODO: do it better!\n private getPaddings(el: HTMLElement): Record {\n if (!_.isFunction(el.computedStyleMap)) {\n return {\n top: this.options.listGap ?? 0,\n left: this.options.listGap ?? 0,\n bottom: this.options.listGap ?? 0,\n right: this.options.listGap ?? 0,\n };\n }\n\n const styleMap = el.computedStyleMap();\n\n return {\n top: parseInt(styleMap.get('padding-top').toString()),\n left: parseInt(styleMap.get('padding-left').toString()),\n bottom: parseInt(styleMap.get('padding-bottom').toString()),\n right: parseInt(styleMap.get('padding-right').toString()),\n };\n }\n\n private initSubscribers(): void {\n this.animating$\n .pipe(\n tap(() => {\n this.animating = true;\n }),\n debounceTime(this.animateTime * 1000),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.animating = false;\n });\n\n this.dragDropService.onStart$\n .pipe(\n concatMap(() => this.dragDropService.dragEnd$.pipe(first())),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.initStyles();\n });\n\n this.dragDropService.onStart$\n .pipe(\n filter((data) => data.toGroupName !== this.options.group.name),\n concatMap(() =>\n this.escapeObservable$.pipe(\n first(),\n takeUntil(this.dragDropService.dragEnd$.pipe(first())),\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.restoreTransform(null, null, true);\n });\n\n this.dragDropService.onDragOver$\n .pipe(\n pairwise(),\n tap(([prevToGroupName, newToGroupName]) => {\n if (\n this.dragData &&\n prevToGroupName !== newToGroupName &&\n this.options.group.name !== this.dragData.toGroupName\n ) {\n this.removePlaceholders();\n this.restoreTransform(null, null, true);\n this.isCloneOver = false;\n }\n }),\n filter(\n () =>\n this.options.group.name === this.dragData?.toGroupName &&\n this.options.group.put.includes(this.dragData?.fromGroupName),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onDragOver();\n });\n\n this.dragDropService.onDrop$\n .pipe(\n filter((event) => event?.toGroupName === this.options.group.name),\n delay(Constants.mousemoveThrottleTime),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onDrop();\n });\n\n this.dragDropService.onEnd$\n .pipe(\n filter((event) => event?.fromGroupName === this.options.group.name),\n delay(Constants.mousemoveThrottleTime),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onDragEnd();\n });\n\n let startX = 0;\n let startY = 0;\n\n fromEvent(this.elementRef.nativeElement, 'pointerdown')\n .pipe(\n filter((event: PointerEvent) => {\n if (\n this.dragDisabled ||\n this.document.querySelector(`.${this.cloneClass}`) ||\n event.button !== 0 // NOTE: left mouse button\n ) {\n return false;\n }\n\n const draggableElement = this.getDraggable(\n event.target as HTMLElement,\n );\n\n if (draggableElement) {\n startX = event.clientX;\n startY = event.clientY;\n\n return true;\n }\n\n return false;\n }),\n switchMap((startEvent: PointerEvent) =>\n fromEvent(this.document, 'pointermove').pipe(\n tap((moveEvent: PointerEvent) => {\n if (\n Math.abs(moveEvent.clientX - startX) > 5 ||\n Math.abs(moveEvent.clientY - startY) > 5\n ) {\n this.onDragStart(\n this.getDraggable(startEvent.target as HTMLElement),\n startEvent,\n );\n }\n }),\n takeUntil(\n merge(\n fromEvent(this.document, 'pointerup'),\n this.dragDropService.onDragOver$,\n ).pipe(first()),\n ),\n ),\n ),\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n}\n","import { Directive } from '@angular/core';\nimport { FormControlDirective } from '@angular/forms';\n\n/** Standalone version of angular Form control directive for using with directive composition API. */\n//TODO: remove when the native directive become standalone or when ngComponentOutlet will has directives.\n@Directive({ standalone: true })\nexport class StandaloneFormControlDirective extends FormControlDirective {}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n OnDestroy,\n Optional,\n Output,\n EventEmitter,\n OnInit,\n OnChanges,\n SimpleChanges,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\n\nimport {\n asyncScheduler,\n fromEvent,\n merge,\n Observable,\n Subscription,\n Subject,\n firstValueFrom,\n of,\n} from 'rxjs';\nimport {\n auditTime,\n concatMap,\n filter,\n map,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { LogService } from 'src/app/core/log.service';\n\nimport { Constants } from 'src/app/shared/globals/constants';\n\nimport { FreezeTableService } from './freeze-table.service';\nimport {\n FreezeTableSource,\n FreezeTableStrategy,\n} from './freeze-table.interface';\n\n/** Directive for fixation of table elements with scrolling (toolbar, headers, bodies, totals). */\n@Directive({\n selector: '[wpFreezeTable]',\n standalone: false,\n})\nexport class FreezeTableDirective\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n @Input() name: string;\n @Input() syncWith: string[];\n @Input() leftWidthStrategy: FreezeTableStrategy = 'byContainer';\n @Input() rightWidthStrategy: FreezeTableStrategy = 'byTable';\n @Input() inContainerMode: boolean;\n @Input() pending$: Observable | null;\n @Input() disableHorizontalScroller = false;\n /** Uses with dynamic tables rendering. TODO: use just AfterViewInit initialization after full refactoring. */\n @Input() afterViewInitInitialization = false;\n\n private _rootContainerId: string;\n @Input() get rootContainerId(): string {\n return this._rootContainerId ?? this.defaultRootContainerId;\n }\n set rootContainerId(value: string) {\n this._rootContainerId = value;\n }\n\n @Output() scroll = new EventEmitter();\n\n public verticalShadow: boolean;\n\n private destroyed$ = new Subject();\n private scrollSubscription: Subscription;\n\n private tablesCount = 0;\n private defaultRootContainerId = Constants.defaultRootContainerId;\n private hasHorizontalScroll: boolean;\n\n // Audit time for events in milliseconds.\n private auditTime = 15;\n private throttle = throttleTime(this.auditTime, asyncScheduler, {\n leading: true,\n trailing: true,\n });\n\n // Root container for attach of table elements.\n private rootContainer: HTMLElement;\n\n // Virtual scroll container.\n private scrollerContainer: HTMLElement;\n private scroller: HTMLElement;\n\n private toolbar: HTMLElement;\n private scrollTableHeaders: NodeListOf;\n private scrollTableFooters: NodeListOf;\n private scrollTableBodies: NodeListOf;\n\n // Host container.\n private containerElement = this.container.nativeElement as HTMLElement;\n\n private mutationObserverEnabled = true;\n private mutationObserver = new MutationObserver(() => {\n this.log.debug('Freeze table directive. Mutation observer is triggered.');\n this.redraw();\n });\n\n private get scrolledTableIndex(): number {\n return this.scrollTableBodies.length === 1 ? 0 : 1;\n }\n\n constructor(\n private container: ElementRef,\n private renderer: Renderer2,\n private chromeService: ChromeService,\n private log: LogService,\n private zone: NgZone,\n @Optional() private freezeTableService: FreezeTableService,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['disableHorizontalScroller']) {\n this.destroyed$.next();\n this.initializeDirective();\n }\n }\n\n public ngOnInit(): void {\n if (this.afterViewInitInitialization) {\n return;\n }\n this.initializeDirective();\n }\n\n public ngAfterViewInit(): void {\n if (this.afterViewInitInitialization) {\n this.initializeDirective();\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /** Enable MutationObserver. */\n public enableMutationObserver(): void {\n this.mutationObserver.observe(this.container.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n /** Disable MutationObserver. */\n public disableMutationObserver(): void {\n this.mutationObserver.disconnect();\n }\n\n private isNeedFreezeHeader(): boolean {\n const headerRect = this.scrollTableHeaders.item(0).getBoundingClientRect();\n const bodyRect = this.scrollTableBodies.item(0).getBoundingClientRect();\n // eslint-disable-next-line radix\n const bodyPaddingTop = parseInt(\n this.scrollTableBodies.item(0).style.paddingTop,\n );\n const rootRect = this.rootContainer.getBoundingClientRect();\n\n const top = Math.round(rootRect.top);\n const toolbarRect = this.toolbar?.getBoundingClientRect();\n\n if (bodyRect.width === 0 || bodyRect.height === 0) {\n return false;\n }\n\n return (\n Math.round(\n bodyRect.top +\n bodyPaddingTop -\n (headerRect.height + (toolbarRect?.height ?? 0)),\n ) < top\n );\n }\n\n private isNeedFreezeFooter(): boolean {\n const bodyRect = this.scrollTableBodies.item(0).getBoundingClientRect();\n const footerRect = this.scrollTableFooters.item(0).getBoundingClientRect();\n const rootRect = this.rootContainer.getBoundingClientRect();\n const headerRect = this.scrollTableHeaders.item(0).getBoundingClientRect();\n const scrollerHeight = this.scrollerContainer?.offsetHeight ?? 0;\n\n // Шапка таблицы проскроленная ниже видимой области.\n if (headerRect.bottom >= rootRect.bottom) {\n return false;\n }\n\n return (\n Math.round(bodyRect.bottom + footerRect.height + scrollerHeight) >\n Math.round(rootRect.bottom)\n );\n }\n\n private updatePositions() {\n if (!this.rootContainer) {\n return;\n }\n\n const container = this.containerElement;\n const containerRect = container.getBoundingClientRect();\n const rootRect = this.rootContainer.getBoundingClientRect();\n const toolbarRect = this.toolbar?.getBoundingClientRect();\n const leftBodyRect: DOMRect = this.scrollTableBodies\n .item(0)\n .getBoundingClientRect();\n const scrollerHeight = this.scrollerContainer?.offsetHeight ?? 0;\n\n const leftHeaderRect = this.scrollTableHeaders\n .item(0)\n .getBoundingClientRect();\n const leftFooterRect = this.scrollTableFooters\n .item(0)\n .getBoundingClientRect();\n\n // Ширина левой таблицы. Для таблиц без фиксации по горизонтали (1 левая часть) в компоненте должен быть\n // зафиксирован контейнер (например, грид ограничен по ширине). Для таблиц с фиксацией требуется установка ширина фиксируемой таблицы.\n const leftTable = this.scrollTableBodies.item(0).firstChild as HTMLElement;\n const leftTableWidth = leftTable.getBoundingClientRect().width;\n const leftContainerWidth =\n this.leftWidthStrategy === 'byTable'\n ? Math.min(leftTable.getBoundingClientRect().width, containerRect.width)\n : containerRect.width;\n\n this.freezeTableService?.leftTableWidth$.next(leftContainerWidth);\n\n if (leftContainerWidth === 0) {\n return;\n }\n\n const rightTableWidth =\n this.scrollTableBodies.length === 2\n ? (\n this.scrollTableBodies.item(1).firstChild as HTMLElement\n )?.getBoundingClientRect().width\n : 0;\n\n // Высота общего фиксируемого заголовка (тулбар + высота заголовка талицы);\n const headerBlockHeight =\n leftHeaderRect.height + (toolbarRect?.height ?? 0);\n\n // Горизонтальный скролл есть, если ширина двух таблиц больше ширины контейнера (-1 - поскольку в нахлест).\n const hasHorizontalScroll =\n containerRect.width < leftTableWidth + rightTableWidth - 1;\n\n // Правый контейнер = ширина равна контенту (таблице), если нет скролла (т.е. по ширине не превышает контейнер) или таковое требуется,\n // иначе ширина = ширине контейнера за вычетом ширины левой таблицы, т.е. надо заполнить все пространство контейнера по ширине.\n const rightContainerWidth =\n hasHorizontalScroll || this.rightWidthStrategy === 'byContainer'\n ? containerRect.width - leftTableWidth\n : rightTableWidth;\n\n const freezeHeader = this.isNeedFreezeHeader();\n const freezeFooter = this.isNeedFreezeFooter();\n\n const updateToolbar = () => {\n if (!this.toolbar) {\n return;\n }\n\n this.renderer.setStyle(\n this.toolbar,\n 'max-width',\n leftContainerWidth +\n (rightContainerWidth < 0 ? 0 : rightContainerWidth) +\n 'px',\n );\n\n if (freezeHeader) {\n this.renderer.addClass(this.toolbar, 'fixed');\n\n if (\n leftBodyRect.bottom <= headerBlockHeight + rootRect.top &&\n leftFooterRect\n ) {\n const top = leftBodyRect.bottom - headerBlockHeight;\n this.renderer.setStyle(this.toolbar, 'top', top + 'px');\n } else {\n this.renderer.setStyle(this.toolbar, 'top', rootRect.top + 'px');\n }\n } else {\n this.renderer.removeClass(this.toolbar, 'fixed');\n this.renderer.removeStyle(this.toolbar, 'width');\n }\n };\n\n const updateHeader = () => {\n for (let fixIndex = 0; fixIndex < this.tablesCount; fixIndex++) {\n if (freezeHeader) {\n this.renderer.addClass(\n this.scrollTableHeaders.item(fixIndex),\n 'fixed',\n );\n\n if (!this.inContainerMode) {\n // Плавно скрываем шапку, если футер уже выше края шапки.\n // Если футер уже выше хедера, то и хедер плавно поднимаем.\n if (\n leftBodyRect.bottom <= headerBlockHeight + rootRect.top &&\n leftFooterRect\n ) {\n const top = leftBodyRect.bottom - headerBlockHeight;\n this.renderer.setStyle(\n this.scrollTableHeaders.item(fixIndex),\n 'top',\n top + (toolbarRect?.height ?? 0) + 'px',\n );\n } else {\n this.renderer.setStyle(\n this.scrollTableHeaders.item(fixIndex),\n 'top',\n rootRect.top + (toolbarRect?.height ?? 0) + 'px',\n );\n }\n }\n } else {\n this.renderer.removeClass(\n this.scrollTableHeaders.item(fixIndex),\n 'fixed',\n );\n }\n\n this.renderer.setStyle(\n this.scrollTableHeaders.item(fixIndex),\n 'width',\n (fixIndex === 0 ? leftContainerWidth : rightContainerWidth) + 'px',\n );\n }\n };\n\n const updateFooter = () => {\n for (let fixIndex = 0; fixIndex < this.tablesCount; fixIndex++) {\n if (freezeFooter) {\n this.renderer.addClass(\n this.scrollTableFooters.item(fixIndex),\n 'fixed',\n );\n\n if (this.inContainerMode) {\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'margin-bottom',\n scrollerHeight + leftFooterRect.height + 'px',\n );\n this.renderer.setStyle(\n this.scrollTableFooters.item(fixIndex),\n 'bottom',\n scrollerHeight + 'px',\n );\n } else {\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'margin-bottom',\n leftFooterRect.height + 'px',\n );\n this.renderer.setStyle(\n this.scrollTableFooters.item(fixIndex),\n 'top',\n rootRect.bottom - leftFooterRect.height - scrollerHeight + 'px',\n );\n }\n } else {\n this.renderer.removeClass(\n this.scrollTableFooters.item(fixIndex),\n 'fixed',\n );\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'margin-bottom',\n 0,\n );\n }\n\n this.renderer.setStyle(\n this.scrollTableFooters.item(fixIndex),\n 'width',\n (fixIndex === 0 ? leftContainerWidth : rightContainerWidth) + 'px',\n );\n }\n };\n\n const updateBody = () => {\n for (let fixIndex = 0; fixIndex < this.tablesCount; fixIndex++) {\n if (freezeHeader) {\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'padding-top',\n headerBlockHeight + 'px',\n );\n } else {\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'padding-top',\n 0,\n );\n }\n\n this.renderer.setStyle(\n this.scrollTableBodies.item(fixIndex),\n 'width',\n (fixIndex === 0 ? leftContainerWidth : rightContainerWidth) + 'px',\n );\n }\n };\n\n const updateScroller = () => {\n if (this.hasHorizontalScroll) {\n // Ширина = ширина контейнера (т.е. ширина рабочей области) за вычетом ширины левой таблицы.\n this.renderer.setStyle(\n this.scroller,\n 'width',\n rightTableWidth + leftTableWidth + 1 + 'px',\n );\n if (freezeFooter) {\n this.renderer.addClass(this.scrollerContainer, 'fixed');\n\n if (!this.inContainerMode) {\n this.renderer.setStyle(\n this.scrollerContainer,\n 'top',\n rootRect.bottom - scrollerHeight + 'px',\n );\n }\n } else {\n this.renderer.removeClass(this.scrollerContainer, 'fixed');\n this.renderer.setStyle(this.scrollerContainer, 'margin-bottom', 0);\n }\n\n this.renderer.setStyle(\n this.scrollerContainer,\n 'width',\n containerRect.width + 'px',\n );\n }\n\n if (hasHorizontalScroll !== this.hasHorizontalScroll) {\n this.hasHorizontalScroll = hasHorizontalScroll;\n if (hasHorizontalScroll) {\n this.renderer.setStyle(this.scrollerContainer, 'display', 'block');\n } else {\n this.renderer.setStyle(this.scrollerContainer, 'display', 'none');\n }\n updateScroller();\n this.updatePositions();\n }\n };\n\n updateToolbar();\n updateHeader();\n updateFooter();\n updateBody();\n\n if (!this.disableHorizontalScroller) {\n updateScroller();\n }\n }\n\n private createContainers(): void {\n if (!this.disableHorizontalScroller) {\n this.scroller?.remove();\n this.scrollerContainer?.remove();\n\n this.scroller = this.renderer.createElement('div');\n this.scrollerContainer = this.renderer.createElement('div');\n this.renderer.setAttribute(\n this.scrollerContainer,\n 'name',\n 'scroller-container',\n );\n this.renderer.appendChild(\n this.container.nativeElement,\n this.scrollerContainer,\n );\n this.renderer.appendChild(this.scrollerContainer, this.scroller);\n }\n }\n\n private onHorizontalScrolled(left: number) {\n if (!this.scrollTableBodies.item(1)) {\n return;\n }\n // Добавить тень к левой таблице.\n if (left > 0) {\n if (!this.verticalShadow) {\n this.verticalShadow = true;\n this.renderer.addClass(this.scrollTableBodies.item(0), 'scrolled');\n this.renderer.addClass(this.scrollTableBodies.item(0), 'wp-shadow');\n\n const leftHeader = this.scrollTableHeaders.item(0).firstChild;\n if (leftHeader && this.scrolledTableIndex !== 0) {\n this.renderer.addClass(leftHeader, 'wp-shadow');\n }\n\n const leftFooter = this.scrollTableFooters.item(0).firstChild;\n if (\n leftFooter &&\n this.scrolledTableIndex !== 0 &&\n leftFooter.nodeName !== '#comment'\n ) {\n this.renderer.addClass(leftFooter, 'wp-shadow');\n }\n }\n } else {\n if (this.verticalShadow) {\n this.verticalShadow = false;\n // Убрать тень с левой таблицы.\n this.renderer.removeClass(this.scrollTableBodies.item(0), 'scrolled');\n this.renderer.removeClass(this.scrollTableBodies.item(0), 'wp-shadow');\n\n const leftHeader = this.scrollTableHeaders.item(0).firstChild;\n if (leftHeader && this.scrolledTableIndex !== 0) {\n this.renderer.removeClass(leftHeader, 'wp-shadow');\n }\n\n const leftFooter = this.scrollTableFooters.item(0).firstChild;\n if (\n leftFooter &&\n this.scrolledTableIndex !== 0 &&\n leftFooter.nodeName !== '#comment'\n ) {\n this.renderer.removeClass(leftFooter, 'wp-shadow');\n }\n }\n }\n }\n\n private subscribeToScroll(el: HTMLElement, from: FreezeTableSource) {\n this.scrollSubscription?.unsubscribe();\n this.zone.runOutsideAngular(() => {\n this.scrollSubscription = fromEvent(el, 'scroll')\n .pipe(this.throttle, takeUntil(this.destroyed$))\n .subscribe(() => {\n this.scrollHandler(from);\n });\n });\n }\n\n // TODO: actualize during refactoring\n private getCurrentScrolledPosition(\n source: FreezeTableSource,\n scrollType: 'scrollLeft' | 'scrollTop' = 'scrollLeft',\n ) {\n switch (source) {\n case 'fromHeader':\n return this.scrollTableHeaders.item(this.scrolledTableIndex)[\n scrollType\n ];\n case 'fromBody':\n return this.scrollTableBodies.item(this.scrolledTableIndex)[scrollType];\n case 'fromFooter':\n return this.scrollTableFooters.item(this.scrolledTableIndex)[\n scrollType\n ];\n case 'fromScroller':\n return this.scrollerContainer[scrollType];\n }\n }\n\n /**\n * Handles scrolling behavior based on the source and scroll values.\n *\n * @param from The source of the scroll.\n * @param leftScrollValue The value to scroll to horizontally.\n * @param emitEvent Whether to emit the scroll event.\n */\n private scrollHandler(\n from: FreezeTableSource,\n leftScrollValue?: number,\n emitEvent = true,\n ): void {\n const left = leftScrollValue ?? this.getCurrentScrolledPosition(from);\n\n if (\n from !== 'fromHeader' &&\n left !== this.getCurrentScrolledPosition('fromHeader')\n ) {\n const scrollTop = this.getCurrentScrolledPosition(\n 'fromHeader',\n 'scrollTop',\n );\n this.scrollTableHeaders\n .item(this.scrolledTableIndex)\n .scrollTo(left, scrollTop);\n }\n\n if (\n from !== 'fromBody' &&\n left !== this.getCurrentScrolledPosition('fromBody')\n ) {\n const scrollTop = this.getCurrentScrolledPosition(\n 'fromBody',\n 'scrollTop',\n );\n this.scrollTableBodies\n .item(this.scrolledTableIndex)\n .scrollTo(left, scrollTop);\n }\n\n if (\n from !== 'fromFooter' &&\n left !== this.getCurrentScrolledPosition('fromFooter')\n ) {\n const scrollTop = this.getCurrentScrolledPosition(\n 'fromFooter',\n 'scrollTop',\n );\n this.scrollTableFooters\n .item(this.scrolledTableIndex)\n .scrollTo(left, scrollTop);\n }\n\n if (\n !this.disableHorizontalScroller &&\n from !== 'fromScroller' &&\n left !== this.getCurrentScrolledPosition('fromScroller')\n ) {\n const scrollTop = this.getCurrentScrolledPosition(\n 'fromScroller',\n 'scrollTop',\n );\n this.scrollerContainer.scrollTo(left, scrollTop);\n }\n\n this.freezeTableService?.currentScrollPosition$?.next(left);\n\n // If synchronization with another component occurs, stop the loop.\n this.onHorizontalScrolled(left);\n if (emitEvent) {\n this.scroll.emit();\n this.freezeTableService?.onScrollHorizontal(this.name, left);\n }\n }\n\n /** Принудительно горизонтально проскролить до позиции. */\n private scrollTo(left: number, behavior: ScrollBehavior = 'smooth') {\n if (this.freezeTableService) {\n this.freezeTableService.currentScrollPosition$.next(left);\n }\n const param: ScrollToOptions = { behavior, left };\n this.scrollerContainer?.scrollTo(param);\n this.scrollTableHeaders.item(this.scrolledTableIndex).scrollTo(param);\n this.scrollTableBodies.item(this.scrolledTableIndex).scrollTo(param);\n this.scrollTableFooters.item(this.scrolledTableIndex).scrollTo(param);\n }\n\n private redraw() {\n this.updatePositions();\n this.scrollHandler('fromBody', null, false);\n }\n\n /** Initializes of directive logic. */\n private initializeDirective() {\n if (this.inContainerMode) {\n this.renderer.addClass(this.containerElement, 'in-container');\n }\n\n this.rootContainer =\n document.querySelector('ngb-modal-window') ??\n document.getElementById(this.rootContainerId);\n\n if (!this.rootContainer) {\n return;\n }\n\n this.scrollTableHeaders = ((\n this.container.nativeElement\n )).querySelectorAll('[name=scroll-table-header]');\n\n this.scrollTableFooters = ((\n this.container.nativeElement\n )).querySelectorAll('[name=scroll-table-footer]');\n\n this.scrollTableBodies = ((\n this.container.nativeElement\n )).querySelectorAll('[name=scroll-table-body]');\n this.toolbar = (this.container.nativeElement).querySelector(\n '[name=toolbar]',\n );\n\n this.tablesCount = this.scrollTableHeaders.length;\n this.createContainers();\n\n if (this.defaultRootContainerId !== this.rootContainerId) {\n this.zone.runOutsideAngular(() => {\n this.chromeService.scroll$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updatePositions();\n this.freezeTableService?.onScrollVertical(this.name);\n this.scroll.emit();\n });\n });\n }\n\n this.zone.runOutsideAngular(() => {\n fromEvent(this.rootContainer, 'scroll')\n .pipe(this.throttle, takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updatePositions();\n this.freezeTableService?.onScrollVertical(this.name);\n this.scroll.emit();\n });\n });\n\n this.chromeService.mainAreaSize$\n .pipe(this.throttle)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updatePositions();\n this.scroll.emit();\n this.freezeTableService?.onScrollVertical(this.name);\n });\n\n this.enableMutationObserver();\n\n const addStartDragEvent = (el: HTMLElement, name: string) => {\n if (el) {\n // TODO: get rid from subscribe in subscribe?\n this.zone.runOutsideAngular(() => {\n merge(\n fromEvent(el, 'mousedown'),\n fromEvent(el, 'touchstart'),\n fromEvent(el, 'wheel'),\n )\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.subscribeToScroll(el, name as any));\n });\n }\n };\n\n addStartDragEvent(\n this.scrollTableHeaders.item(this.scrolledTableIndex),\n 'fromHeader',\n );\n\n addStartDragEvent(\n this.scrollTableBodies.item(this.scrolledTableIndex),\n 'fromBody',\n );\n\n addStartDragEvent(\n this.scrollTableFooters.item(this.scrolledTableIndex),\n 'fromFooter',\n );\n\n if (!this.disableHorizontalScroller) {\n addStartDragEvent(this.scrollerContainer, 'fromScroller');\n }\n\n if (this.freezeTableService) {\n this.chromeService.compactMode$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.freezeTableService.redraw();\n });\n\n this.freezeTableService.mutationObserver$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((state) => {\n this.mutationObserverEnabled = state;\n if (state) {\n this.enableMutationObserver();\n } else {\n this.disableMutationObserver();\n }\n });\n\n this.freezeTableService.redraw$\n .pipe(auditTime(0), takeUntil(this.destroyed$))\n .subscribe(() => {\n this.redraw();\n });\n\n if (this.syncWith) {\n this.freezeTableService.horizontalScroll$\n .pipe(\n filter((v) => v.from !== this.name && this.mutationObserverEnabled),\n takeUntil(this.destroyed$),\n )\n .subscribe((v) => {\n if (v?.value != null) {\n this.scrollSubscription?.unsubscribe();\n this.log.debug(\n `Freeze table directive ${this.name}. Sync from ${v.from}.`,\n );\n this.scrollHandler(null, v.value, false);\n }\n });\n }\n\n this.freezeTableService.scrollToLeft$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.scrollTo(0);\n });\n\n this.freezeTableService.scrollToPosition$\n .pipe(\n concatMap((position) => {\n this.scrollTo(position, 'auto');\n if (this.pending$) {\n return this.pending$.pipe(\n filter((v) => !v),\n map(() => position),\n );\n } else {\n return of(position);\n }\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe((position: number) => {\n this.updatePositions();\n this.scrollTo(position, 'auto');\n });\n\n this.freezeTableService.scrollToRight$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const leftTable = this.scrollTableBodies.item(0)\n .firstChild as HTMLElement;\n const leftTableWidth = leftTable.getBoundingClientRect().width;\n\n const rightTableWidth =\n this.scrollTableBodies.length === 2\n ? (\n this.scrollTableBodies.item(1).firstChild as HTMLElement\n )?.getBoundingClientRect().width\n : 0;\n this.scrollTo(rightTableWidth + leftTableWidth);\n });\n\n this.freezeTableService.scrollToSelector$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((options) => {\n const anchorElement: HTMLElement =\n this.container.nativeElement.querySelector(options.selector);\n\n if (anchorElement) {\n const tableHeader = this.scrollTableHeaders.item(1) as HTMLElement;\n const headerWidth = tableHeader.getBoundingClientRect().width;\n const widthToScrolling = headerWidth / 3;\n\n this.scrollTo(\n anchorElement.offsetLeft - widthToScrolling,\n options.behavior,\n );\n\n if (this.pending$) {\n firstValueFrom(\n this.pending$.pipe(\n filter((v) => !v),\n takeUntil(this.destroyed$),\n ),\n ).then(() => {\n this.updatePositions();\n this.scrollTo(\n anchorElement.offsetLeft - widthToScrolling,\n options.behavior,\n );\n });\n }\n }\n });\n }\n }\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n first,\n} from 'rxjs';\nimport {\n AutoScrollTarget,\n FreezeTableScrollOptions,\n FreezeTableScrollParams,\n} from 'src/app/shared/directives/freeze-table/freeze-table.interface';\n\n@Injectable()\nexport class FreezeTableService {\n public scroll$ = new Subject();\n public scrollToLeft$ = new Subject();\n public scrollToRight$ = new Subject();\n public scrollToSelector$ = new Subject();\n public mutationObserver$ = new Subject();\n public leftTableWidth$: BehaviorSubject = new BehaviorSubject(0);\n\n /** Current scroll position. */\n //TODO: revert to plain value when scroll will emit value after every position changing.\n public currentScrollPosition$ = new BehaviorSubject(null);\n\n /** Scroll to absolute position number. Uses for remember scroll position. */\n private scrollToPositionSubject = new Subject();\n public scrollToPosition$ = this.scrollToPositionSubject.asObservable();\n\n private redrawSubject = new Subject();\n public redraw$ = this.redrawSubject.asObservable();\n\n private horizontalScrollSubject = new Subject();\n public horizontalScroll$ = this.horizontalScrollSubject.asObservable();\n\n private verticalScrollSubject = new Subject();\n public verticalScroll$ = this.verticalScrollSubject.asObservable();\n\n private destroyRef = inject(DestroyRef);\n\n /** Emits redraw action. */\n public redraw(): void {\n this.redrawSubject.next();\n }\n\n /** Emits `disableMutationObserver` action. */\n public disableMutationObserver(): void {\n this.mutationObserver$.next(false);\n }\n\n /** Emits `enableMutationObserver` action. */\n public enableMutationObserver(): void {\n this.mutationObserver$.next(true);\n }\n\n /** Scroll to left end. */\n public scrollToLeft() {\n this.scrollToLeft$.next();\n }\n\n /** Scroll to right end. */\n public scrollToRight() {\n this.scrollToRight$.next();\n }\n\n /**\n * Scroll to selector.\n *\n * @param options ScrollOptions with CSS selector.\n *\n * @example this.freezeTableService.scrollToSelector('th.slot-active');\n */\n public scrollToSelector(options: FreezeTableScrollOptions): void {\n this.scrollToSelector$.next(options);\n }\n\n /**\n * Table auto scrolling.\n *\n * @param goTo `'left' | 'right'` | ScrollOptions with CSS selector or absolute value in px.\n *\n * */\n public autoScroll(goTo: AutoScrollTarget): void {\n setTimeout(() => {\n this.disableMutationObserver();\n\n if (goTo === 'left') {\n this.scrollToLeft();\n } else if (goTo === 'right') {\n this.scrollToRight();\n } else if (typeof goTo === 'number') {\n this.scrollToPositionSubject.next(goTo);\n } else {\n this.scrollToSelector(goTo);\n }\n\n setTimeout(() => {\n this.redraw();\n this.enableMutationObserver();\n }, 500);\n }, 10);\n }\n\n /**\n * Handles loading. If all are loaded, emits scroll event.\n *\n * @param goTo `'left' | 'right'` | ScrollOptions with CSS selector or absolute value in px.\n * @param observables loading observables.\n * @param delay delay before scroll event is triggered, because component needs time for rendering.\n */\n public scrollOnLoad(\n goTo: AutoScrollTarget,\n observables: Observable[],\n delay = 100,\n ): void {\n combineLatest(observables)\n .pipe(\n first((values) => values.every((loading) => !loading)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n setTimeout(() => {\n this.autoScroll(goTo);\n }, delay);\n });\n }\n\n /**\n * Handles component's horizontal scroll event.\n *\n * @param from Component name.\n * @param value x coordinate.\n */\n public onScrollHorizontal(from: string, value: number): void {\n this.horizontalScrollSubject.next({ from, value });\n this.scroll$.next();\n }\n\n /**\n * Handles component's vertical scroll event.\n *\n * @param from Component name.\n * @param value y coordinate.\n */\n public onScrollVertical(from: string, value?: number): void {\n this.verticalScrollSubject.next({ from, value });\n this.scroll$.next();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n OnDestroy,\n Input,\n ElementRef,\n HostListener,\n Renderer2,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n DragDropService,\n DragEvent,\n Coordinates,\n} from 'src/app/shared/services/drag-drop';\n\n/**\n * This directive enables zooming for images.\n *\n * @example\n *\n * \n * \n * \n */\n@Directive({\n selector: '[wpImageZoom]',\n standalone: false,\n})\nexport class ImageZoomDirective implements AfterViewInit, OnDestroy {\n /**\n * Double click handler.\n *\n * @param event MouseEvent.\n *\n * */\n @HostListener('dblclick', ['$event'])\n public onClick(event: MouseEvent): void {\n if (this.zoomEnabled) {\n this.disableZoom();\n } else {\n this.enableZoom();\n this.setStartPosition(event.offsetX, event.offsetY);\n }\n }\n\n @Input() public imageId: string;\n @Input() public zoomScale: number;\n\n private zoomEnabled = false;\n private zoomMax = 4;\n private zoomStep = 1;\n private zoomDefault = 2;\n private startPosition: Coordinates = {\n x: 0,\n y: 0,\n };\n private currentPosition: Coordinates = {\n x: 0,\n y: 0,\n };\n private borderPosition: Coordinates = {\n x: 0,\n y: 0,\n };\n\n private pointerListener: () => void;\n private readonly destroyed$ = new Subject();\n\n public constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private dragDropService: DragDropService,\n ) {}\n\n public ngAfterViewInit() {\n this.pointerListener = this.renderer.listen(\n this.el.nativeElement,\n 'pointerdown',\n (event) => {\n this.dragDropService\n .drag(event)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((dragEvent) => {\n this.movePosition(dragEvent);\n });\n },\n );\n\n this.dragDropService.dragEnd$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.zoomEnabled) {\n this.checkOverBorder(this.currentPosition);\n this.setTransition();\n this.setTranslate(this.currentPosition.x, this.currentPosition.y);\n this.startPosition = Object.assign({}, this.currentPosition);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.pointerListener();\n this.destroyed$.next();\n }\n\n /** Zoom in! */\n public zoomIn(): void {\n if (!this.zoomEnabled) {\n this.enableZoom();\n this.setStartPosition(\n this.el.nativeElement.clientWidth * 0.5,\n this.el.nativeElement.clientHeight * 0.5,\n );\n return;\n }\n\n this.zoomScale += this.zoomScale >= this.zoomMax ? 0 : this.zoomStep;\n this.calcBorderPosition();\n this.setTranslate(this.currentPosition.x, this.currentPosition.y);\n }\n\n /** Zoom out! */\n public zoomOut(): void {\n if (!this.zoomEnabled) {\n return;\n }\n\n this.zoomScale -= this.zoomScale === 1 ? 0 : this.zoomStep;\n\n if (this.zoomScale === 1) {\n this.disableZoom();\n } else {\n this.setTranslate(this.currentPosition.x, this.currentPosition.y);\n }\n }\n\n private enableZoom(): void {\n this.zoomEnabled = true;\n this.zoomScale = this.zoomDefault;\n }\n\n private disableZoom(): void {\n this.zoomEnabled = false;\n this.zoomScale = this.zoomDefault;\n this.renderer.setStyle(this.el.nativeElement, 'transform', `scale(1)`);\n }\n\n private setStartPosition(x: number, y: number): void {\n this.startPosition = {\n x: -(x - this.el.nativeElement.clientWidth * 0.5),\n y: -(y - this.el.nativeElement.clientHeight * 0.5),\n };\n\n this.calcBorderPosition();\n this.checkOverBorder(this.startPosition);\n this.setTransition();\n this.setTranslate(this.startPosition.x, this.startPosition.y);\n this.currentPosition = Object.assign({}, this.startPosition);\n }\n\n private movePosition(dragEvent: DragEvent): void {\n if (this.zoomEnabled) {\n this.currentPosition = {\n x: this.startPosition.x + dragEvent.diffX,\n y: this.startPosition.y + dragEvent.diffY,\n };\n\n this.setTransition('none');\n this.setTranslate(this.currentPosition.x, this.currentPosition.y);\n }\n }\n\n private setTransition(property = 'all 300ms'): void {\n this.renderer.setStyle(this.el.nativeElement, 'transition', property);\n }\n\n private setTranslate(x: number, y: number): void {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `scale(${this.zoomScale}) translate3d(${x}px, ${y}px, 0)`,\n );\n }\n\n private calcBorderPosition(): void {\n const image = this.el.nativeElement.querySelector('img');\n const ratio = image.naturalHeight / this.el.nativeElement.clientHeight;\n const width =\n image.naturalWidth / ratio < this.el.nativeElement.clientWidth\n ? image.naturalWidth / ratio\n : this.el.nativeElement.clientWidth;\n\n this.borderPosition = {\n x: width * ((this.zoomScale - this.zoomStep) / this.zoomScale) * 0.5,\n y:\n this.el.nativeElement.clientHeight *\n ((this.zoomScale - this.zoomStep) / this.zoomScale) *\n 0.5,\n };\n }\n\n private checkOverBorder(position: Coordinates): void {\n if (Math.abs(position.x) > this.borderPosition.x) {\n position.x = this.borderPosition.x * Math.sign(position.x);\n }\n\n if (Math.abs(position.y) > this.borderPosition.y) {\n position.y = this.borderPosition.y * Math.sign(position.y);\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { debounce } from 'lodash';\n\n@Directive({\n selector: '[wpIntersectable]',\n standalone: false,\n})\nexport class IntersectableDirective implements OnInit {\n @Output() onIntersect = new EventEmitter();\n private intersectionObservable: IntersectionObserver;\n private target;\n private scrollTableHeader;\n private scrollTableFooter;\n\n public initObservable() {\n if (this.intersectionObservable) {\n this.intersectionObservable.disconnect();\n }\n\n if (!this.scrollTableHeader && !this.scrollTableFooter) {\n return;\n }\n\n const topMargin = this.scrollTableHeader\n ? this.scrollTableHeader.getBoundingClientRect().top +\n this.scrollTableHeader.getBoundingClientRect().height\n : 0;\n\n const bottomMargin = this.scrollTableFooter\n ? this.scrollTableFooter.getBoundingClientRect().height\n : 0;\n const options = {\n threshold: 0.5,\n rootMargin: `${-topMargin}px 0px ${-bottomMargin}px 0px`,\n };\n\n const callback = (entries) => {\n if (!entries[0].isIntersecting) {\n this.onIntersect.emit();\n }\n };\n const debounceFn = debounce(callback, 40);\n this.intersectionObservable = new IntersectionObserver(debounceFn, options);\n this.intersectionObservable.observe(this.target);\n }\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.target = this.elementRef.nativeElement;\n const currentGrid =\n this.elementRef.nativeElement.closest('[wpfreezetable]');\n if (!currentGrid) {\n return;\n }\n this.scrollTableHeader = currentGrid.querySelector(\n '[name=\"scroll-header\"]',\n );\n this.scrollTableFooter = currentGrid.querySelector(\n '[name=\"scroll-table-footer\"]',\n );\n this.initObservable();\n }\n}\n","import {\n AfterViewInit,\n ContentChild,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n} from '@angular/core';\nimport { FormControl, FormControlName, Validators } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Wrapper } from 'src/app/shared/components/features/custom-fields/wrappers/wrapper.interface';\n\n@Directive({\n selector: '[tmtIndicator]',\n standalone: false,\n})\nexport class LabelIndicatorDirective implements AfterViewInit {\n @ContentChild(FormControlName, { static: false })\n private formControlName: FormControlName;\n\n @ContentChild('controlWrapper', { static: false })\n private controlWrapper: Wrapper;\n\n private destroyRef = inject(DestroyRef);\n\n private get control(): FormControl | undefined {\n return this.formControlName?.control ?? this.controlWrapper?.control;\n }\n\n constructor(private el: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (!this.control) {\n return;\n }\n\n this.toggleRequiredIndicator();\n\n this.control.statusChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.toggleRequiredIndicator();\n });\n }\n\n private toggleRequiredIndicator(): void {\n if (this.control.hasValidator(Validators.required)) {\n this.el.nativeElement\n .querySelector('label')\n ?.classList.add('required-indicator');\n } else {\n this.el.nativeElement\n .querySelector('label')\n ?.classList.remove('required-indicator');\n }\n }\n}\n","import { Input, ElementRef, Renderer2, Directive, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[wpLoadingValue]',\n standalone: false,\n})\nexport class LoadingValueDirective implements OnInit {\n private _loading = false;\n private _value: any;\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef,\n ) {}\n\n private updateValue(): void {\n const value = this._loading\n ? ''\n : this._value;\n\n this.renderer.setProperty(this.el.nativeElement, 'innerHTML', value);\n }\n\n ngOnInit(): void {\n this.updateValue();\n }\n\n @Input('wpLoadingValue') set value(value: string) {\n this._value = value;\n this.updateValue();\n }\n\n @Input() set loading(loading: boolean) {\n this._loading = loading;\n this.updateValue();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n Inject,\n Renderer2,\n ElementRef,\n NgZone,\n inject,\n DestroyRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { fromEvent } from 'rxjs';\n\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { OffCanvasService } from 'src/app/core/off-canvas.service';\nimport { OffCanvasSettings } from '../models/off-canvas/off-canvas.settings';\nimport { InfoPopupService } from '../components/features/info-popup/info-popup.service';\n\n@Directive({\n selector: '[tmtOffCanvasResize]',\n standalone: false,\n})\nexport class OffCanvasResizeDirective implements OnInit, OnDestroy {\n @Input('element') private element: HTMLElement;\n private grabber = false;\n private minWidth = 600;\n private maxWidth = 1200;\n private currentWidth: number;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private localConfigService: LocalConfigService,\n @Inject(DOCUMENT) private document: Document,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private zone: NgZone,\n private offCanvasService: OffCanvasService,\n private infoPopupService: InfoPopupService,\n ) {}\n\n ngOnInit(): void {\n const settings = this.localConfigService.getConfig(OffCanvasSettings);\n this.currentWidth = settings.width || this.minWidth;\n this.renderer.setStyle(this.element, 'width', `${this.currentWidth}px`);\n\n this.zone.runOutsideAngular(() => {\n fromEvent(this.elementRef.nativeElement, 'mousedown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.grabber = true;\n this.renderer.setStyle(this.document.body, 'cursor', 'e-resize');\n this.renderer.setStyle(this.document.body, 'user-select', 'none');\n this.infoPopupService.close();\n });\n\n fromEvent(this.document.body, 'mouseup')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.grabber = false;\n this.renderer.removeStyle(this.document.body, 'cursor');\n this.renderer.removeStyle(this.document.body, 'user-select');\n this.offCanvasService.setWidth(this.currentWidth);\n this.saveWidth();\n });\n\n fromEvent(this.document.body, 'mousemove')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent) => {\n if (!this.grabber) {\n return;\n }\n let width = window.innerWidth - event.clientX;\n if (this.grabber) {\n width = Math.min(Math.max(width, this.minWidth), this.maxWidth);\n this.renderer.setStyle(this.element, 'width', `${width}px`);\n }\n this.currentWidth = width;\n });\n });\n }\n\n ngOnDestroy(): void {\n this.saveWidth();\n }\n\n /* Saves off canvas's width. */\n private saveWidth(): void {\n const settings = this.localConfigService.getConfig(OffCanvasSettings);\n settings.width = this.currentWidth;\n this.localConfigService.setConfig(OffCanvasSettings, settings);\n }\n}\n","import { Directive } from '@angular/core';\nimport { ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[radioButton]',\n standalone: false,\n})\nexport class RadioButtonDirective {\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n (this.element.nativeElement as HTMLElement).style.position = 'absolute';\n (this.element.nativeElement as HTMLElement).style.width = '0';\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n OnInit,\n Renderer2,\n QueryList,\n ViewRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { RadioLabelDirective } from './radio-label.directive';\n\n/**\n *\n * It's directive solve problem with migrate BS4 to BS5.\n *\n * */\n\n@Directive({\n selector: '[radioGroup]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupDirective),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class RadioGroupDirective\n implements ControlValueAccessor, OnInit, AfterContentInit\n{\n public readonly: boolean;\n\n private group!: NodeListOf;\n private groupName!: string | null;\n private value: string | undefined;\n private onChange!: (value: string) => void;\n private onTouched!: () => void;\n\n private valueSubject = new Subject();\n @ContentChildren(RadioLabelDirective) labels: QueryList;\n\n constructor(\n private element: ElementRef,\n private changeDetector: ChangeDetectorRef,\n private renderer: Renderer2,\n ) {}\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.updateDisabledState();\n }\n\n private updateDisabledState() {\n if (!this.group) {\n return;\n }\n\n if (this.readonly) {\n this.renderer.addClass(\n this.element.nativeElement,\n 'radio-group-disabled',\n );\n }\n\n this.group.forEach((node, index) => {\n if (this.readonly) {\n (node as HTMLInputElement).setAttribute('disabled', 'true');\n } else {\n (node as HTMLInputElement).removeAttribute('disabled');\n }\n });\n\n if (!(this.changeDetector as ViewRef).destroyed) {\n this.changeDetector.detectChanges();\n }\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n initValue(value: string): void {\n if (!this.value) {\n this.value = value;\n }\n this.valueSubject.next(this.value);\n }\n\n setValue(value: string): void {\n this.value = value;\n this.valueSubject.next(this.value);\n this.onChange(this.value);\n }\n\n ngOnInit() {\n this.groupName = (this.element.nativeElement as HTMLElement).getAttribute(\n 'name',\n );\n }\n\n ngAfterContentInit() {\n if (!this.labels) {\n throw Error('RadioGroupDirective required radioLabels directives into.');\n }\n\n this.labels.forEach((l) => l.initLabel(this.valueSubject.asObservable()));\n\n this.group = (this.element.nativeElement as HTMLElement).querySelectorAll(\n 'input[radioButton]',\n );\n\n if (!this.groupName) {\n this.groupName = 'radio-name';\n }\n\n if (!this.group) {\n throw Error(\n 'RadioGroupDirective required inner input elements with type radio.',\n );\n }\n\n this.group.forEach((node, index) => {\n if (this.groupName) {\n (node as HTMLInputElement).setAttribute('name', this.groupName);\n }\n\n if (index === 0) {\n this.initValue(node.value);\n }\n\n node.addEventListener('change', (event) => {\n this.setValue((event.target as HTMLInputElement).value);\n });\n });\n\n this.updateDisabledState();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadioGroupDirective } from './radio-group.directive';\nimport { RadioButtonDirective } from './radio-button.directive';\nimport { RadioLabelDirective } from './radio-label.directive';\n\n@NgModule({\n declarations: [\n RadioGroupDirective,\n RadioButtonDirective,\n RadioLabelDirective,\n ],\n imports: [CommonModule],\n exports: [RadioGroupDirective, RadioButtonDirective, RadioLabelDirective],\n})\nexport class RadioGroupModule {}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[radioLabel]',\n standalone: false,\n})\nexport class RadioLabelDirective {\n active = false;\n innerInput!: HTMLInputElement;\n value!: string;\n\n constructor(private element: ElementRef) {}\n\n initLabel(subject) {\n subject.subscribe((v) => this.onChange(v));\n }\n\n onChange(value: string) {\n this.value === value ? (this.active = true) : (this.active = false);\n\n if (this.active) {\n (this.element.nativeElement as HTMLElement).classList.add('active');\n (this.element.nativeElement as HTMLElement).classList.add('focus');\n } else {\n (this.element.nativeElement as HTMLElement).classList.remove('active');\n (this.element.nativeElement as HTMLElement).classList.remove('focus');\n }\n }\n\n ngOnInit() {\n (this.element.nativeElement as HTMLElement).classList.add('btn');\n }\n\n ngAfterContentInit() {\n this.innerInput = (this.element.nativeElement as HTMLElement)\n .firstElementChild as HTMLInputElement;\n\n if (!this.innerInput) {\n throw Error('radioLabel required inner input.');\n }\n\n this.value = this.innerInput.value;\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnInit,\n Renderer2,\n EventEmitter,\n Output,\n OnDestroy,\n NgZone,\n Inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { LogService } from 'src/app/core/log.service';\nimport { Subject, asyncScheduler, fromEvent } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[wpResizing]',\n standalone: false,\n})\nexport class ResizingDirective implements OnInit, OnDestroy {\n @Input() selector: string;\n @Output() columnResized = new EventEmitter<[string, number]>();\n\n /** Minimal column width in px. */\n @Input() minColumnWidth = 25;\n\n private destroyed$ = new Subject();\n private resizedSubject = new Subject();\n\n private auditTime = 15;\n private throttle = throttleTime(this.auditTime, asyncScheduler, {\n leading: true,\n trailing: true,\n });\n\n isResizing: boolean;\n startPageX: number;\n currentColumn: HTMLTableColElement;\n currentColumnName: string;\n startWidth: number;\n\n constructor(\n private log: LogService,\n private table: ElementRef,\n private renderer: Renderer2,\n private zone: NgZone,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.resizedSubject.pipe(this.throttle).subscribe((event: any) => {\n const diffX = event.pageX - this.startPageX;\n const newWidth = this.startWidth + diffX;\n\n if (newWidth < this.minColumnWidth) {\n return;\n }\n\n this.currentColumn.style.width = newWidth + 'px';\n this.columnResized.emit([this.currentColumnName, newWidth]);\n });\n }\n ngOnInit(): void {\n const mutationObserver = new MutationObserver(() => {\n this.log.debug(\n 'Resizing table directive. Mutation observer is triggered.',\n );\n this.init();\n });\n mutationObserver.observe(this.table.nativeElement, {\n childList: true,\n subtree: true,\n });\n\n this.renderer.listen(this.document, 'mouseup', (event: any) =>\n this.stop(event),\n );\n\n this.zone.runOutsideAngular(() => {\n fromEvent(this.document, 'mousemove')\n .pipe(this.throttle, takeUntil(this.destroyed$))\n .subscribe((event) => {\n if (!this.isResizing) {\n return;\n }\n this.resizedSubject.next(event);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private init() {\n const table = this.table.nativeElement as HTMLElement;\n const cells = table.querySelectorAll(this.selector);\n\n cells.forEach((cell) => {\n if (!cell.querySelector('.rz-handle')) {\n const handle = this.renderer.createElement('div');\n this.renderer.addClass(handle, 'rz-handle');\n this.renderer.appendChild(cell, handle);\n this.renderer.listen(handle, 'mousedown', (event: any) =>\n this.start(event),\n );\n this.renderer.listen(handle, 'click', (event: any) =>\n event.stopPropagation(),\n );\n }\n });\n }\n\n private start(event: any) {\n this.isResizing = true;\n const target: HTMLElement = event.target;\n const columns = (this.table.nativeElement as HTMLElement)\n .querySelector('colgroup')\n .querySelectorAll('col');\n let index = 0;\n let el = target.parentElement;\n // eslint-disable-next-line no-cond-assign\n while ((el = el.previousSibling as HTMLTableCellElement) != null) {\n if (el.nodeName.toLowerCase() === 'th') {\n index++;\n }\n }\n this.currentColumn = columns[index] as HTMLTableColElement;\n this.startPageX = event.pageX;\n\n // eslint-disable-next-line radix\n this.startWidth = parseInt(this.currentColumn.style.width);\n this.currentColumnName = target.parentElement.getAttribute('name');\n }\n\n private stop(event) {\n if (this.isResizing) {\n this.resizedSubject.next(event);\n }\n\n this.isResizing = false;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport { throttle } from 'lodash';\n\n/** Directive for text truncation depending on element width. */\n@Directive({\n selector: '[tmtTruncateDirective]',\n standalone: false,\n})\nexport class TruncateDirective implements AfterViewInit, OnDestroy {\n private containerWidthWithoutGaps = 0;\n private elementsWidth: number[] = [];\n private elementsWidthInitial: number[] = [];\n private throttleTime = 100; // ContainerSizeCheckThrottleTime\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit(): void {\n this.initWidths();\n\n this.resizeObserver = new ResizeObserver(\n throttle(() => {\n this.initWidths();\n this.calculateWidth();\n }, this.throttleTime),\n );\n\n this.resizeObserver.observe(this.elementRef.nativeElement);\n\n this.mutationObserver = new MutationObserver(() => {\n this.initWidths();\n this.calculateWidth();\n });\n\n this.mutationObserver.observe(this.elementRef.nativeElement, {\n attributes: true,\n });\n }\n\n public ngOnDestroy(): void {\n this.resizeObserver.disconnect();\n this.mutationObserver.disconnect();\n }\n\n private calculateWidth(): void {\n const elementsArray = Array.from(this.elementRef.nativeElement.children);\n const htmlElements: HTMLElement[] = elementsArray as HTMLElement[];\n\n let elementsGap = 0;\n if (elementsArray.length === 1) {\n elementsGap = 0;\n } else {\n elementsGap =\n htmlElements[1].offsetLeft -\n htmlElements[0].offsetWidth -\n htmlElements[0].offsetLeft;\n }\n\n this.containerWidthWithoutGaps =\n this.elementRef.nativeElement.offsetWidth -\n elementsGap * (elementsArray.length - 1);\n\n let elementsWidthSum = 0;\n this.elementsWidth.forEach((el) => (elementsWidthSum += el));\n if (elementsWidthSum > this.containerWidthWithoutGaps) {\n const delta = elementsWidthSum - this.containerWidthWithoutGaps;\n\n for (let i = 0; i < delta; i++) {\n const maxElementWidth = Math.max(...this.elementsWidth);\n const maxElementWidthIndex = this.elementsWidth.findIndex(\n (el) => el === maxElementWidth,\n );\n this.elementsWidth[maxElementWidthIndex] = maxElementWidth - 1;\n }\n this.elementsWidth.forEach((elementWidth, index) => {\n this.renderer.setStyle(\n elementsArray[index],\n 'width',\n elementWidth + 'px',\n );\n });\n\n this.cdr.detectChanges();\n } else {\n const delta = this.containerWidthWithoutGaps - elementsWidthSum;\n const truncatedElementsIndexes = [];\n this.elementsWidthInitial.forEach((el, index) => {\n if (el !== this.elementsWidth[index]) {\n truncatedElementsIndexes.push(index);\n }\n });\n\n truncatedElementsIndexes.forEach((index) => {\n if (this.elementsWidth[index] < this.elementsWidthInitial[index]) {\n let newWidth =\n this.elementsWidth[index] + delta / truncatedElementsIndexes.length;\n if (newWidth > this.elementsWidthInitial[index]) {\n newWidth = this.elementsWidthInitial[index];\n }\n this.elementsWidth[index] = newWidth;\n this.renderer.setStyle(\n elementsArray[index],\n 'width',\n newWidth + 'px',\n );\n }\n });\n }\n }\n\n private initWidths(): void {\n this.elementsWidthInitial.length = 0;\n this.elementsWidth.length = 0;\n const childrenElements = [...this.elementRef.nativeElement.children];\n childrenElements.forEach((el) => {\n this.renderer.removeStyle(el, 'width');\n });\n\n this.cdr.detectChanges();\n\n childrenElements.forEach((el) => {\n const offsetWidth = (el.offsetWidth || 1000) + 1;\n this.elementsWidthInitial.push(offsetWidth);\n this.elementsWidth.push(offsetWidth);\n });\n }\n}\n","export enum AppName {\n My = 'my',\n Team = 'team',\n Projects = 'projects',\n Resources = 'resources',\n Billing = 'billing',\n Finance = 'finance',\n Analytics = 'analytics',\n Settings = 'settings',\n Clients = 'clients',\n HelpDesk = 'helpDesk',\n}\n","export class Constants {\n public static formNameMaxLength = 255;\n public static formCodeMaxLength = 50;\n public static formTextMaxLength = 1024;\n public static beginEventMouseGap = 1;\n public static filterInputLengthLimit = 255;\n public static textInputDebounce = 750;\n public static textInputClientDebounce = 200;\n public static typeaheadListLength = 50;\n public static scrollThrottleTime = 100;\n public static mousemoveThrottleTime = 40;\n public static mainFormControlChangedDelayTime = 300;\n public static saveUserViewThrottleTime = 1000;\n public static defaultRootContainerId = 'main-area';\n\n /** Determines max attachment file size for comments, requests, etc. (in bytes)*/\n public static maxAttachmentSize = 25 * 1024 * 1024;\n\n public static guidRegex = /[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}/i;\n public static emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{1,}$/;\n\n /** Maximum and minimum phone number lengths depending on the country's phone code*/\n public static minPhoneLength = 11;\n public static maxPhoneLength = 13;\n}\n","import _ from 'lodash';\nimport { interval, startWith, take } from 'rxjs';\n\n//** Not works without styles! Check .fire__line class. */\nclass FireLine {\n public elRect: DOMRect;\n public params: Partial;\n public x: number;\n public y: number;\n public height: number;\n public angle: number;\n public bgColor: string;\n public filterColor: string;\n\n constructor(elRect: DOMRect, params?: Partial) {\n this.elRect = elRect;\n this.height = this.getRandom(70, 270);\n Object.entries(this.getPositionAndAngle()).forEach(([key, value]) => {\n this[key] = value;\n });\n const [bgColor, filterColor] =\n FireLine.colors[this.getRandom(0, FireLine.colors.length - 1)];\n this.bgColor = bgColor;\n this.filterColor = filterColor;\n\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n this[key] = value;\n });\n }\n }\n\n /**\n * Creates line and start animation.\n *\n * @returns Resolves on animation end.\n */\n public shoot(): Promise {\n return new Promise((resolve) => {\n const fireLine = document.createElement('div');\n\n fireLine.classList.add('fire__line');\n fireLine.setAttribute(\n 'style',\n `--height: ${this.height}px; --rotate: ${this.angle}deg; --bg-color: ${this.bgColor}; --filter-color: ${this.filterColor}`,\n );\n fireLine.style.top = this.y + 'px';\n fireLine.style.left = this.x + 'px';\n\n fireLine.addEventListener('animationend', () => {\n fireLine.remove();\n resolve();\n });\n\n document.body.appendChild(fireLine);\n });\n }\n\n protected getPositionAndAngle(): {\n x: number;\n y: number;\n angle: number;\n } {\n const neededSpace = this.height * FireLine.trackMP;\n const { top, right, bottom, left } = this.elRect;\n const allowedSide: number[] = [];\n let side: number;\n\n if (top > neededSpace) {\n allowedSide.push(1);\n }\n\n if (window.innerHeight - bottom > neededSpace) {\n allowedSide.push(2);\n }\n\n if (left > neededSpace) {\n allowedSide.push(3);\n }\n\n if (window.innerWidth - right > neededSpace) {\n allowedSide.push(4);\n }\n\n while (!allowedSide.includes(side)) {\n side = this.getRandom(1, 4);\n\n if (!allowedSide.length) {\n return;\n }\n }\n\n switch (side) {\n case 1: // TOP\n return {\n x: this.getRandom(left, right),\n y: top,\n angle: this.getRandom(100, 260),\n };\n case 2: // DOWN\n return {\n x: this.getRandom(left, right),\n y: bottom,\n angle: this.getRandom(-60, 60),\n };\n case 3: // LEFT\n return {\n x: left,\n y: this.getRandom(top, bottom),\n angle: this.getRandom(60, 180),\n };\n case 4: // RIGHT\n return {\n x: right,\n y: this.getRandom(top, bottom),\n angle: this.getRandom(-60, -180),\n };\n }\n }\n\n protected getRandom(from: number, to: number): number {\n return _.random(from, to);\n }\n\n public static colors: Array<[string, string]> = [\n ['rgba(95, 145, 255, 1)', 'rgba(105, 155, 255, 1)'], // Blue\n ['rgba(255, 85, 85, 1)', 'rgba(255, 100, 100, 1)'], // Red\n ['rgba(142, 239, 142, 1)', 'rgba(100, 255, 100, 1)'], // Green\n ['rgba(255, 85, 255, 1)', 'rgba(255, 100, 255, 1)'], // Pink\n ['rgba(125, 225, 225, 1)', 'rgba(100, 255, 255, 1)'], // Cyan\n ['rgba(255, 170, 85, 1)', 'rgba(255, 180, 100, 1)'], // Orange\n ['rgba(170, 85, 255, 1)', 'rgba(180, 100, 255, 1)'], // Purple\n ['rgba(85, 85, 255, 1)', 'rgba(100, 100, 255, 1)'], // Dark blue\n ['rgba(85, 255, 170, 1)', 'rgba(100, 255, 180, 1)'], // Lime\n ];\n\n /**\n * Calculates coordinates of line destination.\n *\n * @param x1 Start X.\n * @param y1 Start Y.\n * @param angleDegrees angle.\n * @param length line height.\n * @param angleShift shift relative to document.\n * @returns Endpoint coordinates.\n */\n public static calculateEndPoint(\n x1: number,\n y1: number,\n angleDegrees: number,\n length: number,\n angleShift = 90,\n ): { x: number; y: number } {\n const angleRadians = ((angleDegrees + angleShift) * Math.PI) / 180;\n\n const x2 = x1 + length * Math.cos(angleRadians);\n const y2 = y1 + length * Math.sin(angleRadians);\n\n return { x: x2, y: y2 };\n }\n\n /** CSS value from animation. */\n public static trackMP = 1.5;\n}\n\nexport class FireWork {\n public readonly intervalBetweenShoot = 100;\n\n /**\n * Runs firework!\n *\n * @param rect element coordinates & sizes.\n */\n public run(rect: DOMRect): void {\n if (document.querySelector('.fire__line')) {\n return;\n }\n\n interval(this.intervalBetweenShoot)\n .pipe(startWith(-1), take(4))\n .subscribe((value) => {\n if (!value) {\n this.simpleShoot(rect);\n this.doubleExplosion(rect);\n }\n\n if (value === 1) {\n this.simpleShoot(rect);\n this.singleExplosion(rect);\n }\n\n this.simpleShoot(rect);\n });\n }\n\n private simpleShoot(rect: DOMRect): void {\n for (let i = 1; i <= 5; i++) {\n new FireLine(rect).shoot();\n }\n }\n\n private singleExplosion(rect: DOMRect): void {\n for (let i = 1; i <= 3; i++) {\n const fireLine = new FireLine(rect);\n fireLine.shoot().then(() => {\n const { x, y } = FireLine.calculateEndPoint(\n fireLine.x,\n fireLine.y,\n fireLine.angle,\n fireLine.height * FireLine.trackMP,\n );\n\n let angle = 0;\n\n while (angle < 360) {\n new FireLine(rect, {\n x,\n y,\n angle,\n height: 50,\n bgColor: fireLine.bgColor,\n filterColor: fireLine.filterColor,\n }).shoot();\n\n angle += 20;\n }\n });\n }\n }\n\n private doubleExplosion(rect: DOMRect): void {\n for (let i = 1; i <= 2; i++) {\n const fireLine = new FireLine(rect);\n fireLine.shoot().then(() => {\n const { x, y } = FireLine.calculateEndPoint(\n fireLine.x,\n fireLine.y,\n fireLine.angle,\n fireLine.height * FireLine.trackMP,\n );\n\n let angle = 0;\n\n while (angle < 360) {\n const params = {\n x,\n y,\n angle,\n height: 50,\n bgColor: fireLine.bgColor,\n filterColor: fireLine.filterColor,\n };\n\n new FireLine(rect, params).shoot();\n setTimeout(() => new FireLine(rect, params).shoot(), 500);\n\n angle += 45;\n }\n });\n }\n }\n}\n","export const DateTimeLabelFormats: any = {\n millisecond: [\n '%A, %b %e, %H:%M:%S.%L',\n '%A, %b %e, %H:%M:%S.%L',\n '-%H:%M:%S.%L',\n ],\n second: ['%A, %b %e, %H:%M:%S', '%A, %b %e, %H:%M:%S', '-%H:%M:%S'],\n minute: ['%A, %b %e, %H:%M', '%A, %b %e, %H:%M', '-%H:%M'],\n hour: ['%A, %b %e, %H:%M', '%A, %b %e, %H:%M', '-%H:%M'],\n day: ['%A, %b %e, %Y', '%A, %b %e', '-%A, %b %e, %Y'],\n week: ['%A, %b %e, %Y', '%A, %b %e', '-%A, %b %e, %Y'],\n month: ['%B %Y', '%B', '-%B %Y'],\n year: ['%Y', '%Y', '-%Y'],\n};\n","/** Dependent pair. */\nexport type CascadeDependency = [MasterItem, SlaveItem];\n\nexport interface CascadeItem {\n /** Control name. */\n controlName: string;\n /**\n * Component reference.\n * Only `SelectBox`, `MultiSelectBox` are supported now.\n *\n * @internal\n * */\n component?: BoxControlComponent;\n}\n\nexport interface MasterItem extends CascadeItem {\n /** Indicates whether to disable depended control. */\n isDisableDepended?: boolean;\n}\n\nexport interface SlaveItem extends CascadeItem {\n /** Property key that changes with regard to master control. */\n dependedProperty: string;\n /**\n * Indicates whether to reset dependent controls.\n * @internal\n * */\n notReset?: boolean;\n}\n\n// TODO: change after DEV-940.\nexport interface BoxControlComponent {\n /** OData parameters. */\n query: any;\n /** Control name (`formControlName`). */\n get controlName(): string;\n /** Copy of control values. */\n get allValues(): any[] | undefined | null;\n /** Changes filter in query. */\n changeFilter: (filterPart: any) => void;\n /** Updates data in control. */\n refreshRows: () => Promise;\n}\n","import { QueryList } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { DateTime, Interval } from 'luxon';\nimport {\n MonoTypeOperatorFunction,\n Subscription,\n filter,\n map,\n pairwise,\n startWith,\n tap,\n} from 'rxjs';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\nimport {\n BoxControlComponent,\n CascadeDependency,\n} from './form-helper.interface';\n\nexport class FormHelper {\n public static controlDatePair(\n formGroup: UntypedFormGroup,\n fromControlName: string,\n toControlName: string,\n takeUntil: MonoTypeOperatorFunction,\n maxDuration?: number,\n ): void {\n const handle = (activeControl: 'from' | 'to') => {\n // Проверить границу.\n const fromValue = formGroup.controls[fromControlName].value;\n const toValue = formGroup.controls[toControlName].value;\n\n if (fromValue && toValue) {\n const from = DateTime.fromISO(fromValue);\n const to = DateTime.fromISO(toValue);\n\n if (from > to) {\n if (activeControl === 'from') {\n formGroup.controls[toControlName].setValue(from.toISODate(), {\n emitEvent: false,\n });\n } else {\n formGroup.controls[fromControlName].setValue(to.toISODate(), {\n emitEvent: false,\n });\n }\n } else {\n if (maxDuration > 0) {\n const interval = Interval.fromDateTimes(from, to);\n if (interval.length('days') > maxDuration) {\n if (activeControl === 'from') {\n const maxTo = from.plus({ days: maxDuration });\n formGroup.controls[toControlName].setValue(maxTo.toISODate(), {\n emitEvent: false,\n });\n } else {\n const maxFrom = to.minus({ days: maxDuration });\n formGroup.controls[fromControlName].setValue(\n maxFrom.toISODate(),\n {\n emitEvent: false,\n },\n );\n }\n }\n }\n }\n }\n };\n\n formGroup.controls[fromControlName].valueChanges\n .pipe(takeUntil)\n .subscribe(() => handle('from'));\n formGroup.controls[toControlName].valueChanges\n .pipe(takeUntil)\n .subscribe(() => handle('to'));\n }\n\n /**\n * Sets depends between controls.\n *\n * @param formGroup Form group.\n * @param components Component reference collection.\n * @param dependencies Dependent pair collection.\n * @param takeUntil Function on destroy event (e.g. `takeUntil(destroyed$)`, `takeUntilDestroyed(this.destroyRef)`)\n *\n * @returns Complete function. Unsubscribes all `valueChanges` of controls.\n *\n * TODO:\n * NamedEntity by Generic?\n * Add query generator for changeFilter?\n * How to solve validators problem for dependent?\n */\n public static cascadeDependency(\n formGroup: UntypedFormGroup,\n components: QueryList,\n dependencies: CascadeDependency[],\n takeUntil: MonoTypeOperatorFunction,\n ): () => void {\n const controlsSubscriptions: Subscription[] = [];\n\n for (const item of dependencies) {\n const [master, slave] = item;\n master.component = components.find(\n (c) => c.controlName === master.controlName,\n );\n slave.component = components.find(\n (c) => c.controlName === slave.controlName,\n );\n\n if (!master.component || !slave.component) {\n // TODO throw error?\n continue;\n }\n\n // Enrich select\n if (slave.component.query?.select) {\n slave.component.query.select.push(slave.dependedProperty);\n }\n\n if (!slave.component.query) {\n slave.component.query = {\n select: ['id', 'name', slave.dependedProperty],\n };\n }\n\n const masterControl = formGroup.controls[master.component.controlName];\n const slaveControl = formGroup.controls[slave.component.controlName];\n\n slave.component.changeFilter(\n masterControl.getRawValue()\n ? {\n [slave.dependedProperty]: {\n type: 'guid',\n value: masterControl.getRawValue().id,\n },\n }\n : null,\n );\n\n controlsSubscriptions.push(\n masterControl.valueChanges\n .pipe(\n startWith(masterControl.getRawValue()),\n tap((value) => {\n if (master.isDisableDepended) {\n value\n ? slaveControl.enable({ emitEvent: false })\n : slaveControl.disable({ emitEvent: false });\n }\n }),\n pairwise(),\n filter(([previous, current]) => previous?.id !== current?.id),\n map(([previous, current]) => current),\n takeUntil,\n )\n .subscribe((value: NamedEntity | null) => {\n if (slave.notReset) {\n slave.notReset = false;\n } else {\n slaveControl.setValue(null, { emitEvent: false });\n }\n\n slave.component.changeFilter(\n value\n ? {\n [slave.dependedProperty]: { type: 'guid', value: value.id },\n }\n : null,\n );\n }),\n\n slaveControl.valueChanges\n .pipe(takeUntil)\n .subscribe((value: NamedEntity | null) => {\n if (!masterControl.getRawValue() && value) {\n master.component.refreshRows().then(() => {\n const rows = master.component.allValues.filter(\n (v) => v.id === value[slave.dependedProperty],\n );\n\n if (rows.length === 1) {\n slave.notReset = true;\n masterControl.setValue(rows[0]);\n }\n });\n }\n }),\n );\n }\n\n return () => controlsSubscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","export * from './form-helper';\nexport * from './form-helper.interface';\n","/** Страны ЕАЭС. */\nexport const EAEUCountries: string[] = ['RUS', 'BLR', 'KAZ'];\n","/* eslint-disable */\n\nexport class Guid {\n public static generate(): string {\n var uuid = '',\n ii;\n for (ii = 0; ii < 32; ii += 1) {\n switch (ii) {\n case 8:\n case 20:\n uuid += '-';\n uuid += ((Math.random() * 16) | 0).toString(16);\n break;\n case 12:\n uuid += '-';\n uuid += '4';\n break;\n case 16:\n uuid += '-';\n uuid += ((Math.random() * 4) | 8).toString(16);\n break;\n default:\n uuid += ((Math.random() * 16) | 0).toString(16);\n }\n }\n return uuid;\n }\n}\n","import html2canvas from 'html2canvas';\nimport { CropInfo } from 'src/app/shared/helpers/image-export/crop-info.interface';\n\nexport class ImageExport {\n public static readonly defaultExportScale = 2;\n\n /**\n * Exports the given HTML element as an image in the specified format.\n *\n * @param elem - The HTML element to export.\n * @param exportType - The type of export. Can be 'PNG', 'JPEG', or 'Clipboard'.\n * @param exportFileName - Optional. The name of the file to save the exported image as.\n * @param cropInfo - Optional. The cropping information for the exported image.\n * @returns A promise that resolves when the export is complete.\n */\n public static exportElement(\n elem: HTMLElement,\n exportType: 'PNG' | 'JPEG' | 'Clipboard',\n exportFileName?: string,\n cropInfo?: CropInfo,\n ): Promise {\n return new Promise((resolve, reject) => {\n html2canvas(elem, { scale: this.defaultExportScale })\n .then((canvas) => {\n if (cropInfo) {\n const croppedCanvas = document.createElement('canvas');\n const croppedCanvasCtx = croppedCanvas.getContext('2d');\n\n // Take scale into account for cropped parameters\n croppedCanvas.width = cropInfo.width * this.defaultExportScale;\n croppedCanvas.height = cropInfo.height * this.defaultExportScale;\n const sourceY = cropInfo.top * this.defaultExportScale;\n const sourceHeight = cropInfo.height * this.defaultExportScale;\n\n // Crop canvas\n croppedCanvasCtx.drawImage(\n canvas,\n 0,\n sourceY,\n canvas.width,\n sourceHeight,\n 0,\n 0,\n canvas.width,\n sourceHeight,\n );\n canvas = croppedCanvas;\n }\n\n const downloadImage = (type: 'PNG' | 'JPEG', quality?: number) => {\n const dataUrl = canvas.toDataURL(\n `image/${type.toLowerCase()}`,\n quality,\n );\n const link = document.createElement('a');\n link.download = `${exportFileName ?? 'image'}.${type.toLowerCase()}`;\n link.href = dataUrl;\n link.click();\n link.remove();\n resolve();\n };\n\n switch (exportType) {\n case 'PNG':\n downloadImage('PNG');\n break;\n case 'JPEG':\n downloadImage('JPEG', 0.2);\n break;\n case 'Clipboard':\n canvas.toBlob(async (blob) => {\n try {\n await navigator.clipboard.write([\n new ClipboardItem({\n 'image/png': blob,\n }),\n ]);\n resolve();\n } catch (err) {\n const errorText = 'Image copy to clipboard error.';\n console.error(`${errorText}:`, err);\n reject(errorText);\n }\n }, 'image/png');\n break;\n }\n })\n .catch((error) => {\n reject(error); // Reject the promise if html2canvas fails\n });\n });\n }\n}\n","import {\n GridColumn,\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { DataColumn, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const DATE_COLUMN_WIDTH: number = 110;\nexport const DATE_TIME_COLUMN_WIDTH: number = 130;\nexport const IS_ACTIVE_COLUMN_WIDTH: number = 115;\n\n/**\n * Constructs a data field string by optionally prefixing the field name with a navigation prefix.\n *\n * @param {string} name - The name of the data field.\n * @param {string} [navigationPrefix=''] - The optional navigation prefix to be added before the field name.\n * @returns {string} The constructed data field string.\n */\nfunction getDataField(name, navigationPrefix = ''): string {\n if (!navigationPrefix) {\n return name;\n }\n\n return `${navigationPrefix}.${name}`;\n}\n\n/**\n * Returns an array of GridColumn objects for named entities.\n *\n * @param {string} state - The state to be used for the navigation column.\n * @returns {GridColumn[]} An array of GridColumn objects.\n */\nexport function getNamedEntityGridColumns(state = ''): GridColumn[] {\n const result: GridColumn[] = [\n {\n name: 'created',\n header: 'shared2.props.created.value',\n hint: 'shared2.props.created.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'createdBy',\n header: 'shared2.props.createdBy.value',\n hint: 'shared2.props.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modified',\n header: 'shared2.props.modified.value',\n hint: 'shared2.props.modified.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'modifiedBy',\n header: 'shared2.props.modifiedBy.value',\n hint: 'shared2.props.modifiedBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'shared2.props.isActive.short',\n hint: 'shared2.props.isActive.hint',\n },\n ];\n\n if (state) {\n result.push({\n name: 'name',\n type: GridColumnType.Navigation,\n state,\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n availableTotals: [TotalType.Count],\n });\n }\n\n return result;\n}\n\n/**\n * Returns an array of GridColumn objects for coded entities.\n *\n * @param {string} state - The state to be used for the navigation column.\n * @returns {GridColumn[]} An array of GridColumn objects.\n */\n\nexport function getCodedEntityGridColumns(state = ''): GridColumn[] {\n const result: GridColumn[] = [\n ...getNamedEntityGridColumns(state),\n {\n name: 'code',\n type: GridColumnType.String,\n header: 'shared2.props.code',\n hint: 'shared2.props.code',\n },\n ];\n return result;\n}\n\n/**\n * Returns an array of DataColumn objects for named entities.\n *\n * @param {string} navigationPrefix - The prefix to be used for the data fields.\n * @returns {DataColumn[]} An array of DataColumn objects.\n */\nexport function getNamedEntityDataColumns(navigationPrefix = ''): DataColumn[] {\n return [\n {\n column: 'name',\n field: getDataField('name', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: getDataField('isActive', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: getDataField('created', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: getDataField('modified', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: getDataField('createdBy.name', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: getDataField('modifiedBy.name', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ];\n}\n\n/**\n * Returns an array of DataColumn objects for coded entities.\n *\n * @param {string} navigationPrefix - The prefix to be used for the data fields.\n * @returns {DataColumn[]} An array of DataColumn objects.\n */\nexport function getCodedEntityDataColumns(navigationPrefix = ''): DataColumn[] {\n return [\n ...getNamedEntityDataColumns(navigationPrefix),\n {\n column: 'code',\n field: getDataField('code', navigationPrefix),\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ];\n}\n","import {\n BehaviorSubject,\n Subject,\n MonoTypeOperatorFunction,\n Observable,\n catchError,\n delay,\n firstValueFrom,\n forkJoin,\n of,\n tap,\n finalize,\n} from 'rxjs';\nimport _ from 'lodash';\n\nimport { Exception } from 'src/app/shared/models/exception';\n\nexport interface MassOperationSettings {\n /** Number of requests sent at one time */\n chunkSize?: number;\n /** How many times each failed request will be repeated */\n retry?: number;\n /** Delay before new chunk with requests will be sent */\n delay?: number;\n /** For preventing rest of chunks */\n takeUntil?: MonoTypeOperatorFunction;\n}\n\nexport interface MassOperationResult {\n /** Index from original array with requests */\n originalIndex: number;\n /** Result (e.g. `Exception`) */\n result: T;\n}\n\nexport type ChainCollection = Observable[];\n\n/**\n * Helper is for working with a large number of API requests.\n * You must set requests as observables in the class constructor.\n *\n * @example\n * const massOperationHelper = new MassOperationHelper(\n * observables,\n * {chunksize: 15, retry: 1}\n * ).start();\n */\nexport class MassOperationHelper {\n private chunk: ChainCollection[];\n private currentChunk = 0;\n private failedObservables: MassOperationResult>[] = [];\n private _errors: MassOperationResult[] = [];\n private _completedCount = 0;\n private progressIncrement: number;\n private readonly progress$ = new BehaviorSubject(0);\n private readonly preventRequesting$ = new Subject();\n private readonly defaultSettings: MassOperationSettings = {\n chunkSize: 10,\n retry: 1,\n delay: 0,\n };\n\n /** Array with errors after all requests were completed. */\n public get errors(): MassOperationResult[] {\n return _.uniqBy(this._errors, 'originalIndex');\n }\n\n /** Number of successful requests. */\n public get completedCount(): number {\n return this._completedCount;\n }\n\n constructor(\n private observables: ChainCollection,\n private settings?: MassOperationSettings,\n ) {\n this.progressIncrement = (1 / this.observables.length) * 100;\n this.settings = _.merge(settings ?? {}, this.defaultSettings);\n this.init();\n }\n\n /**\n * Starts!\n *\n * @return execution progress.\n */\n public start(): Observable {\n this.handler();\n return this.progress$.asObservable();\n }\n\n private init(): void {\n this.chunk = _.chunk(\n this.observables.map((el, index) => this.buildObservable(el, index)),\n this.settings.chunkSize,\n );\n\n if (this.settings.takeUntil) {\n this.preventRequesting$\n .pipe(\n this.settings.takeUntil,\n finalize(() => {\n this.preventRequesting$.unsubscribe();\n this.progress$.next(100);\n }),\n )\n .subscribe();\n }\n }\n\n private async handler(): Promise {\n if (this.preventRequesting$.closed) {\n return;\n }\n\n await firstValueFrom(\n forkJoin(this.chunk[this.currentChunk]).pipe(\n delay(this.currentChunk ? this.settings.delay : 0),\n ),\n );\n\n if (\n this.currentChunk === this.chunk.length - 1 &&\n (!this.settings.retry || !this.failedObservables.length)\n ) {\n this.progress$.next(100);\n return;\n }\n\n if (\n this.currentChunk === this.chunk.length - 1 &&\n this.settings.retry > 0 &&\n this.failedObservables.length\n ) {\n this.chunk = _.chunk(\n this.failedObservables.map((el) =>\n this.buildObservable(el.result, el.originalIndex),\n ),\n this.settings.chunkSize,\n );\n\n this.currentChunk = -1;\n this.settings.retry -= 1;\n }\n\n this.currentChunk += 1;\n await this.handler();\n }\n\n private buildObservable(\n observable: Observable,\n index: number,\n ): Observable {\n return observable.pipe(\n catchError((err: Exception) => {\n if (err?.code === 'Network' && this.settings.retry > 0) {\n this.failedObservables.push({\n originalIndex: index,\n result: observable,\n });\n }\n\n this._errors.push({\n originalIndex: index,\n result: err,\n });\n\n return of(undefined);\n }),\n tap((value) => {\n if (value !== undefined) {\n this.progress$.next(\n Math.min(\n 99,\n this.progress$.getValue() + this.progressIncrement,\n ),\n );\n this._completedCount++;\n }\n }),\n );\n }\n}\n","import { Options } from '@popperjs/core';\n\nexport const customPopperOptions = (options: Partial) => {\n options.strategy = 'fixed';\n options.modifiers.push({\n name: 'offset',\n options: {\n offset: [0, 5],\n },\n });\n return options;\n};\n","export const collator = new Intl.Collator(['en', 'ru'], { numeric: true });\n\n/**\n * Custom compareFn for objects.\n *\n * @param property key or path to property.\n * @returns Callback function for comparing elements.\n */\nexport function naturalSort(\n path: NestedKeyOf,\n): (a: T, b: T) => number {\n return (a: T, b: T) => collator.compare(getValue(a, path), getValue(b, path));\n}\n\nexport type NestedKeyOf<\n T extends object,\n D extends any[] = [0, 0, 0, 0], // NOTE: recursion deep\n> = D extends [any, ...infer DD]\n ? {\n [K in keyof T & string]: T[K] extends any[]\n ? never\n : T[K] extends object\n ? `${K}` | `${K}.${NestedKeyOf}`\n : `${K}`;\n }[keyof T & string]\n : never;\n\nfunction getValue(entity: T, key: string): string {\n return key.split('.').reduce((acc, part) => acc?.[part], entity) ?? '';\n}\n","import { StateService, Transition } from '@uirouter/core';\n\nimport { DateTime } from 'luxon';\nimport { catchError, firstValueFrom, map, of, tap, throwError } from 'rxjs';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { StateBuilderService } from 'src/app/core/state-builder.service';\n\nimport { ENTITY_TYPE_TO_COLLECTION } from 'src/app/shared/models/entities/entity-type-description.model';\nimport { Notification } from 'src/app/shared/models/entities/notification.model';\n\nimport { CONFIG_MAP } from 'src/app/boards/models/board.config';\nimport { Board } from 'src/app/settings-app/boards/model/board.model';\n\nexport class StateHelper {\n /**\n * Gets entity id from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns entity id.\n */\n public static resolveEntityId(trans: Transition): string {\n return trans.params().entityId;\n }\n\n /**\n * Gets view name from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns view name.\n */\n public static resolveView(trans: Transition): any {\n return trans.params().view;\n }\n\n /**\n * Gets project id from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns project id.\n */\n public static resolveProjectId(trans: Transition): string {\n return trans.params().projectId;\n }\n\n /**\n * Gets context from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns context (e.g. `project`).\n */\n public static resolveContext(trans: Transition): string {\n return trans.params().context;\n }\n\n /**\n * Gets entity id from parameters of UIRouter Transition.\n * Method works in pair with `resolveContext`.\n *\n * @param trans `Transition`.\n * @returns entity id.\n */\n public static resolveEntity(trans: Transition): any {\n return trans.params().entity;\n }\n\n /**\n * Gets OData filter parameters.\n *\n * @param trans `Transition`.\n * @returns filter parameters.\n */\n public static resolveFilter(trans: Transition): any {\n return trans.params().filter;\n }\n\n /**\n * Gets view settings from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns view settings.\n */\n public static resolveViewSettings(trans: Transition): any {\n return trans.params().viewSettings;\n }\n\n /**\n * Gets user settings from parameters of UIRouter Transition.\n *\n * @param trans `Transition`.\n * @returns user settings.\n */\n public static resolveUserSettings(trans: Transition): any {\n return trans.params().userSettings;\n }\n\n /**\n * Gets user id from session.\n *\n * @param appService\n * @returns user id.\n */\n public static resolveUserId(appService: AppService): string {\n return appService.session.user.id;\n }\n\n /**\n * If entityId is equal to `my`, method gets user id from session, otherwise it gets entity id.\n *\n * @param trans `Transition`.\n * @returns id.\n */\n public static resolveEntityIdOrCurrentUserId(\n trans: Transition,\n appService: AppService,\n ): string {\n return trans.params().entityId === 'my'\n ? appService.session.user.id\n : trans.params().entityId;\n }\n\n /**\n * Requests notification, then redirects to its url.\n *\n * @param dataService\n * @param stateService\n * @param transition `Transition`.\n * @param stateBuilder `StateBuilderService`.\n *\n */\n public static redirectToNotificationUrl(\n dataService: DataService,\n stateService: StateService,\n transition: Transition,\n stateBuilder: StateBuilderService,\n ): Promise {\n return new Promise((resolve) => {\n dataService\n .collection('Notifications')\n .entity(transition.params().entityId)\n .get()\n .subscribe((notification: Notification) => {\n const { state, params } = stateBuilder.getStateForWorkflowEntity(\n notification.target.taskId,\n notification.target.entityType,\n notification.target.entityId,\n );\n stateService.go(state, params);\n resolve();\n });\n });\n }\n\n /**\n * Gets current timesheet id for actual period.\n *\n * @param dataService\n * @param appService\n * @param blockUI `BlockUIService`.\n * @param notificationService\n *\n */\n public static resolveCurrentId(\n dataService: DataService,\n appService: AppService,\n blockUI: BlockUIService,\n notificationService: NotificationService,\n ): Promise {\n blockUI.start();\n\n return firstValueFrom(\n dataService\n .collection('TimeSheets')\n .function('GetIdForPeriod')\n .get({\n date: DateTime.now().toISODate(),\n userId: appService.session.user.id,\n })\n .pipe(\n catchError(() => {\n notificationService.errorLocal('timesheets.failedToLoadCurrent');\n blockUI.stop();\n return throwError(\n () => new Error('Failed to load the current timesheet.'),\n );\n }),\n tap(() => blockUI.stop()),\n ),\n );\n }\n\n /**\n * Gets project id.\n *\n * @param trans `Transition`.\n * @param dataService\n * @param blockUI `BlockUIService`.\n *\n * @returns project id.\n */\n public static resolveProjectIdForVersionForm(\n trans: Transition,\n dataService: DataService,\n blockUI: BlockUIService,\n ): string | Promise {\n const projectId = trans.params().projectId;\n\n if (projectId) {\n return projectId;\n }\n\n blockUI.start();\n\n return firstValueFrom(\n dataService\n .collection('ProjectVersions')\n .entity(trans.params().entityId)\n .get({ select: 'mainProjectId' })\n .pipe(\n catchError(() => {\n blockUI.stop();\n return throwError(\n () => new Error('Failed to load the Project Id.'),\n );\n }),\n tap(() => {\n blockUI.stop();\n }),\n map((data: any) => data.mainProjectId),\n ),\n );\n }\n\n /**\n * Gets board config by entity type.\n *\n * @param trans `Transition`.\n * @param dataService\n * @param appService\n * @param blockUI `BlockUIService`.\n * @param notificationService\n *\n */\n public static resolveBoardConfig(\n trans: Transition,\n dataService: DataService,\n blockUI: BlockUIService,\n ): Promise {\n blockUI.start();\n const entityId = trans.params().entityId;\n\n return firstValueFrom(\n dataService\n .collection('Boards')\n .entity(entityId)\n .get({\n select: ['id', 'name', 'entityType', 'isActive', 'editAllowed'],\n })\n .pipe(\n catchError(() => {\n blockUI.stop();\n return of(null);\n }),\n tap(() => blockUI.stop()),\n map((data) => {\n if (!data?.isActive) {\n return null;\n }\n\n const configByEntityType = CONFIG_MAP.get(data.entityType);\n configByEntityType.id = entityId;\n configByEntityType.title = data.name;\n configByEntityType.entityType = data.entityType;\n configByEntityType.editAllowed = data.editAllowed;\n configByEntityType.collection ??= ENTITY_TYPE_TO_COLLECTION.get(\n data.entityType,\n );\n\n return configByEntityType;\n }),\n ),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StringHelper {\n constructor() {}\n\n /** Склонение числительных. Возвращает строку в виде \"1 критерий\", \"3 условия\". */\n public static declOfNum(number: number, titles: string[]): string {\n const cases = [2, 0, 1, 1, 1, 2];\n return titles[\n number % 100 > 4 && number % 100 < 20\n ? 2\n : cases[number % 10 < 5 ? number % 10 : 5]\n ];\n }\n\n public static toUnicode(str: string): string {\n let unicodeString = '';\n for (let i = 0; i < str.length; i++) {\n let theUnicode = str.charCodeAt(i).toString(16).toUpperCase();\n while (theUnicode.length < 4) {\n theUnicode = '0' + theUnicode;\n }\n theUnicode = '\\\\u' + theUnicode;\n unicodeString += theUnicode;\n }\n return unicodeString;\n }\n\n /** Returns crossed out string based on input string.\n *\n * @param str input string\n * @returns crossed out string\n */\n public static getCrossedOutString(str: string): string {\n return str\n .split('')\n .map((letter) => `\\u{0335}${letter}\\u{0335}`)\n .join('');\n }\n}\n","import { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { FinancialTypeCellComponent } from '../components/features/financial-type-cell/financial-type-cell.component';\nimport {\n DATE_TIME_COLUMN_WIDTH,\n getNamedEntityDataColumns,\n getNamedEntityGridColumns,\n} from 'src/app/shared/helpers/list.helper';\nimport {\n GridComponentColumn,\n GridColumnType,\n GridNavigationColumn,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const ACCOUNTING_ENTRY_LIST: List = {\n version: 6,\n name: 'accountingEntries',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'type',\n visibleByDefault: true,\n width: 70,\n },\n {\n column: 'number',\n visibleByDefault: true,\n width: 100,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'account',\n visibleByDefault: true,\n width: 310,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'task',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'timeOffType',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'documentDate',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'amountBC',\n visibleByDefault: false,\n width: 140,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'mode',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'legalEntity',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'projectCostCenter',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'department',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n ],\n columns: [\n ...getNamedEntityGridColumns(),\n\n {\n name: 'type',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: FinancialTypeCellComponent,\n header: 'finance.entries.list.columns.type.header',\n hint: 'finance.entries.list.columns.type.hint',\n },\n {\n name: 'number',\n fixedWidth: true,\n state: 'accountingEntry',\n type: GridColumnType.Navigation,\n header: 'finance.entries.list.columns.number.header',\n hint: 'finance.entries.list.columns.number.hint',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'account',\n fixedWidth: true,\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.account.header',\n hint: 'finance.entries.list.columns.account.hint',\n },\n {\n name: 'project',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.project.header',\n hint: 'finance.entries.list.columns.project.hint',\n },\n {\n name: 'task',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.task.header',\n hint: 'finance.entries.list.columns.task.hint',\n },\n {\n name: 'timeOffType',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.timeOffType.header',\n hint: 'finance.entries.list.columns.timeOffType.hint',\n },\n {\n name: 'date',\n fixedWidth: true,\n type: GridColumnType.Date,\n header: 'finance.entries.list.columns.date.header',\n hint: 'finance.entries.list.columns.date.hint',\n },\n {\n name: 'documentDate',\n fixedWidth: true,\n type: GridColumnType.Date,\n header: 'finance.entries.list.columns.documentDate.header',\n hint: 'finance.entries.list.columns.documentDate.hint',\n },\n {\n name: 'amount',\n fixedWidth: true,\n type: GridColumnType.Currency,\n header: 'finance.entries.list.columns.amount.header',\n hint: 'finance.entries.list.columns.amount.hint',\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'amountBC',\n fixedWidth: true,\n type: GridColumnType.Currency,\n header: 'finance.entries.list.columns.amountBC.header',\n hint: 'finance.entries.list.columns.amountBC.hint',\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'description',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.description.header',\n hint: 'finance.entries.list.columns.description.hint',\n },\n {\n name: 'mode',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.mode.header',\n hint: 'finance.entries.list.columns.mode.hint',\n },\n {\n name: 'legalEntity',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.legalEntity.header',\n hint: 'finance.entries.list.columns.legalEntity.hint',\n },\n {\n name: 'projectCostCenter',\n type: GridColumnType.String,\n header: 'finance.entries.list.columns.projectCostCenter.header',\n hint: 'finance.entries.list.columns.projectCostCenter.hint',\n },\n {\n name: 'department',\n type: GridColumnType.String,\n header: 'shared2.props.department',\n hint: 'shared2.props.department',\n },\n ],\n dataColumns: [\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'task',\n field: 'projectTask.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'timeOffType',\n field: 'timeOffType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'account',\n field: 'account.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'type',\n field: ['account.type.name', 'account.type.code'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amount',\n field: 'amount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amountBC',\n field: 'amountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'number',\n field: 'number',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'date',\n field: 'date',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'documentDate',\n field: 'documentDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'mode',\n field: 'mode.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'projectCurrency',\n field: ['project.currency.alpha3Code', 'project.currency.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'legalEntity',\n field: 'legalEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'projectCostCenter',\n field: 'projectCostCenter.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ...getNamedEntityDataColumns(),\n ],\n\n dataCollection: 'AccountingEntries',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const ACCOUNTING_PERIOD_LIST: List = {\n version: 1,\n name: 'accounting-periods',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'start',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'end',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'accountingPeriod',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'start',\n header: 'finance.periods.card.properties.start',\n hint: 'finance.periods.card.properties.start',\n type: GridColumnType.Date,\n },\n {\n name: 'end',\n header: 'finance.periods.card.properties.end',\n hint: 'finance.periods.card.properties.end',\n type: GridColumnType.Date,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'finance.periods.card.properties.isOpen',\n hint: 'finance.periods.card.properties.isOpen',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'start',\n field: 'start',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'end',\n field: 'end',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'AccountingPeriods',\n};\n","import { ActTaskCellComponent } from 'src/app/acts-of-acceptance/card/act-task-cell/act-task-cell.component';\n\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport {\n GridComponentColumn,\n GridColumnType,\n GridCurrencyControlColumn,\n GridNumberControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const ACT_LINE_LIST: List = {\n version: 3,\n name: 'actLine',\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'projectTask',\n visibleByDefault: true,\n width: 300,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 300,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 140,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'exchangeRate',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'amountBC',\n visibleByDefault: false,\n width: 140,\n totalByDefault: TotalType.Sum,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'projectTask',\n type: GridColumnType.Component,\n component: ActTaskCellComponent,\n header: 'acts.card.columns.task.header',\n hint: 'acts.card.columns.task.hint',\n },\n {\n name: 'description',\n header: 'acts.card.columns.description.header',\n hint: 'acts.card.columns.description.hint',\n type: GridColumnType.StringControl,\n },\n {\n name: 'amount',\n header: 'acts.card.columns.amount.header',\n hint: 'acts.card.columns.amount.hint',\n type: GridColumnType.CurrencyControl,\n allowNull: false,\n controlType: 'currency',\n isEditableCurrency: false,\n forceCellUpdating: true,\n },\n {\n name: 'exchangeRate',\n header: 'acts.card.columns.exchangeRate.header',\n hint: 'acts.card.columns.exchangeRate.hint',\n type: GridColumnType.NumberControl,\n allowNull: false,\n controlType: 'decimal',\n precision: 13,\n forceCellUpdating: true,\n },\n {\n name: 'amountBC',\n header: 'acts.card.columns.amountBC.header',\n hint: 'acts.card.columns.amountBC.hint',\n type: GridColumnType.Currency,\n forceCellUpdating: true,\n },\n ],\n dataColumns: [\n {\n column: 'projectTask',\n field: 'projectTask',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amount',\n field: 'amount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'exchangeRate',\n field: 'exchangeRate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amountBC',\n field: 'amountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const ACT_OF_ACCEPTANCE_LIST: List = {\n version: 3,\n name: 'acts',\n customFieldEntityType: 'ActOfAcceptance',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'number',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'dateOfAcceptance',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amountBC',\n visibleByDefault: true,\n width: 130,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: false },\n },\n {\n name: 'with-my-workflow',\n order: { column: 'created', reverse: false },\n contextFilter: getFilterByActiveWorkflowInstances(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'number',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'dateOfAcceptance',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amountBC',\n visibleByDefault: true,\n width: 130,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n },\n {\n name: 'with-my-task',\n order: { column: 'created', reverse: false },\n contextFilter: getFilterByActiveWorkflowTasks(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'number',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'dateOfAcceptance',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'amountBC',\n visibleByDefault: true,\n width: 130,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'actOfAcceptance',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'number',\n header: 'acts.list.columns.number.header',\n hint: 'acts.list.columns.number.hint',\n type: GridColumnType.String,\n fixedWidth: true,\n },\n {\n name: 'organization',\n header: 'acts.list.columns.organization',\n hint: 'acts.list.columns.organization',\n type: GridColumnType.String,\n },\n {\n name: 'project',\n header: 'acts.list.columns.project',\n hint: 'acts.list.columns.project',\n type: GridColumnType.String,\n },\n {\n name: 'date',\n header: 'acts.list.columns.date',\n hint: 'acts.list.columns.date',\n type: GridColumnType.Date,\n fixedWidth: true,\n },\n {\n name: 'dateOfAcceptance',\n header: 'acts.list.columns.dateOfAcceptance',\n hint: 'acts.list.columns.dateOfAcceptance',\n type: GridColumnType.Date,\n fixedWidth: true,\n },\n {\n name: 'amount',\n header: 'acts.list.columns.amount.header',\n hint: 'acts.list.columns.amount.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'currencyCode',\n fixedWidth: true,\n },\n {\n name: 'amountBC',\n header: 'acts.list.columns.amountBC.header',\n hint: 'acts.list.columns.amountBC.hint',\n type: GridColumnType.Currency,\n fixedWidth: true,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'state',\n header: 'acts.list.columns.state.header',\n hint: 'acts.list.columns.state.hint',\n fixedWidth: true,\n type: GridColumnType.State,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'currencyCode',\n field: 'project.currency.alpha3Code',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'number',\n field: 'number',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'organization',\n field: 'project.organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'date',\n field: 'date',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dateOfAcceptance',\n field: 'dateOfAcceptance',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amount',\n field: 'amount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'amountBC',\n field: 'amountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'ActsOfAcceptance',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ActivityList: List = {\n version: 1,\n name: 'activities',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.activity',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Activities',\n};\n","import { TotalType } from 'src/app/shared/models/inner/total-type';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport {\n GridColumnType,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const BILLING_SUMMARY_LIST: List = {\n version: 3,\n name: 'billingSummary',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'organization',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'projectCurrency',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'hours',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'timeAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'timeAmountPC',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expenseAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'expenseAmountPC',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'customAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'customAmountPC',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'organization', reverse: false },\n },\n ],\n columns: [\n {\n name: 'organization',\n type: GridColumnType.Entity,\n header: 'billing.summary.columns.organization.header',\n hint: 'billing.summary.columns.organization.hint',\n },\n {\n name: 'project',\n type: GridColumnType.Entity,\n header: 'billing.summary.columns.project',\n hint: 'billing.summary.columns.project',\n },\n {\n name: 'projectCurrency',\n type: GridColumnType.Entity,\n header: 'billing.summary.columns.projectCurrency',\n hint: 'billing.summary.columns.projectCurrency',\n },\n {\n name: 'timeAmountBC',\n type: GridColumnType.Currency,\n header: 'billing.summary.columns.timeAmountBC.header',\n hint: 'billing.summary.columns.timeAmountBC.hint',\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'timeAmountPC',\n type: GridColumnType.Currency,\n header: 'billing.summary.columns.timeAmountPC.header',\n hint: 'billing.summary.columns.timeAmountPC.hint',\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'expenseAmountBC',\n header: 'billing.summary.columns.expenseAmountBC.header',\n hint: 'billing.summary.columns.expenseAmountBC.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'expenseAmountPC',\n header: 'billing.summary.columns.expenseAmountPC.header',\n hint: 'billing.summary.columns.expenseAmountPC.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'customAmountBC',\n header: 'billing.summary.columns.customAmountBC.header',\n hint: 'billing.summary.columns.customAmountBC.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'customAmountPC',\n header: 'billing.summary.columns.customAmountPC.header',\n hint: 'billing.summary.columns.customAmountPC.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'costBC',\n header: 'billing.summary.columns.costBC.header',\n hint: 'billing.summary.columns.costBC.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'costPC',\n header: 'billing.summary.columns.costPC.header',\n hint: 'billing.summary.columns.costPC.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'hours',\n header: 'billing.summary.columns.hours.header',\n hint: 'billing.summary.columns.hours.hint',\n type: GridColumnType.Work,\n availableTotals: [TotalType.Sum],\n },\n ],\n dataColumns: [\n {\n column: 'organization',\n field: ['organization.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'project',\n field: ['project.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'timeAmountBC',\n field: 'timeAmountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'timeAmountPC',\n field: 'timeAmountPC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'expenseAmountBC',\n field: 'expenseAmountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'expenseAmountPC',\n field: 'expenseAmountPC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'customAmountBC',\n field: 'customAmountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'customAmountPC',\n field: 'customAmountPC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'costBC',\n field: 'costBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'costPC',\n field: 'costPC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'hours',\n field: 'hours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'projectCurrency',\n field: ['project.currency.alpha3Code', 'project.currency.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CALCULATED_FIELD_LIST: List = {\n version: 1,\n name: 'calculatedFields',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'reportType',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'calculatedField',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'reportType',\n type: GridColumnType.String,\n header: 'analytics.calculatedFields.list.type.title',\n hint: 'analytics.calculatedFields.list.type.title',\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'reportType',\n field: 'reportType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'CalculatedFields',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\n\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const CERTIFICATES_LIST: List = {\n version: 3,\n name: 'certificates',\n customFieldEntityType: 'Certificate',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'owner',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n ],\n },\n\n {\n name: 'my',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'owner',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n ],\n\n contextFilter: [{ ownerId: { type: 'guid', value: '#user' } }],\n },\n\n {\n name: 'with-my-workflow',\n contextFilter: getFilterByActiveWorkflowInstances(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'owner',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n ],\n },\n\n {\n name: 'with-my-task',\n contextFilter: getFilterByActiveWorkflowTasks(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'owner',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'expiryDate',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'certificate',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'owner',\n type: GridColumnType.String,\n header: 'team.certificates.list.columns.owner.header',\n hint: 'team.certificates.list.columns.owner.hint',\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n fixedWidth: true,\n },\n {\n name: 'effectiveDate',\n type: GridColumnType.Date,\n header: 'team.certificates.list.columns.effectiveDate.header',\n hint: 'team.certificates.list.columns.effectiveDate.hint',\n },\n {\n name: 'expiryDate',\n type: GridColumnType.Date,\n header: 'team.certificates.list.columns.expiryDate.header',\n hint: 'team.certificates.list.columns.expiryDate.hint',\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'owner',\n field: 'owner.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'effectiveDate',\n field: 'effectiveDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'expiryDate',\n field: 'expiryDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Certificates',\n};\n","import { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { ViewColumn } from 'src/app/shared/models/inner/view';\nimport {\n DATE_TIME_COLUMN_WIDTH,\n getCodedEntityDataColumns,\n getCodedEntityGridColumns,\n IS_ACTIVE_COLUMN_WIDTH,\n} from 'src/app/shared/helpers/list.helper';\n\nconst VIEW_COLUMNS: ViewColumn[] = [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'manager',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'contact',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'contactEmail',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'site',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'phone',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'projectsCount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'legalName',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'legalTaxNumber',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'legalRegistrationNumber',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'legalIncome',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'legalHeadCount',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'legalLastAutoUpdated',\n visibleByDefault: false,\n width: 1,\n },\n\n {\n column: 'isActive',\n visibleByDefault: false,\n width: IS_ACTIVE_COLUMN_WIDTH,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenueOverPeriod',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualCost',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualCostOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n];\n\nexport const CLIENT_LIST: List = {\n version: 3,\n name: 'clients',\n dataCollection: 'OrganizationTotals',\n customFieldEntityType: 'Organization',\n customFieldPrefixForDataField: 'organization.',\n views: [\n {\n name: 'all',\n columns: VIEW_COLUMNS,\n order: {\n column: 'name',\n reverse: false,\n },\n },\n {\n name: 'my',\n columns: VIEW_COLUMNS,\n contextFilter: [\n {\n organization: {\n managerId: {\n type: 'guid',\n value: '#user',\n },\n },\n },\n ],\n order: {\n column: 'name',\n reverse: false,\n },\n },\n {\n name: 'active',\n columns: VIEW_COLUMNS,\n contextFilter: [{ organization: { isActive: true } }],\n order: {\n column: 'name',\n reverse: false,\n },\n },\n ],\n\n columns: [\n ...getCodedEntityGridColumns('client'),\n\n {\n name: 'description',\n type: GridColumnType.String,\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n },\n {\n name: 'manager',\n type: GridColumnType.String,\n header: 'projects.clients.list.columns.manager.header',\n hint: 'projects.clients.list.columns.manager.hint',\n },\n {\n name: 'contact',\n type: GridColumnType.String,\n header: 'projects.clients.list.columns.contact.header',\n hint: 'projects.clients.list.columns.contact.hint',\n },\n {\n name: 'contactEmail',\n type: GridColumnType.Email,\n header: 'projects.clients.list.columns.email.header',\n hint: 'projects.clients.list.columns.email.hint',\n },\n {\n name: 'site',\n type: GridColumnType.Url,\n header: 'projects.clients.list.columns.website.header',\n hint: 'projects.clients.list.columns.website.hint',\n },\n {\n name: 'phone',\n type: GridColumnType.Phone,\n header: 'projects.clients.list.columns.phone.header',\n hint: 'projects.clients.list.columns.phone.hint',\n },\n {\n name: 'projectsCount',\n type: GridColumnType.Integer,\n availableTotals: [TotalType.Sum],\n header: 'projects.clients.list.columns.projectsCount.header',\n hint: 'projects.clients.list.columns.projectsCount.hint',\n },\n\n {\n name: 'legalName',\n type: GridColumnType.String,\n header: 'projects.clients.list.columns.legalName',\n hint: 'projects.clients.list.columns.legalName',\n },\n {\n name: 'legalTaxNumber',\n type: GridColumnType.String,\n header: 'projects.clients.list.columns.legalTaxNumber',\n hint: 'projects.clients.list.columns.legalTaxNumber',\n },\n {\n name: 'legalRegistrationNumber',\n type: GridColumnType.String,\n header: 'projects.clients.list.columns.legalRegistrationNumber',\n hint: 'projects.clients.list.columns.legalRegistrationNumber',\n },\n {\n name: 'legalIncome',\n type: GridColumnType.Currency,\n header: 'projects.clients.list.columns.legalIncome',\n hint: 'projects.clients.list.columns.legalIncome',\n },\n {\n name: 'legalHeadCount',\n type: GridColumnType.Integer,\n header: 'projects.clients.list.columns.legalHeadCount',\n hint: 'projects.clients.list.columns.legalHeadCount',\n },\n {\n name: 'legalLastAutoUpdated',\n type: GridColumnType.DateTime,\n header: 'projects.clients.list.columns.legalLastAutoUpdated',\n hint: 'projects.clients.list.columns.legalLastAutoUpdated',\n },\n {\n name: 'plannedExpenses',\n header: 'projects.projects.list.columns.plannedExpensesBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedExpensesOverPeriod',\n header:\n 'projects.projects.list.columns.plannedExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpenses',\n header: 'projects.projects.list.columns.actualExpensesBC.header',\n hint: 'projects.projects.list.columns.actualExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpensesOverPeriod',\n header:\n 'projects.projects.list.columns.actualExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'actualCost',\n header: 'projects.projects.list.columns.actualCostBC.header',\n hint: 'projects.projects.list.columns.actualCostBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualCostOverPeriod',\n header: 'projects.projects.list.columns.actualCostOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualCostOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedRevenue',\n header: 'projects.projects.list.columns.plannedRevenueBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedRevenueOverPeriod',\n header:\n 'projects.projects.list.columns.plannedRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenue',\n header: 'projects.projects.list.columns.actualRevenueBC.header',\n hint: 'projects.projects.list.columns.actualRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenueOverPeriod',\n header: 'projects.projects.list.columns.actualRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfit',\n header: 'projects.projects.list.columns.plannedProfitBC.header',\n hint: 'projects.projects.list.columns.plannedProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfitOverPeriod',\n header: 'projects.projects.list.columns.plannedProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfit',\n header: 'projects.projects.list.columns.actualProfitBC.header',\n hint: 'projects.projects.list.columns.actualProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfitOverPeriod',\n header: 'projects.projects.list.columns.actualProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfitability',\n header: 'projects.projects.list.columns.plannedProfitabilityBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'plannedProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitability',\n header: 'projects.projects.list.columns.actualProfitabilityBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'estimatedHours',\n header: 'projects.projects.list.columns.estimatedHours.header',\n hint: 'projects.projects.list.columns.estimatedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'actualHours',\n header: 'projects.projects.list.columns.actualHours.header',\n hint: 'projects.projects.list.columns.actualHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'actualHoursOverPeriod',\n header: 'projects.projects.list.columns.actualHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.actualHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'plannedHours',\n header: 'projects.projects.list.columns.plannedHours.header',\n hint: 'projects.projects.list.columns.plannedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'plannedHoursOverPeriod',\n header: 'projects.projects.list.columns.plannedHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n ],\n\n dataColumns: [\n ...getCodedEntityDataColumns('organization'),\n\n {\n column: 'legalName',\n field: 'organization.legal.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalTaxNumber',\n field: 'organization.legal.taxNumber',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalRegistrationNumber',\n field: 'organization.legal.registrationNumber',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalIncome',\n field: 'organization.legal.income',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalHeadCount',\n field: 'organization.legal.headcount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalLastAutoUpdated',\n field: 'organization.legal.lastAutoUpdated',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'contact',\n field: 'organization.contact',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'contactEmail',\n field: 'organization.contactEmail',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'site',\n field: 'organization.site',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'phone',\n field: 'organization.phone',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'projectsCount',\n field: 'projectsCount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'description',\n field: 'organization.description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'manager',\n field: 'organization.manager.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'plannedExpenses',\n field: 'plannedExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedExpensesOverPeriod',\n field: 'plannedExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpenses',\n field: 'actualExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpensesOverPeriod',\n field: 'actualExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'actualCost',\n field: 'actualCost',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostOverPeriod',\n field: 'actualCostOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'plannedRevenue',\n field: 'plannedRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenueOverPeriod',\n field: 'plannedRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenue',\n field: 'actualRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenueOverPeriod',\n field: 'actualRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfit',\n field: 'plannedProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitOverPeriod',\n field: 'plannedProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfit',\n field: 'actualProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitOverPeriod',\n field: 'actualProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitability',\n field: 'plannedProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n field: 'plannedProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitability',\n field: 'actualProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n field: 'actualProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'estimatedHours',\n field: 'estimatedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHours',\n field: 'actualHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHoursOverPeriod',\n field: 'actualHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHours',\n field: 'plannedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHoursOverPeriod',\n field: 'plannedHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CompetencesList: List = {\n version: 1,\n name: 'competences',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'created',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'modified',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'isActive',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.competence',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'role',\n header: 'settings.competences.card.role',\n hint: 'settings.competences.card.role',\n type: GridColumnType.String,\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'role',\n field: 'role.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Competences',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CostNormalizationRuleList: List = {\n version: 2,\n name: 'activities',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.costNormalizationRule',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'CostNormalizationRules',\n};\n","import {\n GridColumnType,\n GridNumberControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CURRENCY_EXCHANGE_RATES_LIST: List = {\n version: 2,\n name: 'currency-exchange-rates',\n dataCollection: 'CurrencyExchangeRates',\n views: [\n {\n name: 'currency',\n columns: [\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'exchangeRate',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: {\n column: 'effectiveDate',\n reverse: true,\n },\n },\n ],\n columns: [\n {\n name: 'effectiveDate',\n availableTotals: [TotalType.Count],\n type: GridColumnType.Date,\n header:\n 'settings.currencies.card.props.currencyExchangeRates.columns.effectiveDate',\n hint: 'settings.currencies.card.props.currencyExchangeRates.columns.effectiveDate',\n },\n {\n name: 'exchangeRate',\n type: GridColumnType.Decimal,\n precision: 13,\n header:\n 'settings.currencies.card.props.currencyExchangeRates.columns.exchangeRate',\n hint: 'settings.currencies.card.props.currencyExchangeRates.columns.exchangeRate',\n },\n ],\n\n dataColumns: [\n {\n column: 'effectiveDate',\n field: 'effectiveDate',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'exchangeRate',\n field: 'exchangeRate',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CURRENCY_LIST: List = {\n version: 1,\n name: 'currencies',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.currency',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Currencies',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const CustomFieldList: List = {\n version: 2,\n name: 'customFields',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isShownInEntityListFilters',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isShownInEntityLists',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isShownInEntityForms',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isShownInReports',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isOnlyForApi',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.customField',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'type',\n header: 'settings.customFields.list.columns.type',\n hint: 'settings.customFields.list.columns.type',\n type: GridColumnType.String,\n },\n {\n name: 'entityType',\n header: 'settings.customFields.list.columns.entityType',\n hint: 'settings.customFields.list.columns.entityType',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isShownInEntityListFilters',\n header:\n 'settings.customFields.list.columns.isShownInEntityListFilters.header',\n hint: 'settings.customFields.list.columns.isShownInEntityListFilters.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isShownInEntityLists',\n header: 'settings.customFields.list.columns.isShownInEntityLists.header',\n hint: 'settings.customFields.list.columns.isShownInEntityLists.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isShownInEntityForms',\n header: 'settings.customFields.list.columns.isShownInEntityForms.header',\n hint: 'settings.customFields.list.columns.isShownInEntityForms.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isShownInReports',\n header: 'settings.customFields.list.columns.isShownInReports.header',\n hint: 'settings.customFields.list.columns.isShownInReports.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isOnlyForApi',\n header: 'settings.customFields.list.columns.isOnlyForApi.header',\n hint: 'settings.customFields.list.columns.isOnlyForApi.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityType',\n field: 'entityType',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'type',\n field: 'type',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isShownInEntityListFilters',\n field: 'isShownInEntityListFilters',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isShownInEntityLists',\n field: 'isShownInEntityLists',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isShownInEntityForms',\n field: 'isShownInEntityForms',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isShownInReports',\n field: 'isShownInReports',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isOnlyForApi',\n field: 'isOnlyForApi',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'CustomFields',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const DashboardList: List = {\n version: 1,\n name: 'dashboards',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n\n {\n column: 'isPublished',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'owner',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'lastUpdated',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'showInAnalytics',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'dashboard',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isPublished',\n type: GridColumnType.Boolean,\n header: 'analytics.dashboards.list.columns.isPublished',\n hint: 'analytics.dashboards.list.columns.isPublished',\n },\n {\n name: 'showInAnalytics',\n type: GridColumnType.Boolean,\n header: 'analytics.dashboards.list.columns.showInAnalytics',\n hint: 'analytics.dashboards.list.columns.showInAnalytics',\n },\n {\n name: 'owner',\n header: 'analytics.dashboards.list.columns.owner',\n hint: 'analytics.dashboards.list.columns.owner',\n type: GridColumnType.Entity,\n },\n {\n name: 'lastUpdated',\n header: 'analytics.dashboards.list.columns.lastUpdated',\n hint: 'analytics.dashboards.list.columns.lastUpdated',\n type: GridColumnType.Date,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isPublished',\n field: 'isPublished',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'showInAnalytics',\n field: 'showInAnalytics',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'owner',\n field: ['owner.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'lastUpdated',\n field: 'lastUpdated',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'Dashboards',\n};\n","import {\n GridNavigationColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const DepartmentList: List = {\n version: 1,\n name: 'departments',\n dataCollection: 'Departments',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'leadDepartment',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.department',\n availableTotals: [TotalType.Count],\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'code',\n type: GridColumnType.String,\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n },\n {\n name: 'created',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'leadDepartment',\n header: 'settings.departments.list.columns.leadDepartment',\n hint: 'settings.departments.list.columns.leadDepartment',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n type: GridColumnType.Boolean,\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'leadDepartment',\n field: 'leadDepartment.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport {\n GridColumnType,\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const EMPLOYEE_LIST: List = {\n version: 1,\n name: 'employees',\n customFieldEntityType: 'User',\n customFieldPrefixForDataField: 'user.',\n dataCollection: 'ExtendedEmployees',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n width: 2,\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'department',\n width: 2,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 2,\n visibleByDefault: false,\n },\n {\n column: 'supervisor',\n width: 2,\n visibleByDefault: false,\n },\n {\n column: 'email',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'phone',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'location',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'level',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'grade',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'competence',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'position',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'utilizationOverPeriod',\n width: 120,\n visibleByDefault: true,\n },\n\n {\n column: 'actualCostOverPeriod',\n width: 120,\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n width: 120,\n visibleByDefault: true,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n width: 120,\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'scheduleHours',\n width: 120,\n visibleByDefault: true,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'scheduleDeviation',\n width: 120,\n visibleByDefault: true,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.ResourceNavigation,\n state: 'employee',\n header: 'employees.list.columns.name',\n hint: 'employees.list.columns.name',\n availableTotals: [TotalType.Count],\n navigationType: NavigationType.User,\n } as GridNavigationColumn,\n {\n name: 'code',\n header: 'shared.props.code',\n hint: 'shared.pros.code',\n type: GridColumnType.String,\n },\n {\n name: 'department',\n header: 'shared.props.department',\n hint: 'shared.props.department',\n type: GridColumnType.String,\n },\n {\n name: 'resourcePool',\n header: 'shared.props.resourcePool',\n hint: 'shared.props.resourcePool',\n type: GridColumnType.String,\n },\n {\n name: 'supervisor',\n header: 'shared.props.supervisor',\n hint: 'shared.props.supervisor',\n type: GridColumnType.String,\n },\n {\n name: 'email',\n header: 'shared.props.email',\n hint: 'shared.props.email',\n type: GridColumnType.String,\n },\n {\n name: 'phone',\n header: 'shared.props.phone',\n hint: 'shared.props.phone',\n type: GridColumnType.String,\n },\n {\n name: 'location',\n header: 'shared.props.location',\n hint: 'shared.props.location',\n type: GridColumnType.String,\n },\n {\n name: 'level',\n header: 'shared.props.level',\n hint: 'shared.props.level',\n type: GridColumnType.String,\n },\n {\n name: 'grade',\n header: 'shared.props.grade',\n hint: 'shared.props.grade',\n type: GridColumnType.String,\n },\n {\n name: 'role',\n header: 'shared.props.role',\n hint: 'shared.props.role',\n type: GridColumnType.String,\n },\n {\n name: 'competence',\n header: 'shared.props.competence',\n hint: 'shared.props.competence',\n type: GridColumnType.String,\n },\n {\n name: 'position',\n header: 'shared.props.position',\n hint: 'shared.props.position',\n type: GridColumnType.String,\n },\n {\n name: 'utilizationOverPeriod',\n fixedWidth: true,\n header: 'employees.list.columns.utilizationOverPeriod.header',\n hint: 'employees.list.columns.utilizationOverPeriod.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualHoursOverPeriod',\n fixedWidth: true,\n header: 'employees.list.columns.actualHoursOverPeriod.header',\n hint: 'employees.list.columns.actualHoursOverPeriod.hint',\n type: GridColumnType.Work,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'actualCostOverPeriod',\n fixedWidth: true,\n header: 'employees.list.columns.actualCostOverPeriod.header',\n hint: 'employees.list.columns.actualCostOverPeriod.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'actualRevenueOverPeriod',\n fixedWidth: true,\n header: 'employees.list.columns.actualRevenueOverPeriod.header',\n hint: 'employees.list.columns.actualRevenueOverPeriod.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'scheduleDeviation',\n fixedWidth: true,\n header: 'employees.list.columns.scheduleDeviation.header',\n hint: 'employees.list.columns.scheduleDeviation.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'scheduleHours',\n fixedWidth: true,\n header: 'employees.list.columns.scheduleHours.header',\n hint: 'employees.list.columns.scheduleHours.hint',\n type: GridColumnType.Work,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'created',\n header: 'shared.columns.created.hint',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.hint',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'user.code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'location',\n field: 'user.location.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'level',\n field: 'user.level.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'grade',\n field: 'user.grade.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'user.role.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'competence',\n field: 'user.competence.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'email',\n field: 'user.email',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'position',\n field: 'user.position',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'phone',\n field: 'user.phone',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'user.department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resourcePool',\n field: 'user.resourcePool.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'supervisor',\n field: 'user.supervisor.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalEntity',\n field: 'user.legalEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'user.isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'user.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'user.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'user.createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'user.modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'utilizationOverPeriod',\n field: 'extended.utilizationOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHoursOverPeriod',\n field: 'extended.actualHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostOverPeriod',\n field: 'extended.actualCostOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenueOverPeriod',\n field: 'extended.actualRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'scheduleDeviation',\n field: 'extended.scheduleDeviationOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'scheduleHours',\n field: 'extended.scheduleHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { List } from 'src/app/shared/models/inner/list';\nimport { ExpenseTaskCellComponent } from 'src/app/expenses-requests/card/details/expense-task-cell/expense-task-cell.component';\nimport { ExpenseTaskReadonlyCellComponent } from 'src/app/expenses-requests/card/details/expense-task-cell/expense-task-readonly-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n GridCurrencyControlColumn,\n GridDateControlColumn,\n GridFileBoxColumn,\n GridNumberControlColumn,\n GridSelectControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const EXPENSE_REQUEST_LINE_LIST: List = {\n name: 'expensesRequestLines',\n version: 7,\n customFieldEntityType: 'ExpenseRequestLine',\n editableCustomFields: true,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'date',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'account',\n visibleByDefault: true,\n width: 280,\n },\n {\n column: 'projectTask',\n visibleByDefault: false,\n width: 310,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'exchangeRate',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'amountBC',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'amountPC',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'amountRC',\n visibleByDefault: false,\n width: 100,\n },\n {\n column: 'reimburse',\n visibleByDefault: true,\n width: 85,\n },\n {\n column: 'billable',\n visibleByDefault: true,\n width: 85,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 300,\n },\n {\n column: 'attachment',\n visibleByDefault: true,\n width: 95,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'date',\n header: 'expenses.card.columns.date.header',\n hint: 'expenses.card.columns.date.hint',\n type: GridColumnType.DateControl,\n },\n {\n name: 'account',\n header: 'shared2.props.financialAccount',\n hint: 'shared2.props.financialAccount',\n placeholder: 'shared2.props.financialAccount',\n type: GridColumnType.SelectControl,\n collection: 'FinancialAccounts',\n query: {\n filter: {\n isSystem: false,\n },\n },\n },\n {\n name: 'amount',\n header: 'expenses.card.columns.amount.header',\n hint: 'expenses.card.columns.amount.hint',\n type: GridColumnType.CurrencyControl,\n allowNull: false,\n controlType: 'currency',\n isCurrencyEditable: true,\n },\n {\n name: 'exchangeRate',\n header: 'expenses.card.columns.exchangeRate.header',\n hint: 'expenses.card.columns.exchangeRate.hint',\n type: GridColumnType.NumberControl,\n allowNull: false,\n controlType: 'decimal',\n precision: 13,\n },\n {\n name: 'amountBC',\n header: 'expenses.card.columns.amountBC.header',\n hint: 'expenses.card.columns.amountBC.hint',\n type: GridColumnType.Currency,\n allowNull: false,\n forceCellUpdating: true,\n },\n {\n name: 'amountPC',\n header: 'expenses.card.columns.amountPC.header',\n hint: 'expenses.card.columns.amountPC.hint',\n type: GridColumnType.Currency,\n allowNull: false,\n forceCellUpdating: true,\n },\n {\n name: 'amountRC',\n header: 'expenses.card.columns.amountRC.header',\n hint: 'expenses.card.columns.amountRC.hint',\n type: GridColumnType.Currency,\n allowNull: false,\n forceCellUpdating: true,\n },\n {\n name: 'reimburse',\n header: 'expenses.card.columns.reimburse.header',\n hint: 'expenses.card.columns.reimburse.hint',\n type: GridColumnType.BooleanControl,\n },\n {\n name: 'billable',\n header: 'expenses.card.columns.billable.header',\n hint: 'expenses.card.columns.billable.hint',\n type: GridColumnType.BooleanControl,\n },\n {\n name: 'description',\n header: 'expenses.card.columns.description.header',\n hint: 'expenses.card.columns.description.hint',\n type: GridColumnType.StringControl,\n },\n {\n name: 'attachment',\n header: 'expenses.card.columns.attachment.header',\n hint: 'expenses.card.columns.attachment.hint',\n type: GridColumnType.FileBox,\n entityType: 'ExpenseRequestLine',\n getDefaultValue: () => null,\n },\n {\n name: 'projectTask',\n header: 'expenses.card.columns.task.header',\n hint: 'expenses.card.columns.task.hint',\n type: GridColumnType.Component,\n component: ExpenseTaskCellComponent,\n readonlyComponent: ExpenseTaskReadonlyCellComponent,\n getDefaultValue: () => null,\n },\n ],\n\n dataColumns: [],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\n\nimport { TotalType } from '../models/inner/total-type';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const EXPENSES_LIST: List = {\n version: 4,\n name: 'expenses',\n dataCollection: 'ExpenseRequests',\n customFieldEntityType: 'ExpenseRequest',\n views: [\n {\n name: 'my-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'client',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementRC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalBillable',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n ],\n order: { column: 'date', reverse: false },\n contextFilter: [{ userId: { type: 'guid', value: '#user' } }],\n },\n\n {\n name: 'team-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'client',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementBC',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementRC',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalBillable',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'client',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementBC',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalReimbursementRC',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'totalBillable',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n {\n name: 'with-my-task',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'client',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n contextFilter: [getFilterByActiveWorkflowTasks()],\n },\n\n {\n name: 'with-my-workflow',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'client',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n contextFilter: [getFilterByActiveWorkflowInstances()],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n header: 'expenses.list.columns.name.header',\n hint: 'expenses.list.columns.name.hint',\n state: 'expensesRequest',\n } as GridNavigationColumn,\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n },\n\n {\n name: 'created',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'project',\n header: 'expenses.list.columns.project.header',\n hint: 'expenses.list.columns.project.hint',\n type: GridColumnType.String,\n },\n {\n name: 'client',\n header: 'expenses.list.columns.client.header',\n hint: 'expenses.list.columns.client.hint',\n type: GridColumnType.String,\n },\n {\n name: 'date',\n header: 'expenses.list.columns.date.header',\n hint: 'expenses.list.columns.date.hint',\n type: GridColumnType.Date,\n },\n\n {\n name: 'description',\n header: 'expenses.list.columns.description.header',\n hint: 'expenses.list.columns.description.hint',\n type: GridColumnType.String,\n },\n\n {\n name: 'user',\n header: 'expenses.list.columns.user.header',\n hint: 'expenses.list.columns.user.hint',\n type: GridColumnType.String,\n },\n\n {\n name: 'totalAmount',\n header: 'expenses.list.columns.totalAmount.header',\n hint: 'expenses.list.columns.totalAmount.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'totalReimbursementBC',\n header: 'expenses.list.columns.totalReimbursementBC.header',\n hint: 'expenses.list.columns.totalReimbursementBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'totalReimbursementRC',\n header: 'expenses.list.columns.totalReimbursementRC.header',\n hint: 'expenses.list.columns.totalReimbursementRC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n currencyCodeProperty: 'reimbursementCurrency',\n type: GridColumnType.Currency,\n },\n {\n name: 'reimbursementCurrency',\n header: 'expenses.list.columns.reimbursementCurrency.header',\n hint: 'expenses.list.columns.reimbursementCurrency.hint',\n type: GridColumnType.String,\n },\n {\n name: 'totalBillable',\n header: 'expenses.list.columns.totalBillable.header',\n hint: 'expenses.list.columns.totalBillable.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'client',\n field: 'project.organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'date',\n field: 'date',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalAmount',\n field: 'totalAmount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalReimbursementBC',\n field: 'totalReimbursementBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalReimbursementRC',\n field: 'totalReimbursementRC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'reimbursementCurrency',\n field: 'reimbursementCurrency.alpha3Code',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'totalBillable',\n field: 'totalBillable',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const FINANCIAL_ACCOUNT_LIST: List = {\n version: 5,\n name: 'financialAccount',\n dataCollection: 'FinancialAccounts',\n customFieldEntityType: 'FinancialAccount',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'group',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isSystem',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'includedInBalance',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.financialAccount',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'code',\n type: GridColumnType.String,\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isSystem',\n header: 'shared2.props.isSystem',\n hint: 'shared2.props.isSystem',\n type: GridColumnType.Boolean,\n },\n {\n name: 'includedInBalance',\n header: 'shared2.props.includedInBalance.short',\n hint: 'shared2.props.includedInBalance.value',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isSystem',\n field: 'isSystem',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'includedInBalance',\n field: 'includedInBalance',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const GRADE_LIST: List = {\n version: 2,\n name: 'grades',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'level',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.grade',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'level',\n header: 'settings.grades.list.columns.level',\n hint: 'settings.grades.list.columns.level',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'level',\n field: 'level.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Grades',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const GROUP_LIST: List = {\n version: 1,\n name: 'Groups',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.group',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Groups',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const HISTORY_LOG: List = {\n version: 1,\n name: 'history-log',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'user',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'type',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityName',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityId',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: true },\n },\n ],\n\n columns: [\n {\n name: 'user',\n type: GridColumnType.Navigation,\n state: 'settings.historyLogCard',\n header: 'settings.historyLog.list.columns.user',\n hint: 'settings.historyLog.list.columns.user',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'type',\n header: 'settings.historyLog.list.columns.type',\n hint: 'settings.historyLog.list.columns.type',\n type: GridColumnType.String,\n },\n {\n name: 'entityType',\n header: 'settings.historyLog.list.columns.entityType',\n hint: 'settings.historyLog.list.columns.entityType',\n type: GridColumnType.String,\n },\n {\n name: 'entityName',\n header: 'settings.historyLog.list.columns.entityName',\n hint: 'settings.historyLog.list.columns.entityName',\n type: GridColumnType.String,\n },\n {\n name: 'entityId',\n header: 'settings.historyLog.list.columns.entityId',\n hint: 'settings.historyLog.list.columns.entityId',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'user',\n field: 'user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityType',\n field: 'entityType',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityName',\n field: 'entityName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityId',\n field: 'entityId',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'type',\n field: 'type',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'HistoryLogEntries',\n};\n","import { GridColumnType } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const ImportEntityList: List = {\n version: 1,\n name: 'importEntities',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entityName',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'entityId',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'entityName', reverse: true },\n },\n ],\n columns: [\n {\n name: 'entityType',\n type: GridColumnType.String,\n header: 'settings.imports.card.columns.type',\n hint: 'settings.imports.card.columns.type',\n },\n {\n name: 'entityName',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n },\n {\n name: 'entityId',\n header: 'settings.imports.card.columns.id',\n hint: 'settings.imports.card.columns.id',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'entityType',\n field: 'entityType',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityName',\n field: 'entityName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityId',\n field: 'entityId',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'ImportEntities',\n};\n","import {\n GridColumnType,\n GridComponentColumn,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { ImportStateCellComponent } from 'src/app/settings-app/import/list/import-state-cell/import-state-cell.component';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ImportList: List = {\n version: 1,\n name: 'imports',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: true },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.import',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n component: ImportStateCellComponent,\n type: GridColumnType.Component,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: ['state.name', 'state.code'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Imports',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { ViewColumn } from 'src/app/shared/models/inner/view';\nimport { DateTime } from 'luxon';\n\nconst DEFAULT_VIEW_COLUMNS: ViewColumn[] = [\n {\n column: 'type',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 1,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 160,\n },\n {\n column: 'isPlanned',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'performer',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'client',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'deal',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'contacts',\n visibleByDefault: true,\n width: 1,\n },\n];\n\nexport const INTERACTIONS_LIST: List = {\n version: 1,\n name: 'interactions',\n views: [\n {\n name: 'all',\n columns: DEFAULT_VIEW_COLUMNS,\n order: { column: 'date', reverse: true },\n },\n {\n name: 'all-overdue',\n columns: DEFAULT_VIEW_COLUMNS,\n order: { column: 'date', reverse: true },\n contextFilter: [\n {\n isPlanned: true,\n date: {\n le: { type: 'raw', value: DateTime.now().toISODate() },\n },\n },\n ],\n },\n {\n name: 'my-overdue',\n columns: DEFAULT_VIEW_COLUMNS,\n order: { column: 'date', reverse: true },\n contextFilter: [\n {\n performerId: { type: 'guid', value: '#user' },\n date: {\n le: { type: 'raw', value: DateTime.now().toISODate() },\n },\n isPlanned: true,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'type',\n header: 'components.interactionFormComponent.props.interactionType',\n hint: 'components.interactionFormComponent.props.interactionType',\n type: GridColumnType.String,\n availableTotals: [TotalType.Count],\n },\n\n {\n name: 'client',\n type: GridColumnType.Navigation,\n state: 'client',\n stateParams: {\n fromRow: {\n entityId: 'client.id',\n },\n },\n header: 'shared2.props.client',\n hint: 'shared2.props.client',\n },\n {\n name: 'deal',\n type: GridColumnType.Navigation,\n state: 'deal',\n stateParams: {\n fromRow: {\n entityId: 'deal.id',\n },\n },\n header: 'shared2.props.deal',\n hint: 'shared2.props.deal',\n },\n {\n name: 'performer',\n type: GridColumnType.User,\n header: 'shared2.props.performer',\n hint: 'shared2.props.performer',\n },\n {\n name: 'date',\n state: 'interaction',\n stateParams: {\n fromRow: {\n entityId: 'id',\n },\n },\n header: 'shared2.props.dateTime',\n hint: 'shared2.props.dateTime',\n type: GridColumnType.Navigation,\n navigationType: NavigationType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'isPlanned',\n header: 'components.interactionFormComponent.props.isPlanned',\n hint: 'components.interactionFormComponent.props.isPlanned',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n },\n ],\n\n dataColumns: [\n {\n column: 'date',\n field: 'date',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isPlanned',\n field: 'isPlanned',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'type',\n field: 'type.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'client',\n field: ['organization.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'deal',\n field: ['deal.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'performer',\n field: ['performer.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Interactions',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const InvoiceTemplateList: List = {\n version: 1,\n name: 'invoice-template',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.invoiceTemplate',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'InvoiceTemplates',\n};\n","import { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { DateTime } from 'luxon';\nimport { Invoice } from '../models/entities/billing/invoice.model';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const INVOICE_LIST: List = {\n version: 5,\n name: 'invoices',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'issueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'overdue',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'issueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n contextFilter: [\n {\n not: [\n {\n stateId: {\n in: { type: 'guid', value: Invoice.systemStateIds },\n },\n },\n ],\n },\n {\n paymentDueDate: {\n lt: { type: 'raw', value: DateTime.now().toISODate() },\n },\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'projects-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'issueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'with-my-workflow',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowInstances(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'issueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n },\n {\n name: 'with-my-task',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowTasks(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'organization',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'project',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmount',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'totalAmountBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'issueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'paymentDueDate',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'invoice',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'number',\n header: 'billing.invoices.list.columns.number.header',\n hint: 'billing.invoices.list.columns.number.hint',\n type: GridColumnType.String,\n },\n {\n name: 'user',\n header: 'billing.invoices.list.columns.user.header',\n hint: 'billing.invoices.list.columns.user.hint',\n type: GridColumnType.String,\n },\n {\n name: 'organization',\n header: 'billing.invoices.list.columns.organization.header',\n hint: 'billing.invoices.list.columns.organization.hint',\n type: GridColumnType.String,\n },\n {\n name: 'project',\n header: 'billing.invoices.list.columns.project.header',\n hint: 'billing.invoices.list.columns.project.hint',\n type: GridColumnType.String,\n },\n {\n name: 'state',\n header: 'billing.invoices.list.columns.state.header',\n hint: 'billing.invoices.list.columns.state.hint',\n fixedWidth: true,\n type: GridColumnType.State,\n },\n {\n name: 'paymentDueDate',\n header: 'billing.invoices.list.columns.paymentDueDate.header',\n hint: 'billing.invoices.list.columns.paymentDueDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'paymentDate',\n header: 'billing.invoices.list.columns.paymentDate.header',\n hint: 'billing.invoices.list.columns.paymentDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'issueDate',\n header: 'billing.invoices.list.columns.issueDate.header',\n hint: 'billing.invoices.list.columns.issueDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'totalAmount',\n header: 'billing.invoices.list.columns.totalAmount.header',\n hint: 'billing.invoices.list.columns.totalAmount.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'currencyCode',\n },\n {\n name: 'totalAmountBC',\n header: 'billing.invoices.list.columns.totalAmountBC.header',\n hint: 'billing.invoices.list.columns.totalAmountBC.hint',\n type: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'number',\n field: 'number',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'organization',\n field: 'organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'paymentDueDate',\n field: 'paymentDueDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'paymentDate',\n field: 'paymentDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'issueDate',\n field: 'issueDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalAmount',\n field: 'totalAmount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalAmountBC',\n field: 'totalAmountBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'currencyCode',\n field: 'project.currency.alpha3Code',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n\n dataCollection: 'Invoices',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const LEGAL_ENTITY_LIST: List = {\n version: 2,\n name: 'legalEntity',\n customFieldEntityType: 'LegalEntity',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'currency',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n state: 'settings.legalEntity',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.Navigation,\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'currency',\n header: 'settings.legalEntity.currency.title',\n hint: 'settings.legalEntity.currency.hint',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'currency',\n field: 'currency.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'LegalEntities',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const LEVEL_LIST: List = {\n version: 1,\n name: 'grades',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.level',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n\n dataCollection: 'Levels',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const LIFECYCLE_LIST: List = {\n version: 2,\n name: 'lifecycles',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.lifecycle',\n header: 'settings.lifecycles.list.columns.entityType',\n hint: 'settings.lifecycles.list.columns.entityType',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n dataCollection: 'Lifecycles',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const LocationList: List = {\n version: 1,\n name: 'locations',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.location',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n\n dataCollection: 'Locations',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const LoginLogList: List = {\n version: 1,\n name: 'default',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'email',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isSuccessful',\n visibleByDefault: true,\n width: 100,\n },\n {\n column: 'ipAddress',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'authProvider',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: true },\n },\n ],\n columns: [\n {\n name: 'email',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.loginLogCard',\n header: 'settings.loginLog.list.columns.email',\n hint: 'settings.loginLog.list.columns.email',\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isSuccessful',\n header: 'settings.loginLog.list.columns.isSuccessful',\n hint: 'settings.loginLog.list.columns.isSuccessful',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n width: '100px',\n },\n {\n name: 'ipAddress',\n header: 'settings.loginLog.list.columns.ipAddress',\n hint: 'settings.loginLog.list.columns.ipAddress',\n type: GridColumnType.String,\n },\n {\n name: 'user',\n header: 'settings.loginLog.list.columns.user',\n hint: 'settings.loginLog.list.columns.user',\n type: GridColumnType.User,\n },\n {\n name: 'authProvider',\n header: 'settings.loginLog.list.columns.authProvider',\n hint: 'settings.loginLog.list.columns.authProvider',\n type: GridColumnType.Entity,\n },\n ],\n dataColumns: [\n {\n column: 'email',\n field: 'email',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isSuccessful',\n field: 'isSuccessful',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'ipAddress',\n field: 'ipAddress',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: ['user.id', 'user.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'authProvider',\n field: ['authProvider.id', 'authProvider.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'LoginLogEntries',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { TotalType } from 'src/app/shared/models/inner/total-type';\n\nexport const METAENTITY_LIST: List = {\n version: 2,\n name: 'metamodel',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'displayName',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'customizable',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'usedInBoards',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'usedInLogging',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'hasLifecycle',\n width: 1,\n visibleByDefault: true,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.metamodelCard',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'displayName',\n header: 'components.metamodelListComponent.props.displayName',\n hint: 'components.metamodelListComponent.props.displayName',\n type: GridColumnType.String,\n },\n {\n name: 'customizable',\n header: 'components.metamodelListComponent.props.customizable',\n hint: 'components.metamodelListComponent.props.customizable',\n type: GridColumnType.Boolean,\n },\n {\n name: 'usedInBoards',\n header: 'components.metamodelListComponent.props.usedInBoard',\n hint: 'components.metamodelListComponent.props.usedInBoard',\n type: GridColumnType.Boolean,\n },\n {\n name: 'usedInLogging',\n header: 'components.metamodelListComponent.props.usedInLogging',\n hint: 'components.metamodelListComponent.props.usedInLogging',\n type: GridColumnType.Boolean,\n },\n {\n name: 'hasLifecycle',\n header: 'components.metamodelListComponent.props.hasLifecycle',\n hint: 'components.metamodelListComponent.props.hasLifecycle',\n type: GridColumnType.Boolean,\n },\n {\n name: 'hierarchyProperty',\n header: 'components.metamodelListComponent.props.hierarchyProperty',\n hint: 'components.metamodelListComponent.props.hierarchyProperty',\n type: GridColumnType.String,\n },\n ],\n};\n","export function getFilterByActiveWorkflowInstances(): any {\n return {\n workflowInstances: {\n any: {\n initiatorId: { type: 'guid', value: '#user' },\n isActive: true,\n },\n },\n };\n}\n\nexport function getFilterByActiveWorkflowTasks(): any {\n return {\n workflowInstances: {\n any: {\n tasks: {\n any: {\n assignedId: {\n type: 'guid',\n value: '#user',\n },\n isActive: true,\n },\n },\n },\n },\n };\n}\n\nexport function getFilterByActiveWorkflowTasks2(): any {\n return {\n workflowTask: {\n assignedId: {\n type: 'guid',\n value: '#user',\n },\n isActive: true,\n },\n };\n}\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const PermissionSetList: List = {\n version: 1,\n name: 'permissionSets',\n dataCollection: 'PermissionSets',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'roleName',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'Name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.permissionSet',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n type: GridColumnType.Boolean,\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n },\n {\n name: 'roleName',\n header: 'settings.permissionSets.list.columns.role',\n hint: 'settings.permissionSets.list.columns.role',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'roleName',\n field: 'roleName',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const PROGRAM_LIST: List = {\n version: 1,\n name: 'programs',\n dataCollection: 'ProgramTotals',\n customFieldEntityType: 'Program',\n customFieldPrefixForDataField: 'program.',\n views: [\n {\n name: 'my',\n columns: [\n {\n column: 'programName',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'programCode',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'programDescription',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'projectsCount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'programIsActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreated',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreatedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'actualCost',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualCostOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n ],\n contextFilter: [\n {\n program: {\n or: [\n {\n managerId: {\n type: 'guid',\n value: '#user',\n },\n },\n {\n coManagers: {\n any: {\n userId: {\n type: 'guid',\n value: '#user',\n },\n },\n },\n },\n ],\n },\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'active',\n columns: [\n {\n column: 'programName',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'programCode',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'programManager',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'programDescription',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'projectsCount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'programIsActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreated',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreatedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualCost',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualCostOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n ],\n contextFilter: [\n {\n program: {\n isActive: true,\n },\n },\n ],\n order: { column: 'Name', reverse: false },\n },\n {\n name: 'all',\n columns: [\n {\n column: 'programName',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'programCode',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'programManager',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'programDescription',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'projectsCount',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'programIsActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreated',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programCreatedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'programModifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenue',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'actualCost',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualCostOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfit',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'Name', reverse: false },\n },\n ],\n\n columns: [\n {\n name: 'programName',\n state: 'program',\n type: GridColumnType.Navigation,\n header: 'projects.programs.list.columns.name.header',\n hint: 'projects.programs.list.columns.name.hint',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'programDescription',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.description.header',\n hint: 'projects.projects.list.columns.description.hint',\n },\n {\n name: 'programManager',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.manager.header',\n hint: 'projects.projects.list.columns.manager.header',\n },\n {\n name: 'programCode',\n type: GridColumnType.String,\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n },\n {\n name: 'projectsCount',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Integer,\n header: 'projects.programs.list.columns.projectsCount.header',\n hint: 'projects.programs.list.columns.projectsCount.hint',\n },\n {\n name: 'programIsActive',\n type: GridColumnType.Boolean,\n header: 'projects.programs.list.columns.isActive.header',\n hint: 'projects.programs.list.columns.isActive.hint',\n },\n {\n name: 'programCreated',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'programCreatedBy',\n type: GridColumnType.String,\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n },\n {\n name: 'programModified',\n type: GridColumnType.DateTime,\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n },\n {\n name: 'programModifiedBy',\n type: GridColumnType.String,\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n },\n\n {\n name: 'plannedExpenses',\n header: 'projects.projects.list.columns.plannedExpensesBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedExpensesOverPeriod',\n header:\n 'projects.projects.list.columns.plannedExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpenses',\n header: 'projects.projects.list.columns.actualExpensesBC.header',\n hint: 'projects.projects.list.columns.actualExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpensesOverPeriod',\n header:\n 'projects.projects.list.columns.actualExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'plannedRevenue',\n header: 'projects.projects.list.columns.plannedRevenueBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedRevenueOverPeriod',\n header:\n 'projects.projects.list.columns.plannedRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenue',\n header: 'projects.projects.list.columns.actualRevenueBC.header',\n hint: 'projects.projects.list.columns.actualRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenueOverPeriod',\n header: 'projects.projects.list.columns.actualRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'actualCost',\n header: 'projects.projects.list.columns.actualCostBC.header',\n hint: 'projects.projects.list.columns.actualCostBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualCostOverPeriod',\n header: 'projects.projects.list.columns.actualCostOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualCostOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'plannedProfit',\n header: 'projects.projects.list.columns.plannedProfitBC.header',\n hint: 'projects.projects.list.columns.plannedProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfitOverPeriod',\n header: 'projects.projects.list.columns.plannedProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfit',\n header: 'projects.projects.list.columns.actualProfitBC.header',\n hint: 'projects.projects.list.columns.actualProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfitOverPeriod',\n header: 'projects.projects.list.columns.actualProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'plannedProfitability',\n header: 'projects.projects.list.columns.plannedProfitabilityBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'plannedProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitability',\n header: 'projects.projects.list.columns.actualProfitabilityBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n\n {\n name: 'estimatedHours',\n header: 'projects.projects.list.columns.estimatedHours.header',\n hint: 'projects.projects.list.columns.estimatedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n\n {\n name: 'actualHours',\n header: 'projects.projects.list.columns.actualHours.header',\n hint: 'projects.projects.list.columns.actualHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'actualHoursOverPeriod',\n header: 'projects.projects.list.columns.actualHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.actualHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n\n {\n name: 'plannedHours',\n header: 'projects.projects.list.columns.plannedHours.header',\n hint: 'projects.projects.list.columns.plannedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'plannedHoursOverPeriod',\n header: 'projects.projects.list.columns.plannedHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n ],\n\n dataColumns: [\n {\n column: 'programName',\n field: 'program.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programDescription',\n field: 'program.description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programManager',\n field: 'program.manager.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programCode',\n field: 'program.code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'projectsCount',\n field: 'projectsCount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programIsActive',\n field: 'program.isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'programCreated',\n field: 'program.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programModified',\n field: 'program.modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programCreatedBy',\n field: 'program.createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'programModifiedBy',\n field: 'program.modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'plannedExpenses',\n field: 'plannedExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedExpensesOverPeriod',\n field: 'plannedExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpenses',\n field: 'actualExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpensesOverPeriod',\n field: 'actualExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenue',\n field: 'plannedRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenueOverPeriod',\n field: 'plannedRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenue',\n field: 'actualRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'actualRevenueOverPeriod',\n field: 'actualRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'actualCost',\n field: 'actualCost',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostOverPeriod',\n field: 'actualCostOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'plannedProfit',\n field: 'plannedProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitOverPeriod',\n field: 'plannedProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfit',\n field: 'actualProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitOverPeriod',\n field: 'actualProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitability',\n field: 'plannedProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n field: 'plannedProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitability',\n field: 'actualProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n field: 'actualProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'estimatedHours',\n field: 'estimatedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHours',\n field: 'actualHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHoursOverPeriod',\n field: 'actualHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHours',\n field: 'plannedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHoursOverPeriod',\n field: 'plannedHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { List } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { FinancialAmountReadonlyCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-amount-readonly-cell.component';\nimport { FinancialDateReadonlyCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-date-readonly-cell.component';\nimport { FinancialDescriptionCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-cell.component';\nimport { FinancialDescriptionReadonlyCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-readonly-cell.component';\nimport { FinancialTaskCellComponent } from 'src/app/projects/card/shared/financial-task-cell/financial-task-cell.component';\nimport { FinancialNonNullableDateCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-non-nullable-date-cell.component';\nimport { FinancialNonNullableAmountCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-non-nullable-amount-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const defaultProjectBillingColumns = [\n {\n column: 'projectTask',\n visibleByDefault: true,\n width: 310,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'billingDate',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'collectionDate',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 135,\n totalByDefault: TotalType.Sum,\n },\n];\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ProjectBillingList: List = {\n version: 2,\n name: 'projectBilling',\n views: [\n {\n name: 'default',\n columns: [\n ...defaultProjectBillingColumns,\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n {\n name: 'withMode',\n columns: [\n ...defaultProjectBillingColumns,\n {\n column: 'isAutomatic',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n ],\n columns: [\n {\n name: 'billingDate',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: FinancialNonNullableDateCellComponent,\n readonlyComponent: FinancialDateReadonlyCellComponent,\n header: 'projects.projects.card.billing.columns.billingDate.header',\n hint: 'projects.projects.card.billing.columns.billingDate.hint',\n },\n {\n name: 'collectionDate',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: FinancialNonNullableDateCellComponent,\n readonlyComponent: FinancialDateReadonlyCellComponent,\n header: 'projects.projects.card.billing.columns.collectionDate.header',\n hint: 'projects.projects.card.billing.columns.collectionDate.hint',\n },\n {\n name: 'amount',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: FinancialNonNullableAmountCellComponent,\n readonlyComponent: FinancialAmountReadonlyCellComponent,\n header: 'projects.projects.card.billing.columns.amount.header',\n hint: 'projects.projects.card.billing.columns.amount.hint',\n contentType: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'isAutomatic',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'projects.projects.card.billing.columns.isAutomatic.header',\n hint: 'projects.projects.card.billing.columns.isAutomatic.hint',\n },\n {\n name: 'description',\n type: GridColumnType.Component,\n component: FinancialDescriptionCellComponent,\n readonlyComponent: FinancialDescriptionReadonlyCellComponent,\n header: 'shared.props.description',\n hint: 'shared.props.description',\n },\n {\n name: 'projectTask',\n type: GridColumnType.Component,\n component: FinancialTaskCellComponent,\n fixedWidth: true,\n header: 'projects.projects.card.billing.columns.task',\n hint: 'projects.projects.card.billing.columns.task',\n },\n ],\n};\n","import {\n GridColumnType,\n GridStringControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List } from '../models/inner/list';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\nexport const PROJECT_COST_CENTER: List = {\n name: 'projectCostCenters',\n version: 5,\n customFieldEntityType: 'ProjectCostCenter',\n editableCustomFields: true,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'legalEntity',\n visibleByDefault: true,\n width: 280,\n },\n {\n column: 'actualCost',\n visibleByDefault: true,\n width: 220,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: true,\n width: 200,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'created',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'modified',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 300,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 300,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.StringControl,\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'legalEntity',\n type: GridColumnType.SelectControl,\n header: 'projects.projects.card.costCenters.columns.legalEntity.header',\n hint: 'projects.projects.card.costCenters.columns.legalEntity.hint',\n },\n {\n name: 'actualCost',\n type: GridColumnType.Currency,\n header: 'projects.projects.card.costCenters.columns.actualCost.header',\n hint: 'projects.projects.card.costCenters.columns.actualCost.hint',\n },\n {\n name: 'actualExpenses',\n type: GridColumnType.Currency,\n header:\n 'projects.projects.card.costCenters.columns.actualExpenses.header',\n hint: 'projects.projects.card.costCenters.columns.actualExpenses.hint',\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.BooleanControl,\n forceCellUpdating: true,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.SelectControl,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.SelectControl,\n },\n {\n name: 'isActive',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n },\n ],\n dataColumns: [],\n};\n","import { List } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { FinancialAmountReadonlyCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-amount-readonly-cell.component';\nimport { FinancialDateReadonlyCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-date-readonly-cell.component';\nimport { FinancialDescriptionCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-cell.component';\nimport { FinancialDescriptionReadonlyCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-readonly-cell.component';\nimport { FinancialTaskCellComponent } from 'src/app/projects/card/shared/financial-task-cell/financial-task-cell.component';\nimport { FinancialNonNullableDateCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-non-nullable-date-cell.component';\nimport { FinancialNonNullableAmountCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-non-nullable-amount-cell.component';\nimport { ProjectExpenseTypeCellComponent } from 'src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-cell.component';\nimport { ProjectExpenseTypeReadonlyCellComponent } from 'src/app/projects/card/project-expenses/project-expense-estimates/shared/project-expense-type-cell/project-expense-type-readonly-cell.component';\nimport { RecurringExpenseRuleCellComponent } from 'src/app/projects/card/shared/recurring-expense-rule-cell/recurring-expense-rule-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const ProjectExpenseEstimatesList: List = {\n version: 7,\n name: 'projectExpenseEstimates',\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'projectTask',\n visibleByDefault: true,\n width: 310,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'account',\n visibleByDefault: true,\n width: 310,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 140,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'expenseRule',\n visibleByDefault: true,\n width: 210,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isAutomatic',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 250,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n ],\n columns: [\n {\n name: 'account',\n type: GridColumnType.Component,\n component: ProjectExpenseTypeCellComponent,\n readonlyComponent: ProjectExpenseTypeReadonlyCellComponent,\n placeholder: 'shared2.props.financialAccount',\n header: 'shared2.props.financialAccount',\n hint: 'shared2.props.financialAccount',\n availableTotals: [TotalType.Count],\n },\n\n {\n name: 'date',\n type: GridColumnType.Component,\n component: FinancialNonNullableDateCellComponent,\n readonlyComponent: FinancialDateReadonlyCellComponent,\n header: 'projects.projects.card.expenseEstimates.columns.date',\n hint: 'projects.projects.card.expenseEstimates.columns.date',\n },\n {\n name: 'amount',\n type: GridColumnType.Component,\n controlType: 'currency',\n component: FinancialNonNullableAmountCellComponent,\n readonlyComponent: FinancialAmountReadonlyCellComponent,\n header: 'projects.projects.card.expenseEstimates.columns.amount',\n hint: 'projects.projects.card.expenseEstimates.columns.amount',\n contentType: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'description',\n type: GridColumnType.Component,\n component: FinancialDescriptionCellComponent,\n readonlyComponent: FinancialDescriptionReadonlyCellComponent,\n header: 'projects.projects.card.expenseEstimates.columns.description',\n hint: 'projects.projects.card.expenseEstimates.columns.description',\n },\n {\n name: 'expenseRule',\n type: GridColumnType.Component,\n component: RecurringExpenseRuleCellComponent,\n header: 'projects.projects.card.expenseEstimates.columns.expenseRule',\n hint: 'projects.projects.card.expenseEstimates.columns.expenseRule',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'projectTask',\n type: GridColumnType.Component,\n component: FinancialTaskCellComponent,\n header: 'projects.projects.card.expenseEstimates.columns.task',\n hint: 'projects.projects.card.expenseEstimates.columns.task',\n },\n {\n name: 'isAutomatic',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header:\n 'projects.projects.card.expenseEstimates.columns.isAutomatic.value',\n hint: 'projects.projects.card.expenseEstimates.columns.isAutomatic.hint',\n },\n ],\n};\n","import { List } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { FinancialAmountReadonlyCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-amount-readonly-cell.component';\nimport { FinancialDateReadonlyCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-date-readonly-cell.component';\nimport { FinancialDescriptionCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-cell.component';\nimport { FinancialDescriptionReadonlyCellComponent } from 'src/app/projects/card/shared/financial-description-cell/financial-description-readonly-cell.component';\nimport { FinancialTaskCellComponent } from 'src/app/projects/card/shared/financial-task-cell/financial-task-cell.component';\nimport { FinancialNonNullableDateCellComponent } from 'src/app/projects/card/shared/financial-date-cell/financial-non-nullable-date-cell.component';\nimport { FinancialNonNullableAmountCellComponent } from 'src/app/projects/card/shared/financial-amount-cell/financial-non-nullable-amount-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ProjectRevenueEstimatesList: List = {\n version: 2,\n name: 'projectRevenue',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'projectTask',\n visibleByDefault: true,\n width: 400,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'date',\n visibleByDefault: true,\n width: 135,\n },\n {\n column: 'amount',\n visibleByDefault: true,\n width: 140,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n ],\n columns: [\n {\n name: 'date',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: FinancialNonNullableDateCellComponent,\n readonlyComponent: FinancialDateReadonlyCellComponent,\n header: 'projects.projects.card.revenue.columns.date.header',\n hint: 'projects.projects.card.revenue.columns.date.hint',\n },\n\n {\n name: 'amount',\n fixedWidth: true,\n type: GridColumnType.Component,\n controlType: 'currency',\n component: FinancialNonNullableAmountCellComponent,\n readonlyComponent: FinancialAmountReadonlyCellComponent,\n header: 'projects.projects.card.revenue.columns.amount.header',\n hint: 'projects.projects.card.revenue.columns.amount.hint',\n contentType: GridColumnType.Currency,\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'description',\n type: GridColumnType.Component,\n component: FinancialDescriptionCellComponent,\n readonlyComponent: FinancialDescriptionReadonlyCellComponent,\n header: 'shared.props.description',\n hint: 'shared.props.description',\n },\n {\n name: 'projectTask',\n type: GridColumnType.Component,\n component: FinancialTaskCellComponent,\n fixedWidth: true,\n header: 'projects.projects.card.revenue.columns.task',\n hint: 'projects.projects.card.revenue.columns.task',\n },\n ],\n};\n","import { List } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nimport { MembersCellComponent } from 'src/app/projects/card/shared/members-cell/members-cell.component';\nimport { MembersReadonlyCellComponent } from 'src/app/projects/card/shared/members-cell/members-readonly-cell.component';\n\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { TaskCollapsibleCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-cell.component';\nimport { TaskCollapsibleReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-collapsible-cell/task-collapsible-readonly-cell.component';\nimport { TaskDateCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-cell.component';\nimport { TaskDateReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-date-cell/task-date-readonly-cell.component';\nimport { TaskDurationCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-cell.component';\nimport { TaskDurationReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-duration-cell/task-duration-readonly-cell.component';\nimport { TaskNameCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-cell.component';\nimport { TaskNameReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-name-cell/task-name-readonly-cell.component';\nimport { TaskPredecessorCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-cell.component';\nimport { TaskPredecessorReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-predecessor-cell/task-predecessor-readonly-cell.component';\nimport { ProjectTaskTableView } from 'src/app/projects/card/project-tasks/shared/models/project-task-view.enum';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridSelectControlColumn,\n GridStringControlColumn,\n GridBooleanColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { TaskFlagCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-cell.component';\nimport { TaskFlagReadonlyCellComponent } from 'src/app/projects/card/project-tasks/shared/tasks-grid/task-category-cell/task-category-readonly-cell.component';\n\nexport const projectTaskTableNoAutoPlanningColumns = [\n {\n column: 'structNumber',\n visibleByDefault: true,\n width: 75,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 45,\n },\n {\n column: 'categoryId',\n visibleByDefault: true,\n width: 45,\n },\n {\n column: 'name',\n visibleByDefault: true,\n width: 300,\n totalByDefault: TotalType.Count,\n isRequired: true,\n },\n {\n column: 'startDate',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'endDate',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'duration',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'plannedStartDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'plannedEndDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'isMilestone',\n visibleByDefault: true,\n width: 90,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: true,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'projectTaskAssignments',\n visibleByDefault: true,\n width: 300,\n },\n {\n column: 'dependencies',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'plannedHours',\n visibleByDefault: true,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'percentComplete',\n visibleByDefault: true,\n width: 105,\n },\n {\n column: 'plannedCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'estimatedCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n];\nexport const projectTaskTimelineNoAutoPlanningColumns = [\n {\n column: 'structNumber',\n visibleByDefault: true,\n width: 75,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 45,\n },\n {\n column: 'categoryId',\n visibleByDefault: true,\n width: 45,\n },\n {\n column: 'name',\n visibleByDefault: true,\n width: 300,\n totalByDefault: TotalType.Count,\n isRequired: true,\n },\n {\n column: 'startDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'endDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'duration',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'plannedStartDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'plannedEndDate',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'isMilestone',\n visibleByDefault: false,\n width: 90,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 130,\n },\n {\n column: 'projectTaskAssignments',\n visibleByDefault: false,\n width: 300,\n },\n {\n column: 'dependencies',\n visibleByDefault: false,\n width: 250,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 105,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'percentComplete',\n visibleByDefault: false,\n width: 105,\n },\n {\n column: 'plannedCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'estimatedCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualCost',\n visibleByDefault: false,\n width: 120,\n totalByDefault: TotalType.Sum,\n },\n];\n\nexport const PROJECT_TASK_LIST: List = {\n name: 'projectTasks',\n version: 30,\n customFieldEntityType: 'ProjectTask',\n views: [\n {\n name: ProjectTaskTableView.tableDefault,\n resizableColumns: true,\n columns: [\n ...projectTaskTableNoAutoPlanningColumns,\n ...[\n {\n column: 'type',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'effortDriven',\n visibleByDefault: false,\n width: 120,\n },\n ],\n ],\n },\n {\n name: ProjectTaskTableView.tableNoAutoPlanning,\n resizableColumns: true,\n columns: projectTaskTableNoAutoPlanningColumns,\n },\n {\n name: ProjectTaskTableView.timelineDefault,\n resizableColumns: true,\n columns: [\n ...projectTaskTimelineNoAutoPlanningColumns,\n ...[\n {\n column: 'type',\n visibleByDefault: false,\n width: 150,\n },\n {\n column: 'effortDriven',\n visibleByDefault: false,\n width: 120,\n },\n ],\n ],\n },\n {\n name: ProjectTaskTableView.timelineNoAutoPlanning,\n resizableColumns: true,\n columns: projectTaskTimelineNoAutoPlanningColumns,\n },\n ],\n columns: [\n {\n name: 'actualCost',\n header: 'shared2.props.actualCost.short',\n hint: 'shared2.props.actualCost.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Component,\n contentType: GridColumnType.Currency,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'actualHours',\n header: 'shared2.props.actualHours.short',\n hint: 'shared2.props.actualHours.hint',\n type: GridColumnType.Component,\n availableTotals: [TotalType.Sum],\n contentType: GridColumnType.Work,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'plannedHours',\n header: 'shared2.props.plannedHours.short',\n hint: 'shared2.props.plannedHours.hint',\n type: GridColumnType.Component,\n availableTotals: [TotalType.Sum],\n contentType: GridColumnType.Work,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'plannedCost',\n header: 'components.projectTaskList.props.plannedCost.short',\n hint: 'components.projectTaskList.props.plannedCost.hint',\n type: GridColumnType.Component,\n availableTotals: [TotalType.Sum],\n contentType: GridColumnType.Currency,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'estimatedHours',\n header: 'shared2.props.estimatedHours',\n hint: 'shared2.props.estimatedHours',\n type: GridColumnType.Component,\n availableTotals: [TotalType.Sum],\n contentType: GridColumnType.Work,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n precision: 1,\n getDefaultValue: () => 0,\n },\n {\n name: 'estimatedCost',\n header: 'components.projectTaskList.props.estimatedCost.short',\n hint: 'components.projectTaskList.props.estimatedCost.hint',\n type: GridColumnType.Component,\n availableTotals: [TotalType.Sum],\n contentType: GridColumnType.Currency,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'percentComplete',\n header: 'shared2.props.percentComplete.short',\n hint: 'shared2.props.percentComplete.value',\n type: GridColumnType.Component,\n contentType: GridColumnType.Percent,\n component: TaskCollapsibleCellComponent,\n readonlyComponent: TaskCollapsibleReadonlyCellComponent,\n },\n {\n name: 'structNumber',\n header: 'components.projectTaskList.props.structNumber.value',\n hint: 'components.projectTaskList.props.structNumber.hint',\n type: GridColumnType.String,\n\n forceCellUpdating: true,\n },\n {\n name: 'categoryId',\n header: null,\n icon: 'bi bi-bookmark',\n hint: 'shared2.props.category',\n type: GridColumnType.Component,\n contentType: GridColumnType.String,\n component: TaskFlagCellComponent,\n readonlyComponent: TaskFlagReadonlyCellComponent,\n },\n {\n name: 'name',\n header: 'shared2.props.name',\n hint: 'shared2.props.name',\n type: GridColumnType.Component,\n contentType: GridColumnType.String,\n availableTotals: [TotalType.Count],\n component: TaskNameCellComponent,\n readonlyComponent: TaskNameReadonlyCellComponent,\n getDefaultValue: () => '',\n },\n {\n name: 'description',\n header: 'shared2.props.description',\n hint: 'shared2.props.description',\n type: GridColumnType.StringControl,\n forceCellUpdating: true,\n propagationMode: PropagationMode.onExitFromEditing,\n },\n {\n name: 'duration',\n header: 'shared2.props.projectTaskDuration.value',\n hint: 'shared2.props.projectTaskDuration.hint',\n component: TaskDurationCellComponent,\n readonlyComponent: TaskDurationReadonlyCellComponent,\n type: GridColumnType.Component,\n contentType: GridColumnType.Integer,\n getDefaultValue: () => 1,\n },\n {\n name: 'startDate',\n header: 'shared2.props.startDate',\n hint: 'shared2.props.startDate',\n component: TaskDateCellComponent,\n readonlyComponent: TaskDateReadonlyCellComponent,\n type: GridColumnType.Component,\n contentType: GridColumnType.Date,\n allowNull: false,\n },\n {\n name: 'endDate',\n header: 'shared2.props.endDate',\n hint: 'shared2.props.endDate',\n component: TaskDateCellComponent,\n readonlyComponent: TaskDateReadonlyCellComponent,\n type: GridColumnType.Component,\n contentType: GridColumnType.Date,\n allowNull: false,\n },\n {\n name: 'plannedStartDate',\n header: 'components.projectTaskList.props.plannedStartDate.short',\n hint: 'components.projectTaskList.props.plannedStartDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'plannedEndDate',\n header: 'components.projectTaskList.props.plannedEndDate.short',\n hint: 'components.projectTaskList.props.plannedEndDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'isActive',\n header: null,\n hint: 'shared2.props.completed',\n type: GridColumnType.BooleanControl,\n reversed: true,\n },\n {\n name: 'isMilestone',\n header: 'shared2.props.milestone',\n hint: 'shared2.props.milestone',\n type: GridColumnType.BooleanControl,\n },\n {\n name: 'effortDriven',\n header: 'shared2.props.effortDriven',\n hint: 'shared2.props.effortDriven',\n type: GridColumnType.BooleanControl,\n forceCellUpdating: true,\n },\n {\n name: 'type',\n header: 'shared2.props.type',\n hint: 'shared2.props.type',\n placeholder: 'shared2.props.type',\n type: GridColumnType.SelectControl,\n forceCellUpdating: true,\n allowNull: false,\n },\n {\n name: 'projectTaskAssignments',\n header: 'shared2.props.assignments',\n hint: 'shared2.props.assignments',\n type: GridColumnType.Component,\n component: MembersCellComponent,\n readonlyComponent: MembersReadonlyCellComponent,\n getDefaultValue: () => [],\n },\n {\n name: 'dependencies',\n header: 'shared2.props.dependencies',\n hint: 'shared2.props.dependencies',\n component: TaskPredecessorCellComponent,\n readonlyComponent: TaskPredecessorReadonlyCellComponent,\n type: GridColumnType.Component,\n getDefaultValue: () => [],\n },\n ],\n dataColumns: [],\n};\n","import { List } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { MemberResourceCellComponent } from 'src/app/projects/card/project-team/member-resource-cell/member-resource-cell.component';\nimport { RolesCellComponent } from 'src/app/projects/card/shared/roles-cell/roles-cell.component';\nimport { RolesReadonlyCellComponent } from 'src/app/projects/card/shared/roles-cell/roles-readonly-cell.component';\nimport { ProjectTariffCellComponent } from 'src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell.component';\nimport { ProjectTariffCellReadonlyComponent } from 'src/app/projects/card/project-team/project-tariffs-cell/project-tariffs-cell-readonly.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const PROJECT_TEAM_MEMBER_LIST: List = {\n name: 'projectTeamMembers',\n version: 6,\n views: [\n {\n name: 'default',\n resizableColumns: true,\n columns: [\n {\n column: 'resource',\n visibleByDefault: true,\n width: 250,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'role',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'currentRate',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'primaryTariff',\n visibleByDefault: false,\n width: 150,\n },\n {\n column: 'localType',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'resourcePool',\n visibleByDefault: true,\n width: 295,\n },\n {\n column: 'legalEntity',\n visibleByDefault: false,\n width: 295,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'resource',\n type: GridColumnType.Component,\n component: MemberResourceCellComponent,\n readonlyComponent: MemberResourceCellComponent,\n header: 'projects.projects.card.team.columns.resource.header',\n hint: 'projects.projects.card.team.columns.resource.hint',\n },\n {\n name: 'currentRate',\n type: GridColumnType.Currency,\n header: 'projects.projects.card.team.columns.currentRate.header',\n hint: 'projects.projects.card.team.columns.currentRate.hint',\n currencyCodeProperty: 'projectCurrency.alpha3Code',\n },\n {\n name: 'primaryTariff',\n header: 'projects.projects.card.team.columns.primaryTariff.header',\n hint: 'projects.projects.card.team.columns.primaryTariff.hint',\n forceCellUpdating: true,\n type: GridColumnType.Component,\n component: ProjectTariffCellComponent,\n readonlyComponent: ProjectTariffCellReadonlyComponent,\n allowNull: false,\n },\n {\n name: 'localType',\n type: GridColumnType.String,\n header: 'projects.projects.card.team.columns.type.header',\n hint: 'projects.projects.card.team.columns.type.hint',\n },\n {\n name: 'type',\n type: GridColumnType.String,\n header: '',\n hint: '',\n },\n {\n name: 'resourcePool',\n type: GridColumnType.Entity,\n header: 'projects.projects.card.team.columns.resourcePool.header',\n hint: 'projects.projects.card.team.columns.resourcePool.hint',\n },\n {\n name: 'legalEntity',\n type: GridColumnType.Entity,\n header: 'projects.projects.card.team.columns.legalEntity.header',\n hint: 'projects.projects.card.team.columns.legalEntity.hint',\n },\n {\n name: 'role',\n type: GridColumnType.Component,\n component: RolesCellComponent,\n readonlyComponent: RolesReadonlyCellComponent,\n header: 'projects.projects.card.team.columns.role.header',\n hint: 'projects.projects.card.team.columns.role.hint',\n },\n ],\n};\n","import {\n GridColumnType,\n GridComponentColumn,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { SourceProjectVersionReadonlyCellComponent } from 'src/app/projects/project-versions/shared/source-project-version-cell/source-project-version-readonly-cell.component';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const PROJECT_VERSION_LIST: List = {\n version: 3,\n name: 'versions',\n dataCollection: 'ProjectVersions',\n customFieldEntityType: 'ProjectVersion',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'sourceVersion',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'masterBaseline',\n visibleByDefault: true,\n width: 80,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'with-my-workflow',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowInstances(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'sourceVersion',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'masterBaseline',\n visibleByDefault: true,\n width: 80,\n },\n ],\n },\n {\n name: 'with-my-task',\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowTasks(),\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'sourceVersion',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'createdBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: true,\n width: 125,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'masterBaseline',\n visibleByDefault: true,\n width: 80,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'projectVersion',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n stateParams: {\n fromRow: {\n entityId: 'id',\n projectId: 'mainProjectId',\n },\n },\n availableTotals: [TotalType.Count],\n },\n {\n name: 'sourceVersion',\n header: 'projects.projectVersions.list.columns.sourceVersion',\n hint: 'projects.projectVersions.list.columns.sourceVersion',\n type: GridColumnType.Component,\n component: SourceProjectVersionReadonlyCellComponent,\n },\n {\n name: 'state',\n header: 'projects.projectVersions.list.columns.state',\n hint: 'projects.projectVersions.list.columns.state',\n type: GridColumnType.State,\n fixedWidth: true,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'masterBaseline',\n header: 'projects.projectVersions.list.columns.masterBaseline',\n hint: 'projects.projectVersions.list.columns.masterBaseline',\n type: GridColumnType.Boolean,\n fixedWidth: true,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'mainProjectId',\n field: 'mainProjectId',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'sourceVersion',\n field: 'sourceVersion.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'masterBaseline',\n field: 'masterBaseline',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n GridColumnType,\n GridCurrencyColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\nimport { ViewColumn } from 'src/app/shared/models/inner/view';\nimport {\n DATE_COLUMN_WIDTH,\n DATE_TIME_COLUMN_WIDTH,\n getCodedEntityDataColumns,\n getCodedEntityGridColumns,\n} from 'src/app/shared/helpers/list.helper';\n\nconst getViewColumns = (isMonitoring = false): ViewColumn[] => [\n {\n column: 'name',\n visibleByDefault: true,\n width: 3,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'manager',\n visibleByDefault: !isMonitoring,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 3,\n },\n {\n column: 'organization',\n visibleByDefault: !isMonitoring,\n width: 2,\n },\n {\n column: 'legalEntity',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'program',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'sourceProject',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'startDate',\n visibleByDefault: !isMonitoring,\n width: DATE_COLUMN_WIDTH,\n },\n {\n column: 'endDate',\n visibleByDefault: !isMonitoring,\n width: DATE_COLUMN_WIDTH,\n },\n {\n column: 'billingType',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: DATE_TIME_COLUMN_WIDTH,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'externalUrl',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'currency',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'estimatedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'estimatedHoursOverPeriod',\n visibleByDefault: isMonitoring,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedHoursOverPeriod',\n visibleByDefault: isMonitoring,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHours',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualHoursOverPeriod',\n visibleByDefault: isMonitoring,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedRevenue',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedRevenueBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedRevenueOverPeriodBC',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualRevenue',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualRevenueBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualRevenueOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualRevenueOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpenses',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedExpensesBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedExpensesOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualExpenses',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualExpensesBC',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualExpensesOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualExpensesOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'actualCost',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualCostBC',\n visibleByDefault: false,\n totalByDefault: TotalType.Sum,\n width: 1,\n },\n {\n column: 'actualCostOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualCostOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfit',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'plannedProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfit',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'actualProfitOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n\n {\n column: 'plannedProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityBC',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'plannedProfitabilityOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitability',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityBC',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'actualProfitabilityOverPeriodBC',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isAutoPlanning',\n visibleByDefault: false,\n width: 1,\n },\n];\n\nexport const PROJECT_LIST: List = {\n version: 8,\n name: 'projects',\n dataCollection: 'ExtendedProjects',\n customFieldEntityType: 'Project',\n customFieldPrefixForDataField: 'project.',\n views: [\n {\n name: 'my',\n columns: getViewColumns().filter((x) => x.column !== 'manager'),\n contextFilter: [\n {\n project: {\n or: [\n {\n managerId: { type: 'guid', value: '#user' },\n },\n {\n coManagers: {\n any: {\n userId: { type: 'guid', value: '#user' },\n },\n },\n },\n ],\n },\n },\n ],\n order: {\n column: 'name',\n reverse: false,\n },\n },\n {\n name: 'active',\n columns: getViewColumns(),\n order: {\n column: 'name',\n reverse: false,\n },\n contextFilter: [\n {\n project: {\n isActive: true,\n },\n },\n ],\n },\n {\n name: 'monitoring',\n columns: getViewColumns(true),\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n project: {\n isActive: true,\n },\n },\n ],\n },\n {\n name: 'all',\n columns: getViewColumns(),\n order: {\n column: 'name',\n reverse: false,\n },\n },\n {\n name: 'program',\n columns: getViewColumns(),\n order: {\n column: 'name',\n reverse: false,\n },\n },\n {\n name: 'client',\n columns: getViewColumns(),\n order: {\n column: 'name',\n reverse: false,\n },\n },\n\n {\n name: 'with-my-workflow',\n order: {\n column: 'name',\n reverse: false,\n },\n contextFilter: [{ project: getFilterByActiveWorkflowInstances() }],\n columns: getViewColumns(),\n },\n\n {\n name: 'with-my-task',\n order: {\n column: 'name',\n reverse: false,\n },\n contextFilter: [{ project: getFilterByActiveWorkflowTasks() }],\n columns: getViewColumns(),\n },\n ],\n columns: [\n ...getCodedEntityGridColumns('project'),\n\n {\n name: 'description',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.description.header',\n hint: 'projects.projects.list.columns.description.hint',\n },\n {\n name: 'manager',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.manager.header',\n hint: 'projects.projects.list.columns.manager.hint',\n },\n {\n name: 'program',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.program.header',\n hint: 'projects.projects.list.columns.program.hint',\n },\n {\n name: 'sourceProject',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.sourceProject.header',\n hint: 'projects.projects.list.columns.sourceProject.hint',\n },\n {\n name: 'organization',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.client.header',\n hint: 'projects.projects.list.columns.client.hint',\n },\n {\n name: 'state',\n type: GridColumnType.State,\n header: 'projects.projects.list.columns.state.header',\n hint: 'projects.projects.list.columns.state.hint',\n },\n {\n name: 'startDate',\n type: GridColumnType.Date,\n fixedWidth: true,\n header: 'projects.projects.list.columns.startDate.header',\n hint: 'projects.projects.list.columns.startDate.hint',\n },\n {\n name: 'endDate',\n type: GridColumnType.Date,\n fixedWidth: true,\n header: 'projects.projects.list.columns.endDate.header',\n hint: 'projects.projects.list.columns.endDate.hint',\n },\n {\n name: 'billingType',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.billingType.header',\n hint: 'projects.projects.list.columns.billingType.hint',\n },\n {\n name: 'externalUrl',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.externalUrl.header',\n hint: 'projects.projects.list.columns.externalUrl.hint',\n },\n {\n name: 'currency',\n type: GridColumnType.Entity,\n header: 'projects.projects.list.columns.currency.header',\n hint: 'projects.projects.list.columns.currency.hint',\n },\n\n {\n name: 'plannedExpenses',\n header: 'projects.projects.list.columns.plannedExpenses.header',\n hint: 'projects.projects.list.columns.plannedExpenses.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedExpensesBC',\n header: 'projects.projects.list.columns.plannedExpensesBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedExpensesOverPeriod',\n header: 'projects.projects.list.columns.plannedExpensesOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedExpensesOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedExpensesOverPeriodBC',\n header:\n 'projects.projects.list.columns.plannedExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpenses',\n header: 'projects.projects.list.columns.actualExpenses.header',\n hint: 'projects.projects.list.columns.actualExpenses.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualExpensesBC',\n header: 'projects.projects.list.columns.actualExpensesBC.header',\n hint: 'projects.projects.list.columns.actualExpensesBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualExpensesOverPeriod',\n header: 'projects.projects.list.columns.actualExpensesOverPeriod.header',\n hint: 'projects.projects.list.columns.actualExpensesOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualExpensesOverPeriodBC',\n header:\n 'projects.projects.list.columns.actualExpensesOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualExpensesOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'actualCost',\n header: 'projects.projects.list.columns.actualCost.header',\n hint: 'projects.projects.list.columns.actualCost.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualCostBC',\n header: 'projects.projects.list.columns.actualCostBC.header',\n hint: 'projects.projects.list.columns.actualCostBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualCostOverPeriod',\n header: 'projects.projects.list.columns.actualCostOverPeriod.header',\n hint: 'projects.projects.list.columns.actualCostOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualCostOverPeriodBC',\n header: 'projects.projects.list.columns.actualCostOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualCostOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n\n {\n name: 'plannedRevenue',\n header: 'projects.projects.list.columns.plannedRevenue.header',\n hint: 'projects.projects.list.columns.plannedRevenue.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedRevenueBC',\n header: 'projects.projects.list.columns.plannedRevenueBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedRevenueOverPeriod',\n header: 'projects.projects.list.columns.plannedRevenueOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedRevenueOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedRevenueOverPeriodBC',\n header:\n 'projects.projects.list.columns.plannedRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenue',\n header: 'projects.projects.list.columns.actualRevenue.header',\n hint: 'projects.projects.list.columns.actualRevenue.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualRevenueBC',\n header: 'projects.projects.list.columns.actualRevenueBC.header',\n hint: 'projects.projects.list.columns.actualRevenueBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualRevenueOverPeriod',\n header: 'projects.projects.list.columns.actualRevenueOverPeriod.header',\n hint: 'projects.projects.list.columns.actualRevenueOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualRevenueOverPeriodBC',\n header: 'projects.projects.list.columns.actualRevenueOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualRevenueOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfit',\n header: 'projects.projects.list.columns.plannedProfit.header',\n hint: 'projects.projects.list.columns.plannedProfit.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedProfitBC',\n header: 'projects.projects.list.columns.plannedProfitBC.header',\n hint: 'projects.projects.list.columns.plannedProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfitOverPeriod',\n header: 'projects.projects.list.columns.plannedProfitOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedProfitOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'plannedProfitOverPeriodBC',\n header: 'projects.projects.list.columns.plannedProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfit',\n header: 'projects.projects.list.columns.actualProfit.header',\n hint: 'projects.projects.list.columns.actualProfit.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualProfitBC',\n header: 'projects.projects.list.columns.actualProfitBC.header',\n hint: 'projects.projects.list.columns.actualProfitBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'actualProfitOverPeriod',\n header: 'projects.projects.list.columns.actualProfitOverPeriod.header',\n hint: 'projects.projects.list.columns.actualProfitOverPeriod.hint',\n type: GridColumnType.Currency,\n currencyCodeProperty: 'Currency.alpha3Code',\n },\n {\n name: 'actualProfitOverPeriodBC',\n header: 'projects.projects.list.columns.actualProfitOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitOverPeriodBC.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Currency,\n },\n {\n name: 'plannedProfitability',\n header: 'projects.projects.list.columns.plannedProfitability.header',\n hint: 'projects.projects.list.columns.plannedProfitability.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'plannedProfitabilityBC',\n header: 'projects.projects.list.columns.plannedProfitabilityBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'plannedProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.plannedProfitabilityOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityOverPeriod.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'plannedProfitabilityOverPeriodBC',\n header:\n 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.plannedProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitability',\n header: 'projects.projects.list.columns.actualProfitability.header',\n hint: 'projects.projects.list.columns.actualProfitability.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitabilityBC',\n header: 'projects.projects.list.columns.actualProfitabilityBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitabilityOverPeriod',\n header:\n 'projects.projects.list.columns.actualProfitabilityOverPeriod.header',\n hint: 'projects.projects.list.columns.actualProfitabilityOverPeriod.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'actualProfitabilityOverPeriodBC',\n header:\n 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.header',\n hint: 'projects.projects.list.columns.actualProfitabilityOverPeriodBC.hint',\n type: GridColumnType.Percent,\n },\n {\n name: 'estimatedHours',\n header: 'projects.projects.list.columns.estimatedHours.header',\n hint: 'projects.projects.list.columns.estimatedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'estimatedHoursOverPeriod',\n header: 'projects.projects.list.columns.estimatedHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.estimatedHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'actualHours',\n header: 'projects.projects.list.columns.actualHours.header',\n hint: 'projects.projects.list.columns.actualHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'actualHoursOverPeriod',\n header: 'projects.projects.list.columns.actualHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.actualHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'plannedHours',\n header: 'projects.projects.list.columns.plannedHours.header',\n hint: 'projects.projects.list.columns.plannedHours.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'plannedHoursOverPeriod',\n header: 'projects.projects.list.columns.plannedHoursOverPeriod.header',\n hint: 'projects.projects.list.columns.plannedHoursOverPeriod.hint',\n availableTotals: [\n TotalType.Sum,\n TotalType.Max,\n TotalType.Min,\n TotalType.Average,\n ],\n type: GridColumnType.Work,\n },\n {\n name: 'isAutoPlanning',\n type: GridColumnType.Boolean,\n header: 'projects.projects.list.columns.isAutoPlanning.header',\n hint: 'projects.projects.list.columns.isAutoPlanning.hint',\n },\n {\n name: 'legalEntity',\n type: GridColumnType.String,\n header: 'projects.projects.list.columns.legalEntity.header',\n hint: 'projects.projects.list.columns.legalEntity.hint',\n },\n ],\n\n dataColumns: [\n ...getCodedEntityDataColumns('project'),\n\n {\n column: 'description',\n field: 'project.description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'program',\n field: 'project.program.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'manager',\n field: 'project.manager.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'organization',\n field: 'project.organization.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'project.state.name',\n 'project.state.code',\n 'project.state.style',\n 'project.state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'sourceProject',\n field: 'project.sourceProject.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'endDate',\n field: 'project.endDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'startDate',\n field: 'project.startDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'billingType',\n field: 'project.billingType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'externalUrl',\n field: 'project.externalUrl',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'currency',\n field: ['project.currency.alpha3Code', 'project.currency.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isAutoPlanning',\n field: 'project.isAutoPlanning',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalEntity',\n field: 'project.legalEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n // TOTAL COLUMNS.\n\n {\n column: 'plannedExpenses',\n field: 'extended.plannedExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedExpensesBC',\n field: 'extended.plannedExpensesBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedExpensesOverPeriod',\n field: 'extended.plannedExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedExpensesOverPeriodBC',\n field: 'extended.plannedExpensesOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpenses',\n field: 'extended.actualExpenses',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpensesBC',\n field: 'extended.actualExpensesBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpensesOverPeriod',\n field: 'extended.actualExpensesOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualExpensesOverPeriodBC',\n field: 'extended.actualExpensesOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenue',\n field: 'extended.plannedRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenueBC',\n field: 'extended.plannedRevenueBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenueOverPeriod',\n field: 'extended.plannedRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedRevenueOverPeriodBC',\n field: 'extended.plannedRevenueOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenue',\n field: 'extended.actualRevenue',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenueBC',\n field: 'extended.actualRevenueBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenueOverPeriod',\n field: 'extended.actualRevenueOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualRevenueOverPeriodBC',\n field: 'extended.actualRevenueOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfit',\n field: 'extended.plannedProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitBC',\n field: 'extended.plannedProfitBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitOverPeriod',\n field: 'extended.plannedProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitOverPeriodBC',\n field: 'extended.plannedProfitOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfit',\n field: 'extended.actualProfit',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitBC',\n field: 'extended.actualProfitBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitOverPeriod',\n field: 'extended.actualProfitOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitOverPeriodBC',\n field: 'extended.actualProfitOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitability',\n field: 'extended.plannedProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitabilityBC',\n field: 'extended.plannedProfitabilityBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitabilityOverPeriod',\n field: 'extended.plannedProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedProfitabilityOverPeriodBC',\n field: 'extended.plannedProfitabilityOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitability',\n field: 'extended.actualProfitability',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitabilityBC',\n field: 'extended.actualProfitabilityBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitabilityOverPeriod',\n field: 'extended.actualProfitabilityOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualProfitabilityOverPeriodBC',\n field: 'extended.actualProfitabilityOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'estimatedHours',\n field: 'extended.estimatedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'estimatedHoursOverPeriod',\n field: 'extended.estimatedHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHours',\n field: 'extended.actualHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCost',\n field: 'extended.actualCost',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostBC',\n field: 'extended.actualCostBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostOverPeriod',\n field: 'extended.actualCostOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualCostOverPeriodBC',\n field: 'extended.actualCostOverPeriodBC',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'actualHoursOverPeriod',\n field: 'extended.actualHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHours',\n field: 'extended.plannedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'plannedHoursOverPeriod',\n field: 'extended.plannedHoursOverPeriod',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const REPORT_TEMPLATE_LIST: List = {\n version: 1,\n name: 'reportTemplates',\n dataCollection: 'Reports',\n views: [\n {\n name: 'templates',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'reportType',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'owner',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 80,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n ],\n contextFilter: [\n {\n isTemplate: true,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'reportTemplate',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n fixedWidth: true,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n fixedWidth: true,\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'reportType',\n fixedWidth: true,\n type: GridColumnType.String,\n header: 'analytics.reports.list.columns.reportType.title',\n hint: 'analytics.reports.list.columns.reportType.title',\n },\n {\n name: 'owner',\n type: GridColumnType.String,\n header: 'analytics.reports.list.columns.owner.title',\n hint: 'analytics.reports.list.columns.owner.title',\n },\n {\n name: 'isCommon',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'analytics.reports.list.columns.isCommon.title',\n hint: 'analytics.reports.list.columns.isCommon.title',\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'reportType',\n field: 'reportType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'owner',\n field: 'owner.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isCommon',\n field: 'isCommon',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const REPORT_LIST: List = {\n version: 1,\n name: 'reports',\n dataCollection: 'Reports',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'reportType',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'owner',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 80,\n },\n {\n column: 'isCommon',\n visibleByDefault: true,\n width: 80,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n ],\n contextFilter: [\n {\n isNew: { ne: true },\n isTemplate: false,\n or: {\n ownerId: { type: 'guid', value: '#user' },\n isCommon: true,\n },\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'my',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'reportType',\n visibleByDefault: true,\n width: 250,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n ],\n contextFilter: [\n {\n ownerId: { type: 'guid', value: '#user' },\n isNew: { ne: true },\n isTemplate: false,\n isCommon: false,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'report',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n fixedWidth: true,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n fixedWidth: true,\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'reportType',\n fixedWidth: true,\n type: GridColumnType.String,\n header: 'analytics.reports.list.columns.reportType.title',\n hint: 'analytics.reports.list.columns.reportType.title',\n },\n {\n name: 'owner',\n type: GridColumnType.Entity,\n header: 'analytics.reports.list.columns.owner.title',\n hint: 'analytics.reports.list.columns.owner.title',\n },\n {\n name: 'isCommon',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'analytics.reports.list.columns.isCommon.title',\n hint: 'analytics.reports.list.columns.isCommon.title',\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'reportType',\n field: 'reportType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'owner',\n field: ['owner.name'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isCommon',\n field: 'isCommon',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const RESOURCE_POOL_LIST: List = {\n version: 2,\n name: 'resourcePools',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'leadResourcePool',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.resourcePool',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'leadResourcePool',\n header: 'settings.resourcePools.list.columns.leadResourcePool',\n hint: 'settings.resourcePools.list.columns.leadResourcePool',\n type: GridColumnType.String,\n },\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'leadResourcePool',\n field: 'leadResourcePool.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'ResourcePools',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const RESOURCE_REQUEST_LIST: List = {\n name: 'resource-requests',\n dataCollection: 'ResourceRequests',\n version: 4,\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'from',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'to',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'requestedHours',\n width: 140,\n visibleByDefault: true,\n },\n {\n column: 'resourceDescription',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n\n {\n name: 'open',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'from',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'to',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'requestedHours',\n width: 140,\n visibleByDefault: true,\n },\n {\n column: 'resourceDescription',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n state: { code: 'Open' },\n },\n ],\n },\n\n {\n name: 'myOpen',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'from',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'to',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'requestedHours',\n width: 140,\n visibleByDefault: true,\n },\n {\n column: 'resourceDescription',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n state: { code: 'Open' },\n createdById: { type: 'guid', value: '#user' },\n },\n ],\n },\n\n {\n name: 'with-my-task',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'from',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'to',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'requestedHours',\n width: 140,\n visibleByDefault: true,\n },\n {\n column: 'resourceDescription',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: getFilterByActiveWorkflowTasks(),\n },\n\n {\n name: 'with-my-workflow',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'state',\n width: 150,\n visibleByDefault: true,\n },\n {\n column: 'project',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'from',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'to',\n visibleByDefault: true,\n width: 140,\n },\n {\n column: 'requestedHours',\n width: 140,\n visibleByDefault: true,\n },\n {\n column: 'resourceDescription',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 140,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: getFilterByActiveWorkflowInstances(),\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'resourceRequest',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'project',\n header: 'resources.requests.list.columns.project',\n hint: 'resources.requests.list.columns.project',\n type: GridColumnType.String,\n },\n {\n name: 'role',\n header: 'resources.requests.list.columns.role',\n hint: 'resources.requests.list.columns.role',\n type: GridColumnType.String,\n },\n {\n name: 'resourcePool',\n header: 'resources.requests.list.columns.resourcePool',\n hint: 'resources.requests.list.columns.resourcePool',\n type: GridColumnType.String,\n },\n {\n name: 'resourceDescription',\n header: 'resources.requests.list.columns.resource',\n hint: 'resources.requests.list.columns.resource',\n type: GridColumnType.String,\n },\n {\n name: 'from',\n header: 'resources.requests.list.columns.from.header',\n hint: 'resources.requests.list.columns.from.hint',\n fixedWidth: true,\n type: GridColumnType.Date,\n },\n {\n name: 'to',\n header: 'resources.requests.list.columns.to.header',\n hint: 'resources.requests.list.columns.to.hint',\n fixedWidth: true,\n type: GridColumnType.Date,\n },\n {\n name: 'requestedHours',\n header: 'resources.requests.list.columns.requestedHours',\n hint: 'resources.requests.list.columns.requestedHours',\n fixedWidth: true,\n type: GridColumnType.Work,\n },\n {\n name: 'state',\n header: 'resources.requests.list.columns.state.header',\n hint: 'resources.requests.list.columns.state.hint',\n type: GridColumnType.State,\n fixedWidth: true,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'project',\n field: 'project.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'role.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resourcePool',\n field: 'resourcePool.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resourceDescription',\n field: 'resourceDescription',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'from',\n field: 'from',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'to',\n field: 'to',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'requestedHours',\n field: 'requestedHours',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'state.name',\n 'state.code',\n 'state.style',\n 'state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const RoleList: List = {\n name: 'roles',\n dataCollection: 'roles',\n version: 5,\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.role',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const SCHEDULE_EXCEPTION_LIST: List = {\n version: 1,\n name: 'scheduleExceptions',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.scheduleException',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'ScheduleExceptions',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const ScheduleList: List = {\n version: 1,\n name: 'schedules',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.schedule',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'Schedules',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const SkillList: List = {\n version: 1,\n name: 'skills',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n state: 'settings.skill',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'Skills',\n};\n","import { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { TimeOffBalanceEntriesTypeCellComponent } from '../components/features/time-off-balance-entries-type-cell/time-off-balance-entries-type-cell.component';\nimport {\n GridColumnType,\n GridComponentColumn,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nexport const TIME_OFF_BALANCE_ENTRIES_LIST: List = {\n version: 2,\n name: 'timeOffBalanceEntries',\n views: [\n {\n name: 'all',\n columns: [\n {\n column: 'type',\n visibleByDefault: true,\n width: 70,\n },\n {\n column: 'number',\n visibleByDefault: true,\n width: 130,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'timeOffType',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'date',\n width: 130,\n visibleByDefault: true,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'value',\n visibleByDefault: true,\n width: 130,\n },\n {\n column: 'mode',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'date', reverse: false },\n },\n ],\n columns: [\n {\n name: 'type',\n fixedWidth: true,\n type: GridColumnType.Component,\n component: TimeOffBalanceEntriesTypeCellComponent,\n header: 'team.timeOffBalanceEntries.list.columns.type.header',\n hint: 'team.timeOffBalanceEntries.list.columns.type.hint',\n },\n {\n name: 'number',\n fixedWidth: true,\n state: 'timeOffBalanceEntry',\n type: GridColumnType.Navigation,\n header: 'team.timeOffBalanceEntries.list.columns.number.header',\n hint: 'team.timeOffBalanceEntries.list.columns.number.hint',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'timeOffType',\n type: GridColumnType.String,\n header: 'team.timeOffBalanceEntries.list.columns.timeOffType.header',\n hint: 'team.timeOffBalanceEntries.list.columns.timeOffType.hint',\n },\n {\n name: 'user',\n type: GridColumnType.String,\n header: 'team.timeOffBalanceEntries.list.columns.user.header',\n hint: 'team.timeOffBalanceEntries.list.columns.user.hint',\n },\n {\n name: 'date',\n fixedWidth: true,\n type: GridColumnType.Date,\n header: 'team.timeOffBalanceEntries.list.columns.date.header',\n hint: 'team.timeOffBalanceEntries.list.columns.date.hint',\n },\n {\n fixedWidth: true,\n name: 'unit',\n type: GridColumnType.String,\n header: 'team.timeOffBalanceEntries.list.columns.unit.header',\n hint: 'team.timeOffBalanceEntries.list.columns.unit.hint',\n },\n {\n name: 'value',\n fixedWidth: true,\n type: GridColumnType.Decimal,\n header: 'team.timeOffBalanceEntries.list.columns.value.header',\n hint: 'team.timeOffBalanceEntries.list.columns.value.hint',\n availableTotals: [TotalType.Sum],\n },\n {\n name: 'mode',\n type: GridColumnType.String,\n header: 'team.timeOffBalanceEntries.list.columns.mode.header',\n hint: 'team.timeOffBalanceEntries.list.columns.mode.hint',\n },\n ],\n dataColumns: [\n {\n column: 'timeOffType',\n field: 'timeOffType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'type',\n field: ['type.name', 'type.code'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'unit',\n field: 'timeOffType.unit.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'value',\n field: 'amount',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'number',\n field: 'number',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'date',\n field: 'date',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'mode',\n field: 'mode.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'TimeOffBalanceEntries',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const TIME_OFF_TYPE_LIST: List = {\n version: 2,\n name: 'timeOffTypes',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.timeOffType',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'code',\n type: GridColumnType.String,\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n },\n {\n name: 'unit',\n type: GridColumnType.String,\n header: 'settings.timeOffTypes.list.columns.unit.title',\n hint: 'settings.timeOffTypes.list.columns.unit.hint',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'unit',\n field: 'unit.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n\n dataCollection: 'TimeOffTypes',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const TIME_OFF_LIST: List = {\n version: 3,\n name: 'timeOff',\n dataCollection: 'TimeOffRequestTotals',\n customFieldEntityType: 'TimeOffRequest',\n customFieldPrefixForDataField: 'timeOffRequest.',\n views: [\n {\n name: 'my-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'startDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'finishDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'duration',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: true,\n width: 2,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: [\n { timeOffRequest: { userId: { type: 'guid', value: '#user' } } },\n ],\n },\n\n {\n name: 'team-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'startDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'finishDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'duration',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: true,\n width: 2,\n },\n ],\n order: { column: 'type', reverse: false },\n },\n\n {\n name: 'with-my-workflow',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'startDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'finishDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modified',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'duration',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: true,\n width: 2,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: [{ timeOffRequest: getFilterByActiveWorkflowInstances() }],\n },\n\n {\n name: 'with-my-task',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'type',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'startDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'finishDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'unit',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'duration',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: [{ timeOffRequest: getFilterByActiveWorkflowTasks() }],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n header: 'timeOff.list.columns.name.header',\n hint: 'timeOff.list.columns.name.hint',\n state: 'timeOffRequest',\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n },\n {\n name: 'type',\n header: 'timeOff.list.columns.type.header',\n hint: 'timeOff.list.columns.type.hint',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'modified',\n type: GridColumnType.DateTime,\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n },\n {\n name: 'createdBy',\n type: GridColumnType.String,\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n },\n {\n name: 'modifiedBy',\n type: GridColumnType.String,\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n },\n {\n name: 'startDate',\n header: 'timeOff.list.columns.startDate.header',\n hint: 'timeOff.list.columns.startDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'finishDate',\n header: 'timeOff.list.columns.finishDate.header',\n hint: 'timeOff.list.columns.finishDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'description',\n header: 'timeOff.list.columns.comments.header',\n hint: 'timeOff.list.columns.comments.hint',\n type: GridColumnType.String,\n },\n\n {\n name: 'user',\n header: 'timeOff.list.columns.user.header',\n hint: 'timeOff.list.columns.user.hint',\n type: GridColumnType.String,\n },\n {\n name: 'unit',\n header: 'timeOff.list.columns.unit.header',\n hint: 'timeOff.list.columns.unit.hint',\n type: GridColumnType.String,\n },\n {\n name: 'duration',\n header: 'timeOff.list.columns.duration.header',\n hint: 'timeOff.list.columns.duration.hint',\n type: GridColumnType.String,\n },\n {\n name: 'assigned',\n header: 'base.columns.assigned.header',\n hint: 'base.columns.assigned.hint',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'timeOffRequest.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'timeOffRequest.state.name',\n 'timeOffRequest.state.code',\n 'timeOffRequest.state.style',\n 'timeOffRequest.state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'type',\n field: 'timeOffRequest.timeOffType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'startDate',\n field: 'timeOffRequest.startDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'finishDate',\n field: 'timeOffRequest.finishDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'timeOffRequest.description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'timeOffRequest.user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'unit',\n field: 'timeOffRequest.timeOffType.unit.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'duration',\n field: 'timeOffDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'assigned',\n field: 'currentAssigned',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'timeOffRequest.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'timeOffRequest.modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'timeOffRequest.createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'timeOffRequest.modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const TimesheetPeriodList: List = {\n version: 1,\n name: 'timesheetPeriods',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'periodType',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'periodScope',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'effectiveDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'department',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'periodType',\n type: GridColumnType.Navigation,\n state: 'settings.timesheetPeriod',\n header: 'settings.timesheetPeriods.list.columns.type.header',\n hint: 'settings.timesheetPeriods.list.columns.type.hint',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'periodScope',\n header: 'settings.timesheetPeriods.list.columns.scope.header',\n hint: 'settings.timesheetPeriods.list.columns.scope.hint',\n type: GridColumnType.String,\n },\n {\n name: 'department',\n header: 'settings.timesheetPeriods.list.columns.department.header',\n hint: 'settings.timesheetPeriods.list.columns.department.hint',\n type: GridColumnType.String,\n },\n {\n name: 'effectiveDate',\n header: 'settings.timesheetPeriods.list.columns.effectiveDate',\n hint: 'settings.timesheetPeriods.list.columns.effectiveDate',\n type: GridColumnType.Date,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'effectiveDate',\n field: 'effectiveDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'periodType',\n field: 'periodType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'periodScope',\n field: 'periodScope.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'TimeSheetPeriods',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const TimesheetTemplateList: List = {\n version: 1,\n name: 'timeSheetTemplates',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'isDefault',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.timesheetTemplate',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'isDefault',\n header: 'shared.columns.isDefault.title',\n hint: 'shared.columns.isDefault.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isDefault',\n field: 'isDefault',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'TimeSheetTemplates',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { DateTime } from 'luxon';\nimport {\n getFilterByActiveWorkflowInstances,\n getFilterByActiveWorkflowTasks,\n} from 'src/app/shared/lists/navigation.helpers';\n\nexport const TIMESHEET_LIST: List = {\n name: 'timesheets',\n version: 5,\n dataCollection: 'ExtendedTimeSheets',\n views: [\n {\n name: 'my-expired',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'dueDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'dateFrom',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n timeSheet: {\n userId: { type: 'guid', value: '#user' },\n state: { code: 'Draft' },\n dueDate: {\n lt: { type: 'raw', value: DateTime.now().toISODate() },\n },\n },\n },\n ],\n },\n {\n name: 'my-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dateFrom',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n timeSheet: {\n userId: { type: 'guid', value: '#user' },\n },\n },\n ],\n },\n {\n name: 'team-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'department',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'dateFrom',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dueDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n {\n name: 'team-expired',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'department',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'dateFrom',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'dueDate',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: false,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [\n {\n timeSheet: {\n state: { code: 'Draft' },\n\n dueDate: {\n lt: { type: 'raw', value: DateTime.now().toISODate() },\n },\n },\n },\n ],\n },\n {\n name: 'with-my-workflow',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'assigned',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'dateFrom',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [{ timeSheet: getFilterByActiveWorkflowInstances() }],\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n availableTotals: [TotalType.Count],\n header: 'timesheets.list.columns.name.header',\n hint: 'timesheets.list.columns.name.hint',\n state: 'timesheet',\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n },\n {\n name: 'dateFrom',\n header: 'timesheets.list.columns.dateFrom.header',\n hint: 'timesheets.list.columns.dateFrom.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'dateTo',\n header: 'timesheets.list.columns.dateTo.header',\n hint: 'timesheets.list.columns.dateTo.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'dueDate',\n header: 'timesheets.list.columns.dueDate.header',\n hint: 'timesheets.list.columns.dueDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'totalDuration',\n header: 'timesheets.list.columns.totalDuration.header',\n hint: 'timesheets.list.columns.totalDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'billableDuration',\n header: 'timesheets.list.columns.billableDuration.header',\n hint: 'timesheets.list.columns.billableDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'nonBillableDuration',\n header: 'timesheets.list.columns.nonBillableDuration.header',\n hint: 'timesheets.list.columns.nonBillableDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'created',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'assigned',\n header: 'base.columns.assigned.header',\n hint: 'base.columns.assigned.hint',\n type: GridColumnType.String,\n },\n {\n name: 'user',\n header: 'timesheets.list.columns.user.header',\n hint: 'timesheets.list.columns.user.hint',\n type: GridColumnType.String,\n },\n {\n name: 'department',\n header: 'timesheets.list.columns.department.header',\n hint: 'timesheets.list.columns.department.hint',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'timesheet.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'timesheet.department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'timesheet.user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'timesheet.state.name',\n 'timesheet.state.code',\n 'timesheet.state.style',\n 'timesheet.state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'dateFrom',\n field: 'timesheet.dateFrom',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dateTo',\n field: 'timesheet.dateTo',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dueDate',\n field: 'timesheet.dueDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'timesheet.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'assigned',\n field: 'extended.currentAssigned',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'nonBillableDuration',\n field: 'extended.nonBillableDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'billableDuration',\n field: 'extended.billableDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalDuration',\n field: 'extended.totalDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport {\n GridColumnType,\n GridNavigationColumn,\n NavigationType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\nconst USER_LIST_VIEW_COLUMNS = [\n {\n column: 'name',\n width: 2,\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'code',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'department',\n width: 2,\n visibleByDefault: true,\n },\n {\n column: 'resourcePool',\n width: 2,\n visibleByDefault: false,\n },\n {\n column: 'legalEntity',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'supervisor',\n width: 2,\n visibleByDefault: false,\n },\n {\n column: 'email',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'phone',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'level',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'role',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'competence',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'location',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'position',\n width: 1,\n visibleByDefault: true,\n },\n {\n column: 'timeSheetTemplate',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'costNormalizationRule',\n width: 1,\n visibleByDefault: false,\n },\n {\n column: 'firstWorkDay',\n width: 110,\n visibleByDefault: false,\n },\n {\n column: 'lastWorkDay',\n width: 110,\n visibleByDefault: false,\n },\n {\n column: 'authProvider',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'isActive',\n width: 135,\n visibleByDefault: true,\n },\n {\n column: 'created',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'modified',\n width: 150,\n visibleByDefault: false,\n },\n {\n column: 'createdBy',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'modifiedBy',\n visibleByDefault: false,\n width: 1,\n },\n];\n\nexport const USER_LIST: List = {\n version: 8,\n name: 'users',\n customFieldEntityType: 'User',\n views: [\n {\n name: 'default',\n columns: USER_LIST_VIEW_COLUMNS,\n order: { column: 'name', reverse: false },\n },\n {\n name: 'inGroup',\n columns: USER_LIST_VIEW_COLUMNS,\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.ResourceNavigation,\n availableTotals: [TotalType.Count],\n state: 'settings.user',\n header: 'settings.users.list.columns.name',\n hint: 'settings.users.list.columns.name',\n navigationType: NavigationType.User,\n } as GridNavigationColumn,\n\n {\n name: 'code',\n header: 'shared.columns.code',\n hint: 'shared.columns.code',\n type: GridColumnType.String,\n },\n {\n name: 'department',\n header: 'shared2.props.department',\n hint: 'shared2.props.department',\n type: GridColumnType.String,\n },\n {\n name: 'resourcePool',\n header: 'shared2.props.resourcePool',\n hint: 'shared2.props.resourcePool',\n type: GridColumnType.String,\n },\n {\n name: 'legalEntity',\n header: 'shared2.props.legalEntity',\n hint: 'shared2.props.legalEntity',\n type: GridColumnType.String,\n },\n {\n name: 'costNormalizationRule',\n header: 'settings.users.list.columns.costNormalizationRule',\n hint: 'settings.users.list.columns.costNormalizationRule',\n type: GridColumnType.String,\n },\n {\n name: 'supervisor',\n header: 'shared2.props.supervisor',\n hint: 'shared2.props.supervisor',\n type: GridColumnType.String,\n },\n {\n name: 'level',\n header: 'shared2.props.level',\n hint: 'shared2.props.level',\n type: GridColumnType.String,\n },\n {\n name: 'grade',\n header: 'shared2.props.grade',\n hint: 'shared2.props.grade',\n type: GridColumnType.String,\n },\n {\n name: 'role',\n header: 'shared2.props.role',\n hint: 'shared2.props.role',\n type: GridColumnType.String,\n },\n {\n name: 'competence',\n header: 'shared2.props.competence',\n hint: 'shared2.props.competence',\n type: GridColumnType.String,\n },\n {\n name: 'location',\n header: 'shared2.props.location',\n hint: 'shared2.props.location',\n type: GridColumnType.String,\n },\n {\n name: 'email',\n header: 'settings.users.list.columns.email',\n hint: 'settings.users.list.columns.email',\n type: GridColumnType.String,\n },\n {\n name: 'phone',\n header: 'settings.users.list.columns.phone',\n hint: 'settings.users.list.columns.phone',\n type: GridColumnType.String,\n },\n {\n name: 'position',\n header: 'settings.users.list.columns.position',\n hint: 'settings.users.list.columns.position',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'modified',\n header: 'shared.columns.modified.title',\n hint: 'shared.columns.modified.hint',\n fixedWidth: true,\n type: GridColumnType.DateTime,\n },\n {\n name: 'firstWorkDay',\n fixedWidth: true,\n header: 'settings.users.list.columns.firstWorkDay',\n hint: 'settings.users.list.columns.firstWorkDay',\n type: GridColumnType.Date,\n },\n {\n name: 'lastWorkDay',\n fixedWidth: true,\n header: 'settings.users.list.columns.lastWorkDay',\n hint: 'settings.users.list.columns.lastWorkDay',\n type: GridColumnType.Date,\n },\n {\n name: 'timeSheetTemplate',\n header: 'settings.users.list.columns.timeSheetTemplate',\n hint: 'settings.users.list.columns.timeSheetTemplate',\n type: GridColumnType.String,\n },\n\n {\n name: 'isActive',\n fixedWidth: true,\n type: GridColumnType.Boolean,\n header: 'settings.users.list.columns.isActive',\n hint: 'settings.users.list.columns.isActive',\n },\n {\n name: 'authProvider',\n header: 'settings.users.list.columns.authProvider',\n hint: 'settings.users.list.columns.authProvider',\n type: GridColumnType.String,\n },\n {\n name: 'createdBy',\n header: 'shared.columns.createdBy.title',\n hint: 'shared.columns.createdBy.hint',\n type: GridColumnType.String,\n },\n {\n name: 'modifiedBy',\n header: 'shared.columns.modifiedBy.title',\n hint: 'shared.columns.modifiedBy.hint',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'code',\n field: 'code',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modified',\n field: 'modified',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'position',\n field: 'position',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'location',\n field: 'location.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'level',\n field: 'level.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'grade',\n field: 'grade.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'role',\n field: 'role.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'competence',\n field: 'competence.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'phone',\n field: 'phone',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'email',\n field: 'email',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'supervisor',\n field: 'supervisor.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'costNormalizationRule',\n field: 'costNormalizationRule.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resourcePool',\n field: 'resourcePool.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'legalEntity',\n field: 'legalEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'lastWorkDay',\n field: 'lastWorkDay',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'firstWorkDay',\n field: 'firstWorkDay',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'timeSheetTemplate',\n field: 'timeSheetTemplate.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'authProvider',\n field: 'authProvider.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'createdBy',\n field: 'createdBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'modifiedBy',\n field: 'modifiedBy.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'Users',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const ValidationRuleList: List = {\n name: 'validationRules',\n version: 1,\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'validationRuleType',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'description',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.validationRule',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'validationRuleType',\n type: GridColumnType.String,\n header: 'settings.validationRules.list.columns.ruleType.header',\n hint: 'settings.validationRules.list.columns.ruleType.hint',\n },\n {\n name: 'description',\n header: 'shared.columns.description',\n hint: 'shared.columns.description',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'validationRuleType',\n field: 'validationRuleType.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'description',\n field: 'description',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'ValidationRules',\n};\n","import {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { WorkflowInstanceEntityCellComponent } from 'src/app/workflow-instances/list/entity-cell/workflow-instance-entity-cell.component';\n\nexport const WORKFLOW_INSTANCE_LIST: List = {\n version: 1,\n name: 'workflowInstances',\n views: [\n {\n name: 'my-active',\n columns: [\n {\n column: 'workflowName',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entity',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n ],\n contextFilter: [\n {\n initiatorId: { type: 'guid', value: '#user' },\n isActive: true,\n },\n ],\n },\n {\n name: 'my',\n columns: [\n {\n column: 'workflowName',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entity',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'finished',\n visibleByDefault: true,\n width: 150,\n },\n ],\n contextFilter: [\n {\n initiatorId: { type: 'guid', value: '#user' },\n },\n ],\n },\n ],\n columns: [\n {\n name: 'workflowName',\n header: 'workflow.list.columns.workflow',\n hint: 'workflow.list.columns.workflow',\n type: GridColumnType.String,\n },\n {\n name: 'entity',\n header: 'workflow.list.columns.entityInfo',\n hint: 'workflow.list.columns.entityInfo',\n type: GridColumnType.Component,\n component: WorkflowInstanceEntityCellComponent,\n },\n {\n name: 'entityType',\n header: 'workflow.list.columns.type',\n hint: 'workflow.list.columns.type',\n type: GridColumnType.String,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n {\n name: 'finished',\n header: 'workflow.list.columns.finished',\n hint: 'workflow.list.columns.finished',\n type: GridColumnType.DateTime,\n fixedWidth: true,\n },\n ],\n\n dataColumns: [\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'finished',\n field: 'finished',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityType',\n field: 'workflowDeclaration.lifecycle.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'workflowName',\n field: 'workflowDeclaration.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entity',\n field: ['entity.name', 'entity.type'],\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n\n dataCollection: 'WorkflowInstances',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { getFilterByActiveWorkflowTasks2 } from 'src/app/shared/lists/navigation.helpers';\n\nexport const WORKFLOW_TASK_TIMESHEET_LIST: List = {\n name: 'workflow-task-timesheets',\n version: 3,\n dataCollection: 'Timesheets',\n queryFunction: 'GetWorkflowTotals',\n views: [\n {\n name: 'with-my-task',\n columns: [\n {\n column: 'taskName',\n visibleByDefault: true,\n totalByDefault: TotalType.Count,\n width: 3,\n },\n {\n column: 'name',\n visibleByDefault: true,\n width: 3,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'user',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'totalDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'billableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'nonBillableDuration',\n visibleByDefault: true,\n width: 1,\n totalByDefault: TotalType.Sum,\n },\n {\n column: 'dateFrom',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'dateTo',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'created',\n visibleByDefault: false,\n width: 1,\n },\n {\n column: 'assigned',\n visibleByDefault: false,\n width: 2,\n },\n ],\n order: { column: 'name', reverse: false },\n contextFilter: [getFilterByActiveWorkflowTasks2()],\n },\n ],\n columns: [\n {\n name: 'taskName',\n header: 'timesheets.list.columns.workflowTask.header',\n hint: 'timesheets.list.columns.workflowTask.hint',\n availableTotals: [TotalType.Count],\n type: GridColumnType.String,\n },\n {\n name: 'name',\n type: GridColumnType.Navigation,\n header: 'timesheets.list.columns.name.header',\n hint: 'timesheets.list.columns.name.hint',\n state: 'timesheet',\n },\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n type: GridColumnType.State,\n },\n {\n name: 'dateFrom',\n header: 'timesheets.list.columns.dateFrom.header',\n hint: 'timesheets.list.columns.dateFrom.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'dateTo',\n header: 'timesheets.list.columns.dateTo.header',\n hint: 'timesheets.list.columns.dateTo.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'dueDate',\n header: 'timesheets.list.columns.dueDate.header',\n hint: 'timesheets.list.columns.dueDate.hint',\n type: GridColumnType.Date,\n },\n {\n name: 'totalDuration',\n header: 'timesheets.list.columns.totalDuration.header',\n hint: 'timesheets.list.columns.totalDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'billableDuration',\n header: 'timesheets.list.columns.billableDuration.header',\n hint: 'timesheets.list.columns.billableDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'nonBillableDuration',\n header: 'timesheets.list.columns.nonBillableDuration.header',\n hint: 'timesheets.list.columns.nonBillableDuration.hint',\n availableTotals: [TotalType.Sum],\n type: GridColumnType.Work,\n },\n {\n name: 'created',\n type: GridColumnType.DateTime,\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n },\n {\n name: 'assigned',\n header: 'base.columns.assigned.header',\n hint: 'base.columns.assigned.hint',\n type: GridColumnType.String,\n },\n {\n name: 'user',\n header: 'timesheets.list.columns.user.header',\n hint: 'timesheets.list.columns.user.hint',\n type: GridColumnType.String,\n },\n {\n name: 'department',\n header: 'timesheets.list.columns.department.header',\n hint: 'timesheets.list.columns.department.hint',\n type: GridColumnType.String,\n },\n ],\n dataColumns: [\n {\n column: 'taskName',\n field: 'workflowTask.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'name',\n field: 'workflowEntity.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'department',\n field: 'workflowEntity.department.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'user',\n field: 'workflowEntity.user.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: [\n 'workflowEntity.state.name',\n 'workflowEntity.state.code',\n 'workflowEntity.state.style',\n 'workflowEntity.state.isEntityProtected',\n ],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'dateFrom',\n field: 'workflowEntity.dateFrom',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dateTo',\n field: 'workflowEntity.dateTo',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'dueDate',\n field: 'workflowEntity.dueDate',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'created',\n field: 'workflowEntity.created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'assigned',\n field: 'extended.currentAssigned',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'nonBillableDuration',\n field: 'extended.nonBillableDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'billableDuration',\n field: 'extended.billableDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'totalDuration',\n field: 'extended.totalDuration',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n};\n","import {\n GridColumnType,\n GridComponentColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\nimport { WorkflowInstanceEntityCellComponent } from 'src/app/workflow-instances/list/entity-cell/workflow-instance-entity-cell.component';\n\nexport const WORKFLOW_TASK_LIST: List = {\n version: 5,\n name: 'workflowTasks',\n views: [\n {\n name: 'my-all',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entity',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'state',\n visibleByDefault: true,\n width: 150,\n },\n {\n column: 'workflow',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'workflowActionLabel',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'resolutionComment',\n visibleByDefault: false,\n width: 2,\n },\n {\n column: 'performed',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'performer',\n visibleByDefault: false,\n width: 1,\n },\n\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: [\n {\n assignedId: { type: 'guid', value: '#user' },\n },\n ],\n },\n {\n name: 'my-active',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 2,\n totalByDefault: TotalType.Count,\n },\n {\n column: 'entity',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'entityType',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'workflow',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'created',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'created', reverse: false },\n contextFilter: [\n {\n assignedId: { type: 'guid', value: '#user' },\n isActive: true,\n },\n ],\n },\n ],\n columns: [\n {\n name: 'state',\n header: 'shared.columns.state',\n hint: 'shared.columns.state',\n fixedWidth: true,\n type: GridColumnType.State,\n },\n {\n name: 'created',\n header: 'shared.columns.created.title',\n hint: 'shared.columns.created.hint',\n type: GridColumnType.DateTime,\n },\n {\n name: 'performed',\n header: 'workflowTasks.list.columns.performed',\n hint: 'workflowTasks.list.columns.performed',\n type: GridColumnType.DateTime,\n },\n {\n name: 'assigned',\n header: 'workflowTasks.list.columns.assigned',\n hint: 'workflowTasks.list.columns.assigned',\n type: GridColumnType.User,\n },\n {\n name: 'performer',\n header: 'workflowTasks.list.columns.performer',\n hint: 'workflowTasks.list.columns.performer',\n type: GridColumnType.User,\n },\n {\n name: 'workflow',\n header: 'workflowTasks.list.columns.workflow',\n hint: 'workflowTasks.list.columns.workflow',\n type: GridColumnType.Entity,\n },\n {\n name: 'workflowActionLabel',\n header: 'workflowTasks.list.columns.workflowActionLabel',\n hint: 'workflowTasks.list.columns.workflowActionLabel',\n type: GridColumnType.String,\n },\n {\n name: 'resolutionComment',\n header: 'workflowTasks.list.columns.resolutionComment',\n hint: 'workflowTasks.list.columns.resolutionComment',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n {\n name: 'entity',\n header: 'workflowTasks.list.columns.entity',\n hint: 'workflowTasks.list.columns.entity',\n type: GridColumnType.Component,\n component: WorkflowInstanceEntityCellComponent,\n },\n {\n name: 'name',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n type: GridColumnType.String,\n },\n {\n name: 'entityType',\n header: 'workflow.list.columns.type',\n hint: 'workflow.list.columns.type',\n type: GridColumnType.String,\n },\n ],\n\n dataColumns: [\n {\n column: 'created',\n field: 'created',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'performed',\n field: 'performed',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'workflowActionLabel',\n field: 'workflowActionLabel',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'resolutionComment',\n field: 'resolutionComment',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'state',\n field: ['state.name', 'state.code', 'state.style'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'performer',\n field: ['performer.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'assigned',\n field: ['assigned.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entityType',\n field: 'workflowInstance.workflowDeclaration.lifecycle.name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'workflow',\n field: ['workflowInstance.workflowDeclaration.name'],\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n {\n column: 'entity',\n field: ['entity.name', 'entity.type'],\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.WhenShowing,\n },\n ],\n dataCollection: 'WorkflowTasks',\n};\n","import {\n GridColumnType,\n GridNavigationColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { List, LoadingStrategy } from '../models/inner/list';\nimport { TotalType } from '../models/inner/total-type';\n\nexport const WORKFLOW_LIST: List = {\n version: 4,\n name: 'workflows',\n views: [\n {\n name: 'default',\n columns: [\n {\n column: 'name',\n visibleByDefault: true,\n width: 1,\n },\n {\n column: 'lifecycleName',\n visibleByDefault: true,\n width: 2,\n },\n {\n column: 'isActive',\n visibleByDefault: true,\n width: 1,\n },\n ],\n order: { column: 'name', reverse: false },\n },\n ],\n columns: [\n {\n name: 'name',\n type: GridColumnType.Navigation,\n state: 'settings.workflow',\n header: 'shared.columns.name',\n hint: 'shared.columns.name',\n availableTotals: [TotalType.Count],\n },\n {\n name: 'lifecycleName',\n header: 'settings.workflows.list.columns.lifecycleName',\n hint: 'settings.workflows.list.columns.lifecycleName',\n type: GridColumnType.String,\n },\n {\n name: 'isActive',\n header: 'shared.columns.isActive.title',\n hint: 'shared.columns.isActive.hint',\n type: GridColumnType.Boolean,\n },\n ],\n\n dataColumns: [\n {\n column: 'name',\n field: 'name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'lifecycleName',\n field: 'lifecycle.name',\n loadingStrategy: LoadingStrategy.Always,\n },\n {\n column: 'isActive',\n field: 'isActive',\n loadingStrategy: LoadingStrategy.Always,\n },\n ],\n\n dataCollection: 'WorkflowDeclarations',\n};\n","import { AttachmentTemplate } from './attachment.interface';\nimport { RESTRICTED_FORMATS } from './restricted-formats.config';\n\nexport class AttachmentHelper {\n public static readonly extensionsType: Record =\n {\n image: [\n 'jpg',\n 'jpeg',\n 'png',\n 'apng',\n 'bmp',\n 'gif',\n 'webp',\n 'svg',\n 'svg+xml',\n ],\n pdf: ['pdf'],\n video: ['webm', 'mp4', 'mp3', 'mpga', 'wav'],\n other: [],\n };\n\n public static getTemplateType(extension: string): AttachmentTemplate {\n for (const key in this.extensionsType) {\n if (this.extensionsType[key].includes(extension)) {\n return key as AttachmentTemplate;\n }\n }\n\n return 'other';\n }\n\n /**\n * Checks if file name is in the allowed extension format.\n *\n * @param files FileList from upload event.\n *\n * @returns true if format is valid\n * */\n public static isValidFormat(files: File[]): boolean {\n for (const file of files) {\n const parsedName = file.name.split('.');\n\n if (\n parsedName.length < 2 ||\n RESTRICTED_FORMATS.includes(parsedName.pop().toLowerCase())\n ) {\n return false;\n }\n }\n\n return true;\n }\n}\n","export const FILE_EXTENSION: ReadonlyMap = new Map([\n ['png', 'bi bi-filetype-png'],\n ['jpg', 'bi bi-filetype-jpg'],\n ['jpeg', 'bi bi-filetype-jpg'],\n ['svg', 'bi bi-filetype-svg'],\n ['css', 'bi bi-filetype-css'],\n ['csv', 'bi bi-filetype-csv'],\n ['doc', 'bi bi-filetype-docx'],\n ['docx', 'bi bi-filetype-docx'],\n ['otf', 'bi bi-filetype-otf'],\n ['exe', 'bi bi-filetype-exe'],\n ['gif', 'bi bi-filetype-gif'],\n ['html', 'bi bi-filetype-html'],\n ['js', 'bi bi-filetype-js'],\n ['json', 'bi bi-filetype-json'],\n ['mov', 'bi bi-filetype-mov'],\n ['mp3', 'bi bi-filetype-mp3'],\n ['mp4', 'bi bi-filetype-mp4'],\n ['pdf', 'bi bi-filetype-pdf'],\n ['ppt', 'bi bi-filetype-ppt'],\n ['pptx', 'bi bi-filetype-pptx'],\n ['psd', 'bi bi-filetype-psd'],\n ['tsx', 'bi bi-filetype-tsx'],\n ['ttf', 'bi bi-filetype-ttf'],\n ['txt', 'bi bi-filetype-txt'],\n ['xls', 'bi bi-filetype-xls'],\n ['xlsx', 'bi bi-filetype-xlsx'],\n ['xml', 'bi bi-filetype-xml'],\n ['webm', 'bi bi-file-earmark-play'],\n ['ogg', 'bi bi-file-earmark-play'],\n ['7z', 'bi bi-file-earmark-zip'],\n ['rar', 'bi bi-file-earmark-zip'],\n ['zip', 'bi bi-file-earmark-zip'],\n ['default', 'bi bi-file-earmark'],\n ['webp', 'bi bi-file-image'],\n]);\n","export const RESTRICTED_FORMATS: readonly string[] = [\n 'bat',\n 'exe',\n 'cmd',\n 'sh',\n 'php',\n 'pl',\n 'cgi',\n '386',\n 'dll',\n 'com',\n 'torrent',\n 'js',\n 'app',\n 'jar',\n 'pif',\n 'vb',\n 'vbscript',\n 'wsf',\n 'asp',\n 'cer',\n 'csr',\n 'jsp',\n 'drv',\n 'sys',\n 'ade',\n 'adp',\n 'bas',\n 'chm',\n 'cpl',\n 'crt',\n 'csh',\n 'fxp',\n 'hlp',\n 'hta',\n 'inf',\n 'ins',\n 'isp',\n 'jse',\n 'htaccess',\n 'htpasswd',\n 'ksh',\n 'lnk',\n 'mdb',\n 'mde',\n 'mdt',\n 'mdw',\n 'msc',\n 'msi',\n 'msp',\n 'mst',\n 'ops',\n 'pcd',\n 'prg',\n 'reg',\n 'scr',\n 'sct',\n 'shb',\n 'shs',\n 'url',\n 'vbe',\n 'vbs',\n 'wsc',\n 'wsf',\n 'wsh',\n];\n","import { NamedEntity } from '../named-entity.model';\n\n/** Сведения о счетчике времени. */\nexport interface Stopwatch {\n /** Состояние. */\n state: StopwatchState;\n\n /** Клиент. */\n client: NamedEntity;\n\n /** Проект. */\n project: NamedEntity;\n\n /** Задача. */\n projectTask: NamedEntity;\n\n /** Учтенное время. */\n duration: number;\n\n /** Время запуска (последнего) счетчика. */\n startTime: string;\n\n /** Дата счетчика. */\n date: string;\n\n /** Признак необходимости отображения клиента. */\n showClient: boolean;\n\n /** Выбранная задача - главная. */\n projectTaskIsMain: boolean;\n\n /** ИД линии таймшита. */\n timeSheetLineId: string;\n}\n\n/** Состояние счетчика времени. */\nexport enum StopwatchState {\n Started = 'Started',\n Paused = 'Paused',\n Stopped = 'Stopped',\n}\n\nexport enum StopwatchStopType {\n Cancel = 'Cancel',\n Increment = 'Increment',\n Rewrite = 'Rewrite',\n}\n","/** The Invoice line type. */\nexport enum InvoiceLineType {\n Time = 'Time',\n Expense = 'Expense',\n Custom = 'Custom',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { NamedEntity } from '../named-entity.model';\nimport { VatRate } from './vat-rate.model';\nimport { CurrencyEntity } from '../currency-entity.model';\nimport { InvoiceLine } from './invoice-line.model';\nimport { State } from '../state.model';\n\n/** The Invoice. */\nexport class Invoice extends NamedEntity {\n public static readonly draftStateId = 'e4648fa0-f9ad-48ba-9421-17fb5b91e4bb';\n public static readonly paidStateId = '1e042723-6442-44d6-9815-b3880423f2d5';\n public static readonly voidStateId = '42f1ba6c-403c-44b7-bac9-0b46509b2d9a';\n public static readonly systemStateIds = [\n Invoice.draftStateId,\n Invoice.paidStateId,\n Invoice.voidStateId,\n ];\n\n /** The Author. */\n user: NamedEntity;\n\n /** The Project. */\n project: CurrencyEntity;\n\n /** The Client. */\n organization: NamedEntity;\n\n /** The Billing address. */\n billingAddress: string;\n\n /** Invoice's state. */\n state: State;\n\n /** The Invoice number. */\n number: string;\n\n /** The Invoice number (auto-incremented). */\n indexNumber: number;\n\n /** The Description (is reflected on print form). */\n description: string;\n\n /** The Planned payment date (pay before). */\n paymentDueDate: string;\n\n /** The Actual payment date. */\n paymentDate: string;\n\n /** The Issue date (Invoice date). */\n issueDate: string;\n\n /** The Invoice line group order. Used to group lines on Invoice form. */\n grouping: string;\n\n /** The Invoice Time line group order. */\n timeLinesGrouping: string;\n\n /** The Invoice Expense line group order. */\n expenseLinesGrouping: string;\n\n /** The Notes for inner usage (ARE NOT reflected on print form). */\n innerNotes: string;\n\n /** The Notes for outer usage (ARE reflected on print form). */\n outerNotes: string;\n\n /** The Total sum. */\n totalAmount: number;\n\n /** The Invoice lines (of any type). */\n lines: InvoiceLine[];\n\n /** The Template. (is used to create print form). */\n invoiceTemplate: {\n id: string;\n name: string;\n vatRate: VatRate;\n };\n}\n","import { EnumEntity } from '../../enums/enum-entity';\n\nexport class VatRate extends EnumEntity {\n rate: number;\n\n public static get vat20(): VatRate {\n return {\n id: '43ec67a7-edf4-476b-adf7-5ca284df064e',\n code: 'Vat20',\n name: '20%',\n rate: 0.2,\n };\n }\n\n public static get vat18(): VatRate {\n return {\n id: '00e5d896-5107-4bfd-bad2-79a1ff6a88da',\n code: 'Vat18',\n name: '18%',\n rate: 0.18,\n };\n }\n\n public static get vat10(): VatRate {\n return {\n id: '484ddfe3-4565-422a-a06c-53b1d4297bce',\n code: 'Vat10',\n name: '10%',\n rate: 0.1,\n };\n }\n\n public static get vat0(): VatRate {\n return {\n id: '598834d5-8d71-4d67-a524-e8c12d74a4c0',\n code: 'Vat0',\n name: '0%',\n rate: 0.0,\n };\n }\n\n public static get notApply(): VatRate {\n return {\n id: '970e32bc-eca7-43c7-9410-1fe9268a7fd4',\n code: 'NotApply',\n name: '0%',\n rate: null,\n };\n }\n}\n","import { NamedEntity } from './named-entity.model';\n\nexport class CodedEntity extends NamedEntity {\n code: string;\n}\n","export interface EntityTypeDescription {\n entityTypeName: string;\n collection: string;\n}\n\nexport const ENTITY_TYPE_TO_COLLECTION: ReadonlyMap = new Map([\n ['ResourceRequestState', 'ResourceRequestStates'],\n ['Organization', 'Organizations'],\n ['Resource', 'Resources'],\n ['Department', 'Departments'],\n ['User', 'Users'],\n ['Project', 'Projects'],\n ['Role', 'Roles'],\n ['Competence', 'Competences'],\n ['Activity', 'Activities'],\n ['ProjectBillingType', 'ProjectBillingTypes'],\n ['ProjectState', 'ProjectStates'],\n ['ProjectTask', 'ProjectTasks'],\n ['TimeOffType', 'TimeOffTypes'],\n ['TimeOffRequest', 'TimeOffRequests'],\n ['ExpenseRequest', 'ExpenseRequests'],\n ['TimeSheet', 'TimeSheets'],\n ['Invoice', 'Invoices'],\n ['Program', 'Programs'],\n ['Skill', 'Skills'],\n ['ResourcePool', 'ResourcePools'],\n ['FinanceReportLineType', 'FinanceReportLineTypes'],\n ['State', 'States'],\n ['ActOfAcceptance', 'ActsOfAcceptance'],\n ['ProjectVersion', 'ProjectVersions'],\n ['Currency', 'Currencies'],\n ['FinancialAccount', 'FinancialAccounts'],\n ['Location', 'Locations'],\n ['Grade', 'Grades'],\n ['Level', 'Levels'],\n ['LegalEntity', 'LegalEntities'],\n ['ProjectCostCenter', 'ProjectCostCenters'],\n ['Issue', 'Issues'],\n ['IssueType', 'IssueTypes'],\n ['Deal', 'Deals'],\n ['Contact', 'Contacts'],\n]);\n","export class Entity {\n id: string;\n created?: string | Date;\n modified?: string | Date;\n isActive?: boolean;\n editAllowed?: boolean;\n deleteAllowed?: boolean;\n}\n\nexport enum EntityState {\n added = 'Added',\n modified = 'Modified',\n deleted = 'Deleted',\n}\n","import { EnumEntity } from '../../enums/enum-entity';\n\nexport class AccountingEntryMode extends EnumEntity {\n public static get automatic(): AccountingEntryMode {\n return {\n id: 'c79b5742-322a-415e-9721-ed54692089d1',\n code: 'Automatic',\n name: 'enums.accountingEntryMode.Automatic',\n };\n }\n\n public static get manual(): AccountingEntryMode {\n return {\n id: '9dd0c035-85cf-4d70-a698-5505aa0829af',\n code: 'Manual',\n name: 'enums.accountingEntryMode.Manual',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AccountingEntryModes: AccountingEntryMode[] = [\n AccountingEntryMode.automatic,\n AccountingEntryMode.manual,\n];\n","import { EnumEntity } from '../../enums/enum-entity';\n\nexport class FinancialAccountType extends EnumEntity {\n public static get revenue(): FinancialAccountType {\n return {\n id: 'b27bf8ed-9569-4414-9208-ddaf36ac136e',\n code: 'Revenue',\n name: 'enums.financialAccountType.revenue',\n };\n }\n\n public static get expenses(): FinancialAccountType {\n return {\n id: 'ac1dc1aa-dac0-4e48-9682-aabc39866d8c',\n code: 'Expenses',\n name: 'enums.financialAccountType.expenses',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FinancialAccountTypes: FinancialAccountType[] = [\n FinancialAccountType.revenue,\n FinancialAccountType.expenses,\n];\n","import { CustomizableEntity } from 'src/app/shared/models/entities/customizable-entity.interface';\nimport { CodedEntity } from '../coded-entity.model';\nimport { FinancialAccountType } from './financial-account-type.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\nexport class FinancialAccount\n extends CodedEntity\n implements CustomizableEntity\n{\n public static get revenueId(): string {\n return 'd0e23321-fd5d-4982-8a72-23747b035026';\n }\n\n public static get laborCostId(): string {\n return '15476461-f0e2-4b70-990a-b4a3ccb5c87f';\n }\n\n public static get timeOffCostId(): string {\n return '13e9a026-b80f-4a08-8fd4-6a269f698004';\n }\n\n public static readonly corporateTaxId =\n 'eedaa83c-5559-4319-806f-30ca66d9f11b';\n\n public static readonly laborCostIds: string[] = [\n this.laborCostId,\n this.timeOffCostId,\n ];\n\n /** Expense or revenue. */\n type: FinancialAccountType;\n\n typeId: string;\n\n description: string;\n\n /** Indicates that a financial account was created by system and is not allowed for editing. */\n isSystem: boolean;\n\n /** Indicates whether to calculate a financial account in the PnL. */\n includedInBalance: boolean;\n\n /** Customizable properties. */\n stringValue1?: string;\n stringValue2?: string;\n stringValue3?: string;\n stringValue4?: string;\n stringValue5?: string;\n\n decimalValue1?: number;\n decimalValue2?: number;\n decimalValue3?: number;\n decimalValue4?: number;\n decimalValue5?: number;\n\n dateValue1?: string;\n dateValue2?: string;\n dateValue3?: string;\n dateValue4?: string;\n dateValue5?: string;\n\n lookupValue1?: NamedEntity;\n lookupValue2?: NamedEntity;\n lookupValue3?: NamedEntity;\n lookupValue4?: NamedEntity;\n lookupValue5?: NamedEntity;\n lookupValue6?: NamedEntity;\n lookupValue7?: NamedEntity;\n lookupValue8?: NamedEntity;\n lookupValue9?: NamedEntity;\n lookupValue10?: NamedEntity;\n\n integerValue1?: number;\n integerValue2?: number;\n integerValue3?: number;\n integerValue4?: number;\n integerValue5?: number;\n}\n","import { Entity } from './entity.model';\n\nexport class NamedEntity extends Entity {\n /** Entity name. */\n name: string;\n /** Entity version. */\n rowVersion?: string;\n /** User who created entity. */\n createdBy?: NamedEntity;\n /** Last user who modified entity. */\n modifiedBy?: NamedEntity;\n}\n\nexport type KeysWithName = {\n [K in keyof T]: T[K] extends NamedEntity ? K : never;\n}[keyof T];\n","import { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { CrossIdEntity } from 'src/app/shared/models/entities/cross-id-entity.interface';\nimport { EntityState } from 'src/app/shared/models/entities/entity.model';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { ProjectTariff } from 'src/app/projects/card/project-tariffs/models/project-tariff.model';\n\n/** Project task. */\nexport class ProjectTask extends NamedEntity implements CrossIdEntity {\n /* Task category id */\n categoryId: string;\n\n crossId: string;\n\n /** Project id. */\n projectId?: string;\n\n /** Project version id. */\n versionId?: string;\n\n /** Branch order number (0, 1 ...). */\n number: number;\n\n /** Structure number (1.1.1, 1.1.2 ...) */\n structNumber: string;\n\n /** Allow time to be charged to a task. */\n allowTimeEntry: boolean;\n\n leadTaskId: string;\n\n /** Work duration. Count of work days in the task. */\n duration?: number;\n\n /** Percent of complication of the task. */\n percentComplete?: number;\n\n /** Task start date. */\n startDate: string;\n\n /** Task end date. */\n endDate: string;\n\n /** Task assignments. */\n projectTaskAssignments: ProjectTaskAssignment[];\n /** Field for indirect task assignments update.\n * Should to rewrite to projectTaskAssignments at once. */\n updatedAssignments?: ProjectTaskAssignment[];\n\n /** Task dependencies. */\n dependencies: ProjectTaskDependency[];\n\n /** Description. */\n description: string;\n\n /** Actual labor costs. */\n actualHours?: number;\n\n /** Actual cost. */\n actualCost?: number;\n\n /** Planned labor costs (according to resource plan). */\n plannedHours?: number;\n\n /** Planned cost (according to resource plan). */\n plannedCost?: number;\n\n /** Estimated labor costs (according to resource plan). */\n estimatedHours?: number;\n\n /** Estimated cost (according to resource plan). */\n estimatedCost?: number;\n\n /** Collapse/expand task group flag in UI. */\n isExpanded?: boolean;\n\n /** Indent the task to the left in the UI. */\n indent: number;\n\n /** Task planning type. */\n type: ProjectTaskType;\n\n /** Fixed amount of work. */\n effortDriven: boolean;\n\n /** Entity state after undo/redo. */\n entityState?: EntityState;\n\n /** Determines is task milestone. */\n isMilestone?: boolean;\n\n /** Master version task dates. */\n plannedStartDate?: string;\n plannedEndDate?: string;\n\n /** Customizable properties. */\n stringValue1?: string;\n stringValue2?: string;\n stringValue3?: string;\n stringValue4?: string;\n stringValue5?: string;\n\n decimalValue1?: number;\n decimalValue2?: number;\n decimalValue3?: number;\n decimalValue4?: number;\n decimalValue5?: number;\n\n dateValue1?: string;\n dateValue2?: string;\n dateValue3?: string;\n dateValue4?: string;\n dateValue5?: string;\n\n lookupValue1?: NamedEntity;\n lookupValue2?: NamedEntity;\n lookupValue3?: NamedEntity;\n lookupValue4?: NamedEntity;\n lookupValue5?: NamedEntity;\n\n integerValue1?: number;\n integerValue2?: number;\n integerValue3?: number;\n integerValue4?: number;\n integerValue5?: number;\n}\n\n/** Dependency between tasks. */\nexport class ProjectTaskDependency {\n predecessorId: string;\n type: ProjectTaskDependencyType;\n}\n\n/** Type of dependency between tasks. */\nexport enum ProjectTaskDependencyType {\n finishToStart = 'FinishToStart',\n finishToFinish = 'FinishToFinish',\n startToStart = 'StartToStart',\n startToFinish = 'StartToFinish',\n}\n\nexport const AVAILABLE_DEPENDENCY_TYPES = [\n ProjectTaskDependencyType.finishToStart,\n ProjectTaskDependencyType.finishToFinish,\n ProjectTaskDependencyType.startToStart,\n ProjectTaskDependencyType.startToFinish,\n];\n\nexport const projectTaskWarnings = [\n 'dependentTasksWereChanged',\n 'startDateLimitByPredecessor',\n 'startDateShiftByNonWorkingDay',\n 'endDateEarlierThanStartDate',\n 'endDateShiftByNonWorkingDay',\n];\n\n/** Task planning types. */\nexport enum ProjectTaskType {\n fixedUnits = 'FixedUnits',\n fixedDuration = 'FixedDuration',\n fixedWork = 'FixedWork',\n}\n\nexport const PROJECT_TASK_TYPES = [\n ProjectTaskType.fixedDuration,\n ProjectTaskType.fixedWork,\n ProjectTaskType.fixedUnits,\n];\n\nexport interface ProjectTaskAssignment {\n id: string;\n isAllTeamRole: boolean;\n isUnassigned: boolean;\n projectTeamMember?: ProjectTeamMember;\n projectTeamMemberId: string | null;\n units: number | null;\n projectTariffId: string | null;\n projectTariff?: Partial;\n}\n","import { DateTime } from 'luxon';\nimport { BookingType } from '../../enums/booking-type.enum';\nimport { PlanningMethod } from '../../enums/planning-method.enum';\nimport { Entity } from '../entity.model';\nimport { NamedEntity } from '../named-entity.model';\nimport { BookingDetailEntry } from './booking-detail-entry.model';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { ResourceRequestChangeEntry } from 'src/app/shared/models/entities/resources/change-entry.model';\nimport { ResourceRequest } from 'src/app/shared/models/entities/resources/resource-request.model';\n\n/** Бронь. */\nexport interface BookingEntry extends Entity {\n /** Row version. */\n rowVersion?: string;\n\n /** Resource ID. */\n resourceId: string;\n\n /** Resource with schedule. */\n resource?: BookingResource;\n\n /** Project ID. */\n projectId?: string;\n\n /** Project. */\n project: NamedEntity;\n\n /** From date of booking period. */\n from: string;\n\n /** To date of booking period. */\n to: string;\n\n /** Total booked hours. */\n bookedHours?: number;\n\n /** Total required hours. */\n requiredHours: number;\n\n /** Total required schedule percent. */\n requiredSchedulePercent: number;\n\n /** Planning mode. */\n planningMethod: PlanningMethod;\n\n detailEntries: BookingDetailEntry[];\n\n /** TimeOff attribute. */\n isTimeOff?: boolean;\n\n /** Hidden projects attribute. */\n isOther?: boolean;\n\n /** Line index. */\n lineIndex?: number;\n\n /** Client property. */\n fromLx?: DateTime;\n\n /** Client property. */\n toLx?: DateTime;\n\n /** User who created. */\n createdBy?: NamedEntity;\n\n /** User who modified. */\n modifiedBy?: NamedEntity;\n\n /** `BookingType`. */\n type?: BookingType;\n\n /** Resource request. */\n resourceRequest?: Partial;\n\n /** Change entries (only for `BookingType.resourceRequest`). */\n changeEntries?: Partial[];\n}\n\nexport interface BookingResource extends NamedEntity {\n schedule?: DateHours[];\n}\n\nexport interface ProjectRow extends NamedEntity {\n /** Resource Request Bookings. */\n requestBookings: BookingEntry[];\n /** Booking entry id. */\n bookingEntryId: string;\n /** Indicates to available to edit booking entries. */\n bookingEntryEditAllowed: boolean;\n /** Details of booking entry */\n detailEntries?: BookingDetailEntry[];\n /* Indicates that it isn't project but time-off entry (or entries if booking mode is detailed). */\n isTimeOff?: boolean;\n /** Indicates that Resource Request rows are shown. */\n isExpanded?: boolean;\n}\n\nexport interface BookingEntryReqBody {\n /** Detail's hours. */\n hours: number;\n /** Detail's date. */\n date: string;\n /** Booking entry id. */\n bookingId: string;\n // TODO useless?\n resourceId?: string;\n}\n\nexport enum BookingEntryType {\n booking = 'Booking',\n resourceRequest = 'ResourceRequest',\n}\n","import { State } from 'src/app/shared/models/entities/state.model';\nimport { DateHours } from '../date-hours.model';\nimport { NamedEntity } from '../named-entity.model';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\n\nexport class ResourceRequest extends NamedEntity {\n public static requestCompletedStateId =\n 'cb95e01b-0962-4fee-943b-b115faf6351a';\n public static requestCanceledStateId = '3c1ad8ea-897b-4095-a808-bdf37cd31b05';\n public static requestDraftStateId = 'f145a701-2bc5-4733-a874-fc35f7a94903';\n public static notSavedChangesStateIds = [\n ResourceRequest.requestCanceledStateId,\n ResourceRequest.requestDraftStateId,\n ];\n public static systemStateIds = [\n ResourceRequest.requestCanceledStateId,\n ResourceRequest.requestCompletedStateId,\n ResourceRequest.requestDraftStateId,\n ];\n /** The beginning of the period in which the resource is required */\n from: string | null;\n\n /** The end of the period in which the resource is required */\n to: string | null;\n\n /** Date on which the request was opened */\n opened: string;\n\n /** Date on which the request was performed */\n completed: string;\n\n /** Team member description */\n resourceDescription: string;\n\n /** Request note */\n note: string;\n\n /** Request's total hours */\n requestedHours: number;\n\n /** Amount of booked hours */\n bookedHours: number;\n\n /** Lifecycle state id*/\n stateId?: string;\n\n /** Lifecycle state */\n state: State;\n\n /** Requested role of team member */\n role?: NamedEntity;\n\n /** Competence. */\n competence?: NamedEntity;\n\n /** Project */\n project: NamedEntity;\n\n /** Requested resource pool */\n resourcePool: NamedEntity;\n\n /** Legal entity. */\n legalEntity: NamedEntity;\n\n /** Requested level of team member */\n level?: NamedEntity;\n\n /** Requested grade of team member */\n grade?: NamedEntity | null;\n\n /** Requested location of team member */\n location?: NamedEntity | null;\n\n /** Requested generic's id from project */\n teamMemberId?: string;\n\n /** Requested generic from project */\n teamMember?: Partial;\n\n /** Requested `DateHours` collection */\n requirementEntries: DateHours[];\n\n /** Preferred resources */\n preferredResources: any[] | null;\n\n /** Indicates to available to open request */\n openAllowed: boolean;\n\n /** Indicates to available to complete request */\n completeAllowed: boolean;\n\n /** Indicates to available to cancel request */\n cancelAllowed: boolean;\n\n /** Indicates to available to edit booking entries of request */\n bookingEntryEditAllowed: boolean;\n\n /** Indicates to available to view booking entries of request */\n bookingEntryViewAllowed: boolean;\n\n /** Employment type id. */\n employmentTypeId: string;\n}\nexport interface ResourceRequestTemplate extends NamedEntity {\n /** The beginning of the period in which the resource is required */\n from: string | null;\n /** The end of the period in which the resource is required */\n to: string | null;\n /** Requested role of team member */\n role: NamedEntity;\n /** Requested level of team member */\n level: NamedEntity;\n /** Requested grade of team member */\n grade: NamedEntity;\n /** Requested location of team member */\n location: NamedEntity;\n /** Requested resource pool */\n resourcePool: NamedEntity;\n /** Resource */\n resource: NamedEntity;\n /** Team member ID */\n teamMemberId: string;\n /** Project */\n project: NamedEntity;\n /** Team member description */\n resourceDescription: string;\n /** Employment type id. */\n employmentTypeId: string;\n}\n\nexport interface ResourceRequestUser extends NamedEntity {\n teamMemberId: string;\n resourceType: ResourceType;\n}\n","import { EnumEntity } from '../../enums/enum-entity';\nimport { NamedEntity } from '../named-entity.model';\n\nexport interface Import extends NamedEntity {\n state: ImportState;\n}\n\nexport class ImportState extends EnumEntity {\n class: string;\n\n public static get importing(): ImportState {\n return {\n id: 'b12908fe-2e9a-4730-8e04-18155eac5cf8',\n code: 'Importing',\n name: 'enums.importState.Importing',\n class: 'bg-warning',\n };\n }\n\n public static get imported(): ImportState {\n return {\n id: '979e5d77-2f48-448e-a8d5-4a730a9afdc9',\n code: 'Imported',\n name: 'enums.importState.Imported',\n class: 'bg-success',\n };\n }\n\n public static get deleting(): ImportState {\n return {\n id: 'c4d996a5-f14c-4a5a-a6c4-32bdb122c0f9',\n code: 'Deleting',\n name: 'enums.importState.Deleting',\n class: 'bg-warning',\n };\n }\n\n public static get deleted(): ImportState {\n return {\n id: 'f16ceb3b-172e-44dd-8e45-1533328c6b12',\n code: 'Deleted',\n name: 'enums.importState.Deleted',\n class: 'bg-dark',\n };\n }\n\n public static get error(): ImportState {\n return {\n id: '20910be1-7358-426d-bbd7-a1cd334ebe23',\n code: 'Error',\n name: 'enums.importState.Error',\n class: 'bg-danger',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ImportStates: ImportState[] = [\n ImportState.error,\n ImportState.imported,\n ImportState.importing,\n ImportState.deleted,\n ImportState.deleting,\n];\n","import { NamedEntity } from '../named-entity.model';\nimport { VatRate } from '../billing/vat-rate.model';\n\nexport interface InvoiceTemplate extends NamedEntity {\n /** Логотип для вставки в счет. */\n logo: string;\n\n /** Признак существования логотипа */\n hasLogo: boolean;\n\n /** Адрес компании, используемый в счете. */\n companyAddress: string;\n\n /** Имя компании, используемое в счете. */\n companyName: string;\n\n /** Телефон компании, используемый в счете. */\n companyPhone: string;\n\n /** Платежные реквизиты для счета. */\n paymentRequisites: string;\n\n /** Должности подписантов для вывода в счет. */\n signaturePosts: string;\n\n /** Имена подписантов для вывода в счет. */\n signatureNames: string;\n\n /** Ставка НДС */\n vatRate: VatRate;\n\n /** Размер печатной формы счета. */\n pageSize: PageSize;\n\n /** Ориентация печатной формы счета. */\n pageOrientation: PageOrientation;\n\n /** Признак использования шаблона по умолчанию для новых счетов. */\n isDefault: boolean;\n}\n\nexport enum PageSize {\n A4 = 'A4',\n Letter = 'Letter',\n}\n\nexport enum PageOrientation {\n Portrait = 'Portrait',\n Landscape = 'Landscape',\n}\n","import { LocalString } from 'src/app/shared/models/enums/language.enum';\n\nexport interface MetaEntity {\n name: string;\n displayNames: LocalString[];\n primitiveProperties: MetaEntityPrimitiveProperty[];\n complexProperties: MetaEntityComplexProperty[];\n navigationProperties: MetaEntityNavigationProperty[];\n directoryProperties: MetaEntityDirectoryProperty[];\n\n // logAttributes: MetaEntityLogAttribute[];\n usedInLogging: boolean;\n usedInBoards: boolean;\n hasLifecycle: boolean;\n\n /** Determines whether entity can be enriched by custom fields or not. */\n customizable: boolean;\n\n /** Defines the hierarchy key for hierarchical entities. */\n hierarchyProperty: string | null;\n\n lifecycleKindProperty: string | null;\n lifecycleKindType: string | null;\n}\n\nexport enum MetaEntityPropertyKind {\n primitive = 'Primitive',\n navigation = 'Navigation',\n collection = 'Collection',\n complex = 'Complex',\n directory = 'Directory',\n}\n\nexport enum MetaEntityPropertyType {\n string = 'String',\n decimal = 'Decimal',\n dateTime = 'DateTime',\n integer = 'Integer',\n dateOnly = 'DateOnly',\n text = 'Text',\n directory = 'Directory',\n navigation = 'Navigation',\n boolean = 'Boolean',\n currency = 'Currency',\n percent = 'Percent',\n phone = 'Phone',\n url = 'Url',\n email = 'Email',\n}\n\nexport interface MetaEntityBaseProperty {\n name: string;\n kind: MetaEntityPropertyKind;\n displayNames: LocalString[];\n viewConfiguration: ClientMetaEntityPropertyViewConfiguration;\n customFieldId: string | null;\n clrType: string;\n type: MetaEntityPropertyType;\n annotation: string | null;\n isRequired: boolean;\n isShownInReports: boolean;\n isOnlyForApi: boolean;\n metaEntityName: string;\n}\n\nexport interface MetaEntityPropertyViewConfiguration {\n labels: LocalString[];\n placeholders: LocalString[];\n formColumn: FormColumn;\n orderNumber: number;\n formDefaultValue?: any;\n isShownInEntityLists: boolean;\n isShownInEntityListFilters: boolean;\n isShownInEntityForms: boolean;\n}\n\n/** Client extended MetaEntityViewConfiguration considered current language. */\nexport interface ClientMetaEntityPropertyViewConfiguration\n extends MetaEntityPropertyViewConfiguration {\n /** Client calculated field label. */\n label?: string;\n /** Client calculated field placeholder. */\n placeholder?: string;\n}\n\nexport interface MetaEntityPrimitiveProperty extends MetaEntityBaseProperty {\n usedInHistoryLog: boolean;\n}\n\nexport interface MetaEntityComplexProperty extends MetaEntityBaseProperty {\n usedInHistoryLog: boolean;\n properties: string[];\n}\n\nexport interface MetaEntityNavigationProperty extends MetaEntityBaseProperty {\n usedInHistoryLog: boolean;\n keyProperty: string;\n}\n\nexport interface MetaEntityDirectoryProperty extends MetaEntityBaseProperty {\n usedInHistoryLog: boolean;\n keyProperty: string;\n directoryId: string | null;\n directoryCode: string | null;\n}\n\nexport type FormColumn = 'Left' | 'Right';\n\n// This types uses common stringValueX dataFields.\nexport const metaEntityStringPropertyTypes = [\n MetaEntityPropertyType.string,\n MetaEntityPropertyType.url,\n MetaEntityPropertyType.phone,\n MetaEntityPropertyType.email,\n];\n\nexport interface MetaEntitySettings {\n id: string;\n entityType: string;\n entityCustomHooks: string;\n isActive: boolean;\n}\n","export interface TenantOverview {\n state: TenantState;\n billingType: TenantBillingType;\n currentBalance: number;\n trialExpiryDate: Date;\n ownerName: string;\n ownerEmail: string;\n ownerPhone: string;\n countryCode: string;\n currencyCode: string;\n}\n\nexport enum TenantState {\n active = 'Active',\n suspended = 'Suspended',\n archived = 'Archived',\n}\n\nexport enum TenantBillingType {\n trial = 'Trial',\n license = 'License',\n freemium = 'Freemium',\n}\n","import { NamedEntity } from '../named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport interface ResourcePool extends NamedEntity {\n description?: string;\n isDefault: boolean;\n manager: NamedEntity;\n leadResourcePool?: ResourcePool;\n}\n\nexport const PREDEFINED_RESOURCE_POOL_IDS = ['My'] as const;\n\nexport const getPredefinedResourcePools = (\n translate: TranslateService,\n): NamedEntity[] =>\n PREDEFINED_RESOURCE_POOL_IDS.map((v) => ({\n id: v,\n name: translate.instant(`shared2.props.predefinedResourcePool${v}`),\n }));\n","import { CodedEntity } from './coded-entity.model';\nimport { TransitionForm } from './lifecycle/transition-form.model';\nimport { NamedEntity } from './named-entity.model';\nimport { Lifecycle } from 'src/app/shared/models/entities/settings/lifecycles/lifecycle.model';\nimport { Dictionary } from '../dictionary';\n\nexport interface State extends CodedEntity {\n style: string;\n index: number;\n isEntityProtected: boolean;\n isEntityDisabled: boolean;\n canBeSetByModerator: boolean;\n transitions: Transition[];\n lifecycle: Lifecycle;\n isInitial?: boolean;\n entityKindId: string | null;\n}\n\nexport interface Transition {\n id: string;\n name: string;\n labelStrings: Dictionary;\n nextStateId: string;\n nextStateName?: string;\n performersString?: string;\n performers: Performer[];\n hasTransitionForm: boolean;\n transitionForm: TransitionForm | null;\n}\n\nexport interface LabelStrings {\n en?: string;\n ru: string;\n}\n\nexport interface Performer extends NamedEntity {\n type: string;\n}\n\nexport const stateStyles = [\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'warning',\n 'info',\n 'light',\n 'dark',\n];\n","import { EnumEntity } from '../../enums/enum-entity';\n\nexport class TimeOffBalanceEntryMode extends EnumEntity {\n public static get automatic(): TimeOffBalanceEntryMode {\n return {\n id: '028b095e-32cd-410f-896f-eaa8ed649e3e',\n code: 'Automatic',\n name: 'enums.timeOffBalanceEntryMode.Automatic',\n };\n }\n\n public static get manual(): TimeOffBalanceEntryMode {\n return {\n id: 'a975a75f-91d3-46b2-b655-dba92bfeb3c2',\n code: 'Manual',\n name: 'enums.timeOffBalanceEntryMode.Manual',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TimeOffBalanceEntryModes: TimeOffBalanceEntryMode[] = [\n TimeOffBalanceEntryMode.automatic,\n TimeOffBalanceEntryMode.manual,\n];\n","import { EnumEntity } from '../../enums/enum-entity';\n\nexport class TimeOffBalanceEntryType extends EnumEntity {\n public static get accrual(): TimeOffBalanceEntryType {\n return {\n id: '42a4ee7d-f46f-40e3-b411-61810e6208e7',\n code: 'Accrual',\n name: 'enums.timeOffBalanceEntryType.accrual',\n };\n }\n\n public static get use(): TimeOffBalanceEntryType {\n return {\n id: '12986237-83af-46e2-a208-835e71e61101',\n code: 'Use',\n name: 'enums.timeOffBalanceEntryType.use',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TimeOffBalanceEntryTypes: TimeOffBalanceEntryType[] = [\n TimeOffBalanceEntryType.accrual,\n TimeOffBalanceEntryType.use,\n];\n","export enum AccountDocumentStatus {\n Issued = 'Issued',\n Paid = 'Paid',\n Sent = 'Sent',\n Signed = 'Signed',\n Cancelled = 'Cancelled',\n}\n","export enum AccrualPolicyPeriod {\n Week = 'Week',\n Month = 'Month',\n Year = 'Year',\n}\n","export enum AccrualPolicyType {\n Fixed = 'Fixed',\n Overhours = 'Overhours',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\n/** Провайдер аутентификации пользователя. */\nexport enum AuthProviderType {\n /** Локальный (по умолчанию). */\n Local = 'Local',\n /** УЗ в Azure AD. */\n AzureAd = 'AzureAd',\n OpenId = 'OpenId',\n}\n","export enum BookingMode {\n Basic = 'Basic',\n Detailed = 'Detailed',\n}\n","export enum BookingType {\n Hard = 'Hard',\n Soft = 'Soft',\n}\n","export enum CommentedEntityCollectionType {\n ActsOfAcceptance = 'ActsOfAcceptance',\n ResourceRequests = 'ResourceRequests',\n Issues = 'Issues',\n ExpenseRequests = 'ExpenseRequests',\n ProjectVersions = 'ProjectVersions',\n TimeOffRequests = 'TimeOffRequests',\n TimeSheets = 'TimeSheets',\n Certificates = 'Certificates',\n Projects = 'Projects',\n Invoices = 'Invoices',\n RateMatrices = 'RateMatrices',\n Deals = 'Deals',\n}\n","/** Value change propagation mode.\n *\n * @example 'onInput' - every time input change;\n * 'onExitFromEditing' - after input blur or enter key pressing\n */\nexport enum PropagationMode {\n onInput = 'onInput',\n onExitFromEditing = 'onExitFromEditing',\n}\n","export enum CostNormalizationMethod {\n PaidProjectsFirst = 'PaidProjectsFirst',\n Evenly = 'Evenly',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** Represents a Project version create mode. */\nexport enum CreateProjectVersionMode {\n /** Create empty version mode. */\n Empty = 'Empty',\n /** Copy estimates mode. */\n CopyEstimate = 'CopyEstimate',\n /** Copy forecast mode. */\n CopyForecast = 'CopyForecast',\n}\n\nexport const CreateProjectVersionModes = [\n CreateProjectVersionMode.Empty,\n CreateProjectVersionMode.CopyEstimate,\n CreateProjectVersionMode.CopyForecast,\n];\n","export enum DatePeriodType {\n ThisWeek = 'ThisWeek',\n PrevWeek = 'PrevWeek',\n NextWeek = 'NextWeek',\n\n ThisMonth = 'ThisMonth',\n PrevMonth = 'PrevMonth',\n NextMonth = 'NextMonth',\n\n ThisQuarter = 'ThisQuarter',\n PrevQuarter = 'PrevQuarter',\n NextQuarter = 'NextQuarter',\n\n ThisYear = 'ThisYear',\n PrevYear = 'PrevYear',\n NextYear = 'NextYear',\n\n Last7Days = 'Last7Days',\n Last30Days = 'Last30Days',\n\n Custom = 'Custom',\n}\n","export enum DayOfWeek {\n //\n // Summary:\n // Indicates Sunday.\n Sunday = 'Sunday',\n //\n // Summary:\n // Indicates Monday.\n Monday = 'Monday',\n //\n // Summary:\n // Indicates Tuesday.\n Tuesday = 'Tuesday',\n //\n // Summary:\n // Indicates Wednesday.\n Wednesday = 'Wednesday',\n //\n // Summary:\n // Indicates Thursday.\n Thursday = 'Thursday',\n //\n // Summary:\n // Indicates Friday.\n Friday = 'Friday',\n //\n // Summary:\n // Indicates Saturday.\n Saturday = 'Saturday',\n}\n","export enum DayPart {\n FullDay = 'FullDay',\n Hours = 'Hours',\n Half = 'Half',\n ThreeQuarters = 'ThreeQuarters',\n Quarter = 'Quarter',\n Octet = 'Octet',\n}\n","export enum DimensionItem {\n day = 'day',\n week = 'week',\n month = 'month',\n}\n","export enum DurationMode {\n work = 'work',\n calendar = 'calendar',\n}\n","import { CodedEntity } from '../entities/coded-entity.model';\n\nexport class EnumEntity implements CodedEntity {\n name: string;\n id: string;\n code: string;\n}\n","import { LicenseProduct } from 'src/app/shared/models/session/client-session.model';\n\nexport enum Feature {\n projectTasks = 'ProjectTasks',\n programs = 'Programs',\n resourcePlan = 'ResourcePlan',\n genericResources = 'GenericResources',\n timesheets = 'Timesheets',\n timeOff = 'TimeOff',\n pnl = 'PnL',\n billing = 'Billing',\n expenses = 'Expenses',\n booking = 'Booking',\n clients = 'Clients',\n finance = 'Finance',\n}\n\nexport const PRODUCT_FEATURE_MAPPING: Map<\n LicenseProduct,\n Set\n> = new Map([\n [\n LicenseProduct.projects,\n new Set([\n Feature.projectTasks,\n Feature.resourcePlan,\n Feature.programs,\n Feature.genericResources,\n ]),\n ],\n [LicenseProduct.billing, new Set([Feature.billing])],\n\n [LicenseProduct.expenses, new Set([Feature.expenses])],\n [\n LicenseProduct.timeTracking,\n new Set([Feature.timesheets, Feature.timeOff]),\n ],\n [LicenseProduct.resources, new Set([Feature.booking])],\n [LicenseProduct.clients, new Set([Feature.clients])],\n [LicenseProduct.finance, new Set([Feature.finance, Feature.pnl])],\n [\n LicenseProduct.legacyStarter,\n new Set([\n Feature.timesheets,\n Feature.projectTasks,\n Feature.resourcePlan,\n ]),\n ],\n [\n LicenseProduct.legacyBasic,\n new Set([\n Feature.projectTasks,\n Feature.resourcePlan,\n Feature.timesheets,\n Feature.timeOff,\n Feature.expenses,\n Feature.billing,\n ]),\n ],\n [\n LicenseProduct.legacyStandard,\n new Set([\n Feature.projectTasks,\n Feature.resourcePlan,\n Feature.programs,\n Feature.pnl,\n Feature.timesheets,\n Feature.timeOff,\n Feature.expenses,\n Feature.billing,\n Feature.finance,\n Feature.booking,\n Feature.genericResources,\n ]),\n ],\n [\n LicenseProduct.corp,\n new Set([\n Feature.projectTasks,\n Feature.resourcePlan,\n Feature.programs,\n Feature.pnl,\n Feature.timesheets,\n Feature.timeOff,\n Feature.expenses,\n Feature.billing,\n Feature.finance,\n Feature.booking,\n Feature.genericResources,\n ]),\n ],\n]);\n","export enum ForecastPeriod {\n Day = 'Day',\n Week = 'Week',\n Month = 'Month',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum KpiKind {\n Hours = 'Hours',\n Cost = 'Cost',\n Revenue = 'Revenue',\n Expenses = 'Expenses',\n Profit = 'Profit',\n Profitability = 'Profitability',\n Duration = 'Duration',\n Billing = 'Billing',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum KpiType {\n Plan = 'Plan',\n Estimate = 'Estimate',\n Actual = 'Actual',\n Forecast = 'Forecast',\n Booked = 'Booked',\n Scheduled = 'Scheduled',\n}\n","export enum Language {\n ru = 'Ru',\n en = 'En',\n}\n\nexport interface LocalString {\n language: Language;\n value: string;\n}\n\n// TODO: remove this after OData select fix\nexport class LocalStringHelper {\n /**\n * Gets translate from `LocalString`.\n *\n * @param translates translates collection.\n * @param language current system language.\n * @returns translate or `null`.\n */\n public static getTranslate(\n translates: LocalString[],\n language: string,\n ): string | undefined {\n return translates.find((translate) =>\n language.toLowerCase().includes(translate.language.toLowerCase()),\n )?.value;\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\n/** Метод планирования (при бронировании или ресурсном планировании ресурса). */\nexport enum PlanningMethod {\n Manual = 'Manual',\n FrontLoad = 'FrontLoad',\n RemainingCapacity = 'RemainingCapacity',\n Evenly = 'Evenly',\n SchedulePercent = 'SchedulePercent',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { DateTimeUnit } from 'luxon';\n\n// NOTE: Enum values must be defined in ascending order\nexport enum PlanningScale {\n Day = 'Day',\n Week = 'Week',\n Month = 'Month',\n Quarter = 'Quarter',\n Year = 'Year',\n}\n\nexport const AllPlanningScales: PlanningScale[] = Object.values(PlanningScale);\n\nexport const getUnitFromPlanningScale = (from: PlanningScale): DateTimeUnit => {\n switch (from) {\n case PlanningScale.Day:\n return 'day';\n case PlanningScale.Week:\n return 'week';\n case PlanningScale.Month:\n return 'month';\n case PlanningScale.Quarter:\n return 'quarter';\n case PlanningScale.Year:\n return 'year';\n }\n};\n","export enum ProjectBillingMode {\n automatic = 'Automatic',\n manual = 'Manual',\n}\n\nexport const PROJECT_BILLING_MODES = [\n ProjectBillingMode.automatic,\n ProjectBillingMode.manual,\n];\n","import { EnumEntity } from './enum-entity';\n\nexport class ProjectBillingType extends EnumEntity {\n public static get nonBillable(): ProjectBillingType {\n return {\n id: '4d1a525f-3abc-4871-a64a-349c1dd3cabf',\n code: 'NonBillable',\n name: 'enums.projectBillingType.nonBillable',\n };\n }\n\n public static get tm(): ProjectBillingType {\n return {\n id: '584dddc1-94df-43b2-b3f3-372c02fcb016',\n code: 'TM',\n name: 'enums.projectBillingType.TM',\n };\n }\n\n public static get fixedBid(): ProjectBillingType {\n return {\n id: 'e87e0e6b-c034-45ac-8b74-bd0256f3f535',\n code: 'FixedBid',\n name: 'enums.projectBillingType.fixedBid',\n };\n }\n}\n\nexport const ProjectBillingTypes: ProjectBillingType[] = [\n ProjectBillingType.fixedBid,\n ProjectBillingType.tm,\n ProjectBillingType.nonBillable,\n];\n","/** The Project version state IDs. */\nexport enum ProjectVersionState {\n draftStateId = '8b2ffc94-6f6d-4292-83cf-c6af33923b16',\n readyToApproveStateId = '6d64729d-a78d-4b5c-9ae9-39f1131ca3af',\n approvedStateId = 'f5a52ee1-fd4b-4221-a83a-f77f7023c874',\n snapshotStateId = '83ec3db0-7333-4149-8561-2bb9dfd1c851',\n cancelledStateId = '796cf668-effa-46b8-8b0e-7b3d15a7ca42',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RecurringExpenseFrequency {\n /** Weekly frequency. */\n Week = 'Week',\n /** Monthly frequency. */\n Month = 'Month',\n /** Quarterly frequency. */\n Quarter = 'Quarter',\n /** Yearly frequency. */\n Year = 'Year',\n}\n\nexport const RecurringExpenseFrequencies = [\n RecurringExpenseFrequency.Week,\n RecurringExpenseFrequency.Month,\n RecurringExpenseFrequency.Quarter,\n RecurringExpenseFrequency.Year,\n];\n","export enum ResourceType {\n user = 'User',\n department = 'Department',\n generic = 'Generic',\n}\n\nexport const defaultResourceTypes = [\n ResourceType.user,\n ResourceType.department,\n ResourceType.generic,\n];\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RevenueEstimateMethod {\n /** Billing rate method type. */\n BillingRate = 'BillingRate',\n /** Target profitability method type. */\n TargetProfitability = 'TargetProfitability',\n /** Fixed method type. */\n Fixed = 'Fixed',\n}\n\nexport const RevenueEstimateMethods = [\n RevenueEstimateMethod.Fixed,\n RevenueEstimateMethod.BillingRate,\n RevenueEstimateMethod.TargetProfitability,\n];\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RevenueEstimateFrequency {\n /** Weekly frequency. */\n Week = 'Week',\n /** Monthly frequency. */\n Month = 'Month',\n /** Quarterly frequency. */\n Quarter = 'Quarter',\n /** Yearly frequency. */\n Year = 'Year',\n}\n\nexport const RevenueEstimateFrequencies = [\n RevenueEstimateFrequency.Week,\n RevenueEstimateFrequency.Month,\n RevenueEstimateFrequency.Quarter,\n RevenueEstimateFrequency.Year,\n];\n","export enum RoleName {\n User = 'User',\n TeamManager = 'TeamManager',\n ProjectManager = 'ProjectManager',\n ResourceManager = 'ResourceManager',\n BillingManager = 'BillingManager',\n FinanceManager = 'FinanceManager',\n ClientManager = 'ClientManager',\n Administrator = 'Administrator',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RuleCalculationBase {\n /** Labor Cost base. */\n LaborCost = 'LaborCost',\n /** Revenue base. */\n Revenue = 'Revenue',\n /** Working Capital base. */\n WorkingCapital = 'WorkingCapital',\n}\n\nexport const RuleCalculationBases = [\n RuleCalculationBase.LaborCost,\n RuleCalculationBase.Revenue,\n RuleCalculationBase.WorkingCapital,\n];\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport enum RuleCalculationMethod {\n /** Fixed method type. */\n Fixed = 'Fixed',\n /** Percent method type. */\n Percent = 'Percent',\n}\n\nexport const RuleCalculationMethods = [\n RuleCalculationMethod.Fixed,\n RuleCalculationMethod.Percent,\n];\n","export enum TimeInputType {\n Decimal = 'Decimal',\n HoursAndMinutes = 'HoursAndMinutes',\n HoursAndMinutesHumanized = 'HoursAndMinutesHumanized',\n SchedulePercent = 'SchedulePercent',\n}\n","import { EnumEntity } from './enum-entity';\n\nexport class TimeOffTypeUnit extends EnumEntity {\n public static get hour(): TimeOffTypeUnit {\n return {\n id: '0f340f34-4cc7-4cd7-9617-d9bed5d2e7c2',\n code: 'Hour',\n name: 'enums.timeOffTypeUnit.Hour',\n };\n }\n\n public static get workingDay(): TimeOffTypeUnit {\n return {\n id: 'd24aec3c-119c-4a8a-a3b9-b6b721985351',\n code: 'WorkingDay',\n name: 'enums.timeOffBalanceEntryType.WorkingDay',\n };\n }\n\n public static get calendarDay(): TimeOffTypeUnit {\n return {\n id: '5cbfefa2-2871-4aad-a01a-e5019416cff4',\n code: 'CalendarDay',\n name: 'enums.timeOffBalanceEntryType.CalendarDay',\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TimeOffTypeUnits: TimeOffTypeUnit[] = [\n TimeOffTypeUnit.hour,\n TimeOffTypeUnit.workingDay,\n TimeOffTypeUnit.calendarDay,\n];\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** Исключение (на уровне API). */\nexport class Exception {\n /** Ошибка оптимистической конкуренции. */\n static BtConcurrencyException: Exception = {\n code: 'BtConcurrencyException',\n message: 'exceptions.btConcurrencyException',\n };\n\n /** Сущность не найдена. */\n static BtEntityNotFoundException: Exception = {\n code: 'BtEntityNotFoundException',\n };\n\n /** Ошибка удаления. */\n static BtDeleteException: Exception = {\n code: 'BtDeleteException',\n };\n\n /** Ошибка валидации по бизнес-правилам. */\n static BtValidationException: Exception = {\n code: 'BtValidationException',\n };\n\n /** Неизвестная ошибка. */\n static UnexpectedError: Exception = {\n code: 'UnexpectedError',\n message: 'Unexpected error.',\n };\n\n /** Запрос отменен. */\n static Canceled: Exception = {\n code: 'Canceled',\n };\n\n /** С ЗнО есть пересекающиеся таймшиты в статусе отличном от \"Черновик\". */\n static TimeOff_CrossNonDraftTimesheetExists: Exception = {\n code: 'TimeOff_CrossNonDraftTimesheetExists',\n };\n\n static BtSubstitutionException: Exception = {\n code: 'BtSubstitutionException',\n };\n\n static ClientValidationException: Exception = {\n code: 'ClientValidationException',\n };\n\n static TeamMember_IsNotTeamMemberOfProject: Exception = {\n code: 'TeamMember_IsNotTeamMemberOfProject',\n };\n\n static Common_NameMustBeUnique: Exception = {\n code: 'Common_NameMustBeUnique',\n };\n\n constructor(code?: string, message?: string) {\n this.code = code;\n this.message = message;\n }\n\n /** Код ошибки. */\n code: string;\n\n /** Сообщение. */\n message: string;\n\n /** Детализация ошибки. */\n details?: Exception[];\n}\n\nexport class SavingQueueException extends Exception {\n savingQueueId: string;\n}\n","export enum CardState {\n Loading = 'Loading',\n Ready = 'Ready',\n Busy = 'Busy',\n Error = 'Error',\n}\n","import { View } from './view';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/** Definition of entity list. */\nexport interface List {\n /** Version. Used to flush cached local settings on list definition breaking change. */\n version: number;\n\n /** Unique name. */\n name: string;\n\n /** Views. */\n views: View[];\n\n /** Grid columns. */\n columns: GridColumn[];\n\n /** Data source columns. Used to build select query. */\n dataColumns?: DataColumn[];\n\n /** Data source collection. */\n dataCollection?: string;\n\n /** Data source query function. */\n queryFunction?: string;\n\n /** Type of customizable entity. Used to enrich list with custom fields. */\n customFieldEntityType?: string;\n\n /** Determines whether custom field columns are editable or not. */\n editableCustomFields?: boolean;\n\n /** Custom field prefix. Used when customizable entity is not the root, e.g. when loading ProjectTotals. */\n customFieldPrefixForDataField?: string;\n\n /** Determines if view settings can be customized by user. */\n customizable?: boolean;\n}\n\n/** Definition of data column. */\nexport interface DataColumn {\n /** Column name. */\n column: string;\n\n /** Loading strategy. */\n loadingStrategy: LoadingStrategy;\n\n /** Entity field in API.\n * For navigations one should use composite name such as \"project.manager.name\".\n * Array should be used for loading fields of one entity, e.g. [\"project.manager.name\", \"project.manager.id\"].\n * With array, first its element will be used for sorting, e.g. by name in example above.\n */\n field: string | string[];\n}\n\n/** Loading strategy. */\nexport enum LoadingStrategy {\n /** Always load field. */\n Always,\n\n /** Load only when configured to be displayed. */\n WhenShowing,\n}\n","export enum PermissionType {\n Read,\n Delete,\n Modify,\n Execute,\n}\n","export enum RouteMode {\n reset = 'reset',\n continue = 'continue',\n keep = 'keep',\n}\n","export enum TotalType {\n Sum = 'sum',\n Min = 'min',\n Max = 'max',\n Average = 'average',\n Count = 'countdistinct',\n Component = 'component', // For render total cell with custom component.\n}\n","import { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class OffCanvasSettings implements BaseSettings {\n public readonly name = 'OffCanvasSettings';\n public version: number;\n public width: number;\n\n public getDefault(): OffCanvasSettings {\n return {\n version: 1,\n width: 600,\n } as OffCanvasSettings;\n }\n}\n","import { NavigationView } from 'src/app/shared/models/navigation/navigation';\n\nimport { Dictionary } from '../dictionary';\nimport { UserView } from '../inner/user-view';\n\n/** Клиентский профиль. */\nexport class ClientProfile {\n /** Версия профиля. */\n public version: string;\n\n /** Пользовательские настройки представлений. */\n public userViews: Dictionary>;\n\n public navigationViews: NavigationView[];\n\n /** Завершенные страницы обучения (быстрого старта). */\n public completedQuickStartPages?: string[];\n\n constructor() {\n this.userViews = {};\n this.completedQuickStartPages = [];\n }\n}\n","import { UserInfo } from '../entities/settings/user-info.model';\nimport { TimeInputType } from '../enums/time-input-type';\nimport { Feature } from '../enums/feature.enum';\nimport { ForecastPeriod } from '../enums/forecast-period.enum';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BookingMode } from 'src/app/shared/models/enums/booking-mode.enum';\nimport { MetaEntity } from 'src/app/shared/models/entities/settings/metamodel.model';\n\n/** Клиентская сессия. */\nexport class ClientSession {\n /** Сведения о пользователе. */\n user: UserInfo;\n\n /** Доступные роли. */\n roles: string[];\n\n /** Доступные права */\n permissions: Permission[];\n\n /** Доступные права с группировкой по сущностям. */\n entitiesAccess: EntityAccess[];\n\n /** Часовой пояс. */\n timeZone: string;\n\n /** Смещение часового пояса. */\n timeZoneOffset: string;\n\n /** Культура. */\n culture: string;\n\n /** Язык. */\n language: string;\n\n /** Способ ввода времени. */\n timeInputType: TimeInputType;\n\n /** Признак использования счетчиков времени. */\n useStopwatch: boolean;\n\n /** Конфигурация абонента. */\n configuration: ClientSessionConfiguration;\n\n /** Признак режима замещения. */\n isSubstituteMode: boolean;\n\n /** Диапазон прогнозирования системы. */\n forecastPeriod: ForecastPeriod;\n\n /** Assigned license products. */\n products: LicenseProduct[];\n}\n\n/** Атомарное право на гранулу в разрезе области. */\nexport class Permission {\n granularName: string;\n scopeName: string;\n actionEnabled: boolean;\n editEnabled: boolean;\n viewEnabled: boolean;\n deleteEnabled: boolean;\n}\n\n/** Права на сущность\n *\n * @description Если есть разные области с разными правами,\n * то вычисляется максимальное право, т.е. тут максимально возможные права на сущность..\n */\nclass EntityAccess {\n /** Имя сущности. */\n entityType: string;\n\n /** Доступно редактирование. */\n editAllowed: boolean;\n\n /** Доступен просмотр. */\n viewAllowed: boolean;\n\n /** Доступно удаление. */\n deleteAllowed: boolean;\n}\n\n/** Конфигурация абонента. */\nexport class ClientSessionConfiguration {\n /** ИД абонента. */\n tenantId: string;\n\n /** Признак доступности копирования часов в таймшите. */\n copyHoursAllowed: boolean;\n\n /** Отображаемое наименование абонента. */\n displayName: string;\n\n /** Основной домен. */\n primaryDomain: string;\n\n /** Базовая валюта абонента. */\n baseCurrencyCode: string;\n\n /** Признак доступности абонента только на чтение. */\n tenantIsReadOnly: boolean;\n\n /** Доступные функции. */\n features?: Feature[];\n\n /** Indicates whether to show notifications by browser Notification Api. */\n useBrowserNotifications: boolean;\n\n /** Booking scale. */\n bookingScale?: PlanningScale;\n\n /** Booking mode. */\n bookingMode: BookingMode;\n\n /** Determines whether tenant is in trial mode or not. */\n tenantIsInTrial: boolean;\n\n /** Determines whatever tenant has multi-legal or not. */\n multiLegalEntity: boolean;\n\n /** Determines whatever tenant has multi-currency or not. */\n multiCurrency: boolean;\n\n /** Metamodel. */\n metamodel: Metamodel;\n}\n\nexport interface Metamodel {\n entities: MetaEntity[];\n}\n\n/** Represent License Product. */\nexport enum LicenseProduct {\n projects = 'Projects',\n timeTracking = 'TimeTracking',\n expenses = 'Expenses',\n resources = 'Resources',\n finance = 'Finance',\n billing = 'Billing',\n clients = 'Clients',\n legacyStarter = 'LegacyStarter',\n legacyBasic = 'LegacyBasic',\n legacyStandard = 'LegacyStandard',\n corp = 'Corp',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { StateService } from '@uirouter/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { DataNotSavedIndicatorService } from 'src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { InteractionsService } from 'src/app/shared/modules/interactions/interactions.service';\n\n@Component({\n selector: 'tmt-interaction-card',\n templateUrl: './interaction-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n providers: [InteractionsService, FilterService, DataNotSavedIndicatorService],\n})\nexport class InteractionCardComponent {\n public readonly interactionsService = inject(InteractionsService);\n\n private readonly actionPanelService = inject(ActionPanelService);\n private readonly appService = inject(AppService);\n private readonly messageService = inject(MessageService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly stateService = inject(StateService);\n private readonly navigationService = inject(NavigationService);\n private readonly dataNotSavedIndicatorService = inject(\n DataNotSavedIndicatorService,\n );\n\n constructor(@Inject('entityId') public entityId: string) {\n this.interactionsService.loadInteractionById(this.entityId);\n\n this.actionPanelService.reset();\n this.actionPanelService.setHasAutosave(false);\n this.actionPanelService.setAdditional([\n {\n title: 'components.interactionCardComponent.actions.delete',\n hint: 'components.interactionCardComponent.actions.delete',\n name: 'delete',\n isBusy: false,\n isVisible: this.appService.checkEntityPermission(\n 'Interaction',\n PermissionType.Modify,\n ),\n handler: () => this.deleteInteraction(),\n },\n ]);\n this.actionPanelService.reload$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.dataNotSavedIndicatorService.preventLeave) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => {\n this.interactionsService.loadInteractionTypes();\n this.interactionsService.loadInteractionById(this.entityId);\n },\n () => null,\n );\n } else {\n this.interactionsService.loadInteractionTypes();\n this.interactionsService.loadInteractionById(this.entityId);\n }\n });\n }\n\n /** Deletes interaction. */\n public deleteInteraction(): void {\n this.messageService\n .confirmLocal('shared2.messages.deleteConfirmation')\n .then(\n () => {\n this.interactionsService\n .deleteInteraction(this.entityId)\n .subscribe((isDeleted) => {\n if (isDeleted) {\n const selectedNavigationItem =\n this.navigationService.selectedNavigationItem;\n this.stateService.go(\n selectedNavigationItem?.state ?? 'interactions',\n selectedNavigationItem?.stateParams,\n );\n }\n });\n },\n () => null,\n );\n }\n}\n","@if (interactionsService.state() === 'Ready') {\n \n}\n\n\n\n\n@if (interactionsService.state() === 'Ready') {\n
    \n \n
    \n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Optional,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { filter } from 'rxjs';\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport {\n Interaction,\n InteractionType,\n} from 'src/app/shared/modules/interactions/models/interaction.model';\nimport { InteractionsService } from 'src/app/shared/modules/interactions/interactions.service';\nimport { ContactCardService } from 'src/app/contacts/card/contact-card.service';\nimport { DealCardService } from 'src/app/deals/card/deal-card.service';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\n\n@Component({\n selector: 'tmt-interaction-form',\n templateUrl: './interaction-form.component.html',\n styleUrl: './interaction-form.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InteractionFormComponent implements OnChanges, AfterViewInit {\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n @ViewChild('notPlanned', { static: false })\n private notPlanned: ElementRef;\n\n @Input() public interaction: Interaction;\n @Input() public isInteractionCardMode = false;\n @Input() public isInteractionModalMode = false;\n\n @Output() onCancel = new EventEmitter();\n\n public isSaving = signal(false);\n\n public get interactionForm(): UntypedFormGroup {\n return this.interactionsService.interactionForm;\n }\n\n constructor(\n public readonly interactionsService: InteractionsService,\n public readonly appService: AppService,\n private readonly notificationService: NotificationService,\n private readonly destroyRef: DestroyRef,\n @Optional() private readonly contactCardService: ContactCardService,\n @Optional()\n private readonly dealCardService: DealCardService,\n @Optional()\n private readonly clientCardService: ClientCardService,\n ) {\n this.interactionsService.interactionTypes$\n .pipe(\n filter(\n (types: InteractionType[]) =>\n !!types.length && !this.isInteractionCardMode,\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.initForm();\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['interaction']) {\n this.interactionForm.patchValue(this.interaction, {\n emitEvent: false,\n });\n\n this.interactionForm\n .get('isPlanned')\n .patchValue(this.interaction.isPlanned ? 'true' : 'false', {\n emitEvent: false,\n });\n\n if (this.interaction.interactionContacts?.length) {\n this.interactionForm.get('interactionContacts').patchValue(\n this.interaction.interactionContacts.map((interactionContact) => ({\n id: interactionContact.contact.id,\n name: interactionContact.contact.name,\n })),\n {\n emitEvent: false,\n },\n );\n }\n }\n }\n\n public ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.interactionForm,\n this.cascadeControls,\n [\n [\n {\n controlName: 'organization',\n },\n {\n controlName: 'deal',\n dependedProperty: 'organizationId',\n },\n ],\n [\n {\n controlName: 'organization',\n isDisableDepended: true,\n },\n {\n controlName: 'interactionContacts',\n dependedProperty: 'organizationId',\n },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Clears and cancels form. */\n public cancel(): void {\n this.onCancel.emit();\n this.resetForm();\n this.interaction = null;\n }\n\n /** Saves interaction. */\n public save(): void {\n this.interactionForm.markAllAsTouched();\n if (!this.interactionForm.valid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n const interactionFormValue = this.interactionForm.value;\n if (interactionFormValue.isPlanned === 'true') {\n interactionFormValue.isPlanned = true;\n } else {\n interactionFormValue.isPlanned = false;\n }\n\n if (!this.interaction?.id) {\n this.interactionsService\n .saveInteraction(interactionFormValue)\n .subscribe((interaction) => {\n this.isSaving.set(false);\n if (interaction) {\n this.resetForm();\n this.initForm();\n }\n });\n } else {\n this.interactionsService\n .editInteraction(interactionFormValue, this.interaction.id)\n .subscribe((interaction) => {\n this.isSaving.set(false);\n if (interaction) {\n if (this.isInteractionCardMode) {\n this.interactionForm.markAsPristine();\n this.interactionForm.markAsUntouched();\n } else {\n this.cancel();\n }\n }\n });\n }\n }\n\n /** Resets form. */\n private resetForm(): void {\n this.interactionForm.markAsPristine();\n this.interactionForm.markAsUntouched();\n this.interactionForm.reset(null, { emitEvent: false });\n }\n\n /** Initializes form with default values. */\n private initForm(): void {\n this.interactionForm\n .get('type')\n .setValue(this.interactionsService.defaultInteractionType, {\n emitEvent: false,\n });\n this.interactionForm.get('date').setValue(new Date().toISOString(), {\n emitEvent: false,\n });\n this.interactionForm.get('isPlanned').setValue('false', {\n emitEvent: false,\n });\n if (this.notPlanned) {\n this.notPlanned.nativeElement.click();\n }\n this.interactionForm\n .get('performer')\n .setValue(this.appService.session.user, {\n emitEvent: false,\n });\n if (this.contactCardService) {\n this.interactionForm\n .get('organization')\n .setValue(this.contactCardService.contact()?.organization);\n this.interactionForm\n .get('interactionContacts')\n .setValue([this.contactCardService.contact()], {\n emitEvent: false,\n });\n } else if (this.dealCardService) {\n this.interactionForm\n .get('organization')\n .setValue(this.dealCardService.deal()?.organization);\n this.interactionForm.get('deal').setValue(this.dealCardService.deal(), {\n emitEvent: false,\n });\n } else if (this.clientCardService) {\n this.interactionForm\n .get('organization')\n .setValue(this.clientCardService.currentClient);\n }\n this.interactionForm.markAsPristine({ emitEvent: false });\n }\n}\n","@if (!isInteractionModalMode) {\n \n}\n\n\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n @if (!isInteractionModalMode) {\n
    \n @if (interaction && !isInteractionCardMode) {\n \n }\n \n {{ 'shared2.actions.save' | translate }}\n \n
    \n }\n\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Injector,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StateService } from '@uirouter/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { md } from 'src/app/shared/components/controls/rich-editor-box/markdown/markdown';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { InteractionsService } from 'src/app/shared/modules/interactions/interactions.service';\nimport { Interaction } from 'src/app/shared/modules/interactions/models/interaction.model';\n\n@Component({\n selector: 'tmt-interaction-item',\n templateUrl: './interaction-item.component.html',\n styleUrl: './interaction-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InteractionItemComponent implements OnChanges {\n @Input() public interaction: Interaction;\n @Input() public index: number;\n @Input() public isModifiable: boolean;\n\n public maxWidth = '100%';\n public maxWidthContact = '100%';\n public renderedText: string;\n public readonly interactionsService = inject(InteractionsService);\n public readonly appService = inject(AppService);\n\n private readonly infoPopupService = inject(InfoPopupService);\n private readonly injector = inject(Injector);\n private readonly navigationService = inject(NavigationService);\n private readonly notificationService = inject(NotificationService);\n private readonly translateService = inject(TranslateService);\n private readonly stateService = inject(StateService);\n private readonly elementRef = inject(ElementRef);\n private readonly messageService = inject(MessageService);\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['interaction']) {\n this.renderedText = this.interaction.description\n ? md.render(this.interaction?.description)\n : '';\n this.setMaxWidth();\n }\n }\n\n /** Open user info. */\n public openUserInfo(): void {\n const userId = this.interaction.performer.id;\n const target = this.elementRef.nativeElement.querySelector(\n `#performer${this.index}`,\n );\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Changes state to deal profile. */\n public openDeal(): void {\n this.stateService.go('deal.profile', {\n entityId: this.interaction.deal.id,\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n });\n }\n\n /** Changes state to client overview kpi. */\n public openClient(): void {\n this.stateService.go('client.overview.kpi', {\n entityId: this.interaction.organization.id,\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n });\n }\n\n /**\n * Changes state to contact profile.\n *\n * @param id contact ID\n */\n public openContact(id: string): void {\n this.stateService.go('contact.profile', {\n entityId: id,\n navigation: this.navigationService.selectedNavigationItem?.name,\n routeMode: RouteMode.continue,\n });\n }\n\n /** Deletes interaction. */\n public deleteInteraction(): void {\n this.messageService\n .confirmLocal('shared2.messages.deleteConfirmation')\n .then(\n () => {\n this.interactionsService\n .deleteInteraction(this.interaction.id)\n .subscribe();\n },\n () => null,\n );\n }\n\n /** Sets interaction in edit mode. */\n public enableEditMode(): void {\n this.interactionsService.setActiveInteraction(this.interaction.id);\n }\n\n /** Sets interaction in view mode. */\n public onCancel(): void {\n this.interactionsService.setActiveInteraction(null);\n }\n\n /** Checks if interaction has detailed info */\n public hasDetailedInfo(): boolean {\n return !!(\n this.interaction.deal?.name ||\n this.interaction.interactionContacts?.length ||\n this.interaction.organization?.name\n );\n }\n\n /** Copies interaction's link to clipboard. */\n public copyLink(): void {\n navigator.clipboard.writeText(\n `${window.location.origin}/interactions/${this.interaction.id}?navigation=clients.allInteractions`,\n );\n this.notificationService.successLocal(\n this.translateService.instant(\n 'components.interactionItemComponent.messages.linkCopied',\n ),\n );\n }\n\n /** Sets values for css max-width properties. */\n private setMaxWidth(): void {\n let visibleSections = 0;\n\n if (this.interaction.organization?.name) visibleSections++;\n if (this.interaction.deal?.name) visibleSections++;\n if (this.interaction.interactionContacts?.length) visibleSections++;\n\n if (visibleSections > 0) {\n this.maxWidth = `${100 / visibleSections}%`;\n }\n\n if (this.interaction.interactionContacts?.length) {\n this.maxWidthContact = `${100 / this.interaction.interactionContacts.length}%`;\n }\n }\n}\n","\n @if (interactionsService.activeInteraction() !== interaction.id) {\n @if (isModifiable) {\n
    \n \n \n \n \n \n \n \n \n \n
    \n }\n
    \n @if (index !== interactionsService.interactions().length - 1) {\n
    \n }\n
    \n @switch (interaction.type.code) {\n @case ('Meeting') {\n \n }\n @case ('Call') {\n \n }\n @case ('Email') {\n \n }\n @case ('Other') {\n \n }\n }\n
    \n
    \n
    \n
    \n \n {{ interaction.type.name }}\n
    \n @if (interaction.isPlanned) {\n \n {{ 'components.interactionItemComponent.props.plannedInteraction' | translate }}\n
    \n }\n
    \n \n \n \n
    \n \n
    \n
    \n \n {{ interaction.date | date: 'short' : appService.session.timeZoneOffset }}\n
    \n
    \n \n @if (hasDetailedInfo()) {\n
    \n @if (interaction.organization?.name) {\n \n \n
    \n }\n\n @if (interaction.deal?.name) {\n \n \n \n }\n\n @if (interaction.interactionContacts?.length) {\n
    \n @for (\n interactionContact of interaction.interactionContacts;\n track interactionContact.id\n ) {\n \n
    \n \n {{ interactionContact.contact.name }}\n \n
    \n @if (!$last) {\n ,\n }\n
    \n }\n \n }\n \n }\n\n
    \n \n } @else {\n \n }\n\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { InteractionsService } from 'src/app/shared/modules/interactions/interactions.service';\n\n@Component({\n selector: 'tmt-interaction-modal',\n templateUrl: './interaction-modal.component.html',\n styleUrl: './interaction-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n providers: [InteractionsService, FilterService],\n})\nexport class InteractionModalComponent {\n public isSaving = signal(false);\n public readonly interactionsService = inject(InteractionsService);\n\n private readonly activeModal = inject(NgbActiveModal);\n private readonly notificationService = inject(NotificationService);\n\n public get interactionForm(): UntypedFormGroup {\n return this.interactionsService.interactionForm;\n }\n\n /** Modal cancel handler. */\n public cancel(): void {\n this.activeModal.dismiss('cancel');\n }\n\n /** Saves interaction. */\n public save(): void {\n this.interactionForm.markAllAsTouched();\n if (!this.interactionForm.valid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n return;\n }\n\n this.isSaving.set(true);\n\n const interactionFormValue = this.interactionForm.value;\n if (interactionFormValue.isPlanned === 'true') {\n interactionFormValue.isPlanned = true;\n } else {\n interactionFormValue.isPlanned = false;\n }\n\n this.interactionsService\n .saveInteraction(interactionFormValue)\n .subscribe((interaction) => {\n this.isSaving.set(false);\n if (interaction) {\n this.activeModal.close(interaction);\n }\n });\n }\n}\n","
    \n
    \n

    \n {{ 'components.interactionModalComponent.props.header' | translate }}\n

    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'shared2.actions.create' | translate }}\n \n \n
    \n
    \n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\n\n@Component({\n selector: 'tmt-interactions-filter',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class InteractionsFilterComponent implements FilterDetails {\n @Input() public values: any;\n\n public detailsForm: UntypedFormGroup;\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable } from '@angular/core';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class InteractionsFilterService extends FilterService {\n public override hasDetails = false;\n public override hasViewSelector = false;\n public override placeholder =\n 'components.interactionsFilterService.filter.textInput';\n\n public override getODataFilter(): any {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push(\n this.getTextFilter(\n [\n 'description',\n 'performer/name',\n 'deal/name',\n 'organization/name',\n 'type/name',\n ],\n this.getClearText(text),\n ),\n );\n\n result[0].or.push({\n interactionContacts: {\n any: {\n contact: { 'tolower(name)': { contains: text } },\n },\n },\n });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n };\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DataNotSavedIndicatorService } from 'src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { InteractionsFilterService } from 'src/app/shared/modules/interactions/interactions-filter/interactions-filter.service';\nimport { InteractionsService } from 'src/app/shared/modules/interactions/interactions.service';\n\n@Component({\n selector: 'tmt-interactions',\n templateUrl: './interactions.component.html',\n styleUrl: './interactions.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: FilterService, useClass: InteractionsFilterService },\n InteractionsService,\n DataNotSavedIndicatorService,\n ],\n standalone: false,\n})\nexport class InteractionsComponent {\n public checkboxControl = new FormControl(\n this.interactionsService.getShowOnlyPlanned(),\n );\n public isModifiable = this.appService.checkEntityPermission(\n 'Interaction',\n PermissionType.Modify,\n );\n public spinnerParams: SpinnerParams = {\n spinnerBackgroundColor: '--bs-light',\n spinnerTopPosition: '1%',\n };\n\n constructor(\n public readonly interactionsService: InteractionsService,\n public readonly interactionsFilterService: FilterService,\n private readonly actionPanelService: ActionPanelService,\n private readonly messageService: MessageService,\n private readonly dataNotSavedIndicatorService: DataNotSavedIndicatorService,\n private readonly appService: AppService,\n ) {\n this.interactionsService.initService();\n\n this.actionPanelService.reload$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.dataNotSavedIndicatorService.preventLeave) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => this.interactionsService.reload(),\n () => null,\n );\n } else {\n this.interactionsService.reload();\n }\n });\n\n this.checkboxControl.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe((v) => {\n this.interactionsService.setShowOnlyPlanned(v);\n });\n }\n}\n","@if (isModifiable) {\n \n
    \n}\n\n
    \n \n
    \n \n \n
    \n \n
    \n\n\n
    \n @for (interaction of interactionsService.interactions(); track interaction.id) {\n \n } @empty {\n
    \n {{ 'shared2.messages.noDisplayData' | translate }}\n
    \n }\n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InteractionsComponent } from 'src/app/shared/modules/interactions/interactions.component';\nimport { InteractionsFilterComponent } from 'src/app/shared/modules/interactions/interactions-filter/interactions-filter.component';\nimport { InteractionFormComponent } from 'src/app/shared/modules/interactions/interaction-form/interaction-form.component';\nimport { InteractionItemComponent } from 'src/app/shared/modules/interactions/interaction-item/interaction-item.component';\nimport { RichEditorBoxComponent } from 'src/app/shared/components/controls/rich-editor-box/rich-editor-box.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { InteractionCardComponent } from 'src/app/shared/modules/interactions/interaction-card/interaction-card.component';\nimport { InteractionModalComponent } from 'src/app/shared/modules/interactions/interaction-modal/interaction-modal.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\n\n@NgModule({\n declarations: [\n InteractionsComponent,\n InteractionsFilterComponent,\n InteractionFormComponent,\n InteractionItemComponent,\n InteractionCardComponent,\n InteractionModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n RichEditorBoxComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'interaction',\n url: '/interactions/{entityId:guid}?{navigation}&{route}',\n dynamic: true,\n params: {\n navigation: 'clients.allInteractions',\n route: ROUTE_DEFAULT_PARAMS,\n routeMode: null,\n keepMainActions: true,\n },\n component: InteractionCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n exports: [InteractionsComponent],\n})\nexport class InteractionsModule {}\n","import {\n DestroyRef,\n Injectable,\n OnDestroy,\n Optional,\n computed,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n Observable,\n of,\n Subscription,\n tap,\n} from 'rxjs';\nimport _ from 'lodash';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { ContactCardService } from 'src/app/contacts/card/contact-card.service';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { DealCardService } from 'src/app/deals/card/deal-card.service';\nimport { ClientCardService } from 'src/app/clients/card/client-card.service';\nimport {\n ContactInteraction,\n Interaction,\n InteractionType,\n} from 'src/app/shared/modules/interactions/models/interaction.model';\nimport { InteractionsFilterSettings } from 'src/app/shared/modules/interactions/models/interactions-filter.settings';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\n@Injectable()\nexport class InteractionsService implements OnDestroy {\n private readonly _isLoading = signal(false);\n public readonly isLoading = computed(this._isLoading);\n private readonly _state = signal(CardState.Loading);\n public readonly state = computed(this._state);\n private readonly _activeInteraction = signal(null);\n public readonly activeInteraction = computed(this._activeInteraction);\n private readonly _interactions = signal([]);\n public readonly interactions = computed(this._interactions);\n private readonly _interactionCardData = signal(null);\n public readonly interactionCardData = computed(this._interactionCardData);\n private readonly interactionTypes = new BehaviorSubject(\n [],\n );\n public readonly interactionTypes$ = this.interactionTypes.asObservable();\n\n public interactionForm = this.fb.group({\n date: [null, [Validators.required]],\n isPlanned: [null, [Validators.required]],\n type: [null, [Validators.required]],\n performer: [null, [Validators.required]],\n deal: null,\n organization: null,\n interactionContacts: [[]],\n description: [null, [Validators.required]],\n });\n public readonly interactionCardName =\n 'components.interactionCardComponent.props.name';\n\n private _showOnlyPlanned = false;\n private currentPage = 0;\n private pageSize = 25;\n private loadedAll = false;\n private scrollSubscription: Subscription | null;\n private readonly interactionsCollection =\n this.dataService.collection('Interactions');\n\n public get defaultInteractionType(): InteractionType {\n return this.interactionTypes.value[0];\n }\n\n constructor(\n private readonly chromeService: ChromeService,\n private readonly dataService: DataService,\n private readonly destroyRef: DestroyRef,\n private readonly filterService: FilterService,\n private readonly notificationService: NotificationService,\n private readonly sortService: SortService,\n private readonly fb: UntypedFormBuilder,\n private readonly configService: LocalConfigService,\n private readonly navigationService: NavigationService,\n private readonly translateService: TranslateService,\n @Optional()\n private readonly contactCardService: ContactCardService | null,\n @Optional()\n private readonly dealCardService: DealCardService | null,\n @Optional()\n private readonly clientCardService: ClientCardService | null,\n ) {\n this.loadInteractionTypes();\n }\n\n public ngOnDestroy(): void {\n this.updateLocalSettings();\n this.scrollSubscription?.unsubscribe();\n }\n\n /** Loads initial data and do subscriptions. */\n public initService(): void {\n this.setFromLocalSettings();\n this.loadInteractions();\n this.enableInfinityScroll();\n\n this.filterService.values$\n .pipe(\n debounceTime(Constants.textInputClientDebounce),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.reload();\n });\n\n this.sortService.sortDirection$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateLocalSettings();\n this.reload();\n });\n }\n\n /**\n * Indicates whether to show only planned interactions.\n *\n * @returns `true` if needs to show only planned, `false` otherwise.\n */\n public getShowOnlyPlanned(): boolean {\n return this._showOnlyPlanned;\n }\n\n /**\n * Set the value of whether or not to show only planned interactions.\n *\n * @param value Show or not show.\n */\n public setShowOnlyPlanned(value: boolean): void {\n this._showOnlyPlanned = value;\n\n this.updateLocalSettings();\n this.reload();\n }\n\n /**\n * Sets interaction into edit mode. Resets to view mode if `null` is sent.\n *\n * @param id interaction id or `null`.\n */\n public setActiveInteraction(id: string | null): void {\n this._activeInteraction.set(id);\n }\n\n /** Reloads interactions. */\n public reload(): void {\n if (!this.scrollSubscription) {\n this.enableInfinityScroll();\n }\n\n this.currentPage = 0;\n this.loadedAll = false;\n this.loadInteractionTypes();\n this.loadInteractions(true);\n }\n\n /**\n * Loads interactions.\n * If all interaction are loaded or loading is in process then the function will not work.\n *\n * @param reload indicates whether a full reboot of interactions is needed.\n */\n public loadInteractions(reload = false): void {\n if (this.loadedAll || this._isLoading()) {\n return;\n }\n this._isLoading.set(true);\n\n const query = {\n expand: [\n {\n performer: {\n select: ['id', 'name'],\n },\n },\n {\n type: {\n select: ['id', 'code', 'name'],\n },\n },\n {\n organization: {\n select: ['id', 'name'],\n },\n },\n {\n deal: {\n select: ['id', 'name'],\n },\n },\n {\n interactionContacts: {\n select: ['id'],\n expand: {\n contact: { select: ['id', 'name'] },\n },\n orderBy: ['contact/name asc'],\n },\n },\n ],\n select: ['date', 'isPlanned', 'description', 'id'],\n filter: [],\n top: this.pageSize,\n skip: this.pageSize * this.currentPage,\n orderBy: [\n `date ${this.sortService.sortDirection === SortDirection.oldest ? 'asc' : 'desc'}`,\n ],\n };\n\n if (this.contactCardService) {\n query.filter.push({\n interactionContacts: {\n any: {\n contact: {\n id: {\n type: 'guid',\n value: this.contactCardService.contactId,\n },\n },\n },\n },\n });\n } else if (this.dealCardService) {\n query.filter.push({\n deal: {\n id: {\n type: 'guid',\n value: this.dealCardService.dealId,\n },\n },\n });\n } else if (this.clientCardService) {\n query.filter.push({\n organization: {\n id: {\n type: 'guid',\n value: this.clientCardService.clientId,\n },\n },\n });\n }\n\n if (this.filterService.getODataFilter()?.length) {\n query.filter.push(...this.filterService.getODataFilter());\n }\n\n if (this._showOnlyPlanned) {\n query.filter.push({ isPlanned: { eq: true } });\n }\n\n this.interactionsCollection\n .query(query)\n .pipe(\n tap((interactions: Interaction[]) => {\n if (reload) {\n this._interactions.update(() => []);\n }\n this.loadedAll = interactions.length < this.pageSize;\n this.currentPage++;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (interactions: Interaction[]) => {\n this._interactions.update((currentInteractions) => {\n currentInteractions.push(...interactions);\n return this.sortInteractions(currentInteractions);\n });\n this._isLoading.set(false);\n if (this.loadedAll) {\n this.scrollSubscription?.unsubscribe();\n this.scrollSubscription = null;\n }\n },\n error: (error: Exception) => {\n this._isLoading.set(false);\n this.notificationService.error(error.message);\n },\n });\n }\n\n /**\n * Loads data of interaction by ID.\n *\n * @param entityId - ID of interaction.\n */\n public loadInteractionById(entityId: string): void {\n this._state.set(CardState.Loading);\n\n const query = {\n expand: [\n {\n performer: {\n select: ['id', 'name'],\n },\n },\n {\n type: {\n select: ['id', 'code', 'name'],\n },\n },\n {\n organization: {\n select: ['id', 'name'],\n },\n },\n {\n deal: {\n select: ['id', 'name'],\n },\n },\n {\n interactionContacts: {\n select: ['id'],\n expand: {\n contact: { select: ['id', 'name'] },\n },\n orderBy: ['contact/name asc'],\n },\n },\n ],\n select: ['date', 'isPlanned', 'description', 'id'],\n };\n\n this.interactionsCollection\n .entity(entityId)\n .get(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (interaction: Interaction) => {\n this._interactionCardData.set(interaction);\n this.navigationService.addRouteSegment({\n id: entityId,\n title: this.translateService.instant(this.interactionCardName),\n });\n this._state.set(CardState.Ready);\n },\n error: (error: Exception) => {\n this._state.set(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notificationService.error(error.message);\n }\n },\n });\n }\n\n /**\n * Saves new interaction.\n *\n * @param interactionToSave interaction to save.\n * @returns observable with interaction if saving was successful, else 'null'.\n */\n public saveInteraction(\n interactionToSave: Interaction,\n ): Observable {\n const interactionData: Partial = {\n date: interactionToSave.date ?? null,\n isPlanned: interactionToSave.isPlanned,\n typeId: interactionToSave.type.id,\n performerId: interactionToSave.performer.id,\n dealId: interactionToSave.deal?.id ?? null,\n organizationId: interactionToSave.organization?.id ?? null,\n description: interactionToSave.description ?? null,\n interactionContacts: interactionToSave.interactionContacts?.map(\n (contact) =>\n {\n contactId: contact.id ?? null,\n },\n ),\n };\n\n return this.interactionsCollection.insert(interactionData).pipe(\n map((savedInteraction: Interaction) => {\n interactionToSave.id = savedInteraction.id;\n interactionToSave.type = this.interactionTypes\n .getValue()\n .find((type) => type.id === interactionToSave.type.id); //type from select box doesn't have 'code' property\n interactionToSave.interactionContacts =\n interactionToSave.interactionContacts?.map(\n (contact) =>\n {\n contactId: contact.id,\n contact: { name: contact.name, id: contact.id },\n },\n );\n this._interactions.update((currentInteractions) => [\n interactionToSave,\n ...currentInteractions,\n ]);\n this.notificationService.successLocal(\n 'components.interactionsService.messages.created',\n );\n return interactionToSave;\n }),\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Updates interaction.\n *\n * @param newInteractionData interaction edit.\n * @param interactionId interaction ID.\n * @returns observable with interaction if editing was successful, else 'null'.\n */\n public editInteraction(\n newInteractionData: Interaction,\n interactionId: string,\n ): Observable {\n const interactionData: Partial = {\n date: newInteractionData.date ?? null,\n isPlanned: newInteractionData.isPlanned,\n typeId: newInteractionData.type.id,\n performerId: newInteractionData.performer.id,\n dealId: newInteractionData.deal?.id ?? null,\n organizationId: newInteractionData.organization?.id ?? null,\n description: newInteractionData.description ?? null,\n interactionContacts: newInteractionData.interactionContacts?.map(\n (interactionContact) =>\n {\n contactId: interactionContact.id ?? null,\n },\n ),\n };\n\n return this.interactionsCollection\n .entity(interactionId)\n .patch(interactionData)\n .pipe(\n map(() => {\n newInteractionData.id = interactionId;\n newInteractionData.type = this.interactionTypes\n .getValue()\n .find((type) => type.id === newInteractionData.type.id); //type from select box doesn't have 'code' property\n newInteractionData.interactionContacts =\n newInteractionData.interactionContacts?.map(\n (contact) =>\n {\n contactId: contact.id,\n contact: { name: contact.name, id: contact.id },\n },\n );\n\n this._interactions.update((interactions) => {\n const oldInteractionIndex = interactions.findIndex(\n (interaction) => interaction.id === interactionId,\n );\n if (oldInteractionIndex !== -1) {\n interactions[oldInteractionIndex] = { ...newInteractionData };\n }\n return interactions;\n });\n this.notificationService.successLocal(\n 'components.interactionsService.messages.saved',\n );\n return newInteractionData;\n }),\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Deletes interaction by ID.\n *\n * @param interactionId ID of interaction to delete.\n * @returns observable with 'true' if deleting was successful, else 'false'.\n */\n public deleteInteraction(interactionId: string): Observable {\n return this.interactionsCollection\n .entity(interactionId)\n .delete()\n .pipe(\n tap(() => {\n this.notificationService.successLocal(\n 'components.interactionsService.messages.deleted',\n );\n this._interactions.update((interactions) => {\n const interactionIndex = interactions.findIndex(\n (interaction) => interaction.id === interactionId,\n );\n if (interactionIndex !== -1) {\n interactions.splice(interactionIndex, 1);\n }\n return [...interactions];\n });\n }),\n map(() => true),\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(false);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /** Enables comments lazy-loading on scroll event. */\n public enableInfinityScroll(): void {\n this.scrollSubscription = this.chromeService.setInfinityScroll(() => {\n this.loadInteractions();\n });\n }\n\n /** Loads interaction types. */\n public loadInteractionTypes(): void {\n const query = {\n select: ['id', 'code', 'name'],\n orderBy: ['name asc'],\n };\n\n this.dataService\n .collection('InteractionTypes')\n .query(query)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: (interactionTypes: InteractionType[]) => {\n this.interactionTypes.next(interactionTypes);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n }\n\n /** Sorts interactions by planned or actual dates. */\n private sortInteractions(interactions: Interaction[]): Interaction[] {\n return _.uniqBy(\n interactions.sort((prev, next) => {\n const datePrev = new Date(prev.date).getTime();\n const dateNext = new Date(next.date).getTime();\n const sortMultiplier =\n this.sortService.sortDirection === SortDirection.newest ? -1 : 1;\n return (datePrev - dateNext) * sortMultiplier;\n }),\n 'id',\n );\n }\n\n /** Updates Interaction Filter settings. */\n private updateLocalSettings(): void {\n const settings = this.configService.getConfig(InteractionsFilterSettings);\n settings.showOnlyPlanned = this._showOnlyPlanned;\n settings.sortDirection = this.sortService.sortDirection;\n this.configService.setConfig(InteractionsFilterSettings, settings);\n }\n\n /** Set data from from Interaction Filter settings. */\n private setFromLocalSettings(): void {\n const settings = this.configService.getConfig(InteractionsFilterSettings);\n this._showOnlyPlanned = settings.showOnlyPlanned;\n this.sortService.sortDirection = settings.sortDirection;\n }\n}\n","import { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class InteractionsFilterSettings implements BaseSettings {\n public readonly name = 'InteractionsFilterSettings';\n public version: number;\n public showOnlyPlanned: boolean;\n //TODO [tsergeeva]: Logic with caching of sorting should be taken out to the SortService.\n public sortDirection: SortDirection;\n\n getDefault(): InteractionsFilterSettings {\n return {\n version: 1,\n showOnlyPlanned: false,\n sortDirection: SortDirection.newest,\n } as InteractionsFilterSettings;\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Optional,\n Inject,\n ViewChildren,\n QueryList,\n AfterViewInit,\n DestroyRef,\n inject,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { AppService } from 'src/app/core/app.service';\nimport { filterResourceTypes } from 'src/app/projects/card/project-team/add-resources-modal/models/filter-resource-types';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport {\n BoxControlComponent,\n FormHelper,\n} from 'src/app/shared/helpers/form-helper';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'tmt-resources-filter',\n templateUrl: './resources-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ResourcesFilterComponent\n implements OnInit, FilterDetails, AfterViewInit\n{\n @Input() values: any;\n @ViewChildren('cascadeControl')\n private cascadeControls: QueryList;\n\n public detailsForm = this.fb.group({\n department: null,\n role: null,\n resourcePool: null,\n legalEntity: null,\n competence: null,\n level: null,\n grade: null,\n location: null,\n resourceTypes: this.fb.group({\n user: false,\n department: false,\n }),\n });\n\n public readonly filterResourceTypes = filterResourceTypes;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n @Optional() @Inject(VIEW_NAME) public viewName: string,\n public app: AppService,\n private fb: UntypedFormBuilder,\n public service: FilterService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.service.resetValues$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n public ngAfterViewInit(): void {\n FormHelper.cascadeDependency(\n this.detailsForm,\n this.cascadeControls,\n [\n [\n {\n controlName: 'role',\n },\n {\n controlName: 'competence',\n dependedProperty: 'roleId',\n },\n ],\n [\n {\n controlName: 'level',\n },\n { controlName: 'grade', dependedProperty: 'levelId' },\n ],\n ],\n takeUntilDestroyed(this.destroyRef),\n );\n this.cdr.detectChanges();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ResourcesFilterComponent } from 'src/app/shared/modules/resources-filter/resources-filter.component';\n\n@NgModule({\n declarations: [ResourcesFilterComponent],\n imports: [CommonModule, SharedModule],\n exports: [ResourcesFilterComponent],\n})\nexport class ResourcesFilterModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { ResourcesFilterComponent } from 'src/app/shared/modules/resources-filter/resources-filter.component';\nimport _ from 'lodash';\n\n@Injectable()\nexport class ResourcesFilterService extends FilterService {\n public override component: Type = ResourcesFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override placeholder = 'shared2.filters.name.ph';\n public override storageName = 'resources-filter';\n public override views = [\n { code: 'all', local: 'shared.filter.allEntities' },\n { code: 'active', local: 'shared.filter.onlyActiveEntities' },\n ];\n public override customCriteriaCount: Record number> = {\n text: () => 0,\n view: () => 0,\n resourceTypes: () => (this.resourceTypeConditionExist() ? 1 : 0),\n };\n public override detailAreaStyles = { width: '1000px' };\n\n public readonly filterResourceTypes = [\n ResourceType.user,\n ResourceType.department,\n ];\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n view: this.views[0],\n department: null,\n resourcePool: null,\n role: null,\n legalEntity: null,\n competence: null,\n level: null,\n grade: null,\n location: null,\n resourceTypes: null,\n };\n }\n\n /** Checks whether resource type condition exists. */\n public resourceTypeConditionExist(): boolean {\n let allResourceTypesIsTrue = true;\n let allResourceTypesIsFalse = true;\n\n for (const name in this.values.resourceTypes) {\n if (this.values.resourceTypes[name]) {\n allResourceTypesIsFalse = false;\n } else {\n allResourceTypesIsTrue = false;\n }\n }\n return !allResourceTypesIsTrue && !allResourceTypesIsFalse;\n }\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n result.push({ resourceType: 'User' }); //TODO: remove when department will be available\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [{ 'tolower(name)': { contains: text } }],\n });\n }\n\n if (this.values.location) {\n result.push({\n locationId: {\n type: 'guid',\n value: this.values.location.id,\n },\n });\n }\n\n if (this.values.legalEntity) {\n result.push({\n legalEntityId: {\n type: 'guid',\n value: this.values.legalEntity.id,\n },\n });\n }\n\n if (this.values.role) {\n result.push({\n roleId: {\n type: 'guid',\n value: this.values.role.id,\n },\n });\n }\n\n if (this.values.competence) {\n result.push({\n competenceId: {\n type: 'guid',\n value: this.values.competence.id,\n },\n });\n }\n\n if (this.values.level) {\n result.push({\n levelId: {\n type: 'guid',\n value: this.values.level.id,\n },\n });\n }\n\n if (this.values.grade) {\n result.push({\n gradeId: {\n type: 'guid',\n value: this.values.grade.id,\n },\n });\n }\n\n if (this.values.resourcePool) {\n result.push({\n resourcePoolId: {\n type: 'guid',\n value: this.values.resourcePool.id,\n },\n });\n }\n\n if (this.values.department) {\n result.push({\n departmentId: {\n type: 'guid',\n value: this.values.department.id,\n },\n });\n }\n\n if (\n this.values.view &&\n this.values.view.code === 'active' &&\n this.hasViewSelector\n ) {\n result.push({ isActive: true });\n }\n\n if (this.values.resourceTypes) {\n const conditions = [];\n this.filterResourceTypes.forEach((type) => {\n if (this.values.resourceTypes && this.values.resourceTypes[type]) {\n conditions.push({\n resourceType: _.upperFirst(type),\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n}\n","import _ from 'lodash';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\nexport interface TariffRate extends NamedEntity {\n /** Currency id. */\n currencyId: string;\n /** Tariff value. */\n value: number;\n /** Start date of rate. */\n effectiveDate: string;\n /** End date of rate. */\n expiryDate: string;\n}\n\nexport class TariffRatesHelper {\n /**\n * Gets actual rate.\n *\n * @param rates tariffs collection.\n * @returns actual tariff rate.\n */\n public static getActualRate(rates: TariffRate[]): TariffRate {\n if (rates.length === 1) {\n return rates[0];\n }\n\n rates = _.orderBy(rates, ['effectiveDate'], ['desc']);\n\n const dateNow = new Date();\n const newRates = rates.filter((r) => r.effectiveDate);\n\n for (const rate of newRates) {\n if (dateNow.getTime() > new Date(rate.effectiveDate).getTime()) {\n return rate;\n }\n }\n\n return rates.filter((r) => !r.effectiveDate)[0];\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { AbstractToolbar } from 'src/app/shared-features/grid/abstract-toolbar.directive';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-tariff-rate-toolbar',\n templateUrl: './tariff-rates-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TariffRatesToolbarComponent\n extends AbstractToolbar\n implements OnInit\n{\n constructor(gridService: GridService, cdr: ChangeDetectorRef) {\n super(gridService, cdr);\n }\n}\n","@if (!(gridService.readonly$ | async)) {\n
    \n
    \n \n \n {{ 'shared.actions.addLine' | translate }}\n \n \n \n \n
    \n
    \n}\n","import { Component, Input } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\n\nimport { DateTime } from 'luxon';\n\nimport { AppService } from 'src/app/core/app.service';\n\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridColumnType,\n GridCurrencyControlColumn,\n GridDateControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { currencyValueRequiredValidator } from 'src/app/shared/validators/currency-value-required';\n\nimport { TariffRate } from './helpers/tariff-rates.helper';\nimport { TariffRatesToolbarComponent } from './tariff-rates-toolbar/tariff-rates-toolbar.component';\n\n// TODO: git mv to ./components\n@Component({\n selector: 'tmt-tariff-rates',\n templateUrl: './tariff-rates.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class TariffRatesComponent {\n @Input() readonly = false;\n @Input() rates: UntypedFormArray;\n\n public gridOptions: GridOptions = {\n sorting: false,\n clientTotals: false,\n selectionType: SelectionType.row,\n toolbar: TariffRatesToolbarComponent,\n commands: [\n {\n name: 'add',\n handlerFn: () => this.addLine(),\n },\n {\n name: 'delete',\n handlerFn: (formGroup: UntypedFormGroup) => this.deleteLine(formGroup),\n allowedFn: (id) => id,\n },\n ],\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n handlerFn: (formGroup: UntypedFormGroup) => {\n this.deleteLine(formGroup);\n },\n allowedFn: () => !this.readonly,\n },\n ],\n view: {\n name: 'user-costs',\n columns: [\n {\n name: 'effectiveDate',\n header: 'shared.columns.effectiveDate.title',\n hint: 'shared.columns.effectiveDate.hint',\n type: GridColumnType.DateControl,\n property: 'effectiveDate',\n width: '150px',\n },\n {\n name: 'value',\n header: 'projects.clients.card.tariffs.modal.columns.newRate',\n hint: 'projects.clients.card.tariffs.modal.columns.newRate',\n type: GridColumnType.CurrencyControl,\n isCurrencyEditable: true,\n property: 'value',\n width: '100%',\n },\n ],\n },\n };\n\n constructor(\n private gridService: GridService,\n private fb: UntypedFormBuilder,\n private app: AppService,\n ) {}\n\n /** Adds new tariff line. */\n private addLine(): void {\n const group = this.getTariffLinesFormGroup({\n value: {\n value: 0,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n },\n effectiveDate: DateTime.now().toISODate(),\n });\n this.rates.insert(0, group);\n this.gridService.selectGroup(group);\n }\n\n /**\n * Deletes tariff line.\n *\n * @param formGroup TariffLineFormGroup.\n */\n private deleteLine(formGroup: UntypedFormGroup): void {\n const index = this.rates.value.findIndex(\n (rate) => rate.id === formGroup.value.id,\n );\n this.rates.removeAt(index);\n }\n\n private getTariffLinesFormGroup(rate?: TariffRate | any): UntypedFormGroup {\n return this.fb.group({\n id: rate?.id ?? Guid.generate(),\n value: [\n rate?.value ?? {\n value: 0,\n currencyCode: this.app.session.configuration.baseCurrencyCode,\n },\n currencyValueRequiredValidator(),\n ],\n effectiveDate: [rate?.effectiveDate, Validators.required],\n });\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { PnlModule } from 'src/app/shared-features/pnl/pnl.module';\nimport { ResourceRolesModule } from 'src/app/shared-features/resource-roles/resource-roles.module';\nimport { ClientOverviewModule } from 'src/app/clients/card/client-overview/client-overview.module';\nimport { TariffRatesComponent } from './tariff-rates.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { TariffRatesToolbarComponent } from './tariff-rates-toolbar/tariff-rates-toolbar.component';\n\n@NgModule({\n declarations: [TariffRatesComponent, TariffRatesToolbarComponent],\n imports: [\n GridModule,\n CommonModule,\n SharedModule,\n PnlModule,\n ResourceRolesModule,\n ClientOverviewModule,\n ],\n exports: [TariffRatesComponent],\n})\nexport class TariffRatesModule {}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { NgbActiveModal, NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\nimport { UserSettingsModalService } from './user-settings-modal.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { AuthProviderType } from 'src/app/shared/models/enums/auth-provider-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\nimport { TabItem, TabName } from './model/user-settings-modal.interface';\n\n/** Диалог личных настроек пользователя. */\n@Component({\n selector: 'wp-user-settings-modal',\n templateUrl: './user-settings-modal.component.html',\n providers: [UserSettingsModalService],\n standalone: false,\n})\nexport class UserSettingsModalComponent implements OnInit, OnDestroy {\n @Input() public activeTab: TabName;\n\n public isLoading = true;\n private destroyed$ = new Subject();\n\n public tabs: TabItem[] = [\n {\n header: 'shared.userSettings.tabs.profile',\n name: 'profile',\n isVisible: true,\n },\n {\n header: 'shared.userSettings.tabs.security',\n name: 'security',\n isVisible: true,\n },\n {\n header: 'shared.userSettings.tabs.settings',\n name: 'properties',\n isVisible: true,\n },\n {\n header: 'shared.userSettings.tabs.notifications',\n name: 'notifications',\n isVisible: true,\n },\n {\n header: 'shared.userSettings.tabs.substitutes',\n name: 'substitutes',\n isVisible: true,\n },\n ];\n\n private _externalUserTabNamesToExclude = ['security'];\n\n get visibleTabs() {\n return this.tabs.filter((t) => t.isVisible === true);\n }\n\n constructor(\n public cardService: UserSettingsModalService,\n private app: AppService,\n private activeModal: NgbActiveModal,\n private notification: NotificationService,\n ) {}\n\n public onNavChange(changeEvent: NgbNavChangeEvent) {\n this.activeTab = changeEvent.nextId;\n }\n\n public ok() {\n this.cardService.saveCurrentTab();\n }\n\n public cancel() {\n this.activeModal.dismiss();\n }\n\n /** Устанавливает видимые вкладки в зависимости от провайдера. */\n private setVisibleTabsByAuthProvider() {\n this.cardService\n .getUserAuthProviderObservable(this.app.session.user.id)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (authProvider: AuthProvider) => {\n if (authProvider.type !== AuthProviderType.Local) {\n this.tabs\n .filter(\n (t) =>\n this._externalUserTabNamesToExclude.find(\n (x) => x === t.name,\n ) !== undefined,\n )\n .forEach((tab) => {\n tab.isVisible = false;\n });\n }\n\n this.isLoading = false;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit() {\n this.setVisibleTabsByAuthProvider();\n\n if (this.visibleTabs.length > 0) {\n this.activeTab ??= this.visibleTabs[0].name;\n }\n this.cardService.close$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.cancel());\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n }\n}\n","\n\n
    \n
    \n

    {{ 'shared.userSettings.header' | translate }}

    \n\n \n
    \n
    \n \n\n \n \n \n \n \n \n \n \n
    \n\n
    \n \n {{ 'shared.actions.apply' | translate }}\n \n\n \n {{ 'shared.actions.save' | translate }}\n \n\n \n {{ 'shared.actions.close' | translate }}\n \n\n \n {{ 'shared.actions.cancel' | translate }}\n \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserSettingsPropertiesComponent } from './user-settings-properties/user-settings-properties.component';\nimport { UserSettingsModalComponent } from './user-settings-modal.component';\nimport { UserSettingsProfileComponent } from './user-settings-profile/user-settings-profile.component';\nimport { UserSettingsNotificationsComponent } from './user-settings-notifications/user-settings-notifications.component';\nimport { UserSettingsNotificationsFormComponent } from './user-settings-notifications/user-settings-notifications-forms/user-settings-notifications-form.component';\nimport { UserSettingsSecurityComponent } from './user-settings-security/user-settings-security.component';\nimport { UserSettingsSubstitutesComponent } from './user-settings-substitutes/user-settings-substitutes.component';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { SharedModule } from '../../shared.module';\n\n@NgModule({\n declarations: [\n UserSettingsProfileComponent,\n UserSettingsModalComponent,\n UserSettingsPropertiesComponent,\n UserSettingsNotificationsComponent,\n UserSettingsNotificationsFormComponent,\n UserSettingsSecurityComponent,\n UserSettingsSubstitutesComponent,\n ],\n imports: [CommonModule, SharedModule, GridModule],\n exports: [UserSettingsNotificationsFormComponent],\n})\nexport class UserSettingsModalModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { AuthProvider } from 'src/app/shared/models/entities/settings/auth-provider.model';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\n\n@Injectable()\nexport class UserSettingsModalService {\n private saveSubject = new Subject();\n public save$ = this.saveSubject.asObservable();\n public savingState$ = new BehaviorSubject(false);\n public close$ = new Subject();\n\n constructor(private data: DataService) {}\n\n /** Сохранить даннные активной вкладки. */\n public saveCurrentTab() {\n this.saveSubject.next();\n }\n\n /** Закрыть диалог. */\n public close() {\n this.close$.next();\n }\n\n /** Возвращает провайдера аутентификации пользователя */\n public getUserAuthProviderObservable(\n userId: string,\n ): Observable {\n return this.data\n .collection('Users')\n .entity(userId)\n .get({ select: ['id', 'name'], expand: ['AuthProvider'] })\n .pipe(switchMap((user) => of(user.authProvider)));\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NotificationPermissionAlert } from 'src/app/shared/services/browser-notification/browser-notification.interface';\nimport { BrowserNotificationService } from 'src/app/shared/services/browser-notification/browser-notification.service';\n\n@Component({\n selector: 'wp-user-settings-notifications-form',\n templateUrl: './user-settings-notifications-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class UserSettingsNotificationsFormComponent\n implements OnInit, OnDestroy\n{\n @Output() public form$ = new EventEmitter();\n\n public browserPermissionAlert: NotificationPermissionAlert;\n public isShowAlert = false;\n public notifyCheckboxes = [\n 'notifyOnDueDateExpired',\n 'workflowTaskCreated',\n 'issueAssigned',\n ];\n public form: UntypedFormGroup = this.fb.group({\n notification: this.fb.group(\n this.notifyCheckboxes.reduce(\n (result: Record, value) => ({ ...result, [value]: false }),\n {},\n ),\n ),\n notifyByEmail: false,\n useBrowserNotifications: false,\n });\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n private cdr: ChangeDetectorRef,\n private browserNotificationService: BrowserNotificationService,\n ) {}\n\n public ngOnInit() {\n this.setMarkPristineFix();\n\n this.form$.emit(this.form);\n\n this.form.controls['useBrowserNotifications'].valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: boolean) => {\n this.isShowAlert = value;\n this.cdr.markForCheck();\n });\n\n if (this.browserNotificationService.permission !== 'granted') {\n this.browserPermissionAlert =\n this.browserNotificationService.getPermissionAlert('denied');\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n private setMarkPristineFix(): void {\n //TODO: check and fix this code\n const self = this;\n const origFunc = this.form.markAsPristine;\n this.form.markAsPristine = function () {\n origFunc.apply(this, arguments);\n self.cdr.markForCheck();\n };\n }\n}\n","
    \n \n
    \n \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n \n

    {{ browserPermissionAlert.message }}

    \n \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { UserSettingsModalService } from '../user-settings-modal.service';\n\n@Component({\n selector: 'wp-user-settings-notifications',\n templateUrl: './user-settings-notifications.component.html',\n standalone: false,\n})\nexport class UserSettingsNotificationsComponent implements OnInit, OnDestroy {\n public loading: boolean;\n public form: UntypedFormGroup;\n\n private destroyed$ = new Subject();\n\n constructor(\n private service: UserSettingsModalService,\n private notification: NotificationService,\n private data: DataService,\n private app: AppService,\n ) {}\n\n public ngOnInit(): void {\n this.load();\n\n this.service.save$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.save());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Sets form\n *\n * @param form UntypedFormGroup\n */\n public onForm(form: UntypedFormGroup): void {\n this.form = form;\n }\n\n public load(): void {\n this.loading = true;\n\n const query = {\n select: ['notification', 'notifyByEmail', 'useBrowserNotifications'],\n };\n\n this.data\n .collection('UserSettings')\n .entity(this.app.session.user.id)\n .get(query)\n .subscribe({\n next: (data) => {\n this.form.patchValue(data);\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.loading = false;\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n public save(): void {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.service.savingState$.next(true);\n\n const value = this.form.value;\n\n const data = {\n notification: {\n notifyOnDueDateExpired: value.notification.notifyOnDueDateExpired,\n workflowTaskCreated: value.notification.workflowTaskCreated,\n issueAssigned: value.notification.issueAssigned,\n },\n notifyByEmail: value.notifyByEmail,\n useBrowserNotifications: value.useBrowserNotifications,\n };\n\n this.data\n .collection('UserSettings')\n .entity(this.app.session.user.id)\n .patch(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.form.markAsPristine();\n location.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.service.savingState$.next(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n}\n","\n\n\n","import { Component } from '@angular/core';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-user-settings-profile',\n templateUrl: './user-settings-profile.component.html',\n standalone: false,\n})\nexport class UserSettingsProfileComponent {\n public avatarIsLoading: boolean;\n public avatarVersion: string = Guid.generate();\n public userId = this.app.session.user.id;\n\n constructor(\n private notification: NotificationService,\n private data: DataService,\n private app: AppService,\n ) {}\n\n public onFileAdded(event: any) {\n const file = event.addedFiles[0];\n\n if (!file) {\n this.notification.warningLocal(\n 'settings.users.card.profile.messages.avatarIsWrong',\n );\n return;\n }\n\n const formData: FormData = new FormData();\n this.avatarIsLoading = true;\n formData.append('image', file, file.name);\n\n this.data\n .collection('Users')\n .entity(this.userId)\n .action('WP.UploadAvatar')\n .execute(formData)\n .subscribe({\n next: () => {\n this.avatarIsLoading = false;\n this.notification.successLocal(\n 'settings.users.card.profile.messages.userAvatarSaved',\n );\n this.avatarVersion = Guid.generate();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.avatarIsLoading = false;\n },\n });\n }\n}\n","
    \n \n
    \n\n \n
    \n \n \n \n

    \n {{ 'shared.orDragFileHere' | translate }}\n
    \n \n \n

    \n {{ 'settings.users.card.profile.props.avatarRequirement' | translate }}\n

    \n
    \n\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport {\n UntypedFormGroup,\n Validators,\n UntypedFormBuilder,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { TimeInputType } from 'src/app/shared/models/enums/time-input-type';\nimport { UserSettingsModalService } from '../user-settings-modal.service';\nimport { forkJoin, Subscription } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { bcp47Normalize } from 'bcp-47-normalize';\n\n@Component({\n selector: 'wp-user-settings-properties',\n templateUrl: './user-settings-properties.component.html',\n standalone: false,\n})\nexport class UserSettingsPropertiesComponent implements OnInit, OnDestroy {\n loading: boolean;\n timeInputTypes: NamedEntity[];\n savingSubscription: Subscription;\n\n form: UntypedFormGroup = this.fb.group({\n timeZone: [null, Validators.required],\n language: [null, Validators.required],\n culture: [null, Validators.required],\n timeInputType: [null, Validators.required],\n useStopwatch: [false],\n });\n cultures: NamedEntity[];\n languages: NamedEntity[];\n\n constructor(\n private service: UserSettingsModalService,\n private notification: NotificationService,\n private translate: TranslateService,\n private data: DataService,\n private app: AppService,\n private fb: UntypedFormBuilder,\n ) {}\n\n load() {\n this.loading = true;\n const query = {\n select: ['timeInputType', 'languageCode', 'cultureCode', 'useStopwatch'],\n expand: ['timeZone'],\n };\n\n forkJoin({\n cultures: this.data.model.function('GetCultures').get(),\n languages: this.data.model.function('GetLanguages').get(),\n settings: this.data\n .collection('UserSettings')\n .entity(this.app.session.user.id)\n .get(query),\n }).subscribe({\n next: (data) => {\n this.languages = data.languages;\n this.cultures = data.cultures;\n\n this.form.patchValue(data.settings);\n\n // Выбор типа ввода времени.\n const timeInputType = this.timeInputTypes.find(\n (x: NamedEntity) => x.id === data.settings.timeInputType,\n );\n this.form.controls['timeInputType'].setValue(timeInputType);\n\n this.form.controls['language'].setValue(\n data.languages.find((l) => l.id === data.settings.languageCode),\n );\n\n this.form.controls['culture'].setValue(\n data.cultures.find(\n (l) => l.id === bcp47Normalize(data.settings.cultureCode),\n ),\n );\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.loading = false;\n },\n error: (error: Exception) => {\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n save() {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.service.savingState$.next(true);\n\n const value = this.form.value;\n\n const data = {\n timeZoneId: value.timeZone.id,\n languageCode: value.language.id,\n cultureCode: value.culture.id,\n timeInputType: value.timeInputType.id,\n useStopwatch: value.useStopwatch,\n };\n\n this.data\n .collection('UserSettings')\n .entity(this.app.session.user.id)\n .patch(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.saved');\n this.form.markAsPristine();\n location.reload();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.service.savingState$.next(false);\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n ngOnInit() {\n this.timeInputTypes = [];\n for (const timeInputType of Object.keys(TimeInputType)) {\n this.timeInputTypes.push({\n id: timeInputType,\n name: this.translate.instant(`enums.timeInputType.${timeInputType}`),\n });\n }\n\n this.load();\n this.savingSubscription = this.service.save$.subscribe(() => this.save());\n }\n\n ngOnDestroy(): void {\n this.savingSubscription.unsubscribe();\n }\n}\n","\n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { UserSettingsModalService } from '../user-settings-modal.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { TenantSettingService } from 'src/app/shared/services/tenant-setting.service';\nimport { Exception } from 'src/app/shared/models/exception';\n\n@Component({\n selector: 'wp-user-settings-security',\n templateUrl: './user-settings-security.component.html',\n standalone: false,\n})\nexport class UserSettingsSecurityComponent implements OnInit, OnDestroy {\n savingSubscription: Subscription;\n public form: UntypedFormGroup = this.fb.group({\n oldPassword: ['', [Validators.required]],\n newPassword: ['', [Validators.required]],\n newPasswordRepeat: ['', [Validators.required]],\n });\n\n public passwordRequirements$$ = new BehaviorSubject('');\n\n constructor(\n private service: UserSettingsModalService,\n private notification: NotificationService,\n private data: DataService,\n private tenantSetting: TenantSettingService,\n private fb: UntypedFormBuilder,\n ) {}\n\n apply() {\n this.form.markAllAsTouched();\n\n if (this.form.value.newPassword !== this.form.value.newPasswordRepeat) {\n this.notification.warningLocal(\n 'shared.userSettings.security.password.notMatch',\n );\n return;\n }\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n this.service.savingState$.next(true);\n\n const data = {\n newPassword: this.form.value.newPassword,\n oldPassword: this.form.value.oldPassword,\n };\n\n this.data.model\n .action('ChangePassword')\n .execute(data)\n .subscribe({\n next: () => {\n this.service.savingState$.next(false);\n this.notification.successLocal(\n 'shared.userSettings.security.password.wasChanged',\n );\n this.service.close();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.service.savingState$.next(false);\n },\n });\n }\n\n ngOnInit() {\n this.savingSubscription = this.service.save$.subscribe(() => this.apply());\n this.tenantSetting.getPasswordRequirements().subscribe({\n next: (data) => {\n this.passwordRequirements$$.next(data);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.savingSubscription.unsubscribe();\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n {{ passwordRequirements$$ | async }}\n
    \n
    \n
    \n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { UserSettingsModalService } from '../user-settings-modal.service';\nimport { UserSubstitutesToolbarComponent } from 'src/app/settings-app/users/card/user-substitutes/user-substitutes-toolbar/user-substitutes-toolbar.component';\nimport {\n UntypedFormGroup,\n UntypedFormArray,\n UntypedFormBuilder,\n Validators,\n} from '@angular/forms';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { Subscription } from 'rxjs';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport {\n GridOptions,\n SelectionType,\n} from 'src/app/shared-features/grid/models/grid-options.model';\nimport {\n GridColumnType,\n GridDateControlColumn,\n GridUserControlColumn,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n@Component({\n selector: 'wp-user-settings-substitutes',\n templateUrl: './user-settings-substitutes.component.html',\n providers: [GridService],\n standalone: false,\n})\nexport class UserSettingsSubstitutesComponent implements OnInit, OnDestroy {\n public savingSubscription: Subscription;\n public loading: boolean;\n public substitutes: UntypedFormArray = this.fb.array([]);\n public readonly = !this.app.checkPermission(\n 'UserSubstitute',\n 'My',\n PermissionType.Modify,\n );\n\n public gridOptions: GridOptions = {\n selectionType: SelectionType.row,\n toolbar: UserSubstitutesToolbarComponent,\n rowCommands: [\n {\n name: 'delete',\n label: 'shared.actions.delete',\n allowedFn: () => !this.readonly,\n handlerFn: (formGroup: UntypedFormGroup, index: number) => {\n this.substitutes.removeAt(index);\n this.substitutes.markAsDirty();\n },\n },\n ],\n commands: [\n {\n name: 'create',\n handlerFn: () => {\n const group = this.getGridFormGroup({});\n this.substitutes.push(group);\n this.gridService.selectGroup(group);\n this.substitutes.markAsDirty();\n },\n },\n ],\n view: {\n name: 'substitutes',\n columns: [\n {\n name: 'substitute',\n header: 'shared.userSubstitutes.columns.substitute',\n hint: 'shared.userSubstitutes.columns.substitute',\n placeholder: 'shared.userSubstitutes.columns.substitute',\n type: GridColumnType.UserControl,\n width: '100%',\n required: true,\n },\n {\n name: 'periodStart',\n header: 'shared.userSubstitutes.columns.start.header',\n hint: 'shared.userSubstitutes.columns.start.hint',\n type: GridColumnType.DateControl,\n property: 'periodStart',\n width: '150px',\n required: true,\n },\n {\n name: 'periodFinish',\n header: 'shared.userSubstitutes.columns.finish.header',\n hint: 'shared.userSubstitutes.columns.finish.hint',\n type: GridColumnType.DateControl,\n property: 'periodFinish',\n width: '150px',\n required: true,\n },\n ],\n },\n };\n\n constructor(\n private notification: NotificationService,\n private gridService: GridService,\n private data: DataService,\n private app: AppService,\n private fb: UntypedFormBuilder,\n private blockUI: BlockUIService,\n private service: UserSettingsModalService,\n ) {}\n\n load = () => {\n this.loading = true;\n this.substitutes.clear();\n\n this.data\n .collection('Users')\n .entity(this.app.session.user.id)\n .collection('Substitutes')\n .query({\n expand: [{ substitute: { select: ['id', 'name'] } }],\n })\n .subscribe({\n next: (data: any[]) => {\n data.forEach((userSubstitute: any) => {\n this.substitutes.push(this.getGridFormGroup(userSubstitute));\n });\n\n this.readonly\n ? this.substitutes.disable()\n : this.substitutes.enable();\n this.substitutes.markAsPristine();\n this.substitutes.markAsUntouched();\n this.loading = false;\n },\n error: (error: any) => {\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n };\n\n // Сохранение сущности.\n save() {\n this.substitutes.markAllAsTouched();\n this.gridService.detectChanges();\n\n if (this.substitutes.valid) {\n this.service.savingState$.next(true);\n this.blockUI.start();\n const values: any[] = this.substitutes.value;\n\n const data = { substitutes: [] };\n // Убираем лишние данные.\n values.forEach((userSubstitute: any) => {\n data.substitutes.push({\n id: userSubstitute.id,\n substituteId: userSubstitute.substitute.id,\n userId: this.app.session.user.id,\n periodStart: userSubstitute.periodStart,\n periodFinish: userSubstitute.periodFinish,\n });\n });\n\n this.data\n .collection('Users')\n .entity(this.app.session.user.id)\n .action('WP.UpdateSubstitutes')\n .execute(data)\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.userSubstitutes.saved');\n this.substitutes.markAsPristine();\n this.service.savingState$.next(false);\n this.blockUI.stop();\n this.service.close();\n },\n error: (error: any) => {\n this.notification.error(error.message);\n this.service.savingState$.next(false);\n this.blockUI.stop();\n },\n });\n } else {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n }\n }\n\n private getGridFormGroup(row: any) {\n return this.fb.group({\n substitute: [row.substitute, Validators.required],\n periodStart: [row.periodStart],\n periodFinish: [row.periodFinish],\n id: row.id ? row.id : Guid.generate(),\n });\n }\n\n ngOnInit() {\n this.load();\n this.savingSubscription = this.service.save$.subscribe(() => this.save());\n }\n\n ngOnDestroy(): void {\n this.savingSubscription.unsubscribe();\n }\n}\n","\n\n
    \n \n \n\n","import { Navigation } from '../models/navigation/navigation';\nimport { AppService } from '../../core/app.service';\nimport { PermissionType } from '../models/inner/permission-type.enum';\nimport { Feature } from '../models/enums/feature.enum';\n\n/** Analytics App Navigation. */\nexport const ANALYTICS_APP_NAVIGATION: Navigation = {\n name: 'analytics',\n applicationTitle: 'shared.apps.analytics',\n groups: [\n {\n name: 'dashboards',\n header: 'analytics.navigation.dashboards.header',\n dashboards: true,\n items: [\n {\n name: 'analytics.dashboards',\n state: 'dashboards',\n header: 'analytics.navigation.dashboards.items.dashboardsAll.header',\n hint: 'analytics.navigation.dashboards.items.dashboardsAll.hint',\n },\n ],\n },\n {\n name: 'reports',\n header: 'analytics.navigation.reports.header',\n items: [\n {\n name: 'analytics.reportBuilder',\n state: 'reportBuilder',\n header: 'analytics.navigation.reports.items.reportBuilder.header',\n hint: 'analytics.navigation.reports.items.reportBuilder.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('Report', 'My', PermissionType.Modify),\n },\n {\n name: 'analytics.allReports',\n state: 'reports',\n stateParams: { view: 'all' },\n header: 'analytics.navigation.reports.items.reportsAll.header',\n hint: 'analytics.navigation.reports.items.reportsAll.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('Report', 'My', PermissionType.Read) ||\n app.checkPermission('Report', 'MyAndCommon', PermissionType.Read) ||\n app.checkPermission('Report', 'Common', PermissionType.Read),\n },\n {\n name: 'analytics.myReports',\n state: 'reports',\n stateParams: {\n view: 'my',\n },\n header: 'analytics.navigation.reports.items.reportsMy.header',\n hint: 'analytics.navigation.reports.items.reportsMy.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('Report', 'My', PermissionType.Read) ||\n app.checkPermission('Report', 'MyAndCommon', PermissionType.Read),\n },\n ],\n },\n {\n name: 'finance',\n header: 'analytics.navigation.finance.header',\n items: [\n {\n name: 'analytics.pnl',\n state: 'pnl',\n header: 'analytics.navigation.finance.pnlStatement.header',\n hint: 'analytics.navigation.finance.pnlStatement.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.pnl),\n },\n ],\n },\n {\n name: 'templates',\n header: 'analytics.navigation.templates.header',\n items: [\n {\n name: 'analytics.reportTemplates',\n state: 'reportTemplates',\n header: 'analytics.navigation.templates.items.templatesAll.header',\n hint: 'analytics.navigation.templates.items.templatesAll.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('Report', 'Templates', PermissionType.Read),\n },\n ],\n },\n {\n name: 'settings',\n header: 'analytics.navigation.settings.header',\n items: [\n {\n name: 'analytics.calculatedFields',\n state: 'calculatedFields',\n header: 'analytics.navigation.settings.items.calculatedFields.header',\n hint: 'analytics.navigation.settings.items.calculatedFields.hint',\n entityType: 'CalculatedField',\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\n\nexport const BILLING_APP_NAVIGATION: Navigation = {\n name: 'billing',\n applicationTitle: 'shared.apps.billing',\n groups: [\n {\n name: 'billing',\n header: 'billing.navigation.billing.header',\n items: [\n {\n name: 'billing.summary',\n state: 'billingSummary',\n header: 'billing.navigation.billing.summary.header',\n hint: 'billing.navigation.billing.summary.hint',\n },\n\n {\n name: 'billing.invoicesOverdue',\n state: 'invoices',\n header: 'billing.navigation.billing.overdueInvoices.header',\n hint: 'billing.navigation.billing.overdueInvoices.hint',\n entityType: 'Invoice',\n stateParams: {\n view: 'overdue',\n },\n },\n {\n name: 'billing.invoicesAll',\n state: 'invoices',\n header: 'billing.navigation.billing.allInvoices.header',\n hint: 'billing.navigation.billing.allInvoices.hint',\n entityType: 'Invoice',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n ],\n};\n","import { INTERACTIONS_LIST } from 'src/app/shared/lists/interactions.list';\nimport { Navigation } from '../models/navigation/navigation';\n\nexport const CLIENTS_APP_NAVIGATION: Navigation = {\n name: 'clients',\n applicationTitle: 'shared.apps.clients',\n groups: [\n {\n name: 'clients',\n header: 'components.navigation.groups.clients',\n items: [\n {\n name: 'clients.myClients',\n state: 'clients',\n header: 'components.navigation.groups.myClients.header',\n hint: 'components.navigation.groups.myClients.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'my',\n },\n },\n {\n name: 'clients.allClients',\n state: 'clients',\n header: 'components.navigation.groups.allClients.header',\n hint: 'components.navigation.groups.allClients.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'all',\n },\n },\n {\n name: 'clients.allContacts',\n state: 'contacts',\n header: 'components.navigation.groups.allContacts.header',\n hint: 'components.navigation.groups.allContacts.hint',\n },\n ],\n },\n\n {\n name: 'sales',\n header: 'components.navigation.groups.sales',\n items: [\n {\n name: 'clients.myDeals',\n state: 'deals',\n header: 'components.navigation.groups.myDeals.header',\n hint: 'components.navigation.groups.myDeals.hint',\n entityType: 'Deal',\n stateParams: {\n view: 'my',\n },\n },\n {\n name: 'clients.allDeals',\n state: 'deals',\n header: 'components.navigation.groups.allDeals.header',\n hint: 'components.navigation.groups.allDeals.hint',\n entityType: 'Deal',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'sales',\n header: 'components.navigation.groups.interactions',\n items: [\n {\n name: 'clients.myOverdueInteractions',\n state: 'interactions',\n header: 'components.navigation.groups.myOverdueInteractions.header',\n hint: 'components.navigation.groups.myOverdueInteractions.hint',\n entityType: 'Interaction',\n stateParams: {\n view: 'my-overdue',\n },\n indicator: {\n hint: 'components.navigation.groups.myOverdueInteractions.hint',\n list: INTERACTIONS_LIST,\n viewName: 'my-overdue',\n },\n },\n {\n name: 'clients.allOverdueInteractions',\n state: 'interactions',\n header: 'components.navigation.groups.allOverdueInteractions.header',\n hint: 'components.navigation.groups.allOverdueInteractions.hint',\n entityType: 'Interaction',\n indicator: {\n hint: 'components.navigation.groups.allOverdueInteractions.hint',\n list: INTERACTIONS_LIST,\n viewName: 'all-overdue',\n },\n stateParams: {\n view: 'all-overdue',\n },\n },\n {\n name: 'clients.allInteractions',\n state: 'interactions',\n header: 'components.navigation.groups.allInteractions.header',\n hint: 'components.navigation.groups.allInteractions.hint',\n entityType: 'Interaction',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n ],\n};\n","import { Navigation } from 'src/app/shared/models/navigation/navigation';\n\nexport const FINANCE_APP_NAVIGATION: Navigation = {\n name: 'finance',\n applicationTitle: 'shared.apps.finance',\n groups: [\n {\n name: 'entries',\n header: 'finance.navigation.entries.header',\n items: [\n {\n name: 'finance.accountingEntries',\n state: 'accountingEntries',\n header: 'finance.navigation.entries.entries.header',\n hint: 'finance.navigation.entries.entries.hint',\n },\n {\n name: 'finance.periods',\n state: 'accountingPeriods',\n header: 'finance.navigation.entries.periods.header',\n hint: 'finance.navigation.entries.periods.hint',\n },\n ],\n },\n {\n name: 'documents',\n header: 'finance.navigation.documents.header',\n items: [\n {\n name: 'finance.timesheets',\n state: 'timesheets',\n header: 'finance.navigation.documents.timesheets.header',\n hint: 'finance.navigation.documents.timesheets.hint',\n stateParams: {\n view: 'team-all',\n },\n },\n\n {\n name: 'finance.expenseRequests',\n state: 'expensesRequests',\n header: 'finance.navigation.documents.expenses.header',\n hint: 'finance.navigation.documents.expenses.hint',\n stateParams: {\n view: 'team-all',\n },\n },\n {\n name: 'finance.actsOfAcceptance',\n state: 'actsOfAcceptance',\n header: 'finance.navigation.documents.acts.header',\n hint: 'finance.navigation.documents.acts.hint',\n },\n ],\n },\n {\n name: 'analytics',\n header: 'finance.navigation.analytics.header',\n items: [\n {\n name: 'finance.pnl',\n state: 'pnl',\n header: 'finance.navigation.analytics.pnl.header',\n hint: 'finance.navigation.analytics.pnl.hint',\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\n\nexport const HELP_DESK_APP_NAVIGATION: Navigation = {\n name: 'helpDesk',\n applicationTitle: 'shared.apps.helpDesk',\n groups: [\n {\n name: 'clients',\n header: 'projects.navigation.clients.header',\n items: [\n {\n name: 'helpDesk.allClients',\n state: 'clients',\n header: 'projects.navigation.clients.all.header',\n hint: 'projects.navigation.clients.all.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\nimport { AppService } from '../../core/app.service';\nimport { PermissionType } from '../models/inner/permission-type.enum';\nimport { Feature } from '../models/enums/feature.enum';\nimport { TIMESHEET_LIST } from '../lists/timesheet.list';\nimport { PROJECT_LIST } from 'src/app/shared/lists/project.list';\nimport { CLIENT_LIST } from 'src/app/shared/lists/client.list';\nimport { PROGRAM_LIST } from 'src/app/shared/lists/program.list';\nimport { ISSUE_LIST } from 'src/app/issues/models/issue.list';\n\nexport const MY_APP_NAVIGATION: Navigation = {\n name: 'my',\n\n applicationTitle: 'shared.apps.my',\n groups: [\n {\n name: 'inbox',\n header: 'my.navigation.inbox.header',\n items: [\n {\n name: 'my.inboxTimesheets',\n state: 'timesheetsWithMyTasks',\n header: 'my.navigation.inbox.timesheets.header',\n hint: 'my.navigation.inbox.timesheets.hint',\n indicator: {\n hint: 'my.navigation.inbox.timesheets.indicator',\n eventName: 'TimeSheet-Inbox',\n },\n },\n\n {\n name: 'my.inboxTimeOff',\n state: 'timeOffRequests',\n header: 'my.navigation.inbox.timeOff.header',\n hint: 'my.navigation.inbox.timeOff.hint',\n stateParams: {\n view: 'with-my-task',\n },\n indicator: {\n hint: 'my.navigation.inbox.timeOff.indicator',\n eventName: 'TimeOffRequest-Inbox',\n },\n },\n\n {\n name: 'my.inboxExpenseRequests',\n state: 'expensesRequests',\n header: 'my.navigation.inbox.expenseRequests.header',\n hint: 'my.navigation.inbox.expenseRequests.hint',\n stateParams: {\n view: 'with-my-task',\n },\n indicator: {\n hint: 'my.navigation.inbox.expenseRequests.indicator',\n eventName: 'ExpenseRequest-Inbox',\n },\n },\n\n {\n name: 'my.inboxProjects',\n state: 'projects',\n header: 'my.navigation.inbox.projects.header',\n hint: 'my.navigation.inbox.projects.hint',\n indicator: {\n hint: 'my.navigation.inbox.projects.indicator',\n eventName: 'Project-Inbox',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n\n {\n name: 'my.inboxProjectVersions',\n state: 'projectsVersions',\n header: 'my.navigation.inbox.projectVersions.header',\n hint: 'my.navigation.inbox.projectVersions.hint',\n indicator: {\n hint: 'my.navigation.inbox.projectVersions.indicator',\n eventName: 'ProjectVersion-Inbox',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n\n {\n name: 'my.inboxResourceRequests',\n state: 'resourceRequests',\n header: 'my.navigation.inbox.resourceRequests.header',\n hint: 'my.navigation.inbox.resourceRequests.hint',\n indicator: {\n hint: 'my.navigation.inbox.resourceRequests.indicator',\n eventName: 'ResourceRequest-Inbox',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n\n {\n name: 'my.inboxInvoices',\n state: 'invoices',\n header: 'my.navigation.inbox.invoices.header',\n hint: 'my.navigation.inbox.invoices.hint',\n stateParams: {\n view: 'with-my-task',\n },\n indicator: {\n hint: 'my.navigation.inbox.invoices.indicator',\n eventName: 'Invoice-Inbox',\n },\n },\n\n {\n name: 'my.inboxActs',\n state: 'actsOfAcceptance',\n header: 'my.navigation.inbox.acts.header',\n hint: 'my.navigation.inbox.acts.hint',\n stateParams: {\n view: 'with-my-task',\n },\n indicator: {\n hint: 'my.navigation.inbox.acts.indicator',\n eventName: 'ActOfAcceptance-Inbox',\n },\n },\n\n {\n name: 'my.inboxCertificates',\n state: 'certificates',\n header: 'my.navigation.inbox.certificates.header',\n hint: 'my.navigation.inbox.certificates.hint',\n indicator: {\n hint: 'my.navigation.inbox.certificates.indicator',\n eventName: 'Certificate-Inbox',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n\n {\n name: 'my.inboxRateMatrix',\n state: 'settings.rateMatrices',\n header: 'my.navigation.inbox.rateMatrix.header',\n hint: 'my.navigation.inbox.rateMatrix.hint',\n indicator: {\n hint: 'my.navigation.inbox.rateMatrix.indicator',\n eventName: 'RateMatrix-Inbox',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n\n {\n name: 'my.inboxAll',\n state: 'workflowTasks',\n header: 'my.navigation.inbox.all.header',\n hint: 'my.navigation.inbox.all.hint',\n stateParams: {\n view: 'my-all',\n },\n isVisible: false,\n },\n ],\n },\n\n {\n name: 'sent',\n header: 'my.navigation.sent.header',\n items: [\n {\n name: 'my.sentTimesheets',\n state: 'timesheets',\n header: 'my.navigation.sent.timesheets.header',\n hint: 'my.navigation.sent.timesheets.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.timesheets.indicator',\n eventName: 'TimeSheet-Outbox',\n },\n },\n\n {\n name: 'my.sentTimeOff',\n state: 'timeOffRequests',\n header: 'my.navigation.sent.timeOff.header',\n hint: 'my.navigation.sent.timeOff.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.timeOff.indicator',\n eventName: 'TimeOffRequest-Outbox',\n },\n },\n\n {\n name: 'my.sentExpenseRequests',\n state: 'expensesRequests',\n header: 'my.navigation.sent.expenseRequests.header',\n hint: 'my.navigation.sent.expenseRequests.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.expenseRequests.indicator',\n eventName: 'ExpenseRequest-Outbox',\n },\n },\n\n {\n name: 'my.sentProjects',\n state: 'projects',\n header: 'my.navigation.sent.projects.header',\n hint: 'my.navigation.sent.projects.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.projects.indicator',\n eventName: 'Project-Outbox',\n },\n },\n\n {\n name: 'my.sentProjectVersions',\n state: 'projectsVersions',\n header: 'my.navigation.sent.projectVersions.header',\n hint: 'my.navigation.sent.projectVersions.hint',\n indicator: {\n hint: 'my.navigation.sent.projectVersions.indicator',\n eventName: 'ProjectVersion-Outbox',\n },\n stateParams: {\n view: 'with-my-workflow',\n },\n },\n\n {\n name: 'my.sentResourceRequests',\n state: 'resourceRequests',\n header: 'my.navigation.sent.resourceRequests.header',\n hint: 'my.navigation.sent.resourceRequests.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.resourceRequests.indicator',\n eventName: 'ResourceRequest-Outbox',\n },\n },\n\n {\n name: 'my.sentInvoices',\n state: 'invoices',\n header: 'my.navigation.sent.invoices.header',\n hint: 'my.navigation.sent.invoices.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.invoices.indicator',\n eventName: 'Invoice-Outbox',\n },\n },\n\n {\n name: 'my.sentActs',\n state: 'actsOfAcceptance',\n header: 'my.navigation.sent.acts.header',\n hint: 'my.navigation.sent.acts.hint',\n stateParams: {\n view: 'with-my-workflow',\n },\n indicator: {\n hint: 'my.navigation.sent.acts.indicator',\n eventName: 'ActOfAcceptance-Outbox',\n },\n },\n\n {\n name: 'my.sentCertificates',\n state: 'certificates',\n header: 'my.navigation.sent.certificates.header',\n hint: 'my.navigation.sent.certificates.hint',\n indicator: {\n hint: 'my.navigation.sent.certificates.indicator',\n eventName: 'Certificate-Outbox',\n },\n stateParams: {\n view: 'with-my-workflow',\n },\n },\n\n {\n name: 'my.sentRateMatrix',\n state: 'settings.rateMatrices',\n header: 'my.navigation.sent.rateMatrix.header',\n hint: 'my.navigation.sent.rateMatrix.hint',\n indicator: {\n hint: 'my.navigation.sent.rateMatrix.indicator',\n eventName: 'RateMatrix-Outbox',\n },\n stateParams: {\n view: 'with-my-workflow',\n },\n },\n\n {\n name: 'my.workflow',\n state: 'workflow-instances',\n header: 'my.navigation.sent.all.header',\n hint: 'my.navigation.sent.all.hint',\n isVisible: false,\n stateParams: {\n view: 'my',\n },\n },\n ],\n },\n\n {\n name: 'issues',\n header: 'shared2.groups.issues',\n items: [\n {\n name: 'my.myIssues',\n state: 'issues',\n header: 'shared2.groups.iAmInitiatorIssues.value',\n hint: 'shared2.groups.iAmInitiatorIssues.hint',\n stateParams: {\n view: 'my',\n },\n indicator: {\n hint: 'shared2.groups.iAmInitiatorIssues.help',\n list: ISSUE_LIST,\n viewName: 'my',\n },\n },\n {\n name: 'my.assignedIssues',\n state: 'issues',\n header: 'shared2.groups.iAmAssigneeIssues.value',\n hint: 'shared2.groups.iAmAssigneeIssues.hint',\n stateParams: {\n view: 'assigned',\n },\n indicator: {\n hint: 'shared2.groups.iAmAssigneeIssues.help',\n list: ISSUE_LIST,\n viewName: 'assigned',\n },\n },\n {\n name: 'my.allIssues',\n state: 'issues',\n header: 'shared2.groups.allIssues',\n hint: 'shared2.groups.allIssues',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'tracking',\n header: 'my.navigation.tracking.header',\n items: [\n {\n name: 'my.currentTimesheet',\n state: 'currentTimesheet',\n header: 'my.navigation.tracking.currentTimesheet.header',\n hint: 'my.navigation.tracking.currentTimesheet.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('TimeSheet', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.timesheets),\n },\n {\n name: 'my.timesheetsExpired',\n state: 'timesheets',\n header: 'my.navigation.tracking.timesheetsExpired.header',\n hint: 'my.navigation.tracking.timesheetsExpired.hint',\n stateParams: {\n view: 'my-expired',\n },\n indicator: {\n hint: 'my.navigation.tracking.timesheetsExpired.indicator',\n list: TIMESHEET_LIST,\n viewName: 'my-expired',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('TimeSheet', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.timesheets),\n },\n\n {\n name: 'my.timesheetsAll',\n state: 'timesheets',\n header: 'my.navigation.tracking.allTimesheets.header',\n hint: 'my.navigation.tracking.allTimesheets.hint',\n stateParams: {\n view: 'my-all',\n },\n isVisible: true,\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('TimeSheet', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.timesheets),\n },\n {\n name: 'my.timeOffRequestsAll',\n state: 'timeOffRequests',\n header: 'my.navigation.tracking.timeOff.header',\n hint: 'my.navigation.tracking.timeOff.hint',\n stateParams: {\n view: 'my-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('TimeOffRequest', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.timeOff),\n },\n {\n name: 'my.expensesRequestsAll',\n state: 'expensesRequests',\n header: 'my.navigation.tracking.expenses.header',\n hint: 'my.navigation.tracking.expenses.hint',\n stateParams: {\n view: 'my-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkPermission('ExpenseRequest', 'My', PermissionType.Read) &&\n app.checkFeature(Feature.expenses),\n },\n ],\n },\n\n {\n header: 'my.navigation.projects.header',\n name: 'projects',\n items: [\n {\n name: 'my.projects',\n state: 'projects',\n isVisible: false,\n header: 'my.navigation.projects.myProjects.header',\n hint: 'my.navigation.projects.myProjects.hint',\n stateParams: {\n view: 'my',\n },\n\n indicator: {\n hint: 'my.navigation.projects.myProjects.header',\n viewName: 'my',\n list: PROJECT_LIST,\n },\n },\n {\n name: 'my.clients',\n state: 'clients',\n isVisible: false,\n header: 'my.navigation.projects.myClients.header',\n hint: 'my.navigation.projects.myClients.hint',\n stateParams: {\n view: 'my',\n },\n\n indicator: {\n hint: 'my.navigation.projects.myClients.header',\n viewName: 'my',\n list: CLIENT_LIST,\n },\n },\n {\n name: 'my.programs',\n state: 'programs',\n isVisible: false,\n header: 'my.navigation.projects.myPrograms.header',\n hint: 'my.navigation.projects.myPrograms.hint',\n stateParams: {\n view: 'my',\n },\n\n indicator: {\n hint: 'my.navigation.projects.myPrograms.header',\n viewName: 'my',\n list: PROGRAM_LIST,\n },\n },\n ],\n },\n\n {\n name: 'work',\n header: 'my.navigation.work.header',\n items: [\n {\n name: 'my.profile',\n state: 'employee',\n stateParams: {\n entityId: 'my',\n },\n header: 'my.navigation.work.profile.header',\n hint: 'my.navigation.work.profile.hint',\n },\n {\n name: 'my.certificates',\n state: 'certificates',\n stateParams: {\n view: 'my',\n },\n\n header: 'my.navigation.work.certificates.header',\n hint: 'my.navigation.work.certificates.hint',\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\nimport { AppService } from '../../core/app.service';\nimport { Feature } from '../models/enums/feature.enum';\nimport { RESOURCE_REQUEST_LIST } from '../lists/resource-request.list';\n\nexport const PROJECTS_APP_NAVIGATION: Navigation = {\n name: 'projects',\n applicationTitle: 'shared.apps.projects',\n groups: [\n {\n name: 'projects',\n header: 'projects.navigation.projects.header',\n items: [\n {\n name: 'projects.myProjects',\n state: 'projects',\n header: 'projects.navigation.projects.my.header',\n hint: 'projects.navigation.projects.my.hint',\n entityType: 'Project',\n stateParams: {\n view: 'my',\n },\n },\n {\n name: 'projects.activeProjects',\n state: 'projects',\n header: 'projects.navigation.projects.active.header',\n hint: 'projects.navigation.projects.active.hint',\n entityType: 'Project',\n stateParams: {\n view: 'active',\n },\n },\n {\n name: 'projects.monitoringProjects',\n state: 'projects',\n header: 'projects.navigation.projects.monitoring.header',\n hint: 'projects.navigation.projects.monitoring.hint',\n entityType: 'Project',\n stateParams: {\n view: 'monitoring',\n },\n },\n {\n name: 'projects.allProjects',\n state: 'projects',\n header: 'projects.navigation.projects.all.header',\n hint: 'projects.navigation.projects.all.hint',\n entityType: 'Project',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'programs',\n header: 'projects.navigation.programs.header',\n items: [\n {\n name: 'projects.myPrograms',\n state: 'programs',\n header: 'projects.navigation.programs.my.header',\n hint: 'projects.navigation.programs.my.hint',\n entityType: 'Program',\n stateParams: {\n view: 'my',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.programs),\n },\n {\n name: 'projects.activePrograms',\n state: 'programs',\n header: 'projects.navigation.programs.active.header',\n hint: 'projects.navigation.programs.active.hint',\n entityType: 'Program',\n stateParams: {\n view: 'active',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.programs),\n },\n {\n name: 'projects.allPrograms',\n state: 'programs',\n header: 'projects.navigation.programs.all.header',\n hint: 'projects.navigation.programs.all.hint',\n entityType: 'Program',\n stateParams: {\n view: 'all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.programs),\n },\n ],\n },\n {\n name: 'tasks',\n header: 'projects.navigation.clients.header',\n items: [\n {\n name: 'projects.myClients',\n state: 'clients',\n header: 'projects.navigation.clients.my.header',\n hint: 'projects.navigation.clients.my.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'my',\n },\n },\n {\n name: 'projects.activeClients',\n state: 'clients',\n header: 'projects.navigation.clients.active.header',\n hint: 'projects.navigation.clients.active.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'active',\n },\n },\n {\n name: 'projects.allClients',\n state: 'clients',\n header: 'projects.navigation.clients.all.header',\n hint: 'projects.navigation.clients.all.hint',\n entityType: 'Organization',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'resources',\n header: 'projects.navigation.resources.header',\n items: [\n {\n header: 'projects.navigation.resources.booking.header',\n hint: 'projects.navigation.resources.booking.hint',\n state: 'booking',\n name: 'projects.booking',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.booking),\n },\n {\n header: 'projects.navigation.resources.myOpen.header',\n hint: 'projects.navigation.resources.myOpen.hint',\n state: 'resourceRequests',\n name: 'projects.myOpenRequests',\n entityType: 'ResourceRequest',\n indicator: {\n hint: '',\n list: RESOURCE_REQUEST_LIST,\n viewName: 'myOpen',\n },\n stateParams: {\n view: 'myOpen',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.booking),\n },\n {\n header: 'projects.navigation.resources.all.header',\n hint: 'projects.navigation.resources.all.hint',\n state: 'resourceRequests',\n name: 'projects.allRequests',\n entityType: 'ResourceRequest',\n stateParams: {\n view: 'all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.booking),\n },\n {\n header: 'resources.navigation.header',\n hint: 'resources.navigation.header',\n state: 'resources',\n name: 'projects.resources',\n },\n ],\n },\n {\n name: 'finance',\n header: 'projects.navigation.finance.header',\n items: [\n {\n name: 'projects.expensesRequests',\n state: 'expensesRequests',\n header: 'projects.navigation.finance.expenses.header',\n hint: 'projects.navigation.finance.expenses.hint',\n stateParams: {\n view: 'all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.expenses),\n },\n {\n name: 'projects.actsOfAcceptance',\n state: 'actsOfAcceptance',\n header: 'projects.navigation.finance.acts.header',\n hint: 'projects.navigation.finance.acts.hint',\n entityType: 'ActOfAcceptance',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.finance),\n },\n {\n name: 'projects.invoices',\n state: 'invoices',\n header: 'projects.navigation.finance.invoices.header',\n hint: 'projects.navigation.finance.invoices.hint',\n entityType: 'Invoice',\n stateParams: {\n view: 'projects-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.billing),\n },\n ],\n },\n {\n name: 'analytics',\n header: 'projects.navigation.analytics.header',\n items: [\n {\n name: 'projects.projectsSummary',\n state: 'projectsSummary',\n header: 'projects.navigation.analytics.projectSummary.header',\n hint: 'projects.navigation.analytics.projectSummary.hint',\n },\n {\n name: 'projects.usersSummary',\n state: 'usersSummary',\n header: 'projects.navigation.analytics.resourceSummary.header',\n hint: 'projects.navigation.analytics.resourceSummary.hint',\n },\n ],\n },\n ],\n};\n","import { RESOURCE_REQUEST_LIST } from '../lists/resource-request.list';\nimport { Navigation } from '../models/navigation/navigation';\n\nexport const RESOURCE_APP_NAVIGATION: Navigation = {\n name: 'resources',\n applicationTitle: 'resources.navigation.header',\n groups: [\n {\n name: 'resources',\n header: 'resources.navigation.resources.header',\n items: [\n {\n name: 'resources.booking',\n state: 'booking',\n header: 'resources.navigation.resources.booking.header',\n hint: 'resources.navigation.resources.booking.hint',\n },\n {\n name: 'resources.resources',\n state: 'resources',\n header: 'resources.navigation.resources.allResources.header',\n hint: 'resources.navigation.resources.allResources.hint',\n },\n ],\n },\n {\n name: 'requests',\n header: 'resources.navigation.requests.header',\n items: [\n {\n name: 'resources.openRequests',\n state: 'resourceRequests',\n header: 'resources.navigation.requests.active.header',\n hint: 'resources.navigation.requests.active.hint',\n indicator: {\n hint: 'resources.navigation.requests.active.indicator',\n list: RESOURCE_REQUEST_LIST,\n viewName: 'open',\n },\n stateParams: {\n view: 'open',\n },\n },\n {\n name: 'resources.requestsWithTask',\n state: 'resourceRequests',\n header: 'resources.navigation.requests.withTask.header',\n hint: 'resources.navigation.requests.withTask.hint',\n indicator: {\n hint: 'resources.navigation.requests.withTask.indicator',\n list: RESOURCE_REQUEST_LIST,\n viewName: 'with-my-task',\n },\n stateParams: {\n view: 'with-my-task',\n },\n },\n {\n name: 'resources.allRequests',\n state: 'resourceRequests',\n header: 'resources.navigation.requests.all.header',\n hint: 'resources.navigation.requests.all.hint',\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'analytics',\n header: 'resources.navigation.analytics.header',\n items: [\n {\n name: 'resources.projectsSummary',\n state: 'projectsSummary',\n header: 'resources.navigation.analytics.projectSummary.header',\n hint: 'resources.navigation.analytics.projectSummary.hint',\n },\n {\n name: 'resources.usersSummary',\n state: 'usersSummary',\n header: 'resources.navigation.analytics.resourceSummary.header',\n hint: 'resources.navigation.analytics.resourceSummary.hint',\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\nimport { AppService } from '../../core/app.service';\nimport { Feature } from '../models/enums/feature.enum';\nimport { environment } from 'src/environments/environment';\n\nexport const SETTINGS_APP_NAVIGATION: Navigation = {\n name: 'settings',\n applicationTitle: 'settings.navigation.header',\n groups: [\n {\n name: 'system',\n header: 'settings.navigation.system.header',\n items: [\n {\n header: 'settings.navigation.system.account.header',\n hint: 'settings.navigation.system.account.hint',\n state: 'settings.account',\n name: 'settings.account',\n allowedFn: (): boolean => !environment.onprem,\n },\n {\n header: 'settings.navigation.system.license.header',\n hint: 'settings.navigation.system.license.hint',\n state: 'settings.account',\n name: 'settings.account',\n allowedFn: (): boolean => environment.onprem,\n },\n {\n header: 'settings.navigation.system.settings.header',\n hint: 'settings.navigation.system.settings.hint',\n state: 'settings.settings',\n name: 'settings.settings',\n },\n {\n header: 'settings.navigation.system.imports.header',\n hint: 'settings.navigation.system.imports.hint',\n state: 'settings.imports',\n name: 'settings.imports',\n },\n {\n header: 'settings.navigation.system.historyLog.header',\n hint: 'settings.navigation.system.historyLog.hint',\n state: 'settings.historyLog',\n name: 'settings.historyLog',\n entityType: 'HistoryLogEntry',\n },\n {\n header: 'settings.navigation.users.loginLog.header',\n hint: 'settings.navigation.users.loginLog.hint',\n state: 'settings.loginLog',\n name: 'settings.loginLog',\n entityType: 'LoginLogEntry',\n },\n ],\n },\n {\n name: 'users',\n header: 'settings.navigation.users.header',\n items: [\n {\n name: 'settings.users',\n header: 'settings.navigation.users.users.header',\n hint: 'settings.navigation.users.users.hint',\n state: 'settings.users',\n },\n {\n name: 'settings.groups',\n header: 'settings.navigation.users.groups.header',\n hint: 'settings.navigation.users.groups.hint',\n state: 'settings.groups',\n },\n\n {\n header: 'settings.navigation.users.departments.header',\n hint: 'settings.navigation.users.departments.hint',\n state: 'settings.departments',\n name: 'settings.departments',\n },\n {\n header: 'settings.navigation.users.permissionSets.header',\n hint: 'settings.navigation.users.permissionSets.hint',\n state: 'settings.permissionSets',\n name: 'settings.permissionSets',\n entityType: 'PermissionSet',\n },\n ],\n },\n {\n name: 'resources',\n header: 'settings.navigation.resources.header',\n items: [\n {\n header: 'settings.navigation.users.resourcePools.header',\n hint: 'settings.navigation.users.resourcePools.hint',\n state: 'settings.resourcePools',\n name: 'settings.resourcePools',\n },\n {\n name: 'settings.levels',\n header: 'settings.navigation.users.levels.header',\n hint: 'settings.navigation.users.levels.hint',\n state: 'settings.levels',\n entityType: 'Level',\n },\n {\n name: 'settings.grades',\n header: 'settings.navigation.users.grades.header',\n hint: 'settings.navigation.users.grades.hint',\n state: 'settings.grades',\n entityType: 'Grade',\n },\n {\n name: 'settings.locations',\n header: 'settings.navigation.users.locations.header',\n hint: 'settings.navigation.users.locations.hint',\n state: 'settings.locations',\n },\n {\n header: 'settings.navigation.users.roles.header',\n hint: 'settings.navigation.users.roles.hint',\n state: 'settings.roles',\n name: 'settings.roles',\n },\n {\n header: 'settings.navigation.users.competences.header',\n hint: 'settings.navigation.users.competences.hint',\n state: 'settings.competences',\n name: 'settings.competences',\n },\n {\n header: 'settings.navigation.users.skills.header',\n hint: 'settings.navigation.users.skills.hint',\n state: 'settings.skills',\n name: 'settings.skills',\n },\n ],\n },\n {\n name: 'timeTracking',\n header: 'settings.navigation.timeTracking.header',\n items: [\n {\n header: 'settings.navigation.users.schedules.header',\n hint: 'settings.navigation.users.schedules.hint',\n state: 'settings.schedules',\n name: 'settings.schedules',\n },\n {\n header: 'settings.navigation.users.scheduleExceptions.header',\n hint: 'settings.navigation.users.scheduleExceptions.hint',\n state: 'settings.scheduleExceptions',\n name: 'settings.scheduleExceptions',\n },\n {\n header: 'settings.navigation.timeTracking.periods.header',\n hint: 'settings.navigation.timeTracking.periods.hint',\n state: 'settings.timesheetPeriods',\n name: 'settings.timesheetPeriods',\n entityType: 'TimeSheetPeriod',\n },\n {\n header: 'settings.navigation.timeTracking.activities.header',\n hint: 'settings.navigation.timeTracking.activities.hint',\n state: 'settings.activities',\n name: 'settings.activities',\n },\n {\n header: 'settings.navigation.timeTracking.timeOffTypes.header',\n hint: 'settings.navigation.timeTracking.timeOffTypes.hint',\n state: 'settings.timeOffTypes',\n name: 'settings.timeOffTypes',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.timeOff),\n },\n {\n header: 'settings.navigation.timeTracking.rules.header',\n hint: 'settings.navigation.timeTracking.rules.hint',\n state: 'settings.validationRules',\n name: 'settings.validationRules',\n entityType: 'ValidationRule',\n },\n {\n header: 'settings.navigation.timeTracking.templates.header',\n hint: 'settings.navigation.timeTracking.templates.hint',\n state: 'settings.timesheetTemplates',\n name: 'settings.timesheetTemplates',\n entityType: 'TimeSheetTemplate',\n },\n {\n header: 'shared2.groups.billCodes',\n hint: 'shared2.groups.billCodes',\n state: 'settings.billCodes',\n name: 'settings.billCodes',\n entityType: 'BillCode',\n },\n ],\n },\n {\n name: 'finance',\n header: 'settings.navigation.finance.header',\n items: [\n {\n header: 'settings.navigation.users.legalEntity.header',\n hint: 'settings.navigation.users.legalEntity.hint',\n state: 'settings.legalEntities',\n name: 'settings.legalEntities',\n entityType: 'LegalEntity',\n },\n {\n header: 'settings.navigation.finance.rateMatrices.header',\n hint: 'settings.navigation.finance.rateMatrices.hint',\n state: 'settings.rateMatrices',\n name: 'settings.rateMatrices',\n entityType: 'RateMatrix',\n },\n {\n header: 'settings.navigation.finance.currencies.header',\n hint: 'settings.navigation.finance.currencies.hint',\n state: 'settings.currencies',\n name: 'settings.currencies',\n },\n {\n header: 'shared2.props.financialAccounts',\n hint: 'shared2.props.financialAccounts',\n state: 'settings.financialAccounts',\n name: 'settings.financialAccounts',\n entityType: 'FinancialAccount',\n },\n {\n header: 'settings.navigation.finance.invoiceTemplates.header',\n hint: 'settings.navigation.finance.invoiceTemplates.hint',\n state: 'settings.invoiceTemplates',\n name: 'settings.invoiceTemplates',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.billing),\n },\n {\n header: 'settings.navigation.finance.costNormalizationRules.header',\n hint: 'settings.navigation.finance.costNormalizationRules.hint',\n state: 'settings.costNormalizationRules',\n name: 'settings.costNormalizationRules',\n entityType: 'CostNormalizationRule',\n },\n ],\n },\n {\n name: 'tasks',\n header: 'components.navigation.groups.tasks',\n items: [\n {\n header: 'shared2.groups.issueTypes',\n hint: 'shared2.groups.issueTypes',\n state: 'settings.issueTypes',\n name: 'settings.issueTypes',\n entityType: 'IssueType',\n },\n {\n header: 'shared2.groups.issueResolutions',\n hint: 'shared2.groups.issueResolutions',\n state: 'settings.issueResolutions',\n name: 'settings.issueResolutions',\n entityType: 'IssueResolution',\n },\n ],\n },\n {\n name: 'configuration',\n header: 'settings.navigation.configuration.header',\n items: [\n {\n name: 'settings.boards',\n header: 'settings.navigation.configuration.boards.header',\n hint: 'settings.navigation.configuration.boards.hint',\n state: 'settings.boards',\n entityType: 'Board',\n },\n {\n name: 'settings.lifecycles',\n header: 'settings.navigation.configuration.lifecycles.header',\n hint: 'settings.navigation.configuration.lifecycles.hint',\n state: 'settings.lifecycles',\n entityType: 'Lifecycle',\n },\n {\n name: 'settings.workflows',\n header: 'settings.navigation.configuration.workflows.header',\n hint: 'settings.navigation.configuration.workflows.hint',\n state: 'settings.workflows',\n entityType: 'WorkflowDeclaration',\n },\n {\n header: 'shared2.groups.directories',\n hint: 'shared2.groups.directories',\n state: 'settings.directories',\n name: 'settings.directories',\n entityType: 'Directory',\n },\n {\n name: 'settings.customFields',\n header: 'settings.navigation.configuration.customFields.header',\n hint: 'settings.navigation.configuration.customFields.hint',\n state: 'settings.customFields',\n entityType: 'CustomField',\n },\n {\n name: 'settings.metamodel',\n header: 'settings.navigation.configuration.metamodel.header',\n hint: 'settings.navigation.configuration.metamodel.hint',\n state: 'settings.metamodel',\n isVisible: false,\n },\n ],\n },\n ],\n};\n","import { Navigation } from '../models/navigation/navigation';\nimport { AppService } from '../../core/app.service';\nimport { Feature } from '../models/enums/feature.enum';\nimport { TIMESHEET_LIST } from '../lists/timesheet.list';\n\nexport const TEAM_APP_NAVIGATION: Navigation = {\n name: 'team',\n applicationTitle: 'team.navigation.header',\n groups: [\n {\n name: 'timesheets',\n header: 'team.navigation.timesheets.header',\n items: [\n {\n name: 'team.timesheetsAll',\n state: 'timesheets',\n header: 'team.navigation.timesheets.all.header',\n hint: 'team.navigation.timesheets.all.hint',\n stateParams: {\n view: 'team-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.timesheets),\n },\n {\n name: 'team.timesheetsExpired',\n state: 'timesheets',\n header: 'team.navigation.timesheets.expired.header',\n hint: 'team.navigation.timesheets.expired.hint',\n stateParams: {\n view: 'team-expired',\n },\n indicator: {\n hint: 'my.navigation.timesheets.expired.indicator',\n list: TIMESHEET_LIST,\n viewName: 'team-expired',\n },\n },\n ],\n },\n {\n name: 'timeOff',\n header: 'team.navigation.timeOff.header',\n items: [\n {\n name: 'team.timeOffRequestsAll',\n state: 'timeOffRequests',\n header: 'team.navigation.timeOff.all.header',\n hint: 'team.navigation.timeOff.all.hint',\n stateParams: {\n view: 'team-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.timeOff),\n },\n {\n name: 'team.timeOffSchedule',\n state: 'timeOffSchedule',\n header: 'team.navigation.timeOff.schedule.header',\n hint: 'team.navigation.timeOff.schedule.hint',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.timeOff),\n },\n {\n name: 'team.timeOffBalanceEntriesAll',\n state: 'timeOffBalanceEntries',\n header: 'team.navigation.timeOff.balance.header',\n hint: 'team.navigation.timeOff.balance.hint',\n entityType: 'TimeOffBalanceEntry',\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.timeOff),\n stateParams: {\n view: 'all',\n },\n },\n ],\n },\n {\n name: 'expenses',\n header: 'team.navigation.expenses.header',\n items: [\n {\n name: 'team.expensesRequestsAll',\n state: 'expensesRequests',\n header: 'team.navigation.expenses.all.header',\n hint: 'team.navigation.expenses.all.hint',\n stateParams: {\n view: 'team-all',\n },\n allowedFn: (app: AppService): boolean =>\n app.checkFeature(Feature.expenses),\n },\n ],\n },\n {\n name: 'team',\n header: 'team.navigation.team.header',\n items: [\n {\n name: 'team.employees',\n state: 'employees',\n header: 'team.navigation.team.employees.header',\n hint: 'team.navigation.team.employees.hint',\n },\n {\n name: 'team.certificates',\n state: 'certificates',\n header: 'team.navigation.team.certificates.header',\n hint: 'team.navigation.team.certificates.hint',\n stateParams: {\n view: 'all',\n },\n entityType: 'Certificate',\n },\n ],\n },\n ],\n};\n","import { ElementRef, Pipe, PipeTransform, Renderer2 } from '@angular/core';\nimport { AppConfigService } from 'src/app/core/app-config.service';\n\n/** Отображение аватара пользователя. */\n@Pipe({\n name: 'avatar',\n pure: true,\n standalone: true,\n})\nexport class AvatarPipe implements PipeTransform {\n private defaultAvatarUrl = '/assets/images/avatar/avatar.svg';\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'background-image',\n `url(${this.defaultAvatarUrl})`,\n );\n this.renderer.setStyle(this.el.nativeElement, 'background-size', '100%');\n\n const listener = this.renderer.listen(\n this.el.nativeElement,\n 'load',\n (event: Event) => {\n if ((event.target as HTMLElement).tagName === 'IMG') {\n this.renderer.removeStyle(this.el.nativeElement, 'background-image');\n this.renderer.removeStyle(this.el.nativeElement, 'background-size');\n }\n\n listener();\n },\n );\n }\n\n public transform(id: string, size?: number, version?: string): string {\n if (!id) {\n return this.defaultAvatarUrl;\n }\n\n let url = `${AppConfigService.config.api.url}/avatar/${id}?ngsw-bypass`;\n\n if (size) {\n url += `&size=${size}`;\n }\n\n if (version) {\n url += `&v=${version}`;\n }\n\n return url;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n/** Отображение булевого значения в формате Да/Нет. */\n@Pipe({\n name: 'wpBoolean',\n standalone: false,\n})\nexport class BooleanPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n transform(value: any): any {\n return value === true\n ? this.translate.instant('shared.yes')\n : this.translate.instant('shared.no');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n/** Форматирование валюты. */\n@Pipe({\n name: 'wpCurrency',\n standalone: false,\n})\nexport class WpCurrencyPipe implements PipeTransform {\n constructor(private currencyPipe: CurrencyPipe) {}\n\n transform(\n value?: number,\n code?: string,\n digitsInfo?: string,\n zeroIsNull = false,\n ): string {\n if (zeroIsNull && value === 0) {\n value = null;\n }\n\n return this.currencyPipe.transform(\n value,\n code,\n 'symbol-narrow',\n digitsInfo,\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe, DecimalPipe } from '@angular/common';\nimport {\n MetaEntityBaseProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\n\n@Pipe({\n name: 'wpCustomFieldValue',\n standalone: false,\n})\nexport class CustomFieldValuePipe implements PipeTransform {\n constructor(\n private datePipe: DatePipe,\n private numberPipe: DecimalPipe,\n ) {}\n\n transform(value: any, field: MetaEntityBaseProperty): string {\n if (!value) {\n return null;\n }\n\n switch (field.type) {\n case MetaEntityPropertyType.dateOnly:\n return this.datePipe.transform(value, 'shortDate');\n case MetaEntityPropertyType.decimal:\n return this.numberPipe.transform(value, '1.0-2');\n case MetaEntityPropertyType.integer:\n return this.numberPipe.transform(value, '1.0');\n default:\n return value;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DecimalPipe } from '@angular/common';\n\n/** Форматирование значений в часах. */\n@Pipe({\n name: 'wpDuration',\n standalone: false,\n})\nexport class DurationPipe implements PipeTransform {\n private readonly daySymbol = '';\n\n constructor(\n private translate: TranslateService,\n private decimalPipe: DecimalPipe,\n ) {\n this.daySymbol = this.translate.instant('shared.unitDay');\n }\n\n transform(\n value?: number,\n nullHandlerType: NullHandlerType = NullHandlerType.empty,\n ): any {\n const template = '1.0-0';\n let displayValue: string;\n\n if (value === null) {\n switch (nullHandlerType) {\n case NullHandlerType.zero:\n value = 0;\n break;\n case NullHandlerType.dash:\n return '—' + ' ' + this.daySymbol;\n case NullHandlerType.empty:\n return null;\n }\n }\n\n displayValue = this.decimalPipe.transform(value, template);\n displayValue += ' ' + this.daySymbol;\n\n return displayValue;\n }\n}\n\nexport enum NullHandlerType {\n zero = 'zero',\n dash = 'dash',\n empty = 'empty',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\n\n@Pipe({\n name: 'wpFinance',\n standalone: false,\n})\nexport class FinancePipe implements PipeTransform {\n constructor(private decimalPipe: DecimalPipe) {}\n\n transform(value: number): any {\n const module = value < 0 ? -1 * value : value;\n const formattedValue = this.decimalPipe.transform(module, '1.2-2');\n return value < 0 ? '(' + formattedValue + ')' : formattedValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport hotkeys from './hotkey-combinations.json';\n\n@Pipe({\n name: 'hotkey',\n standalone: true,\n})\n/** Modifies hotkey name to current platform keyboard combination. */\nexport class HotkeyPipe implements PipeTransform {\n transform(value: string, bracket?: boolean): unknown {\n const os = this.getOS();\n const osKey = os === 'Mac OS' || os === 'iOS' ? 'mac' : 'win';\n let combination = hotkeys[value][osKey] as string;\n if (bracket) combination = `(${combination})`;\n return combination;\n }\n\n private getOS(): string | null {\n const userAgent = window.navigator.userAgent,\n platform =\n (window.navigator as any).userAgentData?.platform ||\n window.navigator.platform,\n macosPlatforms = ['macOS', 'Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n let os = null;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = 'Mac OS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = 'Windows';\n } else if (/Android/.test(userAgent)) {\n os = 'Android';\n } else if (/Linux/.test(platform)) {\n os = 'Linux';\n }\n\n return os;\n }\n}\n","export enum Hotkey {\n undo = 'undo',\n redo = 'redo',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport _ from 'lodash';\n\n@Pipe({\n name: 'path',\n standalone: false,\n})\nexport class PathPipe implements PipeTransform {\n transform(value: any, path: string): any {\n if (!path) {\n return value;\n }\n return _.get(value, path);\n }\n}\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe } from '@angular/core';\n\nimport { PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n/** Formats values in Percent point. */\n@Pipe({\n name: 'wpPercentPoint',\n standalone: false,\n})\nexport class PercentPointPipe implements PipeTransform {\n private readonly percentPointSymbol = '';\n\n constructor(\n private translate: TranslateService,\n private decimalPipe: DecimalPipe,\n ) {\n this.percentPointSymbol = this.translate.instant('shared.percentPoint');\n }\n\n transform(value: any, decimal?: boolean, zeroIfNull?: boolean) {\n const template = decimal === false ? '1.0-0' : '1.0-2';\n let displayValue;\n\n if (value === null && zeroIfNull) {\n value = 0;\n }\n\n if (value || value === 0) {\n displayValue = `${this.decimalPipe.transform(value, template)} ${\n this.percentPointSymbol\n }`;\n } else {\n displayValue = null;\n }\n return displayValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneService } from 'src/app/shared/services/phone.service';\n\n@Pipe({\n name: 'tmtPhone',\n standalone: true,\n})\nexport class PhonePipe implements PipeTransform {\n constructor(private phoneService: PhoneService) {}\n\n transform(value: string): any {\n return this.phoneService.fillTemplate(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeResourceUrl,\n SafeScript,\n SafeStyle,\n SafeUrl,\n} from '@angular/platform-browser';\n\ntype SafeType = 'html' | 'style' | 'script' | 'url' | 'resourceUrl';\ntype SafeValue = SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;\n\n/**\n * Pipe for sanitize given value like HTML, Style, Script, URL or ResourceUrl.\n *\n * @param value source string.\n *\n * @param type string with html, style, script, url or resourceUrl.\n *\n * @returns transformed value.\n *\n * @example
    \n */\n\n@Pipe({\n name: 'safeValue',\n standalone: false,\n})\nexport class SafeValuePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n public transform(value: string, type: SafeType): SafeValue {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error('You have to define type of the value');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { TimeInputType } from '../models/enums/time-input-type';\nimport { DecimalPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\n\n/** Formatting the value in hours according to the user's settings for the time input method or according to force type. */\n@Pipe({\n name: 'wpTimeDuration',\n standalone: false,\n})\nexport class TimeDurationPipe implements PipeTransform {\n private readonly hoursUnit = this.translateService.instant('shared.unitHour');\n private readonly minutesUnit =\n this.translateService.instant('shared.unitMinute');\n\n constructor(\n private app: AppService,\n private decimalPipe: DecimalPipe,\n private translateService: TranslateService,\n ) {}\n\n /**\n * Transforms number.\n *\n * @param hours - time in hours.\n * @param schedule - schedule in hours.\n * @param emptyIfZero - indicates whether to return empty string if hours equal zero or not.\n * @param forceType - type to return by ignoring system settings.\n *\n * @return formatted string.\n */\n transform(\n hours: number,\n schedule: number,\n emptyIfZero: boolean,\n forceType?: TimeInputType,\n ): string {\n const timeInputType = forceType ?? this.app.session.timeInputType;\n\n const isDecimalMode =\n timeInputType !== TimeInputType.HoursAndMinutes &&\n timeInputType !== TimeInputType.HoursAndMinutesHumanized;\n const isSchedulePercentMode =\n timeInputType === TimeInputType.SchedulePercent;\n\n if (hours === null || isNaN(hours)) {\n return '';\n }\n\n if (isSchedulePercentMode) {\n hours = (hours / schedule) * 100;\n }\n\n if (isDecimalMode) {\n if (hours === 0 && emptyIfZero) {\n return '';\n }\n const template = isSchedulePercentMode ? '1.0-0' : '1.0-2';\n return this.decimalPipe.transform(hours, template);\n }\n\n if (hours === 0 && !emptyIfZero) {\n return '00:00';\n }\n if (hours === 0 && emptyIfZero) {\n return '';\n }\n\n let minutesPart = Math.round(hours * 60);\n const hoursPart = Math.floor(minutesPart / 60);\n minutesPart = minutesPart % 60;\n\n let hoursStringPart = String(hoursPart);\n if (\n hoursStringPart.length === 1 &&\n timeInputType === TimeInputType.HoursAndMinutes\n ) {\n hoursStringPart = '0' + hoursStringPart;\n }\n\n let minutesStringPart = String(minutesPart);\n if (\n minutesStringPart.length === 1 &&\n timeInputType === TimeInputType.HoursAndMinutes\n ) {\n minutesStringPart = '0' + minutesStringPart;\n }\n\n if (timeInputType === TimeInputType.HoursAndMinutesHumanized) {\n return `${hoursStringPart} ${this.hoursUnit} ${minutesStringPart} ${this.minutesUnit}`;\n }\n\n return `${hoursStringPart}:${minutesStringPart}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'translateCut',\n standalone: false,\n})\nexport class TranslateCutPipe implements PipeTransform {\n transform(value: string, index: number): string {\n const cutIndex = Number(index);\n return value.split('|')[cutIndex];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/** Cuts strings and adds ellipsis. */\n@Pipe({\n name: 'truncate',\n standalone: false,\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, limit?: number, ellipsis = '...') {\n return value?.length > limit ? value.substr(0, limit) + ellipsis : value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/** Приведение числа к значению без знака. */\n@Pipe({\n name: 'unsigned',\n standalone: false,\n})\nexport class UnsignedPipe implements PipeTransform {\n transform(value: number): number {\n return Math.abs(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DecimalPipe } from '@angular/common';\n\n/** Форматирование значений в часах. */\n@Pipe({\n name: 'wpWork',\n standalone: true,\n})\nexport class WorkPipe implements PipeTransform {\n private hourSymbol = '';\n\n constructor(\n private translate: TranslateService,\n private decimalPipe: DecimalPipe,\n ) {\n this.hourSymbol = this.translate.instant('shared.unitHour');\n }\n\n transform(value?: number, decimal?: boolean, zeroIfNull?: boolean): any {\n const template = decimal === false ? '1.0-0' : '1.0-2';\n let displayValue;\n\n if (value === null && zeroIfNull) {\n value = 0;\n }\n\n if (value || value === 0) {\n displayValue = this.decimalPipe.transform(value, template);\n displayValue += ' ' + this.hourSymbol;\n } else {\n displayValue = null;\n }\n return displayValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n/** Форматирование валюты. */\n@Pipe({\n name: 'zeroToNull',\n standalone: false,\n})\nexport class ZeroToNullPipe implements PipeTransform {\n transform(value?: any): number {\n return value === 0 ? null : value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutosaveStateService {\n private isSavingSubject = new Subject();\n\n /** Состояние выполнения сохранения. */\n public isSaving$ = this.isSavingSubject.asObservable();\n\n public setState(isSaving: boolean) {\n this.isSavingSubject.next(isSaving);\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TransitionService } from '@uirouter/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Exception } from '../models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { AutosaveStateService } from './autosave-state.service';\n\n/** @deprecated Use `SavingQueueService` instead. */\n@Injectable()\nexport class AutosaveService {\n private isSavingSubject = new Subject();\n\n /** Состояние выполнения сохранения. */\n public isSaving$ = this.isSavingSubject.asObservable();\n\n /** Событие, выполняемое поcле сохранения. */\n public onSave = new EventEmitter();\n\n /** Событие, выполняемое при возникновении ошибки в момент сохранения. */\n public onError = new EventEmitter();\n\n /** Задержка (debounce) от последнего изменения до начала сохранения. */\n public delayForSave = 2000;\n\n /** Состояние отключение автосохранения */\n public disabled = false;\n\n /** Возвращает объект для сохранения.\n * Метод должен быть определен во вне сервиса.\n */\n public builderFn: () => any;\n\n /** Возвращает Observable, который сработает при сохранении данных (т.е. метод DataService).\n * Метод должен быть определена во вне сервиса.\n */\n public savingFn: (data: any) => Observable;\n\n // Время последнего изменения данных.\n private lastDataChanged = new Date();\n\n // Признак изменения данных\n private dataChanged = false;\n\n // Признак процесса сохранения.\n private _isSaving = false;\n\n public get isSaving(): boolean {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n this.isSavingSubject.next(value);\n this.autosaveStateService.setState(value);\n }\n\n private transitionOnStartListener: any;\n saveAttemptTimeout: any;\n\n constructor(\n private messageService: MessageService,\n private autosaveStateService: AutosaveStateService,\n private transition: TransitionService,\n private log: LogService,\n private blockUI: BlockUIService,\n private translate: TranslateService,\n ) {\n window.onbeforeunload = this.onbeforeunload;\n\n // Слушаем изменение маршрута.\n this.transitionOnStartListener = transition.onStart(\n {},\n () =>\n new Promise((resolve, reject) => {\n this.save().then(() => resolve());\n }),\n );\n }\n\n // Сохранение (сигнал в очередь).\n public saveLazy() {\n if (this.disabled) {\n return;\n }\n this.log.debug('Lazy saving...');\n this.dataChanged = true;\n\n this.lastDataChanged = new Date();\n\n if (this.saveAttemptTimeout) {\n clearTimeout(this.saveAttemptTimeout);\n }\n this.saveAttempt();\n }\n\n // Принудительное сохранение.\n public save(): Promise {\n this.log.debug('Forced saving...');\n\n return new Promise((resolve, reject) => {\n if (this.disabled) {\n resolve();\n } else {\n if (this.dataChanged) {\n if (this.saveAttemptTimeout) {\n clearTimeout(this.saveAttemptTimeout);\n }\n\n this.blockUI.start();\n this.saveData(resolve);\n } else {\n const savedWait = () => {\n if (!this.isSaving) {\n resolve();\n } else {\n setTimeout(savedWait, 25);\n }\n };\n savedWait();\n }\n }\n });\n }\n\n public dispose = function () {\n this.transitionOnStartListener();\n window.onbeforeunload = null;\n };\n\n private saveAttempt() {\n // Пауза с последнего обновления\n const delay = new Date().getTime() - this.lastDataChanged.getTime();\n\n // Если пауза меньше заданной величины, или все еще идет сохранение, нужно попробовать еще раз через 50 мс\n if (delay < this.delayForSave || this.isSaving) {\n this.saveAttemptTimeout = setTimeout(() => this.saveAttempt(), 50);\n } else {\n // Могли сохранить принудительно, поэтому еще раз проверяем\n if (this.dataChanged) {\n this.saveData();\n }\n }\n }\n\n // Функция сохранения.\n private saveData(resolve?: any, reject?: any) {\n if (this.disabled) {\n if (resolve) {\n resolve();\n }\n return;\n }\n\n // $rootScope.isSaving = true;\n this.log.debug('Saving data has been started.');\n\n const startSave = new Date();\n\n this.dataChanged = false;\n const data = this.builderFn();\n\n this.isSaving = true;\n\n this.savingFn(data).subscribe({\n next: (response) => {\n const saveDuration = new Date().getTime() - startSave.getTime();\n this.log.debug(`Data has been saved in ${saveDuration} ms.`);\n\n this.onSave.emit(response);\n\n this.isSaving = false;\n this.blockUI.stop();\n\n if (resolve) {\n resolve();\n }\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n\n this.isSaving = false;\n this.log.error(error.message);\n this.errorHandler(error);\n\n if (reject) {\n reject();\n }\n },\n });\n }\n\n // Слушаем закрытие страницы.\n private onbeforeunload = (event: any) => {\n if (!this.dataChanged && !this.isSaving) {\n return;\n }\n this.save();\n const message = this.translate.instant('common.leavePageMessage');\n\n if (typeof event == 'undefined') {\n event = window.event;\n }\n if (event) {\n event.returnValue = message;\n }\n return message;\n };\n\n private errorHandler(error: Exception) {\n const reload = () => {\n this.onError.emit(error);\n };\n\n if (error.code === Exception.BtConcurrencyException.code) {\n const msg = this.translate.instant(\n Exception.BtConcurrencyException.message,\n );\n this.messageService\n .message(msg, '', [], this.translate.instant('shared.actions.reload'))\n .then(reload, reload);\n } else {\n this.messageService\n .message(\n error.message,\n this.translate.instant('shared.saveNotCompletedTitle'),\n )\n .then(reload, reload);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from 'ngx-webstorage';\n\nimport { get as _get, merge as _merge } from 'lodash';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { AppConfigService } from 'src/app/core/app-config.service';\n\nimport {\n NotificationAPI,\n NotificationEventHandler,\n NotificationPermissionAlert,\n} from './browser-notification.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BrowserNotificationService {\n private notification: NotificationAPI;\n private currentPermission: NotificationPermission;\n private isBrowserSupported = false;\n private isBrowserPermitted = false;\n private isUserPermitted = false;\n /** Debounce time for checking event from window object. */\n private readonly otherTabAwaitTime = 150;\n private readonly syncStoreName = 'showMessage';\n private otherTabDetected = false;\n private defaultOptions: Partial = {\n icon: '/assets/logo_small.svg',\n };\n private permissionDescription: Record<\n NotificationPermission,\n NotificationPermissionAlert\n > = {\n default: {\n type: 'warning',\n isNeedAction: true,\n message: this.translateService.instant(\n 'shared.userSettings.browserNotificationAlerts.default',\n ),\n },\n denied: {\n type: 'danger',\n isNeedAction: false,\n message: this.translateService.instant(\n 'shared.userSettings.browserNotificationAlerts.denied',\n ),\n },\n granted: {\n type: 'success',\n isNeedAction: false,\n message: this.translateService.instant(\n 'shared.userSettings.browserNotificationAlerts.granted',\n ),\n },\n };\n\n constructor(\n private logService: LogService,\n private translateService: TranslateService,\n private appService: AppService,\n private localStorageService: LocalStorageService,\n ) {\n this.init();\n this.initOtherTabListener();\n }\n\n /** Indicates whether to use service by user permission. */\n public get use(): boolean {\n return (\n this.isBrowserSupported && this.isBrowserPermitted && this.isUserPermitted\n );\n }\n\n /** Get current permission. */\n public get permission(): NotificationPermission {\n return this.currentPermission;\n }\n\n /**\n * Get a tip message for browser permission.\n *\n * @param title Type of permission. Current by default.\n *\n * @returns object with type, message and necessity of action from user.\n * */\n public getPermissionAlert(\n permission = this.currentPermission,\n ): NotificationPermissionAlert {\n return this.permissionDescription[permission];\n }\n\n /**\n * Send a browser notification to the user.\n *\n * @param entityId Message ID. Necessary for a single send when several tabs are open.\n * @param title Message title.\n * @param options Message options.\n * @param eventHandler Custom actions on a event ('click' | 'show' | 'close' | 'error').\n * */\n public sendMessage(\n notificationId: string,\n title: string,\n options: NotificationOptions = {},\n eventHandler?: Partial,\n ): void {\n const otherTabDetecter: Subscription = this.localStorageService\n .observe(this.syncStoreName)\n .pipe(debounceTime(this.otherTabAwaitTime))\n .subscribe(() => {\n if (this.otherTabDetected) {\n otherTabDetecter.unsubscribe();\n this.otherTabDetected = false;\n return;\n }\n\n _merge(this.defaultOptions, options);\n\n const message = new this.notification(title, this.defaultOptions);\n\n message.onerror = (event) => {\n if (eventHandler.error) {\n eventHandler.error();\n }\n };\n\n if (eventHandler.click) {\n message.onclick = () => {\n eventHandler.click();\n message.close();\n };\n }\n\n if (eventHandler.show) {\n message.onshow = () => {\n eventHandler.show();\n };\n }\n\n if (eventHandler.close) {\n message.onclose = () => {\n eventHandler.close();\n };\n }\n\n otherTabDetecter.unsubscribe();\n this.otherTabDetected = false;\n });\n\n this.localStorageService.store(this.syncStoreName, notificationId);\n }\n\n /** Request the browser permission. */\n public requestPermission(): void {\n if (\n this.isBrowserSupported &&\n this.isUserPermitted &&\n !this.isBrowserPermitted\n ) {\n try {\n this.notification\n .requestPermission(this.callBackPermission.bind(this))\n .then((permission) => {\n this.currentPermission = permission;\n });\n } catch (e) {\n this.logService.error(e.message);\n }\n }\n }\n\n /** @Deprecated left for backward compatibility with some browsers */\n private callBackPermission(permission: NotificationPermission): void {\n this.currentPermission = permission;\n }\n\n private init(): void {\n this.notification = window.Notification;\n this.isBrowserSupported = !!this.notification;\n\n if (!this.isBrowserSupported) {\n return;\n }\n\n this.currentPermission = window.Notification.permission;\n this.isBrowserPermitted = this.currentPermission === 'granted';\n this.isUserPermitted =\n this.appService.session.configuration.useBrowserNotifications;\n\n _merge(\n this.defaultOptions,\n _get(AppConfigService.config, 'notificationBrowser'),\n );\n\n this.requestPermission();\n }\n\n /** We need to use the native EventListener to synchronize with other tabs.\n * The event triggered on the rest of the tabs, but does not emit in the current tab.\n *\n * */\n private initOtherTabListener(): void {\n window.addEventListener('storage', (event) => {\n if (event.key === `wp_${this.syncStoreName}`) {\n this.otherTabDetected = true;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Guid } from '../../helpers/guid';\nimport { EntryPos } from './entry-pos';\nimport { LogService } from 'src/app/core/log.service';\n\n/** Сервис коллективного взаимодействия ячеек таймшита и планировщика. */\n@Injectable()\nexport class CellsOrchestratorService {\n /** Режим одной ячейки, для журнального ТШ. */\n public singleCellMode: boolean;\n\n /** Идентификатор экземпляра сервиса. */\n public id = Guid.generate();\n\n public infoBlockId = 'wp-time-entry-info';\n public deleteCode = 46;\n public escCode = 27;\n public bsCode = 8;\n public rightCode = 39;\n public leftCode = 37;\n public upCode = 38;\n public downCode = 40;\n public enterCode = 13;\n\n private entryDeselectedSubject = new Subject();\n public entryDeselected$ = this.entryDeselectedSubject.asObservable();\n\n private entrySelectedSubject = new Subject();\n public entrySelected$ = this.entrySelectedSubject.asObservable();\n\n private selectingStartedSubject = new Subject();\n public selectingStarted$ = this.selectingStartedSubject.asObservable();\n\n private startEditingSubject = new Subject();\n public startEditing$ = this.startEditingSubject.asObservable();\n\n private stopEditingSubject = new Subject();\n public stopEditing$ = this.stopEditingSubject.asObservable();\n\n private entryDespreadedSubject = new Subject();\n public entryDespreaded$ = this.entryDespreadedSubject.asObservable();\n\n private entrySpreadedSubject = new Subject();\n public entrySpreaded$ = this.entrySpreadedSubject.asObservable();\n\n private valueChangedSubject = new Subject();\n public valueChanged$ = this.valueChangedSubject.asObservable();\n\n private massValueChangeInProgressSubject = new BehaviorSubject(\n false,\n );\n public massValueChangeInProgress$ =\n this.massValueChangeInProgressSubject.asObservable();\n\n private entryDeactivatedSubject = new Subject<\n (EntryPos & { lostFocus?: boolean }) | null\n >();\n public entryDeactivated$ = this.entryDeactivatedSubject.asObservable();\n\n private entryActivatedSubject = new Subject();\n public entryActivated$ = this.entryActivatedSubject.asObservable();\n\n private resetSubject = new Subject();\n public reset$ = this.resetSubject.asObservable();\n\n private selectedCellsSubject = new Subject();\n /** The count of selected cells. */\n public selectedCells$ = this.selectedCellsSubject.asObservable();\n\n private dataMatrix: any = {};\n private isSelecting: boolean;\n private isSpreading: boolean;\n\n private firstSelectedEntry: EntryPos;\n private lastSelectedEntry: EntryPos;\n private lastSpreadEntry: EntryPos;\n private activeEntry: EntryPos;\n\n //Note: if part of cells from initial array are not using, key can be > 0.\n private get minMatrixKey(): number {\n return Math.min(...Object.keys(this.dataMatrix).map((x) => +x));\n }\n\n constructor(private log: LogService) {}\n\n /** Выделить диапазон (исходя их граничных ячеек). */\n private selectRange() {\n // Снять выделение со всего для упрощения.\n this.entryDeselectedSubject.next(null);\n\n const selectedRange = this.getSelectedRange();\n\n if (!selectedRange) {\n return;\n }\n\n let selectedCount = 0;\n\n for (let x = selectedRange.left; x <= selectedRange.right; x++) {\n for (let y = selectedRange.top; y <= selectedRange.bottom; y++) {\n this.entrySelectedSubject.next({\n pos: { x, y },\n left: x === selectedRange.left,\n right: x === selectedRange.right,\n top: y === selectedRange.top,\n bottom: y === selectedRange.bottom,\n });\n\n selectedCount++;\n }\n }\n\n this.selectedCellsSubject.next(selectedCount);\n this.selectingStartedSubject.next(null);\n }\n\n private getSelectedRange() {\n if (!this.firstSelectedEntry || !this.lastSelectedEntry) {\n return null;\n }\n\n return {\n left: Math.min(this.firstSelectedEntry.x, this.lastSelectedEntry.x),\n top: Math.min(this.firstSelectedEntry.y, this.lastSelectedEntry.y),\n right: Math.max(this.firstSelectedEntry.x, this.lastSelectedEntry.x),\n bottom: Math.max(this.firstSelectedEntry.y, this.lastSelectedEntry.y),\n };\n }\n\n // Получить диапазон распределения.\n private getSpreadRange() {\n if (!this.lastSpreadEntry) {\n return null;\n }\n const selectedRange = this.getSelectedRange();\n\n const getLeftRange = () => ({\n top: selectedRange.top,\n bottom: selectedRange.bottom,\n left: this.lastSpreadEntry.x,\n right: selectedRange.left - 1,\n });\n\n const getTopRange = () => ({\n left: selectedRange.left,\n right: selectedRange.right,\n top: this.lastSpreadEntry.y,\n bottom: selectedRange.top - 1,\n });\n\n const getRightRange = () => ({\n top: selectedRange.top,\n bottom: selectedRange.bottom,\n left: selectedRange.right + 1,\n right: this.lastSpreadEntry.x,\n });\n\n const getBottomRange = () => ({\n left: selectedRange.left,\n right: selectedRange.right,\n top: selectedRange.bottom + 1,\n bottom: this.lastSpreadEntry.y,\n });\n\n this.log.debug(this.lastSpreadEntry);\n this.log.debug(selectedRange);\n\n if (\n this.lastSpreadEntry.x >= selectedRange.left &&\n this.lastSpreadEntry.x <= selectedRange.right\n ) {\n if (this.lastSpreadEntry.y > selectedRange.bottom) {\n return getBottomRange();\n }\n if (this.lastSpreadEntry.y < selectedRange.top) {\n return getTopRange();\n }\n }\n\n if (\n this.lastSpreadEntry.y >= selectedRange.top &&\n this.lastSpreadEntry.y <= selectedRange.bottom\n ) {\n if (this.lastSpreadEntry.x > selectedRange.right) {\n return getRightRange();\n }\n if (this.lastSpreadEntry.x < selectedRange.left) {\n return getLeftRange();\n }\n }\n\n if (\n this.lastSpreadEntry.x < selectedRange.left &&\n this.lastSpreadEntry.y < selectedRange.top\n ) {\n if (\n selectedRange.left - this.lastSpreadEntry.x >=\n selectedRange.top - this.lastSpreadEntry.y\n ) {\n return getLeftRange();\n } else {\n return getTopRange();\n }\n }\n\n if (\n this.lastSpreadEntry.x > selectedRange.right &&\n this.lastSpreadEntry.y < selectedRange.top\n ) {\n if (\n this.lastSpreadEntry.x - selectedRange.right >=\n selectedRange.top - this.lastSpreadEntry.y\n ) {\n return getRightRange();\n } else {\n return getTopRange();\n }\n }\n\n if (\n this.lastSpreadEntry.x > selectedRange.right &&\n this.lastSpreadEntry.y > selectedRange.bottom\n ) {\n if (\n this.lastSpreadEntry.x - selectedRange.right >=\n this.lastSpreadEntry.y - selectedRange.bottom\n ) {\n return getRightRange();\n } else {\n return getBottomRange();\n }\n }\n\n if (\n this.lastSpreadEntry.x < selectedRange.left &&\n this.lastSpreadEntry.y > selectedRange.bottom\n ) {\n if (\n selectedRange.left - this.lastSpreadEntry.x >=\n this.lastSpreadEntry.y - selectedRange.bottom\n ) {\n return getLeftRange();\n } else {\n return getBottomRange();\n }\n }\n }\n\n private selectSpreadRange() {\n // Снять выделение со всего для упрощения.\n this.entryDespreadedSubject.next(null);\n\n const spreadRange = this.getSpreadRange();\n if (!spreadRange) {\n return;\n }\n\n for (let x = spreadRange.left; x <= spreadRange.right; x++) {\n for (let y = spreadRange.top; y <= spreadRange.bottom; y++) {\n if (\n x !== spreadRange.left &&\n x !== spreadRange.right &&\n y !== spreadRange.top &&\n y !== spreadRange.bottom\n ) {\n continue;\n }\n\n this.entrySpreadedSubject.next({\n pos: { x, y },\n left: x === spreadRange.left,\n right: x === spreadRange.right,\n top: y === spreadRange.top,\n bottom: y === spreadRange.bottom,\n });\n }\n }\n }\n\n private spreadValues(onlyForWorkDay = false) {\n const spreadRange = this.getSpreadRange();\n\n if (!spreadRange) {\n return;\n }\n\n this.entryDespreadedSubject.next(null);\n\n const selectedRange = this.getSelectedRange();\n\n let srXGap = 0;\n let srYGap = 0;\n\n this.massValueChangeInProgressSubject.next(true);\n for (let x = spreadRange.left; x <= spreadRange.right; x++) {\n srYGap = 0;\n for (let y = spreadRange.top; y <= spreadRange.bottom; y++) {\n this.valueChangedSubject.next({\n pos: { x, y },\n value:\n this.dataMatrix[selectedRange.left + srXGap][\n selectedRange.top + srYGap\n ],\n onlyForWorkDay,\n });\n if (x === spreadRange.right && y === spreadRange.bottom) {\n this.massValueChangeInProgressSubject.next(false);\n }\n\n srYGap++;\n if (srYGap > selectedRange.bottom - selectedRange.top) {\n srYGap = 0;\n }\n }\n srXGap++;\n if (srXGap > selectedRange.right - selectedRange.left) {\n srXGap = 0;\n }\n }\n\n this.firstSelectedEntry = {\n x: Math.min(spreadRange.left, selectedRange.left),\n y: Math.min(spreadRange.top, selectedRange.top),\n };\n this.lastSelectedEntry = {\n x: Math.max(spreadRange.right, selectedRange.right),\n y: Math.max(spreadRange.bottom, selectedRange.bottom),\n };\n this.selectRange();\n }\n\n public reset() {\n this.firstSelectedEntry =\n this.lastSelectedEntry =\n this.lastSpreadEntry =\n this.activeEntry =\n null;\n this.isSelecting = this.isSpreading = false;\n this.dataMatrix = {};\n\n this.entryDespreadedSubject.next(null);\n this.entryDeactivatedSubject.next(null);\n this.entryDeselectedSubject.next(null);\n this.resetSubject.next(null);\n }\n\n public mouseEnter(entryPos: EntryPos) {\n if (this.singleCellMode) {\n return;\n }\n\n if (this.isSelecting) {\n this.lastSelectedEntry = entryPos;\n this.selectRange();\n }\n\n if (this.isSpreading) {\n const selectedRange = this.getSelectedRange();\n\n if (!selectedRange) {\n return;\n }\n\n // Если курсор вернулся в зону выделения - отмена распределения.\n if (\n entryPos.x >= selectedRange.left &&\n entryPos.x <= selectedRange.right &&\n entryPos.y >= selectedRange.top &&\n entryPos.y <= selectedRange.bottom\n ) {\n this.lastSpreadEntry = null;\n this.entryDespreadedSubject.next(null);\n }\n\n this.lastSpreadEntry = entryPos;\n this.selectSpreadRange();\n }\n }\n\n public mouseDown = (entryPos: EntryPos) => {\n if (\n this.activeEntry?.x !== entryPos.x ||\n this.activeEntry?.y !== entryPos.y\n ) {\n this.entryDeactivatedSubject.next({\n x: this.activeEntry?.x,\n y: this.activeEntry?.y,\n });\n }\n\n this.entryActivatedSubject.next(entryPos);\n\n // Снять выбор всех областей.\n this.entryDeselectedSubject.next(null);\n this.entryDespreadedSubject.next(null);\n\n // Сделать ячейку активной.\n this.activeEntry = entryPos;\n\n if (!this.singleCellMode) {\n this.isSelecting = true;\n }\n\n this.isSpreading = false;\n\n this.lastSpreadEntry = null;\n this.firstSelectedEntry = { x: entryPos.x, y: entryPos.y };\n this.lastSelectedEntry = { x: entryPos.x, y: entryPos.y };\n\n // Выделить текущую ячейку.\n this.entrySelectedSubject.next({\n pos: entryPos,\n left: true,\n right: true,\n top: true,\n bottom: true,\n });\n };\n\n // Обновление значения в сервисе, для последующего использования.\n public setValue(entryPos: EntryPos, value: number) {\n if (!this.dataMatrix[entryPos.x]) {\n this.dataMatrix[entryPos.x] = {};\n }\n\n this.dataMatrix[entryPos.x][entryPos.y] = value;\n }\n\n // Обновление значения в сервисе и сразу событие в ячейку (для обновления извне).\n public setCellValue(entryPos, value) {\n this.setValue(entryPos, value);\n\n this.valueChangedSubject.next({\n pos: entryPos,\n value,\n force: true,\n });\n }\n\n public spreaderMouseDown(entryPos: EntryPos) {\n this.isSelecting = false;\n this.isSpreading = true;\n }\n\n public spreaderDblClick(entryPos: EntryPos) {\n this.isSpreading = false;\n this.lastSpreadEntry = {\n x: Object.keys(this.dataMatrix).length - 1,\n y: this.getSelectedRange().bottom,\n };\n this.spreadValues(true);\n }\n\n public stopEditing(closeComment: string) {\n this.stopEditingSubject.next({ closeComment });\n }\n\n private isActiveElementCell(withAdditionalBlocks?: boolean, event?: any) {\n let isCell = false;\n\n // Проверяем, что клик не модальному окну с комментарием (к таймшиту на текущий момент).\n // Вернем true, что бы считать это кликом по активному элементу.\n if (withAdditionalBlocks) {\n for (let element = event.target; element; element = element.parentNode) {\n // Объект, по которому кликнули, уже удален из DOM.\n if (element !== document && element.parentNode === null) {\n return true;\n }\n\n if (element.id === this.infoBlockId) {\n return true;\n }\n }\n }\n\n // Проверим клик по активному (с фокусом) элементу.\n for (\n let el: any = document.activeElement;\n el && !isCell;\n el = el.parentNode\n ) {\n if (\n el.attributes &&\n el.attributes['cells-group'] &&\n el.attributes['cells-group'].value === this.id\n ) {\n isCell = true;\n }\n }\n\n return isCell;\n }\n\n mouseupHandler = () => {\n if (this.singleCellMode) {\n return;\n }\n\n if (this.isSelecting) {\n this.isSelecting = false;\n this.selectRange();\n }\n\n if (this.isSpreading) {\n this.isSpreading = false;\n this.spreadValues();\n }\n };\n\n private copyToClipboard(cut = false) {\n const selectedRange = this.getSelectedRange();\n\n let data = '';\n this.massValueChangeInProgressSubject.next(true);\n for (let y = selectedRange.top; y <= selectedRange.bottom; y++) {\n for (let x = selectedRange.left; x <= selectedRange.right; x++) {\n data += (\n this.dataMatrix[x] ? (this.dataMatrix[x][y] ?? 0) : 0\n ).toString();\n\n if (cut) {\n this.valueChangedSubject.next({\n pos: { x, y },\n value: null,\n });\n if (x === selectedRange.right && y === selectedRange.bottom) {\n this.massValueChangeInProgressSubject.next(false);\n }\n }\n\n if (x !== selectedRange.right) {\n data += '\\t';\n }\n }\n\n if (y !== selectedRange.bottom) {\n data += '\\r';\n }\n }\n this.massValueChangeInProgressSubject.next(false);\n\n navigator.clipboard?.writeText(data);\n }\n\n private keyDownHandler = (event: KeyboardEvent) => {\n if (!this.isActiveElementCell()) {\n return;\n }\n event.stopPropagation();\n\n const selectedRange = this.getSelectedRange();\n if (!selectedRange) {\n return;\n }\n\n // Ctrl + C\n if (event.code === 'KeyC' && (event.ctrlKey || event.metaKey)) {\n this.copyToClipboard();\n return;\n }\n\n // Ctrl + X\n if (event.code === 'KeyX' && (event.ctrlKey || event.metaKey)) {\n this.copyToClipboard(true);\n return;\n }\n\n // Ctrl + V\n if (event.code === 'KeyV' && (event.ctrlKey || event.metaKey)) {\n if (!navigator.clipboard) {\n return;\n }\n\n const maxX = Object.keys(this.dataMatrix).length - 1;\n const maxY = Object.keys(this.dataMatrix[this.minMatrixKey]).length - 1;\n\n let rangeRight = 0;\n let rangeBottom = 0;\n\n navigator.clipboard.readText().then((data) => {\n data = data.replace(/(\\r\\n|\\n)/gm, '\\r');\n data = data.replace(/\\r$/gm, '');\n this.massValueChangeInProgressSubject.next(true);\n data.split('\\r').forEach((line, lineIndex, lineArray) => {\n line.split('\\t').forEach((cell, cellIndex, cellArray) => {\n cell = cell.replace(',', '.');\n const value = parseFloat(cell);\n if (!isNaN(value)) {\n const x = this.activeEntry.x + cellIndex;\n const y = this.activeEntry.y + lineIndex;\n if (x <= maxX && y <= maxY) {\n this.valueChangedSubject.next({\n pos: { x, y },\n value,\n });\n if (\n lineIndex === lineArray.length - 1 &&\n cellIndex === cellArray.length - 1\n ) {\n this.massValueChangeInProgressSubject.next(false);\n }\n rangeRight = rangeRight < x ? x : rangeRight;\n rangeBottom = rangeBottom < y ? y : rangeBottom;\n }\n }\n });\n });\n\n this.lastSelectedEntry = {\n x: rangeRight,\n y: rangeBottom,\n };\n\n this.selectRange();\n });\n\n return;\n }\n\n // Удалить значения в выбранном диапазоне.\n if (event.keyCode === this.deleteCode || event.keyCode === this.bsCode) {\n this.massValueChangeInProgressSubject.next(true);\n for (let x = selectedRange.left; x <= selectedRange.right; x++) {\n for (let y = selectedRange.top; y <= selectedRange.bottom; y++) {\n this.valueChangedSubject.next({\n pos: { x, y },\n value: null,\n });\n if (x === selectedRange.right && y === selectedRange.bottom) {\n this.massValueChangeInProgressSubject.next(false);\n }\n }\n }\n return;\n }\n // Переместить выделение ячейки.\n if (\n this.activeEntry &&\n this.dataMatrix &&\n Object.keys(this.dataMatrix).length > 0 &&\n Object.keys(this.dataMatrix[this.minMatrixKey]).length > 0 &&\n [this.rightCode, this.leftCode, this.upCode, this.downCode].indexOf(\n event.keyCode,\n ) !== -1\n ) {\n const updatedActiveEntry = Object.assign({}, this.activeEntry);\n\n if (event.keyCode === this.rightCode) {\n if (updatedActiveEntry.x < Object.keys(this.dataMatrix).length - 1) {\n updatedActiveEntry.x++;\n }\n }\n\n if (event.keyCode === this.leftCode) {\n if (updatedActiveEntry.x > 0) {\n updatedActiveEntry.x--;\n }\n }\n\n if (event.keyCode === this.upCode) {\n if (updatedActiveEntry.y > 0) {\n updatedActiveEntry.y--;\n }\n }\n\n if (event.keyCode === this.downCode) {\n if (\n updatedActiveEntry.y <\n Object.keys(this.dataMatrix[this.minMatrixKey]).length - 1\n ) {\n updatedActiveEntry.y++;\n }\n }\n\n this.mouseDown(updatedActiveEntry);\n this.isSelecting = false;\n return;\n }\n\n if (event.keyCode === this.escCode) {\n this.stopEditingSubject.next(null);\n return;\n }\n\n if (event.keyCode === this.enterCode) {\n this.startEditingSubject.next(null);\n return;\n }\n\n if (\n !(event.keyCode >= 48 && event.keyCode <= 57) &&\n !(event.keyCode >= 96 && event.keyCode <= 105) &&\n event.code !== 'NumpadSubtract' &&\n event.code !== 'Minus'\n ) {\n return;\n }\n\n this.startEditingSubject.next(event.key);\n };\n\n private documentClickHandler = (event: any) => {\n if (this.activeEntry && !this.isActiveElementCell(true, event)) {\n this.log.debug(\n `cellsOrchestrator: ${this.activeEntry.x}:${this.activeEntry.y} will be deactivated because of mouse down event.`,\n );\n this.entryDeactivatedSubject.next({\n x: this.activeEntry.x,\n y: this.activeEntry.y,\n lostFocus: true,\n });\n this.entryDeselectedSubject.next(null);\n this.entryDespreadedSubject.next(null);\n this.activeEntry = null;\n }\n };\n\n public init() {\n this.reset();\n document.addEventListener('click', this.documentClickHandler);\n document.addEventListener('mouseup', this.mouseupHandler);\n document.addEventListener('keydown', this.keyDownHandler);\n this.log.debug('Cells orchestrator is initialized.');\n }\n\n public dispose() {\n document.removeEventListener('click', this.documentClickHandler);\n document.removeEventListener('mouseup', this.mouseupHandler);\n document.removeEventListener('keydown', this.keyDownHandler);\n this.log.debug('Cells orchestrator is disposed.');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { Currency } from 'src/app/shared/models/entities/settings/currency.model';\n\n/**\n * Provides methods to work with Currencies at root application level.\n * */\n@Injectable({\n providedIn: 'root',\n})\nexport class CurrenciesService {\n /** Available currencies. */\n public currencies$ = this.getCurrencies().pipe(shareReplay());\n\n constructor(private data: DataService) {}\n\n /**\n * Gets Available currencies.\n *\n * @returns Available currencies.\n * */\n private getCurrencies(): Observable> {\n return this.data.collection('Currencies').query();\n }\n\n /**\n * Gets Currency exchange rate.\n *\n * @param currencyId Currency ID.\n * @param date Exchange rate date.\n * @returns Currency exchange rate.\n * */\n public getExchangeRate(currencyId: string, date: string): Observable {\n return this.data\n .collection('Currencies')\n .entity(currencyId)\n .function('GetExchangeRate')\n .get({ date })\n .pipe(shareReplay());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { Directory } from 'src/app/settings-app/directories/model/directory.model';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n/** Service for directories caching. */\n@Injectable({\n providedIn: 'root',\n})\nexport class DirectoriesService {\n private directoryCache: Record> = {};\n private directoryEntriesCache: Record> = {};\n\n constructor(private dataService: DataService) {}\n\n /**\n * Retrieves a directory by its ID from the cache or requests it from the server if not cached.\n *\n * @param directoryId The ID of the directory to retrieve.\n * @returns An Observable of the requested Directory.\n */\n public getDirectory(directoryId: string): Observable {\n if (this.directoryCache[directoryId]) {\n return this.directoryCache[directoryId];\n } else {\n this.directoryCache[directoryId] = this.requestDirectory(\n directoryId,\n ).pipe(shareReplay(1));\n return this.directoryCache[directoryId];\n }\n }\n\n /**\n * Requests a directory from the server.\n *\n * @param directoryId The ID of the directory to request.\n * @returns An Observable of the requested Directory.\n */\n private requestDirectory(directoryId: string): Observable {\n return this.dataService\n .collection('Directories')\n .entity(directoryId)\n .get({\n expand: {\n entries: {\n select: ['id', 'name'],\n },\n },\n });\n }\n\n /**\n * Retrieves directory entries by the directory ID from the cache or requests them from the server if not cached.\n *\n * @param directoryId The ID of the directory for which to retrieve entries.\n * @returns An Observable of the requested NamedEntity array.\n */\n public getDirectoryEntries(directoryId: string): Observable {\n if (this.directoryEntriesCache[directoryId]) {\n return this.directoryEntriesCache[directoryId];\n } else {\n this.directoryEntriesCache[directoryId] = this.requestDirectoryEntries(\n directoryId,\n ).pipe(shareReplay(1));\n return this.directoryEntriesCache[directoryId];\n }\n }\n\n /**\n * Requests directory entries from the server based on the provided directory ID.\n *\n * @param directoryId The ID of the directory for which to request entries.\n * @returns An Observable of the requested NamedEntity array.\n */\n private requestDirectoryEntries(\n directoryId: string,\n ): Observable {\n return this.dataService\n .collection('DirectoryEntries')\n .query({\n select: ['id', 'name'],\n filter: {\n directoryId: { type: 'guid', value: directoryId },\n },\n });\n }\n}\n","import { Injectable, Inject, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport {\n asyncScheduler,\n fromEvent,\n Observable,\n pipe,\n Subscription,\n timer,\n} from 'rxjs';\nimport { map, takeUntil, tap, throttleTime } from 'rxjs/operators';\n\nimport {\n DirectionX,\n DirectionY,\n} from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\n\nimport {\n AutoScrollOptions,\n DragContext,\n DragEvent,\n} from './drag-events.interface';\n\n/** Timeline Drag&Drop service. */\n@Injectable({\n providedIn: 'root',\n})\nexport class DragDropService {\n public readonly dragEnd$: Observable = fromEvent(\n this.document,\n 'pointerup',\n ).pipe(\n map(\n ({ clientY, clientX, target }: PointerEvent): DragEvent => ({\n x: clientX,\n y: clientY,\n diffY: clientY - this.lastStartEvent?.clientY,\n diffX: clientX - this.lastStartEvent?.clientX,\n target,\n }),\n ),\n );\n public readonly pointermove$ = fromEvent( // TODO: runOutsideZone?\n this.document,\n 'pointermove',\n );\n\n private eventThrottle = 10;\n private lastStartEvent: PointerEvent | null;\n private autoScrollingSubscription: Subscription | null;\n private lastAutoScrollParams: {\n directionY: DirectionY | undefined;\n directionX: DirectionX | undefined;\n scrollSpeed: number;\n } = {\n directionY: undefined,\n directionX: undefined,\n scrollSpeed: 0,\n };\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private zone: NgZone,\n ) {}\n\n /** Return position diffs observable based at start event */\n public drag(\n startEvent: PointerEvent,\n context?: DragContext,\n autoScrollOptions?: AutoScrollOptions,\n ): Observable {\n this.lastStartEvent = startEvent;\n return this.pointermove$.pipe(\n tap((event) => {\n event.preventDefault();\n }),\n throttleTime(this.eventThrottle, asyncScheduler, {\n leading: true,\n trailing: true,\n }),\n map((e: PointerEvent): DragEvent => {\n let x = e.clientX;\n let y = e.clientY;\n\n if (context) {\n x -= context.leftOffset;\n y -= context.topOffset;\n }\n\n if (autoScrollOptions) {\n this.startContainerScroll(\n {\n x,\n y,\n diffY: e.clientY - startEvent.clientY,\n diffX: e.clientX - startEvent.clientX,\n },\n autoScrollOptions,\n );\n }\n\n return {\n x,\n y,\n diffY: e.clientY - startEvent.clientY,\n diffX: e.clientX - startEvent.clientX,\n };\n }),\n takeUntil(this.dragEnd$),\n );\n }\n\n private startContainerScroll(\n dragEvent: DragEvent,\n options: AutoScrollOptions,\n ): void {\n const scrollSpeeds = [1, 2.5, 5, 10];\n const breakpoint = 100;\n const { x, y } = dragEvent;\n const container = options.container;\n const target = options.target;\n const bodyRight =\n this.document.body.getBoundingClientRect().right + window.scrollX;\n const { width, height } = target.getBoundingClientRect();\n let { left, top, right, bottom } = container.getBoundingClientRect();\n\n left += window.scrollX;\n top += window.scrollY;\n right += window.scrollX;\n bottom += window.scrollY;\n\n let directionY: DirectionY;\n let directionX: DirectionX;\n let coordsDiff = 0;\n\n const scrollByDirection = (\n directionY: DirectionY | undefined,\n directionX: DirectionX | undefined,\n scrollSpeed: number,\n ) => {\n if (directionX === 'to left') {\n container.scrollLeft -= scrollSpeed;\n this.document.documentElement.scrollLeft -= scrollSpeed * 2;\n } else if (directionX === 'to right') {\n container.scrollLeft += scrollSpeed;\n this.document.documentElement.scrollLeft += scrollSpeed * 2;\n }\n\n if (directionY === 'to top') {\n container.scrollTop -= scrollSpeed;\n } else if (directionY === 'to bottom') {\n container.scrollTop += scrollSpeed;\n }\n };\n\n if (x - left < breakpoint) {\n coordsDiff = x - left;\n directionX = 'to left';\n } else if (right - (x + width) < breakpoint) {\n coordsDiff = right - (x + width);\n directionX = 'to right';\n } else if (bodyRight - (x + width) < breakpoint) {\n coordsDiff = bodyRight - (x + width);\n directionX = 'to right';\n }\n\n if (y - top < breakpoint) {\n coordsDiff = y - top;\n directionY = 'to top';\n } else if (bottom - (y + height) < breakpoint) {\n coordsDiff = bottom - (y + height);\n directionY = 'to bottom';\n }\n\n const speedIndex =\n coordsDiff < 0\n ? scrollSpeeds.length - 1\n : Math.min(\n Math.ceil(((breakpoint - coordsDiff) / 100) * scrollSpeeds.length),\n scrollSpeeds.length - 1,\n );\n const scrollSpeed = scrollSpeeds[speedIndex];\n\n if (\n (directionX === this.lastAutoScrollParams.directionX,\n directionY === this.lastAutoScrollParams.directionY,\n scrollSpeed === this.lastAutoScrollParams.scrollSpeed)\n ) {\n return;\n } else {\n this.lastAutoScrollParams = {\n directionX,\n directionY,\n scrollSpeed,\n };\n }\n\n this.autoScrollingSubscription?.unsubscribe();\n\n if (directionY || directionX) {\n this.zone.runOutsideAngular(() => {\n this.autoScrollingSubscription = timer(0, 10)\n .pipe(\n takeUntil(this.dragEnd$),\n options.takeUntil ? options.takeUntil : pipe(),\n )\n .subscribe(() => {\n scrollByDirection(directionY, directionX, scrollSpeed);\n });\n });\n }\n\n if (!directionX && !directionY) {\n this.autoScrollingSubscription = null;\n }\n }\n}\n","import { MonoTypeOperatorFunction } from 'rxjs';\n\n/** Cartesian coordinates */\nexport interface Coordinates {\n /** Coordinate by x axis */\n x: number;\n /** Coordinate by y axis */\n y: number;\n}\n\nexport interface DragEvent extends Coordinates {\n /** Difference between start event position and current event by Y axis. */\n diffY: number;\n /** Difference between start event position and current event by X axis. */\n diffX: number;\n /** Current target of event. */\n target?: EventTarget;\n}\n\nexport interface DragContext {\n /** Left offset of drag container */\n leftOffset: number;\n /** Top offset of drag container */\n topOffset: number;\n}\n\nexport interface AutoScrollOptions {\n /** Container to scroll. */\n container: HTMLElement;\n /** Dragged element. */\n target: HTMLElement;\n /** Function on destroy event (e.g. `takeUntil(destroyed$)`, `takeUntilDestroyed(this.destroyRef)`). */\n takeUntil?: MonoTypeOperatorFunction;\n}\n","export * from './drag-drop.service';\nexport * from './drag-events.interface';\nexport * from './local-drag-drop.service';\n","import { Injectable, Inject, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\n\nimport { DragAndDropData } from 'src/app/shared/directives/drag-and-drop/drag-and-drop.model';\n\nimport { DragDropService } from './drag-drop.service';\n\n/** Extended Drag&Drop service with events and data about current event. */\n@Injectable()\nexport class LocalDragDropService extends DragDropService {\n public data: DragAndDropData;\n\n private onStartSubject = new Subject();\n public onStart$ = this.onStartSubject.asObservable();\n private onDragOverSubject = new Subject();\n public onDragOver$ = this.onDragOverSubject.asObservable();\n private onDropSubject = new Subject();\n public onDrop$ = this.onDropSubject.asObservable();\n private onEndSubject = new Subject();\n public onEnd$ = this.onEndSubject.asObservable();\n private onItemUpdateSubject = new Subject();\n public onItemUpdate$ = this.onItemUpdateSubject.asObservable();\n private completedSubject = new Subject();\n public completed$ = this.completedSubject.asObservable();\n\n constructor(@Inject(DOCUMENT) document: Document, zone: NgZone) {\n super(document, zone);\n }\n\n /** Calls the start event. */\n public setOnStart(): void {\n this.onStartSubject.next(this.data);\n }\n\n /**\n * Calls the dragOver event.\n *\n * @param toGroupName the group name with a clone over it.\n */\n public setOnDragOver(toGroupName: string): void {\n this.onDragOverSubject.next(toGroupName);\n }\n\n /** Calls the drop event. */\n public setOnDrop(): void {\n this.onDropSubject.next(this.data);\n }\n\n /** Calls the dropEnd event. */\n public setOnEnd(): void {\n this.onEndSubject.next(this.data);\n }\n\n /**\n * Calls this event, when an item has been updated.\n *\n * @param data `DragAndDropData`.\n */\n public setOnItemUpdate(data: DragAndDropData): void {\n this.onItemUpdateSubject.next(data);\n }\n\n /** Calls the complete event. */\n public setCompleted(): void {\n this.completedSubject.next();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { EntityTypeDescription } from '../models/entities/entity-type-description.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EntityTypesService {\n constructor(private data: DataService) {}\n\n private observable: Observable;\n\n public getEntityTypes(): Observable {\n if (this.observable) {\n return this.observable;\n }\n\n const observable = this.data.model\n .function('GetEntityTypes')\n .query()\n .pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n return (this.observable = observable);\n }\n\n /**\n * Gets collection of entity type.\n *\n * @param metaEntityType name of entity type.\n * @returns collection name.\n */\n public getEntityTypeCollection(metaEntityType: string): Observable {\n return this.getEntityTypes().pipe(\n map(\n (entityTypeDescriptions) =>\n entityTypeDescriptions.find(\n (entityTypeDescription) =>\n entityTypeDescription.entityTypeName === metaEntityType,\n )?.collection,\n ),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormControl, ValidatorFn } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormGroupService {\n /**\n * Sets/clears the Form control validators, updates the control value, validity and state depending on the validators passed.\n *\n * @param ctrl The Form control.\n * @param validators The Validators to set. If null or empty, they will be cleared.\n * @param clearValue The flag to clear the control value. Will not be cleared by default.\n * */\n public toggleFormControlValidators(\n ctrl: UntypedFormControl,\n validators?: ValidatorFn | ValidatorFn[],\n clearValue = false,\n ) {\n if (!validators || (Array.isArray(validators) && validators.length === 0)) {\n ctrl.clearValidators();\n ctrl.updateValueAndValidity();\n ctrl.markAsUntouched();\n ctrl.markAsPristine();\n } else {\n ctrl.setValidators(validators);\n ctrl.updateValueAndValidity();\n ctrl.markAsUntouched();\n ctrl.markAsPristine();\n }\n\n if (clearValue) {\n ctrl.setValue(null);\n }\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { GridView } from 'src/app/shared/models/inner/grid-view.interface';\nimport {\n UserView,\n UserViewColumn,\n} from 'src/app/shared/models/inner/user-view';\nimport {\n DataColumn,\n List,\n LoadingStrategy,\n} from 'src/app/shared/models/inner/list';\nimport _ from 'lodash';\n\nimport { LIST, META_ENTITY_TYPE, VIEW_NAME } from 'src/app/shared/tokens';\nimport { FilterService } from '../components/features/filter/filter.service';\nimport { View, ViewColumn } from '../models/inner/view';\nimport { AppService } from 'src/app/core/app.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ViewSettingsModalComponent } from '../components/features/view-settings-modal/view-settings-modal.component';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { clone } from 'lodash';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityNavigationProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport {\n GridColumn,\n GridColumnType,\n} from 'src/app/shared-features/grid/models/grid-column.interface';\n\n/**\n * Вспомогательный сервис для работы с типизированными списками и представлениями.\n * Работает в контексте установленных зависимостей LIST и VIEW_NAME.\n */\n@Injectable()\nexport class ListService {\n /** Список используемых колонок-данных. */\n private usingDataColumns: DataColumn[] = [];\n\n public get allColumns(): GridColumn[] {\n return this.list.columns;\n }\n\n private get currentView(): View {\n return this.list.views.find((v: View) => v.name === this.viewName);\n }\n\n constructor(\n @Inject(LIST) protected list: List,\n @Inject(VIEW_NAME) protected viewName: string,\n @Optional() @Inject(META_ENTITY_TYPE) protected metaEntityType: string,\n protected appService: AppService,\n @Optional() private filterService: FilterService,\n private modalService: NgbModal,\n ) {\n this.list = list;\n\n // remove inaccessible columns.\n this.list.columns = this.list.columns.filter(\n (listColumn) =>\n !listColumn.requiredFeature ||\n this.appService.checkFeature(listColumn.requiredFeature),\n );\n\n this.currentView.columns = this.currentView.columns.filter(\n (viewColumn: ViewColumn) =>\n this.list.columns.some((c) => c.name === viewColumn.column),\n );\n\n this.extendListWithCustomFields(\n this.currentView.resizableColumns,\n this.list.editableCustomFields,\n );\n\n this.checkView();\n }\n\n private checkView() {\n this.usingDataColumns = [];\n\n let updatingUserViewIsRequired = false;\n\n const userView = this.getUserView();\n\n // Заполнить отображаемые колонки.\n userView.columns.forEach(\n (userViewColumn: UserViewColumn, index: number) => {\n const listColumn: GridColumn = this.list.columns.find(\n (column: GridColumn) => column.name === userViewColumn.column,\n );\n\n // Если колонка есть в выбранных, но нет в списке - изменилась конфигурация и надо обновить представление.\n if (!listColumn) {\n userView.columns.splice(index, 1);\n updatingUserViewIsRequired = true;\n return;\n }\n },\n );\n\n // Заполнить колонки данных.\n if (this.list.dataColumns) {\n this.list.dataColumns.forEach((dataColumn: DataColumn) => {\n const listColumn: GridColumn = this.list.columns.find(\n (column: GridColumn) => column.name === dataColumn.column,\n );\n\n let userViewColumn: UserViewColumn = null;\n\n if (listColumn) {\n userViewColumn = userView.columns.find(\n (column: UserViewColumn) => column.column === listColumn.name,\n );\n }\n\n if (\n dataColumn.loadingStrategy === LoadingStrategy.Always ||\n userViewColumn\n ) {\n this.usingDataColumns.push(dataColumn);\n }\n });\n }\n\n if (updatingUserViewIsRequired) {\n this.saveUserView(userView);\n }\n }\n\n /** Возвращает FormGroup для строки (any).\n * Не устанавливает правила валидации. Рекомендуется для readonly гридов как вспомогательный метод.\n * Имена контролов устанавливает в порядке приоритета:\n * - поле field из DataColumn (если загружаем данные по представлению, то свойства в row будут по имени поля (column)),\n * - первый элемент, если field - это массив (чаще всего это имя сущности).\n */\n getFormGroupForRow(row: any): UntypedFormGroup {\n const formGroup = new UntypedFormGroup({\n id: new UntypedFormControl(row.id),\n });\n\n for (const dataColumn of this.usingDataColumns) {\n const field = dataColumn.field;\n let path = field;\n if (Array.isArray(field)) {\n let length = field[0].lastIndexOf('.');\n length = length === -1 ? field.length : length;\n path = field[0].substring(0, length);\n }\n\n const value = _.get(row, path);\n formGroup.addControl(dataColumn.column, new UntypedFormControl(value));\n }\n\n return formGroup;\n }\n\n /**\n * Возвращает параметры запроса к OData API по описанию списка и пользовательскому представлению.\n *\n * @param currentPage - текущая страница.\n * @param contextFilter - параметры фильтра.\n * @param pageSize - размер страницы.\n */\n public getODataQuery = (\n currentPage = 0,\n pageSize: number,\n contextFilter?: any,\n ): any => {\n const userView = this.getUserView();\n\n const result: any = {\n expand: {},\n select: ['id'],\n filter: this.filterService?.getODataFilter() ?? null,\n top: pageSize,\n skip: pageSize * currentPage,\n };\n\n if (contextFilter) {\n if (result.filter) {\n result.filter.push(contextFilter);\n } else {\n result.filter = [contextFilter];\n }\n }\n\n if (this.metaEntityType) {\n const metaEntity = this.appService.getMetaEntity(this.metaEntityType);\n\n if (metaEntity.hasLifecycle) {\n const stateColumn = this.list.dataColumns.find(\n (v) => v.column === 'state',\n );\n\n stateColumn.loadingStrategy = LoadingStrategy.Always;\n }\n\n if (metaEntity.lifecycleKindProperty) {\n const kindColumn = this.list.dataColumns.find(\n (v) =>\n v.column.toLowerCase() ===\n metaEntity.lifecycleKindProperty.toLowerCase(),\n );\n\n kindColumn.loadingStrategy = LoadingStrategy.Always;\n }\n }\n\n // Формирование запроса.\n this.list.dataColumns.forEach((dataColumn: DataColumn) => {\n const listColumn: GridColumn = this.list.columns.find(\n (column: GridColumn) => column.name === dataColumn.column,\n );\n\n let userViewColumn: UserViewColumn = null;\n\n if (listColumn) {\n userViewColumn = userView.columns.find(\n (column: UserViewColumn) => column.column === listColumn.name,\n );\n\n // Добавить сортировку.\n if (\n userView.order &&\n userView.order.column &&\n userView.order.column === listColumn.name\n ) {\n const orderField = Array.isArray(dataColumn.field)\n ? dataColumn.field[0]\n : dataColumn.field;\n\n let orderClause = orderField.replace(/\\./g, '/');\n if (userView.order.reverse) {\n orderClause += ' desc';\n }\n result.orderBy = [orderClause];\n }\n }\n\n if (\n dataColumn.loadingStrategy === LoadingStrategy.Always ||\n userViewColumn\n ) {\n const processDataField = (dataField: string) => {\n const fields = dataField.split('.');\n\n const iterateLevel = (level: number, obj: any) => {\n const field = fields[level];\n if (!obj.select) {\n obj.select = ['id'];\n }\n\n if (fields.length - 1 === level) {\n obj.select = obj.select.concat([field]);\n } else {\n if (!obj.expand) {\n obj.expand = {};\n }\n if (!obj.expand[field]) {\n obj.expand[field] = {};\n }\n iterateLevel(level + 1, obj.expand[field]);\n }\n };\n\n iterateLevel(0, result);\n };\n\n if (Array.isArray(dataColumn.field)) {\n dataColumn.field.forEach((dataField) => processDataField(dataField));\n } else {\n processDataField(dataColumn.field);\n }\n }\n });\n\n // OData 8 does not allow empty/whitespace select and expand.\n if (!Object.keys(result.select).length) {\n delete result.select;\n }\n\n if (!Object.keys(result.expand).length) {\n delete result.expand;\n }\n\n return result;\n };\n\n /** Возвращает GridView из описания списка и пользовательского представления. */\n getGridView = (): GridView => {\n const userView = this.getUserView();\n\n const gridView: GridView = {\n name: userView.name,\n order: userView.order,\n columns: [],\n };\n\n const totalLogicalWidth = userView.columns.reduce(\n (accumulator: number, viewColumn: UserViewColumn) => {\n const listColumn: GridColumn = this.list.columns.find(\n (column: GridColumn) => column.name === viewColumn.column,\n );\n\n if (listColumn == null || listColumn.fixedWidth) {\n return accumulator;\n }\n return accumulator + viewColumn.width;\n },\n 0,\n );\n\n userView.columns.forEach((viewColumn: UserViewColumn) => {\n const listColumn: GridColumn = this.list.columns.find(\n (column: GridColumn) => column.name === viewColumn.column,\n );\n\n // Колонку удалили, но осталась в представлении.\n // TODO как-то сразу удалять из сохраненного представления надо\n if (listColumn == null) {\n return;\n }\n\n const gridColumn = clone(listColumn);\n\n gridColumn.total = viewColumn.total;\n gridColumn.width = '';\n\n if (this.currentView.resizableColumns) {\n gridColumn.width = viewColumn.width + 'px';\n } else {\n if (!listColumn.fixedWidth) {\n gridColumn.width = (viewColumn.width / totalLogicalWidth) * 100 + '%';\n } else {\n gridColumn.width = viewColumn.width + 'px';\n }\n }\n\n gridView.columns.push(gridColumn);\n });\n\n return gridView;\n };\n\n /** Возвращает пользовательское представление по умолчанию. */\n getDefaultUserView = (): UserView => {\n const view = this.list.views.find((v: View) => v.name === this.viewName);\n const defaultUserView: UserView = {\n version: this.list.version,\n name: this.viewName,\n columns: [],\n order: view.order,\n };\n\n view.columns.forEach((viewColumn: ViewColumn) => {\n if (!viewColumn.visibleByDefault) {\n return;\n }\n\n defaultUserView.columns.push({\n column: viewColumn.column,\n total: viewColumn.totalByDefault,\n width: viewColumn.width,\n });\n });\n\n return defaultUserView;\n };\n\n /** Возвращает пользовательское представление.\n * Если сохраненного нет или версия отличается от метаданных, то возвращается представление по умолчанию.\n */\n getUserView = (): UserView => {\n const views = this.appService.clientProfile.userViews;\n if (\n this.list.customizable !== false &&\n views[this.list.name] &&\n views[this.list.name][this.viewName] &&\n views[this.list.name][this.viewName].version >= this.list.version\n ) {\n return views[this.list.name][this.viewName];\n }\n return this.getDefaultUserView();\n };\n\n /** Сохраняет представление в клиентский профиль пользователя. */\n saveUserView(userView: UserView, lazy = false) {\n if (!this.appService.clientProfile.userViews[this.list.name]) {\n this.appService.clientProfile.userViews[this.list.name] = {};\n }\n\n this.appService.clientProfile.userViews[this.list.name][userView.name] =\n userView;\n if (lazy) {\n this.appService.saveProfileLazy();\n } else {\n this.appService.saveProfile();\n }\n }\n\n /** Вызывает диалог настройки представления. */\n public setUserView(): Promise {\n const modal = this.modalService.open(ViewSettingsModalComponent, {\n size: this.currentView.resizableColumns ? 'md' : 'lg',\n });\n\n const instance = modal.componentInstance as ViewSettingsModalComponent;\n\n instance.modern = this.currentView.resizableColumns;\n instance.userView = this.getUserView();\n instance.defaultUserView = this.getDefaultUserView();\n instance.list = this.list;\n instance.viewName = this.viewName;\n\n return modal.result.then(\n (userView: UserView) => {\n this.saveUserView(userView);\n this.checkView();\n },\n () => {\n throw new Error('rejected');\n },\n );\n }\n\n /** Set vie column width and save settings. */\n public setColumnWidth(columnName: string, width: number) {\n const userView = this.getUserView();\n userView.columns.find((c) => c.column === columnName).width = width;\n this.saveUserView(userView, true);\n }\n\n /**\n * Extends current list and its views with custom field columns.\n *\n * @param resizableColumns determines whether grid has resizable columns.\n * @param editableColumns determines whether custom field columns are editable.\n */\n public extendListWithCustomFields(\n resizableColumns?: boolean,\n editableColumns?: boolean,\n ): void {\n if (!this.list.customFieldEntityType) {\n return;\n }\n\n const fields = this.appService\n .getCustomFields(this.list.customFieldEntityType)\n .filter((f) => f.viewConfiguration.isShownInEntityLists);\n\n this.addColumns(fields, editableColumns);\n\n this.list.views.forEach((view: View) => {\n fields.forEach((field: MetaEntityBaseProperty) => {\n if (view.columns.find((c) => c.column === field.name)) {\n return;\n }\n let column = field.name;\n if (\n field.type === MetaEntityPropertyType.directory &&\n editableColumns\n ) {\n column = (field as MetaEntityNavigationProperty).keyProperty;\n }\n\n view.columns.push({\n column,\n width: resizableColumns ? 120 : 1,\n visibleByDefault: false,\n });\n });\n });\n }\n\n /**\n * Extends current list with custom field columns.\n *\n * @param fields custom fields configurations.\n * @param editableColumns determines whether custom field columns are editable.\n */\n private addColumns(\n fields: MetaEntityBaseProperty[],\n editableColumns?: boolean,\n ): void {\n fields.forEach((field: MetaEntityBaseProperty) => {\n let name = field.name;\n let dataField = name;\n if (field.type === MetaEntityPropertyType.directory) {\n if (editableColumns) {\n name = (field as MetaEntityDirectoryProperty).keyProperty;\n dataField = name;\n } else {\n name = field.name;\n dataField = name + '.name';\n }\n }\n\n if (this.list.columns.find((c) => c.name === name)) {\n return;\n }\n\n const additionalParams = {} as any;\n let columnType: GridColumnType;\n\n if (editableColumns) {\n additionalParams.forceCellUpdating = true;\n switch (field.type) {\n case MetaEntityPropertyType.string:\n case MetaEntityPropertyType.url:\n case MetaEntityPropertyType.phone:\n case MetaEntityPropertyType.email:\n columnType = GridColumnType.StringControl;\n additionalParams.propagationMode =\n PropagationMode.onExitFromEditing;\n additionalParams.extendedType =\n field.type !== MetaEntityPropertyType.string\n ? field.type.toLowerCase()\n : undefined;\n break;\n case MetaEntityPropertyType.directory:\n columnType = GridColumnType.SelectControl;\n additionalParams.directory = (\n field as MetaEntityDirectoryProperty\n ).directoryId;\n additionalParams.isIdMode = true;\n break;\n case MetaEntityPropertyType.dateOnly:\n columnType = GridColumnType.DateControl;\n break;\n case MetaEntityPropertyType.decimal:\n columnType = GridColumnType.NumberControl;\n additionalParams.controlType = 'decimal';\n additionalParams.contentType = GridColumnType.Decimal;\n additionalParams.propagationMode =\n PropagationMode.onExitFromEditing;\n\n break;\n case MetaEntityPropertyType.integer:\n columnType = GridColumnType.NumberControl;\n additionalParams.controlType = 'integer';\n additionalParams.contentType = GridColumnType.Integer;\n additionalParams.propagationMode =\n PropagationMode.onExitFromEditing;\n break;\n }\n } else {\n columnType = this.getReadonlyColumnType(field.type);\n }\n\n const local = field.viewConfiguration.label;\n\n if (this.list.customFieldPrefixForDataField) {\n dataField = this.list.customFieldPrefixForDataField + dataField;\n }\n\n this.list.columns.push({\n name,\n type: columnType,\n header: local,\n hint: local,\n ...additionalParams,\n });\n\n this.list.dataColumns.push({\n column: name,\n field: dataField,\n loadingStrategy: LoadingStrategy.WhenShowing,\n });\n });\n }\n\n /**\n * Maps a MetaEntityPropertyType to a corresponding GridColumnType for readonly fields.\n *\n * @param fieldType The type of the field to determine the GridColumnType for.\n * @returns The GridColumnType corresponding to the given fieldType.\n */\n private getReadonlyColumnType(\n fieldType: MetaEntityPropertyType,\n ): GridColumnType {\n switch (fieldType) {\n case MetaEntityPropertyType.string:\n return GridColumnType.String;\n case MetaEntityPropertyType.directory:\n return GridColumnType.String;\n case MetaEntityPropertyType.dateOnly:\n return GridColumnType.Date;\n case MetaEntityPropertyType.decimal:\n return GridColumnType.Decimal;\n case MetaEntityPropertyType.integer:\n return GridColumnType.Integer;\n case MetaEntityPropertyType.url:\n return GridColumnType.Url;\n case MetaEntityPropertyType.phone:\n return GridColumnType.Phone;\n case MetaEntityPropertyType.email:\n return GridColumnType.Email;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Constants } from 'src/app/shared/globals/constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PhoneService {\n public phoneTemplate = '+_ (___) ___-__-__';\n\n /** Formats a numeric string into the phone pattern. */\n public fillTemplate(value: string): string {\n if (!value) return '';\n this.chooseTemplate(value.length);\n let formatted = this.phoneTemplate;\n\n for (const char of value.replace(/\\D/g, '')) {\n formatted = formatted.replace('_', char);\n }\n\n const firstUnderscore = formatted.indexOf('_');\n if (firstUnderscore !== -1) {\n formatted = formatted.substring(0, firstUnderscore);\n }\n\n // Delete all non-numeric characters at the end of the string\n formatted = formatted.replace(/[^\\d]+$/g, '');\n\n return formatted;\n }\n\n /** Defines the type of template depending on the number of entered characters. */\n public chooseTemplate(numberCount: number): void {\n switch (numberCount) {\n case 12:\n this.phoneTemplate = '+__ (___) ___-__-__';\n break;\n case 13:\n this.phoneTemplate = '+___ (___) ___-__-__';\n break;\n default:\n this.phoneTemplate = '+_ (___) ___-__-__';\n }\n }\n\n /**\n * Formats a phone number based on a template.\n * @param replaceEightCode - Whether to replace '8' with '7' (default: true).\n * @param newValue - The new input value to format.\n * @param oldValue - The previous value (used to detect deletions).\n * @returns Formatted phone number as a string.\n */\n public getFormattedPhoneValue(\n replaceEightCode = true,\n newValue: string,\n oldValue?: string,\n ): string {\n const onlyNumbersValue = this.extractNumbers(newValue);\n const fixedNumbersLength =\n onlyNumbersValue.length > Constants.maxPhoneLength\n ? onlyNumbersValue.slice(0, Constants.maxPhoneLength)\n : onlyNumbersValue;\n\n const isDeleting = oldValue ? newValue.length < oldValue.length : false;\n const patternLength = this.phoneTemplate.split('_').length - 1;\n\n const maxLength = isDeleting\n ? Math.min(patternLength, fixedNumbersLength.length)\n : Math.max(patternLength, fixedNumbersLength.length);\n\n let phoneValue = fixedNumbersLength.slice(0, maxLength);\n if (replaceEightCode) phoneValue = phoneValue.replace(/^8/, '7');\n\n const formattedValue = isDeleting\n ? newValue\n : this.fillTemplate(phoneValue);\n\n return formattedValue;\n }\n\n /**\n * Extracts all digits from a string, removing any non-digit characters.\n * @param value - The input string containing digits and other characters.\n * @returns A new string containing only the digits from the input.\n */\n public extractNumbers(value: string): string {\n return value.replace(/\\D/g, '');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { Dictionary } from '../models/dictionary';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n/**\n * The service is designed to receive and cache ProjectTaskInfo entities.\n * ProjectTaskInfo - basic information about projects.\n * This information is available to users who have rights to view the project\n * or are included in its team.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectTaskInfoService {\n /** Максимальный загружаемый уровень. */\n constructor(private data: DataService) {}\n\n private observables: Dictionary> = {};\n\n /**\n * Gets and cache ProjectTaskInfo entities.\n *\n * @param projectId Project Id.\n * @param userId User Id.\n * */\n public getProjectTasksInfo(\n projectId: string,\n userId: string,\n ): Observable {\n const complexKey = projectId + userId;\n\n if (this.observables[complexKey]) {\n return this.observables[complexKey];\n }\n\n const observable = this.data\n .collection('Projects')\n .entity(projectId)\n .function('GetProjectTasksInfo')\n .query({ userId })\n .pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n return (this.observables[complexKey] = observable);\n }\n\n public resetProjectTasks(projectId: string, userId: string) {\n const complexKey = projectId + userId;\n delete this.observables[complexKey];\n }\n}\n\nexport interface ProjectTaskInfo extends NamedEntity {\n crossId: string;\n projectId: string | null;\n versionId: string | null;\n number: number;\n structNumber: string;\n indent: number;\n leadTaskId: string | null;\n allowEntry: boolean;\n startDate?: string;\n endDate?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { Dictionary } from '../models/dictionary';\nimport { ProjectTask } from '../models/entities/projects/project-task.model';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectTasksService {\n /** Максимальный загружаемый уровень. */\n private maxLevel = 1;\n\n constructor(private data: DataService) {}\n\n private observables: Dictionary> = {};\n\n /**\n * Возвращает набор задач для проекта (кэширует).\n *\n * @param projectId ID проекта.\n * @param projectVersion Версия проекта.\n * @param maxLevel Максимальный загружаемый уровень.\n * */\n public getProjectTasks(\n projectId: string,\n projectVersion: ProjectVersion = null,\n maxLevel: number = null,\n ): Observable {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n if (this.observables[projectId]) {\n return this.observables[projectId];\n }\n } else {\n if (this.observables[projectVersion.id]) {\n return this.observables[projectVersion.id];\n }\n }\n\n maxLevel = maxLevel ?? this.maxLevel;\n\n const query: any = {\n select: [\n 'id',\n 'name',\n 'structNumber',\n 'number',\n 'leadTaskId',\n 'indent',\n 'startDate',\n 'endDate',\n ],\n filter: [\n {\n indent: { le: maxLevel },\n },\n ],\n };\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n projectVersion,\n projectId,\n );\n\n const observable = this.data\n .collection('ProjectTasks')\n .query(query)\n .pipe(\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n return (this.observables[projectId] = observable);\n } else {\n return (this.observables[projectVersion.id] = observable);\n }\n }\n /**\n * Сбрасывает кэш задач для версии проекта.\n *\n * @param projectId ID проекта.\n * @param projectVersion Версия проекта.\n * */\n public resetProjectTasks(\n projectId: string,\n projectVersion: ProjectVersion = null,\n ) {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n delete this.observables[projectId];\n } else {\n delete this.observables[projectVersion.id];\n }\n }\n\n public getTaskFullName(task: ProjectTask): string {\n return task\n ? task.structNumber\n ? `${task.structNumber} ${task.name}`\n : task.name\n : '';\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { cloneDeep } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { DataService } from 'src/app/core/data.service';\nimport { ProjectVersion } from 'src/app/shared/models/entities/projects/project-version.model';\nimport { ProjectVersionUtil } from 'src/app/projects/project-versions/project-version-util';\nimport { PercentPipe } from '@angular/common';\nimport { StringHelper } from 'src/app/shared/helpers/string-helper';\nimport { ResourceType } from 'src/app/shared/models/enums/resource-type.enum';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\nimport { ProjectTeamMember } from 'src/app/shared/models/entities/projects/project-team-member.model';\nimport { ProjectTaskAssignment } from 'src/app/shared/models/entities/projects/project-task.model';\n\n@Injectable()\nexport class ProjectTeamService {\n public allTeamName: string;\n public assignmentTitleWithoutUnits: boolean;\n public readonly maxAssignmentShortNameLength = 50;\n\n constructor(\n private data: DataService,\n translate: TranslateService,\n @Inject('entityId') private projectId: string,\n private percentPipe: PercentPipe,\n ) {\n this.allTeamName = translate.instant('projects.allTeamRole');\n }\n\n private observable: Observable;\n private observableVersion: Observable;\n\n /**\n * Возвращает набор членов команды проекта (кэширует).\n *\n * @param projectVersion Версия проекта.\n * */\n public getTeamMembers(\n projectVersion: ProjectVersion = null,\n ): Observable {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n if (this.observable) {\n return this.observable;\n }\n } else {\n if (this.observableVersion) {\n return this.observableVersion;\n }\n }\n\n const query: any = {\n expand: {\n resource: {\n select: ['id', 'name', 'resourceType'],\n },\n role: {\n select: ['id', 'name'],\n },\n },\n select: ['id', 'isActive', 'description'],\n };\n ProjectVersionUtil.addProjectEntityIdFilter(\n query,\n projectVersion,\n this.projectId,\n );\n\n const observable = this.data\n .collection('ProjectTeamMembers')\n .query(query)\n .pipe(\n map((data: any[]) => this.prepareTeamMembers(data)),\n shareReplay(),\n map((it) => cloneDeep(it)),\n );\n\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n return (this.observable = observable);\n } else {\n return (this.observableVersion = observable);\n }\n }\n\n /**\n * Сбрасывает кэш членов команды для проекта.\n *\n * @param projectVersion Версия проекта.\n * */\n public reset(projectVersion: ProjectVersion = null) {\n if (ProjectVersionUtil.isWorkProjectVersion(projectVersion)) {\n this.observable = null;\n } else {\n this.observableVersion = null;\n }\n }\n\n /**\n * Gets assignments title.\n *\n * @param assignments project task assignments.\n * @param splitCount count of assignments for view in the string.\n * @param maxNameLength - max assignment view name length.\n * @returns string with names of team members.\n * Names will be without units if `this.assignmentTitleWithoutUnits = true`\n */\n public getAssignmentsString(\n assignments: ProjectTaskAssignment[],\n splitCount: number | null = null,\n maxNameLength?: number,\n ): string {\n const names = [];\n if (assignments) {\n assignments\n .sort(naturalSort('projectTeamMember.name'))\n .forEach((assignment, index) => {\n if (splitCount && splitCount > 0 && index > splitCount - 1) {\n return;\n }\n if (assignment.isAllTeamRole) {\n names.unshift(this.allTeamName);\n } else if (assignment.isUnassigned) {\n return;\n } else {\n let correctedName = assignment.projectTeamMember?.name ?? '';\n // Add line through symbol for separate name in the line\n if (!assignment.projectTeamMember?.isActive) {\n correctedName = StringHelper.getCrossedOutString(correctedName);\n }\n // Add units\n const units =\n assignment.projectTeamMember?.resource?.resourceType !==\n ResourceType.department &&\n typeof assignment.units === 'number' &&\n assignment.units !== 1 &&\n !this.assignmentTitleWithoutUnits\n ? ` [${this.percentPipe\n .transform(assignment.units)\n .replace(/\\s/g, '')}]`\n : '';\n\n correctedName = correctedName + units;\n\n // Add tariff\n if (assignment.projectTariff) {\n correctedName += ` (${assignment.projectTariff.name})`;\n }\n\n // Slice name with max length\n if (maxNameLength && correctedName.length > maxNameLength) {\n correctedName = correctedName.slice(0, maxNameLength) + '…';\n }\n\n // Push name to the array\n names.push(correctedName);\n }\n });\n }\n\n if (splitCount && assignments.length > splitCount) {\n names.push(' …');\n }\n return names.join('; ');\n }\n\n /**\n * Prepares team members for display.\n *\n * @param members - The array of team members to prepare.\n * @returns The prepared array of team members.\n */\n private prepareTeamMembers(\n members: ProjectTeamMember[],\n ): ProjectTeamMember[] {\n return members.map((member) => {\n member.name = member.resource?.name ?? member.description;\n return member;\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TransitionService } from '@uirouter/core';\nimport { firstValueFrom, isObservable, Observable, Subject } from 'rxjs';\nimport { Exception, SavingQueueException } from '../models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { LogService } from 'src/app/core/log.service';\nimport { AutosaveStateService } from './autosave-state.service';\nimport { DateTime } from 'luxon';\nimport _ from 'lodash';\n\n/** API call service in FIFO queue. */\n@Injectable()\nexport class SavingQueueService implements OnDestroy {\n public error$ = new Subject();\n public save$ = new Subject();\n\n /** Queue. Key - object Id. */\n private queue: {\n id: string;\n task: QueueTask;\n }[] = [];\n\n /** Delay from the last change to the start of saving. */\n public delayDuration = 2000;\n\n /** Disabled saving flag.\n *\n * @deprecated - optimize calls for saving instead.\n */\n public disabled = false;\n\n // Saving process indicator.\n private _isSaving = false;\n\n public get isSaving(): boolean {\n return this._isSaving;\n }\n public set isSaving(value: boolean) {\n this._isSaving = value;\n this.autosaveStateService.setState(value);\n }\n\n private lastAddingTime;\n private timeoutId;\n private transitionOnStartListener: any;\n\n constructor(\n private messageService: MessageService,\n private autosaveStateService: AutosaveStateService,\n transition: TransitionService,\n private log: LogService,\n private blockUI: BlockUIService,\n private translate: TranslateService,\n ) {\n window.onbeforeunload = this.onbeforeunload;\n\n // Route change listener.\n this.transitionOnStartListener = transition.onStart(\n {},\n () =>\n new Promise((resolve) => {\n this.save().then(() => resolve());\n }),\n );\n }\n\n public ngOnDestroy(): void {\n this.transitionOnStartListener();\n window.onbeforeunload = null;\n }\n\n public addToQueue(id: string, task: QueueTask) {\n if (this.disabled) {\n return;\n }\n\n this.lastAddingTime = DateTime.now();\n\n const existedItem = this.queue.find((item) => item.id === id);\n if (existedItem) {\n existedItem.task = task;\n this.log.debug(`Saving queue: ${id} has been updated in queue.`);\n } else {\n this.queue.push({ id, task });\n this.log.debug(`Saving queue: ${id} has been added into queue.`);\n }\n\n this.saveNext(false);\n }\n\n /** Adds saving queue task in the queue with patch mode\n * or merge them with closest saving queue task with same id.\n * Both of tasks must be able to merge.\n *\n * @param id entity id.\n * @param rowVersionFactory factory for getting last actual entityRowVersion.\n * @param handlerFactory factory for getting the request to server observable by patch DTO.\n * @param patchDTO data transfer object for patch request.\n * @param canBeMerged a sign if this task able to merge.\n */\n public addToQueuePatch(\n id: string,\n rowVersionFactory: () => string,\n handlerFactory: (object: any) => Observable,\n patchDTO: any,\n canBeMerged?: boolean,\n ): void {\n if (this.disabled) {\n return;\n }\n\n this.lastAddingTime = DateTime.now();\n\n const lastExistQueueTaskIndex = _.findLastIndex(\n this.queue,\n (task) => task.id === id,\n );\n const queueTask =\n lastExistQueueTaskIndex !== -1\n ? (this.queue[lastExistQueueTaskIndex].task as any)\n : null;\n if (queueTask && queueTask.canBeMerged && canBeMerged) {\n Object.keys(patchDTO).forEach((key) => {\n queueTask.patchDTO[key] = patchDTO[key];\n });\n this.log.debug(`Saving queue: ${id} has been updated in queue.`);\n } else {\n this.queue.push({\n id,\n task: {\n rowVersionFactory,\n handlerFactory,\n patchDTO,\n canBeMerged,\n },\n });\n this.log.debug(`Saving queue: ${id} has been added into queue.`);\n }\n\n this.saveNext(false);\n }\n private saveNext(force: boolean) {\n clearTimeout(this.timeoutId);\n\n // If queue is empty or already is saving, finish the operation.\n if (this._isSaving || this.queue.length === 0) {\n return;\n }\n\n const elapsedTime = DateTime.now().diff(\n this.lastAddingTime,\n 'milliseconds',\n ).milliseconds;\n\n // If not enough time has passed, postpone the operation.\n if (!force && elapsedTime < this.delayDuration) {\n this.timeoutId = setTimeout(\n () => this.saveNext(force),\n this.delayDuration - elapsedTime,\n );\n return;\n }\n\n // Start operation.\n this.isSaving = true;\n const item = this.queue.splice(0, 1);\n\n this.log.debug(`Saving queue: ${item[0].id} is saving...`);\n let observable: Observable;\n const nextQueueTask = item[0].task as any;\n\n // Handle factory preferred using, else works with complete queue task.\n if (nextQueueTask.handlerFactory) {\n nextQueueTask.patchDTO.rowVersion = nextQueueTask.rowVersionFactory();\n observable = nextQueueTask.handlerFactory(nextQueueTask.patchDTO);\n } else {\n observable = isObservable(nextQueueTask)\n ? nextQueueTask\n : nextQueueTask();\n }\n\n return firstValueFrom(observable).then(\n (response) => {\n this.log.debug(`Saving queue: ${item[0].id} has been saved.`);\n this.isSaving = false;\n\n this.save$.next(response);\n return this.saveNext(force);\n },\n (error: Exception) => {\n const savingQueueException: SavingQueueException = {\n savingQueueId: item[0].id,\n ...error,\n };\n this.log.error(\n `Saving queue: ${item[0].id} has been failed. Error: ${error.message}`,\n );\n this.errorHandler(savingQueueException);\n },\n );\n }\n\n /** Saves all entires immediately. */\n public save(): Promise {\n if ((this.queue.length === 0 || this.disabled) && !this._isSaving) {\n return Promise.resolve();\n }\n\n this.log.debug(`Saving queue: entire queue is saving...`);\n this.blockUI.start();\n\n return new Promise((resolve, reject) => {\n this.saveNext(true);\n\n const finishFn = () => {\n this.blockUI.stop();\n subscription.unsubscribe();\n errorSubscription.unsubscribe();\n };\n\n const subscription = this.save$.subscribe(() => {\n if (this.queue.length === 0) {\n finishFn();\n resolve();\n }\n });\n\n const errorSubscription = this.error$.subscribe(() => {\n finishFn();\n reject();\n });\n });\n }\n\n // Page closing listener.\n private onbeforeunload = (event: any) => {\n if (this.queue.length === 0 && !this._isSaving) {\n return;\n }\n this.save();\n const message = this.translate.instant('common.leavePageMessage');\n\n if (typeof event == 'undefined') {\n event = window.event;\n }\n if (event) {\n event.returnValue = message;\n }\n return message;\n };\n\n private errorHandler(error: SavingQueueException) {\n this.isSaving = false;\n this.blockUI.stop();\n let msg = error.message;\n let btnText = null;\n if (error.code === SavingQueueException.BtConcurrencyException.code) {\n msg = this.translate.instant(\n SavingQueueException.BtConcurrencyException.message,\n );\n btnText = this.translate.instant('shared.actions.reload');\n }\n this.messageService.message(msg, '', [], btnText).then(\n () => this.error$.next(error),\n () => this.error$.next(error),\n );\n }\n}\n\nexport type QueueTask =\n | (() => Observable)\n | Observable\n | {\n rowVersionFactory?: () => string;\n handlerFactory?: (object: any) => Observable;\n patchDTO?: any;\n canBeMerged?: boolean;\n };\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScrollToService {\n /**\n * Ищет указанный элемент в контейнере и скроллит к верхней границы его родительского скролл элемента.\n * @param {string} targetId - Идентификатор элемента, который необходимо проскролить.\n * @param {HTMLElement | string} container - Контейнер, в котором ищем элемент с targetId.\n *\n */\n\n public scrollTo(targetId: string, container: HTMLElement | string) {\n if (!targetId) {\n throw Error('scrollTargetId is required.');\n }\n\n if (!container) {\n throw Error('container is required.');\n }\n\n if (typeof container === 'string') {\n container = document.getElementById(container);\n }\n\n targetId = this.escapingFirstDigit(targetId);\n const scrollTarget: HTMLElement = container.querySelector(`#${targetId}`);\n\n if (scrollTarget) {\n if (!this.isScrollable(container)) {\n container = this.getFirstScrollableParent(scrollTarget);\n }\n\n if (container) {\n container.scrollTo({\n behavior: 'smooth',\n top: this.calculateScrollDistance(scrollTarget, container),\n });\n } else {\n throw Error('Parent position is fixed.');\n }\n } else {\n throw Error('scrollTarget not found.');\n }\n }\n\n // Проверяет есть ли у контейнера вертикальный скролл.\n\n private isScrollable(container: HTMLElement) {\n const style: CSSStyleDeclaration = window.getComputedStyle(container);\n\n const overflowRegex = /(auto|scroll)/;\n\n return overflowRegex.test(style.overflow + style.overflowY) ? true : false;\n }\n\n // Вычисляет расстояние на которое нужно проскролить элемент.\n\n private calculateScrollDistance(target: HTMLElement, parent: HTMLElement) {\n const targetRectTop = target.getBoundingClientRect().top;\n const parentRectTop = parent.getBoundingClientRect().top;\n\n if (\n (targetRectTop < 0 && parentRectTop >= 0) ||\n (targetRectTop >= 0 && parentRectTop < 0)\n ) {\n return Math.abs(targetRectTop) + Math.abs(parentRectTop);\n } else {\n return Math.abs(Math.abs(targetRectTop) - Math.abs(parentRectTop));\n }\n }\n\n // Находит ближайшего родителя со скроллом.\n\n private getFirstScrollableParent(nativeElement: HTMLElement) {\n let style: CSSStyleDeclaration = window.getComputedStyle(nativeElement);\n\n const overflowRegex = /(auto|scroll)/;\n\n if (style.position === 'fixed') {\n return null;\n }\n\n let parent = nativeElement;\n while (parent.parentElement) {\n parent = parent.parentElement;\n style = getComputedStyle(parent);\n\n if (\n style.overflow === 'hidden' ||\n style.overflowY === 'hidden' ||\n style.overflow === 'visible' ||\n style.overflowY === 'visible'\n ) {\n continue;\n }\n\n if (\n overflowRegex.test(style.overflow + style.overflowY) ||\n parent.tagName === 'BODY'\n ) {\n return parent;\n }\n }\n }\n\n // Если id начинается c цифры, экранирует ее для передачи в querySelector.\n\n private escapingFirstDigit(id: string): string {\n return !isNaN(Number(id.charAt(0)))\n ? `\\\\3${id.charAt(0)} ` + id.substring(1)\n : id;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DataService } from '../../core/data.service';\nimport { TenantSetting } from 'src/app/shared/models/entities/settings/multitenant/tenant-settings.model';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantSettingService {\n constructor(private data: DataService) {}\n\n /**\n * Gets Password requirements plain text.\n *\n * @returns Password requirements text.\n * */\n public getPasswordRequirements(): Observable {\n return this.data.model\n .function('GetPasswordRequirementsText')\n .get();\n }\n\n /**\n * Gets {@link TenantSetting} by specified OData params.\n *\n * @returns Observable of {@link TenantSetting}.\n * */\n public getSetting(oDataParams?: object): Observable {\n return this.data\n .collection('TenantSettings')\n .function('GetSingle')\n .get(null, oDataParams);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { UndoRedoService } from 'src/app/shared/services/undo-redo/undo-redo.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { HotkeyPipe } from 'src/app/shared/pipes/hotkey/hotkey.pipe';\nimport { Hotkey } from 'src/app/shared/pipes/hotkey/hotkey';\n\n@Component({\n selector: 'tmt-undo-redo-buttons',\n templateUrl: './undo-redo-buttons.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, HotkeyPipe]\n})\nexport class UndoRedoButtonsComponent {\n public readonly hotkey = Hotkey;\n constructor(public service: UndoRedoService) {}\n}\n","
    \n \n \n \n\n \n \n \n
    \n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { fromEvent, merge, Observable, of, Subject, Subscription } from 'rxjs';\nimport { catchError, filter, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\n\n/** Service for undo/redo management. */\n@Injectable({\n providedIn: 'root',\n})\nexport class UndoRedoService implements OnDestroy {\n private undoRedoUpdateDataSubject = new Subject();\n public undoRedoUpdateData$ = this.undoRedoUpdateDataSubject.asObservable();\n\n private undoRedoInProgress = false;\n\n private destroyed$ = new Subject();\n private stopKeyboardSubscriptionSubject = new Subject();\n\n private undoRedoWarnings = ['noOperationToUndoRedo'];\n\n private savingQueueService: SavingQueueService | null;\n private abortSessionSubscription: Subscription;\n private currentSessionId: string;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private data: DataService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n ) {}\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n /**\n * Starts a new undo/redo session. Uses for providing undoRedoSessionId.\n *\n * @returns An Observable that emits the session key.\n */\n public startUndoRedoSession(): Observable {\n this.savingQueueService = null;\n this.abortSessionSubscription?.unsubscribe();\n\n const request = this.currentSessionId\n ? this.data.model\n .action('AbortUndoRedo')\n .execute(undefined, undefined, {\n undoRedoSessionId: this.currentSessionId,\n })\n .pipe(\n catchError((error: Exception) => of(error)),\n switchMap(() => this.data.model.action('StartUndoRedo').execute()),\n )\n : this.data.model.action('StartUndoRedo').execute();\n\n this.blockUI.start();\n return request.pipe(\n catchError((error: Exception) => {\n this.notification.error(error.message);\n this.blockUI.stop();\n return of(error);\n }),\n tap((sessionId: string) => {\n this.currentSessionId = sessionId;\n this.stopKeyboardSubscriptionSubject.next();\n this.initKeyboardSubscription();\n this.blockUI.stop();\n }),\n );\n }\n\n /**\n * Aborts the current undo/redo session if the provided session Id matches the current session key.\n *\n * @param sessionId The session Id to compare with the current session key.\n */\n public abortUndoRedoSession(sessionId: string): void {\n if (this.currentSessionId !== sessionId) return;\n\n this.savingQueueService = null;\n this.abortSessionSubscription?.unsubscribe();\n this.stopKeyboardSubscriptionSubject.next();\n\n this.abortSessionSubscription = this.data.model\n .action('AbortUndoRedo')\n .execute(undefined, undefined, {\n undoRedoSessionId: this.currentSessionId,\n })\n .subscribe({\n next: () => {\n this.currentSessionId = null;\n },\n error: (error: Exception) => {\n this.currentSessionId = null;\n this.notification.error(error.message);\n },\n });\n }\n\n /** Sends undo request. */\n public undoRequest(): void {\n this.blockUI.start();\n const request = this.data.model\n .action('Undo')\n .execute(undefined, undefined, {\n undoRedoSessionId: this.currentSessionId,\n })\n .pipe(\n tap((res: any) => {\n this.blockUI.stop();\n if (res.warnings) {\n this.showWarnings(res.warnings);\n }\n }),\n );\n if (this.savingQueueService) {\n this.savingQueueService.addToQueue(Guid.generate(), request);\n return;\n }\n\n this.undoRedoInProgress = true;\n request.subscribe({\n next: (res: any) => {\n this.blockUI.stop();\n this.undoRedoInProgress = false;\n this.undoRedoUpdateDataSubject.next(res);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.undoRedoInProgress = false;\n this.notification.error(error.message);\n },\n });\n }\n\n /** Send redo request. */\n public redoRequest(): void {\n this.blockUI.start();\n const request = this.data.model\n .action('Redo')\n .execute(undefined, undefined, {\n undoRedoSessionId: this.currentSessionId,\n })\n .pipe(\n tap((res: any) => {\n this.blockUI.stop();\n if (res.warnings) {\n this.showWarnings(res.warnings);\n }\n }),\n );\n if (this.savingQueueService) {\n this.savingQueueService.addToQueue(Guid.generate(), request);\n return;\n }\n\n this.undoRedoInProgress = true;\n request.subscribe({\n next: (res: any) => {\n this.blockUI.stop();\n this.undoRedoInProgress = false;\n\n this.undoRedoUpdateDataSubject.next(res);\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.undoRedoInProgress = false;\n this.notification.error(error.message);\n },\n });\n }\n\n /**\n * Sets saving queue service for undoRedo requests.\n *\n * @param savingQueueService Saving queue service instance.\n */\n public setSavingQueue(savingQueueService: SavingQueueService | null): void {\n this.savingQueueService = savingQueueService;\n }\n\n /** Begins listen of ctrl+z/ctrl+y keyboard events. */\n private initKeyboardSubscription(): void {\n fromEvent(this.document, 'keydown')\n .pipe(\n filter(() => !this.undoRedoInProgress),\n takeUntil(merge(this.destroyed$, this.stopKeyboardSubscriptionSubject)),\n )\n .subscribe((event: KeyboardEvent) => {\n switch (event.code) {\n case 'KeyZ':\n if ((event.ctrlKey || event.metaKey) && !event.repeat) {\n if (this.isPreventUndoRedo()) return;\n if (event.shiftKey) {\n this.redoRequest();\n } else {\n this.undoRequest();\n }\n }\n break;\n case 'KeyY':\n if ((event.ctrlKey || event.metaKey) && !event.repeat) {\n if (this.isPreventUndoRedo()) return;\n this.redoRequest();\n }\n }\n return;\n });\n }\n\n /** Shows existing undo/redo warnings.\n *\n * @param warnings object with undo/redo warning keys.\n */\n private showWarnings(warnings: { [key: string]: boolean }): void {\n this.undoRedoWarnings.forEach((warning) => {\n if (warnings[warning]) {\n this.notification.warningLocal(`shared.undoRedo.warnings.${warning}`);\n }\n });\n }\n\n /** Is should to prevent of undo/redo command.\n *\n * @returns is should to prevent of undo/redo command.\n */\n private isPreventUndoRedo(): boolean {\n const activeElement = this.document.activeElement as unknown;\n return (\n (activeElement instanceof HTMLInputElement &&\n activeElement.type === 'text') ||\n activeElement instanceof HTMLTextAreaElement\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AppMenuComponent } from './components/chrome/app-menu/app-menu.component';\nimport { NavigationPanelComponent } from './components/chrome/navigation-panel/navigation-panel.component';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { NgxDropzoneModule } from 'ngx-dropzone';\nimport { BooleanPipe } from './pipes/boolean.pipe';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TextBoxComponent } from './components/controls/text-box/text-box.component';\nimport { LoadingIndicatorComponent } from './components/features/loading-indicator/loading-indicator.component';\nimport { ActionPanelComponent } from './components/chrome/action-panel/action-panel.component';\nimport { ButtonSpinnerDirective } from './directives/button-spinner.directive';\nimport { MultilineTextBoxComponent } from './components/controls/multiline-text-box/multiline-text-box.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { LinkyModule } from 'ngx-linky';\nimport { NotificationComponent } from './components/chrome/notification/notification.component';\nimport { DataNotSavedIndicatorComponent } from './components/features/data-not-saved-indicator/data-not-saved-indicator.component';\nimport { MessageComponent } from './components/chrome/message/message.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { FilterComponent } from './components/features/filter/filter.component';\nimport { FormHeaderComponent } from './components/chrome/form-header/form-header.component';\nimport { FilterDetailsHostDirective } from './components/features/filter/filter-details-host.directive';\nimport { PathPipe } from './pipes/path.pipe';\nimport { ViewSettingsModalComponent } from './components/features/view-settings-modal/view-settings-modal.component';\nimport { AngularDraggableDirective } from './directives/angular-draggable/angular-draggable.directive';\nimport { SelectBoxComponent } from './components/controls/select-box/select-box.component';\nimport { DateBoxComponent } from './components/controls/date-box/date-box.component';\nimport { EmailBoxComponent } from './components/controls/email-box/email-box.component';\nimport { routerConfigFn } from '../router.config';\nimport { UserBoxComponent } from './components/controls/user-box/user-box.component';\nimport { FreezeTableDirective } from './directives/freeze-table/freeze-table.directive';\nimport { ProjectVersionsBoxComponent } from './components/controls/project-versions-box/project-versions-box.component';\nimport { WorkPipe } from './pipes/work.pipe';\nimport { DatePeriodBoxComponent } from './components/controls/date-period-box/date-period-box.component';\nimport { NumberBoxComponent } from './components/controls/number-box/number-box.component';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { AutofocusDirective } from './directives/autofocus/autofocus.directive';\nimport { CustomFieldsComponent } from './components/features/custom-fields/custom-fields.component';\nimport { CustomFieldComponent } from './components/features/custom-fields/custom-field/custom-field.component';\nimport { UserInfoComponent } from './components/features/user-info/user-info.component';\nimport { NotFoundComponent } from './components/chrome/not-found/not-found.component';\nimport { TranslateCutPipe } from './pipes/translate-cut.pipe';\nimport { TimeDurationPipe } from './pipes/time-duration.pipe';\nimport { AutosizeModule } from 'ngx-autosize';\nimport { CustomFieldValuePipe } from './pipes/custom-field-value.pipe';\nimport { StopwatchIndicatorComponent } from './components/features/stopwatch-indicator/stopwatch-indicator.component';\nimport { StopwatchPopupComponent } from './components/features/stopwatch-indicator/stopwatch-popup/stopwatch-popup.component';\nimport { ResizingDirective } from './directives/resizing.directive';\nimport { AvatarPipe } from './pipes/avatar.pipe';\nimport { FinancePipe } from './pipes/finance.pipe';\nimport { LoadingValueDirective } from './directives/loading-value.directive';\nimport { TaskBoxComponent } from './components/controls/task-box/task-box.component';\nimport { WpCurrencyPipe } from './pipes/currency.pipe';\nimport { ProjectInfoComponent } from './components/features/project-info/project-info.component';\nimport { TaskInfoComponent } from './components/features/task-info/task-info.component';\nimport { FinancialTypeCellComponent } from './components/features/financial-type-cell/financial-type-cell.component';\nimport { RadioGroupModule } from './directives/radio-group/radio-group.module';\nimport { ZeroToNullPipe } from './pipes/zero-to-null.pipe';\nimport { UnsignedPipe } from './pipes/unsigned-pipe';\nimport { InfoPopupComponent } from './components/features/info-popup/info-popup.component';\nimport { StateIndicatorComponent } from './components/features/state-indicator/state-indicator.component';\nimport { PercentPointPipe } from 'src/app/shared/pipes/percent-point.pipe';\nimport { CurrencyBoxComponent } from './components/controls/currency-box/currency-box.component';\nimport { StateSelectComponent } from './components/features/state-filter/state-select.component';\nimport { RouteNavigatorComponent } from './components/chrome/route-navigator/route-navigator.component';\nimport { TransitionFormModalComponent } from './components/features/transition-form-modal/transition-form-modal.component';\nimport { FormHeader2Component } from './components/chrome/form-header2/form-header2.component';\nimport { UserNotificationIndicatorComponent } from 'src/app/shared/components/features/user-notification-indicator/user-notification-indicator.component';\nimport { UserNotificationPopupComponent } from 'src/app/shared/components/features/user-notification-indicator/user-notification-popup/user-notification-popup.component';\nimport { IntersectableDirective } from './directives/intersectable.directive';\nimport { SortComponent } from './components/features/sort/sort.component';\nimport { MenuComponent } from './components/features/menu/menu.component';\nimport { DocsArticleDirective } from 'src/app/shared/directives/docs-article.directive';\nimport { DocModalComponent } from 'src/app/shared/components/controls/doc-modal/doc-modal.component';\nimport { WorkflowActionCommentFormComponent } from './components/features/workflow-action-comment-form/workflow-action-comment-form.component';\nimport { LabelIndicatorDirective } from './directives/label-indicator.directive';\nimport { StateBadgeComponent } from './components/features/state-badge/state-badge.component';\n// eslint-disable-next-line max-len\nimport { DurationBoxComponent } from './components/controls/duration-box/duration-box.component';\nimport { ViewerComponent } from 'src/app/shared/components/features/viewer/viewer.component';\nimport { ImageZoomDirective } from 'src/app/shared/directives/image-zoom/image-zoom.directive';\nimport { SafeValuePipe } from 'src/app/shared/pipes/safe-value.pipe';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { WorkflowIndicatorComponent } from './components/features/workflow-indicator/workflow-indicator.component';\nimport { WorkflowIndicatorPopupComponent } from './components/features/workflow-indicator/workflow-indicator-popup/workflow-indicator-popup.component';\nimport { ProductSelectorModalComponent } from 'src/app/shared/components/features/product-selector-modal/product-selector-modal.component';\nimport { GarlandComponent } from './components/features/garland/garland.component';\nimport { NgxNl2brModule } from 'ngx-nl2br';\nimport { SortablejsModule } from 'nxt-sortablejs';\nimport { HierarchicalBoxComponent } from 'src/app/shared/components/controls/hierarchical-box/hierarchical-box.component';\nimport { TreeListComponent } from 'src/app/shared/components/features/tree-list';\nimport { MultiSelectBoxComponent } from 'src/app/shared/components/controls/multiselect-box/multiselect-box.component';\nimport { OffCanvasResizeDirective } from './directives/off-canvas-resize.directive';\nimport { OffCanvasComponent } from './components/features/off-canvas/off-canvas.component';\nimport { InfoPopupEntryComponent } from 'src/app/shared/components/features/info-popup/info-popup-item/info-popup-item.component';\nimport { TruncatePipe } from 'src/app/shared/pipes/truncate.pipe';\nimport { IconPickerComponent } from 'src/app/shared/components/icon-picker/icon-picker.component';\nimport { CurrencyBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/currency-box-wrapper.component';\nimport { DateBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/date-box-wrapper.component';\nimport { NumberBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/number-box-wrapper.component';\nimport { SelectBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/select-box-wrapper.component';\nimport { TextBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/text-box-wrapper.component';\nimport { UserBoxWrapperComponent } from 'src/app/shared/components/features/custom-fields/wrappers/user-box-wrapper.component';\nimport { CustomFieldHostDirective } from 'src/app/shared/components/features/custom-fields/wrappers/custom-field-host.directive';\nimport { TruncateDirective } from 'src/app/shared/directives/truncate/truncate.directive';\nimport { AccordionStateDirective } from 'src/app/shared/directives/accordion-state/accordion-state.directive';\nimport { CodeEditorBoxComponent } from 'src/app/shared/components/controls/code-editor-box/code-editor-box.component';\nimport { TimeTrackerBoxComponent } from 'src/app/shared/components/controls/time-tracker-box/time-tracker-box.component';\nimport { TimesheetTaskComponent } from 'src/app/shared/components/controls/timesheet-task/timesheet-task.component';\nimport { FlagBoxComponent } from 'src/app/projects/card/shared/flag-box/flag-box.component';\n\n@NgModule({\n declarations: [\n SortComponent,\n AppMenuComponent,\n RouteNavigatorComponent,\n NavigationPanelComponent,\n BooleanPipe,\n FinancePipe,\n FormHeaderComponent,\n LoadingIndicatorComponent,\n ActionPanelComponent,\n ButtonSpinnerDirective,\n LoadingValueDirective,\n NotificationComponent,\n DataNotSavedIndicatorComponent,\n MessageComponent,\n FilterComponent,\n FilterDetailsHostDirective,\n PathPipe,\n ViewSettingsModalComponent,\n AngularDraggableDirective,\n ClickOutsideDirective,\n FreezeTableDirective,\n WpCurrencyPipe,\n ZeroToNullPipe,\n UnsignedPipe,\n PercentPointPipe,\n AutofocusDirective,\n CustomFieldsComponent,\n CustomFieldComponent,\n UserInfoComponent,\n ProjectInfoComponent,\n TaskInfoComponent,\n NotFoundComponent,\n TranslateCutPipe,\n TimeDurationPipe,\n CustomFieldValuePipe,\n StopwatchIndicatorComponent,\n StopwatchPopupComponent,\n UserNotificationPopupComponent,\n ResizingDirective,\n LabelIndicatorDirective,\n DocsArticleDirective,\n TextBoxComponent,\n MultilineTextBoxComponent,\n CodeEditorBoxComponent,\n SelectBoxComponent,\n UserBoxComponent,\n TaskBoxComponent,\n DateBoxComponent,\n EmailBoxComponent,\n DatePeriodBoxComponent,\n TimeTrackerBoxComponent,\n NumberBoxComponent,\n ProjectVersionsBoxComponent,\n CurrencyBoxComponent,\n DurationBoxComponent,\n HierarchicalBoxComponent,\n MultiSelectBoxComponent,\n FinancialTypeCellComponent,\n InfoPopupComponent,\n InfoPopupEntryComponent,\n StateIndicatorComponent,\n WorkflowIndicatorComponent,\n WorkflowIndicatorPopupComponent,\n StateBadgeComponent,\n StateSelectComponent,\n TransitionFormModalComponent,\n FormHeader2Component,\n UserNotificationIndicatorComponent,\n IntersectableDirective,\n MenuComponent,\n DocModalComponent,\n WorkflowActionCommentFormComponent,\n ViewerComponent,\n ImageZoomDirective,\n SafeValuePipe,\n ProductSelectorModalComponent,\n GarlandComponent,\n OffCanvasComponent,\n OffCanvasResizeDirective,\n TruncatePipe,\n IconPickerComponent,\n UserBoxWrapperComponent,\n TextBoxWrapperComponent,\n SelectBoxWrapperComponent,\n NumberBoxWrapperComponent,\n DateBoxWrapperComponent,\n CurrencyBoxWrapperComponent,\n CustomFieldHostDirective,\n TruncateDirective,\n TimesheetTaskComponent,\n FlagBoxComponent,\n ],\n exports: [\n UserBoxWrapperComponent,\n TextBoxWrapperComponent,\n SelectBoxWrapperComponent,\n NumberBoxWrapperComponent,\n DateBoxWrapperComponent,\n CurrencyBoxWrapperComponent,\n FormsModule,\n ReactiveFormsModule,\n SortComponent,\n AppMenuComponent,\n RouteNavigatorComponent,\n NavigationPanelComponent,\n TranslateModule,\n NgxNl2brModule,\n LinkyModule,\n NgbModule,\n NotificationComponent,\n FormHeaderComponent,\n FormHeader2Component,\n AngularDraggableDirective,\n FreezeTableDirective,\n LoadingIndicatorComponent,\n ActionPanelComponent,\n ButtonSpinnerDirective,\n LoadingValueDirective,\n BooleanPipe,\n DataNotSavedIndicatorComponent,\n MessageComponent,\n AvatarPipe,\n WorkPipe,\n WpCurrencyPipe,\n ZeroToNullPipe,\n UnsignedPipe,\n FinancePipe,\n PercentPointPipe,\n AngularResizeEventModule,\n FilterComponent,\n SortablejsModule,\n NgxDropzoneModule,\n ClickOutsideDirective,\n CustomFieldsComponent,\n UserInfoComponent,\n ProjectInfoComponent,\n TaskInfoComponent,\n NotFoundComponent,\n TranslateCutPipe,\n TimeDurationPipe,\n AutosizeModule,\n CustomFieldValuePipe,\n StopwatchIndicatorComponent,\n StopwatchPopupComponent,\n UserNotificationPopupComponent,\n ResizingDirective,\n DocsArticleDirective,\n TextBoxComponent,\n MultilineTextBoxComponent,\n CodeEditorBoxComponent,\n SelectBoxComponent,\n CurrencyBoxComponent,\n UserBoxComponent,\n TaskBoxComponent,\n DateBoxComponent,\n EmailBoxComponent,\n DatePeriodBoxComponent,\n TimeTrackerBoxComponent,\n NumberBoxComponent,\n ProjectVersionsBoxComponent,\n HierarchicalBoxComponent,\n MultiSelectBoxComponent,\n AutofocusDirective,\n RadioGroupModule,\n FinancialTypeCellComponent,\n InfoPopupComponent,\n InfoPopupEntryComponent,\n StateIndicatorComponent,\n WorkflowIndicatorComponent,\n WorkflowIndicatorPopupComponent,\n StateBadgeComponent,\n StateSelectComponent,\n UserNotificationIndicatorComponent,\n IntersectableDirective,\n DocModalComponent,\n LabelIndicatorDirective,\n DurationBoxComponent,\n ViewerComponent,\n ImageZoomDirective,\n SafeValuePipe,\n GarlandComponent,\n OffCanvasComponent,\n OffCanvasResizeDirective,\n TruncatePipe,\n IconPickerComponent,\n TruncateDirective,\n TimesheetTaskComponent,\n FlagBoxComponent,\n ],\n imports: [\n UIRouterModule.forChild({\n config: routerConfigFn,\n }),\n FormsModule,\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgxNl2brModule,\n LinkyModule,\n NgbModule,\n AngularResizeEventModule,\n SortablejsModule,\n NgxDropzoneModule,\n AutosizeModule,\n RadioGroupModule,\n PdfViewerModule,\n TreeListComponent,\n AvatarPipe,\n WorkPipe,\n AccordionStateDirective,\n ],\n})\nexport class SharedModule {}\n","import { InjectionToken } from '@angular/core';\nimport { List } from './models/inner/list';\nimport { EntityFilter } from 'src/app/core/navigation.service';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\n\nexport const VIEW_NAME = new InjectionToken('viewName');\nexport const LIST = new InjectionToken('list');\nexport const FILTER = new InjectionToken('filter');\nexport const MASS_OPERATION_PARAMETERS =\n new InjectionToken('massOperationParameters');\nexport const MULTI_SELECT_LIST = new InjectionToken('multiSelectList');\nexport const META_ENTITY_TYPE = new InjectionToken('metaEntityType');\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function currencyValueRequiredValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value && !control.value.value && control.value.value !== 0) {\n return { required: true };\n } else {\n return null;\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\n\nexport function emailValidator(): ValidatorFn {\n const maxEmailLength = 65;\n\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n\n if (!value) {\n return null; // if the field is empty - not valid\n }\n\n if (value.length > maxEmailLength) {\n return { emailTooLong: true };\n }\n\n // Checking the basic format using a regular expression\n if (!Constants.emailRegex.test(value)) {\n return { invalidEmail: true };\n }\n\n // Checking for spaces\n if (/\\s/.test(value)) {\n return { emailContainsSpaces: true };\n }\n\n // Checking for multiple \"@\" characters\n const atSymbolCount = (value.match(/@/g) || []).length;\n if (atSymbolCount !== 1) {\n return { multipleAtSymbols: true };\n }\n\n // Checking for invalid characters (!, #, $, %, &, *)\n const invalidChars = /[!#$%&'*/=?^`{|}~]/;\n if (invalidChars.test(value)) {\n return { invalidChars: true };\n }\n\n // Checking for points at the beginning and at the end\n const [localPart, domain] = value.split('@');\n if (\n localPart.startsWith('.') ||\n localPart.endsWith('.') ||\n domain.startsWith('.') ||\n domain.endsWith('.')\n ) {\n return { invalidDotPosition: true };\n }\n\n return null; // If all checks are passed, then the email is valid\n };\n}\n","import { UntypedFormArray, ValidationErrors } from '@angular/forms';\n\nimport _ from 'lodash';\n\nexport function uniqByKey(\n formArray: UntypedFormArray,\n key: string,\n): ValidationErrors | null {\n if (!formArray.value.length) {\n return null;\n }\n\n if (_.uniqBy(formArray.value, key).length !== formArray.value.length) {\n return { notUniq: true };\n }\n\n return null;\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function urlValidator(): ValidatorFn {\n const urlRegex =\n /^(https?:\\/\\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}(:\\d+)?(\\/[^\\s]*)?$/;\n\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (!urlRegex.test(value)) {\n return { invalidUrl: true };\n }\n\n return null;\n };\n}\n","import {\n Injectable,\n NgModule,\n Pipe,\n PipeTransform,\n ModuleWithProviders,\n} from '@angular/core';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { Observable, of } from 'rxjs';\n\nconst translations: any = {};\n\nclass FakeLoader implements TranslateLoader {\n getTranslation(lang: string): Observable {\n return of(translations);\n }\n}\n\n@Pipe({\n name: 'translate',\n standalone: false,\n})\nexport class TranslatePipeMock implements PipeTransform {\n public name = 'translate';\n\n public transform(query: string, ...args: any[]): any {\n return query;\n }\n}\n\n@Injectable()\nexport class TranslateServiceStub {\n public get(key: T): Observable {\n return of(key);\n }\n\n public instant(key: string): string {\n return key;\n }\n}\n\n@NgModule({\n declarations: [TranslatePipeMock],\n providers: [],\n imports: [\n TranslateModule.forRoot({\n loader: { provide: TranslateLoader, useClass: FakeLoader },\n }),\n ],\n exports: [TranslatePipeMock, TranslateModule],\n})\nexport class TranslateStubModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TranslateStubModule,\n providers: [TranslateServiceStub, TranslatePipeMock],\n };\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { TimeOffBalanceEntryService } from '../core/time-off-balance-entry.service';\n\n@Component({\n selector: 'wp-time-off-balance-entry-card',\n templateUrl: './time-off-balance-entry-card.component.html',\n providers: [TimeOffBalanceEntryService],\n standalone: false,\n})\nexport class TimeOffBalanceEntryCardComponent implements OnInit {\n @Input() entityId: string;\n\n constructor(\n public service: TimeOffBalanceEntryService,\n private actionService: ActionPanelService,\n ) {\n service.mode = 'edit';\n }\n\n ngOnInit() {\n this.service.saving$.subscribe((state) => {\n this.actionService.action('save').isBusy = state;\n });\n\n // Установка главного меню.\n this.actionService.set([\n {\n title: 'shared.actions.save',\n hint: 'shared.actions.save',\n name: 'save',\n iconClass: 'bi bi-save',\n isBusy: false,\n isVisible: false,\n handler: () => this.service.save(),\n },\n ]);\n }\n}\n","\n\n\n\n\n\n\n
    \n \n {{ 'shared.actions.save' | translate }}\n \n
    \n","import { DatePipe } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DateTime } from 'luxon';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { ProjectTasksService } from 'src/app/shared/services/project-tasks.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { TimeOffBalanceEntryMode } from 'src/app/shared/models/entities/team/time-off-balance-entry-mode.enum';\nimport {\n TimeOffBalanceEntryType,\n TimeOffBalanceEntryTypes,\n} from 'src/app/shared/models/entities/team/time-off-balance-entry-type.enum';\nimport { TimeOffBalanceEntry } from 'src/app/shared/models/entities/team/time-off-balance-entry.model';\nimport { TimeOffTypeUnits } from 'src/app/shared/models/enums/time-off-type-unit.enum';\n\n@Injectable()\nexport class TimeOffBalanceEntryService {\n public mode: 'create' | 'edit' = 'create';\n\n public readonly = false;\n\n public saving$ = new Subject();\n public state$ = new BehaviorSubject(CardState.Loading);\n\n public name$ = new BehaviorSubject('');\n\n public form = this.fb.group({\n id: null,\n typeId: [TimeOffBalanceEntryType.accrual.id, Validators.required],\n user: [null, Validators.required],\n timeOffType: [null, Validators.required],\n unit: [null, Validators.required],\n mode: [TimeOffBalanceEntryMode.manual.id, Validators.required],\n date: [DateTime.now().toISODate(), Validators.required],\n amount: [null, Validators.required],\n documentId: null,\n documentName: null,\n });\n\n // Returns the entity type for building a link\n public get entityType(): string {\n if (this.form.value.typeId === TimeOffBalanceEntryType.accrual.id) {\n return 'timesheet';\n } else if (this.form.value.typeId === TimeOffBalanceEntryType.use.id) {\n return 'timeOffRequest';\n }\n }\n\n private timeOffTypeUnits: NamedEntity[] = [];\n\n constructor(\n @Optional() @Inject('entityId') public entryId,\n private translate: TranslateService,\n private fb: UntypedFormBuilder,\n private notification: NotificationService,\n private data: DataService,\n private projectTasksService: ProjectTasksService,\n private datePipe: DatePipe,\n private message: MessageService,\n private actionService: ActionPanelService,\n private navigationService: NavigationService,\n ) {\n this.form.controls.typeId.valueChanges.subscribe(() => {\n const typeId = this.form.controls.typeId.value;\n\n if (!this.entryId) {\n this.name$.next(\n typeId === TimeOffBalanceEntryType.use.id\n ? TimeOffBalanceEntryType.use.name\n : TimeOffBalanceEntryType.accrual.name,\n );\n }\n });\n\n if (!this.entryId) {\n // Для срабатывания события.\n this.form.controls.typeId.setValue(TimeOffBalanceEntryType.accrual.id);\n }\n if (this.entryId) {\n this.load();\n }\n }\n\n private propagateName(): string {\n const typeId = this.form.controls.typeId.value;\n const type = TimeOffBalanceEntryTypes.find((t) => t.id === typeId);\n\n const typeName = this.translate.instant(type.name);\n const name = this.translate.instant(\n 'team.timeOffBalanceEntries.card.nameTemplate',\n {\n type: typeName,\n user: this.form.controls.user.value?.name,\n timeOffType: this.form.controls.timeOffType.value?.name,\n date: this.datePipe.transform(\n DateTime.fromISO(this.form.controls.date.value)?.toISODate(),\n 'shortDate',\n ),\n },\n );\n\n this.name$.next(name);\n return name;\n }\n\n public save(): Promise {\n return new Promise((resolve, reject) => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n reject();\n return;\n }\n\n const formData = this.form.getRawValue();\n const entry = {\n id: this.entryId ?? Guid.generate(),\n typeId: formData.typeId,\n userId: formData.user?.id,\n timeOffTypeId: formData.timeOffType?.id,\n modeId: this.form.value.mode?.id ?? TimeOffBalanceEntryMode.manual.id,\n amount: formData.amount,\n date: formData.date,\n };\n\n this.saving$.next(true);\n\n const collection = this.data.collection('TimeOffBalanceEntries');\n const action = this.entryId\n ? collection.entity(this.entryId).update(entry)\n : collection.insert(entry);\n\n action.subscribe({\n next: () => {\n this.saving$.next(false);\n this.form.markAsPristine();\n this.notification.successLocal(\n 'team.timeOffBalanceEntries.card.messages.saved',\n );\n resolve();\n },\n error: (error: Exception) => {\n this.saving$.next(false);\n reject();\n this.notification.error(error.message);\n },\n });\n });\n }\n\n public reload() {\n if (!this.form.dirty) {\n this.load();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n private load() {\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n this.state$.next(CardState.Loading);\n\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n\n // Загрузка данных.\n this.data\n .collection('TimeOffBalanceEntries')\n .entity(this.entryId)\n .get({\n expand: {\n user: { select: ['id', 'name'] },\n type: { select: ['id', 'name'] },\n timeOffType: {\n select: ['id', 'name', 'unitId'],\n },\n mode: {\n select: ['id', 'name'],\n },\n },\n })\n .subscribe({\n next: (entry: TimeOffBalanceEntry) => {\n this.form.patchValue(entry, { emitEvent: false });\n\n this.form.controls.typeId.setValue(entry.type.id, {\n emitEvent: false,\n });\n\n this.form.controls.mode.setValue(entry.mode);\n\n this.form.controls.unit.setValue(\n this.timeOffTypeUnits.find(\n (cu) => cu.id === entry.timeOffType.unitId,\n ),\n );\n\n this.readonly = !entry.editAllowed;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly\n ? this.form.disable({ emitEvent: false })\n : this.form.enable({ emitEvent: false });\n\n this.actionService.action('save').isShown = !this.readonly;\n\n const name = this.propagateName();\n\n this.navigationService.addRouteSegment({ title: name, id: entry.id });\n\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n this.state$.next(CardState.Error);\n },\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffBalanceEntryService } from '../core/time-off-balance-entry.service';\n\n@Component({\n selector: 'wp-time-off-balance-entry-creation',\n templateUrl: './time-off-balance-entry-creation.component.html',\n providers: [TimeOffBalanceEntryService],\n standalone: false,\n})\nexport class TimeOffBalanceEntryCreationComponent {\n public isSaving = false;\n\n constructor(\n public service: TimeOffBalanceEntryService,\n private activeModal: NgbActiveModal,\n ) {}\n\n ok() {\n this.service.save().then(() => {\n this.activeModal.close('reload');\n });\n }\n\n /** Закрыть диалог. */\n public cancel() {\n this.activeModal.dismiss('cancel');\n }\n}\n","
    \n
    \n

    {{ service.name$ | async | translate }}

    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { TimeOffBalanceEntryModes } from 'src/app/shared/models/entities/team/time-off-balance-entry-mode.enum';\nimport { TimeOffBalanceEntryTypes } from 'src/app/shared/models/entities/team/time-off-balance-entry-type.enum';\n\n@Component({\n selector: 'wp-time-off-balance-entry-filter',\n templateUrl: './time-off-balance-entry-filter.component.html',\n standalone: false,\n})\nexport class TimeOffBalanceEntryFilterComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values: any;\n\n public timeOffBalanceEntryTypes = TimeOffBalanceEntryTypes;\n\n public timeOffBalanceEntryModes = TimeOffBalanceEntryModes;\n\n private destroyed$ = new Subject();\n\n detailsForm = this.fb.group({\n period: null,\n timeOffType: null,\n user: null,\n type: null,\n mode: null,\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n public service: FilterService,\n private translateService: TranslateService,\n ) {}\n\n ngOnInit() {\n this.timeOffBalanceEntryTypes.forEach((type) => {\n type.name = this.translateService.instant(type.name);\n });\n\n this.timeOffBalanceEntryModes.forEach((mode) => {\n mode.name = this.translateService.instant(mode.name);\n });\n\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n const values = Object.assign(\n this.service.values,\n this.detailsForm.value,\n );\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { TimeOffBalanceEntryFilterComponent } from './time-off-balance-entry-filter.component';\n\n@Injectable()\nexport class TimeOffBalanceEntryFilterService extends FilterService {\n public override component: Type =\n TimeOffBalanceEntryFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n\n public override placeholder =\n 'team.timeOffBalanceEntries.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => {\n const value = {\n period: null,\n timeOffType: null,\n user: null,\n type: null,\n mode: null,\n };\n\n return value;\n };\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [{ \"cast(number, 'Edm.String')\": { contains: text } }],\n });\n }\n\n if (this.values.user) {\n result.push({\n userId: { type: 'guid', value: this.values.user.id },\n });\n }\n\n if (this.values.timeOffType) {\n result.push({\n timeOffTypeId: { type: 'guid', value: this.values.timeOffType.id },\n });\n }\n\n if (this.values.type) {\n result.push({\n typeId: { type: 'guid', value: this.values.type.id },\n });\n }\n\n if (this.values.mode) {\n result.push({\n modeId: { type: 'guid', value: this.values.mode.id },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n date: { le: { type: 'raw', value: dates.periodFinish } },\n });\n\n result.push({\n date: { ge: { type: 'raw', value: dates.periodStart } },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { StateService } from '@uirouter/core';\nimport { Subscription } from 'rxjs';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { TimeOffBalanceEntryCreationComponent } from '../creation/time-off-balance-entry-creation.component';\nimport { TimeOffBalanceEntryService } from '../core/time-off-balance-entry.service';\nimport { TimeOffBalanceEntryFilterService } from './filter/time-off-balance-entry-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-time-off-balance-entries-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: TimeOffBalanceEntryFilterService },\n EntityListService,\n TimeOffBalanceEntryService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class TimeOffBalanceEntriesListComponent implements OnInit, OnDestroy {\n selectedRowListener: Subscription;\n\n constructor(\n private app: AppService,\n private state: StateService,\n private service: EntityListService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private modalService: NgbModal,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'team.timeOffBalanceEntries.list.actions.create',\n isVisible: this.app.checkEntityPermission(\n 'TimeOffBalanceEntry',\n PermissionType.Modify,\n ),\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go('timeOffBalanceEntry', {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.service.delete,\n }),\n ]);\n\n this.selectedRowListener = this.gridService.selectedGroup$.subscribe(\n (row: any) => {\n this.actions.action('card').isShown = !!row;\n this.actions.action('delete').isShown =\n row &&\n this.app.checkEntityPermission(\n 'TimeOffBalanceEntry',\n PermissionType.Modify,\n );\n },\n );\n }\n\n private create = () => {\n const ref = this.modalService.open(TimeOffBalanceEntryCreationComponent);\n ref.result.then(\n (result) => {\n if (result === 'reload') {\n this.service.reload();\n }\n },\n () => null,\n );\n };\n\n ngOnDestroy(): void {\n this.selectedRowListener.unsubscribe();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TimeOffBalanceEntryType } from 'src/app/shared/models/entities/team/time-off-balance-entry-type.enum';\nimport { TimeOffBalanceEntryService } from '../../core/time-off-balance-entry.service';\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport { cloneDeep } from 'lodash';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TimeOffType } from 'src/app/shared/models/entities/settings/time-off-type.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TimeOffTypeUnits } from 'src/app/shared/models/enums/time-off-type-unit.enum';\nimport {\n TimeOffBalanceEntryMode,\n TimeOffBalanceEntryModes,\n} from 'src/app/shared/models/entities/team/time-off-balance-entry-mode.enum';\n\n@Component({\n selector: 'wp-time-off-balance-entry-body',\n templateUrl: './time-off-balance-entry-body.component.html',\n styleUrls: ['./time-off-balance-entry-body.component.scss'],\n standalone: false,\n})\nexport class TimeOffBalanceEntryBodyComponent implements OnInit {\n constructor(\n public service: TimeOffBalanceEntryService,\n private notification: NotificationService,\n private data: DataService,\n private translate: TranslateService,\n public navigationService: NavigationService,\n public uiRouterGlobals: UIRouterGlobals,\n ) {}\n\n public timeOffBalanceEntryType = TimeOffBalanceEntryType;\n public timeOffTypes: NamedEntity[] = [];\n public timeOffTypeUnits: NamedEntity[] = [];\n public creationMods: NamedEntity[] = [];\n\n ngOnInit(): void {\n this.data\n .collection('TimeOffTypes')\n .query({\n filter: { isActive: true },\n select: ['id', 'name', 'unitId'],\n expand: [{ accrualPolicy: { select: ['id'] } }],\n orderBy: ['name'],\n })\n .subscribe({\n next: (timeOffTypes: TimeOffType[]) => {\n timeOffTypes.forEach((timeOfType) =>\n this.timeOffTypes.push(timeOfType),\n );\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n\n this.timeOffTypeUnits = TimeOffTypeUnits.map((unit) => ({\n id: unit.id,\n name: this.translate.instant(`enums.timeOffTypeUnit.${unit.code}`),\n }));\n\n this.creationMods = TimeOffBalanceEntryModes.map((mod) => ({\n id: mod.id,\n name: this.translate.instant(`enums.timeOffBalanceEntryMode.${mod.code}`),\n }));\n\n this.service.form.controls.timeOffType.valueChanges.subscribe((value) => {\n this.service.form.controls.unit.setValue(\n this.timeOffTypeUnits.find((cu) => cu.id === value.unitId),\n );\n });\n\n if (this.service.mode === 'create') {\n this.service.form.controls.mode.setValue(\n this.creationMods.find(\n (x) => x.id === TimeOffBalanceEntryMode.manual.id,\n ),\n );\n }\n }\n\n // Returns state parameters for opening a document in a new tab\n public getDocumentStateParams(): object {\n return {\n entityId: this.service.form.value.documentId,\n navigation: this.navigationService.selectedNavigationItem?.name,\n route: cloneDeep(this.navigationService.storedRoute),\n };\n }\n}\n","
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n\n \n
    \n
    \n
    \n\n \n
    \n \n \n
    \n\n \n
    \n \n \n
    \n\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UIRouterModule, Transition } from '@uirouter/angular';\nimport { VIEW_NAME, LIST, FILTER } from 'src/app/shared/tokens';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { TimeOffBalanceEntriesListComponent } from './list/time-off-balance-entries-list.component';\nimport { TimeOffBalanceEntryCreationComponent } from './creation/time-off-balance-entry-creation.component';\nimport { TimeOffBalanceEntryBodyComponent } from './shared/time-off-balance-entry-body/time-off-balance-entry-body.component';\nimport { TimeOffBalanceEntryCardComponent } from './card/time-off-balance-entry-card.component';\nimport { TimeOffBalanceEntryFilterComponent } from './list/filter/time-off-balance-entry-filter.component';\nimport { TimeOffBalanceEntriesTypeCellComponent } from 'src/app/shared/components/features/time-off-balance-entries-type-cell/time-off-balance-entries-type-cell.component';\nimport { TIME_OFF_BALANCE_ENTRIES_LIST } from 'src/app/shared/lists/time-off-balance-entries.list';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n TimeOffBalanceEntriesListComponent,\n TimeOffBalanceEntryCreationComponent,\n TimeOffBalanceEntryBodyComponent,\n TimeOffBalanceEntryCardComponent,\n TimeOffBalanceEntryFilterComponent,\n TimeOffBalanceEntriesTypeCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'timeOffBalanceEntries',\n params: {\n context: null,\n entity: null,\n routeMode: null,\n routeHeader: 'team.timeOffBalanceEntries.list.header',\n route: ROUTE_DEFAULT_PARAMS,\n },\n url: '/time-off-balance-entries/{view:viewName}?{route}&{navigation}&{filter:json}',\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: TIME_OFF_BALANCE_ENTRIES_LIST },\n {\n token: FILTER,\n deps: [Transition],\n resolveFn: StateHelper.resolveFilter,\n },\n ],\n component: TimeOffBalanceEntriesListComponent,\n },\n\n {\n name: 'timeOffBalanceEntry',\n params: {\n navigation: null,\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n url: '/time-off-balance-entries/{entityId:guid}?{route}&{navigation}',\n component: TimeOffBalanceEntryCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class TimeOffBalanceEntriesModule {}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DataService } from 'src/app/core/data.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { TimeOffRequestService } from '../../shared/time-off-request.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { DayPart } from 'src/app/shared/models/enums/day-part.enum';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\n\n@Component({\n selector: 'wp-time-off-period-modal',\n templateUrl: './time-off-period-modal.component.html',\n styleUrls: ['./time-off-period-modal.component.scss'],\n providers: [TimeOffRequestService],\n standalone: false,\n})\nexport class TimeOffPeriodModalComponent implements OnInit {\n @Input() request: Record;\n\n public form = this.fb.group({\n id: null,\n user: null,\n startDate: [null, Validators.required],\n finishDate: [null, Validators.required],\n startDayIntervalValue: [null, Validators.required],\n finishDayIntervalValue: [null, Validators.required],\n startDayHours: 1,\n finishDayHours: 1,\n });\n\n public isSaving = false;\n\n constructor(\n private notification: NotificationService,\n private message: MessageService,\n private service: TimeOffRequestService,\n private fb: UntypedFormBuilder,\n private activeModal: NgbActiveModal,\n private data: DataService,\n private translateService: TranslateService,\n private messageService: MessageService,\n private customFieldService: CustomFieldService,\n ) {}\n\n public ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n if (\n this.form.value.startDate === this.form.value.finishDate &&\n this.form.value.startDayIntervalValue.id === DayPart.Hours &&\n this.form.value.startDayHours === 0\n ) {\n this.notification.warningLocal(\n 'timeOff.period.periodHasToBeGreaterThanZero',\n );\n return;\n }\n\n this.isSaving = true;\n const data = {\n id: this.request.id,\n name: this.request.name,\n rowVersion: this.request.rowVersion,\n userId: this.request.userId,\n description: this.request.description,\n timeOffTypeId: this.request.timeOffTypeId,\n startDate: this.form.value.startDate,\n finishDate: this.form.value.finishDate,\n startDayInterval: this.form.value.startDayIntervalValue.id,\n finishDayInterval: this.form.value.finishDayIntervalValue.id,\n finishDayHours:\n this.form.value.finishDayIntervalValue.id === DayPart.Hours\n ? this.form.value.finishDayHours\n : null,\n startDayHours:\n this.form.value.startDayIntervalValue.id === DayPart.Hours\n ? this.form.value.startDayHours\n : null,\n };\n\n this.customFieldService.assignValues(data, this.request, 'TimeOffRequest');\n\n this.data\n .collection('TimeOffRequests')\n .entity(this.request.id)\n .update(data)\n .subscribe({\n next: () => {\n this.isSaving = false;\n this.activeModal.close();\n },\n error: (error: Exception) => {\n if (error.code === Exception.BtConcurrencyException.code) {\n const msg = this.translateService.instant(\n Exception.BtConcurrencyException.message,\n );\n const btnText = this.translateService.instant(\n 'shared.actions.reload',\n );\n this.messageService.message(msg, '', [], btnText).then(\n () => this.activeModal.dismiss('error'),\n () => this.activeModal.dismiss('error'),\n );\n } else {\n this.message.error(error.message);\n }\n this.isSaving = false;\n },\n });\n };\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n ngOnInit(): void {\n this.form.patchValue(this.request);\n\n if (this.form.value.startDayHours === null) {\n this.form.controls['startDayHours'].setValue(1);\n }\n\n if (this.form.value.finishDayHours === null) {\n this.form.controls['finishDayHours'].setValue(1);\n }\n\n this.form.controls['startDayIntervalValue'].setValue(\n this.service\n .getDayParts()\n .find((d) => d.id === this.request.startDayInterval),\n );\n this.form.controls['finishDayIntervalValue'].setValue(\n this.service\n .getDayParts()\n .find((d) => d.id === this.request.finishDayInterval),\n );\n }\n}\n","
    \n
    \n

    {{ 'timeOff.periodModal.header' | translate }}

    \n \n
    \n
    \n \n
    \n
    \n \n {{ 'shared.actions.save' | translate }}\n \n\n \n
    \n
    \n","import {\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { DataService } from 'src/app/core/data.service';\nimport { DateTime } from 'luxon';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { DayPart } from 'src/app/shared/models/enums/day-part.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffPeriodModalComponent } from './time-off-period-modal/time-off-period-modal.component';\nimport { AppService } from 'src/app/core/app.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TimeOffRequest } from 'src/app/shared/models/entities/base/time-off-request.model';\nimport { TimeOffRequestService } from '../shared/time-off-request.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { BehaviorSubject, forkJoin, Subject } from 'rxjs';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { IntersectedTimesheetsComponent } from '../shared/intersected-timesheets-modal/intersected-timesheets-modal.component';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { StateService } from '@uirouter/core';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-time-off-card',\n templateUrl: './time-off-request-card.component.html',\n styleUrls: ['time-off-request-card.component.scss'],\n providers: [\n SavingQueueService,\n TimeOffRequestService,\n { provide: META_ENTITY_TYPE, useValue: 'TimeOffRequest' },\n LifecycleService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimeOffCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public state$ = new BehaviorSubject(CardState.Loading);\n public isSaving = false;\n public readonly entityType = inject(META_ENTITY_TYPE);\n\n public form = this.fb.group({\n timeOffType: [null, Validators.required],\n description: ['', Validators.maxLength(Constants.formTextMaxLength)],\n });\n\n public currentBalance: number | null = null;\n public currentDuration: number | null = null;\n\n public request: TimeOffRequest;\n public readonly = false;\n\n public isOwnRequest: boolean;\n\n public activeTab: string;\n\n public timeOffTypeQuery = {\n select: ['id', 'name', 'code'],\n expand: { unit: { select: ['id', 'name', 'code'] } },\n };\n\n //** Dates of time off in a single line. */\n public periodTitle: string;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n public autosave: SavingQueueService,\n public navigation: NavigationService,\n public blockUI: BlockUIService,\n private app: AppService,\n private workPipe: WorkPipe,\n private datePipe: DatePipe,\n private data: DataService,\n public actionService: ActionPanelService,\n private message: MessageService,\n private notification: NotificationService,\n private translate: TranslateService,\n private modalService: NgbModal,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private lifecycleService: LifecycleService,\n private customFieldService: CustomFieldService,\n private cdr: ChangeDetectorRef,\n private stateService: StateService,\n ) {\n lifecycleService.onActionError = (error: Exception): boolean => {\n if (error.code === Exception.TimeOff_CrossNonDraftTimesheetExists.code) {\n const ref = this.modalService.open(IntersectedTimesheetsComponent);\n const instance =\n ref.componentInstance as IntersectedTimesheetsComponent;\n instance.request = this.request;\n instance.error = error;\n } else {\n this.message.errorDetailed(error);\n }\n this.load();\n return true;\n };\n this.customFieldService.enrichFormGroup(this.form, 'TimeOffRequest');\n }\n\n // Загрузка данных.\n public load = (silent = false): Promise =>\n new Promise((resolve) => {\n this.autosave.save().then(() => {\n if (!silent) {\n this.state$.next(CardState.Loading);\n } else {\n this.blockUI.start();\n }\n\n this.form.markAsPristine();\n this.form.markAsUntouched();\n\n const query = {\n select: ['*'],\n expand: [\n { user: { select: ['id', 'name'] } },\n { state: { select: ['id', 'name', 'code'] } },\n {\n timeOffType: {\n select: ['id', 'name'],\n expand: { unit: { select: ['id', 'name', 'code'] } },\n },\n },\n ],\n };\n\n this.customFieldService.enrichQuery(query, 'TimeOffRequest');\n\n this.data\n .collection('TimeOffRequests')\n .entity(this.entityId)\n .get(query)\n .subscribe({\n next: (request: TimeOffRequest) => {\n this.request = request;\n\n this.form.patchValue(request, { emitEvent: false });\n\n this.readonly = !request.editAllowed;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.readonly\n ? this.form.disable({ emitEvent: false })\n : this.form.enable({ emitEvent: false });\n\n this.state$.next(CardState.Ready);\n this.blockUI.stop();\n this.updateUIState();\n this.reloadInfo();\n\n this.navigation.addRouteSegment({\n id: request.id,\n title: request.name,\n });\n\n this.updatePeriodDisplayText();\n this.cdr.markForCheck();\n\n resolve();\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.cdr.markForCheck();\n this.blockUI.stop();\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n });\n });\n\n public openUserInfo() {\n const userId = this.request.user.id;\n const target = document.getElementById('request-user');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Updates the title of the period. */\n public updatePeriodDisplayText(): void {\n if (!this.request) {\n return;\n }\n\n let period = this.datePipe.transform(this.request.startDate, 'longDate');\n\n if (this.request.startDayInterval) {\n period +=\n ' (' +\n this.translate.instant(\n `enums.dayPart.${this.request.startDayInterval}`,\n );\n\n if (this.request.startDayInterval === DayPart.Hours) {\n period += ', ' + this.workPipe.transform(this.request.startDayHours);\n }\n period += ')';\n }\n\n if (\n !DateTime.fromISO(this.request.startDate).equals(\n DateTime.fromISO(this.request.finishDate),\n )\n ) {\n period += ' — ';\n period += this.datePipe.transform(this.request.finishDate, 'longDate');\n if (this.request.finishDayInterval) {\n period +=\n ' (' +\n this.translate.instant(\n `enums.dayPart.${this.request.finishDayInterval}`,\n );\n\n if (this.request.finishDayInterval === DayPart.Hours) {\n period += ', ' + this.workPipe.transform(this.request.finishDayHours);\n }\n period += ')';\n }\n }\n\n this.periodTitle = period;\n }\n\n private updateUIState() {\n if (!this.request) {\n return;\n }\n\n // Установка признака Собственная заявка.\n this.isOwnRequest = this.app.session.user.id === this.request.user.id;\n\n // Признак режима чтения.\n this.readonly = !this.request.editAllowed;\n\n const deleteItem = this.actionService.action('delete');\n if (deleteItem) {\n deleteItem.isShown = this.request.deleteAllowed;\n }\n }\n\n private updateTitle() {\n const typeName = this.form.controls['timeOffType'].value?.name;\n const userName = this.request.user.name;\n this.request.name = this.translate.instant('timeOff.card.nameTemplate', {\n typeName,\n userName,\n });\n }\n\n /** Открыть диалог изменения дат. */\n public setPeriod() {\n this.autosave.save().then(() => {\n const ref = this.modalService.open(TimeOffPeriodModalComponent);\n const instance = ref.componentInstance as TimeOffPeriodModalComponent;\n instance.request = this.getSaveData();\n\n ref.result.then(\n () => this.load(true),\n (result) => {\n if (result === 'error') {\n this.load();\n }\n },\n );\n });\n }\n\n /** Удаление заявки. */\n public delete() {\n this.message.confirmLocal('timeOff.card.messages.deleteConfirmation').then(\n () => {\n this.data\n .collection('TimeOffRequests')\n .entity(this.entityId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem();\n },\n error: (error: Exception) => {\n this.message.error(error.message).then(this.load, this.load);\n },\n });\n },\n () => null,\n );\n }\n\n private reloadInfo() {\n if (!this.form.value?.timeOffType?.unit) {\n this.currentDuration = null;\n this.currentBalance = null;\n return;\n }\n\n /** Получение текущего баланса и длительности */\n forkJoin({\n balance: this.data\n .collection('TimeOffRequests')\n .function('GetTimeOffBalance')\n .query({\n userId: this.request.user.id,\n timeOffTypeId: this.form.value?.timeOffType?.id || null,\n }),\n duration: this.data\n .collection('TimeOffRequests')\n .function('GetTimeOffDuration')\n .query({\n startDate: this.request.startDate,\n finishDate: this.request.finishDate,\n startDayInterval: `WP.DayPart'${this.request.startDayInterval}'`,\n finishDayInterval: `WP.DayPart'${this.request.finishDayInterval}'`,\n startDayHours: this.request.startDayHours?.toString() ?? null,\n finishDayHours: this.request.finishDayHours?.toString() ?? null,\n userId: this.request.user.id,\n timeOffTypeId: this.form.value?.timeOffType?.id || null,\n }),\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: (response: any) => {\n this.currentBalance = response.balance;\n this.currentDuration = response.duration as number;\n this.cdr.detectChanges();\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n private getSaveData() {\n const timeOffRequest = this.form.getRawValue() as TimeOffRequest;\n const data = {\n id: this.request.id,\n name: 'name',\n rowVersion: this.request.rowVersion,\n userId: this.request.user?.id,\n description: this.form.value.description,\n timeOffTypeId: this.form.value.timeOffType.id,\n startDate: this.request.startDate,\n finishDate: this.request.finishDate,\n startDayInterval: this.request.startDayInterval,\n finishDayInterval: this.request.finishDayInterval,\n finishDayHours: this.request.finishDayHours,\n startDayHours: this.request.startDayHours,\n };\n\n this.customFieldService.assignValues(\n data,\n timeOffRequest,\n 'TimeOffRequest',\n );\n\n return data;\n }\n\n /**\n * Navigate to the list of time-off balances with context\n * */\n public goToBalances() {\n this.stateService.go('timeOffBalanceEntries', {\n routeMode: RouteMode.continue,\n view: 'all',\n filter: JSON.stringify({\n name: this.request.name,\n filter: [{ documentId: { type: 'guid', value: this.request.id } }],\n }),\n });\n }\n\n ngOnInit() {\n this.actionService.setHasAutosave(true);\n\n // Установка главного меню.\n this.actionService.setAdditional([\n {\n title: 'shared.actions.delete',\n hint: 'timeOff.card.actions.delete.hint',\n name: 'delete',\n isBusy: false,\n isVisible: false,\n handler: () => this.delete(),\n },\n {\n title: 'timeOff.card.actions.openBalance.title',\n hint: 'timeOff.card.actions.openBalance.hint',\n name: 'openBalance',\n isBusy: false,\n isVisible: this.app.checkAppAccess(AppName.Team),\n handler: () => this.goToBalances(),\n },\n ]);\n\n this.load();\n\n this.autosave.error$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.load());\n\n this.autosave.save$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((data: any) => {\n this.request.rowVersion = data.rowVersion;\n this.request.timeOffType = this.form.value.timeOffType;\n });\n\n this.form.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.autosave.addToQueue(this.entityId, () =>\n this.data\n .collection('TimeOffRequests')\n .entity(this.entityId)\n .update(this.getSaveData(), { withResponse: true }),\n );\n });\n\n this.form.controls.timeOffType.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.updateTitle();\n this.autosave.save().then(() => this.reloadInfo());\n });\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n });\n\n this.lifecycleService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.load();\n this.lifecycleService.reloadLifecycle();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n"," \n\n\n\n\n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    {{ 'timeOff.card.props.applicant' | translate }}:
    \n  \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n {{ periodTitle }}\n

    \n \n {{ 'timeOff.card.actions.setDates' | translate }}\n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { DataService } from 'src/app/core/data.service';\nimport { StateService, TransitionService } from '@uirouter/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DayPart } from 'src/app/shared/models/enums/day-part.enum';\nimport { AppService } from 'src/app/core/app.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { MessageService } from 'src/app/core/message.service';\nimport { TimeOffRequestService } from '../shared/time-off-request.service';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport { forkJoin } from 'rxjs';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { DateTime } from 'luxon';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'wp-time-off-creation',\n templateUrl: './time-off-creation.component.html',\n styleUrls: ['./time-off-creation.component.scss'],\n providers: [TimeOffRequestService],\n standalone: false,\n})\nexport class TimeOffCreationComponent implements OnInit {\n public currentBalance = null;\n public currentDuration: any;\n\n public isSaving = false;\n public userIsAllowed: boolean;\n public userQuery: any;\n\n public timeOffTypeQuery = {\n select: ['id', 'name', 'code'],\n expand: { unit: { select: ['id', 'name', 'code'] } },\n };\n\n public form = this.fb.group({\n timeOffType: [null, Validators.required],\n startDate: [\n DateTime.now().plus({ days: 1 }).toFormat('yyyy-MM-dd'),\n Validators.required,\n ],\n finishDate: [\n DateTime.now().plus({ days: 1 }).toFormat('yyyy-MM-dd'),\n Validators.required,\n ],\n startDayIntervalValue: [\n this.service.getDayParts().find((d) => d.id === DayPart.FullDay),\n Validators.required,\n ],\n finishDayIntervalValue: [\n this.service.getDayParts().find((d) => d.id === DayPart.FullDay),\n Validators.required,\n ],\n startDayHours: 1,\n finishDayHours: 1,\n user: [this.app.session.user, Validators.required],\n });\n\n constructor(\n private service: TimeOffRequestService,\n private fb: UntypedFormBuilder,\n transitionService: TransitionService,\n private app: AppService,\n private notification: NotificationService,\n private message: MessageService,\n private data: DataService,\n private state: StateService,\n private activeModal: NgbActiveModal,\n private customFieldService: CustomFieldService,\n ) {\n transitionService.onSuccess({}, () => this.cancel());\n this.customFieldService.enrichFormGroup(this.form, 'TimeOffRequest');\n this.customFieldService.enrichFormGroupWithDefaultValues(\n this.form,\n 'TimeOffRequest',\n );\n }\n\n ok = () => {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notification.warningLocal('shared.messages.requiredFieldsError');\n return;\n }\n\n if (\n this.form.value.startDate === this.form.value.finishDate &&\n this.form.value.startDayIntervalValue.id === DayPart.Hours &&\n this.form.value.startDayHours === 0\n ) {\n this.notification.warningLocal(\n 'timeOff.period.periodHasToBeGreaterThanZero',\n );\n return;\n }\n\n this.isSaving = true;\n const formValue = this.form.value;\n const data = {\n name: 'name',\n userId: formValue.user?.id,\n timeOffTypeId: formValue.timeOffType.id,\n startDate: formValue.startDate,\n finishDate: formValue.finishDate,\n startDayInterval: formValue.startDayIntervalValue.id,\n finishDayInterval: formValue.finishDayIntervalValue.id,\n finishDayHours: formValue.finishDayHours,\n startDayHours: formValue.startDayHours,\n };\n\n this.customFieldService.assignValues(\n data,\n this.form.getRawValue(),\n 'TimeOffRequest',\n );\n\n this.data\n .collection('TimeOffRequests')\n .insert(data)\n .subscribe({\n next: (response) => {\n this.notification.successLocal('timeOff.creation.created');\n this.state.go(`timeOffRequest`, {\n entityId: response.id,\n routeMode: RouteMode.continue,\n });\n this.isSaving = false;\n this.activeModal.close(response);\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n this.isSaving = false;\n },\n });\n };\n\n // Проверить доступна ли установка заявителя, отличного от текущего пользователя.\n private setUserAllowed() {\n if (\n this.app.checkPermission('TimeOffRequest', 'All', PermissionType.Modify)\n ) {\n this.userIsAllowed = true;\n } else {\n if (\n this.app.checkPermission(\n 'TimeOffRequest',\n 'MySubordinates',\n PermissionType.Modify,\n )\n ) {\n this.userIsAllowed = true;\n this.userQuery = {\n filter: [\n {\n supervisors: {\n any: {\n id: { type: 'guid', value: this.app.session.user.id },\n },\n },\n },\n ],\n };\n }\n }\n }\n\n private reloadInfo() {\n if (\n !this.form.value.startDate ||\n !this.form.value.finishDate ||\n !this.form.value.user ||\n !this.form.value?.timeOffType?.unit\n ) {\n this.currentDuration = null;\n this.currentBalance = null;\n return;\n }\n\n forkJoin({\n balance: this.data\n .collection('TimeOffRequests')\n .function('GetTimeOffBalance')\n .query({\n userId: this.form.value.user.id,\n timeOffTypeId: this.form.value?.timeOffType?.id || null,\n }),\n duration: this.data\n .collection('TimeOffRequests')\n .function('GetTimeOffDuration')\n .query({\n startDate: this.form.value.startDate,\n finishDate: this.form.value.finishDate,\n startDayInterval: `WP.DayPart'${this.form.value.startDayIntervalValue.id}'`,\n finishDayInterval: `WP.DayPart'${this.form.value.finishDayIntervalValue.id}'`,\n startDayHours: this.form.value.startDayHours,\n finishDayHours: this.form.value.finishDayHours,\n userId: this.form.value.user.id,\n timeOffTypeId: this.form.value?.timeOffType?.id || null,\n }),\n }).subscribe({\n next: (response) => {\n this.currentBalance = response.balance;\n this.currentDuration = response.duration;\n },\n error: (error: Exception) => {\n this.notification.error(error.message);\n },\n });\n }\n\n cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n ngOnInit(): void {\n this.setUserAllowed();\n this.form.valueChanges.subscribe(() => this.reloadInfo());\n this.reloadInfo();\n }\n}\n","
    \n
    \n

    {{ 'timeOff.creation.header' | translate }}

    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {{ 'shared.actions.create' | translate }}\n \n \n
    \n
    \n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-time-off-request-filter',\n templateUrl: './time-off-request-filter.component.html',\n standalone: false,\n})\nexport class TimeOffRequestFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n period: null,\n department: null,\n user: null,\n timeOffType: null,\n onlySubordinates: false,\n states: [null],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n \n \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { TimeOffRequestFilterComponent } from './time-off-request-filter.component';\n\n@Injectable()\nexport class TimeOffRequestFilterService extends FilterService {\n public override component: Type =\n TimeOffRequestFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = true;\n\n public override placeholder = 'timeOff.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n period: null,\n user: null,\n timeOffType: null,\n department: null,\n onlySubordinates: false,\n states: null,\n });\n\n public override getODataFilter(): any[] {\n const result: any[] = super.getODataFilter();\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n timeOffRequest: {\n or: [\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(name)': { contains: text } },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n { 'tolower(description)': { contains: text } },\n ],\n },\n });\n }\n\n if (this.values.user) {\n result.push({\n timeOffRequest: {\n userId: { type: 'guid', value: this.values.user.id },\n },\n });\n }\n\n if (this.values.department) {\n result.push({\n timeOffRequest: {\n user: {\n departmentId: { type: 'guid', value: this.values.department.id },\n },\n },\n });\n }\n\n if (this.values.timeOffType) {\n result.push({\n timeOffRequest: {\n timeOffTypeId: { type: 'guid', value: this.values.timeOffType.id },\n },\n });\n }\n\n if (this.values.onlySubordinates) {\n result.push({\n timeOffRequest: {\n user: {\n supervisors: {\n any: {\n id: { eq: { type: 'guid', value: this.app.session.user.id } },\n },\n },\n },\n },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n timeOffRequest: {\n stateId: { type: 'guid', value: this.values.states[code].id },\n },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n timeOffRequest: {\n startDate: { le: { type: 'raw', value: dates.periodFinish } },\n },\n });\n\n result.push({\n timeOffRequest: {\n finishDate: { ge: { type: 'raw', value: dates.periodStart } },\n },\n });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { TimeOffRequestFilterService } from './filter/time-off-request-filter.service';\nimport { StateService } from '@uirouter/core';\nimport { Subject } from 'rxjs';\nimport { TimeOffCreationComponent } from '../creation/time-off-creation.component';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'wp-time-off-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: TimeOffRequestFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n standalone: false,\n})\nexport class TimeOffRequestListComponent implements OnInit, OnDestroy {\n /** Component subscriptions cancel subject. */\n private destroyed$ = new Subject();\n\n constructor(\n private state: StateService,\n private actions: ActionPanelService,\n private listService: EntityListService,\n private gridService: GridService,\n private modalService: NgbModal,\n private lifecycleListService: LifecycleListService,\n ) {}\n\n ngOnInit() {\n this.actions.set([\n this.actions.getDefaultAction('create', {\n title: 'timeOff.list.actions.create',\n isVisible: true,\n handler: this.create,\n }),\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go(`timeOffRequest`, {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: this.listService.delete,\n }),\n ]);\n\n this.gridService.selectedGroups$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((rows: UntypedFormGroup[]) => {\n this.actions.action('card').isShown = rows?.length === 1;\n });\n }\n\n private create = () => {\n this.modalService.open(TimeOffCreationComponent, {\n size: 'lg',\n });\n };\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { TimeOffRequest } from 'src/app/shared/models/entities/base/time-off-request.model';\n\n@Component({\n selector: 'wp-intersected-timesheets-modal',\n templateUrl: './intersected-timesheets-modal.component.html',\n standalone: false,\n})\nexport class IntersectedTimesheetsComponent implements OnInit {\n @Input() request: TimeOffRequest;\n @Input() error: Exception;\n\n public isLoading = true;\n public timesheets: any[] = [];\n\n constructor(\n private notification: NotificationService,\n private activeModal: NgbActiveModal,\n private data: DataService,\n ) {}\n\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n\n private load() {\n this.data\n .collection('TimeSheets')\n .query({\n select: ['id', 'name'],\n expand: ['state'],\n filter: {\n state: {\n code: { ne: 'Draft' },\n },\n\n userId: { type: 'guid', value: this.request.user.id },\n dateFrom: { le: { type: 'raw', value: this.request.finishDate } },\n dateTo: { ge: { type: 'raw', value: this.request.startDate } },\n },\n })\n .subscribe({\n next: (timesheets: any[]) => {\n this.isLoading = false;\n this.timesheets = timesheets;\n },\n error: (error: Exception) => {\n this.isLoading = false;\n this.notification.error(error.message);\n },\n });\n }\n\n ngOnInit(): void {\n this.load();\n }\n}\n","\n\n
    \n
    \n

    \n {{ 'shared.errorMessageModalHeader' | translate }}\n

    \n \n
    \n
    \n

    {{ error?.message }}

    \n

    \n \n  \n {{\n timesheet.name\n }}\n

    \n
    \n
    \n \n
    \n
    \n","import { Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { DayPart } from 'src/app/shared/models/enums/day-part.enum';\nimport { DataService } from 'src/app/core/data.service';\nimport { TimeOffRequest } from 'src/app/shared/models/entities/base/time-off-request.model';\nimport { FormHelper } from 'src/app/shared/helpers/form-helper';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { TimeOffRequestService } from '../time-off-request.service';\nimport { DateHours } from 'src/app/shared/models/entities/date-hours.model';\nimport { DateTime } from 'luxon';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'wp-time-off-period',\n templateUrl: './time-off-period.component.html',\n styleUrls: ['./time-off-period.component.scss'],\n standalone: false,\n})\nexport class TimeOffPeriodComponent implements OnInit {\n @Input() formGroup: UntypedFormGroup;\n @Input() creatingMode: boolean;\n @Input() appName: AppName;\n\n public dayParts: NamedEntity[] = this.service.getDayParts();\n public existsRequest: any[] = [];\n public days: TimeOffDayHoursInfo[] = [];\n public lineWidth: string;\n\n private cellWidth = 60;\n private destroyRef = inject(DestroyRef);\n\n get request(): TimeOffRequest {\n return this.formGroup.value as TimeOffRequest;\n }\n\n constructor(\n private service: TimeOffRequestService,\n private data: DataService,\n ) {}\n\n public isSingleDay(): boolean {\n return (\n this.formGroup.controls['startDate'].value ===\n this.formGroup.controls['finishDate'].value ||\n !this.formGroup.controls['startDate'].value ||\n !this.formGroup.controls['finishDate'].value\n );\n }\n\n private loadSchedule() {\n const startDate = this.formGroup.controls['startDate'].value;\n const finishDate = this.formGroup.controls['finishDate'].value;\n const user = this.formGroup.controls['user'].value as NamedEntity;\n\n if (startDate && finishDate && user) {\n this.data\n .collection('Schedules')\n .function('WP.GetUserSchedule')\n .query({\n userId: user.id,\n from: startDate,\n to: finishDate,\n })\n .subscribe((data: DateHours[]) => {\n this.days = data.map((d) => ({\n date: d.date,\n hours: d.hours,\n calcDuration: 0,\n header: '',\n }));\n this.reCalculatePreview();\n this.lineWidth = `${data.length * this.cellWidth}px`;\n });\n\n // Загрузить сведения о пересекающихся ЗнО.\n const query: any = {\n select: ['id'],\n filter: [\n { userId: { type: 'guid', value: user.id } },\n { startDate: { le: { type: 'raw', value: finishDate } } },\n { finishDate: { ge: { type: 'raw', value: startDate } } },\n ],\n expand: [\n { state: { select: ['name', 'code', 'style'] } },\n { timeOffType: { select: ['name'] } },\n ],\n };\n\n if (!this.creatingMode) {\n query.filter.push({\n id: { ne: { type: 'guid', value: this.request.id } },\n });\n }\n\n this.data\n .collection('TimeOffRequests')\n .query(query)\n .subscribe((data: any[]) => {\n this.existsRequest = data;\n });\n }\n }\n\n private reCalculatePreview() {\n const startDate = this.formGroup.controls['startDate'].value;\n const finishDate = this.formGroup.controls['finishDate'].value;\n let startDayHours = this.formGroup.controls['startDayHours'].value;\n let finishDayHours = this.formGroup.controls['finishDayHours'].value;\n\n const startDayIntervalValue =\n this.formGroup.controls['startDayIntervalValue'].value;\n const finishDayIntervalValue =\n this.formGroup.controls['finishDayIntervalValue'].value;\n\n if (this.days.length === 0) {\n return;\n }\n\n const getCalcDuration = (\n interval: DayPart,\n duration: number,\n hours: number,\n ) => {\n switch (interval) {\n case DayPart.FullDay:\n return duration;\n case DayPart.ThreeQuarters:\n return (duration / 4) * 3;\n case DayPart.Half:\n return duration / 2;\n case DayPart.Quarter:\n return duration / 4;\n case DayPart.Octet:\n return duration / 8;\n case DayPart.Hours:\n return hours;\n }\n return 0;\n };\n\n this.days.forEach((day) => {\n day.header = DateTime.fromISO(day.date).toFormat('dd.LL.yy');\n day.calcDuration = day.hours;\n });\n\n if (startDayHours > this.days[0].hours) {\n this.formGroup.controls['startDayHours'].setValue(this.days[0].hours);\n startDayHours = this.days[0].hours;\n }\n\n this.days[0].calcDuration = getCalcDuration(\n startDayIntervalValue.id,\n this.days[0].hours,\n startDayHours,\n );\n\n if (!DateTime.fromISO(startDate).equals(DateTime.fromISO(finishDate))) {\n const duration = this.days[this.days.length - 1].hours;\n if (finishDayHours > duration) {\n this.formGroup.controls['finishDayHours'].setValue(duration);\n finishDayHours = duration;\n }\n\n this.days[this.days.length - 1].calcDuration = getCalcDuration(\n finishDayIntervalValue.id,\n duration,\n finishDayHours,\n );\n }\n }\n\n ngOnInit(): void {\n if (this.formGroup.value.startDayInterval) {\n this.formGroup.controls['startDayIntervalValue'].setValue(\n this.dayParts.find(\n (d) => d.id === this.formGroup.value.startDayInterval,\n ),\n { emitEvent: false },\n );\n }\n\n if (this.formGroup.value.finishDayInterval) {\n this.formGroup.controls['finishDayIntervalValue'].setValue(\n this.dayParts.find(\n (d) => d.id === this.formGroup.value.finishDayInterval,\n ),\n { emitEvent: false },\n );\n }\n\n merge(\n this.formGroup.controls['startDate'].valueChanges,\n this.formGroup.controls['finishDate'].valueChanges,\n this.formGroup.controls['user'].valueChanges,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => setTimeout(() => this.loadSchedule()));\n\n this.formGroup.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.reCalculatePreview();\n });\n\n FormHelper.controlDatePair(\n this.formGroup,\n 'startDate',\n 'finishDate',\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.loadSchedule();\n }\n}\n\nexport interface TimeOffDayHoursInfo extends DateHours {\n calcDuration: number;\n header: string;\n}\n","\n \n \n \n \n \n \n \n \n\n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n\n

    \n {{ 'timeOff.period.setDatesHelp' | translate }}\n

    \n\n
    \n \n
    \n \n \n \n \n \n \n \n \n \n {{ day.calcDuration | wpWork }}\n \n \n \n
    \n {{ day.header }}\n
    \n
    \n
    \n\n \n \n \n \n \n \n \n \n
    \n \n {{ request?.timeOffType?.name }}\n
    \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { DayPart } from 'src/app/shared/models/enums/day-part.enum';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class TimeOffRequestService {\n constructor(private translate: TranslateService) {}\n\n public getDayParts(): NamedEntity[] {\n const dayParts: NamedEntity[] = [];\n for (const dayPart of Object.keys(DayPart)) {\n dayParts.push({\n name: this.translate.instant(`enums.dayPart.${dayPart}`),\n id: dayPart,\n });\n }\n return dayParts;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wp-time-off-request-info',\n templateUrl: './time-off-request-info.component.html',\n styleUrls: ['./time-off-request-info.component.scss'],\n standalone: false,\n})\nexport class TimeOffRequestInfoComponent {\n /** Признак начального состояния - если диалог создания или заявка еще Draft. */\n @Input() isApproved: boolean;\n\n /** Баланс и длительность на момент перехода из начального состояния. */\n @Input() balance: number | null = null;\n @Input() duration: number | null = null;\n\n /** Текущий баланс и длительность. */\n @Input() currentBalance: number | null;\n @Input() currentDuration: number | null;\n\n @Input() unitName: string;\n\n /** Получить остаток. */\n public getRemainValue(): number {\n if (this.isApproved) {\n return (this.balance ?? 0) - (this.duration ?? 0);\n } else {\n return (this.currentBalance ?? 0) - (this.currentDuration ?? 0);\n }\n }\n}\n","
    \n
    \n \n\n

    \n {{ unitName }}\n

    \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
    {{ 'timeOff.card.props.duration' | translate }}:\n {{ (isApproved ? duration : currentDuration) | number: '1.0-2' }}\n
    {{ 'timeOff.card.props.balance' | translate }}:\n {{ (isApproved ? balance : currentBalance) | number: '1.0-2' }}\n
    {{ 'timeOff.card.props.remain' | translate }}:\n {{ getRemainValue() | number: '1.0-2' }}\n
    \n\n

    {{ 'timeOff.card.balanceDescription' | translate }}

    \n
    \n
    \n","import { NgModule } from '@angular/core';\nimport { TimeOffRequestListComponent } from './list/time-off-request-list.component';\nimport { TimeOffRequestFilterComponent } from './list/filter/time-off-request-filter.component';\nimport { TimeOffPeriodComponent } from './shared/time-off-period/time-off-period.component';\nimport { TimeOffPeriodModalComponent } from './card/time-off-period-modal/time-off-period-modal.component';\nimport { IntersectedTimesheetsComponent } from './shared/intersected-timesheets-modal/intersected-timesheets-modal.component';\nimport { TimeOffRequestInfoComponent } from './time-off-request-info/time-off-request-info.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TimeOffCardComponent } from './card/time-off-request-card.component';\nimport { TimeOffCreationComponent } from './creation/time-off-creation.component';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport {\n META_ENTITY_TYPE,\n LIST,\n MASS_OPERATION_PARAMETERS,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { TIME_OFF_LIST } from 'src/app/shared/lists/time-off.list';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { FileBoxComponent } from 'src/app/shared/components/controls/file-box';\n\n/** Модуль реализует функциональность таймшитов, заявок на отсутствия и заявок на затраты,\n * используемую приложениями MyApp и TeamApp.\n */\n@NgModule({\n declarations: [\n TimeOffRequestListComponent,\n TimeOffRequestFilterComponent,\n TimeOffCardComponent,\n TimeOffPeriodComponent,\n TimeOffPeriodModalComponent,\n TimeOffRequestInfoComponent,\n TimeOffCreationComponent,\n IntersectedTimesheetsComponent,\n ],\n\n imports: [\n CommonModule,\n SharedModule,\n BaseSharedModule,\n EntityListComponent,\n CommentsModule,\n FileBoxComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'timeOffRequest',\n url: '/time-off/{entityId:guid}?{navigation}&{route}',\n params: {\n routeMode: null,\n navigation: 'my.timeOffRequestsAll',\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: TimeOffCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'timeOffRequests',\n url: '/time-off/{view:viewName}?{navigation}&{route}',\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: TIME_OFF_LIST },\n { provide: MULTI_SELECT_LIST, useValue: true },\n { provide: META_ENTITY_TYPE, useValue: 'TimeOffRequest' },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'timeOffRequest',\n entityPropertyName: 'timeOffRequest',\n } as MassOperationParameters,\n },\n ],\n params: {\n navigation: null,\n routeMode: null,\n view: null,\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: TimeOffRequestListComponent,\n },\n ],\n }),\n ],\n exports: [],\n})\nexport class TimeOffRequestsModule {}\n","import { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { BaseSettings } from 'src/app/shared/models/inner/base-settings.interface';\n\nexport class TimeOffScheduleSettings implements BaseSettings {\n public readonly name = 'TimeOffScheduleSettings';\n version: number;\n planningScale: PlanningScale;\n getDefault(): TimeOffScheduleSettings {\n return {\n version: 1,\n planningScale: PlanningScale.Day,\n } as TimeOffScheduleSettings;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TimeOffRequest } from 'src/app/shared/models/entities/base/time-off-request.model';\n\n@Component({\n selector: 'wp-time-off-info',\n templateUrl: './time-off-info.component.html',\n styleUrls: ['./time-off-info.component.scss'],\n standalone: false,\n})\nexport class TimeOffInfoComponent {\n public request: TimeOffRequest;\n\n @Input() set params(value: { request: TimeOffRequest }) {\n this.request = value.request;\n }\n}\n","
    \n

    \n {{ request.timeOffType.name }}\n

    \n

    \n \n

    \n

    \n {{ request.startDate | date: 'longDate' }} — {{\n request.finishDate | date: 'longDate'\n }}\n

    \n

    \n {{\n 'shared.timeOffRequest' | translate\n }}\n

    \n
    \n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TimeOffRequest } from 'src/app/shared/models/entities/base/time-off-request.model';\n\n@Injectable()\nexport class TimeOffInfoService {\n private openSubject = new Subject<{\n timeOffRequest: TimeOffRequest;\n containerId: string;\n }>();\n public open$ = this.openSubject.asObservable();\n\n public open(timeOffRequest: TimeOffRequest, containerId: string) {\n this.openSubject.next({\n containerId,\n timeOffRequest,\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { TimeOffScheduleFiltersService } from './time-off-schedule-filters/time-off-schedule-filters.service';\nimport { Dictionary, sortBy } from 'lodash';\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\n\n@Injectable()\nexport class TimeOffScheduleDataService implements OnDestroy {\n public leaveSchedules: any[] = [];\n public users: NamedEntity[] = [];\n\n private _loading = false;\n public get loading() {\n return this._loading;\n }\n public set loading(val) {\n this._loading = val;\n this.loadingSubject.next(val);\n }\n private loadingSubject = new BehaviorSubject(this.loading);\n public loading$ = this.loadingSubject.asObservable();\n\n public allIsLoaded = false;\n public page = 0;\n public pageSize = 50;\n public scrollSubscription: Subscription | null;\n\n private requestListener: Subscription;\n\n constructor(\n private data: DataService,\n private filterService: FilterService,\n private app: AppService,\n ) {}\n\n ngOnDestroy(): void {\n if (this.requestListener) {\n this.requestListener.unsubscribe();\n }\n }\n\n public getLabelClass(style: string): string {\n return `bg-${style}`;\n }\n\n public reload() {\n this.users = [];\n this.leaveSchedules = [];\n this.allIsLoaded = false;\n this.page = 0;\n }\n\n /** Загрузка расписания\n *\n * @param users пользователи, для которых загружаем расписание\n * @param interval интервал в котором загружаем расписание\n *\n * */\n public loadSchedule(users: NamedEntity[], interval) {\n const leaveSchedulePageParams: Dictionary = {\n userIds: '@userIds',\n from: interval.start.toISODate(),\n to: interval.end.toISODate(),\n };\n\n const query = {\n expand: [\n {\n leaveScheduleDays: {\n expand: {\n timeOffRequest: {\n expand: [\n { state: { select: ['id', 'name', 'code', 'style'] } },\n { timeOffType: { select: ['name', 'code'] } },\n ],\n select: ['id', 'name', 'startDate', 'finishDate'],\n },\n },\n },\n },\n ],\n };\n\n return this.data\n .collection('TimeOffRequests')\n .function('WP.GetLeaveSchedulePage')\n .query(leaveSchedulePageParams, query, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@userIds': JSON.stringify(users.map((user) => user.id)),\n })\n .pipe(\n map((data: any[]) => {\n const userIds = users.map((user) => user.id);\n return sortBy(data, (item) => userIds.indexOf(item.userId));\n }),\n map((data: any[]) => {\n data.forEach((leaveSchedule) => {\n (leaveSchedule.leaveScheduleDays as any[]).forEach(\n (leaveScheduleDay) => {\n leaveScheduleDay.id = Guid.generate();\n leaveScheduleDay.style = [];\n if (leaveScheduleDay.timeOffRequest) {\n leaveScheduleDay.style.push(\n this.getLabelClass(\n leaveScheduleDay.timeOffRequest.state.style,\n ),\n );\n leaveScheduleDay.style.push('active');\n leaveScheduleDay.code = (\n leaveScheduleDay.timeOffRequest.timeOffType.code as string\n )?.substring(0, 2);\n }\n\n if (leaveScheduleDay.nonWorking) {\n leaveScheduleDay.style.push('non-working');\n }\n },\n );\n });\n return data;\n }),\n );\n }\n\n /**\n * Загрузка фрейма\n *\n * @param direction с какой стороны загрузить фрейм\n * @param loadingInterval интервал для загрузки фрейма\n * */\n public loadFrame(direction: 'left' | 'right', loadingInterval) {\n return this.loadSchedule(this.users, loadingInterval).pipe(\n map((data) => {\n data.forEach((leaveSchedule) => {\n const createdLeaveSchedule = this.leaveSchedules.find(\n (schedule) => schedule.userId === leaveSchedule.userId,\n );\n\n if (direction === 'left') {\n createdLeaveSchedule.leaveScheduleDays = [\n ...leaveSchedule.leaveScheduleDays,\n ...createdLeaveSchedule.leaveScheduleDays,\n ];\n return;\n }\n\n createdLeaveSchedule.leaveScheduleDays = [\n ...createdLeaveSchedule.leaveScheduleDays,\n ...leaveSchedule.leaveScheduleDays,\n ];\n });\n }),\n );\n }\n\n /** Загрузка пользователей */\n public loadUsers(): Observable {\n const usersPageParams: Dictionary = {\n pageNumber: this.page,\n pageSize: this.pageSize,\n filter: '@filter',\n };\n const settings = this.filterService.values;\n const searchText = (\n this.filterService as TimeOffScheduleFiltersService\n ).formatTextValue(settings.text);\n\n const usersPageFilter = {\n searchText: searchText ? searchText : null,\n departmentId: settings.department?.value?.id ?? null,\n supervisorId: settings.onlySubordinates ? this.app.session.user.id : null,\n levelId: settings?.level?.id ?? null,\n locationId: settings?.location?.id ?? null,\n resourcePoolId: settings?.resourcePool?.id ?? null,\n includeSubordinateDepartments:\n settings.department?.includeSubordinates ?? false,\n };\n\n return this.data\n .collection('TimeOffRequests')\n .function('WP.GetLeaveScheduleUsersPage')\n .query(usersPageParams, null, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@filter': JSON.stringify(usersPageFilter),\n })\n .pipe(\n map((users: NamedEntity[]) => {\n this.allIsLoaded = users.length < this.pageSize;\n\n if (this.allIsLoaded) {\n this.scrollSubscription?.unsubscribe();\n this.scrollSubscription = null;\n }\n\n this.page++;\n return users;\n }),\n );\n }\n\n /** Загрузка текущей страницы: пользователи и расписание для них */\n public loadPage(interval) {\n this.loading = true;\n let loadedUsers = [];\n\n if (this.requestListener) {\n this.requestListener.unsubscribe();\n }\n\n this.requestListener = this.loadUsers()\n .pipe(\n mergeMap((users) => {\n loadedUsers = users;\n return this.loadSchedule(users, interval);\n }),\n )\n .subscribe((leaveSchedule) => {\n this.loading = false;\n this.users = [...this.users, ...loadedUsers];\n this.leaveSchedules = this.leaveSchedules.concat(leaveSchedule);\n });\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Component({\n selector: 'wp-time-off-schedule-filters',\n templateUrl: './time-off-schedule-filters.component.html',\n styleUrls: ['./time-off-schedule-filters.component.scss'],\n standalone: false,\n})\nexport class TimeOffScheduleFiltersComponent\n implements OnInit, OnDestroy, FilterDetails\n{\n @Input() values;\n\n public detailsForm = this.fb.group({\n department: null,\n onlySubordinates: false,\n level: null,\n location: null,\n resourcePool: null,\n });\n\n private destroyed$ = new Subject();\n\n constructor(\n private fb: UntypedFormBuilder,\n public service: FilterService,\n ) {}\n\n ngOnInit(): void {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n\n this.detailsForm.valueChanges\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n const values = Object.assign(this.service.values, value);\n\n this.service.changeValues(values);\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n}\n","
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n \n\n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { TimeOffScheduleFiltersComponent } from './time-off-schedule-filters.component';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\n\n@Injectable()\nexport class TimeOffScheduleFiltersService extends FilterService {\n public override component: Type =\n TimeOffScheduleFiltersComponent;\n\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override storageName = 'time-off-schedule';\n public override placeholder = 'team.timeOffSchedule.filters.text.placeholder';\n\n protected override getDefaultValues = (): any => ({\n department: null,\n onlySubordinates: false,\n level: null,\n location: null,\n resourcePool: null,\n text: '',\n });\n\n public formatTextValue(text: string): string | null {\n const clearText = this.getClearText(text);\n return clearText.length >= this.minStringLengthForFilter ? clearText : null;\n }\n}\n","import {\n Component,\n ElementRef,\n Injector,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ChromeService } from 'src/app/core/chrome.service';\nimport { TimeOffInfoService } from './time-off-info/time-off-info.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { TimeOffScheduleFiltersService } from './time-off-schedule-filters/time-off-schedule-filters.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { TimeOffScheduleSettings } from './shared/time-off-schedule-settings';\nimport { DateTime, DurationLike, Interval } from 'luxon';\nimport { TimeOffScheduleDataService } from './time-off-schedule-data.service';\nimport { TimeOffInfoComponent } from './time-off-info/time-off-info.component';\nimport { TimeOffCreationComponent } from 'src/app/time-off-requests/creation/time-off-creation.component';\nimport { VisibleParts } from 'src/app/shared-features/schedule-navigation/models/schedule-navigation-parts.enum';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport {\n Slot,\n SlotGroup,\n} from 'src/app/shared-features/schedule-navigation/models/slot.model';\nimport { LocalConfigService } from 'src/app/core/local-config.service';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { ScheduleNavigationService } from 'src/app/shared-features/schedule-navigation/core/schedule-navigation.service';\nimport { FreezeTableService } from 'src/app/shared/directives/freeze-table/freeze-table.service';\nimport { PlanningScale } from 'src/app/shared/models/enums/planning-scale.enum';\nimport { Title } from '@angular/platform-browser';\nimport { TranslateService } from '@ngx-translate/core';\n\n/** График отсутствий. */\n@Component({\n selector: 'wp-time-off-schedule',\n templateUrl: './time-off-schedule.component.html',\n styleUrls: ['./time-off-schedule.component.scss'],\n providers: [\n TimeOffScheduleDataService,\n TimeOffInfoService,\n { provide: FilterService, useClass: TimeOffScheduleFiltersService },\n ScheduleNavigationService,\n FreezeTableService,\n ],\n standalone: false,\n})\nexport class TimeOffScheduleComponent implements OnInit, OnDestroy {\n /** Видимые части scheduleNavigation компонента */\n public scheduleNavigationVisibleParts = [VisibleParts.calendar];\n /** Ширина левой части таблицы */\n public leftTableWidth = 265;\n /** Слоты таблицы */\n public slots: Slot[] = [];\n /** Группы таблицы */\n public slotGroups: SlotGroup[];\n /** Данные из ScheduleNavigation компонента */\n private settings: TimeOffScheduleSettings;\n /** Текущий интервал */\n private interval: Interval;\n /** Subject для отписки */\n private destroySubject = new Subject();\n\n constructor(\n public actionService: ActionPanelService,\n private modalService: NgbModal,\n private chrome: ChromeService,\n private localConfigService: LocalConfigService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private filterService: FilterService,\n private scheduleNavigationService: ScheduleNavigationService,\n private blockUI: BlockUIService,\n private freezeTableService: FreezeTableService,\n public dataService: TimeOffScheduleDataService,\n private titleService: Title,\n private translate: TranslateService,\n ) {}\n\n /**\n * Загрузка фрейма\n *\n * @param direction - сторона с которой загружается фрейм\n * */\n private loadFrame(direction: 'left' | 'right') {\n this.blockUI.start();\n\n let shift: DurationLike;\n\n switch (this.settings.planningScale) {\n case PlanningScale.Day:\n shift = { weeks: 2 };\n break;\n case PlanningScale.Week:\n shift = { weeks: 10 };\n break;\n case PlanningScale.Month:\n shift = { month: 5 };\n break;\n case PlanningScale.Quarter:\n shift = { year: 1 };\n break;\n case PlanningScale.Year:\n shift = { year: 2 };\n break;\n }\n\n let loadingInterval =\n direction === 'left'\n ? Interval.fromDateTimes(\n this.interval.start.minus(shift),\n this.interval.start.minus({ days: 1 }),\n )\n : Interval.fromDateTimes(\n this.interval.end.plus({ days: 1 }),\n this.interval.end.plus(shift),\n );\n\n this.interval =\n direction === 'left'\n ? this.interval.set({\n start: this.interval.start.minus(shift),\n })\n : this.interval.set({\n end: this.interval.end.plus(shift),\n });\n\n if (\n this.settings.planningScale === PlanningScale.Month &&\n direction === 'right'\n ) {\n loadingInterval = loadingInterval.set({\n end: loadingInterval.end.endOf('month'),\n });\n this.interval = this.interval.set({\n end: this.interval.end.endOf('month'),\n });\n }\n\n this.dataService.loadFrame(direction, loadingInterval).subscribe(() => {\n this.updateDates();\n this.blockUI.stop();\n setTimeout(() => {\n this.freezeTableService.disableMutationObserver();\n if (direction === 'left') {\n this.freezeTableService.scrollToLeft();\n } else {\n this.freezeTableService.scrollToRight();\n }\n setTimeout(() => {\n this.freezeTableService.enableMutationObserver();\n }, 500);\n }, 10);\n });\n }\n\n /**\n * Загрузка текущей страницы - пользователи и расписание\n *\n * */\n private loadPage() {\n if (this.dataService.allIsLoaded || this.dataService.loading) {\n return;\n }\n\n this.updateDates();\n this.dataService.loadPage(this.interval);\n }\n\n /** Обновляет слоты */\n private updateDates() {\n const slotInfo = this.scheduleNavigationService.getSlots(\n this.interval,\n this.settings.planningScale,\n );\n this.slots = slotInfo.slots;\n this.slotGroups = slotInfo.groups;\n }\n\n /** Обновляет ширину таблицы */\n public getDataTableWidth() {\n const slotWidth = this.getSlotWidth(this.settings.planningScale);\n return this.leftTableWidth + slotWidth * this.slots.length;\n }\n\n /** Функция для получения ширины слота\n *\n * @param scale - текущий scale\n * */\n public getSlotWidth(scale: PlanningScale): number {\n switch (scale) {\n case PlanningScale.Day:\n return 45;\n case PlanningScale.Week:\n return 55;\n case PlanningScale.Month:\n return 65;\n }\n }\n\n /** Открытие сведений о пользователей. */\n public openUserInfo(userId: string) {\n /* Привязка к элементу, у которого виден центр. По умолчанию span */\n const userNameDiv = document.getElementById(userId);\n const userNameDivWidth = userNameDiv.offsetWidth;\n\n const userNameSpan = document.getElementById(`${userId}-name`);\n const userNameSpanWidth = userNameSpan.offsetWidth;\n\n const target =\n userNameDivWidth < userNameSpanWidth ? userNameDiv : userNameSpan;\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Открытие сведений о дне. */\n public openInfo(day, target: ElementRef) {\n if (day.timeOffRequest) {\n this.infoPopupService.open({\n target,\n data: {\n component: TimeOffInfoComponent,\n params: {\n request: day.timeOffRequest,\n },\n injector: this.injector,\n },\n });\n }\n }\n\n public createTimeOffRequest() {\n this.modalService.open(TimeOffCreationComponent, {\n size: 'lg',\n });\n }\n\n /** Enables lazy-loading on scroll event. */\n public enableInfinityScroll(): void {\n this.dataService.scrollSubscription = this.chrome.setInfinityScroll(() =>\n this.loadPage(),\n );\n }\n\n public trackId = (index: number, item: any) => item.id;\n\n public reload(toDate?: DateTime) {\n this.settings = this.localConfigService.getConfig(TimeOffScheduleSettings);\n this.dataService.reload();\n this.interval = this.scheduleNavigationService.getInterval(\n this.settings.planningScale,\n toDate,\n );\n this.loadPage();\n\n if (!this.dataService.scrollSubscription) {\n this.enableInfinityScroll();\n }\n }\n\n ngOnInit(): void {\n const pageTitle = this.translate.instant(\n 'team.navigation.timeOff.schedule.header',\n );\n this.titleService.setTitle(pageTitle);\n\n this.actionService.reload$\n .pipe(takeUntil(this.destroySubject))\n .subscribe(() => this.reload());\n\n this.filterService.values$\n .pipe(takeUntil(this.destroySubject))\n .subscribe(() => {\n this.reload();\n });\n\n this.scheduleNavigationService.previous$\n .pipe(takeUntil(this.destroySubject))\n .subscribe(() => {\n this.loadFrame('left');\n });\n this.scheduleNavigationService.next$\n .pipe(takeUntil(this.destroySubject))\n .subscribe(() => {\n this.loadFrame('right');\n });\n this.scheduleNavigationService.jump$\n .pipe(takeUntil(this.destroySubject))\n .subscribe((date) => {\n this.reload(date);\n });\n\n this.reload();\n\n this.actionService.set([\n {\n title: 'team.timeOffSchedule.actions.addTimeOff.label',\n hint: 'team.timeOffSchedule.actions.addTimeOff.hint',\n name: 'addTimeOff',\n iconClass: 'bi bi-plus-lg bi-15',\n isDropDown: false,\n isBusy: false,\n isVisible: true,\n handler: () => this.createTimeOffRequest(),\n },\n ]);\n }\n\n ngOnDestroy(): void {\n this.destroySubject.next();\n }\n}\n","\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n \n {{ 'team.timeOffSchedule.user' | translate }}\n \n \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
    \n {{ 'shared.noDisplayData' | translate }}\n
    \n \n
    \n \n {{ user.name }}\n \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n \n \n \n {{ group.header }}\n \n \n \n \n {{ slot.header }}\n \n \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n {{ day.code }}\n \n \n \n
    \n
    \n\n
    \n
    \n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { SharedFeaturesModule } from '../shared-features/shared-features.module';\nimport { ScheduleNavigationModule } from '../shared-features/schedule-navigation/schedule-navigation.module';\nimport { TimeOffScheduleComponent } from 'src/app/time-off-schedule/time-off-schedule.component';\nimport { TimeOffInfoComponent } from 'src/app/time-off-schedule/time-off-info/time-off-info.component';\nimport { TimeOffScheduleFiltersComponent } from 'src/app/time-off-schedule/time-off-schedule-filters/time-off-schedule-filters.component';\n\n@NgModule({\n declarations: [\n TimeOffScheduleComponent,\n TimeOffInfoComponent,\n TimeOffScheduleFiltersComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n SharedFeaturesModule,\n UIRouterModule.forChild({\n states: [\n {\n name: 'timeOffSchedule',\n params: {\n navigation: 'team.timeOffSchedule',\n },\n url: '/time-off/schedule?{route}&{navigation}',\n component: TimeOffScheduleComponent,\n },\n ],\n }),\n ScheduleNavigationModule,\n ],\n})\nexport class TimeOffScheduleModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, shareReplay, switchMap } from 'rxjs';\n\nimport { DataService } from 'src/app/core/data.service';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\n\nimport { ProjectTariff } from 'src/app/projects/card/project-tariffs/models/project-tariff.model';\nimport { ProjectCostCenter } from 'src/app/projects/card/project-cost-centers/models/project-cost-center.model';\nimport { TimesheetProjectTask } from 'src/app/shared/components/controls/timesheet-task/timesheet-project-task.model';\nimport { TimesheetProject } from 'src/app/shared/components/controls/timesheet-task/timesheet-project.model';\n\n/** Service for timesheet caching. */\n@Injectable()\nexport class TimeSheetCacheService {\n private activitiesCache: Record<\n string, // Key is userId\n Observable\n > = {};\n private organizationsCache: Record<\n string, // Key is timesheetTemplateId.\n Observable\n > = {};\n private projectsCache: Record<\n string, // Key is timesheetTemplateId + organizationId.\n Observable\n > = {};\n private projectTasksCache: Record<\n string, // Key is timesheetTemplateId + projectId.\n Observable\n > = {};\n private projectTariffsCache: Record<\n string, // Key is timesheetTemplateId + projectId.\n Observable\n > = {};\n private projectCostCenterCache: Record<\n string, // Key is projectId.\n Observable\n > = {};\n private rolesCache: Record<\n string, // Key is projectId\n Observable\n > = {};\n private billCodesCache: Observable;\n\n constructor(private dataService: DataService) {}\n\n /**\n * Gets activities from server or cache.\n *\n * @param projectId user's id.\n * @returns An Observable of the requested activities.\n */\n public getActivities(userId: string): Observable {\n if (this.activitiesCache[userId]) {\n return this.activitiesCache[userId];\n }\n\n this.activitiesCache[userId] = this.dataService\n .collection('Users')\n .entity(userId)\n .get({\n select: 'restrictActivities',\n expand: {\n activities: {\n orderBy: 'activity/name',\n expand: {\n activity: {\n select: ['name', 'id'],\n filter: { isActive: true },\n },\n },\n },\n },\n })\n .pipe(\n switchMap((values) =>\n values.activities.length\n ? of(values.activities.map((el) => el.activity))\n : this.dataService.collection('Activities').query({\n select: ['id', 'name'],\n filter: {\n isActive: true,\n },\n orderBy: 'name',\n }),\n ),\n shareReplay(1),\n );\n\n return this.activitiesCache[userId];\n }\n\n /**\n * Retrieves organizations by its ID from the cache or requests it from the server if not cached.\n *\n * @param timesheetId The ID of the timesheet to retrieve organizations.\n * @returns An Observable of the requested organizations.\n */\n public getOrganizations(\n userId: string,\n timesheetTemplateId: string,\n ): Observable {\n if (this.organizationsCache[timesheetTemplateId]) {\n return this.organizationsCache[timesheetTemplateId];\n }\n\n this.organizationsCache[timesheetTemplateId] = this.dataService.model\n .function('GetTimeTrackingOrganizations')\n .get(\n {\n userId,\n timesheetTemplateId,\n },\n { orderBy: 'name' },\n )\n .pipe(shareReplay(1));\n\n return this.organizationsCache[timesheetTemplateId];\n }\n\n /**\n * Retrieves projects by its ID from the cache or requests it from the server if not cached.\n *\n * @param timesheetId The ID of the timesheet to retrieve projects.\n * @param organizationId The ID of the organization to retrieve projects.\n * @returns An Observable of the requested projects.\n */\n public getProjects(\n userId: string,\n timesheetTemplateId: string,\n organizationId: string | null | undefined,\n ): Observable {\n const key =\n timesheetTemplateId +\n (organizationId === undefined\n ? 'any'\n : organizationId === null\n ? 'null'\n : organizationId);\n\n if (this.projectsCache[key]) {\n return this.projectsCache[key];\n }\n\n const params: Record = {\n userId,\n };\n\n if (organizationId !== undefined) {\n params['organizationId'] = organizationId;\n }\n\n if (timesheetTemplateId) {\n params['timesheetTemplateId'] = timesheetTemplateId;\n }\n\n this.projectsCache[key] = this.dataService.model\n .function('GetTimeTrackingProjects')\n .get(params, { orderBy: 'name' })\n .pipe(shareReplay(1));\n\n return this.projectsCache[key];\n }\n\n /**\n * Retrieves tasks by its ID from the cache or requests it from the server if not cached.\n *\n * @param timesheetId The ID of the timesheet to retrieve tasks.\n * @param projectId The ID of the project to retrieve tasks.\n * @returns An Observable of the requested tasks.\n */\n public getProjectTasks(\n userId: string,\n timesheetTemplateId: string,\n projectId: string,\n ): Observable {\n if (this.projectTasksCache[timesheetTemplateId + projectId]) {\n return this.projectTasksCache[timesheetTemplateId + projectId];\n }\n\n this.projectTasksCache[timesheetTemplateId + projectId] =\n this.dataService.model\n .function('GetTimeTrackingProjectTasks')\n .get(\n {\n userId,\n projectId,\n timesheetTemplateId,\n },\n { orderBy: 'name' },\n )\n .pipe(shareReplay(1));\n\n return this.projectTasksCache[timesheetTemplateId + projectId];\n }\n\n /**\n * Gets project tariffs from server or cache.\n *\n * @param projectId project's id.\n * @returns An Observable of the requested project tariffs.\n */\n public getProjectTariffs(\n userId: string,\n projectId: string,\n ): Observable {\n if (this.projectTariffsCache[projectId]) {\n return this.projectTariffsCache[projectId];\n }\n\n this.projectTariffsCache[projectId] = this.dataService\n .collection('Projects')\n .entity(projectId)\n .function('GetUserTariffs')\n .get({ userId }, { orderBy: 'name' })\n .pipe(shareReplay(1));\n\n return this.projectTariffsCache[projectId];\n }\n\n /**\n * Gets project cost centers from server or cache.\n *\n * @param projectId project's id.\n * @returns An Observable of the requested project cost centers.\n */\n public getProjectCostCenters(\n userId: string,\n projectId: string,\n ): Observable {\n if (this.projectCostCenterCache[projectId]) {\n return this.projectCostCenterCache[projectId];\n }\n\n this.projectCostCenterCache[projectId] = this.dataService\n .collection('Projects')\n .entity(projectId)\n .function('GetUserCostCenters')\n .get({ userId }, { orderBy: 'name' })\n .pipe(shareReplay(1));\n\n return this.projectCostCenterCache[projectId];\n }\n\n /**\n * Gets roles from server or cache.\n *\n * @param projectId project's id.\n * @returns An Observable of the requested roles.\n */\n public getRoles(\n userId: string,\n projectId: string,\n ): Observable {\n if (this.rolesCache[projectId]) {\n return this.rolesCache[projectId];\n }\n\n this.rolesCache[projectId] = this.dataService\n .collection('Projects')\n .entity(projectId)\n .function('GetUserRoles')\n .get({ userId }, { orderBy: 'name' })\n .pipe(shareReplay(1));\n\n return this.rolesCache[projectId];\n }\n\n /**\n * Gets bill codes from server or cache.\n *\n * @returns An Observable of the bill codes.\n */\n public getBillCodes(): Observable {\n if (this.billCodesCache) {\n return this.billCodesCache;\n }\n\n this.billCodesCache = this.dataService\n .collection('BillCodes')\n .query({\n select: ['id', 'name', 'isDefault'],\n filter: {\n isActive: true,\n },\n orderBy: 'name',\n })\n .pipe(shareReplay(1));\n\n return this.billCodesCache;\n }\n}\n","import { DestroyRef, inject, Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, forkJoin, Observable, of, Subject } from 'rxjs';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport {\n TimeAllocation,\n Timesheet,\n TimeSheetIssue,\n TimesheetLine,\n} from 'src/app/shared/models/entities/base/timesheet.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n catchError,\n debounceTime,\n filter,\n first,\n map,\n pairwise,\n startWith,\n tap,\n} from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AppService } from 'src/app/core/app.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TimeOffCreationComponent } from 'src/app/time-off-requests/creation/time-off-creation.component';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { TimesheetTask } from 'src/app/timesheets/card/shared/models/task.model';\nimport { StateService, UIRouterGlobals } from '@uirouter/angular';\nimport {\n EntityFilter,\n NavigationService,\n} from 'src/app/core/navigation.service';\nimport { HeaderIndicator } from 'src/app/shared/components/chrome/form-header2/header-indicator.model';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport {\n FormArray,\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { Issue } from 'src/app/issues/models/issue.model';\nimport _ from 'lodash';\nimport { ProjectBillingType } from 'src/app/shared/models/enums/project-billing-type';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { DateTime } from 'luxon';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport {\n RequestBag,\n WebSocketHotChangesService,\n} from 'src/app/core/hot-changes';\n\n@Injectable()\nexport class TimesheetCardService {\n private timesheetSubject = new BehaviorSubject(null);\n public timesheet$ = this.timesheetSubject\n .asObservable()\n .pipe(filter((p) => !!p));\n private linesUpdatedSubject = new Subject();\n public linesUpdated$ = this.linesUpdatedSubject.pipe();\n private indicatorsSubject = new BehaviorSubject([]);\n public indicators$ = this.indicatorsSubject.asObservable();\n\n public name$ = new Subject();\n public selectAllControl = new UntypedFormControl(false);\n public selectControls = new UntypedFormArray([]);\n public issueLines = new FormArray([]);\n public dataLines = this.fb.array([]);\n public state$ = new BehaviorSubject(CardState.Loading);\n public collection = this.data.collection('TimeSheets');\n public timeSheetLineCollection = this.data.collection('TimeSheetLines');\n public timeEntryCollection = this.data.collection('TimeAllocations');\n public allocationCustomFields: MetaEntityBaseProperty[];\n public lineCustomFields: MetaEntityBaseProperty[];\n public timesheetLinesStorageName = 'timesheetLines';\n public readonly lineAnalytics: Array = [\n 'project',\n 'projectTask',\n 'activity',\n 'role',\n 'projectCostCenter',\n 'projectTariff',\n 'billCode',\n ];\n\n private destroyRef = inject(DestroyRef);\n\n public get timesheet(): Timesheet {\n return this.timesheetSubject.getValue();\n }\n\n constructor(\n public autosave: SavingQueueService,\n @Inject('entityId') private entityId: string,\n private app: AppService,\n private translate: TranslateService,\n private data: DataService,\n private notification: NotificationService,\n private blockUI: BlockUIService,\n private modalService: NgbModal,\n private customFieldService: CustomFieldService,\n private state: StateService,\n private navigation: NavigationService,\n private lifecycleService: LifecycleService,\n private uiRouterGlobals: UIRouterGlobals,\n private timeSheetCacheService: TimeSheetCacheService,\n private infoPopupService: InfoPopupService,\n private fb: UntypedFormBuilder,\n private webSocketHotChangesService: WebSocketHotChangesService,\n stopwatchService: StopwatchService,\n ) {\n stopwatchService.externalUpdate$\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this.load();\n });\n\n stopwatchService.stop$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load(true);\n });\n\n this.load();\n\n this.autosave.save$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.dataLines.markAsPristine());\n this.autosave.error$\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.load());\n\n this.webSocketHotChangesService.changes$\n .pipe(takeUntilDestroyed())\n .subscribe(\n (\n changes: RequestBag<{\n timeSheetLine: TimesheetLine;\n timeAllocation: TimeAllocation;\n }>,\n ) => {\n this.resolveIndirectUpdates(changes);\n },\n );\n }\n\n /** Загрузка таймшита. */\n public load(silent = false): Promise {\n return new Promise((resolve) => {\n this.infoPopupService.close();\n this.autosave.save().then(() => {\n if (!silent) {\n this.state$.next(CardState.Loading);\n } else {\n this.blockUI.start();\n }\n\n const query = {\n expand: {\n template: {\n select: [\n 'showActivity',\n 'showRole',\n 'showClient',\n 'showProjectCostCenter',\n 'showTariff',\n 'showBillCode',\n ],\n expand: { customFields: { select: ['customFieldId'] } },\n },\n user: { select: ['id', 'name'] },\n legalEntity: { select: ['id', 'name'] },\n state: { select: ['id', 'name', 'code'] },\n timeSheetLines: {\n select: ['id', 'date', 'orderNumber', 'rowVersion'],\n expand: {\n project: {\n select: ['id', 'name'],\n expand: {\n billingType: { select: ['code'] },\n organization: { select: ['id', 'name'] },\n },\n },\n projectTask: { select: ['id', 'name', 'leadTaskId'] },\n projectCostCenter: { select: ['id', 'name'] },\n projectTariff: { select: ['id', 'name'] },\n billCode: { select: ['id', 'name'] },\n activity: { select: ['id', 'name'] },\n role: { select: ['id', 'name'] },\n timeAllocations: {\n orderBy: 'date',\n select: [\n 'id',\n 'hours',\n 'description',\n 'date',\n 'rowVersion',\n 'isBillable',\n ],\n },\n },\n orderBy: 'orderNumber',\n },\n timeOffRequests: {\n select: ['id'],\n expand: {\n state: { select: ['id', 'name', 'code', 'style'] },\n timeOffType: { select: ['id', 'name'] },\n timeAllocations: { orderBy: 'date' },\n },\n },\n issues: {\n select: ['id', 'code', 'name'],\n expand: {\n state: { select: ['id', 'name', 'code', 'style'] },\n type: { select: ['id', 'name'] },\n timeAllocations: {\n select: [\n 'id',\n 'hours',\n 'description',\n 'date',\n 'rowVersion',\n 'roleId',\n 'activityId',\n 'billCodeId',\n 'projectId',\n 'projectTaskId',\n 'projectCostCenterId',\n 'projectTariffId',\n 'isBillable',\n 'issueId',\n ],\n expand: {\n role: { select: ['id', 'name'] },\n activity: { select: ['id', 'name'] },\n billCode: { select: ['id', 'name'] },\n project: {\n select: ['id', 'name'],\n expand: {\n billingType: { select: ['code'] },\n organization: { select: ['id', 'name'] },\n },\n },\n projectTask: { select: ['id', 'name', 'leadTaskId'] },\n projectCostCenter: { select: ['id', 'name'] },\n projectTariff: { select: ['id', 'name'] },\n },\n },\n },\n },\n },\n };\n\n this.customFieldService.enrichQuery(\n query.expand.timeSheetLines.expand.timeAllocations,\n 'TimeAllocation',\n );\n this.customFieldService.enrichQuery(\n query.expand.issues.expand.timeAllocations,\n 'TimeAllocation',\n );\n this.customFieldService.enrichQuery(\n query.expand.timeSheetLines,\n 'TimeSheetLine',\n );\n\n const observable = this.collection\n .entity(this.entityId)\n .get(query);\n\n observable.subscribe({\n next: (timesheet: Timesheet) => {\n this.timesheetSubject.next(timesheet);\n this.lifecycleService.entityId = timesheet.id;\n\n this.fillCustomFieldsOut();\n\n const name =\n this.uiRouterGlobals.current.name === 'currentTimesheet'\n ? this.translate.instant('timesheets.current')\n : timesheet.name;\n this.name$.next(name);\n\n if (this.uiRouterGlobals.current.name !== 'currentTimesheet') {\n this.navigation.addRouteSegment({\n id: timesheet.id,\n title: timesheet.name,\n });\n }\n\n this.blockUI.stop();\n this.state$.next(CardState.Ready);\n resolve();\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n this.blockUI.stop();\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n });\n });\n }\n\n /** Opens `TimeOffRequest` creation modal. */\n public createTimeOffRequest(): void {\n this.modalService.open(TimeOffCreationComponent, {\n size: 'lg',\n });\n }\n\n public copyLines(withHours?: boolean) {\n this.autosave.save().then(() => {\n this.blockUI.start();\n\n this.collection\n .entity(this.timesheet.id)\n .action('WP.CopyLinesFromPrevious')\n .execute({ copyHours: withHours })\n .subscribe({\n next: (response: number) => {\n if (response === 0) {\n this.notification.warningLocal(\n 'timesheets.card.messages.linesNotAdded',\n );\n } else {\n this.notification.successLocal(\n 'timesheets.card.messages.linesAdded',\n { count: response },\n );\n this.load();\n }\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n });\n }\n\n public createLinesFromResourcePlan(withHours?: boolean) {\n this.autosave.save().then(() => {\n this.blockUI.start();\n\n this.collection\n .entity(this.timesheet.id)\n .action('WP.CreateLinesFromResourcePlan')\n .execute({ copyHours: withHours })\n .subscribe({\n next: (response: number) => {\n if (response === 0) {\n this.notification.warningLocal(\n 'timesheets.card.messages.linesNotAdded',\n );\n } else {\n this.notification.successLocal(\n 'timesheets.card.messages.linesAdded',\n { count: response },\n );\n this.load();\n }\n this.blockUI.stop();\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.notification.error(error.message);\n },\n });\n });\n }\n\n /**\n * Navigates to Timesheet Accounting entries.\n * */\n public goToAccountingEntry(): void {\n this.state.go(`accountingEntries`, {\n routeMode: RouteMode.continue,\n filter: JSON.stringify({\n name: this.timesheet.name,\n filter: [{ documentId: { type: 'guid', value: this.timesheet.id } }],\n }),\n });\n }\n\n /** Emits `linesUpdatedSubject`. Use it if you need to update the UI that depends on the lines data. */\n public emitLinesUpdated(): void {\n this.linesUpdatedSubject.next();\n }\n\n /** Проверяет возможность добавления строки ТШ с указанной задачей. */\n public checkIfTaskCanBeUsed(task: TimesheetTask): Observable {\n return this.timeSheetCacheService\n .getProjectTasks(\n this.timesheet.user.id,\n this.timesheet.templateId,\n task.project.id,\n )\n .pipe(map((result) => result.some((v) => v.id === task.projectTask.id)));\n }\n\n /**\n * Fills line with properties if they can be added after paste.\n *\n * @param newLine updated line.\n * @param lineData old line.\n * @returns `false` if error occurred, otherwise `true`.\n *\n */\n public checkAndFillTimeSheetLine(\n newLine: Partial,\n lineData: Partial,\n ): Observable {\n return forkJoin([\n lineData.role\n ? this.timeSheetCacheService\n .getRoles(this.timesheet.user.id, lineData.task.project.id)\n .pipe(first())\n : of(null),\n lineData.activity\n ? this.timeSheetCacheService\n .getActivities(this.timesheet.user.id)\n .pipe(first())\n : of(null),\n lineData.projectCostCenter\n ? this.timeSheetCacheService\n .getProjectCostCenters(\n this.timesheet.user.id,\n lineData.task.project.id,\n )\n .pipe(first())\n : of(null),\n lineData.projectTariff\n ? this.timeSheetCacheService\n .getProjectTariffs(this.timesheet.user.id, lineData.task.project.id)\n .pipe(first())\n : of(null),\n lineData.billCode\n ? this.timeSheetCacheService.getBillCodes().pipe(first())\n : of(null),\n ]).pipe(\n tap(\n ([\n roles,\n activities,\n projectCostCenters,\n projectTariffs,\n billCodes,\n ]) => {\n if (roles?.length && roles.find((a) => a.id === lineData.role.id)) {\n newLine.role = lineData.role;\n }\n\n if (\n activities?.length &&\n activities.find((a) => a.id === lineData.activity.id)\n ) {\n newLine.activity = lineData.activity;\n }\n\n if (\n projectCostCenters?.length &&\n projectCostCenters.find(\n (a) => a.id === lineData.projectCostCenter.id,\n )\n ) {\n newLine.projectCostCenter = lineData.projectCostCenter;\n }\n\n if (\n projectTariffs?.length &&\n projectTariffs.find((a) => a.id === lineData.projectTariff.id)\n ) {\n newLine.projectTariff = lineData.projectTariff;\n }\n\n if (\n billCodes?.length &&\n billCodes.find((a) => a.id === lineData.billCode.id)\n ) {\n newLine.billCode = lineData.billCode;\n }\n },\n ),\n map(() => true),\n catchError((error: Exception) => {\n this.notification.errorLocal(error.message);\n return of(false);\n }),\n );\n }\n\n /** Update indicators. */\n public updateIndicators(headerIndicators: HeaderIndicator[]) {\n this.indicatorsSubject.next(headerIndicators);\n }\n\n /**\n * Prepares line to save.\n *\n * @param line form group values of line.\n * @param index actual index of line.\n * @returns Timesheet line.\n */\n public getTimesheetLineToSave(\n line: any,\n index: number,\n ): Partial {\n const timeSheetLine: Partial = {\n id: line.id,\n projectId: line.task.project?.id ?? null,\n projectTaskId: line.task.projectTask?.id ?? null,\n billCodeId: line.billCode?.id ?? null,\n activityId: line.activity?.id ?? null,\n roleId: line.role?.id ?? null,\n projectCostCenterId: line.projectCostCenter?.id ?? null,\n projectTariffId: line.projectTariff?.id ?? null,\n orderNumber: index,\n rowVersion: line.rowVersion,\n };\n\n this.customFieldService.assignValues(timeSheetLine, line, 'TimeSheetLine');\n\n return timeSheetLine;\n }\n\n /**\n * Prepares time entry to save.\n *\n * @param allocation form group value of time entry.\n * @param timeSheetLineId line id of time entry.\n * @returns Time allocation.\n */\n public getAllocationToSave(\n allocation: any,\n timeSheetLineId: string,\n ): Partial {\n const newAllocation: Partial = {\n id: allocation.id,\n timeSheetLineId,\n timeSheetId: this.timesheet.id,\n userId: this.app.session.user.id,\n rowVersion: allocation.rowVersion,\n description: allocation.description,\n date: allocation.date,\n hours: allocation.hours,\n };\n\n this.customFieldService.assignValues(\n newAllocation,\n allocation,\n 'TimeAllocation',\n );\n\n return newAllocation;\n }\n\n /**\n * Checks is allocation has properties to save.\n *\n * @param allocation time entry.\n * @returns true if properties are found, otherwise false.\n */\n public isAllocationFilledOut(allocation: TimeAllocation): boolean {\n return (\n allocation.description?.length > 0 ||\n allocation.hours > 0 ||\n this.allocationCustomFields.some((field) => {\n const key =\n field.type === MetaEntityPropertyType.directory\n ? (field as MetaEntityDirectoryProperty).keyProperty\n : field.name;\n return allocation[key] !== null && allocation[key] !== undefined;\n })\n );\n }\n\n /**\n * Add line.\n *\n * @param emitEvent Indicates whether to emit event in the array control. @default `true`.\n * @returns the line form group.\n */\n public addLine(emitEvent = true): UntypedFormGroup {\n this.selectControls.push(new UntypedFormControl(false));\n\n const group = this.buildGroup();\n\n this.customFieldService.enrichFormGroup(group, 'TimeSheetLine');\n this.subscribeDataLineGroup(group);\n this.fillOutAllocationsGroup(group);\n\n this.dataLines.push(group, { emitEvent });\n\n return group;\n }\n\n /**\n * Updates the allocation.\n *\n * @param lineId line id of the allocation.\n * @param allocationId allocation id.\n * @param updatedAllocation new allocation's data.\n * @param emitEvent Indicates whether to emit event in the control. @default `true`.\n */\n public patchAllocation(\n lineId: string,\n allocationId: string,\n updatedAllocation: Partial,\n emitEvent = true,\n ): void {\n const lineForm = this.getLine(lineId);\n\n if (lineForm) {\n const allocationForm = (\n lineForm.controls.allocations as UntypedFormArray\n ).controls.find(\n (allocation) => allocation.getRawValue().id === allocationId,\n );\n\n allocationForm?.patchValue(\n {\n ...allocationForm.getRawValue(),\n ...updatedAllocation,\n },\n { emitEvent },\n );\n }\n }\n\n /**\n * Updates the issue time allocation in the timesheet, then re-renders work log UI.\n * If `projectId`, `projectTaskId` or `date` are updated, then reloads the `timesheet`.\n *\n * @param updatedAllocation updated time entry.\n * @param isRemoved Indicates whether the time entry was deleted.\n */\n public async updateIssueAllocation(\n updatedAllocation: Partial | null,\n isRemoved: boolean,\n ): Promise {\n let issue: TimeSheetIssue;\n let issueAllocationIndex = -1;\n\n if (updatedAllocation.issueId) {\n issue = this.timesheet.issues.find(\n (issue) => issue.id === updatedAllocation.issueId,\n );\n issueAllocationIndex = issue?.timeAllocations.findIndex(\n (allocation) => allocation.id === updatedAllocation.id,\n );\n } else {\n for (const item of this.timesheet.issues) {\n issueAllocationIndex = item.timeAllocations.findIndex(\n (allocation) => allocation.id === updatedAllocation.id,\n );\n\n if (issueAllocationIndex > -1) {\n issue = item;\n break;\n }\n }\n }\n\n if (issueAllocationIndex === -1) {\n return;\n }\n\n if (isRemoved) {\n issue.timeAllocations.splice(issueAllocationIndex, 1);\n } else {\n const requestTriggerFields: Array = [\n 'projectId',\n 'projectTaskId',\n 'date',\n ];\n const issueAllocation = issue.timeAllocations[issueAllocationIndex];\n\n for (const field of requestTriggerFields) {\n if (issueAllocation[field] !== updatedAllocation[field]) {\n this.load(true);\n return;\n }\n }\n\n Object.assign(issueAllocation, updatedAllocation);\n }\n\n this.fillOutIssueDataLines();\n this.emitLinesUpdated();\n }\n\n /**\n * Updates timesheet lines & time allocations.\n *\n * @param updates new data.\n */\n public resolveIndirectUpdates(\n changes: RequestBag<{\n timeSheetLine: TimesheetLine;\n timeAllocation: TimeAllocation;\n }>,\n ): void {\n // Timesheet lines update\n changes.added?.timeSheetLine?.forEach((newLine) => {\n const group = this.getLineIndex(newLine.id);\n\n if (group === -1) {\n const line = this.addLine(false);\n this.patchLine(line, newLine, false);\n this.emitLinesUpdated();\n }\n });\n\n changes.deleted?.timeSheetLine?.forEach((deletedLineId) => {\n const index = this.getLineIndex(deletedLineId);\n\n if (index > -1) {\n this.dataLines.removeAt(index);\n this.selectControls.removeAt(index);\n }\n });\n\n changes.updated?.timeSheetLine?.forEach((line: Partial) => {\n const group = this.getLine(line.id);\n\n if (group) {\n this.patchLine(group, line, false);\n\n if (line.orderNumber !== group.getRawValue().orderNumber) {\n group.patchValue(line, { emitEvent: false });\n this.dataLines.controls = this.dataLines.controls.toSorted(\n (a, b) => a.getRawValue().orderNumber - b.getRawValue().orderNumber,\n );\n }\n\n this.emitLinesUpdated();\n }\n });\n\n // Timesheet allocation update\n changes.added?.timeAllocation?.forEach((timeAllocation) => {\n const line = this.getLine(timeAllocation.timeSheetLineId);\n\n if (line) {\n timeAllocation.date = DateTime.fromISO(timeAllocation.date).toISODate();\n (line.controls.allocations as UntypedFormArray).controls\n .find(\n (v) =>\n v.getRawValue().date ===\n DateTime.fromISO(timeAllocation.date).toISODate(),\n )\n ?.patchValue(timeAllocation, { emitEvent: false });\n\n this.calculateGroupTotal(line);\n }\n });\n\n if (\n changes.updated?.timeAllocation?.length ||\n changes.deleted?.timeAllocation?.length\n ) {\n this.dataLines.controls.forEach((lineGroup: UntypedFormGroup) => {\n const allocationFormArray = lineGroup.controls\n .allocations as UntypedFormArray;\n\n changes.updated?.timeAllocation?.forEach(\n (timeAllocation: Partial) => {\n const allocationControl = allocationFormArray.controls.find(\n (control: UntypedFormControl) =>\n control.getRawValue().id === timeAllocation.id,\n );\n\n if (allocationControl) {\n allocationControl.patchValue(\n {\n ...allocationControl.getRawValue(),\n ...timeAllocation,\n },\n {\n emitEvent: false,\n },\n );\n } else {\n this.updateIssueAllocation(timeAllocation, false);\n }\n },\n );\n\n changes.deleted?.timeAllocation?.forEach((deletedTimeAllocationId) => {\n const allocationControl = allocationFormArray.controls.find(\n (control: UntypedFormControl) =>\n control.getRawValue().id === deletedTimeAllocationId,\n );\n\n if (allocationControl) {\n allocationControl.setValue(\n {\n id: Guid.generate(),\n date: allocationControl.getRawValue().date,\n hours: null,\n description: '',\n rowVersion: 0,\n },\n { emitEvent: false },\n );\n } else {\n this.updateIssueAllocation({ id: deletedTimeAllocationId }, true);\n }\n });\n\n this.calculateGroupTotal(lineGroup);\n });\n }\n\n this.emitLinesUpdated();\n }\n\n /** Fills FormArray with timesheet data. */\n public fillOutDataLines() {\n this.autosave.disabled = true;\n\n this.dataLines.clear();\n\n // Заполнить строки данных.\n this.timesheet.timeSheetLines.forEach((line) => {\n const group = this.buildGroup({\n ...line,\n task: {\n client: line.project?.organization,\n project: line.project\n ? {\n id: line.project?.id,\n name: line.project?.name,\n }\n : null,\n projectTask: line.projectTask,\n isMainTask: line.projectTask && !line.projectTask.leadTaskId,\n billingTypeCode: line.project?.billingType.code,\n },\n });\n\n this.customFieldService.enrichFormGroup(group, 'TimeSheetLine');\n this.lineCustomFields.forEach((field) => {\n group.controls[field.name].setValue(line[field.name], {\n emitEvent: false,\n });\n });\n\n this.subscribeDataLineGroup(group);\n this.fillOutAllocationsGroup(group, line);\n this.calculateGroupTotal(group);\n this.dataLines.push(group);\n });\n\n this.selectControls.clear();\n this.dataLines.controls.forEach(() =>\n this.selectControls.push(new UntypedFormControl(false)),\n );\n\n this.emitLinesUpdated();\n this.autosave.disabled = false;\n }\n\n /** Fills issue FormArray with timesheet data. */\n public fillOutIssueDataLines(): void {\n this.issueLines.clear({ emitEvent: false });\n\n const timeAllocations = this.timesheet.issues.reduce((entries, entry) => {\n entry.timeAllocations.forEach((timeEntry) => {\n timeEntry.issue = {\n id: entry.id,\n name: entry.name,\n } as Issue;\n });\n return entries.concat(entry.timeAllocations);\n }, []);\n // Group allocation by pseudo timesheet line.\n const timeAllocationsByLine = _.groupBy(\n timeAllocations,\n (item) =>\n this.lineAnalytics\n .map((key) => `${key}Id`)\n .reduce((result, value) => result + item[value] + ' ', ''),\n );\n\n Object.entries(timeAllocationsByLine).forEach(([lineKey, timeEntries]) => {\n const entriesByDate = _.groupBy(timeEntries, 'date');\n const line: Partial = {\n id: lineKey,\n timeSheetId: this.timesheet.id,\n timeAllocations: [],\n allTimeAllocations: timeEntries,\n };\n\n Object.entries(entriesByDate).forEach(([date, groupedTimeEntries]) => {\n line.timeAllocations.push({\n ...groupedTimeEntries[0],\n date,\n hours: _.sumBy(groupedTimeEntries, (v) => v.hours),\n });\n });\n\n this.lineAnalytics.forEach((key) => {\n _.set(line, key, timeEntries[0][key] ?? null);\n _.set(line, `${key}Id`, timeEntries[0][`${key}Id`]);\n });\n\n const group = this.buildGroup({\n ...line,\n task: {\n client: line.project?.organization,\n project: line.project\n ? {\n id: line.project?.id,\n name: line.project?.name,\n }\n : null,\n projectTask: line.projectTask,\n isMainTask: line.projectTask && !line.projectTask.leadTaskId,\n billingTypeCode: line.project?.billingType?.code,\n },\n });\n\n this.fillOutAllocationsGroup(group, line);\n this.calculateGroupTotal(group);\n group.disable({ emitEvent: false });\n this.issueLines.push(group, { emitEvent: false });\n });\n }\n\n /**\n * Gets line by id.\n *\n * @param lineId the line id.\n * @returns Line form group or `null.\n */\n public getLine(lineId: string): UntypedFormGroup | null {\n const index = this.getLineIndex(lineId);\n\n return index > -1\n ? (this.dataLines.at(this.getLineIndex(lineId)) as UntypedFormGroup)\n : null;\n }\n\n private fillOutAllocationsGroup(\n group: UntypedFormGroup,\n line?: Partial,\n ) {\n const allocations = group.controls.allocations as UntypedFormArray;\n\n // Заполняем дни.\n const dateTo = DateTime.fromISO(this.timesheet.dateTo);\n let currentDate = DateTime.fromISO(this.timesheet.dateFrom);\n while (currentDate <= dateTo) {\n let allocation: Partial;\n\n if (line) {\n allocation = line.timeAllocations.find(\n (a) => a.date === currentDate.toISODate(),\n );\n }\n\n if (!allocation) {\n allocation = {\n id: Guid.generate(),\n date: currentDate.toISODate(),\n hours: null,\n description: '',\n rowVersion: 0,\n };\n }\n\n const control = this.fb.control(allocation);\n this.subscribeAllocation(control, group);\n allocations.push(control, { emitEvent: false });\n\n currentDate = currentDate.plus({ days: 1 });\n }\n }\n\n private buildGroup(value?: Partial | any): UntypedFormGroup {\n const group = this.fb.group({\n id: Guid.generate(),\n task: {\n client: null,\n project: null,\n projectTask: null,\n } as TimesheetTask,\n billCode: null,\n activity: null,\n role: null,\n projectCostCenter: null,\n projectTariff: null,\n allocations: this.fb.array([]),\n allTimeAllocations: this.fb.array(value?.allTimeAllocations ?? []),\n totalHours: 0,\n rowVersion: 0,\n orderNumber: 0,\n });\n\n if (value) {\n group.patchValue(value);\n\n if (\n value.project?.billingType?.code === ProjectBillingType.nonBillable.code\n ) {\n group.get('projectTariff').disable({ emitEvent: false });\n }\n }\n\n return group;\n }\n\n private subscribeAllocation(\n cellGroup: UntypedFormGroup | UntypedFormControl,\n line: UntypedFormGroup,\n ): void {\n cellGroup.valueChanges\n .pipe(\n debounceTime(Constants.textInputDebounce),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((updateValue) => {\n this.emitLinesUpdated();\n\n const getObservable = () => {\n const value = updateValue;\n\n const isFilled = this.isAllocationFilledOut(value);\n const data = this.getAllocationToSave(\n Object.assign(value, {\n rowVersion: cellGroup.getRawValue().rowVersion,\n }),\n line.getRawValue().id,\n );\n\n let observable: Observable | null = null;\n\n if (isFilled) {\n observable = this.timeEntryCollection\n .entity(value.id)\n .update(data, {\n withResponse: true,\n })\n .pipe(\n tap((result: TimeAllocation) => {\n this.patchAllocation(\n result.timeSheetLineId,\n result.id,\n result,\n false,\n );\n }),\n );\n }\n\n if (!value.rowVersion && isFilled) {\n observable = this.timeEntryCollection.insert(data).pipe(\n tap((result) => {\n this.patchAllocation(\n result.timeSheetLineId,\n result.id,\n result,\n false,\n );\n this.emitLinesUpdated();\n }),\n );\n }\n\n if (value.rowVersion && !isFilled) {\n this.patchAllocation(\n data.timeSheetLineId,\n data.id,\n { rowVersion: 0 },\n false,\n );\n\n observable = this.timeEntryCollection.entity(value.id).delete();\n }\n\n observable ??= of(null);\n\n return observable;\n };\n\n this.autosave.addToQueue(updateValue.id, getObservable);\n });\n }\n\n /**\n * Calculates line amount.\n *\n * @param group line form group\n */\n private calculateGroupTotal(group: UntypedFormGroup): void {\n group.controls['totalHours'].setValue(\n _.sumBy(\n group.controls['allocations'].value,\n (allocation: TimeAllocation) => allocation.hours ?? 0,\n ),\n { emitEvent: false },\n );\n }\n\n private patchLine(\n line: UntypedFormGroup,\n updatedData: Partial,\n emitEvent = true,\n ): void {\n const dataToPatch: Partial & { task: TimesheetTask } = {\n task: line.getRawValue().task,\n };\n\n Object.keys(updatedData).forEach((key) => {\n if (line.controls[key]) {\n dataToPatch[key] = updatedData[key];\n }\n\n const entityKey = key.includes('Id') && key.replace('Id', '');\n\n if (line.controls[entityKey]) {\n dataToPatch[entityKey] = {\n id: updatedData[key],\n };\n }\n\n if (key === 'projectId') {\n _.set(dataToPatch, 'task.project', { id: updatedData[key] });\n }\n\n if (key === 'projectTaskId') {\n _.set(dataToPatch, 'task.projectTask', { id: updatedData[key] });\n }\n });\n\n line.patchValue(dataToPatch, { emitEvent });\n }\n\n /**\n * Saves timesheet if value changed, also recalculates totals.\n *\n * @param group `TimeSheetLine` form group.\n */\n private subscribeDataLineGroup(group: UntypedFormGroup): void {\n group.valueChanges\n .pipe(\n startWith(group.getRawValue()),\n pairwise(),\n debounceTime(0),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(([previous, current]) => {\n const notSavingProperties: string[] = [\n 'allocations',\n 'totalHours',\n 'allTimeAllocations',\n 'rowVersion',\n ];\n notSavingProperties.forEach((key) => {\n delete previous[key];\n delete current[key];\n });\n\n let isEqual = true;\n for (const key of Object.keys(previous)) {\n if (!_.isEqual(previous[key], group.getRawValue()[key])) {\n isEqual = false;\n break;\n }\n }\n\n if (!isEqual) {\n const index = this.getLineIndex(current.id);\n const isProjectChanged =\n previous.task?.project &&\n current.task?.project &&\n previous.task.project.id !== current.task.project.id;\n\n if (isProjectChanged) {\n group.patchValue(\n {\n role: null,\n projectTariff: null,\n projectCostCenter: null,\n },\n { emitEvent: false },\n );\n\n current = Object.assign(current, {\n role: null,\n projectTariff: null,\n projectCostCenter: null,\n });\n } else {\n this.emitLinesUpdated();\n }\n\n this.autosave.addToQueue(current.id, () =>\n this.timeSheetLineCollection\n .entity(current.id)\n .update(\n this.getTimesheetLineToSave(\n Object.assign(current, {\n rowVersion: group.getRawValue().rowVersion,\n }),\n index,\n ),\n {\n withResponse: true,\n },\n )\n .pipe(\n tap((result: TimesheetLine) => {\n this.patchLine(group, result, false);\n this.resolveIndirectUpdates({\n updated: {\n timeAllocation: result.updated.TimeAllocation,\n timeSheetLine: result.updated.TimeSheetLine,\n },\n });\n }),\n ),\n );\n }\n\n this.calculateGroupTotal(group);\n });\n }\n\n /** Calculates available custom fields based on the timesheet template configuration. */\n private fillCustomFieldsOut(): void {\n this.lineCustomFields = [];\n this.allocationCustomFields = [];\n const allocationFields = this.app.getCustomFields('TimeAllocation');\n const lineCustomFields = this.app.getCustomFields('TimeSheetLine');\n\n this.timesheet.template.customFields.forEach((templateField) => {\n const allocationField = allocationFields.find(\n (f) =>\n f.customFieldId === templateField.customFieldId &&\n f.viewConfiguration.isShownInEntityForms,\n );\n const lineCustomField = lineCustomFields.find(\n (f) =>\n f.customFieldId === templateField.customFieldId &&\n f.viewConfiguration.isShownInEntityForms,\n );\n\n if (allocationField) this.allocationCustomFields.push(allocationField);\n if (lineCustomField) this.lineCustomFields.push(lineCustomField);\n });\n }\n\n private getLineIndex(lineId: string): number {\n const index = this.dataLines.controls.findIndex(\n (control) => control.getRawValue().id === lineId,\n );\n\n return index;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\nimport { ValidationModalComponent } from '../shared/validation-modal/validation-modal.component';\nimport { LifecycleInfoTransition } from 'src/app/shared/models/entities/lifecycle/lifecycle-info.model';\nimport { Observable } from 'rxjs';\nimport { Exception } from 'src/app/shared/models/exception';\n\n/** Timesheet lifecycle service. */\n@Injectable()\nexport class TimesheetLifecycleService extends LifecycleService {\n public override startWorkflow(workflowId: string, action: MenuAction) {\n this.autosavePromise.then(() => {\n this.checkAndRun(action.name).subscribe(() =>\n super.startWorkflow(workflowId, action),\n );\n });\n }\n\n public override setState(\n stateId: string,\n action?: MenuAction,\n transition?: LifecycleInfoTransition,\n ) {\n this.autosavePromise.then(() => {\n if (this.lifecycleInfo.currentState.code === 'Draft') {\n this.checkAndRun(null).subscribe(() =>\n super.setState(stateId, action, transition),\n );\n } else {\n super.setState(stateId, action, transition);\n }\n });\n }\n\n /** Checks validation rules and run callback function.*/\n private checkAndRun(actionName: string): Observable {\n return new Observable((subscriber) => {\n if (actionName) {\n this.actionPanelService.action(actionName).start();\n }\n\n this.blockUI.stop();\n\n this.data\n .collection('TimeSheets')\n .entity(this.entityId)\n .function('Check')\n .query()\n .subscribe({\n next: (errors: any[]) => {\n if (errors.length === 0) {\n subscriber.next();\n subscriber.complete();\n } else {\n if (actionName) {\n this.actionPanelService.action(actionName).stop();\n }\n this.blockUI.stop();\n const ref = this.modal.open(ValidationModalComponent);\n (ref.componentInstance as ValidationModalComponent).errors =\n errors;\n ref.result.then(\n () => {\n subscriber.next();\n subscriber.complete();\n },\n () => null,\n );\n }\n },\n error: (error: Exception) => {\n this.message.error(error.message);\n subscriber.error(error);\n },\n });\n });\n }\n}\n","import {\n Component,\n forwardRef,\n ChangeDetectionStrategy,\n input,\n inject,\n DestroyRef,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { firstValueFrom, Observable } from 'rxjs';\n\nimport { NamedEntity } from 'src/app/shared/models/entities/named-entity.model';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[tmtTimesheetAnalyticBox]',\n templateUrl: './timesheet-analytic-box.component.html',\n styleUrls: ['./timesheet-analytic-box.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimesheetAnalyticBoxComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetAnalyticBoxComponent implements ControlValueAccessor {\n public values = input.required>();\n public allowed = input(true);\n public placeholder = input();\n\n public row = signal(null);\n public rows = signal([]);\n public areaExpanded = signal(false);\n public loading = signal(false);\n public readonly: boolean;\n public propagateChange = (_: any) => null;\n public registerOnTouched = (fn: any) => null;\n\n private readonly destroyRef = inject(DestroyRef);\n\n public writeValue(value: Partial): void {\n if (!value) {\n this.row.set(null);\n return;\n }\n\n if (value.id && value.name) {\n this.row.set(value as NamedEntity);\n } else {\n firstValueFrom(this.values()).then((values) =>\n this.row.set(values.find((v) => v.id === value.id) ?? null),\n );\n }\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n }\n\n /** Opens select area. */\n public openArea(): void {\n if (this.readonly) {\n return;\n }\n\n this.areaExpanded.update((v) => !v);\n this.loading.set(true);\n\n this.values()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((activities) => {\n this.rows.set(activities);\n this.loading.set(false);\n });\n }\n\n /** Close area. */\n public cancel(): void {\n this.areaExpanded.set(false);\n }\n\n /**\n * Selects row.\n *\n * @param value selected value.\n */\n public clickRow(value: NamedEntity): void {\n this.row.set(value);\n this.propagateChange(value);\n this.cancel();\n }\n}\n","@if (allowed()) {\n
    \n
    \n @if (row()) {\n
    \n {{ row()?.name }}\n
    \n } @else {\n
    \n {{ placeholder() | translate }}\n
    \n }\n \n
    \n\n @if (areaExpanded()) {\n
    \n @if (loading()) {\n \n }\n\n @if (!rows().length && !loading()) {\n
    \n

    \n {{ 'shared.noOptions' | translate }}\n

    \n
    \n }\n\n @if (rows().length && !loading()) {\n \n \n @for (item of rows(); track item.id) {\n \n \n \n }\n \n
    {{ item.name }}
    \n }\n
    \n }\n
    \n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n LOCALE_ID,\n NgZone,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { AppService } from 'src/app/core/app.service';\nimport { Subscription } from 'rxjs';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n TimeAllocation,\n TimesheetLine,\n} from 'src/app/shared/models/entities/base/timesheet.model';\nimport { TimeDurationPipe } from 'src/app/shared/pipes/time-duration.pipe';\nimport { TimeInputType } from 'src/app/shared/models/enums/time-input-type';\nimport {\n DecimalPipe,\n getLocaleNumberSymbol,\n NumberSymbol,\n} from '@angular/common';\nimport { cloneDeep, round } from 'lodash';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { StopwatchState } from 'src/app/shared/models/entities/base/stopwatch.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { AllocationIssueInfoComponent } from 'src/app/timesheets/card/table-view/allocation-issue-info/allocation-issue-info.component';\nimport { AllocationInfoComponent } from 'src/app/timesheets/card/table-view/allocation-info/allocation-info.component';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { AbstractBox } from 'src/app/shared/components/controls/abstract-box/abstract-box';\n\n/** Ячейка таймшита. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[wpTimesheetCell]',\n templateUrl: './timesheet-cell.component.html',\n styleUrls: ['./timesheet-cell.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimesheetCellComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetCellComponent\n extends AbstractBox\n implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy\n{\n @ViewChild('editor') private editor: ElementRef;\n @ViewChild('frame') private frame: ElementRef;\n\n @Input() dayIndex: number;\n @Input() lineIndex: number;\n @Input() dayScheduleDuration: number;\n @Input() line: TimesheetLine;\n @Input() issueMode: boolean;\n\n public allocation: TimeAllocation;\n public viewValue: string;\n private previousViewValue: string;\n private oldValue: any;\n\n public readonly: boolean;\n public showIcon: boolean;\n public showStart: boolean;\n public showStop: boolean;\n public iconClass: string[];\n private enterCode = 13;\n private escCode = 27;\n\n public id = Guid.generate();\n public serviceId: string;\n public popupId?: string;\n\n private isDecimalMode: boolean;\n private isSchedulePercentMode: boolean;\n private delimiter: string;\n\n swExecuted: boolean;\n\n private get input(): null | HTMLInputElement {\n if (this.readonly) {\n return null;\n }\n\n return (this.editor?.nativeElement as HTMLInputElement) ?? null;\n }\n\n public mode = {\n active: false,\n selected: false,\n spreading: false,\n editing: false,\n left: false,\n top: false,\n right: false,\n bottom: false,\n spreader: false,\n spreadBottom: false,\n };\n contentElement: HTMLElement;\n valueElement: HTMLElement;\n\n eventEntrySelectedSubscription: Subscription;\n eventStartEditingSubscription: Subscription;\n eventStopEditingSubscription: Subscription;\n eventValueChangedSubscription: Subscription;\n eventEntryActivatedSubscription: Subscription;\n eventEntryDeactivatedSubscription: Subscription;\n eventEntryDespreadedSubscription: Subscription;\n eventEntryDeselectedSubscription: Subscription;\n eventEntrySpreadedSubscription: Subscription;\n eventResetSubscription: Subscription;\n allocationChangeSubscription: Subscription;\n stopwatchSubscription: Subscription;\n public mouseEnterListener: () => void;\n\n public propagateChange = (_: TimeAllocation) => null;\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n public stopwatchService: StopwatchService,\n public entriesOrchestrator: CellsOrchestratorService,\n private infoPopupService: InfoPopupService,\n private numberPipe: DecimalPipe,\n private timeDurationPipe: TimeDurationPipe,\n private renderer: Renderer2,\n private elRef: ElementRef,\n private changeDetector: ChangeDetectorRef,\n private app: AppService,\n private zone: NgZone,\n ) {\n super();\n\n this.isDecimalMode =\n this.app.session.timeInputType !== TimeInputType.HoursAndMinutes;\n this.isSchedulePercentMode =\n this.app.session.timeInputType === TimeInputType.SchedulePercent;\n this.delimiter = this.isDecimalMode\n ? getLocaleNumberSymbol(locale, NumberSymbol.Decimal)\n : ':';\n }\n\n writeValue(obj: any): void {\n this.allocation = obj;\n\n // Do not patch value if control in editing process.\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.previousViewValue !== this.viewValue\n ) {\n this.updateIcon();\n this.changeDetector.detectChanges();\n return;\n }\n\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n this.allocation.hours,\n );\n this.updateIcon();\n this.updateViewValue();\n this.changeDetector.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched = (fn: any) => null;\n\n setDisabledState?(isDisabled: boolean): void {\n this.readonly = isDisabled;\n this.updateIcon();\n this.changeDetector.detectChanges();\n }\n\n private changeValue(allocation: TimeAllocation) {\n if (!this.entriesOrchestrator.singleCellMode) {\n // Обновление значения в сервисе, для последующего использования.\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n allocation.hours,\n );\n }\n\n this.propagateChange(allocation);\n this.changeDetector.detectChanges();\n }\n\n private getValueElement() {\n if (!this.valueElement) {\n this.valueElement = (\n this.elRef.nativeElement as HTMLElement\n ).querySelector('.value');\n }\n return this.valueElement;\n }\n\n private getContentElement() {\n if (!this.contentElement) {\n this.contentElement = (\n this.elRef.nativeElement as HTMLElement\n ).querySelector('.content');\n }\n return this.contentElement;\n }\n\n // Разбор введенного текста.\n private parseViewHours(): void {\n if (this.readonly || !this.input) {\n return;\n }\n\n const viewValue = this.input.value;\n let hours: number;\n\n if (!viewValue) {\n if (this.allocation.hours !== null) {\n this.allocation.hours = null;\n this.changeValue(this.allocation);\n }\n\n return;\n }\n\n // Разобрать ввод в %%.\n if (this.isSchedulePercentMode) {\n if (isNaN(Number(viewValue))) {\n hours = null;\n } else {\n hours = Number(viewValue);\n hours = Math.min(\n hours,\n this.dayScheduleDuration > 0\n ? (24 / this.dayScheduleDuration) * 100\n : 0,\n );\n hours = (this.dayScheduleDuration * hours) / 100;\n }\n\n this.allocation.hours = hours;\n this.changeValue(this.allocation);\n\n return;\n }\n // Разобрать ввод в часах или часах-минутах.\n const parts = viewValue.split(this.delimiter);\n\n // Если вставили строку и там много разделителей\n if (parts.length > 2) {\n hours = 0;\n } else {\n let wholePart = '';\n let decimalPart = '';\n\n // Если нет разделителя\n if (parts.length === 1) {\n // Для дробного значения два правых символа - дробная часть, остальное - целая часть\n // Для натурального значения два правых символа - целая часть, остальное - дробная часть\n if (parts[0].length === 0) {\n wholePart = '0';\n decimalPart = '0';\n } else {\n if (parts[0].length <= 2) {\n if (this.isDecimalMode) {\n wholePart = parts[0];\n decimalPart = '0';\n } else {\n wholePart = '0';\n decimalPart = parts[0];\n }\n } else {\n if (this.isDecimalMode) {\n wholePart = parts[0].substring(0, 2);\n decimalPart = parts[0].substring(2);\n } else {\n wholePart = parts[0].substring(0, parts[0].length - 2);\n decimalPart = parts[0].substring(parts[0].length - 2);\n }\n }\n }\n } else {\n wholePart = parts[0];\n decimalPart = parts[1];\n }\n\n if (isNaN(Number(wholePart)) || wholePart.length === 0) {\n wholePart = '0';\n }\n\n if (isNaN(Number(decimalPart)) || decimalPart.length === 0) {\n decimalPart = '0';\n }\n\n if (this.isDecimalMode) {\n hours = round(Number(wholePart + '.' + decimalPart), 2);\n } else {\n hours = Number(wholePart) + Number(decimalPart) / 60;\n }\n\n hours = Math.min(hours, 24);\n }\n\n if (this.allocation.hours !== hours) {\n this.allocation.hours = hours;\n this.changeValue(this.allocation);\n }\n }\n\n // Обновление отображаемого значения.\n private updateViewValue() {\n const hours = this.allocation.hours;\n\n // Формирование ViewDuration (значения для редактирования).\n if (hours === null) {\n this.viewValue = '';\n } else {\n switch (this.app.session.timeInputType) {\n case TimeInputType.Decimal:\n this.viewValue = this.numberPipe\n .transform(hours, '1.2-2')\n .replace(/\\s+/g, '');\n break;\n default:\n this.viewValue = this.timeDurationPipe.transform(\n this.allocation.hours,\n this.dayScheduleDuration,\n false,\n );\n break;\n }\n }\n }\n\n // Обновление иконки-индикатора.\n private updateIcon() {\n if (!this.allocation) {\n return;\n }\n\n this.showIcon = false;\n this.showStop = false;\n this.showStart = false;\n\n const isActiveStopwatch = () =>\n this.stopwatchService.stopwatch?.timeSheetLineId === this.line.id &&\n this.stopwatchService.stopwatch.date === this.allocation.date;\n\n // Режим стандартного ТШ\n if (this.allocation?.description?.length && !this.issueMode) {\n this.showIcon = true;\n this.iconClass = ['bi-chat-dots'];\n }\n\n if (isActiveStopwatch()) {\n this.showIcon = true;\n this.iconClass = ['green'];\n if (this.stopwatchService.stopwatch.state === StopwatchState.Started) {\n this.iconClass = ['green', 'bi-clock'];\n } else {\n this.iconClass = ['gray', 'bi-clock'];\n }\n }\n }\n\n // Возвращает заголовок иконки.\n public getIconTitle(): string {\n return this.allocation.description;\n }\n\n /** Opens the allocation popup. */\n public openAllocationInfo(): void {\n if (this.popupId) {\n return;\n }\n\n if (this.issueMode) {\n if (\n !this.line.allTimeAllocations.filter(\n (v) => v.date === this.allocation.date,\n ).length\n ) {\n return;\n }\n\n this.popupId = this.infoPopupService.open({\n target: this.elRef.nativeElement,\n data: {\n component: AllocationIssueInfoComponent,\n componentParams: {\n inputs: {\n line: this.line,\n allocation: this.allocation,\n },\n injector: this.injector,\n },\n },\n containerStyles: {\n padding: '0.5rem',\n },\n clickOutsideEnabled: false,\n });\n\n return;\n }\n\n this.popupId = this.infoPopupService.open({\n target: this.elRef.nativeElement,\n data: {\n component: AllocationInfoComponent,\n componentParams: {\n inputs: {\n line: this.line,\n allocation: cloneDeep(this.allocation),\n dayScheduleDuration: this.dayScheduleDuration,\n readonly:\n this.readonly ||\n (this.isSchedulePercentMode && this.dayScheduleDuration === 0),\n propagationMode: this.propagationMode,\n },\n injector: this.injector,\n },\n },\n containerStyles: {\n padding: '0.5rem',\n },\n clickOutsideEnabled: false,\n });\n }\n\n /** Closes popup. */\n public closeAllocationInfo(): void {\n if (!this.popupId) {\n return;\n }\n\n this.infoPopupService.close(this.popupId);\n this.popupId = null;\n }\n\n public startEditing() {\n // Запрет редактирования на выходной день в режиме %% от расписания.\n if (\n this.readonly ||\n (this.isSchedulePercentMode && this.dayScheduleDuration === 0)\n ) {\n return;\n }\n this.oldValue = this.allocation.hours;\n\n this.openAllocationInfo();\n this.mode.editing = true;\n this.updateViewValue();\n this.previousViewValue = this.viewValue;\n\n setTimeout(() => {\n this.input.focus();\n });\n this.renderer.addClass(this.getValueElement(), 'hidden');\n this.renderer.addClass(this.getContentElement(), 'glow');\n }\n\n public stopEditing() {\n if (this.mode.editing) {\n this.parseViewHours();\n this.mode.editing = false;\n if (!this.entriesOrchestrator.singleCellMode) {\n this.getContentElement().parentElement.focus();\n }\n this.renderer.removeClass(this.getValueElement(), 'hidden');\n this.renderer.removeClass(this.getContentElement(), 'glow');\n }\n }\n\n public onKeydown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n if (event.keyCode === this.enterCode) {\n this.stopEditing();\n this.closeAllocationInfo();\n }\n\n if (event.keyCode === this.escCode || event.charCode === this.enterCode) {\n this.stopEditing();\n this.allocation.hours = this.oldValue;\n this.closeAllocationInfo();\n }\n event.stopPropagation();\n }\n\n /** Обработка события изменения значения в редакторе */\n public handleInput(event: any) {\n const selectionStart = this.input.selectionStart;\n const selectionEnd = this.input.selectionEnd;\n let value = this.input.value;\n\n const separators = [' ', '.', ',', ':'];\n\n separators\n .filter((x) => x !== this.delimiter)\n .forEach((separator: string) => {\n const newValue =\n value.indexOf(this.delimiter) === -1 ? this.delimiter : '';\n value = value.replace(separator, newValue);\n });\n\n if (this.app.session.timeInputType === TimeInputType.HoursAndMinutes) {\n const parts = value.split(this.delimiter);\n\n if (\n value.length > 5 ||\n parts.length > 2 ||\n isNaN(Number(parts[0])) ||\n (parts.length === 2 && isNaN(Number(parts[1])))\n ) {\n value = this.previousViewValue;\n }\n }\n\n if (this.app.session.timeInputType === TimeInputType.SchedulePercent) {\n const parts = value.split(this.delimiter);\n\n if (value.length > 3 || parts.length > 1 || isNaN(Number(parts[0]))) {\n value = this.previousViewValue;\n }\n }\n\n if (this.app.session.timeInputType === TimeInputType.Decimal) {\n const normalizedString: string = String(value).replace(\n this.delimiter,\n '.',\n );\n if (value.length > 5 || isNaN(Number(normalizedString))) {\n value = this.previousViewValue;\n }\n }\n\n if (value !== this.input.value) {\n this.input.value = value;\n this.input.setSelectionRange(selectionStart, selectionEnd);\n }\n\n if (this.propagationMode === PropagationMode.onInput) {\n this.parseViewHours();\n }\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.toggleControlDirty(this.previousViewValue, value);\n }\n\n this.previousViewValue = value;\n }\n\n public onDblClick() {\n if (!this.entriesOrchestrator.singleCellMode) {\n this.startEditing();\n }\n }\n\n public onClick() {\n if (this.entriesOrchestrator.singleCellMode) {\n this.startEditing();\n }\n }\n\n public onMouseDown() {\n this.entriesOrchestrator.mouseDown({ x: this.dayIndex, y: this.lineIndex });\n }\n\n public onMouseEnter() {\n this.entriesOrchestrator.mouseEnter({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n }\n\n public onInputMouseDown(event) {\n event.stopPropagation();\n }\n\n public onSpreaderMouseDown(event) {\n if (this.readonly) {\n return;\n }\n this.entriesOrchestrator.spreaderMouseDown({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n this.closeAllocationInfo();\n event.stopPropagation();\n }\n\n public onSpreaderDblClick(event) {\n if (this.readonly) {\n return;\n }\n this.entriesOrchestrator.spreaderDblClick({\n x: this.dayIndex,\n y: this.lineIndex,\n });\n this.closeAllocationInfo();\n event.stopPropagation();\n }\n\n /** Blur handler. */\n public onBlur(): void {\n if (\n this.propagationMode === PropagationMode.onExitFromEditing &&\n this.viewValue !== this.previousViewValue\n ) {\n this.parseViewHours();\n }\n }\n\n private initEvents() {\n this.stopwatchSubscription = this.stopwatchService.stopwatch$.subscribe(\n () => {\n this.updateIcon();\n this.changeDetector.detectChanges();\n },\n );\n\n this.eventEntrySelectedSubscription =\n this.entriesOrchestrator.entrySelected$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n // this.closeAllocationInfo();\n return;\n }\n this.mode.selected = true;\n this.mode.top = param.top;\n this.mode.right = param.right;\n this.mode.left = param.left;\n this.mode.bottom = param.bottom;\n if (this.mode.bottom && this.mode.right) {\n this.mode.spreader = true;\n }\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntrySpreadedSubscription =\n this.entriesOrchestrator.entrySpreaded$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n return;\n }\n this.mode.spreading = true;\n this.mode.top = param.top;\n this.mode.right = param.right;\n this.mode.left = param.left;\n this.mode.bottom = param.bottom;\n\n this.changeDetector.detectChanges();\n });\n this.eventEntryDeselectedSubscription =\n this.entriesOrchestrator.entryDeselected$.subscribe((param) => {\n if (!this.mode.selected) {\n return;\n }\n this.mode.selected = false;\n this.mode.top = false;\n this.mode.right = false;\n this.mode.left = false;\n this.mode.bottom = false;\n this.mode.spreader = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryDespreadedSubscription =\n this.entriesOrchestrator.entryDespreaded$.subscribe(() => {\n if (!this.mode.spreading) {\n return;\n }\n this.mode.spreading = false;\n this.mode.top = false;\n this.mode.right = false;\n this.mode.left = false;\n this.mode.bottom = false;\n this.mode.spreadBottom = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryDeactivatedSubscription =\n this.entriesOrchestrator.entryDeactivated$.subscribe((exceptEntry) => {\n if (\n exceptEntry !== null &&\n exceptEntry.x !== this.dayIndex &&\n exceptEntry.y !== this.lineIndex\n ) {\n return;\n }\n\n this.stopEditing();\n this.closeAllocationInfo();\n this.mode.active = false;\n\n this.changeDetector.detectChanges();\n });\n\n this.eventEntryActivatedSubscription =\n this.entriesOrchestrator.entryActivated$.subscribe((pos) => {\n if (pos.x !== this.dayIndex || pos.y !== this.lineIndex) {\n return;\n }\n this.mode.active = true;\n this.openAllocationInfo();\n\n this.changeDetector.detectChanges();\n });\n\n // Событие массового редактирования: растягивание или стирание значения.\n this.eventValueChangedSubscription =\n this.entriesOrchestrator.valueChanged$.subscribe((param) => {\n if (param.pos.x !== this.dayIndex || param.pos.y !== this.lineIndex) {\n return;\n }\n if (this.readonly) {\n return;\n }\n if (\n this.isSchedulePercentMode &&\n param.value !== null &&\n this.dayScheduleDuration === 0\n ) {\n return;\n }\n if (\n param.onlyForWorkDay &&\n (this.allocation.hours === 0 || this.allocation.hours === null) &&\n this.dayScheduleDuration === 0\n ) {\n return;\n }\n this.allocation.hours = param.value;\n this.updateViewValue();\n\n this.changeValue(this.allocation);\n\n this.changeDetector.detectChanges();\n });\n\n this.eventResetSubscription = this.entriesOrchestrator.reset$.subscribe(\n () => {\n this.entriesOrchestrator.setValue(\n { x: this.dayIndex, y: this.lineIndex },\n this.allocation.hours,\n );\n this.changeDetector.detectChanges();\n },\n );\n\n this.eventStopEditingSubscription =\n this.entriesOrchestrator.stopEditing$.subscribe((arg) => {\n this.stopEditing();\n if (!arg || arg.closeComment !== false) {\n this.closeAllocationInfo();\n }\n\n this.changeDetector.detectChanges();\n });\n\n this.eventStartEditingSubscription =\n this.entriesOrchestrator.startEditing$.subscribe((value: string) => {\n if (this.isSchedulePercentMode && this.dayScheduleDuration === 0) {\n return;\n }\n\n if (this.mode.active) {\n this.startEditing();\n if (value) {\n this.viewValue = value;\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n this.ngControl.markAsDirty();\n } else {\n setTimeout(() => {\n this.parseViewHours();\n this.changeDetector.detectChanges();\n });\n }\n }\n }\n this.changeDetector.detectChanges();\n });\n }\n\n ngOnInit(): void {\n this.serviceId = this.entriesOrchestrator.id;\n this.initEvents();\n this.updateIcon();\n }\n\n public override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.zone.runOutsideAngular(() => {\n this.mouseEnterListener = this.renderer.listen(\n this.frame.nativeElement,\n 'mouseenter',\n () => {\n this.onMouseEnter();\n },\n );\n });\n }\n\n ngOnDestroy() {\n if (this.eventEntrySelectedSubscription) {\n this.eventEntrySelectedSubscription.unsubscribe();\n }\n\n if (this.eventStopEditingSubscription) {\n this.eventStopEditingSubscription.unsubscribe();\n }\n\n if (this.eventEntryActivatedSubscription) {\n this.eventEntryActivatedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDeactivatedSubscription) {\n this.eventEntryDeactivatedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDespreadedSubscription) {\n this.eventEntryDespreadedSubscription.unsubscribe();\n }\n\n if (this.eventEntryDeselectedSubscription) {\n this.eventEntryDeselectedSubscription.unsubscribe();\n }\n\n if (this.eventStartEditingSubscription) {\n this.eventStartEditingSubscription.unsubscribe();\n }\n\n if (this.eventValueChangedSubscription) {\n this.eventValueChangedSubscription.unsubscribe();\n }\n\n if (this.eventEntrySpreadedSubscription) {\n this.eventEntrySpreadedSubscription.unsubscribe();\n }\n\n if (this.eventResetSubscription) {\n this.eventResetSubscription.unsubscribe();\n }\n\n if (this.mouseEnterListener) {\n this.mouseEnterListener();\n }\n\n this.stopwatchSubscription.unsubscribe();\n\n if (this.propagationMode === PropagationMode.onExitFromEditing) {\n if (this.viewValue !== this.previousViewValue) {\n this.parseViewHours();\n }\n }\n }\n}\n","
    \n
    \n \n
    \n \n
    \n {{ allocation?.hours | wpTimeDuration: dayScheduleDuration : true }}\n
    \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n TimesheetError,\n TimesheetErrorGroup,\n} from 'src/app/timesheets/card/shared/validation-modal/timesheet-errors.model';\nimport _ from 'lodash';\nimport { naturalSort } from 'src/app/shared/helpers/natural-sort.helper';\n\n@Component({\n selector: 'wp-validation-modal',\n templateUrl: './validation-modal.component.html',\n styleUrls: ['./validation-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ValidationModalComponent implements OnInit {\n @Input() errors: TimesheetError[];\n\n public errorGroups: TimesheetErrorGroup[] = [];\n\n public get canOverride(): boolean {\n return this.errorGroups?.every((item) => item.canOverride);\n }\n\n constructor(private activeModal: NgbActiveModal) {}\n\n public ngOnInit(): void {\n // Natural sort for all messages\n this.errors.sort(naturalSort('message'));\n // Group messages by ruleName\n this.errors.forEach((error) => {\n const existGroup = this.errorGroups.find(\n (g) => g.ruleName === error.ruleName,\n );\n if (existGroup) {\n existGroup.messages.push(error.message);\n } else {\n this.errorGroups.push({\n ruleType: error.ruleType,\n ruleName: error.ruleName,\n customMessage: error.customMessage,\n canOverride: error.canOverride,\n messages: [error.message],\n });\n }\n });\n // Natural sort for groups by ruleName\n this.errorGroups.sort(naturalSort('ruleName'));\n // Move System group at the first position\n this.errorGroups.forEach((group, i) => {\n if (group.ruleType !== 'System') return;\n this.errorGroups.splice(i, 1);\n this.errorGroups.unshift(group);\n });\n }\n\n /** Ignore and submit the timesheet. */\n public ignoreAndSubmit = () => {\n this.activeModal.close();\n };\n\n /** Close the modal without changes. */\n public cancel = () => {\n this.activeModal.dismiss('cancel');\n };\n}\n","
    \n
    \n

    \n {{ 'timesheets.card.verifyingRules.header' | translate }}\n

    \n \n
    \n\n
    \n @for (group of errorGroups; track group.ruleType) {\n
    \n @if (group.canOverride) {\n \n } @else {\n \n }\n
      \n \n @if (group.ruleName) {\n {{ group?.ruleName }}\n }\n @if (group.customMessage) {\n {{ group?.customMessage }}\n }\n
    \n\n @for (message of group.messages; track message) {\n
  • \n {{ message }}\n
  • \n }\n \n
    \n }\n \n
    \n @if (canOverride) {\n \n }\n\n \n
    \n
    \n","import {\n Component,\n OnInit,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n DestroyRef,\n inject,\n input,\n} from '@angular/core';\nimport {\n TimeAllocation,\n TimesheetLine,\n} from 'src/app/shared/models/entities/base/timesheet.model';\nimport { AppService } from 'src/app/core/app.service';\nimport { TimeInputType } from 'src/app/shared/models/enums/time-input-type';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { TimesheetCardService } from '../../core/timesheet-card.service';\nimport { round } from 'lodash';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { StopwatchState } from 'src/app/shared/models/entities/base/stopwatch.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { DateTime } from 'luxon';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\n\n@Component({\n selector: 'tmt-allocation-info',\n templateUrl: './allocation-info.component.html',\n styleUrls: ['./allocation-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AllocationInfoComponent implements OnInit {\n public allocation = input.required();\n public line = input.required();\n public readonly = input.required();\n public dayScheduleDuration = input.required();\n public propagationMode = input(\n PropagationMode.onExitFromEditing,\n );\n\n public showStartButton: boolean;\n public showStopButton: boolean;\n public swExecuted: boolean;\n public isPause: boolean;\n public element = null;\n public buttonTitles: string[];\n public buttonHints: string[];\n public form: UntypedFormGroup;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public timesheetCardService: TimesheetCardService,\n private blockUI: BlockUIService,\n private stopwatchService: StopwatchService,\n private changeDetector: ChangeDetectorRef,\n private fb: UntypedFormBuilder,\n private app: AppService,\n private translate: TranslateService,\n private customFieldService: CustomFieldService,\n private notification: NotificationService,\n ) {}\n\n public ngOnInit(): void {\n this.form = this.fb.group({\n hours: null,\n description: '',\n });\n this.customFieldService.enrichFormGroup(this.form, 'TimeAllocation');\n this.form.patchValue(this.allocation(), { emitEvent: false });\n\n if (this.readonly()) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n\n // Локализация кнопочек.\n switch (this.app.session.timeInputType) {\n case TimeInputType.HoursAndMinutes:\n this.buttonTitles = ['0:15', '0:30', '1:00', '1:30', '2:00', '4:00'];\n break;\n\n case TimeInputType.Decimal: {\n const m = this.translate.instant(\n 'timesheets.card.entryInfo.hotKeys.minutes',\n );\n const h = this.translate.instant(\n 'timesheets.card.entryInfo.hotKeys.hours',\n );\n this.buttonTitles = [\n '15' + m,\n '30' + m,\n '1' + h,\n '1.5' + h,\n '2' + h,\n '4' + h,\n ];\n break;\n }\n case TimeInputType.SchedulePercent:\n this.buttonTitles = ['5%', '10%', '25%', '50%', '75%', '100%'];\n break;\n }\n\n switch (this.app.session.timeInputType) {\n case TimeInputType.SchedulePercent:\n this.buttonHints = this.buttonTitles;\n break;\n default:\n this.buttonHints = [\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint0_25'),\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint0_5'),\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint1'),\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint1_5'),\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint2'),\n this.translate.instant('timesheets.card.entryInfo.hotKeys.hint4'),\n ];\n }\n\n this.updateStopwatchState();\n\n this.form.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const patch: Partial = {\n description: this.form.value.description,\n };\n this.customFieldService.assignValues(\n patch,\n this.form.value,\n 'TimeAllocation',\n );\n this.timesheetCardService.patchAllocation(\n this.line().id,\n this.allocation().id,\n patch,\n );\n this.changeDetector.markForCheck();\n });\n\n this.stopwatchService.stopwatch$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateStopwatchState();\n });\n }\n\n public updateStopwatchState(): void {\n if (!this.allocation) {\n return;\n }\n\n // Решаем показывать ли блок секундомера.\n this.showStopButton =\n this.stopwatchService.stopwatch?.timeSheetLineId === this.line().id &&\n this.stopwatchService.stopwatch.date === this.allocation().date;\n\n // Показываем кнопку запуска секундомера только на текущий день.\n this.showStartButton =\n this.app.session.useStopwatch &&\n DateTime.fromISO(this.allocation().date).equals(\n DateTime.now().startOf('day'),\n ) &&\n !this.stopwatchService.stopwatch;\n\n this.isPause =\n this.stopwatchService.stopwatch?.state === StopwatchState.Paused;\n\n this.changeDetector.markForCheck();\n }\n\n // Установить время.\n public setHours(option: number): void {\n const isPercent =\n this.app.session.timeInputType === TimeInputType.SchedulePercent;\n let hours = 0;\n\n switch (option) {\n case 1:\n hours = isPercent ? 5 : 0.25;\n break;\n case 2:\n hours = isPercent ? 10 : 0.5;\n break;\n case 3:\n hours = isPercent ? 25 : 1;\n break;\n case 4:\n hours = isPercent ? 50 : 1.5;\n break;\n case 5:\n hours = isPercent ? 75 : 2;\n break;\n case 6:\n hours = isPercent ? 100 : 4;\n break;\n }\n\n if (isPercent) {\n hours = round((this.dayScheduleDuration() * hours) / 100, 4);\n }\n\n this.timesheetCardService.patchAllocation(\n this.line().id,\n this.allocation().id,\n {\n hours,\n },\n );\n }\n\n /*КОМАНДЫ СЕКУНДОМЕРА*/\n\n /** Запуск счетчика времени. */\n public start(): void {\n this.swExecuted = true;\n\n this.stopwatchService.start(this.line().id).then(\n () => {\n this.swExecuted = false;\n this.updateStopwatchState();\n this.changeDetector.markForCheck();\n },\n (message: string) => {\n this.swExecuted = false;\n this.notification.warning(message);\n },\n );\n }\n\n /** Приостановка счетчика времени. */\n public pause(): void {\n this.swExecuted = true;\n this.stopwatchService.pause().then(\n () => {\n this.swExecuted = false;\n this.updateStopwatchState();\n this.changeDetector.markForCheck();\n },\n (message: string) => {\n this.swExecuted = false;\n this.notification.warning(message);\n },\n );\n }\n\n /** Возобновление счетчика времени. */\n public resume(): void {\n this.swExecuted = true;\n\n this.stopwatchService.resume().then(\n () => {\n this.swExecuted = false;\n this.updateStopwatchState();\n this.changeDetector.markForCheck();\n },\n (message: string) => {\n this.swExecuted = false;\n this.notification.warning(message);\n },\n );\n }\n\n /** Завершение счетчика времени. */\n public stop(type: any): void {\n this.swExecuted = true;\n this.blockUI.start();\n\n this.stopwatchService.stop(type).then(\n () => {\n this.blockUI.stop();\n this.swExecuted = false;\n this.updateStopwatchState();\n this.changeDetector.markForCheck();\n },\n (message: string) => {\n this.blockUI.stop();\n this.swExecuted = false;\n this.notification.warning(message);\n },\n );\n }\n}\n","
    \n \n \n
    \n \n
    \n\n @if (!readonly()) {\n
    \n @for (buttonHint of buttonHints; track $index) {\n
    \n \n {{ buttonTitles[$index] }}\n \n
    \n }\n\n @if (showStartButton) {\n
    \n \n \n \n
    \n }\n\n @if (showStopButton) {\n
    \n \n \n \n
    \n }\n
    \n }\n\n \n
    \n
    \n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Injector,\n input,\n} from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport _ from 'lodash';\n\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport {\n TimeAllocation,\n TimesheetLine,\n} from 'src/app/shared/models/entities/base/timesheet.model';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\nimport { WorkLogService } from 'src/app/work-log/work-log.service';\nimport { WorkLogCardComponent } from 'src/app/work-log/card/work-log-card.component';\nimport { TimesheetCardService } from 'src/app/timesheets/card/core/timesheet-card.service';\n\n@Component({\n selector: 'tmt-allocation-issue-info',\n templateUrl: './allocation-issue-info.component.html',\n styleUrl: './allocation-issue-info.component.scss',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AllocationIssueInfoComponent {\n @HostBinding('id') public id = this.cellsOrchestratorService.infoBlockId;\n\n public allocation = input.required();\n public line = input.required();\n\n public issuesForm: UntypedFormArray;\n public issueTimeAllocations: TimeAllocation[] = [];\n public readonly routeMode = RouteMode;\n\n constructor(\n public navigationService: NavigationService,\n public workLogService: WorkLogService,\n public modal: NgbModal,\n private timesheetCardService: TimesheetCardService,\n private infoPopupService: InfoPopupService,\n private cellsOrchestratorService: CellsOrchestratorService,\n private customFieldService: CustomFieldService,\n private fb: UntypedFormBuilder,\n private injector: Injector,\n ) {}\n\n public ngOnInit(): void {\n this.issuesForm = this.fb.array([]);\n this.issueTimeAllocations = this.line().allTimeAllocations.filter(\n (v) => v.date === this.allocation().date,\n );\n\n this.issueTimeAllocations.forEach((entry) => {\n const group = this.fb.group({});\n this.customFieldService.enrichFormGroup(group, 'TimeAllocation');\n group.patchValue(entry);\n this.issuesForm.push(group);\n });\n\n this.issuesForm.disable();\n }\n\n /**\n * Opens the modal to edit the time entry.\n *\n * @param timeEntry the time allocation to edit.\n */\n public async openTimeEntry(\n timeEntry: Partial,\n ): Promise {\n this.cellsOrchestratorService.reset();\n this.infoPopupService.close();\n\n timeEntry.template = this.timesheetCardService.timesheet.template;\n timeEntry.user = this.timesheetCardService.timesheet.user;\n\n const modalRef = this.modal.open(WorkLogCardComponent, {\n injector: this.injector,\n });\n const workLogCardComponent: WorkLogCardComponent =\n modalRef.componentInstance;\n\n workLogCardComponent.timeEntry.set(_.cloneDeep(timeEntry));\n workLogCardComponent.issueNameIsLink.set(true);\n workLogCardComponent.readonly.set(\n !this.timesheetCardService.timesheet.editAllowed,\n );\n\n try {\n const result: TimeAllocation | null = await modalRef.result;\n\n this.timesheetCardService.updateIssueAllocation(\n result || timeEntry,\n !result,\n );\n } catch {\n return;\n }\n }\n}\n","@if (issuesForm.controls.length) {\n @for (timeAllocation of issueTimeAllocations; track $index) {\n
    \n
    \n \n
    \n {{ timeAllocation.hours | wpWork }}\n
    \n
    \n\n
    \n
    \n {{ timeAllocation.description | truncate: 125 }}\n
    \n \n
    \n
    \n }\n} @else {\n

    \n {{ 'shared.empty' | translate }}\n

    \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { AppService } from 'src/app/core/app.service';\nimport {\n TimeOffRequest,\n TimesheetLine,\n} from 'src/app/shared/models/entities/base/timesheet.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TimesheetCardService } from '../core/timesheet-card.service';\nimport { TimesheetTemplate } from 'src/app/shared/models/entities/settings/timesheet-template.model';\nimport { Day } from '../shared/models/day.model';\nimport { UntypedFormBuilder, UntypedFormControl } from '@angular/forms';\nimport { CellsOrchestratorService } from 'src/app/shared/services/cell-orhestrator/cells-orchestrator.service';\nimport { Line } from '../shared/models/line.model';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { filter, switchMap, tap } from 'rxjs/operators';\nimport _ from 'lodash';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { LocalStorageService } from 'ngx-webstorage';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { DateTime } from 'luxon';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { Feature } from 'src/app/shared/models/enums/feature.enum';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { Command } from 'src/app/shared-features/grid/models/grid-options.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { PropagationMode } from 'src/app/shared/models/enums/control-propagation-mode.enum';\nimport { of } from 'rxjs';\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\n\n/** Табличное представление таймшита. */\n@Component({\n selector: 'wp-table-view',\n templateUrl: './table-view.component.html',\n styleUrls: ['./table-view.component.scss'],\n providers: [CellsOrchestratorService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableViewComponent implements OnInit, OnDestroy {\n // Constants.\n public readonly columnsWidths: Record = {\n taskColumnWidth: 335,\n checkBoxColumnWidth: 40,\n roleRateColumnWidth: 110,\n activityColumnWidth: 110,\n customColumnWidth: 110,\n projectCostCenterColumnWidth: 110,\n projectTariffColumnWidth: 110,\n };\n public readonly propagationMode = PropagationMode.onExitFromEditing;\n public readonly routeMode = RouteMode;\n public readonly = true;\n public hasLinesInStorage = signal(false);\n public addingCommands: Command[];\n public fixTableColumnCount = 0;\n public fixTableWidth: number;\n public dataTableWidth: number;\n public days: Day[] = [];\n public totalHours: number;\n /** Number of scheduled hours for timesheet. */\n public totalSchedule: number;\n\n private destroyRef = inject(DestroyRef);\n\n public get template(): TimesheetTemplate {\n return this.service.timesheet?.template;\n }\n\n public get timeOffRequests(): TimeOffRequest[] {\n return this.service.timesheet?.timeOffRequests;\n }\n\n constructor(\n public navigationService: NavigationService,\n public service: TimesheetCardService,\n public timesheetCacheService: TimeSheetCacheService,\n private autosave: SavingQueueService,\n private stopwatchService: StopwatchService,\n private notification: NotificationService,\n private fb: UntypedFormBuilder,\n private cellsOrchestrator: CellsOrchestratorService,\n private translate: TranslateService,\n private customFieldService: CustomFieldService,\n private app: AppService,\n private blockUI: BlockUIService,\n private changeDetector: ChangeDetectorRef,\n private localStorageService: LocalStorageService,\n private infoPopupService: InfoPopupService,\n ) {\n cellsOrchestrator.selectedCells$\n .pipe(\n filter((v) => v > 1),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.infoPopupService.close());\n }\n\n ngOnInit() {\n this.addingCommands = [];\n\n this.addingCommands.push({\n handlerFn: () => this.copyLines(),\n name: 'copyLines',\n label: 'timesheets.card.actions.copyLines',\n });\n\n if (this.app.session.configuration.copyHoursAllowed) {\n this.addingCommands.push({\n name: 'copyLinesWithHours',\n handlerFn: () => this.copyLines(true),\n label: 'timesheets.card.actions.copyLinesWithHours',\n });\n }\n\n this.addingCommands.push({\n name: 'createLinesFromResourcePlan',\n handlerFn: () => this.createLinesFromResourcePlan(),\n label: 'timesheets.card.actions.createLinesFromResourcePlan',\n });\n\n if (this.app.session.configuration.copyHoursAllowed) {\n this.addingCommands.push({\n name: 'createLinesFromResourcePlanWithHours',\n handlerFn: () => this.createLinesFromResourcePlan(true),\n label: 'timesheets.card.actions.createLinesFromResourcePlanWithHours',\n });\n }\n\n if (\n this.app.checkFeature(Feature.timeOff) &&\n this.app.checkEntityPermission('TimeOffRequest', PermissionType.Modify)\n ) {\n this.addingCommands.push({\n name: 'addTimeOffRequest',\n handlerFn: () => this.addTimeOffRequest(),\n label: 'timesheets.card.actions.addTimeOffLine',\n });\n }\n\n this.service.timesheet$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.fillOutDays();\n this.calculateWidth();\n\n this.service.fillOutDataLines();\n this.service.fillOutIssueDataLines();\n\n if (!this.service.timesheet.editAllowed) {\n this.service.dataLines.disable({ emitEvent: false });\n }\n\n this.readonly = !this.service.timesheet.editAllowed;\n this.cellsOrchestrator.init();\n\n this.calculateTotals();\n });\n\n this.service.selectAllControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const value = this.service.selectAllControl.value as boolean;\n this.service.selectControls.controls.forEach(\n (control: UntypedFormControl) => {\n control.setValue(value, { emitEvent: false });\n },\n );\n });\n\n this.service.selectControls.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const values = this.service.selectControls.value as boolean[];\n\n if (values.length === 0 || values.some((v) => !v)) {\n this.service.selectAllControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.service.linesUpdated$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.calculateTotals();\n this.changeDetector.markForCheck();\n });\n\n this.hasLinesInStorage.set(\n this.localStorageService.retrieve(this.service.timesheetLinesStorageName)\n ?.length > 0,\n );\n }\n\n ngOnDestroy(): void {\n this.cellsOrchestrator.dispose();\n }\n\n public hasSelectedLines(): boolean {\n return (this.service.selectControls.value as boolean[]).some(\n (control) => control,\n );\n }\n\n /** Deletes selected lines. */\n public removeLines(): void {\n const removeNextLine = () => {\n if (!this.hasSelectedLines()) {\n setTimeout(() => this.cellsOrchestrator.reset());\n return;\n }\n\n const selectedLines = this.service.selectControls.value as boolean[];\n const index = selectedLines.findIndex((sl) => sl);\n\n const needStopStopwatch =\n this.stopwatchService.stopwatch?.timeSheetLineId ===\n this.service.dataLines.at(index).value.id;\n\n if (needStopStopwatch) {\n this.notification.warningLocal('timesheets.stopwatchMustBeStopped');\n this.service.selectControls.at(index).setValue(false);\n } else {\n const id = this.service.dataLines.at(index).getRawValue().id;\n this.service.dataLines.removeAt(index);\n this.service.selectControls.removeAt(index);\n this.autosave.addToQueue(\n id,\n this.service.timeSheetLineCollection\n .entity(id)\n .delete({ withResponse: true })\n .pipe(\n tap((result: TimesheetLine) => {\n this.service.resolveIndirectUpdates({\n updated: {\n timeAllocation: result.updated.TimeAllocation,\n timeSheetLine: result.updated.TimeSheetLine,\n },\n });\n removeNextLine();\n }),\n ),\n );\n }\n };\n\n removeNextLine();\n }\n\n /** Copies selected lines to the buffer. */\n public copyLinesToStorage() {\n const result: Partial[] = [];\n\n this.service.selectControls.controls.forEach((control, index) => {\n if (control.value) {\n const selectedLine = this.service.dataLines.at(index);\n\n if (selectedLine.value.task?.projectTask) {\n const data: Partial = {};\n this.customFieldService.assignValues(\n data,\n selectedLine.value,\n 'TimeSheetLine',\n );\n data.task = _.cloneDeep(selectedLine.value.task);\n data.activity = _.cloneDeep(selectedLine.value.activity);\n data.role = _.cloneDeep(selectedLine.value.role);\n data.projectCostCenter = _.cloneDeep(\n selectedLine.value.projectCostCenter,\n );\n data.projectTariff = _.cloneDeep(selectedLine.value.projectTariff);\n\n result.push(data);\n }\n }\n });\n\n if (result.length > 0) {\n this.localStorageService.store(\n this.service.timesheetLinesStorageName,\n result,\n );\n\n this.hasLinesInStorage.set(true);\n\n this.notification.successLocal('shared.messages.copiedToClipboard');\n }\n }\n\n /** Pastes lines from the buffer. */\n public async pasteLinesFromStorage(): Promise {\n const linesData: Partial[] = this.localStorageService\n .retrieve(this.service.timesheetLinesStorageName)\n ?.map((lineData: Partial) => ({\n ...lineData,\n id: Guid.generate(),\n }));\n const newLines: Partial[] = [];\n\n for (const lineData of linesData) {\n this.blockUI.start();\n\n const newLine: Partial = { task: lineData.task };\n this.customFieldService.assignValues(newLine, lineData, 'TimeSheetLine');\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.service.checkIfTaskCanBeUsed(lineData.task).pipe(\n switchMap((taskCanBeUsed) => {\n if (!taskCanBeUsed) {\n this.notification.warningLocal(\n 'timesheets.card.messages.taskCannotBeUsed',\n { name: lineData.task.projectTask.name },\n );\n\n return of(null);\n }\n\n return this.service.checkAndFillTimeSheetLine(newLine, lineData);\n }),\n switchMap((taskCanBeUsed) =>\n taskCanBeUsed\n ? this.service.timeSheetLineCollection\n .insert({\n ...this.service.getTimesheetLineToSave(\n lineData,\n this.service.dataLines.controls.length,\n ),\n timeSheetId: this.service.timesheet.id,\n })\n .pipe(\n tap((createdLine: TimesheetLine) => {\n const group = this.service.addLine(false);\n group.patchValue(\n {\n ...newLine,\n ...createdLine,\n },\n { emitEvent: false },\n );\n newLines.push(newLine);\n }),\n )\n : of(null),\n ),\n ),\n );\n\n await this.autosave.save();\n }\n\n newLines.forEach((_, index) => {\n this.service.selectControls\n .at(this.service.dataLines.length - 1 - index)\n ?.setValue(true);\n });\n\n this.hasLinesInStorage.set(false);\n this.localStorageService.clear(this.service.timesheetLinesStorageName);\n }\n\n /**\n * Moves selected rows up or down in the timesheet.\n *\n * @param direction The direction to move the lines. Can be 'Up' or 'Down'.\n */\n public moveLines(direction: 'Up' | 'Down'): void {\n const directionSign = direction === 'Up' ? -1 : 1;\n const lineIndexesToMove = [];\n this.service.selectControls.value.forEach((selectControl, index) => {\n if (selectControl) {\n lineIndexesToMove.push(index);\n }\n });\n\n if (!lineIndexesToMove.length) return;\n\n const moveNextLine = () => {\n const moveIndex =\n direction === 'Up'\n ? lineIndexesToMove.shift()\n : lineIndexesToMove.pop();\n\n // If line is first and no need to move it up\n if (direction === 'Up' && moveIndex === 0) {\n if (lineIndexesToMove.length) {\n moveNextLine();\n }\n return;\n }\n // If line is last and no need to move it down\n if (\n direction === 'Down' &&\n moveIndex === this.service.dataLines.controls.length - 1\n ) {\n if (lineIndexesToMove.length) {\n moveNextLine();\n }\n return;\n }\n const lineToMove = this.service.dataLines.controls[moveIndex];\n this.autosave.addToQueue(lineToMove.value.id, () =>\n this.service.timeSheetLineCollection\n .entity(lineToMove.value.id)\n .patch(\n {\n rowVersion: lineToMove.value.rowVersion,\n orderNumber: moveIndex + directionSign,\n },\n {\n withResponse: true,\n },\n )\n .pipe(\n tap((result: TimesheetLine) => {\n lineToMove.patchValue(result, { emitEvent: false });\n\n result.updated.TimeSheetLine?.forEach((line) => {\n this.service\n .getLine(line.id)\n ?.patchValue(line, { emitEvent: false });\n });\n\n const group = this.service.dataLines.at(moveIndex);\n this.service.dataLines.removeAt(moveIndex, { emitEvent: false });\n this.service.dataLines.insert(moveIndex + directionSign, group, {\n emitEvent: false,\n });\n\n const control = this.service.selectControls.at(moveIndex);\n this.service.selectControls.removeAt(moveIndex, {\n emitEvent: false,\n });\n this.service.selectControls.insert(\n moveIndex + directionSign,\n control,\n {\n emitEvent: false,\n },\n );\n\n this.service.emitLinesUpdated();\n\n if (lineIndexesToMove.length) {\n moveNextLine();\n } else {\n setTimeout(() => this.cellsOrchestrator.reset());\n }\n }),\n ),\n );\n };\n\n moveNextLine();\n }\n\n /** Creates timesheet line. */\n public createLine(): void {\n const group = this.service.addLine();\n const data: Partial = {\n timeSheetId: this.service.timesheet.id,\n orderNumber: this.service.dataLines.controls.length - 1,\n };\n\n this.customFieldService.enrichFormGroupWithDefaultValues(\n group,\n 'TimeSheetLine',\n );\n\n this.autosave.addToQueue(\n Guid.generate(),\n this.service.timeSheetLineCollection\n .insert(Object.assign({}, group.getRawValue(), data))\n .pipe(\n tap((result) => {\n group.patchValue(result, { emitEvent: false });\n }),\n ),\n );\n }\n\n /** Copies lines from the previous timesheet.\n *\n * @param withHours include hours\n */\n public copyLines(withHours?: boolean) {\n this.service.copyLines(withHours);\n }\n\n /** Creates lines from the resource plan.\n *\n * @param withHours include hours\n */\n public createLinesFromResourcePlan(withHours?: boolean) {\n this.service.createLinesFromResourcePlan(withHours);\n }\n\n /** Adds an time-off request. */\n public addTimeOffRequest() {\n this.service.createTimeOffRequest();\n }\n\n /** Returns of the hours of time off during the day.\n *\n * @param request time-off request\n * @param day day on which\n *\n * @returns hours\n */\n public getDayOffHours(request: TimeOffRequest, day: Day): number {\n const allocation = request.timeAllocations.find((a) => a.date === day.date);\n return allocation?.hours;\n }\n\n /** Returns of the hours of time off during the period.\n *\n * @param request time-off request\n *\n * @returns hours\n */\n public geTimeOffRequestHours(request: TimeOffRequest): number {\n let hours = 0;\n\n this.days.forEach((day) => {\n const allocation = request.timeAllocations.find(\n (a) => a.date === day.date,\n );\n hours += allocation?.hours ?? 0;\n });\n\n return hours;\n }\n\n /** Calculates table widths. */\n private calculateWidth() {\n this.fixTableColumnCount = 2;\n\n this.fixTableWidth =\n this.columnsWidths.taskColumnWidth +\n this.columnsWidths.checkBoxColumnWidth;\n\n if (this.template.showBillCode) {\n this.fixTableWidth += this.columnsWidths.activityColumnWidth;\n this.fixTableColumnCount++;\n }\n\n if (this.template.showActivity) {\n this.fixTableWidth += this.columnsWidths.activityColumnWidth;\n this.fixTableColumnCount++;\n }\n\n if (this.template.showRole) {\n this.fixTableWidth += this.columnsWidths.roleRateColumnWidth;\n this.fixTableColumnCount++;\n }\n\n if (this.template.showProjectCostCenter) {\n this.fixTableWidth += this.columnsWidths.projectCostCenterColumnWidth;\n this.fixTableColumnCount++;\n }\n\n if (this.template.showTariff) {\n this.fixTableWidth += this.columnsWidths.projectTariffColumnWidth;\n this.fixTableColumnCount++;\n }\n\n this.fixTableWidth +=\n this.columnsWidths.customColumnWidth *\n this.service.lineCustomFields.length;\n this.fixTableColumnCount += this.service.lineCustomFields.length;\n this.dataTableWidth = this.days.length * 47 + 53;\n }\n\n /** Fills the timesheet days array. */\n private fillOutDays() {\n this.days = [];\n this.totalSchedule = 0;\n\n // Заполняем дни.\n const dateTo = DateTime.fromISO(this.service.timesheet.dateTo);\n let currentDate = DateTime.fromISO(this.service.timesheet.dateFrom);\n\n while (currentDate <= dateTo) {\n let hintAddon = '';\n let schedule = 0;\n let isExceptionDay = false;\n\n if (this.service.timesheet.schedule) {\n const scheduleDay = this.service.timesheet.schedule.find(\n (d) => d.date === currentDate.toISODate(),\n );\n if (scheduleDay) {\n isExceptionDay = scheduleDay.hours === 0;\n schedule = scheduleDay.hours;\n\n // Добавить длительность по расписанию к общему итогу.\n this.totalSchedule += scheduleDay.hours ?? 0;\n\n hintAddon +=\n '\\n' +\n this.translate.instant('timesheets.dayHintWorkHours', {\n hours: scheduleDay.hours,\n });\n }\n }\n\n const day = {\n schedule,\n date: currentDate.toFormat('yyyy-MM-dd'),\n header: currentDate.toFormat('dd.LL'),\n hint: currentDate.toLocaleString(DateTime.DATE_FULL) + hintAddon,\n stamp: currentDate.valueOf(),\n isException: isExceptionDay,\n isToday: currentDate.hasSame(DateTime.now(), 'day'),\n } as Day;\n this.days.push(day);\n currentDate = currentDate.plus({ days: 1 });\n }\n }\n\n private calculateTotals(): void {\n this.totalHours = 0;\n this.days.forEach((day) => (day.totalHours = 0));\n\n const lines = this.service.dataLines.getRawValue() as Line[];\n\n lines.forEach((line) => {\n line.allocations.forEach((allocation, index) => {\n this.days[index].totalHours += allocation.hours ?? 0;\n this.totalHours += allocation.hours ?? 0;\n });\n });\n\n this.days.forEach((day) => {\n this.service.timesheet.timeOffRequests.forEach((line) => {\n const allocation = line.timeAllocations.find(\n (a) => a.date === day.date,\n );\n\n if (allocation) {\n day.totalHours += allocation.hours ?? 0;\n this.totalHours += allocation.hours ?? 0;\n }\n });\n\n this.service.timesheet.issues.forEach((line) => {\n const allocations = line.timeAllocations.filter(\n (a) => a.date === day.date,\n );\n\n allocations.forEach((allocation) => {\n day.totalHours += allocation.hours ?? 0;\n this.totalHours += allocation.hours ?? 0;\n });\n });\n });\n }\n}\n","\n
    \n
    \n @if (!readonly) {\n
    \n @if (navigationService.getAppName() !== 'my') {\n \n  {{\n 'timesheets.card.actions.addLine' | translate\n }}\n \n } @else {\n
    \n \n  {{\n 'timesheets.card.actions.addLine' | translate\n }}\n \n
    \n
    \n
    \n @for (command of addingCommands; track command) {\n \n {{ command.label | translate }}\n \n }\n
    \n
    \n \n
    \n
    \n }\n
    \n }\n\n @if (hasSelectedLines() && !readonly) {\n
    \n \n \n \n
    \n\n
    \n \n \n \n\n \n \n \n
    \n }\n\n
    \n @if (hasSelectedLines()) {\n \n {{ 'shared.actions.copy' | translate }}\n \n }\n\n @if (hasLinesInStorage() && !readonly) {\n \n \n \n }\n
    \n
    \n
    \n\n
    \n
    \n \n \n\n \n \n \n\n @if (template?.showClient) {\n \n }\n\n @if (!template?.showClient) {\n \n {{ 'timesheets.card.columns.taskWithoutClient.header' | translate }}\n \n }\n\n @if (template?.showBillCode) {\n \n }\n\n @if (template?.showActivity) {\n \n }\n\n @if (template?.showRole) {\n \n }\n\n @if (template?.showProjectCostCenter) {\n \n }\n\n @if (template?.showTariff) {\n \n }\n\n @for (field of service.lineCustomFields; track field) {\n \n }\n \n \n
    \n
    \n \n
    \n
    \n {{ 'timesheets.card.columns.task.header' | translate }}\n \n {{ 'shared2.props.billCode' | translate }}\n \n {{ 'timesheets.card.columns.activity.header' | translate }}\n \n {{ 'timesheets.card.columns.role.header' | translate }}\n \n {{ 'timesheets.card.columns.projectCostCenter.header' | translate }}\n \n {{ 'timesheets.card.columns.projectTariff.header' | translate }}\n \n {{ field.viewConfiguration.label }}\n
    \n
    \n\n
    \n \n \n\n \n @if (!service.dataLines.controls.length) {\n \n \n \n }\n\n \n @for (formGroup of service.dataLines.controls; track $index) {\n \n \n\n \n\n @if (template?.showBillCode) {\n \n }\n\n @if (template?.showActivity) {\n \n }\n\n @if (service.timesheet?.template.showRole) {\n \n }\n\n @if (service.timesheet?.template.showProjectCostCenter) {\n \n }\n\n @if (service.timesheet?.template.showTariff) {\n \n }\n\n @for (field of service.lineCustomFields; track field) {\n \n }\n \n }\n\n @if (service.issueLines.controls?.length > 0) {\n \n \n \n }\n\n \n @for (issueGroup of service.issueLines.controls; track issueGroup) {\n \n \n\n @if (issueGroup.getRawValue().task.project) {\n \n } @else {\n \n }\n\n @if (template?.showBillCode) {\n \n }\n\n @if (template?.showActivity) {\n \n }\n\n @if (service.timesheet?.template.showRole) {\n \n }\n\n @if (service.timesheet?.template.showProjectCostCenter) {\n \n }\n\n @if (service.timesheet?.template.showTariff) {\n \n }\n \n }\n\n @if (timeOffRequests?.length > 0) {\n \n \n \n }\n\n @for (request of timeOffRequests; track request.id) {\n \n \n \n }\n \n
    \n @if (readonly) {\n

    \n {{ 'timesheets.card.empty.emptyInReadonly' | translate }}\n

    \n } @else {\n

    \n {{ 'timesheets.card.empty.empty' | translate | translateCut: 0 }}\n
    \n\n \n\n {{ 'timesheets.card.empty.empty' | translate | translateCut: 2 }}\n\n \n\n {{ 'timesheets.card.empty.empty' | translate | translateCut: 4 }}\n

    \n }\n
    \n
    \n \n
    \n
    \n \n
    \n {{ 'timesheets.card.issuesSection' | translate }}\n
    \n {{ 'components.tableViewComponent.props.noProject' | translate }}\n
    \n {{ 'timesheets.card.timeOfRequestsSection' | translate }}\n
    \n \n {{ request.timeOffType.name }}\n \n \n
    \n
    \n\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n\n \n
    \n \n \n \n @for (day of days; track day) {\n \n {{ day.header }}\n \n }\n\n \n \n \n
    \n {{ 'timesheets.total' | translate }}\n
    \n
    \n\n
    \n \n \n @for (day of days; track day) {\n \n }\n \n \n\n \n @if (!service.dataLines.controls.length) {\n \n \n \n }\n\n @for (formGroup of service.dataLines.controls; track lineIndex; let lineIndex = $index) {\n \n \n @for (\n allocation of $any(formGroup).controls.allocations.controls;\n track dayIndex;\n let dayIndex = $index\n ) {\n \n }\n \n\n \n \n }\n\n @if (service.issueLines.controls?.length > 0) {\n \n \n \n }\n\n @for (\n issueGroup of service.issueLines.controls;\n track lineIndex;\n let lineIndex = $index\n ) {\n \n \n @for (\n allocation of $any(issueGroup).controls.allocations.controls;\n track dayIndex;\n let dayIndex = $index\n ) {\n \n }\n \n\n \n \n }\n\n @if (timeOffRequests?.length > 0) {\n \n \n \n }\n\n @for (request of timeOffRequests; track request.id) {\n \n @for (day of days; track $index) {\n \n }\n\n \n \n }\n \n
    \n {{ formGroup.value.totalHours | wpTimeDuration: totalSchedule : false }}\n
    \n {{ issueGroup.getRawValue().totalHours | wpTimeDuration: totalSchedule : false }}\n
    \n {{ getDayOffHours(request, day) | wpTimeDuration: day.schedule : false }}\n \n {{ geTimeOffRequestHours(request) | wpTimeDuration: totalSchedule : false }}\n
    \n
    \n\n
    \n \n \n \n @for (day of days; track $index) {\n \n }\n\n \n \n \n
    \n {{ day.totalHours | wpTimeDuration: day.schedule : false }}\n \n {{ totalHours | wpTimeDuration: totalSchedule : false }}\n
    \n
    \n \n\n\n\n \n \n \n\n @if (template?.showBillCode) {\n \n }\n\n @if (template?.showActivity) {\n \n }\n\n @if (template?.showRole) {\n \n }\n\n @if (template?.showProjectCostCenter) {\n \n }\n\n @if (template?.showTariff) {\n \n }\n\n @for (field of service.lineCustomFields; track field) {\n \n }\n \n\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectorRef,\n inject,\n DestroyRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { TimesheetTemplate } from 'src/app/shared/models/entities/settings/timesheet-template.model';\nimport { TimeAllocation } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { TimesheetCardService } from '../../core/timesheet-card.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Line } from '../../shared/models/line.model';\nimport { auditTime, map } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport _ from 'lodash';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\nimport {\n MetaEntityBaseProperty,\n MetaEntityDirectoryProperty,\n MetaEntityPropertyType,\n} from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Observable, of } from 'rxjs';\nimport { DirectoriesService } from 'src/app/shared/services/directories.service';\nimport { TimesheetDetailEntry } from 'src/app/timesheets/card/table-view/timesheet-details/models/timesheet-detail-entry..model';\n\n@Component({\n selector: 'wp-timesheet-details',\n templateUrl: './timesheet-details.component.html',\n styleUrls: ['./timesheet-details.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetDetailsComponent implements OnInit {\n @Input() template: TimesheetTemplate;\n\n entries: TimesheetDetailEntry[] = [];\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public timesheetCardService: TimesheetCardService,\n private cdr: ChangeDetectorRef,\n private translate: TranslateService,\n private sortService: SortService,\n private directoriesService: DirectoriesService,\n ) {}\n\n /**\n * Retrieves the custom field value for a given entry and field.\n *\n * This method checks if the field is of type directory. If it is, it fetches the directory entries\n * and maps the entry's allocation value to the corresponding directory entry's name. If the field\n * is not of type directory, it simply returns the allocation value for the given field name.\n *\n * @param entry The entry object containing the allocation data.\n * @param field The MetaEntityBaseProperty object representing the custom field.\n * @returns An Observable of the custom field value as a string.\n */\n public getCustomFieldValue(\n entry: TimesheetDetailEntry,\n field: MetaEntityBaseProperty,\n ): Observable {\n const dataField = field.name;\n\n if (field.type === MetaEntityPropertyType.directory) {\n const directoryField = field as MetaEntityDirectoryProperty;\n\n return this.directoriesService\n .getDirectoryEntries(directoryField.directoryId)\n .pipe(\n map((entries) => {\n const a = entries.find(\n (e) => e.id === entry.allocation[directoryField.keyProperty],\n );\n return a?.name;\n }),\n );\n }\n return of(entry.allocation[dataField]);\n }\n\n /**\n * Checks if a given TimeAllocation has any details.\n *\n * This method checks if the allocation has any comments or if any of the custom fields have values.\n *\n * @param allocation The TimeAllocation to check.\n * @returns true if the allocation has details, false otherwise.\n */\n private hasDetails(allocation: TimeAllocation): boolean {\n if (allocation.description) {\n return true;\n }\n\n let result = false;\n this.timesheetCardService.allocationCustomFields.forEach((field) => {\n let key: string;\n if (field.type === MetaEntityPropertyType.directory) {\n const directoryField = field as MetaEntityDirectoryProperty;\n key = directoryField.keyProperty;\n } else {\n key = field.name;\n }\n\n if (allocation[key]) {\n result = true;\n }\n });\n return result;\n }\n\n public trackById = (index: number, row: any): string => row.allocation.id;\n\n public updateView(lines: Line[]) {\n if (!this.template) {\n return;\n }\n this.entries = [];\n\n lines.forEach((line) => {\n line.allocations.forEach((allocation) => {\n if (this.hasDetails(allocation)) {\n const entry: TimesheetDetailEntry = {\n allocation,\n firstLine: '',\n secondLine: '',\n activityName: '',\n roleName: '',\n projectCostCenterName: '',\n projectTariffName: '',\n schedule:\n this.timesheetCardService.timesheet.schedule.find(\n (s) => s.date === allocation.date,\n )?.hours ?? 0,\n };\n\n this.entries.push(entry);\n\n // Установка строки с клиентом и проектом.\n if (line.task.project) {\n let clientAndProjectString = '';\n\n if (this.template.showClient) {\n if (!line.task.client) {\n clientAndProjectString = `[${this.translate.instant(\n 'timesheets.card.taskSelector.withoutClient',\n )}]`;\n } else {\n clientAndProjectString = line.task.client.name;\n }\n\n if (!line.task.isMainTask) {\n clientAndProjectString += ' > ';\n }\n }\n\n if (!line.task.isMainTask) {\n clientAndProjectString += line.task.project.name;\n }\n\n entry.firstLine = clientAndProjectString;\n\n // Установить наименование задачи.\n if (line.task.projectTask) {\n entry.secondLine = line.task.projectTask.name;\n }\n }\n\n // Установить наименование вида работ.\n if (line.activity) {\n entry.activityName = line.activity.name;\n }\n\n // Установить наименование вида работ.\n if (line.role) {\n entry.roleName = line.role.name;\n }\n\n // Set cost center.\n if (line.projectCostCenter) {\n entry.projectCostCenterName = line.projectCostCenter.name;\n }\n\n /* Set tariff. */\n if (line.projectTariff) {\n entry.projectTariffName = line.projectTariff.name;\n }\n }\n });\n });\n\n this.entries = _.orderBy(this.entries, 'allocation.date', [\n this.sortService.sortDirection === SortDirection.newest ? 'desc' : 'asc',\n ]);\n\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n this.updateView(this.timesheetCardService.dataLines.value);\n\n this.timesheetCardService.linesUpdated$\n .pipe(auditTime(60), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateView(this.timesheetCardService.dataLines.value);\n });\n\n this.sortService.sortDirection$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((direction) => {\n this.entries = _.orderBy(this.entries, 'allocation.date', [\n direction === SortDirection.newest ? 'desc' : 'asc',\n ]);\n\n this.cdr.markForCheck();\n });\n }\n}\n","
    \n {{ 'timesheets.details.commentsIsEmpty' | translate }}\n
    \n\n 0\"\n>\n \n \n \n {{ 'timesheets.card.columns.date.header' | translate }}\n \n \n {{ 'timesheets.card.columns.task.header' | translate }}\n \n \n {{ 'timesheets.card.columns.taskWithoutClient.header' | translate }}\n \n \n {{ 'timesheets.card.columns.activity.header' | translate }}\n \n \n {{ 'timesheets.card.columns.role.header' | translate }}\n \n @if (template.showProjectCostCenter) {\n \n {{ 'timesheets.card.columns.projectCostCenter.header' | translate }}\n \n }\n @if (template.showTariff) {\n \n {{ 'timesheets.card.columns.projectTariff.header' | translate }}\n \n }\n \n {{ 'timesheets.card.columns.hours.header' | translate }}\n \n @for (field of timesheetCardService.allocationCustomFields; track field) {\n \n {{ field.viewConfiguration.label }}\n \n }\n\n \n {{ 'timesheets.card.columns.comment.header' | translate }}\n \n \n \n \n \n \n {{ entry.allocation.date | date: 'shortDate' }}\n \n \n
    \n {{ entry.firstLine }}\n
    \n
    {{ entry.secondLine }}
    \n \n \n {{ entry.activityName }}\n \n \n {{ entry.roleName }}\n \n @if (template.showProjectCostCenter) {\n \n {{ entry.projectCostCenterName }}\n \n }\n @if (template.showTariff) {\n \n {{ entry.projectTariffName }}\n \n }\n \n {{ entry.allocation.hours | wpTimeDuration: entry.schedule : false }}\n \n @for (field of timesheetCardService.allocationCustomFields; track field) {\n \n {{ getCustomFieldValue(entry, field) | async | wpCustomFieldValue: field }}\n \n }\n\n \n \n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Timesheet } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { AppName } from 'src/app/shared/globals/app-name';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TimesheetCardService } from './core/timesheet-card.service';\nimport { Subject } from 'rxjs';\nimport { Line } from './shared/models/line.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WorkPipe } from 'src/app/shared/pipes/work.pipe';\nimport { PercentPipe } from '@angular/common';\nimport { AppService } from 'src/app/core/app.service';\nimport { StopwatchService } from 'src/app/core/stopwatch.service';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { HeaderIndicator } from 'src/app/shared/components/chrome/form-header2/header-indicator.model';\nimport { takeUntil } from 'rxjs/operators';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { TimesheetLifecycleService } from './core/timesheet-lifecycle.service';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\nimport { WorkLogService } from 'src/app/work-log/work-log.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { DataServiceHot } from 'src/app/core/hot-changes/data-hot.service';\nimport { WebSocketHotChangesService } from 'src/app/core/hot-changes';\nimport { DataNotSavedIndicatorService } from 'src/app/shared/components/features/data-not-saved-indicator/data-not-saved-indicator.service';\n\n@Component({\n selector: 'tmt-timesheet-card',\n templateUrl: './timesheet-card.component.html',\n styleUrls: ['./timesheet-card.component.scss'],\n providers: [\n SavingQueueService,\n DataNotSavedIndicatorService,\n TimesheetCardService,\n TimeSheetCacheService,\n WorkLogService,\n { provide: META_ENTITY_TYPE, useValue: 'TimeSheet' },\n { provide: LifecycleService, useClass: TimesheetLifecycleService },\n { provide: DataService, useClass: DataServiceHot },\n WebSocketHotChangesService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n\n public activeTab: string;\n public readonly = false;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n protected readonly CommentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n private lines: Line[] = [];\n\n private labelHours = this.translate.instant(\n 'timesheets.card.props.totals.hours',\n );\n private labelBillableHours = this.translate.instant(\n 'timesheets.card.props.totals.billable',\n );\n\n private labelSchedule = this.translate.instant(\n 'timesheets.card.props.totals.schedule',\n );\n\n private labelUtilization = this.translate.instant(\n 'timesheets.card.props.totals.utilization',\n );\n\n private destroyed$ = new Subject();\n\n constructor(\n public service: TimesheetCardService,\n public savingQueueService: SavingQueueService,\n public navigation: NavigationService,\n public blockUI: BlockUIService,\n public actionPanelService: ActionPanelService,\n private stopwatchService: StopwatchService,\n public app: AppService,\n private workPipe: WorkPipe,\n private percentPipe: PercentPipe,\n private translate: TranslateService,\n private messageService: MessageService,\n private notification: NotificationService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n private lifecycleService: LifecycleService,\n private dataNotSavedIndicatorService: DataNotSavedIndicatorService,\n ) {\n this.savingQueueService.delayDuration = 0;\n this.stopwatchService.autosaveService = this.savingQueueService;\n }\n\n public ngOnInit(): void {\n this.actionPanelService.setHasAutosave(true);\n\n // Установка главного меню.\n this.actionPanelService.setAdditional([\n {\n title: 'shared.actions.delete',\n hint: 'timesheets.card.actions.delete.hint',\n name: 'delete',\n isBusy: false,\n isVisible: false,\n handler: () => this.delete(),\n },\n {\n title: 'finance.entries.actions.openEntries.title',\n hint: 'finance.entries.actions.openEntries.hint',\n name: 'openEntries',\n isBusy: false,\n isVisible: this.app.checkAppAccess(AppName.Finance),\n handler: () => this.service.goToAccountingEntry(),\n },\n ]);\n\n this.actionPanelService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (this.dataNotSavedIndicatorService.preventLeave) {\n this.messageService\n .confirmLocal('shared2.messages.leavePageMessage')\n .then(\n () => {\n this.service.load();\n this.lifecycleService.reloadLifecycle();\n },\n () => null,\n );\n } else {\n this.service.load();\n this.lifecycleService.reloadLifecycle();\n }\n });\n\n this.lifecycleService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.service.load();\n });\n\n this.service.timesheet$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((timesheet: Timesheet) => {\n this.readonly = !timesheet.editAllowed;\n\n this.calculateTotals();\n this.updateUIState();\n });\n\n this.service.linesUpdated$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.lines = this.service.dataLines.value;\n this.calculateTotals();\n });\n }\n\n ngOnDestroy(): void {\n this.stopwatchService.autosaveService = null;\n this.destroyed$.next();\n }\n\n /** Открыть сведения о пользователе. */\n public openUserInfo() {\n const userId = this.service.timesheet.user.id;\n const target = document.getElementById('timesheet-user');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n\n /** Удаление таймшита. */\n public delete() {\n this.messageService\n .confirmLocal('timesheets.card.messages.deleteConfirmation')\n .then(\n () => {\n this.service.collection\n .entity(this.entityId)\n .delete()\n .subscribe({\n next: () => {\n this.notification.successLocal('shared.messages.deleted');\n this.navigation.goToSelectedNavItem(true);\n },\n error: (error: Exception) => {\n this.messageService\n .error(error.message)\n .then(this.service.load, this.service.load);\n },\n });\n },\n () => null,\n );\n }\n\n /** Рассчитать итоги по таймшиту. */\n private calculateTotals() {\n if (!this.service.timesheet) {\n return;\n }\n\n let hours = 0;\n let schedule = 0;\n let billableHours = 0;\n\n this.lines.forEach((line) =>\n line.allocations?.forEach((allocation) => {\n hours += allocation.hours || 0;\n\n if (allocation.isBillable) {\n billableHours += allocation.hours || 0;\n }\n }),\n );\n\n this.service.timesheet.timeOffRequests.forEach((request) =>\n request.timeAllocations.forEach((allocation) => {\n hours += allocation.hours || 0;\n\n if (allocation.isBillable) {\n billableHours += allocation.hours || 0;\n }\n }),\n );\n\n this.service.timesheet.issues.forEach((issue) =>\n issue.timeAllocations.forEach((allocation) => {\n hours += allocation.hours || 0;\n\n if (allocation.isBillable) {\n billableHours += allocation.hours || 0;\n }\n }),\n );\n\n this.service.timesheet.schedule.forEach((s) => (schedule += s.hours || 0));\n\n const indicators: HeaderIndicator[] = [\n {\n value: this.workPipe.transform(hours),\n description: this.labelHours,\n },\n {\n value: this.workPipe.transform(billableHours),\n description: this.labelBillableHours,\n },\n {\n value: `${this.workPipe.transform(schedule)}`,\n description: this.labelSchedule,\n },\n {\n value: this.percentPipe.transform(\n hours > 0 ? billableHours / hours : 0,\n ),\n description: this.labelUtilization,\n },\n ];\n\n this.service.updateIndicators(indicators);\n }\n\n private updateUIState() {\n this.actionPanelService.action('delete').isShown =\n this.service.timesheet.deleteAllowed;\n }\n}\n","\n\n\n\n \n\n\n\n\n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    {{ 'timesheets.card.props.sendDueDate' | translate }}:
    \n
    \n {{ service.timesheet?.dueDate | date: 'shortDate' }}\n
    \n
    \n\n
    \n
    {{ 'timesheets.card.props.user' | translate }}:
    \n
    \n \n
    \n
    \n @if (app.session.configuration.multiLegalEntity) {\n
    \n
    \n {{ 'timesheets.card.props.legalEntity' | translate }}:\n
    \n
    \n {{\n service.timesheet?.legalEntity?.name\n }}\n
    \n
    \n }\n
    \n \n
    \n
    \n
    \n\n \n
    \n\n \n\n
    \n
    \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n ViewChild,\n} from '@angular/core';\nimport { Timesheet } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TranslateService } from '@ngx-translate/core';\nimport { sortBy } from 'lodash';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { StateService } from '@uirouter/core';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { TimesheetCardService } from '../core/timesheet-card.service';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { DateTime, Interval } from 'luxon';\nimport { HistoryService } from 'src/app/core/history.service';\n\n@Component({\n selector: 'wp-timesheet-header',\n templateUrl: './timesheet-header.component.html',\n styleUrls: ['./timesheet-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetHeaderComponent implements OnChanges {\n @Input() timesheet: Timesheet;\n\n @Input()\n set name(value: string) {\n if (!value) {\n return;\n }\n this._name = value;\n this.title.setTitle(value);\n this.history.addHistory([this.name], this.navigation.getAppName());\n }\n\n get name(): string {\n return this._name;\n }\n\n public header = '';\n private _name: string;\n\n @ViewChild('dropdown') dropdown: NgbDropdown;\n\n /** Список загруженных периодов для выбора через меню. */\n public periods: any[];\n\n /** Признак загрузки списка периодов. */\n public loading: boolean;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private navigation: NavigationService,\n private state: StateService,\n private data: DataService,\n public blockUI: BlockUIService,\n private translate: TranslateService,\n private notification: NotificationService,\n private title: Title,\n private history: HistoryService,\n private message: MessageService,\n public timesheetCardService: TimesheetCardService,\n ) {}\n\n public previous() {\n this.blockUI.start();\n\n // Получаем ИД последующего таймшита.\n this.data\n .collection('TimeSheets')\n .entity(this.timesheet.id)\n .function('WP.GetPreviousTimeSheetId')\n .get()\n .subscribe({\n next: (id) => {\n this.blockUI.stop();\n this.state.go('timesheet', { entityId: id });\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.message.errorLocal(\n 'timesheets.card.header.previousPeriodNotFound',\n );\n } else {\n this.message.error(error.message);\n }\n },\n });\n }\n\n public next() {\n this.blockUI.start();\n\n // Получаем ИД последующего таймшита.\n this.data\n .collection('TimeSheets')\n .entity(this.timesheet.id)\n .function('WP.GetNextTimeSheetId')\n .get()\n .subscribe({\n next: (id) => {\n this.blockUI.stop();\n this.state.go('timesheet', { entityId: id });\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n if (error.code === Exception.BtEntityNotFoundException.code) {\n this.message.errorLocal(\n 'timesheets.card.header.nextPeriodNotFound',\n );\n } else {\n this.message.error(error.message);\n }\n },\n });\n }\n\n public setPeriod(period: any) {\n if (period.isCurrent) {\n return;\n }\n\n // Получаем ИД таймшита по дате.\n this.data\n .collection('TimeSheets')\n .function('WP.GetIdForPeriod')\n .get({\n date: period.from,\n userId: this.timesheet.user.id,\n })\n .subscribe({\n next: (id) => {\n this.blockUI.stop();\n this.state.go('timesheet', {\n entityId: id,\n navigation: 'my.timesheetsAll',\n });\n },\n error: (error: Exception) => {\n this.blockUI.stop();\n this.message.error(error.message);\n },\n });\n }\n\n public openPeriodSelector() {\n if (!this.periods) {\n this.loading = true;\n this.periods = [];\n\n this.data\n .collection('TimeSheets')\n .entity(this.timesheet.id)\n .function('WP.GetSurroundingDatePeriods')\n .query()\n .subscribe({\n next: (data: any[]) => {\n this.periods = data;\n\n this.periods.push({\n from: this.timesheet.dateFrom,\n to: this.timesheet.dateTo,\n isCurrent: true,\n hint: this.translate.instant(\n 'timesheet.card.header.periodCurrentHint',\n ),\n css: ['period-selector-current-timesheet'],\n });\n\n this.periods = sortBy(this.periods, 'from');\n\n this.periods.forEach((period) => {\n const interval = Interval.fromDateTimes(\n DateTime.fromISO(period.from).startOf('day'),\n DateTime.fromISO(period.to).endOf('day'),\n );\n if (interval.contains(DateTime.now())) {\n if (!period.css) {\n period.css = [];\n }\n period.hint = this.translate.instant(\n 'timesheet.card.header.periodCurrentTimeSheetHint',\n );\n period.css.push('period-selector-current-period');\n }\n });\n this.changeDetector.markForCheck();\n this.loading = false;\n },\n error: (error: Exception) => {\n this.changeDetector.markForCheck();\n this.dropdown.close();\n this.periods = null;\n this.loading = false;\n this.notification.error(error.message);\n },\n });\n }\n }\n\n ngOnChanges(): void {\n this.periods = null;\n if (!this.timesheet) {\n return;\n }\n this.header = `${DateTime.fromISO(this.timesheet.dateFrom).toLocaleString(\n DateTime.DATE_FULL,\n )} – ${DateTime.fromISO(this.timesheet.dateTo).toLocaleString(\n DateTime.DATE_FULL,\n )}`;\n }\n}\n","
    \n \n \n \n
    \n
    \n \n
    \n \n\n \n \n \n \n \n \n \n
    {{ period.from | date: 'longDate' }}{{ period.to | date: 'longDate' }}
    \n \n
    \n
    \n \n \n \n\n
    \n
    \n
    {{ indicator.value }}
    \n
    {{ indicator.description | translate }}
    \n
    \n
    \n","import {\n Component,\n OnInit,\n Input,\n Inject,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\n\nimport { VIEW_NAME } from 'src/app/shared/tokens';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Component({\n selector: 'tmt-timesheet-filter',\n templateUrl: './timesheet-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetFilterComponent implements OnInit, FilterDetails {\n @Input() public values: any;\n\n public detailsForm = this.fb.group({\n period: null,\n user: null,\n department: null,\n onlySubordinates: false,\n states: null,\n });\n\n constructor(\n @Inject(VIEW_NAME) public viewName: string,\n public filterService: FilterService,\n private fb: UntypedFormBuilder,\n ) {}\n\n ngOnInit() {\n this.filterService.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.filterService.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(\n this.filterService.values,\n this.detailsForm.value,\n );\n this.filterService.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { TimesheetFilterComponent } from './timesheet-filter.component';\n\n@Injectable()\nexport class TimesheetFilterService extends FilterService {\n public override component: Type = TimesheetFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive: boolean = this.viewName === 'team-all';\n public override placeholder = 'timesheets.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n period: null,\n onlySubordinates: false,\n department: null,\n user: null,\n states: null,\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n /**\n * Determine the entity name based on the list name.\n * The list named 'workflow-task-timesheets', uses query function and require to use navigation property 'workflowEntity'.\n * Otherwise, use simple property 'timeSheet'.\n */\n const entityName =\n this.list.name === 'workflow-task-timesheets'\n ? 'workflowEntity'\n : 'timeSheet';\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n [entityName]: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n or: [{ 'tolower(name)': { contains: text } }],\n },\n });\n }\n\n if (this.values.user) {\n result.push({\n [entityName]: {\n userId: { type: 'guid', value: this.values.user.id },\n },\n });\n }\n\n if (this.values.department) {\n result.push({\n [entityName]: {\n user: {\n departmentId: { type: 'guid', value: this.values.department.id },\n },\n },\n });\n }\n\n if (this.values.onlySubordinates) {\n result.push({\n [entityName]: {\n user: {\n supervisors: {\n any: {\n id: { type: 'guid', value: this.app.session.user.id },\n },\n },\n },\n },\n });\n }\n\n if (this.values.period) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.period,\n );\n\n result.push({\n [entityName]: {\n dateFrom: { le: { type: 'raw', value: dates.periodFinish } },\n },\n });\n\n result.push({\n [entityName]: {\n dateTo: { ge: { type: 'raw', value: dates.periodStart } },\n },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n [entityName]: {\n stateId: { type: 'guid', value: this.values.states[code].id },\n },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n\n public override getDatePeriodUrlParams(): Record {\n return null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n OnInit,\n inject,\n} from '@angular/core';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { TimesheetFilterService } from './filter/timesheet-filter.service';\nimport { StateService } from '@uirouter/core';\nimport { LifecycleListService } from 'src/app/core/lifecycle-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { firstValueFrom, map, tap } from 'rxjs';\nimport { DataService } from 'src/app/core/data.service';\nimport { LIST } from 'src/app/shared/tokens';\nimport { List } from 'src/app/shared/models/inner/list';\nimport { MassOperationComponent } from 'src/app/shared/components/mass-operation/mass-operation.component';\nimport _ from 'lodash';\nimport { AppService } from 'src/app/core/app.service';\nimport { PermissionType } from 'src/app/shared/models/inner/permission-type.enum';\nimport { MenuAction } from 'src/app/shared/models/inner/menu-action';\n\n@Component({\n selector: 'wp-timesheet-list',\n template: '',\n providers: [\n { provide: FilterService, useClass: TimesheetFilterService },\n EntityListService,\n ListService,\n GridService,\n LifecycleListService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TimesheetListComponent implements OnInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private app: AppService,\n private state: StateService,\n private gridService: GridService,\n private actions: ActionPanelService,\n private listService: EntityListService,\n private modalService: NgbModal,\n private filterService: FilterService,\n private data: DataService,\n @Inject(LIST) private list: List,\n\n // Really need.\n private lifecycleListService: LifecycleListService,\n ) {}\n\n public ngOnInit(): void {\n const actions: MenuAction[] = [\n this.actions.getDefaultAction('card', {\n handler: () =>\n this.state.go(`timesheet`, {\n entityId: this.gridService.selectedGroupValue.id,\n }),\n }),\n this.actions.getDefaultAction('delete', {\n handler: () => {\n this.listService.delete();\n },\n }),\n ];\n\n if (this.app.checkPermission('ReAccount', null, PermissionType.Execute)) {\n actions.push({\n name: 'reAccount',\n title: 'components.timeSheetListComponent.actions.reAccount',\n hint: 'components.timeSheetListComponent.actions.reAccount',\n iconClass: '',\n isBusy: false,\n isVisible: false,\n handler: () => this.reAccount(),\n });\n }\n\n this.actions.set(actions);\n\n this.gridService.selectedGroups$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groups: UntypedFormGroup[]) => {\n this.actions.action('card').isShown = groups?.length === 1;\n\n this.actions.action('reAccount').isShown = !!groups.length;\n });\n }\n\n /**\n * Recreates accounting entry for approved timesheets.\n *\n * @description Used to re-account cost and revenue.\n */\n private async reAccount(): Promise {\n const actionButton = this.actions.action('reAccount');\n\n const items: any[] = this.gridService.selectedGroupsValue;\n let ids = items.map((r) => r.id);\n\n const filter = this.filterService.getODataFilter();\n\n const query = {\n select: ['id'],\n };\n\n if (this.gridService.isAllSelected) {\n // NOTE: Handles list queryFunction like in EntityListService.getSource\n const collection = this.list.dataCollection;\n const queryFunc = this.list.queryFunction;\n const source = queryFunc\n ? this.data\n .collection(collection)\n .function(queryFunc)\n .query(null, {\n ...query,\n filter: [...filter, ...this.listService.contextFilter],\n })\n : this.data.collection(collection).query({\n ...query,\n filter: [...filter, ...this.listService.contextFilter],\n });\n\n actionButton.isBusy = true;\n ids = await firstValueFrom(\n source.pipe(\n tap((entities) => entities.forEach((el) => items.push(el))),\n map((entities) => _.uniq(entities.map((entity) => entity.id))),\n ),\n );\n actionButton.isBusy = false;\n }\n\n const ref = this.modalService.open(MassOperationComponent);\n const instance = ref.componentInstance as MassOperationComponent;\n\n instance.massOperationType = 'reAccount';\n instance.entityIds = ids;\n instance.items = _.uniqBy(items, 'id');\n instance.collection = 'TimeSheets';\n\n ref.result.then(\n () => {\n this.gridService.selectGroup(null);\n this.listService.reload();\n },\n () => null,\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TimesheetFilterComponent } from './list/filter/timesheet-filter.component';\nimport { TimesheetCardComponent } from './card/timesheet-card.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TimesheetListComponent } from './list/timesheet-list.component';\nimport { TimesheetHeaderComponent } from './card/timesheet-header/timesheet-header.component';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { TimesheetDetailsComponent } from './card/table-view/timesheet-details/timesheet-details.component';\nimport { TableViewComponent } from './card/table-view/table-view.component';\nimport { TimesheetCellComponent } from './card/shared/timesheet-cell/timesheet-cell.component';\nimport { AllocationInfoComponent } from './card/table-view/allocation-info/allocation-info.component';\nimport { ValidationModalComponent } from './card/shared/validation-modal/validation-modal.component';\nimport { ROUTE_DEFAULT_PARAMS } from 'src/app/app.states';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport {\n LIST,\n MASS_OPERATION_PARAMETERS,\n META_ENTITY_TYPE,\n MULTI_SELECT_LIST,\n VIEW_NAME,\n} from 'src/app/shared/tokens';\nimport { TIMESHEET_LIST } from 'src/app/shared/lists/timesheet.list';\nimport { DataService } from 'src/app/core/data.service';\nimport { AppService } from 'src/app/core/app.service';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { BaseSharedModule } from 'src/app/shared-features/shared/base-shared.module';\nimport { BlockUIService } from 'src/app/core/block-ui.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { MassOperationParameters } from 'src/app/shared/components/mass-operation/model/mass-operation-parameters.model';\nimport { WORKFLOW_TASK_TIMESHEET_LIST } from 'src/app/shared/lists/workflow-task-timesheet.list';\nimport { AllocationIssueInfoComponent } from 'src/app/timesheets/card/table-view/allocation-issue-info/allocation-issue-info.component';\nimport { TimesheetAnalyticBoxComponent } from 'src/app/timesheets/card/shared/timesheet-analytic-box/timesheet-analytic-box.component';\n\n/** Модуль реализует функциональность таймшитов, заявок на отсутствия и заявок на затраты,\n * используемую приложениями MyApp и TeamApp.\n */\n@NgModule({\n declarations: [\n TimesheetListComponent,\n TimesheetFilterComponent,\n TimesheetCardComponent,\n TableViewComponent,\n TimesheetAnalyticBoxComponent,\n TimesheetHeaderComponent,\n TimesheetDetailsComponent,\n TimesheetCellComponent,\n AllocationInfoComponent,\n AllocationIssueInfoComponent,\n ValidationModalComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n BaseSharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'currentTimesheet',\n url: '/timesheets/current?{navigation}&{route}',\n params: {\n routeMode: null,\n entityId: null,\n navigation: 'my.currentTimesheet',\n route: ROUTE_DEFAULT_PARAMS,\n },\n component: TimesheetCardComponent,\n resolve: [\n {\n provide: 'entityId',\n deps: [\n DataService,\n AppService,\n BlockUIService,\n NotificationService,\n ],\n useFactory: StateHelper.resolveCurrentId,\n },\n ],\n },\n {\n name: 'timesheet',\n url: '/timesheets/{entityId:guid}?{navigation}&{route}',\n params: {\n routeMode: null,\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'my.timesheetsAll',\n },\n component: TimesheetCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n\n {\n name: 'timesheetsWithMyTasks',\n url: '/timesheets/with-my-task?{navigation}&{route}',\n resolve: [\n { provide: LIST, useValue: WORKFLOW_TASK_TIMESHEET_LIST },\n { provide: VIEW_NAME, useValue: 'with-my-task' },\n { provide: META_ENTITY_TYPE, useValue: 'TimeSheet' },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'timesheet',\n entityPropertyName: 'timesheet',\n } as MassOperationParameters,\n },\n { provide: MULTI_SELECT_LIST, useValue: true },\n ],\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'my.timesheetsAll',\n routeMode: null,\n view: null,\n },\n component: TimesheetListComponent,\n },\n\n {\n name: 'timesheets',\n url: '/timesheets/{view:viewName}?{navigation}&{route}',\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: TIMESHEET_LIST },\n { provide: META_ENTITY_TYPE, useValue: 'TimeSheet' },\n {\n provide: MASS_OPERATION_PARAMETERS,\n useValue: {\n state: 'timesheet',\n entityPropertyName: 'timesheet',\n } as MassOperationParameters,\n },\n { provide: MULTI_SELECT_LIST, useValue: true },\n ],\n params: {\n route: ROUTE_DEFAULT_PARAMS,\n navigation: 'my.timesheetsAll',\n routeMode: null,\n view: null,\n },\n component: TimesheetListComponent,\n },\n ],\n }),\n CommentsModule,\n ],\n})\nexport class TimesheetsModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n signal,\n inject,\n model,\n} from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { UIRouterModule } from '@uirouter/angular';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n catchError,\n firstValueFrom,\n map,\n Observable,\n of,\n pairwise,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport { DateTime } from 'luxon';\n\nimport { AppService } from 'src/app/core/app.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\nimport { Guid } from 'src/app/shared/helpers/guid';\nimport { User } from 'src/app/shared/models/entities/settings/user.model';\nimport {\n KeysWithName,\n NamedEntity,\n} from 'src/app/shared/models/entities/named-entity.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { TimeAllocation } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { MetaEntityBaseProperty } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\n\nimport { TimesheetTask } from 'src/app/timesheets/card/shared/models/task.model';\n\nimport { WorkLogService } from '../work-log.service';\n\n@Component({\n imports: [NgTemplateOutlet, TranslateModule, SharedModule, UIRouterModule],\n selector: 'tmt-work-log-card',\n styleUrl: './work-log-card.component.scss',\n templateUrl: './work-log-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WorkLogCardComponent implements OnInit {\n public timeEntry = model | null>(null);\n public readonly = model(false);\n public issueNameIsLink = model(false);\n public issue = model();\n\n public showClient: boolean;\n public templateId: string;\n public isSaving = signal(false);\n public isLoading = signal(true);\n public availableFields = signal[]>([]);\n public availableCustomFields = signal([]);\n public form: UntypedFormGroup = this.fb.group({\n id: Guid.generate(),\n user: [null, Validators.required],\n date: DateTime.now().toISODate(),\n hours: [null, [Validators.required, Validators.min(0.01)]],\n projectTariff: null,\n projectCostCenter: null,\n activity: null,\n role: null,\n billCode: null,\n description: null,\n issueId: null,\n timesheetTask: {\n client: null,\n project: null,\n projectTask: null,\n } as TimesheetTask,\n });\n public readonly routeMode = RouteMode;\n\n private readonly destroyRef = inject(DestroyRef);\n\n public get formValues(): any {\n return this.form.getRawValue();\n }\n\n constructor(\n public workLogService: WorkLogService,\n public navigationService: NavigationService,\n private appService: AppService,\n private dataService: DataService,\n private customFieldService: CustomFieldService,\n private notificationService: NotificationService,\n private activeModal: NgbActiveModal,\n private fb: UntypedFormBuilder,\n ) {}\n\n public async ngOnInit(): Promise {\n this.customFieldService.enrichFormGroup(this.form, 'TimeAllocation');\n const userControl = this.form.get('user');\n\n if (this.timeEntry()) {\n this.templateId = this.timeEntry().template?.id;\n this.showClient = this.timeEntry().template?.showClient;\n this.issue.set(this.timeEntry().issue);\n this.form.patchValue({\n user: this.timeEntry().user,\n issueId: this.timeEntry().issueId,\n timesheetTask: {\n client: this.timeEntry().project?.organization,\n project: this.timeEntry().project,\n projectTask: this.timeEntry().projectTask,\n },\n });\n\n const result = await firstValueFrom(\n this.workLogService.timeEntryCollection\n .entity(this.timeEntry().id)\n .get(this.workLogService.timeEntryQuery)\n .pipe(\n catchError((error: Exception) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n ),\n );\n\n if (result) {\n const [availableFields, availableCustomFields] =\n this.workLogService.getAvailableFields(result.template);\n this.availableFields.set(availableFields);\n this.availableCustomFields.set(availableCustomFields);\n this.templateId = result.template?.id;\n this.form.patchValue(result);\n } else {\n this.form.disable();\n this.isLoading.set(false);\n }\n } else {\n const user = await firstValueFrom(\n this.getUser(this.appService.session.user.id),\n );\n\n this.templateId = user.timeSheetTemplate?.id;\n this.showClient = user.timeSheetTemplate?.showClient;\n\n const organization = await firstValueFrom(\n this.getOrganization(this.workLogService.issueProject?.id),\n );\n\n this.form.patchValue({\n user: this.appService.session.user,\n timesheetTask: {\n client: organization,\n project: this.workLogService.issueProject,\n projectTask: this.workLogService.issueProjectTask,\n },\n });\n\n await this.workLogService.setDefaultValues(\n this.appService.session.user.id,\n this.formValues.project?.id,\n this.form,\n this.availableFields(),\n );\n }\n\n if (this.readonly() || this.workLogService.readonly) {\n this.form.disable();\n }\n\n userControl.disable();\n userControl.valueChanges\n .pipe(\n tap(() => {\n this.availableFields.set([]);\n this.availableCustomFields.set([]);\n }),\n switchMap((value) => this.getUser(value.id)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((user) => {\n this.workLogService.dependOnUserFields.forEach((key) => {\n if (key === 'projectTask') {\n this.form.get('timesheetTask').setValue(null, { emitEvent: null });\n } else {\n this.form.get(key).setValue(null, { emitEvent: null });\n }\n });\n this.workLogService.setDefaultValues(\n user.id,\n this.formValues.project?.id,\n this.form,\n this.availableFields(),\n );\n });\n\n this.form\n .get('timesheetTask')\n .valueChanges.pipe(\n startWith(this.formValues.timesheetTask),\n pairwise(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(([previous, current]: [TimesheetTask, TimesheetTask]) => {\n if (previous?.project?.id !== current?.project?.id) {\n this.workLogService.dependOnProjectFields.forEach((key) => {\n this.form.get(key).setValue(null, { emitEvent: null });\n });\n\n this.workLogService.setDefaultValues(\n this.formValues.user?.id,\n current?.project?.id,\n this.form,\n this.availableFields(),\n );\n }\n });\n\n this.isLoading.set(false);\n }\n\n /** Accepts of modal window.*/\n public ok(): void {\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n this.notificationService.warningLocal(\n 'shared.messages.requiredFieldsError',\n );\n\n return;\n }\n\n this.isSaving.set(true);\n\n if (this.timeEntry()) {\n this.updateTimeEntry();\n } else {\n this.createTimeEntry();\n }\n }\n\n /** Closes modal window without save. */\n public cancel(): void {\n this.activeModal.dismiss();\n }\n\n /** Deletes the time entry, then closes modal. */\n public delete(): void {\n this.workLogService.deleteTimeEntry(this.timeEntry(), () =>\n this.activeModal.close(null),\n );\n }\n\n private updateTimeEntry(): void {\n const preparedEntry = this.workLogService.prepareData(this.formValues);\n\n this.workLogService.timeEntryCollection\n .entity(this.form.value.id)\n .patch(preparedEntry)\n .subscribe({\n next: () => {\n this.notificationService.successLocal(\n 'components.workLogCardComponent.messages.updated',\n );\n this.activeModal.close(Object.assign(preparedEntry, this.formValues));\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n private createTimeEntry(): void {\n this.workLogService.timeEntryCollection\n .insert(this.workLogService.prepareData(this.formValues))\n .subscribe({\n next: (timeEntry) => {\n this.notificationService.successLocal(\n 'components.workLogCardComponent.messages.created',\n );\n this.activeModal.close(timeEntry);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this.isSaving.set(false);\n },\n });\n }\n\n private getUser(userId: string): Observable> {\n return this.dataService\n .collection('Users')\n .entity(userId)\n .get>({\n select: ['id', 'name'],\n expand: {\n timeSheetTemplate: {\n select: ['*'],\n expand: {\n customFields: {\n select: ['*'],\n },\n },\n },\n },\n })\n .pipe(\n tap((value) => {\n const [availableFields, availableCustomFields] =\n this.workLogService.getAvailableFields(value.timeSheetTemplate);\n this.availableFields.set(availableFields);\n this.availableCustomFields.set(availableCustomFields);\n }),\n );\n }\n\n private getOrganization(\n projectId: string | null,\n ): Observable {\n return projectId\n ? this.dataService\n .collection('Projects')\n .entity(projectId)\n .get>({\n select: ['id'],\n expand: {\n organization: {\n select: ['id', 'name'],\n },\n },\n })\n .pipe(\n map((value) => value.organization),\n catchError((error) => {\n this.notificationService.error(error.message);\n return of(null);\n }),\n )\n : of(null);\n }\n}\n","\n\n@if (!isLoading()) {\n
    \n
    \n

    \n {{\n (timeEntry()\n ? 'components.workLogCardComponent.props.title'\n : 'components.workLogCardComponent.props.titleNew'\n ) | translate\n }}\n

    \n \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n @if (issueNameIsLink()) {\n \n {{ issue().name }}\n } @else {\n
    \n {{ issue().name }}\n
    \n }\n
    \n\n
    \n \n
    \n
    \n\n @for (property of availableFields(); track property) {\n \n }\n\n
    \n \n \n
    \n
    \n\n @if (availableCustomFields()?.length) {\n \n }\n \n\n
    \n @if (!this.readonly() && !workLogService.readonly && timeEntry()) {\n \n \n \n }\n\n @if (!this.readonly() && !workLogService.readonly) {\n \n {{ (timeEntry() ? 'shared.actions.save' : 'shared.actions.create') | translate }}\n \n }\n\n \n
    \n\n \n
    \n \n \n
    \n
    \n \n}\n","import {\n Component,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n OnInit,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { FormGroup, UntypedFormGroup } from '@angular/forms';\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { UIRouterModule } from '@uirouter/angular';\n\nimport { NavigationService } from 'src/app/core/navigation.service';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TimeAllocation } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { KeysWithName } from 'src/app/shared/models/entities/named-entity.model';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { MetaEntityBaseProperty } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info';\n\nimport { WorkLogService } from 'src/app/work-log/work-log.service';\nimport { TimeInputType } from 'src/app/shared/models/enums/time-input-type';\n\n@Component({\n selector: 'tmt-work-log-item',\n imports: [\n DatePipe,\n NgbTooltipModule,\n TranslateModule,\n SharedModule,\n UIRouterModule,\n ],\n templateUrl: './work-log-item.component.html',\n styleUrl: './work-log-item.component.scss',\n})\nexport class WorkLogItemComponent implements OnInit {\n public timeEntry = model();\n public readonly = input(false);\n\n public availableFields: KeysWithName[] = [];\n public availableCustomFields: MetaEntityBaseProperty[] = [];\n public customFieldsForm: UntypedFormGroup = new FormGroup({});\n public timeInputType = TimeInputType;\n\n protected readonly workLogService = inject(WorkLogService);\n protected readonly navigationService = inject(NavigationService);\n\n private readonly customFieldsService = inject(CustomFieldService);\n private readonly infoPopupService = inject(InfoPopupService);\n private readonly elRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n public ngOnInit(): void {\n [this.availableFields, this.availableCustomFields] =\n this.workLogService.getAvailableFields(this.timeEntry().template);\n\n this.customFieldsService.enrichFormGroup(\n this.customFieldsForm,\n 'TimeAllocation',\n );\n\n this.customFieldsForm.patchValue(this.timeEntry());\n this.customFieldsForm.disable();\n }\n\n /** Opens work-log card in view mode. */\n public async openTimeEntry(): Promise {\n this.workLogService.openTimeEntry(this.timeEntry());\n }\n\n /** Opens work-log card in edit mode. */\n public async editTimeEntry(): Promise {\n const result = await this.workLogService.editTimeEntry(this.timeEntry());\n\n if (result) {\n this.timeEntry.set(result);\n this.customFieldsForm.patchValue(result);\n }\n }\n\n /**\n * Opens user info popup.\n *\n * @param userId\n */\n public openUserInfo(userId: string): void {\n this.infoPopupService.open({\n target: this.elRef.nativeElement.querySelector(`#user-${userId}`),\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n}\n","
    \n
    \n
    \n
    \n {{\n timeEntry().hours || 0\n | wpTimeDuration: 0 : false : timeInputType.HoursAndMinutesHumanized\n }}\n
    \n\n @if (timeEntry().timeSheet) {\n \n {{ timeEntry().timeSheet.state.name }}\n
    \n }\n\n
    \n \n\n
    \n \n {{ timeEntry().user.name }}\n \n
    \n
    \n\n
    \n
    \n \n {{ timeEntry().date | date: 'shortDate' }}\n
    \n
    \n\n
    \n @if (!readonly()) {\n \n \n \n @if (!workLogService.readonly) {\n \n \n \n }\n } @else {\n \n \n \n }\n
    \n
    \n\n @if (\n (timeEntry().project?.organization && timeEntry().template.showClient) ||\n timeEntry().project ||\n timeEntry().projectTask\n ) {\n
    \n @if (timeEntry().project?.organization && timeEntry().template.showClient) {\n \n \n {{ timeEntry().project.organization.name }}\n \n
    \n }\n\n @if (timeEntry().project) {\n \n \n {{ timeEntry().project.name }}\n \n
    \n }\n\n @if (timeEntry().projectTask) {\n \n \n {{ timeEntry().projectTask.name }}\n \n \n }\n \n }\n\n @if (timeEntry().description) {\n
    \n {{ timeEntry().description }}\n
    \n }\n\n
    \n @for (key of availableFields; track key) {\n
    \n \n {{ 'shared2.props.' + key | translate }}\n \n @if (timeEntry()[key]) {\n

    \n {{ timeEntry()[key]?.name }}\n

    \n } @else {\n

    {{ 'shared.valueNotSelected' | translate }}

    \n }\n
    \n }\n\n \n
    \n \n\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable } from '@angular/core';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class WorkLogFilterService extends FilterService {\n public override hasDetails = false;\n public override hasViewSelector = false;\n public override placeholder =\n 'components.workLogFilterService.filter.textInput';\n\n public override getODataFilter(): any {\n const result: any[] = super.getODataFilter();\n const text = this.values.text;\n\n if (text && text.length >= this.minStringLengthForFilter) {\n result.push(\n this.getTextFilter(\n [\n 'description',\n 'user/name',\n 'activity/name',\n 'role/name',\n 'project/name',\n 'projectTask/name',\n 'projectTariff/name',\n 'projectCostCenter/name',\n 'project/organization/name',\n ],\n this.getClearText(text),\n ),\n );\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n text: '',\n };\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { GridModule } from 'src/app/shared-features/grid/grid.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { SpinnerParams } from 'src/app/shared/components/features/loading-indicator/loading-indicator.model';\n\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\n\nimport { WorkLogService } from './work-log.service';\nimport { WorkLogFilterService } from './work-log-filter.service';\nimport { WorkLogItemComponent } from './item/work-log-item.component';\n\n@Component({\n imports: [GridModule, TranslateModule, WorkLogItemComponent, SharedModule],\n providers: [\n WorkLogService,\n SavingQueueService,\n { provide: FilterService, useClass: WorkLogFilterService },\n TimeSheetCacheService,\n ],\n selector: 'tmt-work-log',\n templateUrl: './work-log.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'feed feed--work-log',\n },\n})\nexport class WorkLogComponent {\n public readonly spinnerParams: SpinnerParams = {\n spinnerTopPosition: '3rem',\n spinnerSize: '45px',\n };\n\n constructor(protected workLogService: WorkLogService) {\n this.workLogService.load();\n }\n}\n","
    \n \n\n
    \n @if (!workLogService.readonly) {\n \n \n {{ 'components.workLogComponent.actions.create' | translate }}\n \n }\n
    \n
    \n\n
    \n \n @for (item of workLogService.timeEntries(); track item.id) {\n \n } @empty {\n
    \n {{ 'shared2.messages.noDisplayData' | translate }}\n
    \n }\n \n
    \n","import {\n computed,\n Injectable,\n Injector,\n Optional,\n signal,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n catchError,\n debounceTime,\n firstValueFrom,\n isObservable,\n Observable,\n of,\n tap,\n} from 'rxjs';\nimport _ from 'lodash';\n\nimport { DataService } from 'src/app/core/data.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NotificationService } from 'src/app/core/notification.service';\n\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { SavingQueueService } from 'src/app/shared/services/saving-queue.service';\nimport { CustomFieldService } from 'src/app/shared/components/features/custom-fields/custom-field.service';\nimport { TimeAllocation } from 'src/app/shared/models/entities/base/timesheet.model';\nimport { TimesheetTemplate } from 'src/app/shared/models/entities/settings/timesheet-template.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport {\n KeysWithName,\n NamedEntity,\n} from 'src/app/shared/models/entities/named-entity.model';\nimport { Project } from 'src/app/shared/models/entities/projects/project.model';\nimport { ProjectTask } from 'src/app/shared/models/entities/projects/project-task.model';\nimport { MetaEntityBaseProperty } from 'src/app/shared/models/entities/settings/metamodel.model';\nimport { SortService } from 'src/app/shared/components/features/sort/core/sort.service';\nimport { SortDirection } from 'src/app/shared-features/comments/model/sort-direction.enum';\n\nimport { TimeSheetCacheService } from 'src/app/timesheets/card/core/timesheet-cache.service';\n\nimport { IssueCardService } from 'src/app/issues/card/issue-card.service';\n\nimport { WorkLogCardComponent } from './card/work-log-card.component';\n\n@Injectable()\nexport class WorkLogService {\n private _timeEntries = signal([]);\n public timeEntries = computed(this._timeEntries);\n private _isLoading = signal(true);\n public isLoading = computed(this._isLoading);\n\n public readonly = false;\n public readonly optionalFields = [\n 'billCode',\n 'activity',\n 'role',\n 'projectCostCenter',\n 'projectTariff',\n ] as const satisfies readonly KeysWithName[];\n public readonly dependOnUserFields: Array = [\n 'projectTask',\n 'projectCostCenter',\n 'projectTariff',\n 'activity',\n 'role',\n ];\n public readonly dependOnProjectFields: Array = [\n 'projectCostCenter',\n 'projectTariff',\n 'role',\n ];\n public readonly timeEntryCollection =\n this.dataService.collection('TimeAllocations');\n\n private query: Record;\n\n public get timeEntryQuery(): Record {\n const query = _.cloneDeep(this.query);\n delete query.filter;\n delete query.orderBy;\n return query;\n }\n\n public get issueProject(): Project {\n return this.issueCardService?.projectControl.getRawValue();\n }\n\n public get issueProjectTask(): ProjectTask {\n return this.issueCardService?.projectTaskControl.getRawValue();\n }\n\n constructor(\n private timeSheetCacheService: TimeSheetCacheService,\n @Optional() private issueCardService: IssueCardService | null,\n private dataService: DataService,\n private customFieldService: CustomFieldService,\n private savingQueueService: SavingQueueService,\n private notificationService: NotificationService,\n private sortService: SortService,\n @Optional() private filterService: FilterService | null,\n private modal: NgbModal,\n private injector: Injector,\n private messageService: MessageService,\n private translateService: TranslateService,\n ) {\n this.init();\n\n sortService.sortDirection$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.load();\n });\n\n filterService?.values$\n .pipe(\n tap(() => this._isLoading.set(true)),\n debounceTime(Constants.textInputClientDebounce),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n this.load();\n });\n }\n\n /** Loads work-logs. */\n public async load(): Promise {\n if (!this.issueCardService || !this.filterService) {\n return;\n }\n\n await this.savingQueueService.save();\n\n this.query.orderBy = [\n `date ${this.sortService.sortDirection === SortDirection.oldest ? 'asc' : 'desc'}`,\n ];\n this.query.filter = this.filterService.getODataFilter();\n this.query.filter.push({\n issueId: {\n type: 'guid',\n value: this.issueCardService.issueId,\n },\n });\n\n this.timeEntryCollection.query(this.query).subscribe({\n next: (items) => {\n this._timeEntries.set(items);\n this._isLoading.set(false);\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n this._isLoading.set(false);\n },\n });\n }\n\n /**\n * Prepares time entry to save.\n *\n * @param formValue time entry values.\n * @returns Time allocation.\n */\n public prepareData(formValue: any): Partial {\n const data: Partial = {\n userId: formValue.user.id,\n date: formValue.date,\n hours: formValue.hours || 0,\n description: formValue.description,\n projectTariffId: formValue.projectTariff?.id ?? null,\n activityId: formValue.activity?.id ?? null,\n projectCostCenterId: formValue.projectCostCenter?.id ?? null,\n roleId: formValue.role?.id ?? null,\n issueId: this.issueCardService?.issue.id ?? formValue.issueId,\n projectId: formValue.timesheetTask?.project?.id ?? null,\n projectTaskId: formValue.timesheetTask?.projectTask?.id ?? null,\n billCodeId: formValue.billCode?.id ?? null,\n };\n\n this.customFieldService.assignValues(data, formValue, 'TimeAllocation');\n\n return data;\n }\n\n /**\n * Gets values by field.\n *\n * @param fieldName TimeAllocation property.\n * @param userId\n * @returns `Observable` with data.\n */\n public getValues(\n fieldName: string,\n userId: string,\n projectId: string,\n ): NamedEntity[] | Observable {\n const requestByAnalytic: Record<\n (typeof this.optionalFields)[number],\n Observable\n > = {\n activity: this.timeSheetCacheService.getActivities(userId),\n role: !projectId\n ? of([])\n : this.timeSheetCacheService.getRoles(userId, projectId),\n projectCostCenter: !projectId\n ? of([])\n : this.timeSheetCacheService.getProjectCostCenters(userId, projectId),\n projectTariff: !projectId\n ? of([])\n : this.timeSheetCacheService.getProjectTariffs(userId, projectId),\n billCode: this.timeSheetCacheService.getBillCodes(),\n };\n\n const data$: Observable = requestByAnalytic[fieldName];\n\n return data$.pipe(\n catchError((error) => {\n this.notificationService.error(error.message);\n return of([]);\n }),\n );\n }\n\n /**\n * Enriches form with default values if it's possible.\n *\n * @param userId\n * @param formGroup TimeAllocation formGroup.\n *\n */\n public async setDefaultValues(\n userId: string,\n projectId: string,\n formGroup: UntypedFormGroup,\n availableFields: KeysWithName[],\n ): Promise {\n for (const key of availableFields) {\n let values = this.getValues(key, userId, projectId);\n let primaryValue: NamedEntity | null = null;\n\n if (isObservable(values)) {\n values = await firstValueFrom(values);\n }\n\n if (values.length === 1) {\n formGroup.get(key).setValue(values[0], { emitEvent: false });\n }\n\n if (key === 'projectTariff') {\n primaryValue = (\n values as Array<{ isPrimary: boolean } & NamedEntity>\n ).find((tariff) => tariff.isPrimary);\n }\n\n if (key === 'role') {\n primaryValue = (\n values as Array<{ fromTeamMember: boolean } & NamedEntity>\n ).find((tariff) => tariff.fromTeamMember);\n }\n\n if (key === 'billCode') {\n primaryValue = (\n values as Array<{ isDefault: boolean } & NamedEntity>\n ).find((billCode) => billCode.isDefault);\n }\n\n if (primaryValue) {\n formGroup.get(key).setValue(primaryValue, { emitEvent: false });\n }\n }\n }\n\n /**\n * Gets available fields to show by template settings for time entry.\n *\n * @param template timesheet template.\n * @returns Available fields.\n */\n public getAvailableFields(\n template: TimesheetTemplate,\n ): [KeysWithName[], MetaEntityBaseProperty[]] {\n const availableFields = this.optionalFields.slice(0);\n\n if (!template.showBillCode) {\n availableFields.splice(\n availableFields.findIndex((key) => key === 'billCode'),\n 1,\n );\n }\n\n if (!template.showActivity) {\n availableFields.splice(\n availableFields.findIndex((key) => key === 'activity'),\n 1,\n );\n }\n\n if (!template.showProjectCostCenter) {\n availableFields.splice(\n availableFields.findIndex((key) => key === 'projectCostCenter'),\n 1,\n );\n }\n\n if (!template.showRole) {\n availableFields.splice(\n availableFields.findIndex((key) => key === 'role'),\n 1,\n );\n }\n\n if (!template.showTariff) {\n availableFields.splice(\n availableFields.findIndex((key) => key === 'projectTariff'),\n 1,\n );\n }\n\n const availableCustomFields: MetaEntityBaseProperty[] = [];\n const customFields = this.customFieldService.getList('TimeAllocation');\n\n template.customFields.forEach((templateField) => {\n const field = customFields.find(\n (field) =>\n field.customFieldId === templateField.customFieldId &&\n field.viewConfiguration.isShownInEntityForms,\n );\n\n if (field) {\n availableCustomFields.push(field);\n }\n });\n\n return [availableFields, availableCustomFields];\n }\n\n /**\n * Determines whether time entry is readonly or not.\n *\n * @param timeEntry Time entry.\n * @returns true|false.\n */\n public isTimeEntryReadonly(\n timeEntry: TimeAllocation | Partial,\n ): boolean {\n return !!timeEntry.timeSheet?.state?.isEntityProtected;\n }\n\n /** Opens a modal to create a time entry. */\n public createTimeEntry(): void {\n const modalRef = this.modal.open(WorkLogCardComponent, {\n injector: this.injector,\n });\n\n (modalRef.componentInstance as WorkLogCardComponent).issue.set(\n this.issueCardService?.issue,\n );\n\n modalRef.result.then(\n () => this.load(),\n () => null,\n );\n }\n\n /**\n * Opens a modal to view a time entry.\n *\n * @param timeEntry\n * @returns updated entry.\n */\n public openTimeEntry(timeEntry: Partial): void {\n timeEntry.issue = this.issueCardService.issue;\n\n const modalRef = this.modal.open(WorkLogCardComponent, {\n injector: this.injector,\n });\n const component = modalRef.componentInstance as WorkLogCardComponent;\n component.timeEntry.set(timeEntry);\n component.readonly.set(true);\n\n modalRef.result.finally(() => null);\n }\n\n /**\n * Opens a modal to edit a time entry.\n *\n * @param timeEntry\n * @returns updated entry.\n */\n public async editTimeEntry(\n timeEntry: Partial,\n ): Promise {\n timeEntry.issue = this.issueCardService.issue;\n\n const modalRef = this.modal.open(WorkLogCardComponent, {\n injector: this.injector,\n });\n (modalRef.componentInstance as WorkLogCardComponent).timeEntry.set(\n timeEntry,\n );\n\n try {\n const result: TimeAllocation = await modalRef.result;\n\n // Case of modal deletion.\n if (!result) {\n return;\n }\n\n const updatedEntry = await firstValueFrom(\n this.timeEntryCollection\n .entity(result.id)\n .get(this.timeEntryQuery),\n );\n\n this._timeEntries.update((values) => {\n const item = values.find((item) => item.id === timeEntry.id);\n\n if (item) {\n Object.assign(item, updatedEntry);\n }\n\n return values;\n });\n\n return updatedEntry;\n } catch {\n return null;\n }\n }\n\n /**\n * Deletes time entry.\n *\n * @param timeEntry the time allocation to delete.\n * @param onDelete callback on successful deletion.\n */\n public deleteTimeEntry(\n timeEntry: Partial,\n onDelete?: () => void,\n ): void {\n this.messageService\n .confirm(\n this.translateService.instant('shared2.messages.deleteConfirmation'),\n )\n .then(() => {\n this.timeEntryCollection\n .entity(timeEntry.id)\n .delete()\n .subscribe({\n next: () => {\n this._timeEntries.update((values) =>\n values.filter((v) => v.id !== timeEntry.id),\n );\n this.notificationService.successLocal(\n 'shared2.messages.deleteCompleted',\n );\n\n if (onDelete) {\n onDelete();\n }\n },\n error: (error: Exception) => {\n this.notificationService.error(error.message);\n },\n });\n })\n .catch(() => null);\n }\n\n private init(): void {\n this.readonly = !(this.issueCardService?.issue.editAllowed ?? true);\n this.query = {\n select: ['id', 'date', 'hours', 'description', 'rowVersion'],\n expand: {\n user: {\n select: ['id', 'name'],\n },\n timeSheet: {\n select: ['id'],\n expand: {\n state: {\n select: ['id', 'name', 'code', 'style', 'isEntityProtected'],\n },\n },\n },\n template: {\n select: [\n 'id',\n 'showClient',\n 'showActivity',\n 'showProjectCostCenter',\n 'showRole',\n 'showTariff',\n 'showBillCode',\n ],\n expand: {\n customFields: {\n select: ['*'],\n },\n },\n },\n activity: {\n select: ['id', 'name'],\n },\n role: {\n select: ['id', 'name'],\n },\n project: {\n select: ['id', 'name'],\n expand: {\n organization: {\n select: ['id', 'name'],\n },\n },\n },\n projectTask: {\n select: ['id', 'name'],\n },\n projectTariff: {\n select: ['id', 'name'],\n },\n projectCostCenter: {\n select: ['id', 'name'],\n },\n billCode: {\n select: ['id', 'name'],\n },\n },\n filter: {},\n orderBy: ['date', 'hours'],\n };\n\n this.customFieldService.enrichQuery(this.query, 'TimeAllocation');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { UIRouterGlobals } from '@uirouter/core';\nimport {\n StateBuilderService,\n WorkflowEntityState,\n} from 'src/app/core/state-builder.service';\nimport { GridColumn } from 'src/app/shared-features/grid/models/grid-column.interface';\nimport { GridComponentCell } from 'src/app/shared-features/grid/models/grid-component-cell.interface';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Component({\n selector: 'tmt-workflow-instance-entity-cell',\n templateUrl: './workflow-instance-entity-cell.component.html',\n styleUrls: ['./workflow-instance-entity-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class WorkflowInstanceEntityCellComponent\n implements GridComponentCell, OnInit\n{\n @Input() column: GridColumn;\n @Input() formGroup: UntypedFormGroup;\n @Input() initialValue: unknown;\n\n public state: WorkflowEntityState;\n\n public get groupValue(): any {\n return this.formGroup?.getRawValue();\n }\n\n constructor(\n private stateBuilderService: StateBuilderService,\n private uiRouterGlobals: UIRouterGlobals,\n ) {}\n\n public ngOnInit(): void {\n this.state = this.stateBuilderService.getStateForWorkflowEntity(\n this.groupValue.id,\n this.groupValue.entity.type,\n this.groupValue.entity.id,\n );\n\n this.state.params['navigation'] = this.uiRouterGlobals.params?.navigation;\n this.state.params['routeMode'] = RouteMode.continue;\n }\n}\n","{{ groupValue.entity.name }}\n","import { Injectable } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\n\n@Injectable()\nexport class WorkflowInstanceFilterService extends FilterService {\n public override hasDetails = false;\n public override hasViewSelector = false;\n public override hasAllowInactive = false;\n\n public override placeholder = 'workflow.list.filter.placeholder';\n\n protected override getDefaultValues = (): any => ({\n text: '',\n });\n\n public override getODataFilter() {\n const result: any[] = [];\n\n let text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n text = this.getClearText(text);\n\n result.push({\n or: [\n {\n entity: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': { contains: text },\n },\n },\n {\n workflowDeclaration: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': { contains: text },\n },\n },\n {\n workflowDeclaration: {\n lifecycle: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'tolower(name)': { contains: text },\n },\n },\n },\n ],\n });\n }\n\n return result;\n }\n}\n","import { Component } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { WorkflowInstanceFilterService } from 'src/app/workflow-instances/list/filter/workflow-instance-filter.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'tmt-wf-instance-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: WorkflowInstanceFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class WorkflowInstanceListComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { WorkflowInstanceListComponent } from 'src/app/workflow-instances/list/workflow-instance-list.component';\nimport { WORKFLOW_INSTANCE_LIST } from 'src/app/shared/lists/workflow-instance.list';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\nimport { WorkflowInstanceEntityCellComponent } from 'src/app/workflow-instances/list/entity-cell/workflow-instance-entity-cell.component';\n\n@NgModule({\n declarations: [\n WorkflowInstanceListComponent,\n WorkflowInstanceEntityCellComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'workflow-instances',\n url: '/workflow/{view:viewName}?{navigation}',\n params: {\n navigation: 'my.workflow',\n },\n component: WorkflowInstanceListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: WORKFLOW_INSTANCE_LIST },\n ],\n },\n ],\n }),\n CommentsModule,\n ],\n})\nexport class WorkflowInstancesModule {}\n","import {\n Component,\n OnInit,\n Input,\n Injector,\n OnDestroy,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { CommentedEntityCollectionType } from 'src/app/shared/models/enums/commented-entity-collection-type.enum';\nimport { UserInfoComponent } from 'src/app/shared/components/features/user-info/user-info.component';\nimport { InfoPopupService } from 'src/app/shared/components/features/info-popup/info-popup.service';\nimport { WorkflowTaskCardServiceService } from 'src/app/workflow-tasks/card/workflow-task-card.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { META_ENTITY_TYPE } from 'src/app/shared/tokens';\nimport { AppService } from 'src/app/core/app.service';\n\n@Component({\n selector: 'tmt-workflow-task-card',\n templateUrl: './workflow-task-card.component.html',\n providers: [\n { provide: META_ENTITY_TYPE, useValue: 'WorkflowTasks' },\n LifecycleService,\n WorkflowTaskCardServiceService,\n ],\n styleUrls: ['./workflow-task-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class WorkflowTaskCardComponent implements OnInit, OnDestroy {\n @Input() entityId: string;\n @Input() public isShowEntity = true;\n\n protected readonly commentedEntityCollectionType =\n CommentedEntityCollectionType;\n\n constructor(\n public service: WorkflowTaskCardServiceService,\n public appService: AppService,\n private infoPopupService: InfoPopupService,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n this.service.load();\n }\n\n ngOnDestroy(): void {\n this.service.dispose();\n }\n\n public openUserInfo() {\n const userId = this.service.task.assigned.id;\n const target = document.getElementById('assigned');\n this.infoPopupService.open({\n target,\n data: {\n component: UserInfoComponent,\n params: {\n userId,\n },\n injector: this.injector,\n },\n });\n }\n}\n","\n\n\n\n\n@if ((service.state$ | async) === 'Ready') {\n
    \n
    \n \n\n
    \n {{ 'workflowTasks.card.props.created' | translate }}: \n
    \n {{ service.task?.created | date: 'short' : this.appService.session.timeZoneOffset }}\n
    \n
    \n\n @if (service.task?.assigned?.name) {\n
    \n {{ 'workflowTasks.card.props.assigned' | translate }}: \n
    \n \n
    \n
    \n }\n
    \n\n
    \n
    \n @if (isShowEntity && (service.entityState$ | async)) {\n
    \n
    \n
    \n
    \n }\n\n
    \n \n \n
    \n
    \n\n @if (!service.task?.isActive) {\n
    \n
    \n

    \n \n

    \n
    \n
    \n \n
    \n @if (service.task?.workflowActionLabel) {\n
    \n \n
    \n {{ service.task?.workflowActionLabel }}\n
    \n
    \n\n
    \n \n \n
    \n }\n
    \n \n \n
    \n
    \n \n
    \n {{\n service.task?.performed\n | date: 'short' : this.appService.session.timeZoneOffset\n }}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n }\n\n @if ((service.state$ | async) === 'Ready') {\n \n }\n
    \n
    \n}\n","import { Inject, Injectable } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ActionPanelService } from 'src/app/core/action-panel.service';\nimport { DataService } from 'src/app/core/data.service';\nimport { LifecycleService } from 'src/app/core/lifecycle.service';\nimport { MessageService } from 'src/app/core/message.service';\nimport { NavigationService } from 'src/app/core/navigation.service';\nimport { NotificationService } from 'src/app/core/notification.service';\nimport {\n StateBuilderService,\n WorkflowEntityState,\n} from 'src/app/core/state-builder.service';\nimport { Constants } from 'src/app/shared/globals/constants';\nimport { WorkflowTask } from 'src/app/shared/models/entities/workflow-tasks/workflow-task.model';\nimport { Exception } from 'src/app/shared/models/exception';\nimport { CardState } from 'src/app/shared/models/inner/card-state.enum';\nimport { RouteMode } from 'src/app/shared/models/inner/route-mode.enum';\n\n@Injectable()\nexport class WorkflowTaskCardServiceService {\n public task: WorkflowTask;\n\n public state$ = new BehaviorSubject(null);\n public workflowTask$ = new BehaviorSubject(null);\n public entityState$ = new BehaviorSubject(null);\n\n private destroyed$ = new Subject();\n\n taskForm = this.fb.group({\n name: [\n '',\n [Validators.required, Validators.maxLength(Constants.formNameMaxLength)],\n ],\n description: '',\n performer: null,\n performed: null,\n assigned: null,\n\n resolutionComment: '',\n isActive: [false],\n });\n\n constructor(\n @Inject('entityId') public workflowTaskId: string,\n private stateBuilder: StateBuilderService,\n private fb: FormBuilder,\n private actionService: ActionPanelService,\n private lifecycleService: LifecycleService,\n private data: DataService,\n private navigation: NavigationService,\n private message: MessageService,\n private notification: NotificationService,\n ) {\n this.actionService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n\n this.lifecycleService.reload$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.reload());\n }\n\n /** Load data. */\n public load() {\n this.state$.next(CardState.Loading);\n this.taskForm.markAsPristine();\n this.taskForm.markAsUntouched();\n\n this.actionService.resetLifecycle();\n\n // Загрузка данных.\n this.data\n .collection('WorkflowTasks')\n .entity(this.workflowTaskId)\n .get({\n expand: {\n resolution: { select: 'name' },\n assigned: { select: ['id', 'name'] },\n performer: { select: ['id', 'name'] },\n entity: { select: ['id', 'name', 'type'] },\n },\n })\n .subscribe({\n next: (workflowTask: WorkflowTask) => {\n this.taskForm.patchValue(workflowTask);\n this.taskForm.disable();\n\n this.navigation.addRouteSegment({\n id: workflowTask.id,\n title: workflowTask.name,\n });\n\n this.task = workflowTask;\n this.workflowTask$.next(workflowTask);\n\n const entityState = this.stateBuilder.getStateForWorkflowEntity(\n this.workflowTaskId,\n workflowTask.entity.type,\n workflowTask.entity.id,\n );\n entityState.params.routeMode = RouteMode.continue;\n this.entityState$.next(entityState);\n\n this.state$.next(CardState.Ready);\n },\n error: (error: Exception) => {\n this.state$.next(CardState.Error);\n if (error.code !== Exception.BtEntityNotFoundException.code) {\n this.notification.error(error.message);\n }\n },\n });\n }\n\n /** Reload page. */\n public reload() {\n if (!this.taskForm.dirty) {\n this.load();\n this.lifecycleService.reloadLifecycle();\n } else {\n this.message.confirmLocal('shared.leavePageMessage').then(\n () => this.load(),\n () => null,\n );\n }\n }\n\n /** Dispose service. */\n public dispose() {\n this.destroyed$.next();\n }\n}\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { VIEW_NAME } from 'src/app/shared/tokens';\n\n@Component({\n selector: 'wp-workflow-task-filter',\n templateUrl: './workflow-task-filter.component.html',\n standalone: false,\n})\nexport class WorkflowTaskFilterComponent implements OnInit, FilterDetails {\n @Input() values: any;\n\n detailsForm = this.fb.group({\n created: null,\n performed: null,\n assigned: null,\n resolution: null,\n states: [null],\n });\n\n constructor(\n private fb: UntypedFormBuilder,\n @Inject(VIEW_NAME) public viewName: string,\n public service: FilterService,\n ) {}\n\n ngOnInit() {\n this.service.resetValues$.subscribe(() => {\n this.detailsForm.reset();\n });\n\n this.detailsForm.patchValue(this.service.values);\n this.detailsForm.valueChanges.subscribe(() => {\n const values = Object.assign(this.service.values, this.detailsForm.value);\n this.service.changeValues(values);\n });\n }\n}\n","
    \n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Injectable, Type } from '@angular/core';\nimport { FilterDetails } from 'src/app/shared/components/features/filter/filter-details.interface';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { WorkflowTaskFilterComponent } from 'src/app/workflow-tasks/list/filter/workflow-task-filter.component';\n\n@Injectable()\nexport class WorkflowTaskFilterService extends FilterService {\n public override component: Type = WorkflowTaskFilterComponent;\n public override hasDetails = true;\n public override hasViewSelector = false;\n public override hasAllowInactive = true;\n public override placeholder = 'expenses.list.filter.placeholder';\n\n public override getODataFilter(): any {\n const result: any[] = [];\n\n const text = this.values.text;\n if (text && text.length >= this.minStringLengthForFilter) {\n result.push(this.getTextFilter(['name'], this.getClearText(text)));\n }\n\n if (this.values.created) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.created,\n );\n\n result.push({\n created: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n created: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n if (this.values.performed) {\n const dates = this.dateService.getDatePairFromPeriodForFilter(\n this.values.performed,\n );\n\n result.push({\n performed: { ge: { type: 'raw', value: dates.periodStart } },\n });\n\n result.push({\n performed: { le: { type: 'raw', value: dates.periodFinish } },\n });\n }\n\n if (this.values.assigned) {\n result.push({\n assignedId: { type: 'guid', value: this.values.assigned.id },\n });\n }\n\n if (this.values.states) {\n const conditions = [];\n\n Object.keys(this.values.states).forEach((code) => {\n if (this.values.states[code].selected) {\n conditions.push({\n stateId: { type: 'guid', value: this.values.states[code].id },\n });\n }\n });\n\n result.push({ or: conditions });\n }\n\n return result;\n }\n\n protected override getDefaultValues(): any {\n return {\n created: null,\n performed: null,\n assigned: null,\n states: null,\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { FilterService } from 'src/app/shared/components/features/filter/filter.service';\nimport { ListService } from 'src/app/shared/services/list.service';\nimport { WorkflowTaskFilterService } from 'src/app/workflow-tasks/list/filter/workflow-task-filter.service';\nimport { EntityListService } from 'src/app/shared/components/entity-list/entity-list.service';\nimport { GridService } from 'src/app/shared-features/grid/core/grid.service';\n\n@Component({\n selector: 'wp-workflow-task-list',\n template: ' ',\n providers: [\n { provide: FilterService, useClass: WorkflowTaskFilterService },\n EntityListService,\n ListService,\n GridService,\n ],\n standalone: false,\n})\nexport class WorkflowTaskListComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { Transition, UIRouterModule } from '@uirouter/angular';\nimport { VIEW_NAME, LIST } from 'src/app/shared/tokens';\nimport { WORKFLOW_TASK_LIST } from 'src/app/shared/lists/workflow-task.list';\nimport { CommentsModule } from 'src/app/shared-features/comments/comments.module';\nimport { WorkflowTaskCardComponent } from 'src/app/workflow-tasks/card/workflow-task-card.component';\nimport { WorkflowTaskListComponent } from 'src/app/workflow-tasks/list/workflow-task-list.component';\nimport { WorkflowTaskFilterComponent } from 'src/app/workflow-tasks/list/filter/workflow-task-filter.component';\nimport { StateHelper } from 'src/app/shared/helpers/state.helper';\nimport { EntityListComponent } from 'src/app/shared/components/entity-list/entity-list.component';\n\n@NgModule({\n declarations: [\n WorkflowTaskCardComponent,\n WorkflowTaskListComponent,\n WorkflowTaskFilterComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n CommentsModule,\n EntityListComponent,\n UIRouterModule.forChild({\n states: [\n {\n name: 'workflowTasks',\n url: '/tasks/{view:viewName}?{navigation}',\n params: {\n navigation: 'my.workflowTasksAll',\n },\n component: WorkflowTaskListComponent,\n resolve: [\n {\n provide: VIEW_NAME,\n useFactory: StateHelper.resolveView,\n deps: [Transition],\n },\n { provide: LIST, useValue: WORKFLOW_TASK_LIST },\n ],\n },\n\n {\n name: 'task',\n params: {\n navigation: 'team.tasks',\n },\n url: '/tasks/{entityId:guid}?{navigation}',\n component: WorkflowTaskCardComponent,\n resolve: [\n {\n token: 'entityId',\n deps: [Transition],\n resolveFn: StateHelper.resolveEntityId,\n },\n ],\n },\n ],\n }),\n ],\n})\nexport class WorkflowTasksModule {}\n","export const environment = {\n name: 'onprem-dev',\n production: false,\n onprem: true,\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","var map = {\n\t\"./az.mjs\": [\n\t\t15920,\n\t\t\"node_modules_angular_common_locales_az_mjs\"\n\t],\n\t\"./be-tarask.mjs\": [\n\t\t55831,\n\t\t\"node_modules_angular_common_locales_be-tarask_mjs\"\n\t],\n\t\"./be.mjs\": [\n\t\t96846,\n\t\t\"node_modules_angular_common_locales_be_mjs\"\n\t],\n\t\"./bg.mjs\": [\n\t\t43868,\n\t\t\"node_modules_angular_common_locales_bg_mjs\"\n\t],\n\t\"./bs-Latn.mjs\": [\n\t\t24105,\n\t\t\"node_modules_angular_common_locales_bs-Latn_mjs\"\n\t],\n\t\"./bs.mjs\": [\n\t\t16592,\n\t\t\"node_modules_angular_common_locales_bs_mjs\"\n\t],\n\t\"./ca-FR.mjs\": [\n\t\t64714,\n\t\t\"node_modules_angular_common_locales_ca-FR_mjs\"\n\t],\n\t\"./ca-IT.mjs\": [\n\t\t55365,\n\t\t\"node_modules_angular_common_locales_ca-IT_mjs\"\n\t],\n\t\"./ca.mjs\": [\n\t\t28765,\n\t\t\"node_modules_angular_common_locales_ca_mjs\"\n\t],\n\t\"./chr.mjs\": [\n\t\t36538,\n\t\t\"node_modules_angular_common_locales_chr_mjs\"\n\t],\n\t\"./cs.mjs\": [\n\t\t83543,\n\t\t\"node_modules_angular_common_locales_cs_mjs\"\n\t],\n\t\"./cy.mjs\": [\n\t\t27397,\n\t\t\"node_modules_angular_common_locales_cy_mjs\"\n\t],\n\t\"./da.mjs\": [\n\t\t67564,\n\t\t\"node_modules_angular_common_locales_da_mjs\"\n\t],\n\t\"./de-AT.mjs\": [\n\t\t76622,\n\t\t\"node_modules_angular_common_locales_de-AT_mjs\"\n\t],\n\t\"./de-BE.mjs\": [\n\t\t29958,\n\t\t\"node_modules_angular_common_locales_de-BE_mjs\"\n\t],\n\t\"./de-CH.mjs\": [\n\t\t6412,\n\t\t\"node_modules_angular_common_locales_de-CH_mjs\"\n\t],\n\t\"./de-LI.mjs\": [\n\t\t77044,\n\t\t\"node_modules_angular_common_locales_de-LI_mjs\"\n\t],\n\t\"./de-LU.mjs\": [\n\t\t57776,\n\t\t\"node_modules_angular_common_locales_de-LU_mjs\"\n\t],\n\t\"./de.mjs\": [\n\t\t73840,\n\t\t\"node_modules_angular_common_locales_de_mjs\"\n\t],\n\t\"./el-CY.mjs\": [\n\t\t31607,\n\t\t\"node_modules_angular_common_locales_el-CY_mjs\"\n\t],\n\t\"./el.mjs\": [\n\t\t17546,\n\t\t\"node_modules_angular_common_locales_el_mjs\"\n\t],\n\t\"./en-001.mjs\": [\n\t\t33434,\n\t\t\"node_modules_angular_common_locales_en-001_mjs\"\n\t],\n\t\"./en-150.mjs\": [\n\t\t24341,\n\t\t\"node_modules_angular_common_locales_en-150_mjs\"\n\t],\n\t\"./en-AT.mjs\": [\n\t\t64630,\n\t\t\"node_modules_angular_common_locales_en-AT_mjs\"\n\t],\n\t\"./en-AU.mjs\": [\n\t\t35167,\n\t\t\"node_modules_angular_common_locales_en-AU_mjs\"\n\t],\n\t\"./en-BE.mjs\": [\n\t\t83726,\n\t\t\"node_modules_angular_common_locales_en-BE_mjs\"\n\t],\n\t\"./en-CA.mjs\": [\n\t\t56989,\n\t\t\"node_modules_angular_common_locales_en-CA_mjs\"\n\t],\n\t\"./en-CH.mjs\": [\n\t\t15588,\n\t\t\"node_modules_angular_common_locales_en-CH_mjs\"\n\t],\n\t\"./en-CY.mjs\": [\n\t\t43109,\n\t\t\"node_modules_angular_common_locales_en-CY_mjs\"\n\t],\n\t\"./en-DE.mjs\": [\n\t\t43760,\n\t\t\"node_modules_angular_common_locales_en-DE_mjs\"\n\t],\n\t\"./en-DK.mjs\": [\n\t\t52054,\n\t\t\"node_modules_angular_common_locales_en-DK_mjs\"\n\t],\n\t\"./en-FI.mjs\": [\n\t\t92478,\n\t\t\"node_modules_angular_common_locales_en-FI_mjs\"\n\t],\n\t\"./en-FK.mjs\": [\n\t\t58028,\n\t\t\"node_modules_angular_common_locales_en-FK_mjs\"\n\t],\n\t\"./en-GB.mjs\": [\n\t\t27666,\n\t\t\"node_modules_angular_common_locales_en-GB_mjs\"\n\t],\n\t\"./en-GI.mjs\": [\n\t\t62169,\n\t\t\"node_modules_angular_common_locales_en-GI_mjs\"\n\t],\n\t\"./en-HK.mjs\": [\n\t\t59130,\n\t\t\"node_modules_angular_common_locales_en-HK_mjs\"\n\t],\n\t\"./en-IE.mjs\": [\n\t\t62967,\n\t\t\"node_modules_angular_common_locales_en-IE_mjs\"\n\t],\n\t\"./en-IL.mjs\": [\n\t\t68998,\n\t\t\"node_modules_angular_common_locales_en-IL_mjs\"\n\t],\n\t\"./en-MT.mjs\": [\n\t\t82858,\n\t\t\"node_modules_angular_common_locales_en-MT_mjs\"\n\t],\n\t\"./en-MY.mjs\": [\n\t\t8631,\n\t\t\"node_modules_angular_common_locales_en-MY_mjs\"\n\t],\n\t\"./en-NL.mjs\": [\n\t\t27331,\n\t\t\"node_modules_angular_common_locales_en-NL_mjs\"\n\t],\n\t\"./en-NZ.mjs\": [\n\t\t29861,\n\t\t\"node_modules_angular_common_locales_en-NZ_mjs\"\n\t],\n\t\"./en-SE.mjs\": [\n\t\t7489,\n\t\t\"node_modules_angular_common_locales_en-SE_mjs\"\n\t],\n\t\"./en-SG.mjs\": [\n\t\t93915,\n\t\t\"node_modules_angular_common_locales_en-SG_mjs\"\n\t],\n\t\"./en-SI.mjs\": [\n\t\t92101,\n\t\t\"node_modules_angular_common_locales_en-SI_mjs\"\n\t],\n\t\"./en.mjs\": [\n\t\t39032,\n\t\t\"node_modules_angular_common_locales_en_mjs\"\n\t],\n\t\"./es.mjs\": [\n\t\t41565,\n\t\t\"node_modules_angular_common_locales_es_mjs\"\n\t],\n\t\"./et.mjs\": [\n\t\t55458,\n\t\t\"node_modules_angular_common_locales_et_mjs\"\n\t],\n\t\"./eu.mjs\": [\n\t\t54155,\n\t\t\"node_modules_angular_common_locales_eu_mjs\"\n\t],\n\t\"./fi.mjs\": [\n\t\t25886,\n\t\t\"node_modules_angular_common_locales_fi_mjs\"\n\t],\n\t\"./fr-BE.mjs\": [\n\t\t59329,\n\t\t\"node_modules_angular_common_locales_fr-BE_mjs\"\n\t],\n\t\"./fr-CA.mjs\": [\n\t\t24194,\n\t\t\"node_modules_angular_common_locales_fr-CA_mjs\"\n\t],\n\t\"./fr-LU.mjs\": [\n\t\t85635,\n\t\t\"node_modules_angular_common_locales_fr-LU_mjs\"\n\t],\n\t\"./fr-MC.mjs\": [\n\t\t43894,\n\t\t\"node_modules_angular_common_locales_fr-MC_mjs\"\n\t],\n\t\"./fr-MF.mjs\": [\n\t\t33219,\n\t\t\"node_modules_angular_common_locales_fr-MF_mjs\"\n\t],\n\t\"./fr.mjs\": [\n\t\t45669,\n\t\t\"node_modules_angular_common_locales_fr_mjs\"\n\t],\n\t\"./ga.mjs\": [\n\t\t82849,\n\t\t\"node_modules_angular_common_locales_ga_mjs\"\n\t],\n\t\"./gl.mjs\": [\n\t\t62452,\n\t\t\"node_modules_angular_common_locales_gl_mjs\"\n\t],\n\t\"./guz.mjs\": [\n\t\t66365,\n\t\t\"node_modules_angular_common_locales_guz_mjs\"\n\t],\n\t\"./hr-BA.mjs\": [\n\t\t96771,\n\t\t\"node_modules_angular_common_locales_hr-BA_mjs\"\n\t],\n\t\"./hr.mjs\": [\n\t\t67963,\n\t\t\"node_modules_angular_common_locales_hr_mjs\"\n\t],\n\t\"./hu.mjs\": [\n\t\t8828,\n\t\t\"node_modules_angular_common_locales_hu_mjs\"\n\t],\n\t\"./hy.mjs\": [\n\t\t43352,\n\t\t\"node_modules_angular_common_locales_hy_mjs\"\n\t],\n\t\"./id.mjs\": [\n\t\t48974,\n\t\t\"node_modules_angular_common_locales_id_mjs\"\n\t],\n\t\"./is.mjs\": [\n\t\t96529,\n\t\t\"node_modules_angular_common_locales_is_mjs\"\n\t],\n\t\"./it-CH.mjs\": [\n\t\t52402,\n\t\t\"node_modules_angular_common_locales_it-CH_mjs\"\n\t],\n\t\"./it-SM.mjs\": [\n\t\t40711,\n\t\t\"node_modules_angular_common_locales_it-SM_mjs\"\n\t],\n\t\"./it.mjs\": [\n\t\t38462,\n\t\t\"node_modules_angular_common_locales_it_mjs\"\n\t],\n\t\"./kde.mjs\": [\n\t\t71737,\n\t\t\"node_modules_angular_common_locales_kde_mjs\"\n\t],\n\t\"./kk.mjs\": [\n\t\t85463,\n\t\t\"node_modules_angular_common_locales_kk_mjs\"\n\t],\n\t\"./ky.mjs\": [\n\t\t22237,\n\t\t\"node_modules_angular_common_locales_ky_mjs\"\n\t],\n\t\"./lt.mjs\": [\n\t\t29865,\n\t\t\"node_modules_angular_common_locales_lt_mjs\"\n\t],\n\t\"./lv.mjs\": [\n\t\t2243,\n\t\t\"node_modules_angular_common_locales_lv_mjs\"\n\t],\n\t\"./mk.mjs\": [\n\t\t79485,\n\t\t\"node_modules_angular_common_locales_mk_mjs\"\n\t],\n\t\"./nb-SJ.mjs\": [\n\t\t91969,\n\t\t\"node_modules_angular_common_locales_nb-SJ_mjs\"\n\t],\n\t\"./nb.mjs\": [\n\t\t26013,\n\t\t\"node_modules_angular_common_locales_nb_mjs\"\n\t],\n\t\"./nl-BE.mjs\": [\n\t\t2023,\n\t\t\"node_modules_angular_common_locales_nl-BE_mjs\"\n\t],\n\t\"./nl.mjs\": [\n\t\t69091,\n\t\t\"node_modules_angular_common_locales_nl_mjs\"\n\t],\n\t\"./nn.mjs\": [\n\t\t58185,\n\t\t\"node_modules_angular_common_locales_nn_mjs\"\n\t],\n\t\"./no.mjs\": [\n\t\t35848,\n\t\t\"node_modules_angular_common_locales_no_mjs\"\n\t],\n\t\"./pa-Guru.mjs\": [\n\t\t32994,\n\t\t\"node_modules_angular_common_locales_pa-Guru_mjs\"\n\t],\n\t\"./pl.mjs\": [\n\t\t4013,\n\t\t\"node_modules_angular_common_locales_pl_mjs\"\n\t],\n\t\"./pt.mjs\": [\n\t\t58581,\n\t\t\"node_modules_angular_common_locales_pt_mjs\"\n\t],\n\t\"./ro-MD.mjs\": [\n\t\t64022,\n\t\t\"node_modules_angular_common_locales_ro-MD_mjs\"\n\t],\n\t\"./ro.mjs\": [\n\t\t72644,\n\t\t\"node_modules_angular_common_locales_ro_mjs\"\n\t],\n\t\"./ru-BY.mjs\": [\n\t\t76848,\n\t\t\"node_modules_angular_common_locales_ru-BY_mjs\"\n\t],\n\t\"./ru-KG.mjs\": [\n\t\t70589,\n\t\t\"node_modules_angular_common_locales_ru-KG_mjs\"\n\t],\n\t\"./ru-KZ.mjs\": [\n\t\t11192,\n\t\t\"node_modules_angular_common_locales_ru-KZ_mjs\"\n\t],\n\t\"./ru-MD.mjs\": [\n\t\t66292,\n\t\t\"node_modules_angular_common_locales_ru-MD_mjs\"\n\t],\n\t\"./ru-UA.mjs\": [\n\t\t77377,\n\t\t\"node_modules_angular_common_locales_ru-UA_mjs\"\n\t],\n\t\"./ru.mjs\": [\n\t\t87566,\n\t\t\"node_modules_angular_common_locales_ru_mjs\"\n\t],\n\t\"./ses.mjs\": [\n\t\t24656,\n\t\t\"node_modules_angular_common_locales_ses_mjs\"\n\t],\n\t\"./sk.mjs\": [\n\t\t21935,\n\t\t\"node_modules_angular_common_locales_sk_mjs\"\n\t],\n\t\"./sl.mjs\": [\n\t\t98680,\n\t\t\"node_modules_angular_common_locales_sl_mjs\"\n\t],\n\t\"./sq-MK.mjs\": [\n\t\t96822,\n\t\t\"node_modules_angular_common_locales_sq-MK_mjs\"\n\t],\n\t\"./sq-XK.mjs\": [\n\t\t49361,\n\t\t\"node_modules_angular_common_locales_sq-XK_mjs\"\n\t],\n\t\"./sq.mjs\": [\n\t\t65405,\n\t\t\"node_modules_angular_common_locales_sq_mjs\"\n\t],\n\t\"./sr-Cyrl-BA.mjs\": [\n\t\t49933,\n\t\t\"node_modules_angular_common_locales_sr-Cyrl-BA_mjs\"\n\t],\n\t\"./sr-Cyrl-ME.mjs\": [\n\t\t89480,\n\t\t\"node_modules_angular_common_locales_sr-Cyrl-ME_mjs\"\n\t],\n\t\"./sr-Cyrl-XK.mjs\": [\n\t\t20921,\n\t\t\"node_modules_angular_common_locales_sr-Cyrl-XK_mjs\"\n\t],\n\t\"./sr-Cyrl.mjs\": [\n\t\t23333,\n\t\t\"node_modules_angular_common_locales_sr-Cyrl_mjs\"\n\t],\n\t\"./sr-Latn-BA.mjs\": [\n\t\t81318,\n\t\t\"node_modules_angular_common_locales_sr-Latn-BA_mjs\"\n\t],\n\t\"./sr-Latn-ME.mjs\": [\n\t\t25575,\n\t\t\"node_modules_angular_common_locales_sr-Latn-ME_mjs\"\n\t],\n\t\"./sr-Latn-XK.mjs\": [\n\t\t53934,\n\t\t\"node_modules_angular_common_locales_sr-Latn-XK_mjs\"\n\t],\n\t\"./sr-Latn.mjs\": [\n\t\t5436,\n\t\t\"node_modules_angular_common_locales_sr-Latn_mjs\"\n\t],\n\t\"./sr.mjs\": [\n\t\t1726,\n\t\t\"node_modules_angular_common_locales_sr_mjs\"\n\t],\n\t\"./sv-AX.mjs\": [\n\t\t60456,\n\t\t\"node_modules_angular_common_locales_sv-AX_mjs\"\n\t],\n\t\"./sv-FI.mjs\": [\n\t\t10512,\n\t\t\"node_modules_angular_common_locales_sv-FI_mjs\"\n\t],\n\t\"./sv.mjs\": [\n\t\t23554,\n\t\t\"node_modules_angular_common_locales_sv_mjs\"\n\t],\n\t\"./uk.mjs\": [\n\t\t10357,\n\t\t\"node_modules_angular_common_locales_uk_mjs\"\n\t],\n\t\"./uz.mjs\": [\n\t\t20743,\n\t\t\"node_modules_angular_common_locales_uz_mjs\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 16913;\nmodule.exports = webpackAsyncContext;"],"names":["CommonModule","SharedModule","UIRouterModule","LIST","MASS_OPERATION_PARAMETERS","META_ENTITY_TYPE","MULTI_SELECT_LIST","VIEW_NAME","Transition","ROUTE_DEFAULT_PARAMS","PnlModule","ResourceRolesModule","ActListComponent","ACT_OF_ACCEPTANCE_LIST","ActsFilterComponent","ActCreationComponent","ActCardComponent","ActTaskCellComponent","ACT_LINE_LIST","BaseSharedModule","SharedFeaturesModule","StateHelper","EntityListComponent","GridModule","ActsOfAcceptanceModule","forChild","states","name","url","params","navigation","routeMode","route","routerHeader","view","component","resolve","provide","useFactory","resolveView","deps","useValue","state","token","resolveFn","resolveEntityId","declarations","imports","i1","Validators","Constants","SavingQueueService","ActCardService","Subject","Guid","ProjectTasksService","AppName","ListService","FormHeaderService","CommentedEntityCollectionType","LifecycleService","filter","takeUntil","naturalSort","GridService","SelectionType","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵpropertyInterpolate","ctx_r1","actEntity","project","organization","ɵɵproperty","ɵɵpureFunction1","_c0","id","ɵɵlistener","ActCardComponent_ng_container_5_div_50_Template_button_click_1_listener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","addLine","ɵɵelement","ActCardComponent_ng_container_5_div_50_Template_button_click_5_listener","deleteLine","gridService","selectedGroupValue","entityId","ActsOfAcceptance","ɵɵelementContainerStart","ɵɵtemplate","ActCardComponent_ng_container_5_div_5_Template","ActCardComponent_ng_container_5_div_50_Template","ActCardComponent_ng_container_5_Template_button_click_52_listener","_r1","setUserView","ɵɵtwoWayListener","ActCardComponent_ng_container_5_Template_ul_activeIdChange_56_listener","$event","ɵɵtwoWayBindingSet","activeTab","ActCardComponent_ng_container_5_div_62_Template","ActCardComponent_ng_container_5_div_67_Template","ActCardComponent_ng_container_5_tmt_entity_workflow_tasks_72_Template","ActCardComponent_ng_container_5_tmt_state_history_77_Template","form","currency","readonly","lines","gridOptions","ɵɵtwoWayProperty","nav_r4","controls","constructor","app","service","fb","savingQueueService","actionPanelService","projectTasksService","translate","notification","listService","customFieldService","formHeaderService","wpCurrency","currenciesService","resizableColumns","selectionType","row","rowCommands","label","allowedFn","handlerFn","formGroup","value","getGridView","group","description","maxLength","formTextMaxLength","number","date","required","dateOfAcceptance","amount","array","_isCustomCurrency","_isProgramValueChange","destroyed$","actReloaded$","enrichFormGroup","ngOnInit","_baseCurrencyCode","session","configuration","baseCurrencyCode","_currencyCode","initMainMenu","initCardSubscriptions","load","setAdditionalButton","ngOnDestroy","dispose","next","then","reload","getProjectTasks","subscribe","tasks","mainTask","t","leadTaskId","getLineGroup","projectTask","setValue","push","selectGroup","refreshXr","index","findIndex","l","removeAt","markAsDirty","calculateTotals","set","title","hint","isDropDown","isBusy","isVisible","handler","deleteAct","reload$","pipe","setHasAutosave","act$","act","onActLoaded","markAsPristine","markAsUntouched","patchValue","editAllowed","disable","emitEvent","enable","clear","_projectCurrency","alpha3Code","sort","forEach","line","amountColumn","columns","find","column","currencyCode","valueChanges","saveAct","instant","toggleActions","formValue","getRawValue","projectId","getLine","formLine","actOfAcceptanceId","projectTaskId","exchangeRate","amountBC","assignValues","addToQueue","collection","entity","update","generate","disabled","setAmounts","action","isShown","checkAppAccess","Finance","reduce","total","updateIndicators","transform","lineGroup","console","warn","getExchangeRate","xr","setXR","error","message","setValueProgrammatically","ctrl","setAdditional","goToAccountingEntry","ɵɵdirectiveInject","AppService","i2","i3","i4","UntypedFormBuilder","i5","i6","ActionPanelService","i7","i8","TranslateService","i9","NotificationService","i10","i11","CustomFieldService","i12","i13","WpCurrencyPipe","i14","CurrenciesService","selectors","inputs","standalone","features","ɵɵProvidersFeature","decls","vars","consts","template","ActCardComponent_Template","rf","ctx","ActCardComponent_ng_container_5_Template","state$","ReplaySubject","Exception","CardState","RouteMode","actId","data","autosave","actionService","lifecycleService","actSubject","asObservable","actQuery","select","expand","createdBy","enrichQuery","save","reloadLifecycle","Loading","resetLifecycle","get","addRouteSegment","Ready","Error","code","BtEntityNotFoundException","confirmLocal","delete","successLocal","goToSelectedNavItem","go","selectedNavigationItem","continue","JSON","stringify","documentId","type","ɵɵinject","DataService","NavigationService","MessageService","StateService","factory","ɵfac","control","actCardService","ref","detectChanges$","destroyed","detectChanges","ChangeDetectorRef","initialValue","ActTaskCellComponent_Template","ProjectBillingType","activeModal","isSaving","projectsQuery","billingTypeId","ne","nonBillable","isActive","assignAutoNumber","ok","markAllAsTouched","invalid","warningLocal","actOfAcceptance","insert","response","close","errorDetailed","cancel","dismiss","enrichFormGroupWithDefaultValues","NgbActiveModal","client","ActCreationComponent_Template","ActCreationComponent_Template_button_click_5_listener","ActCreationComponent_div_18_Template","ActCreationComponent_Template_button_click_20_listener","ActCreationComponent_Template_button_click_23_listener","FilterService","EntityListService","PermissionType","ActsFilterService","LifecycleListService","injector","actions","modal","getDefaultAction","checkEntityPermission","Modify","create","selectedGroups$","rows","length","open","Injector","NgbModal","useClass","ActListComponent_Template","viewName","detailsForm","period","resetValues$","reset","values","Object","assign","changeValues","ActsFilterComponent_Template","allowInactive$","hasDetails","hasViewSelector","placeholder","getDefaultValues","text","getODataFilter","result","minStringLengthForFilter","getClearText","or","contains","organizationId","dates","dateService","getDatePairFromPeriodForFilter","ge","periodStart","le","periodFinish","conditions","keys","selected","stateId","__ngFactoryType__","CalculatedFieldsModule","DashboardsModule","ReportsModule","AnalyticsModule","CalculatedFieldCardComponent","CalculatedFieldFilterComponent","CALCULATED_FIELD_LIST","CalculatedFieldListComponent","AnalyticsSharedModule","CalculatedFieldCreationComponent","inject","DestroyRef","takeUntilDestroyed","CalculatedFieldTypes","uniq","GridColumnType","CalculatedFieldCardComponent_button_51_Template_button_click_0_listener","_r2","ctx_r2","addString","sourceFields","CalculatedFieldCardComponent_div_69_Template_button_click_1_listener","_r4","localStrings","analyticsService","formNameMaxLength","fieldType","reportType","expression","sourceField","header","SelectControl","languages","width","StringControl","destroyRef","hide","query","field","getSourceDescription","sourceDescription","allFields","reportField","isCalculated","filedType","fieldTypes","f","titleLocalization","parse","model","function","culture","prototype","hasOwnProperty","call","lang","language","formData","map","ls","start","localString","stop","dirty","addField","fieldName","domElement","editor","nativeElement","selectionStart","startPos","endPos","selectionEnd","scrollTop","substring","focus","iconClass","reportFieldType","v","AnalyticsService","viewQuery","CalculatedFieldCardComponent_Query","CalculatedFieldCardComponent_Template","CalculatedFieldCardComponent_Template_wp_form_header_reloaded_0_listener","CalculatedFieldCardComponent_button_51_Template","CalculatedFieldCardComponent_Conditional_60_Template","CalculatedFieldCardComponent_div_69_Template","ɵɵtextInterpolate","tmp_16_0","ɵɵconditional","reportTypeId","CalculatedFieldCreationComponent_Template","CalculatedFieldCreationComponent_Template_button_click_5_listener","CalculatedFieldCreationComponent_Template_button_click_20_listener","CalculatedFieldCreationComponent_Template_button_click_23_listener","CalculatedFieldFilterComponent_Template","_c1","ɵɵpureFunction0","CalculatedFieldFilterService","hasAllowInactive","views","local","customCriteriaCount","getDatePeriodUrlParams","modalService","selectedRowListener","selectedGroup$","unsubscribe","CalculatedFieldListComponent_Template","CopyDashboardModalComponent","navigationService","copy","_this","dashboardId","execute","_ref","_asyncToGenerator","createdId","reloadCustomNavigationItems","_x","apply","arguments","CopyDashboardModalComponent_Template","CopyDashboardModalComponent_Template_button_click_5_listener","CopyDashboardModalComponent_Template_button_click_14_listener","CopyDashboardModalComponent_Template_button_click_17_listener","DashboardListComponent","DashboardList","DashboardSettingsComponent","GridsterModule","DashboardPropertiesComponent","ColorPickerModule","PerformersModule","NavigationItemsComponent","forRoot","loadChildren","m","DashboardModule","DashboardFilterService","manager","getCriteriaCount","first","entityListService","checkPermission","loading$","openCopyModal","Delete","owner","user","componentInstance","DashboardListComponent_Template","navigationResponse","navigations","DashboardPropertiesComponent_Template","FormArray","DatePeriodType","DashboardSettingsService","BehaviorSubject","permissions","DashboardSettingsComponent_Conditional_2_Template_button_click_4_listener","DashboardSettingsComponent_Conditional_2_ng_template_13_Template","DashboardSettingsComponent_Conditional_2_ng_template_18_Template","DashboardSettingsComponent_Conditional_2_Template_button_click_21_listener","DashboardSettingsComponent_Conditional_2_Template_button_click_24_listener","headerTitle","isSaving$","grantsAreAllowed","nav_r3","okTitle","dashboardSettingsService","isLoading$","showInAnalytics","changeViewPeriodAllowed","defaultViewPeriod","grants","From","from","To","to","PeriodType","periodType","dashboard","isCreationMode","ownerId","getPermissionsSavingArray","navigationItem","area","key","observable","Execute","defaultConfiguration","widgets","permissionSet","Custom","pair","getDatePair","grant","getPerformerFormGroup","DateService","DashboardSettingsComponent_Template","DashboardSettingsComponent_Conditional_2_Template","performer","userId","groupId","permissionSetId","role","getRoleName","UntypedFormControl","ReportSaveAsComponent","stateService","postUpdate","buildMode","report","patch","isNew","isTemplate","isCommon","viewSettings","userSettings","templatesIsAllowed","commonReportsIsAllowed","typesIsAllowed","ReportSaveAsComponent_Template","ReportSaveAsComponent_Template_button_click_5_listener","ReportSaveAsComponent_label_17_Template","ReportSaveAsComponent_label_18_Template","ReportSaveAsComponent_Template_button_click_26_listener","ReportSaveAsComponent_Template_button_click_29_listener","ReportPropertiesComponent","ReportPropertiesComponent_Template","cloneDeep","ReportSettingsComponent_ng_template_13_Template_wp_report_view_settings_changes_0_listener","onChanges","ReportSettingsComponent_ng_template_13_Template_wp_report_view_settings_typeChanges_0_listener","onReportTypeChanged","ReportSettingsComponent_ng_template_18_Template_wp_report_filters_onFiltersChanged_3_listener","onFiltersChanged","filters","ReportSettingsComponent_button_26_Template_button_click_0_listener","_r5","ReportSettingsComponent","inputReport","hasTabs","ReportSettingsComponent_Template","ReportSettingsComponent_Template_button_click_5_listener","ReportSettingsComponent_ng_template_13_Template","ReportSettingsComponent_ng_template_18_Template","ReportSettingsComponent_ng_template_23_Template","ReportSettingsComponent_button_26_Template","ReportSettingsComponent_Template_button_click_27_listener","nav_r6","ReportUserSettingsService","AutosaveService","ReportCardService","PivotTableService","PivotRenderService","PivotDataService","FreezeTableService","ReportPeriodService","fromEvent","DOCUMENT","ReportCardComponent_div_21_Template_button_click_1_listener","reportUserSettingsService","openPeriodArea","ReportCardComponent_div_22_Template_button_click_1_listener","openSettings","ReportCardComponent","document","pivotTableService","saveName","reportId","event","repeat","isRunShown","reRun","run","updateUI","periodIsRequired","isTimeLine","hasPeriod","readyToRun","hasNotColumns","columnFields","valueFields","columnGroupFields","rowGroupFields","deleteAllowed","downloadExcelPivot","downloadExcelSource","saveAs","report$","init","initForReport","changes$","sorting$","sorting","saveSorting","resizing$","param","resizeColumn","ReportCardComponent_Template","ReportCardComponent_Template_wp_form_header_reloaded_0_listener","ReportCardComponent_Template_button_click_12_listener","ReportCardComponent_div_21_Template","ReportCardComponent_div_22_Template","cardName$","AppConfigService","httpClient","blockUI","log","reportUserSettings","reportSubject","p","loadingSubscription","debug","cardName","propagateReport","size","download","reportUrl","config","api","responseType","HttpClient","BlockUIService","LogService","ReportUserSettingsComponent_div_0_button_8_Template_button_click_0_listener","togglePeriodArea","periodAreaExpanded","reportPeriodService","periodTitle$","ɵɵpureFunction2","ReportUserSettingsComponent_div_0_Template_button_click_1_listener","toggleFilterArea","ReportUserSettingsComponent_div_0_button_8_Template","filterAreaExpanded","filterTitle","ReportUserSettingsComponent","reportCardService","loadSourceDescription","reportTypeCode","filtersChanged","saveFilters","onFilterTitleChanged","openPeriodArea$","userSettings$","ReportUserSettingsComponent_Template","ReportUserSettingsComponent_div_0_Template","ReportUserSettingsComponent_Template_wp_report_filters_onFiltersChanged_4_listener","ReportUserSettingsComponent_Template_wp_report_filters_onTitleChanged_4_listener","_","isEqual","userSettingsSubject","delayForSave","builderFn","savingFn","obj","camelCasePeriod","camelCase","periodSubscription","setPeriod","period$","saveDatePeriod","saveLazy","ReportFilterComponent","ReportFilterComponent_Template","ReportFilterService","ReportListComponent","ReportListComponent_Template","REPORT_LIST","REPORT_TEMPLATE_LIST","resolveViewSettings","PivotTableComponent","ReportViewSettingsComponent","FieldPropertiesModalComponent","ReportFiltersComponent","ReportFilterCriterionComponent","ReportPeriodComponent","exports","EventEmitter","FilterOperator","ReportFieldType","ENTITY_TYPE_TO_COLLECTION","ReportFilterCriterionComponent_div_7_button_6_Template_button_click_0_listener","operator_r3","$implicit","group_r4","ctx_r4","setOperator","getOperatorLocalTitle","collectionName","allowInactive","criterion","directoryId","ReportFilterCriterionComponent_div_7_ng_container_8_wp_text_box_1_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_number_box_2_Template","ReportFilterCriterionComponent_div_7_ng_container_8_div_3_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_number_box_4_Template","ReportFilterCriterionComponent_div_7_ng_container_8_div_5_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_date_box_6_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_date_period_box_7_Template","ReportFilterCriterionComponent_div_7_ng_container_8_div_8_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_select_box_9_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_select_box_10_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_user_box_11_Template","ReportFilterCriterionComponent_div_7_ng_container_8_Conditional_12_Template","ReportFilterCriterionComponent_div_7_ng_container_8_wp_select_box_13_Template","operator","entityTypeName","ReportFilterCriterionComponent_div_7_button_13_Template_button_click_0_listener","_r7","addCondition","ReportFilterCriterionComponent_div_7_button_6_Template","ReportFilterCriterionComponent_div_7_ng_container_8_Template","ReportFilterCriterionComponent_div_7_Template_button_click_9_listener","index_r6","removeCondition","ReportFilterCriterionComponent_div_7_span_12_Template","ReportFilterCriterionComponent_div_7_button_13_Template","operators","_criterion","changeDetector","onRemove","onChange","remove","emit","propagateChange","condition","EntityId","Enum","State","Directory","includes","entityValue","Between","valueLeft","valueRight","Percent","IsNotNull","IsNull","undefined","createConditionGroup","InPeriod","percentValue","at","outputs","ReportFilterCriterionComponent_Template","ReportFilterCriterionComponent_Template_button_click_4_listener","ReportFilterCriterionComponent_div_7_Template","StringHelper","ReportFiltersComponent_div_3_Template_wp_report_filter_criterion_onRemove_1_listener","criterion_r2","removeCriterion","ReportFiltersComponent_div_3_Template_wp_report_filter_criterion_onChange_1_listener","index_r4","criterionChanged","allowInactiveControl","sourceForm","sourceFieldsForPicker","ReportFiltersComponent_button_5_Template_button_click_0_listener","fieldPickerIsVisible","formBuilder","onTitleChanged","criteria","trackByName","item","addCriterion","updateIndicator","propagateChanges","updateSourceFields","source","indexOf","splice","getUpdatedFilters","sCriterion","indicatorTitle","count","declOfNum","isTimeLineField","parseFilters","ngOnChanges","FormBuilder","ɵɵNgOnChangesFeature","ReportFiltersComponent_Template","ReportFiltersComponent_div_3_Template","ReportFiltersComponent_Conditional_4_Template","ReportFiltersComponent_button_5_Template","String","Integer","Decimal","Date","Bool","TotalFunction","SortOrder","combineLatest","hasColumnGrouping","hasRowGrouping","initForWidget","widgetId","loadData","forceRefresh","Promise","reject","getTime","observables","sourceName","datasetId","viewPeriod","pivotReport","UnexpectedError","viewFieldDescriptions","separateFields","expandColumnGroups","level","isExpanded","pivotColumns","expandRowGroups","groups","isGroup","pivotRows","fieldsDescriptions","columnGroupFieldsDictionary","valueFieldDescriptions","addCollection","list","kind","fieldDescription","customTitle","sortHandler","columnName","containerName","a","b","a1","b1","rx","rd","as","bs","toLowerCase","match","shift","test","sortName","sortDesc","sortGroups","groupFieldName","reverse","numberPipe","datePipe","percentPipe","renderer","dataService","addTotalColumn","yesLabel","noLabel","totalWidth","groupStep","pageSize","sort$","menu$","pageRenderingCycleIndex","displayRowsCount","alignRightTypes","sortAscentClass","sortDescentClass","emptyValueSpaceWasFilled","tableHeader","componentRef","querySelector","tableBody","tableFooter","hasValueGrouping","flatColumnNames","redraw","onlySort","renderBody","renderHeader","renderFooter","updateSortIndicator","thead","clearNode","renderColumnsDefinition","createElement","groupsCount","columnIndex","getFlatColumnNamesForHeader","cell","setAttribute","toString","addClass","appendChild","createText","menu","listen","i","getColumnsLevel","colspan","getColumnGroupCellsCount","cellValue","getFormattedValue","collapser","valueGroupCollapserHandler","isSummarize","tbody","renderPage","sourceRecordCount","totalCols","renderRows","renderGroups","duration","tfoot","columnDescription","renderCell","renderEmptyValueSpace","getPivotRowValues","collapseAllRowGroups","collapseOrExpandAllRowGroups","expandAllRowGroups","updateColumnsDefinition","table","querySelectorAll","getDefaultColumnWidth","col","currentWidth","parseInt","style","setStyle","emptyValue","DateTimeOffset","timeZoneOffset","columnNames","currentLevel","children","concat","e","child","lastElementChild","removeChild","topColumn","valuesCount","loop","iterateColumn","forFooter","rowCount","procLevel","addValues","rowPivotColumn","process","pivotColumn","rowPivotColumns","c","iterateCurrentPivotColumn","tableColgroup","columnsCount","isTotal","isFooterTotal","valueViewFiled","totalFunction","Count","toRight","renderRowOfGroup","parentGroup","groupInViewSettings","groupIndex","collapseRowGroup","expandRowGroup","paddingValue","valueField","html","parentRow","fromExpander","updateCollapser","el","removeClass","collapseColumnGroup","expandColumnGroup","updatePageAfterRowGroupingChange","groupEl","previousSibling","nextSibling","Asc","expandAll","levelHandle","DecimalPipe","DatePipe","PercentPipe","Renderer2","auditTime","ɵɵpipeBind2","ctx_r0","pivotTable","item_r3","icon","PivotTableComponent_ng_container_4_div_1_Template","PivotTableComponent_ng_container_4_Template_button_click_2_listener","headerMenuClick","PivotTableComponent_ng_container_4_span_3_Template","isDivider","rootContainerId","_rootContainerId","defaultRootContainerId","elementRef","renderService","freezeTableService","zone","menuId","headerMenuItems","headerMenuStyles","openHeaderMenu","closeHeaderMenu","stopPropagation","targetRect","target","getBoundingClientRect","left","right","top","bottom","onScroll","onColumnResized","Desc","enableInfinityScroll","container","getElementById","lengthThreshold","lastRemaining","remaining","scrollHeight","clientHeight","allAreLoaded","runOutsideAngular","scrollListener","scrollThrottleTime","ElementRef","NgZone","inContainerMode","PivotTableComponent_Template","PivotTableComponent_p_0_Template","PivotTableComponent_p_1_Template","PivotTableComponent_Template_div_clickOutside_3_listener","PivotTableComponent_ng_container_4_Template","PivotTableComponent_Template_div_scroll_5_listener","PivotTableComponent_Template_table_columnResized_8_listener","hasMaxCount","isError$","force","sortOrder","newSortOrder","periodTitleChanged","periodTitle","setPeriodTitle","ReportPeriodComponent_Template","ReportPeriodComponent_Template_wp_date_period_box_onDisplayTextChanged_4_listener","periodSubject","periodTitleSubject","FieldPropertiesModalComponent_Template","FieldPropertiesModalComponent_Template_button_click_4_listener","FieldPropertiesModalComponent_Template_button_click_19_listener","FieldPropertiesModalComponent_Template_button_click_22_listener","UntypedFormArray","merge","ReportViewSettingsComponent_div_6_button_11_Template_button_click_0_listener","template_r4","applyTemplate","ReportViewSettingsComponent_div_6_Template_div_openChange_1_listener","loadTemplates","ReportViewSettingsComponent_div_6_button_11_Template","isTemplatesLoading","templates","ReportViewSettingsComponent_div_17_div_1_Template","_c2","row_r5","_c3","ReportViewSettingsComponent_div_21_div_5_span_1_Template","ReportViewSettingsComponent_div_21_div_5_Template_button_click_3_listener","field_r7","_r6","editField","ReportViewSettingsComponent_div_21_div_5_Template_button_click_6_listener","index_r8","removeRowField","getViewFieldTitle","_c4","ReportViewSettingsComponent_div_21_div_5_Template","ReportViewSettingsComponent_div_21_div_6_Template","rowsContainerLabel","rowFields","fieldSortableOptions","rowFieldsLimit","ReportViewSettingsComponent_div_22_div_5_span_1_Template","ReportViewSettingsComponent_div_22_div_5_Template_button_click_3_listener","field_r10","_r9","ReportViewSettingsComponent_div_22_div_5_Template_button_click_6_listener","index_r11","removeRowGroupField","ReportViewSettingsComponent_div_22_div_5_Template","ReportViewSettingsComponent_div_22_div_6_Template","rowGroupsContainerLabel","rowGroupFieldsLimit","getTotalOptions","field_r13","ReportViewSettingsComponent_div_28_div_10_wp_select_box_1_Template","totals","ReportViewSettingsComponent_div_28_span_2_Template","ReportViewSettingsComponent_div_28_Template_button_click_4_listener","_r12","ReportViewSettingsComponent_div_28_Template_button_click_7_listener","index_r14","removeValueField","ReportViewSettingsComponent_div_28_div_10_Template","totalFunctionsAreAllowed","ReportViewSettingsComponent_div_30_div_5_span_1_Template","ReportViewSettingsComponent_div_30_div_5_Template_button_click_3_listener","field_r16","_r15","ReportViewSettingsComponent_div_30_div_5_Template_button_click_6_listener","index_r17","removeValueGroupField","ReportViewSettingsComponent_div_30_div_5_Template","ReportViewSettingsComponent_div_30_div_6_Template","valueGroupsContainerLabel","valueGroupFields","valueGroupFieldsLimit","changes","typeChanges","sourceFieldsContainer","rowFieldsContainer","valueFieldsContainer","valueGroupFieldsContainer","rowGroupFieldsContainer","isLoading","sourceFieldsFiltered","sourceFieldRows","templatesAreAllowed","sourceSortableOptions","pull","put","handle","animation","onMove","onMoveHandler","ghostClass","chosenClass","dragClass","onAdd","getAttribute","toId","containerId","formArray","getFormArrayById","setSourceFieldSelected","valueFieldsLimit","cloneFieldHandler","sourceFieldRow","dragged","fromId","totalValues","getSourceField","getTotalFnTitle","parseViewSettings","createFormGroup","categoryField","legendField","updateSourceFieldRows","updateViewSettings","datasetFields","usedAsValue","loadDescription","fieldGroup","instance","checkSourceFieldSelected","sourceFilter","sf","groupBy","xs","rv","x","viewFieldFormGroup","isValueField","removeFieldFromView","totalFn","templateId","valuesContainerLabel","hasRows","hasValues","hasRowGroups","hasValueGroups","ReportViewSettingsComponent_Template","ReportViewSettingsComponent_div_6_Template","ReportViewSettingsComponent_div_17_Template","ReportViewSettingsComponent_div_18_Template","ReportViewSettingsComponent_div_21_Template","ReportViewSettingsComponent_div_22_Template","ReportViewSettingsComponent_div_28_Template","ReportViewSettingsComponent_div_29_Template","ReportViewSettingsComponent_div_30_Template","detectAnyAdblocker","UpdateService","CreateMenuService","UserSettingsModalComponent","SelectingOfSubstituteModalComponent","FireWork","WebSocketsService","AppComponent_li_11_button_4_Template_button_click_0_listener","AppComponent_li_11_button_4_Template","ctx_r3","createMenuService","items$","AppComponent_Conditional_23_Template_button_click_0_listener","openHelp","AppComponent_button_50_Template_button_click_0_listener","stopSubstituting","AppComponent","authService","chromeService","wpNavigationService","messages","transitionService","ngbModalConfig","updateService","isAppMenuVisible","newYearForm","background","snow","garland","firework","appConfigService","modalInstances","configKeyStorage","mouseListener","clickListener","backdrop","localStorage","setItem","showAppMenu","onAppMenuClosed","beacon","window","Beacon","errorLocal","signOut","signOutWithSessionDestroy","onMainResized","setMainAreaDimension","loginAsSubstitute","navigation$","moduleDisplayName","applicationTitle","tenantIsReadOnly","setTimeout","detected","activeInstances","onSuccess","some","isSharedModal","dismissAll","ngAfterViewInit","appContent","scrollMainArea","loader","loaderContainer","loaderContainerListener","setMainAreaScrollWidth","toggleTheme","dataset","dispelFirework","makeFirework","fireWork","body","tagName","dispelMagic","makeMagic","iconClassName","diffLimit","colors","lastPosition","y","Math","abs","clientX","clientY","star","starColor","random","starFallHeight","setProperty","starListener","AuthService","ChromeService","TransitionService","NgbModalConfig","AppComponent_Query","AppComponent_Template","AppComponent_Template_div_click_4_listener","AppComponent_li_11_Template","AppComponent_Conditional_23_Template","AppComponent_Template_button_click_24_listener","resetApp","AppComponent_span_33_Template","AppComponent_Template_button_click_44_listener","AppComponent_Template_button_click_47_listener","AppComponent_button_50_Template","AppComponent_Template_button_click_52_listener","AppComponent_Template_wp_app_menu_closed_55_listener","AppComponent_Template_div_resized_56_listener","compactMode$","ɵɵclassProp","ɵɵsanitizeUrl","ɵɵtextInterpolate2","version","substitutedEmail","displayName","email","NoopAnimationsModule","CurrencyPipe","DEFAULT_CURRENCY_CODE","LOCALE_ID","provideAppInitializer","TranslateLoader","TranslateModule","TranslateHttpLoader","NgbModule","HTTP_INTERCEPTORS","provideHttpClient","withInterceptorsFromDi","UrlService","NgIdleModule","BlockUIModule","ApiAuthInterceptor","ApiResponseInterceptor","APP_STATES","SettingsAppModule","BooleanPipe","WorkPipe","BlockUIComponent","DebugAppModule","withLocalStorage","withSessionStorage","TimeDurationPipe","CustomFieldValuePipe","StopwatchService","environment","QuickStartComponent","CookieService","configData","ServiceWorkerModule","FinancePipe","DurationPipe","ZeroToNullPipe","UnsignedPipe","PercentPointPipe","WorkflowTasksModule","CertificatesModule","BookingScheduleModule","ResourceRequestsModule","ProjectSummaryModule","ExpensesRequestsModule","TimesheetsModule","TimeOffRequestsModule","TimeOffScheduleModule","TimeOffBalanceEntriesModule","FinanceModule","BillingModule","ClientsModule","ProjectsModule","GeneralPnlModule","NgxNl2brPipe","SortablejsModule","WorkflowInstancesModule","ResourceSummaryModule","ProgramsModule","ResourcesModule","EmployeesModule","BoardsModule","IssuesModule","ContactsModule","DealsModule","PhonePipe","InteractionsModule","BrowserModule","provideNgxWebstorage","withNgxWebstorageConfig","initializeApp","appService","urlService","sync","createTranslateLoader","http","getLanguage","currentCulture","getDefaultCurrencyCode","AppModule","bootstrap","initializerFn","prefix","separator","caseSensitive","multi","delayStart","useHash","deferIntercept","otherwise","production","register","registrationStrategy","StateBuilderService","Feature","redirectTo","trans","Read","checkFeature","timesheets","redirectToNotificationUrl","dynamic","BillingSummaryFilterComponent","withoutInvoices","BillingSummaryFilterComponent_Template","BillingSummaryFilterService","stateConditionExist","withoutInvoicesCount","isAllStatesSelected","InvoiceCreationComponent","BillingSummaryComponent","filterService","clientTotals","commands","navigationItem$","setLoadingState","getODataQuery","orderBy","stateName","filterValues","stateIds","searchTerm","getFormGroupForRow","values$","BillingSummaryComponent_Template","BillingSummaryComponent_Template_button_click_3_listener","BillingSummaryComponent_Conditional_8_Template","BILLING_SUMMARY_LIST","BillingSummaryModule","InvoicesModule","GroupingField","InvoiceLineType","fields","cardService","getFieldLabel","field_r4","field_r5","getFieldValue","line_r7","field_r8","AddingLinesModalComponent_ng_container_7_tr_55_Template_input_ngModelChange_4_listener","isSelected","AddingLinesModalComponent_ng_container_7_tr_55_td_7_Template","AddingLinesModalComponent_ng_container_7_tr_55_td_22_Template","unit","rate","quantity","AddingLinesModalComponent_ng_container_7_Template_button_click_5_listener","setGroupingMode","AddingLinesModalComponent_ng_container_7_Template_div_resized_10_listener","resize","AddingLinesModalComponent_ng_container_7_Template_input_ngModelChange_17_listener","allSelected","selectAll","AddingLinesModalComponent_ng_container_7_th_20_Template","AddingLinesModalComponent_ng_container_7_th_33_Template","AddingLinesModalComponent_ng_container_7_th_40_Template","AddingLinesModalComponent_ng_container_7_th_53_Template","AddingLinesModalComponent_ng_container_7_tr_55_Template","AddingLinesModalComponent_ng_container_7_tr_56_Template","AddingLinesModalComponent_ng_container_7_div_57_Template","filterForm","getGroupingTitle","grouping","headerTableStyle","scrollContainerStyle","AddingLinesModalComponent_ng_template_8_wp_grouping_settings_0_Template_wp_grouping_settings_canceled_0_listener","AddingLinesModalComponent_ng_template_8_wp_grouping_settings_0_Template_wp_grouping_settings_saved_0_listener","onSaveGrouping","AddingLinesModalComponent_ng_template_8_wp_grouping_settings_0_Template","groupingMode","AddingLinesModalComponent_button_14_Template_button_click_0_listener","_r10","AddingLinesModalComponent","split","hasSelectedLines","every","display","Time","_dataFunction","Expense","settings","getInvoiceSettings","loadLines","updateStoredPeriod","newRect","height","tbl","join","account","projectCostCenter","projectTariff","getGridColumnsCount","datePair","dateFrom","dateTo","InvoiceCardService","AddingLinesModalComponent_Query","AddingLinesModalComponent_Template_button_click_5_listener","AddingLinesModalComponent_ng_container_7_Template","AddingLinesModalComponent_ng_template_8_Template","ɵɵtemplateRefExtractor","AddingLinesModalComponent_button_14_Template","AddingLinesModalComponent_Template_button_click_15_listener","groupingModeEnabled_r11","availableField_r2","GroupingSettingsComponent_div_7_option_2_Template","GroupingSettingsComponent_div_7_Template_i_click_3_listener","index_r3","column_r5","availableFields","GroupingSettingsComponent_button_8_Template_button_click_0_listener","add","GroupingSettingsComponent","allTimeFields","allExpensesFields","hasAddButton","canceled","saved","trackById","updateControls","getAvailableFields","includeField","selectedField","availableField","resetGrouping","GroupingSettingsComponent_Template","GroupingSettingsComponent_div_7_Template","GroupingSettingsComponent_button_8_Template","GroupingSettingsComponent_Template_button_click_10_listener","GroupingSettingsComponent_Template_button_click_13_listener","Invoice","VatRate","sortBy","UserInfoComponent","ProjectInfoComponent","InvoiceCardComponent_ng_container_5_div_68_button_2_Template_button_click_0_listener","addLines","invoiceLineTypes","time","InvoiceCardComponent_ng_container_5_div_68_button_2_Template","InvoiceCardComponent_ng_container_5_div_68_Template_button_click_3_listener","expense","InvoiceCardComponent_ng_container_5_div_68_Template_button_click_7_listener","createCustomLine","invoice","billingType","tm","timeLines","timeLinesGrouping","expenseLines","expenseLinesGrouping","customLines","vatAmount","InvoiceCardComponent_ng_container_5_ng_container_75_span_12_Template","InvoiceCardComponent_ng_container_5_ng_container_75_ng_template_13_Template","totalAmount","vatLabel","hasVat","amountNoVat_r5","Invoices","InvoiceCardComponent_ng_container_5_Template_button_click_16_listener","openProjectInfo","InvoiceCardComponent_ng_container_5_Conditional_66_Template","InvoiceCardComponent_ng_container_5_div_68_Template","InvoiceCardComponent_ng_container_5_div_69_Template","InvoiceCardComponent_ng_container_5_wp_invoice_time_lines_70_Template","InvoiceCardComponent_ng_container_5_wp_invoice_expense_lines_71_Template","InvoiceCardComponent_ng_container_5_wp_invoice_custom_lines_72_Template","InvoiceCardComponent_ng_container_5_ng_container_75_Template","InvoiceCardComponent_ng_container_5_Template_ul_activeIdChange_103_listener","InvoiceCardComponent_ng_container_5_div_109_Template","InvoiceCardComponent_ng_container_5_div_114_Template","InvoiceCardComponent_ng_container_5_tmt_entity_workflow_tasks_119_Template","InvoiceCardComponent_ng_container_5_tmt_state_history_124_Template","created","templateQuery","paidStateId","hasLines","useVat","InvoiceCardComponent","custom","invoiceTemplate","vatRate","notApply","infoPopupService","billingAddress","issueDate","paymentDueDate","paymentDate","outerNotes","innerNotes","invoiceReloaded$","autoSaveBuilderFn","rowVersion","invoiceTemplateId","getBaseLine","invoiceId","projectCostCenterId","projectTariffId","roleId","accountId","lineType","openUserInfo","onCustomLineAdded","downloadInvoice","deleteInvoice","invoice$","onInvoiceLoaded","withResponse","onSave","onError","resetGrouping$","calculateTotals$","getSortedLines","originalAmount","originalRate","originalQuantity","originalDescription","empty","timeLineTotal","acc","expenseLineTotal","customLineTotal","sortExpression","setXr","InfoPopupService","InvoiceCardComponent_Template","InvoiceCardComponent_ng_container_5_Template","InvoiceValueCellComponent","InvoiceValueReadonlyCellComponent","InvoiceAmountCellComponent","InvoiceDescriptionCellComponent","InvoiceDescriptionReadonlyCellComponent","InvoiceSettings","_entityId","configService","invoiceQuery","_state","_invoice","_resetGrouping","_customLineAdded","_calculateTotals","customLineAdded$","baseColumns","Component","max","min","readonlyComponent","buildGridColumns","getGridColumnDefinition","slice","getConfig","removeProject","items","setConfig","updateLocalSettings","Entity","LocalConfigService","InvoiceTaskCellComponent","InvoiceCustomLinesComponent","CurrencyControl","allowNull","controlType","isEditableCurrency","NumberControl","Currency","forceCellUpdating","precision","InvoiceCustomLinesComponent_Template","InvoiceExpenseLinesComponent","InvoiceExpenseLinesComponent_Template","InvoiceTimeLinesComponent","InvoiceTimeLinesComponent_Template","controlValue","currencyCodeValue","InvoiceAmountCellComponent_Template","originalHint","hasInfo","originalField","originalValueString","InvoiceDescriptionCellComponent_Template","InvoiceDescriptionCellComponent_i_1_Template","InvoiceDescriptionReadonlyCellComponent_Template","InvoiceDescriptionReadonlyCellComponent_i_1_Template","invoiceCardService","InvoiceTaskCellComponent_Template","getType","isCurrencyControl","currencyPipe","InvoiceValueCellComponent_Template","InvoiceValueCellComponent_wp_currency_box_0_Template","InvoiceValueCellComponent_ng_template_1_Template","InvoiceValueCellComponent_i_3_Template","numberBox_r2","InvoiceValueReadonlyCellComponent_Template","InvoiceValueReadonlyCellComponent_i_2_Template","getDefault","updateProjectsFilter","serverProject","InvoiceCreationComponent_Template","InvoiceCreationComponent_Template_button_click_5_listener","InvoiceCreationComponent_div_24_Template","InvoiceCreationComponent_Template_button_click_26_listener","InvoiceCreationComponent_Template_button_click_29_listener","InvoiceListComponent","INVOICE_LIST","InvoiceFilterComponent","CommentsModule","queryData","InvoiceFilterComponent_Template","InvoiceFilterService","lifecycleListService","InvoiceListComponent_Template","DragAndDropDirective","BOARD_CONFIG","BoardComponent","BoardFilterComponent","BoardColumnHeaderComponent","BoardColumnHeaderFormComponent","BoardTrackComponent","BoardMiniCardComponent","BoardMiniCardBuilderComponent","BoardMiniCardBuilderModalComponent","BoardSortButtonComponent","resolveBoardConfig","LocalStorageService","destroy","initAndDestroy","LocalDragDropService","BoardService","BoardDataService","BoardFilterService","column_r3","ddOptions","draggableClass","ɵɵrepeaterCreate","BoardComponent_Conditional_0_Conditional_19_For_1_Template","_forTrack0","ɵɵrepeater","BoardComponent_Conditional_0_Conditional_20_Template_button_click_1_listener","openColumnForm","boardService","cardsByColumns","BoardComponent_Conditional_0_Conditional_24_For_2_Template","activeColumns","BoardComponent_Conditional_0_Template_tmt_board_sort_button_orderQuery_3_listener","sortChange","BoardComponent_Conditional_0_Template_button_click_11_listener","changeColumnMode","BoardComponent_Conditional_0_Template_button_click_14_listener","BoardComponent_Conditional_0_Conditional_19_Template","BoardComponent_Conditional_0_Conditional_20_Template","BoardComponent_Conditional_0_Conditional_24_Template","sortItems","columnMode","boardDataService","dragDropService","historyService","cdr","listDirection","listGap","initCreateMenuService","initActions","initSubscribes","setTitle","addHistory","getAppName","removeStyle","opensColumnForm","sortChange$","isReloadState","customNavigation","offCanvasComponent","creationComponent","modalRef","openCardAfterCreation","openOffCanvas","createMenuButton","button","getValue","openCardBuilder","removeBoard","event$","markForCheck","onItemUpdate$","fromGroupName","updateColumnsOrder","HistoryService","localStorageService","customFieldEntityType","BoardComponent_Template","BoardComponent_Conditional_0_Template","BoardComponent_Conditional_1_Template","changeDetection","FormControl","notificationService","addControl","validators","isInitial","saving","trim","mode","addColumn","updateColumn","BoardColumnHeaderFormComponent_Template","BoardColumnHeaderFormComponent_Conditional_3_Template","BoardColumnHeaderFormComponent_Template_button_click_11_listener","BoardColumnHeaderFormComponent_Template_button_click_14_listener","ɵɵclassMap","BoardColumnHeaderComponent_Conditional_4_Template_button_click_0_listener","openMenu","completed$","BoardColumnHeaderComponent_Template","BoardColumnHeaderComponent_Conditional_2_Template","BoardColumnHeaderComponent_Conditional_4_Template","ɵɵstyleMapInterpolate1","BoardFilterComponent_Template","signal","updateBoard","cardProperties","property","closeModal","BoardMiniCardBuilderModalComponent_Template","BoardMiniCardBuilderModalComponent_Template_button_click_5_listener","BoardMiniCardBuilderModalComponent_Template_tmt_board_mini_card_builder_result__7_listener","BoardMiniCardBuilderModalComponent_Template_button_click_9_listener","BoardMiniCardBuilderModalComponent_Template_button_click_12_listener","entityType","cardStructure","LocalStringHelper","REQUIRED_PROPERTIES","property_r2","BoardMiniCardBuilderComponent_Conditional_0_For_11_Template_input_ngModelChange_3_listener","onSelected","BoardMiniCardBuilderComponent_Conditional_0_For_11_Conditional_9_Template","ɵɵelementContainer","nodata_r4","property_r5","BoardMiniCardBuilderComponent_Conditional_0_For_21_Conditional_5_Template_button_click_0_listener","$index_r7","$index","removeItem","BoardMiniCardBuilderComponent_Conditional_0_For_21_Conditional_4_Template","BoardMiniCardBuilderComponent_Conditional_0_For_21_Conditional_5_Template","BoardMiniCardBuilderComponent_Conditional_0_For_11_Template","BoardMiniCardBuilderComponent_Conditional_0_Conditional_12_Template","BoardMiniCardBuilderComponent_Conditional_0_For_21_Template","BoardMiniCardBuilderComponent_Conditional_0_Conditional_22_Template","availableListId","properties","propertiesSortableOptions","selectedProperties","selectedPropertiesSortableOptions","result$","draggable","onStart","onEnd","dragEl","dropEventHandler","addEventListener","once","removeEventListener","onSort","sendResult","restrictedTypes","removedProperty","pop","clrType","getTranslate","displayNames","translates","_this2","getMetaEntity","primitiveProperties","navigationProperties","directoryProperties","initialValueItemIndex","isRequired","BoardMiniCardBuilderComponent_Template","BoardMiniCardBuilderComponent_Conditional_0_Template","BoardMiniCardBuilderComponent_Conditional_1_Template","BoardMiniCardBuilderComponent_ng_template_2_Template","MetaEntityPropertyType","link_r2","string_r4","property_r3","BoardMiniCardComponent_For_2_Conditional_1_Case_0_Conditional_0_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_0_Conditional_1_Template","integer_r5","decimal_r6","BoardMiniCardComponent_For_2_Conditional_1_Case_3_Conditional_3_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_3_Conditional_4_Template","ctx_r6","card","ɵɵpipeBind3","user_r8","guess_r9","BoardMiniCardComponent_For_2_Conditional_1_Case_0_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_1_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_2_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_3_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_4_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_5_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_6_Template","BoardMiniCardComponent_For_2_Conditional_1_Case_7_Template","tmp_19_0","empty_r10","menu_r11","BoardMiniCardComponent_For_2_Conditional_1_Template","BoardMiniCardComponent_For_2_Conditional_2_Template","BoardMiniCardComponent_For_2_Conditional_3_Template","ɵɵclassMapInterpolate2","$index_r12","BoardMiniCardComponent_ng_template_3_Conditional_0_Template_button_click_0_listener","_r13","oldIndex","BoardMiniCardComponent_ng_template_3_Conditional_0_Template","stateForEntity","BoardMiniCardComponent_ng_template_5_Conditional_1_Template","BoardMiniCardComponent_ng_template_5_Conditional_2_Template","user_r14","property_r15","property_r16","property_r17","tmp_10_0","property_r18","BoardMiniCardComponent_ng_template_15_Case_1_Template","BoardMiniCardComponent_ng_template_15_Case_2_Template","BoardMiniCardComponent_ng_template_15_Case_3_Template","tmp_11_0","metaEntityPropertyType","percent","ɵɵclassMapInterpolate1","property_r19","clrTypesWithIcon","BoardMiniCardComponent_ng_template_17_Case_0_Conditional_0_Template","BoardMiniCardComponent_ng_template_17_Case_0_Template","BoardMiniCardComponent_ng_template_17_Case_1_Template","BoardMiniCardComponent_ng_template_17_Case_2_Template","BoardMiniCardComponent_ng_template_17_Case_3_Template","BoardMiniCardComponent_ng_template_17_Case_4_Template","BoardMiniCardComponent_ng_template_17_Case_5_Template","guessTemplateType","stateBuilderService","entityTypeToStateName","clearSubActions","cardHref","href","clickHandler","preventDefault","ctrlKey","defaultView","onClick","propertyValue","changeStateAction","subActions","BoardMiniCardComponent_Template","BoardMiniCardComponent_Template_a_click_0_listener","BoardMiniCardComponent_For_2_Template","ɵɵrepeaterTrackByIndex","BoardMiniCardComponent_ng_template_3_Template","BoardMiniCardComponent_ng_template_5_Template","BoardMiniCardComponent_ng_template_7_Template","BoardMiniCardComponent_ng_template_9_Template","BoardMiniCardComponent_ng_template_11_Template","BoardMiniCardComponent_ng_template_13_Template","BoardMiniCardComponent_ng_template_15_Template","BoardMiniCardComponent_ng_template_17_Template","effect","input","output","viewChild","debounceTime","BoardSortButtonComponent_Conditional_0_Template_button_click_0_listener","toggleDirection","sortDirection","sortTarget","BoardSortButtonComponent_ng_template_5_For_6_Template_div_click_0_listener","property_r6","changeTarget","BoardSortButtonComponent_ng_template_5_For_6_Template_div_mouseenter_0_listener","focusedProperty","isDefault","tmp_13_0","BoardSortButtonComponent_ng_template_5_Template_wp_text_box_keydown_2_listener","onKeyDown","BoardSortButtonComponent_ng_template_5_Template_div_keydown_4_listener","BoardSortButtonComponent_ng_template_5_For_6_Template","BoardSortButtonComponent_ng_template_5_ForEmpty_7_Template","filteredProperties","scrollToService","listRef","storageName","orderQuery","search","direction","isNavigation","store","textInputClientDebounce","getFiltered","retrieve","toggleList","isListOpened","getById","popupId","templateRef","isHideArrow","containerStyles","padding","onDestroy","enterCode","downCode","upCode","escCode","scrollToFocusedItem","scrollTo","ScrollToService","BoardSortButtonComponent_Query","BoardSortButtonComponent_Conditional_0_Template","BoardSortButtonComponent_Template_button_click_1_listener","BoardSortButtonComponent_Conditional_3_Template","BoardSortButtonComponent_Conditional_4_Template","BoardSortButtonComponent_ng_template_5_Template","tmp_2_0","tmp_3_0","switchMap","card_r1","$index_r2","cards","isShowAlert","pending","dndDirective","initStyles","columnsDependencies","updateCard","handleEvent","initIntersectionObserver","endOfTrackObserver","disconnect","runAnimation","dragDisabled","restoreTransform","dropDisabled","element","newIndex","clone","makeClone","destroyElement","setOnEnd","toGroupName","fromGroupKey","offsetX","offsetY","lastDragX","lastDragY","oldPosition","makePlaceholder","setOnDrop","loadCards","loadCardsByColumn","IntersectionObserver","entries","entry","isIntersecting","root","rootMargin","threshold","observe","BoardTrackComponent_Query","BoardTrackComponent_Conditional_1_Template","BoardTrackComponent_For_3_Template","InjectionToken","ProjectFilterService","WorkflowTaskFilterService","RequestFilterService","RateMatricesLinesFilterService","DealListFilterService","IssueFilterService","IssueCardComponent","IssueCreationComponent","BOARD_WORKFLOW_TASK","cardCollection","BOARD_PROJECT","isNestedFilterQuery","BOARD_ISSUE","issueType","BOARD_DEAL","BOARD_RESOURCE_REQUEST","BOARD_RATE_MATRIX","BOARD_ACT","BOARD_INVOICE","CONFIG_MAP","Map","catchError","firstValueFrom","forkJoin","of","tap","TransitionFormModalComponent","MetaEntityPropertyKind","translateService","messageService","entityLifecycleInfo","boardColumnsCollection","boardCardsCollection","metaEntity","getBoardConfig","getCardsCount","board","counts","cardViewProperties","initCardStructure","columnViews","columnId","getCards","pageSettings","getEntityQuery","boardId","skip","currentPage","transformedFilter","transformFilter","getLifecycleInfo","lifecycleInfo","setState","nextStateId","workflowIndicatorData","transition","transitions","transitionFormValue","propertyValues","comment","hasTransitionForm","transitionId","prepareColumnToSave","columnView","moveCard","afterCardId","command","forceCommand","removeColumn","aggregate","with","primitive","directory","isEmpty","entityFilter","Array","isArray","and","getTextFilter","computed","toObservable","concatMap","_columnMode","offCanvasService","menuService","loadingSubject","pagingByColumns","pageSizeOnInit","localSettings","initSubscriptions","options","content","componentParams","providers","parent","exclude","offCanvasEntry","reRenderContent","loadBoard","getFilter","initColumnsDependencies","initColumnsSettings","initSortItems","flat","loadedAll","initCardActions","paging","cardId","newColumn","oldColumn","afterCard","refreshCard","updateColumnsCount","setDisableDrag","stateChangeResult","removeCard","updatedColumns","typedColumns","sortedColumns","sortedColumn","observeIntersectionDisabled","context","incrementColumn","decrementColumn","cardItem","subActionsLazyResolver","getChangeStateSubActions","getChangeColumnActions","_this3","cardIndex","cardInColumnIndex","codes","scroll","behavior","entityUpdated$","changedStateId","onStart$","onDrop$","onEnd$","currentState","originalFilter","newFilter","OffCanvasService","MenuService","i15","Title","i16","Optional","startWith","PlannerCommandService","ScheduleNavigationService","BookingDataService","BookingManageService","BookingRenderingService","BookingService","BookingAssistantSettings","bookingProviderFactory","ResourceRequest","ResourceRequestService","ResourceRequestCalendarService","BookingFilterService","BookingViewSettingsService","ResourceRequestEvents","BookingMode","readonlyReasonTitle","BookingAssistantComponent_Conditional_4_Conditional_2_Template_button_click_0_listener","toggleShowSelectedFilter","filterBeforeCache","resourceRequestCalendarService","bookingEntries","BookingAssistantComponent_Conditional_4_Conditional_2_Template","BookingAssistantComponent_Conditional_4_Template_button_click_15_listener","bookingFilterService","resourceIds","bookingService","isActualizationResourceRequest","switcherControl","BookingAssistantComponent_Conditional_6_Template_div_resized_0_listener","onMainContainerResized","BookingAssistantComponent_Conditional_6_Template_div_areaResized_4_listener","onTopAreaResized","BookingAssistantComponent_Conditional_6_Conditional_14_Template","ready","requestCalendarFreezeOptions","requestBookingFreezeOptions","BookingAssistantComponent","request","resourceRequestService","bookingDataService","bookingViewSettingsService","localConfigService","scheduleNavigationService","syncWith","disableHorizontalScroller","resizingMinHeight","resizingMaxHeight","defaultHeight","isAssistantBottomMode","assistantMode","next$","previous$","scrollOnLoad","loadFrame","frameLoading$","s","loadedBookingEntry","initRequestSubscribers","initSubscribers","setReadonlyReason","extraResourceIds","addedBookingEntry","removedBookingEntry","bookingEntryLineToggled","toggledArea","updateBookingEntry","bookingMode","Basic","toggledIndex","updateView","newHeight","topAreaHeight","getCalendarResourceIds","mainContainerRect","mainContainer","plannerContainer","mainContainerAbsolute","resourcesContainer","setEvent","reloadFrame","verticalScroll$","totalsCalcMode","extraBookings","bookingEntry","resource","resourceId","resourceRequest","emitComponentChanges","competence","legalEntity","grade","location","resourcePool","requestPreferredResources","preferredResources","employmentTypeId","isRequestCompleted","requestCompletedStateId","bookingEntryEditAllowed","systemStateIds","isScrollToBottom","resourceRequestCalendarContainer","Detailed","scrollIntoView","block","inline","BookingAssistantComponent_Query","BookingAssistantComponent_Template","BookingAssistantComponent_Conditional_2_Template","BookingAssistantComponent_Conditional_4_Template","BookingAssistantComponent_Conditional_6_Template","AreaResizingDirective","areaResized","maxHeight","minHeight","resized$","areaMouseDownListener","documentMouseDownListener","documentMouseUpListener","areaEl","diffY","pageY","startPageY","startHeight","isResizing","ASSISTANT_TEAM_MEMBER_ID","ResourceRequestModalComponent","entityData","BookingScheduleComponent","bookingManageService","BookingScheduleComponent_Template","BookingScheduleComponent_Template_wp_form_header_reloaded_0_listener","BookingModule","FILTER","routeHeader","resolveFilter","hasHeader","leftTableWidth","BookingComponent_div_0_wp_booking_toolbar_1_Template","BookingComponent_div_0_tmt_booking_detailed_2_Template","BookingComponent_div_0_tmt_booking_basic_3_Template","frName","frSyncWith","frDisableHorizontalScroller","frRootContainerId","hasToolbar","bookingModeDetailed","BookingComponent","BookingComponent_Template","BookingComponent_div_0_Template","BookingEntryInfoComponent","PlannerModule","BookingEntryFormComponent","BookingFilterModule","BookingFilterComponent","BookingLeftGroupComponent","BookingRightGroupComponent","BookingEntryComponent","ScheduleNavigationModule","BookingToolbarComponent","BookingEntryFormDetailsComponent","BookingViewSettingsComponent","BookingNotifyComponent","BookingSlotInfoComponent","BookingBasicComponent","BookingHeaderLeftComponent","BookingHeaderRightComponent","BookingBasicLineRightComponent","BookingDetailedComponent","BookingDetailedLineLeftComponent","BookingDetailedLineRightComponent","BookingProjectAddComponent","NgIf","ɵNgNoValidate","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","AngularDraggableDirective","ButtonSpinnerDirective","SelectBoxComponent","DateBoxComponent","NumberBoxComponent","RadioGroupDirective","RadioButtonDirective","RadioLabelDirective","UISref","AnchorUISref","TranslatePipe","AvatarPipe","DateTime","BookingEntryType","ValueMode","PlanningMethod","BookingType","ResourceType","PREDEFINED_RESOURCE_POOL_IDS","bookingEntriesEndpoint","resourceRequestId","fteScheduleService","resourceRequestMode","resources","bookings","bookingsChangeEntries","bookingsResourceRequest","schedules","fte","bookingQuery","detailEntries","getBookingToSave","planningScale","fromLx","toISODate","toLx","requiredHours","requiredSchedulePercent","planningMethod","getResourceBookings","teamMember","resourceType","bookingEntryTemp","entryTemp","resultEntry","resultEntryDetail","hours","createBookingEntry","bookedHours","Manual","Hard","getTotalsByResource","booking","updateDetails","entriesToSave","scale","getAvailableProjects","loadResourcesPage","page","interval","pageNumber","end","filterObject","competenceId","legalEntityId","supervisorId","supervisor","includeSubResourcePools","includeSubordinates","resourcePoolId","predefinedResourcePools","departmentId","department","includeSubdepartments","includeInactiveResources","requestId","levelId","gradeId","locationId","requestLinked","term","skillIds","skill","urlParams","subs","valueMode","FTE","getFteSchedule","ri","schedule","loadBookings","loadSchedules","existsEntry","entryType","bookingsRequest","updateBookingCollection","loadChangeEntries","changeEntries","notSavedChangesStateIds","existedBooking","bookingId","isReadonlyMode","newBookings","currentBookings","isTimeOff","isOther","de","fromISO","FteScheduleService","reloadSubject","floor","maxBy","round","Interval","asyncScheduler","throttleTime","PlanningScale","slotDurationUnit","Day","Week","Month","getDurationLineObject","days","weeks","months","slotWidth","getSlotWidth","bookingHeight","bookingGap","bookingSlotPadding","widthByScale","Quarter","Year","bookingStyleSubject","bookingStyle$","stopChangeSubject","stopChange$","stopCreateSubject","stopCreate$","throttle","mousemoveThrottleTime","leading","trailing","groupBoardHeightSubject","groupBoardHeight$","getDataTableWidth","slots","startResize","side","bookingEl","xGap","yGap","resizing","originalBooking","sideX","resizeMoveTo","boardRect","boardEl","slotIndex","newFrom","newTo","plus","minus","fromDateTimes","isValid","lineChanges","updateLineIndexes","propagateBookingStyles","lineChange","propagateGroupBoardHeight","stopResize","equals","startDrag","dragging","ghostEl","cloneNode","originalFrom","classList","dragMoveTo","previousInterval","previousSlotIndex","diff","shiftSlots","endOf","startOf","stopDrag","startCreate","mouseEvent","now","toISO","lineIndex","FrontLoad","creating","rightCornerX","createMoveTo","getNormalizedInterval","stopCreate","isIntersected","int1","int2","maxLineIndex","entriesInLine","currentInterval","intersectedBookings","toIndex","unshift","maxIndex","uniqBy","redrawGroup","maxLinesIndex","slotsCount","css","position","initBoard","mouseOverGroup","oldResourceId","registerBooking","BookingSettings","ScheduleNavigationContext","loading","_loading","isAllExpanded","expandedResourceIds","isResourceLineHidden","isAssistantTopMode","isChangeEntriesHidden","resourceRequestShown","bookingRenderingService","detectChangesSubject","recalculateGroupSubject","recalculateGroup$","toggleGroupSubject","toggleGroup$","toggleRowSubject","toggleRow$","frameLoadingSubject","interval$","Set","expandedProjectIds","entriesQueueId","massToggleOperationDelay","scrollSubscription","emitDetectChanges","addNewBookingEntry","getsProjectRows","projectRows","projectName","timeOffRow","otherProjectRow","bookingEntryId","requestBookings","has","addEntryToQueue","queueEntry","queueEntryIndex","updateBookingDetailEntries","toggleAllResources","toggleGroup","loadingInterval","month","r","updateDates","disableMutationObserver","scrollToLeft","scrollToRight","enableMutationObserver","complete","getResourceIdsForLoadChanges","openBookingForm","updateBooking","recalculateGroup","reloadBookings","details","detailIndex","clearBooking","deleteBooking","replaceBookingEntry","requestDateHours","fillBookingEntry","updatingBookingEntry","deviation","detailEntry","newDetailEntry","setType","actionName","updatedBooking","slotInfo","getSlots","slotGroups","setValueMode","setPlanningScale","getInterval","toDate","resourceRequestInterval","rebuild","toggleRow","projectIds","errorHandlerOnSave","onOkCallback","BtConcurrencyException","TeamMember_IsNotTeamMemberOfProject","ex","enableLoadingOnScroll","setInfinityScroll","updateEntry","updateSubscription","notify","Booking","settings$","jump$","planningScale$","valueMode$","error$","i17","i18","BookingViewSettings","show","AssistantBookingViewSettings","defaultPlanningMethod","RemainingCapacity","defaultBookingType","Hours","DragHandler","mouseDown","mouseX","mouseY","isChanging","CellsOrchestratorService","total_r1","nonWorking","bookingEntry_r2","formLines","hostClass","rect","hostVars","hostBindings","BookingBasicLineRightComponent_HostBindings","attrs","BookingBasicLineRightComponent_Template","BookingBasicLineRightComponent_For_5_Template","ɵɵrepeaterTrackByIdentity","BookingBasicLineRightComponent_Template_div_mousedown_6_listener","BookingBasicLineRightComponent_For_8_Template","ɵɵstyleProp","resource_r1","noDataMessage","resource_r3","componentLine","BookingBasicComponent_Query","BookingBasicComponent_tbody_5_Template","BookingBasicComponent_tbody_6_Template","BookingBasicComponent_col_15_Template","BookingBasicComponent_tr_17_Template","BookingBasicComponent_tbody_18_Template","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_0_Template_i_click_0_listener","project_r2","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_2_Template_a_click_0_listener","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_0_Template","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_1_Template","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_2_Template","BookingDetailedLineLeftComponent_For_2_Conditional_3_Conditional_3_Template","BookingDetailedLineLeftComponent_For_2_Conditional_4_Template_div_click_2_listener","ɵɵpropertyInterpolate1","BookingDetailedLineLeftComponent_For_2_Conditional_5_For_4_Conditional_0_Template_button_click_0_listener","action_r7","BookingDetailedLineLeftComponent_For_2_Conditional_5_For_4_Conditional_0_Template","BookingDetailedLineLeftComponent_For_2_Conditional_5_For_4_Template","lineActions","totalHours","booking_r9","requestedHours","BookingDetailedLineLeftComponent_For_2_Conditional_7_For_1_Conditional_6_Template","BookingDetailedLineLeftComponent_For_2_Conditional_7_For_1_Template_tmt_state_badge_click_7_listener","_r8","openResourceRequest","ɵɵpureFunction3","stateParams","BookingDetailedLineLeftComponent_For_2_Conditional_7_For_1_Template","BookingDetailedLineLeftComponent_For_2_Conditional_3_Template","BookingDetailedLineLeftComponent_For_2_Conditional_4_Template","BookingDetailedLineLeftComponent_For_2_Conditional_5_Template","BookingDetailedLineLeftComponent_For_2_Conditional_6_Template","BookingDetailedLineLeftComponent_For_2_Conditional_7_Template","bookingManagerService","bookingViewSettingService","initLineActions","toggleState","isObject","initProjectRows","deleteBookingEntry","removeBookingEntry","clearBookingEntry","BookingDetailedLineLeftComponent_Template","BookingDetailedLineLeftComponent_Conditional_0_Template","BookingDetailedLineLeftComponent_For_2_Template","entry_r2","lineIndexes","row_r4","ɵ$index_9_r3","entry_r5","booking_r7","ɵ$index_15_r6","BookingDetailedLineRightComponent_For_2_For_4_For_2_Template","requestLines","BookingDetailedLineRightComponent_For_2_For_2_Template","BookingDetailedLineRightComponent_For_2_For_4_Template","tmp_12_0","ɵ$index_6_r8","cellsOrchestratorService","rebuildLines","fillRequestLines","rowFormArray","scheduleHours","fteHours","limitHours","detail","calcDeviation","bookingWithOpenRequest","slot","originalEntry","changeEntry","BookingDetailedLineRightComponent_Template","BookingDetailedLineRightComponent_Conditional_0_Template","BookingDetailedLineRightComponent_For_2_Template","ɵɵInheritDefinitionFeature","BookingDetailedComponent_Template","BookingDetailedComponent_tbody_5_Template","BookingDetailedComponent_tbody_6_Template","BookingDetailedComponent_col_15_Template","BookingDetailedComponent_tr_17_Template","BookingDetailedComponent_tbody_18_Template","chain","sumBy","group_r1","slot_r2","today","entry_r3","dayIndex_r4","BookingEntryFormDetailsComponent_div_1_col_3_Template","BookingEntryFormDetailsComponent_div_1_th_6_Template","BookingEntryFormDetailsComponent_div_1_th_8_Template","BookingEntryFormDetailsComponent_div_1_td_11_Template","trackByValueId","teamMemberId","bookingEntryFormService","cellsOrchestrator","updateForm","slotsInfo","planningMethodId","resolver","loadingSchedulesSubscription","updatePreview","isUpdate","previewLoadingSubscriptions","updateScheduleThenPreview","getFillOutForRequest","bookingSummary","requirementEntries","updatePreview$","allDates","d","BookingEntryFormService","BookingEntryFormDetailsComponent_Template","BookingEntryFormDetailsComponent_div_1_Template","FormHelper","BookingEntryFormComponent_button_59_Template_button_click_0_listener","BookingEntryFormComponent_button_62_Template_button_click_0_listener","BookingEntryFormComponent_button_62_span_1_Template","BookingEntryFormComponent_button_62_span_2_Template","updatedBookingEntry","updatedEntry","planningMethods","actionsAllowed","switchToHardAllowed","switchToSoftAllowed","savedEntry","closeForm","updateProjectsQuery","loadAllowedActions","currentPlanningMethod","sum","controlDatePair","BookingEntryFormComponent_Template","BookingEntryFormComponent_h3_2_Template","BookingEntryFormComponent_h3_3_Template","BookingEntryFormComponent_Template_button_click_4_listener","BookingEntryFormComponent_div_44_Template","BookingEntryFormComponent_div_52_Template","BookingEntryFormComponent_div_53_Template","BookingEntryFormComponent_button_59_Template","BookingEntryFormComponent_button_62_Template","BookingEntryFormComponent_Template_button_click_63_listener","Evenly","SchedulePercent","updatePreviewSubject","bookingEntryInfo","BookingEntryInfoComponent_Conditional_0_Template_a_click_3_listener","BookingEntryInfoComponent_Conditional_0_div_14_Template","projectManager","projectState","bookingMethod","bookingType","bookingPeriod","chrome","notFound","BookingEntryInfoComponent_Template","BookingEntryInfoComponent_Conditional_0_Template","BookingEntryInfoComponent_Conditional_1_Template","renderingService","freezeTablesService","isPseudoBooking","dragHandler","openProjectPopup","bookingProjectDiv","bookingProjectNameSpan","offsetWidth","popperModifiers","offset","placement","updateRender","renderParams","labelEl","paddingLeft","className","cl","startDragPosition","leftHandle","rightHandle","scroll$","entryEl","dragEvent","beginEventMouseGap","BookingEntryComponent_Template","BookingEntryComponent_Template_div_mousedown_2_listener","BookingEntryComponent_Template_div_mouseup_2_listener","BookingEntryComponent_Template_div_mouseleave_2_listener","BookingEntryComponent_i_4_Template","BookingEntryComponent_Template_span_click_5_listener","getPredefinedResourcePools","cascadeDependency","cascadeControls","controlName","dependedProperty","BookingFilterComponent_Query","BookingFilterComponent_Conditional_94_Template","allowNonActiveEntity","BookingLeftGroupComponent_tr_0_button_11_Template_button_click_0_listener","openProjectList","addResourceToSelected","isPopupOpened","BookingLeftGroupComponent_tr_0_Template_td_click_1_listener","clickExpander","BookingLeftGroupComponent_tr_0_Template_div_click_8_listener","BookingLeftGroupComponent_tr_0_button_11_Template","BookingLeftGroupComponent_tr_0_ng_container_12_Template","BookingLeftGroupComponent_tr_0_td_13_Template","resourceCss","isShowAddButton","isShowActionMenu","actionMenu_r4","BookingLeftGroupComponent_ng_container_1_tr_1_Template","ɵɵprojection","BookingLeftGroupComponent_ng_template_2_Template_button_click_4_listener","rowStates","userNameDiv","userNameSpan","projectBtn","popup","addBookingEntry","setLineToggledEvent","contentQueries","BookingLeftGroupComponent_ContentQueries","dirIndex","BookingLeftGroupComponent_tr_0_Template","BookingLeftGroupComponent_ng_container_1_Template","BookingLeftGroupComponent_ng_template_2_Template","isSending","BookingNotifyComponent_Template","BookingNotifyComponent_Template_button_click_5_listener","BookingNotifyComponent_Template_button_click_14_listener","BookingNotifyComponent_Template_button_click_17_listener","projects","BookingProjectAddComponent_div_4_Template_button_click_1_listener","BookingProjectAddComponent_div_4_Template_button_click_4_listener","getControlValue","hasTeamMember","getProjects","BookingProjectAddComponent_Template","BookingProjectAddComponent_wp_loading_indicator_0_Template","BookingProjectAddComponent_div_1_Template","BookingProjectAddComponent_form_2_Template","BookingProjectAddComponent_ngb_alert_3_Template","BookingProjectAddComponent_div_4_Template","BookingRightGroupComponent_Conditional_0_For_2_Template_td_click_0_listener","total_r2","openPopup","getSummaryIndicatorStyle","active","ɵɵpipeBind4","BookingRightGroupComponent_Conditional_0_For_2_Template","BookingRightGroupComponent_Conditional_1_ng_container_0_Template","componentLineInputs","initTotals","recalculateTotals","totalInfo","overtime","color","BookingRightGroupComponent_Template","BookingRightGroupComponent_Conditional_0_Template","BookingRightGroupComponent_Conditional_1_Template","slotsInfoHardTotal","ɵ$index_17_r3","ɵ$count_17_r4","slotsInfoSoftTotal","ɵ$index_43_r6","ɵ$count_43_r7","slot_r5","slotsInfoHard","slotsInfoSoft","Soft","BookingSlotInfoComponent_Template","BookingSlotInfoComponent_Conditional_2_Template","BookingSlotInfoComponent_For_4_Template","BookingSlotInfoComponent_Conditional_5_Template","BookingSlotInfoComponent_For_7_Template","BookingHeaderLeftComponent_button_10_Template_button_click_0_listener","BookingHeaderLeftComponent_Template","BookingHeaderLeftComponent_button_10_Template","$destroyed","BookingHeaderRightComponent_Template","BookingHeaderRightComponent_col_1_Template","BookingHeaderRightComponent_th_4_Template","BookingHeaderRightComponent_th_6_Template","filterHidden","BookingToolbarComponent_Template","BookingToolbarComponent_Conditional_2_Template","propagateSettingsChange","BookingViewSettingsComponent_Template","BookingViewSettingsComponent_Conditional_15_Template","_assistantMode","saveSettings","Certificates","CertificateCardComponent_ng_container_5_Template_ul_activeIdChange_30_listener","CertificateCardComponent_ng_container_5_div_36_Template","CertificateCardComponent_ng_container_5_div_41_Template","CertificateCardComponent_ng_container_5_tmt_entity_workflow_tasks_46_Template","CertificateCardComponent_ng_container_5_tmt_state_history_51_Template","usersQuery","CertificateCardComponent","logService","effectiveDate","expiryDate","certificateQuery","certificateReloaded$","loadCertificate","certificate","certificateEntity","localTitle","CertificateCardComponent_Template","CertificateCardComponent_ng_container_5_Template","CertificateListComponent","CERTIFICATES_LIST","CertificateCreationComponent","CertificatesFilterComponent","distinctUntilChanged","text$","$top","typeaheadListLength","certificateNames","formRawValue","userFromProfile","setUsersQuery","supervisors","any","CertificateCreationComponent_Template","CertificateCreationComponent_Template_button_click_5_listener","CertificateCreationComponent_Template_button_click_20_listener","CertificateCreationComponent_Template_button_click_23_listener","CertificatesFilterService","CertificateListComponent_Template","CertificatesFilterComponent_Template","hasActiveSelector","eq","ClientCardService","UIRouterGlobals","OverviewKpiService","ProjectSettingsComponent","tmp_4_0","site","tmp_5_0","tmp_6_0","ClientCardComponent_Conditional_3_Conditional_12_ng_container_3_Template","ClientCardComponent_Conditional_3_Conditional_12_Template_button_click_5_listener","selectState","ClientCardComponent_Conditional_3_Conditional_12_Template_button_click_8_listener","activity_r4","ClientCardComponent_Conditional_3_Conditional_13_ng_container_2_Template","uiRouterGlobals","current","tab_r5","ClientCardComponent_Conditional_3_Template_button_click_7_listener","ClientCardComponent_Conditional_3_Conditional_9_Template","ClientCardComponent_Conditional_3_Conditional_12_Template","ClientCardComponent_Conditional_3_Conditional_13_Template","ClientCardComponent_Conditional_3_li_24_Template","tmp_7_0","clientCardService","clientTotal$","actualHours","tabs","ClientCardComponent_ng_template_4_Conditional_0_Template","ClientCardComponent_ng_template_4_Conditional_1_Template","ClientCardComponent","defaultTabs","elRef","ngbModal","createProject","reloadTab","client$","clients","contactsViewAllowed","tariffsViewAllowed","invoicesViewAllowed","finance","clientTotal","clientCollection","currentClient","hostAttrs","ClientCardComponent_Template","ClientCardComponent_Conditional_3_Template","ClientCardComponent_ng_template_4_Template","tmp_1_0","clientSubject","reloadTabSubject","reloadTab$","clientTotalSubject","clientId","buildQuery","loadClient","loadClientTotal","updateClient","newClient","ClientContactsSettings","onlyActive","ClientContactsService","CLIENT_CONTACTS","ClientContactsComponent","clientContactsService","ClientContactsComponent_Template","ClientContactsToolbarComponent","ContactCreateModalComponent","toolbar","createClientContact","deleteContact","isStopSaving","loadSettings","contactCollection","delayDuration","setOrder","order","order$","o","orderChanged","buildContactsQuery","processContacts","contacts","contactsEditAllowed","setOnlyActive","clientContactsSettings","contactId","onContactDeleted","groupForSelection","contact","getClientContactFormGroup","getOrderBy","mobilePhone","phone","firstName","lastName","patronymic","editClientContact","userView","getUserView","saveUserView","PropagationMode","editableCustomFields","visibleByDefault","Navigation","propagationMode","onExitFromEditing","entityName","propertyName","fixedWidth","extendedType","dataColumns","AbstractToolbar","filterControl","ClientContactsToolbarComponent_Template","ClientContactsToolbarComponent_Template_button_click_2_listener","ClientContactsToolbarComponent_Template_button_click_7_listener","ClientContactsToolbarComponent_Template_button_click_21_listener","canBeExecuted","ClientDealsSettings","ClientDealsService","DEALS_LIST","ClientDealsComponent","clientDealsService","ClientDealsComponent_Template","ClientDealsToolbarComponent","DealCreateModalComponent","createClientDeal","deleteDeal","dealCollection","deals","processDeals","clientDealsSettings","dealId","onDealDeleted","deal","modifiedBy","resolution","sortingColumnName","allColumns","UserControl","replace","listQuery","ClientDealsToolbarComponent_Template","ClientDealsToolbarComponent_Template_button_click_2_listener","ClientDealsToolbarComponent_Template_button_click_7_listener","ClientDealsToolbarComponent_Template_button_click_21_listener","PROJECT_LIST","ClientLegalComponent","isNotSavedIndicator","taxNumber","minLength","pattern","registrationNumber","headcount","income","lastAutoUpdated","additionalInformation","taxNumberControl","valid","updateViaDadata","legal","isNewEntity","ClientLegalComponent_Template","ClientLegalComponent_Template_button_click_19_listener","ɵɵsanitizeHtml","TrendsKpiService","ClientOverviewAnalysisComponent","trendsKpiService","ClientOverviewAnalysisComponent_Template","OverviewModule","ClientOverviewAnalysisModule","keepMainActions","ClientOverviewKpiComponent","overviewKpiService","ClientOverviewKpiComponent_Template","ClientOverviewKpiComponent_wp_overview_kpi_0_Template","ClientOverviewKpiModule","ClientOverviewComponent","ClientOverviewComponent_Template","ClientOverviewModule","PnlService","ClientPnlComponent","pnlService","reloadListener","ClientPnlComponent_Template","ClientProjectsComponent","contextFilter","ClientProjectsComponent_Template","urlValidator","emailValidator","ClientSettingsModalComponent","ngbActiveModal","formCodeMaxLength","billingEqualPost","address","city","postIndex","postAddress","contactEmail","minPhoneLength","maxPhoneLength","setAddressesControlsState","clientData","managerId","ClientSettingsModalComponent_Query","ClientSettingsModalComponent_Template","ClientSettingsModalComponent_Template_button_click_5_listener","ClientSettingsModalComponent_ng_template_13_Template","ClientSettingsModalComponent_ng_template_18_Template","ClientSettingsModalComponent_Template_button_click_21_listener","ClientSettingsModalComponent_Template_button_click_24_listener","ClientSettingsService","clientSettingsService","ClientSettingsComponent","ClientSettingsComponent_Query","ClientSettingsComponent_Template","ClientSettingsComponent_Conditional_137_Template","getCustomFields","_isLoading","save$","subscribeToFormChanges","currencyValueRequiredValidator","uniqByKey","ClientTariffModalComponent_button_38_Template_button_click_0_listener","ClientTariffModalComponent","rates","clientTariffService","initialRate","currencyId","addValidators","isRateDateNotUniq","hasError","tariff","currencies","getTariffLinesFormGroup","rateValue","initValue","clientTariff","updateTariff","createTariff","getHeader","clientTariffId","ClientTariffService","ClientTariffModalComponent_Template","ClientTariffModalComponent_Template_button_click_6_listener","ClientTariffModalComponent_button_38_Template","ClientTariffModalComponent_Template_button_click_39_listener","ClientTariffsSettings","TariffRatesHelper","reloadData$","tariffRequest","tariffs","currencies$","getTariffsFormGroup","getCurrencyValue","actualTariff","getActualRate","isTariffExist","tariffId","ClientTariffsToolbarComponent","isActiveControl","ClientTariffsToolbarComponent_Template","ClientTariffsToolbarComponent_Template_button_click_2_listener","ClientTariffsToolbarComponent_Template_button_click_7_listener","ClientTariffsToolbarComponent_Template_button_click_11_listener","ClientTariffsToolbarComponent_Template_button_click_25_listener","CLIENT_TARIFF_LIST","ClientTariffsComponent","range","edit","tariffsEditAllowed","organizationTariffId","ClientTariffsComponent_Template","TotalType","totalByDefault","availableTotals","BooleanControl","ClientListComponent","CLIENT_LIST","ClientFilterComponent","ProjectTaskSharedModule","TariffRatesModule","InteractionsComponent","AccordionStateDirective","ClientFilterComponent_Template","ClientFilterComponent_div_9_Template","ClientFilterService","textFilters","ClientListComponent_Template","ContactCardService","contactCardService","tab_r2","ContactCardComponent_Conditional_3_Conditional_2_Template","ContactCardComponent_Conditional_3_Conditional_3_Template","ContactCardComponent_Conditional_3_Conditional_4_Template","ContactCardComponent_Conditional_3_Conditional_5_Template","ContactCardComponent_Conditional_3_For_9_Template","ContactCardComponent","ContactCardComponent_Template","ContactCardComponent_Conditional_3_Template","contactName","_contactName","_contact","loadContact","updateContact","newContact","ContactProfileService","contactProfileService","ContactProfileComponent","ContactProfileComponent_Query","ContactProfileComponent_Template","ContactProfileComponent_Conditional_79_Template","contactData","creationForm","ContactCreateModalComponent_Template","ContactCreateModalComponent_Template_button_click_5_listener","ContactCreateModalComponent_Conditional_25_Template","ContactCreateModalComponent_Template_button_click_58_listener","ContactCreateModalComponent_Template_button_click_61_listener","CustomFieldsComponent","TextBoxComponent","LabelIndicatorDirective","encapsulation","CONTACTS_LIST","ContactListFilterComponent","ContactListComponent","filterInstance","ContactListFilterComponent_Template","ContactListFilterComponent_Conditional_3_Template","hasClient","ContactListFilterService","filterFields","ContactListComponent_Template","LoadingStrategy","Boolean","Email","Phone","loadingStrategy","WhenShowing","dataCollection","defaultGroupName","workflowTaskActionsGroupName","workflowCancelActionGroupName","runSubject","run$","updatedSubject","updated$","actionsVisibilitySubject","actionsVisibility$","additionalActions","additionalUpdatedSubject","additionalUpdated$","_groups","hasReloaderSubject","hasReloader$","hasAutosaveSubject","hasAutosave$","propagate","addAdditional","getAction","flatActions","flatMap","g","MenuActionMethods","registerLifecycle","getPanelActionForWorkflowTaskAction","workflowAction","lifecycle","actionType","taskId","workflowActionId","getPanelActionForWorkflowStartAction","workflowId","workflowTaskActions","workflowStartActions","wfGroup","canCancelWorkflow","cancelLabel","runAction","hideReloader","onSuccessTransitionEvent","hasAutosave","setVisibility","providedIn","shareReplay","Observable","sourceDescriptionsObservables","subscriber","it","jsonFile","onprem","fetch","headers","json","ClientProfile","Settings","RoleName","PRODUCT_FEATURE_MAPPING","registerLocaleData","bcp47Normalize","Language","ProductSelectorModalComponent","HttpHeaders","wpAppConfigService","wpAuthService","autosaveStateService","navigationItems","_customFields","savingQueue","caches","eachCacheName","eachCache","requests","eachRequest","navigator","serviceWorker","getRegistrations","registrations","registration","unregister","completeAuthentication","initAuthWorker","checkAuthSession","signinSilent","getUser","expired","startSilentRenew","registerServiceWorker","loadSessionAndProfile","all","loadSession","addLangs","cultureCode","use","localeInitializer","changeTimeZone","changeLocale","loadHelpScout","checkTrial","initCustomFields","loadClientProfile","loadNavigationItems","removedItems","differenceBy","getRegistration","controller","postMessage","port","ports","getAuthorizationHeaderValue","authHeader","sessionEtagStorageKey","getWithHeaders","$expand","finally","setSessionTimeZoneOffset","clientType","parseClientProfile","saveProfileLazy","clientProfile","val","saveProfile","ru","en","getBackwardCompatibilityLanguage","entityAccess","entitiesAccess","viewAllowed","granularName","scopeName","permission","viewEnabled","editEnabled","deleteEnabled","actionEnabled","checkRole","roleName","roles","feature","products","product","My","Team","TeamManager","Projects","ProjectManager","Resources","ResourceManager","Analytics","Clients","ClientManager","HelpDesk","Billing","BillingManager","billing","FinanceManager","Administrator","profile","defaultLocale","timeZone","defaultZone","tenantIsInTrial","licenseInfo","limit","licenseProducts","beaconId","getRolesEntities","metamodel","entities","getPropertyRelatedDictionaryId","getMetaEntityDisplayName","getPropertyLocalizationName","metaEntityProps","complexProperties","currentLanguage","noTitle","primitiveProps","customFieldId","complexProps","navigationProps","directoryProps","keyProperty","viewConfiguration","labels","placeholders","ph","localeId","module","default","offsetHours","utc","setZone","offsetHoursString","AutosaveStateService","Oidc","UserManager","WebStorageStateStore","share","take","NavigationIndicatorsSettings","cookieService","sessionStorageService","savedPathStorageName","syncStoreName","loginAsStoreName","authSessionStoreName","token$","access_token","check","Log","logger","getClientSettings","events","addSilentRenewError","addUserSignedOut","signinRedirect","addAccessTokenExpiring","accessTokenExpiringTime","addUserLoaded","timeElapsed","sub","setAuthSessionCookie","redirectToSaveState","path","history","pushState","clearStoredIndicators","signoutRedirect","signinRedirectCallback","clearStaleState","startSubstituting","updateSyncStore","indicators","segments","host","userStore","stateStore","clockSkew","authority","passport","client_id","redirect_uri","loadUserInfo","silent_redirect_uri","post_logout_redirect_uri","response_type","scope","filterProtocolClaims","silentRequestTimeout","automaticSilentRenew","accessTokenExpiringNotificationTime","monitorSession","metadata","issuer","jwks_uri","authorization_endpoint","token_endpoint","userinfo_endpoint","end_session_endpoint","check_session_iframe","revocation_endpoint","introspection_endpoint","SessionStorageService","BlockUI","blockInterface","__decorate","storedCompactMode","scrollSubject","permanentCompactMode$","mainAreaSizeSubject","mainAreaSize$","minWidthForNonCompactMode","updateState","toggleCompactMode","loadPage","scrollContainer","subscription","clientWidth","documentElement","permanentCompactMode","compactMode","ExpensesRequestCreationComponent","ProgramSettingsComponent","InteractionModalComponent","TimeOffCreationComponent","timeOff","expenses","programs","requestStatusSubject","requestStatus$","helper","DataServiceHelper","singleton","getBaseUrl","Collection","setResponseStatus","statusNumber","Model","addUrlParameters","urlParameters","getFuncUrl","oDataParams","funcUrl","funcParams","getOptionsWithHeaders","headerParams","existOptions","undoRedoSessionId","Function","Action","post","getBlob","collectionUrl","queryObject","rootUrl","ThisWeek","PrevWeek","ThisMonth","PrevMonth","ThisQuarter","PrevQuarter","ThisYear","PrevYear","years","NextYear","NextQuarter","quarter","NextMonth","NextWeek","Last7Days","Last30Days","includeTimeZone","toUTC","FinancialAccount","FinancialAccountType","FinancialAccountsService","accounts$","getAvailableAccounts","projectExpensesAccounts$","accounts","isSystem","corporateTaxId","projectExpensesAccountsNotIncludedInBalance$","includedInBalance","expensesRequestAccounts$","getCompleteFteSchedule","getSchedule","scheduleId","Highcharts","Info","HighchartsService","highcharts","setOptions","weekdays","shortMonths","monthsFormat","getHighcharts","localService","routerGlobals","_maxItemsCount","_historySettings","HistorySettings","history$","historyItems","savedItemsCount","sliceHistoryItems","saveHistoryItem","isObjectEmpty","isItemEqualLastSaved","itemToSave","lastSavedItem","isStateEqual","isIdEqual","nameSegments","appName","getHistory","DataServiceHotHelper","editingSessionId","applicationId","DataServiceHot","WebSocketHotChangesService","changesSubject","dataServiceHot","initSignalR","connection","send","on","throwError","auth","intercept","tokenValue","requestClone","HttpResponse","EMPTY","req","errorResponse","status","Blob","BtSubstitutionException","eventBody","exceptionKeys","responseBody","k","MassOperationParameters","MassOperationComponent","metaEntityType","massOperationParameters","entityTypeService","lcInfoRequestingCancelled$","filterDebounce","selectedChangedHandler","clearActionPanel","clearSelectedGroups","getCollectionName","getEntityTypeCollection","setActions","selectedGroupsValue","ids","isAllSelected","getSelectQuery","entityPropertyName","closed","dismissed","massOperationType","changeStateParams","entityIds","getStateIdAndKindId","kindProperty","lifecycleKindProperty","nestedProperty","getGroupByStateIdQuery","kindId","uniqWith","lcInfo","EntityTypesService","WorkflowActionCommentFormComponent","autosavePromise","autosaveService","rootActionPanelService","_refreshLifecycleInfo$","lifecycleInfo$","onActionError","offCanvasActionPanelService","info","performWorkflowTask","startWorkflow","cancelWorkflow","getCollection","executedTransition","transitionItem","sendSetStateRequest","sendPerformWorkflowTaskRequest","actionId","executedTask","workflowTask","actionFormValue","hasActionForm","storedSettings","trackPageView","MenuComponent","_ngZone","_events","_onClickBody","bind","menuEl","zIndex","popupEntry","menuItems","mutationObserverElement","_initClickOutsideListener","_removeClickOutsideListener","ev","MessageComponent","buttonOkText","buttonCancelText","refModal","buttonOk","buttonCancel","errorDetail","confirm","confirmText","cancelText","DEFAULT_INTERRUPTSOURCES","MY_APP_NAVIGATION","TEAM_APP_NAVIGATION","PROJECTS_APP_NAVIGATION","BILLING_APP_NAVIGATION","ANALYTICS_APP_NAVIGATION","SETTINGS_APP_NAVIGATION","FINANCE_APP_NAVIGATION","RESOURCE_APP_NAVIGATION","CLIENTS_APP_NAVIGATION","HELP_DESK_APP_NAVIGATION","storedRoute","segment","appToNavigationMap","_appToNavigationMap","idle","navigationSubject","n","routeSubject","route$","previousStateSubject","previousState$","navigationItemSubject","indicatorUpdatedSubject","indicatorUpdated$","indicatorValues","tempItems","idleTime","indicatorsCheckingTime","indicatorsStaleTime","appToNavigationMapDefault","stateByEntityType","customizer","srcItem","mergeWith","getNavigationItemBy","currentNavigation","setIdle","setInterrupts","watch","onIdleStart","stopIndicatorUpdating","onIdleEnd","startIndicatorUpdating","onTransitionSuccess","onTransitionStart","getNavigationTitle","reloadState","forceReload","initNavigationViews","updateNavigationGroupByCustom","cacheDefaultNavigation","navigationViews","buildNavigationView","userNavigationView","getNavigationView","mergeNavigationViews","saveNavigationView","resetNavigationView","itemConfig","lowerCase","createAndSelectNavItem","groupName","keepNavInState","existsItem","selectNavigationItemBy","userNavigation","defaultNavigation","defaultGroupsMap","keyBy","userGroupsMap","defaultGroup","defaultItemsMap","userItemsMap","destroyTempItems","getNavigationGroupByItemName","getRouteBasis","breadCrumbs","resetRoute","propagateRoute","previousState","getPreviousState","newParams","toState","router","inherit","keep","restoredRoute","indicator","indicatorFromSettings","lastUpdate","replaceAll","queryFunc","queryFunction","$apply","propagateIndicators","navigationName","firstSegment","clearInterval","indicatorsTimer","setInterval","Idle","createdSubject","created$","warning","success","sendMessage","OffCanvasComponent","bootstrapOffCanvasService","entityUpdatedSubject","offCanvasWidthSubject","offCanvasWidth$","reRenderSubject","reRender$","delayBeforeRender","closeOffCanvas","defaultOptions","panelClass","offCanvas","onClose","hasOpenModals","onEntityUpdated","setWidth","isEntryEqualComponent","NgbOffcanvas","ScheduleService","checkNonWorkingDay","_scheduleScheme","adaptedPattern","getPatternForDate","dayLength","checkIsExceptionDay","firstDay","patternDays","workDaysCountInPattern","_workDaysCountInPattern","exceptionDays","scheduleException","initScheduleScheme","scheme","daysCount","weekday","getClosestWorkDay","patternDayIterator","newDate","isNonWorkingDay","getDuration","startDate","endDate","intCountPatterns","intPatternWorkDaysCount","firstRemainderDate","remainderPatternWorkDays","remainderPatternIterator","day","isWorkDayByPattern","getEndDate","targetDuration","currentDuration","daysByPatterns","patternDayIndex","delta","firstPart","lastPart","adaptedPatternIterator","dayNumber","checkingType","getStateForWorkflowEntity","StopwatchState","stopwatchSubject","stopwatch$","openPopupSubject","openPopup$","stopSubject","stop$","externalUpdateSubject","externalUpdate$","updateStopwatch","stopwatch","newValue","tabId","updateSharedStopwatch","getTotalDurationValue","Paused","startTime","seconds","getFormattedDuration","hoursPart","minutesPart","timeSheetLineId","pause","resume","Started","stopwatchStopType","TemplateService","sanitizer","getHtml","bypassSecurityTrustHtml","DomSanitizer","timer","swUpdate","unrecoverable","reason","updateCheckPeriod","checkForUpdate","activate","activateUpdate","SwUpdate","UserNotificationService","webSocketsService","stateBuilder","browserNotificationService","notifications","notificationsSubject","notifications$","hasUnreadNotificationsSubject","hasUnreadNotifications$","requestPage$","sendNotification","loadNotifications","checkUnreadNotifications","markAsRead","notificationId","read","markAllAsRead","dataQuery","countQuery","unreadCount","stateSettings","subject","click","BrowserNotificationService","ValidationService","getErrorTooltip","errors","errorString","upperFirst","HttpTransportType","HubConnectionBuilder","LogLevel","connectionSubject","connection$","hubName","websocket","withUrl","accessTokenFactory","getToken","skipNegotiation","transport","WebSockets","withAutomaticReconnect","fill","configureLogging","Information","build","DealCardService","DealContactsService","DealProfileService","dealCardService","DealCardComponent_Conditional_3_Conditional_5_Template_button_click_5_listener","tab_r3","DealCardComponent_Conditional_3_Conditional_4_Template","DealCardComponent_Conditional_3_Conditional_5_Template","DealCardComponent_Conditional_3_For_16_Template","DealCardComponent","dealProfileService","DealCardComponent_Template","DealCardComponent_Conditional_3_Template","dealName","_dealName","_deal","_reloadTabSubject","dealContacts","wpCurrencyPipe","loadDeal","probability","updateDeal","newDeal","DealContactsToolbarComponent","DealAddContactsModalComponent","DealContactsSettings","readonlyDeal","selectClientContact","dealContactsCollection","dealContact","dealContactsSettings","addContactToDeal","isSaved","oldContacts","indexToDelete","contactIdIndex","parentEntityId","existedEntities","isSavedArray","contactsToAdd","DealAddContactsModalToolbarComponent","DealAddContactsModalToolbarComponent_Template","DealAddContactsModalToolbarComponent_Template_button_click_2_listener","AddEntitiesModalComponent","DEAL_CONTACTS","loadingLimit","entity_r4","DealAddContactsModalComponent_For_14_Template_div_click_0_listener","$index_r5","removeEntity","DealAddContactsModalComponent_For_14_Conditional_1_Template","DealAddContactsModalComponent_For_14_Template_button_click_4_listener","ctx_r5","hasAvatar","noDisplayDataMessage","DealAddContactsModalComponent_Conditional_17_Template_button_click_0_listener","fieldToSortOnClient","selectionLimitWarning","modalWindowHeader","filterServiceInstance","team","selectedEntities","member","availableEntities","loadedPartly","getEntityFormGroup","DealAddContactsModalComponent_Template","DealAddContactsModalComponent_Template_button_click_5_listener","DealAddContactsModalComponent_Conditional_9_Template","DealAddContactsModalComponent_For_14_Template","DealAddContactsModalComponent_Conditional_15_Template","DealAddContactsModalComponent_Conditional_17_Template","DealAddContactsModalComponent_Template_button_click_18_listener","DealContactsComponent","dealContactsService","DealContactsComponent_Template","Always","DealContactsToolbarComponent_Template","DealContactsToolbarComponent_Template_button_click_2_listener","DealContactsToolbarComponent_Template_button_click_7_listener","DealContactsToolbarComponent_Template_button_click_11_listener","DealContactsToolbarComponent_Template_button_click_25_listener","commentedEntityCollectionType","Deals","DealProfileComponent_Conditional_79_Template_ul_activeIdChange_0_listener","DealProfileComponent_Conditional_79_div_6_Template","DealProfileComponent_Conditional_79_div_11_Template","DealProfileComponent_Conditional_79_tmt_entity_workflow_tasks_16_Template","DealProfileComponent_Conditional_79_tmt_state_history_21_Template","DealProfileComponent","DealProfileComponent_Template","DealProfileComponent_Conditional_50_Template","DealProfileComponent_Conditional_77_Template","DealProfileComponent_Conditional_78_Template","DealProfileComponent_Conditional_79_Template","tmp_38_0","resolutionId","resolutionComment","sourceId","dealData","_isSaving","creationFormValue","DealCreateModalComponent_Template","DealCreateModalComponent_Template_button_click_5_listener","DealCreateModalComponent_Conditional_13_Template","DealCreateModalComponent_Template_button_click_21_listener","DealCreateModalComponent_Template_button_click_24_listener","DealListComponent","RichEditorBoxComponent","DealListFilterComponent","DealListFilterComponent_Template","DealListFilterComponent_Conditional_3_Template","DealListComponent_Template","DATE_TIME_COLUMN_WIDTH","getNamedEntityDataColumns","getNamedEntityGridColumns","DEFAULT_VIEW_COLUMNS","CheckboxTestComponent","activeReversed","flag","formInputParams","CheckboxTestComponent_Template","CheckboxTestComponent_Template_button_click_2_listener","CheckboxTestComponent_Template_button_click_4_listener","CheckboxTestComponent_Template_button_click_6_listener","CurrencyBoxTestComponent","valueBC","CurrencyBoxTestComponent_Template","CurrencyBoxTestComponent_Template_button_click_2_listener","CurrencyBoxTestComponent_Template_button_click_4_listener","CurrencyBoxTestComponent_Template_button_click_6_listener","DateBoxTestComponent","dateTime","dateNonNullable","dateWithSchedule","nonWorkingDays","initSchedule","dateHour","DateBoxTestComponent_Template","DateBoxTestComponent_Template_button_click_2_listener","DateBoxTestComponent_Template_button_click_4_listener","DateBoxTestComponent_Template_button_click_6_listener","DatePeriodBoxTestComponent","DatePeriodBoxTestComponent_Template","DatePeriodBoxTestComponent_Template_button_click_2_listener","DatePeriodBoxTestComponent_Template_button_click_4_listener","DatePeriodBoxTestComponent_Template_button_click_6_listener","DebugAppComponent","DebugAppComponent_Template","DEBUG_APP_STATES","StatusPageComponent","HierarchicalBoxTestComponent","TextBoxTestComponent","NumberBoxTestComponent","UserBoxTestComponent","MultilineTextBoxTestComponent","SelectBoxTestComponent","TaskBoxTestComponent","DurationBoxTestComponent","ProjectCardSharedModule","PredecessorBoxTestComponent","GridTestComponent","FormHelperTestComponent","RichEditorBoxTestComponent","GridTestRightSideTableComponent","GridTestToolbarComponent","CheckboxComponent","TimeTrackerBoxTestComponent","DEBUG_APP_NAVIGATION","TreeListTestComponent","appStates","initApp","DimensionItem","dimensionItems","duration2","durationMonths","durationWeeks","formChangeSubscription","DurationBoxTestComponent_Template","DurationBoxTestComponent_Template_button_click_2_listener","DurationBoxTestComponent_Template_button_click_4_listener","DurationBoxTestComponent_Template_button_click_6_listener","week","isDisableDepended","FormHelperTestComponent_Query","FormHelperTestComponent_Template_button_click_2_listener","FormHelperTestComponent_Template_button_click_4_listener","FormHelperTestComponent_Template_button_click_6_listener","GridDataService","mockData","stringControl","numberControl","selectControl","dateControl","initMockData","getFormGroup","initSlots","getSlotTableWidth","startPeriod","endPeriod","initEntries","cellEntries","AbstractRightSide","GridTestRightSideTableComponent_tbody_15_td_7_Template","taskFormGroup_r4","gridDataService","GridTestRightSideTableComponent_Template","GridTestRightSideTableComponent_col_3_Template","GridTestRightSideTableComponent_th_6_Template","GridTestRightSideTableComponent_th_8_Template","GridTestRightSideTableComponent_col_13_Template","GridTestRightSideTableComponent_tbody_14_Template","GridTestRightSideTableComponent_tbody_15_Template","GridTestToolbarComponent_Template","GridTestToolbarComponent_Template_button_click_2_listener","GRID_TEST_LIST","GridComponent","GridTestComponent_Conditional_0_Template_button_click_4_listener","GridTestComponent_Conditional_0_Template_button_click_8_listener","component_r3","GridTestComponent_ng_template_2_Conditional_21_Template_button_click_0_listener","showInModal","GridTestComponent_ng_template_2_23_ng_template_0_Template","GridTestComponent_ng_template_2_Conditional_21_Template","GridTestComponent_ng_template_2_23_Template","settingForm","selectionTypes","isModalMode","rightSideComponent","gridComponent","gridComponentInputs","isShowRightSideComponent","isShowMultiselectColumn","isReadonly","isShowMenuColumn","none","multiSelectColumn","rowContextMenu","initGridComponent","patchSettingForm","subscribeSettingForm","rebuildGridComponent","isShowMultilineColumn","GridTestComponent_Template","GridTestComponent_Conditional_0_Template","GridTestComponent_Conditional_1_Template","GridTestComponent_ng_template_2_Template","DateControl","departmentWithSub","hierarchical","HierarchicalBoxTestComponent_Template","HierarchicalBoxTestComponent_Template_button_click_2_listener","HierarchicalBoxTestComponent_Template_button_click_4_listener","HierarchicalBoxTestComponent_Template_button_click_6_listener","isExitEditing","onExitEditing","clearValue","MultilineTextBoxTestComponent_Template","MultilineTextBoxTestComponent_Template_button_click_2_listener","MultilineTextBoxTestComponent_Template_button_click_4_listener","MultilineTextBoxTestComponent_Template_button_click_6_listener","MultilineTextBoxTestComponent_Template_button_click_8_listener","onInput","integer","work","decimal","decimalWithPrecision","btnDisable","btnEnable","btnSetValue","checkboxReadonly","controlIsValid","numberBoxInteger","numberBoxDecimal","numberBoxDecimalWithPrecision","numberBoxCurrency","numberBoxWork","numberBoxPercent","NumberBoxTestComponent_Template","NumberBoxTestComponent_Template_button_click_2_listener","NumberBoxTestComponent_Template_button_click_4_listener","NumberBoxTestComponent_Template_button_click_6_listener","NumberBoxTestComponent_Template_button_click_8_listener","projectTasksJSON","ProjectTaskDependenciesService","ProjectTasksDataService","ProjectTeamService","ProjectVersionCardService","ProjectCardService","ProjectTasksCommandsService","predecessor","skills","skillsTokens","rolesDefaultMode","dependencies","PredecessorBoxTestComponent_Template","PredecessorBoxTestComponent_Template_button_click_2_listener","PredecessorBoxTestComponent_Template_button_click_4_listener","PredecessorBoxTestComponent_Template_button_click_6_listener","PredecessorBoxTestComponent_Conditional_12_Template","PredecessorBoxTestComponent_Conditional_13_Template","mentionsFirstText","mentionsFirst","mentionsSecondText","mentionsSecond","editByButtonControl","alwaysEditableModeControl","setControl","mentionedUserIdsFirst","userIds","mentionedUserIdsSecond","RichEditorBoxTestComponent_Template","RichEditorBoxTestComponent_Template_button_click_3_listener","RichEditorBoxTestComponent_Template_button_click_5_listener","RichEditorBoxTestComponent_Template_button_click_7_listener","RichEditorBoxTestComponent_Template_button_click_9_listener","RichEditorBoxTestComponent_Template_tmt_rich_editor_box_mentionedUserIds__18_listener","RichEditorBoxTestComponent_Template_tmt_rich_editor_box_mentionedUserIds__34_listener","groupingValues","selectCollection","selectValues","selectValues2","selectValues3","selectValues4","selectCollectionIdMode","selectValuesIdMode","SelectBoxTestComponent_Template","SelectBoxTestComponent_Template_button_click_2_listener","SelectBoxTestComponent_Template_button_click_4_listener","SelectBoxTestComponent_Template_button_click_6_listener","permission_r1","StatusPageComponent_tr_36_p_4_strong_1_Template","StatusPageComponent_tr_36_p_4_span_2_Template","StatusPageComponent_tr_36_p_4_span_3_Template","StatusPageComponent_tr_36_p_4_span_4_Template","StatusPageComponent_tr_36_p_4_span_5_Template","StatusPageComponent_tr_36_p_4_Template","granule_r2","renewSession","resetClientProfile","userViews","completedQuickStartPages","granules","StatusPageComponent_Template","StatusPageComponent_Template_button_click_18_listener","StatusPageComponent_Template_button_click_24_listener","StatusPageComponent_tr_36_Template","primaryDomain","TaskBoxTestComponent_Template","TaskBoxTestComponent_Template_button_click_2_listener","TaskBoxTestComponent_Template_button_click_4_listener","TaskBoxTestComponent_Template_button_click_6_listener","phoneOnExit","TextBoxTestComponent_Template","TextBoxTestComponent_Template_button_click_2_listener","TextBoxTestComponent_Template_button_click_4_listener","TextBoxTestComponent_Template_button_click_6_listener","TextBoxTestComponent_Template_button_click_8_listener","TimeTrackerBoxTestComponent_Template","TimeTrackerBoxTestComponent_Template_button_click_2_listener","TimeTrackerBoxTestComponent_Template_button_click_4_listener","TimeTrackerBoxTestComponent_Template_button_click_6_listener","TreeListComponent","TREE_LIST_TEST","TreeListTestComponent_Template","leadDepartmentId","userNullNotAllowed","UserBoxTestComponent_Template","UserBoxTestComponent_Template_button_click_2_listener","UserBoxTestComponent_Template_button_click_4_listener","UserBoxTestComponent_Template_button_click_6_listener","EmployeeCardService","UserCertificatesService","EmployeeMainService","EmployeeTimeOffBalanceService","tab_r1","EmployeeCardComponent_ng_container_6_li_2_Template","EmployeeCardComponent","user$","currentStatePrefix","totalsViewAllowed","EmployeeCardComponent_Template","EmployeeCardComponent_ng_container_6_Template","tmp_0_0","EmployeeMainModule","EmployeeTimeOffBalanceModule","EmployeeWorkOverviewComponent","EmployeeTimeOffBalanceComponent","EmployeeMainComponent","EmployeeExperienceOverviewModule","EmployeeExperienceOverviewComponent","EmployeeCardModule","resolveEntityIdOrCurrentUserId","userSubject","EmployeeExperienceOverviewService","EMPLOYEE_EXPERIENCE_OVERVIEW_LIST","DefaultFilterService","initFilterService","experienceOverviewLines$","projectCode","formatDate","projectStartDate","projectEndDate","EmployeeExperienceOverviewComponent_Template","experienceOverviewLinesSubject","fromRow","Work","AddingSkillsModalComponent_tr_30_Template_button_click_5_listener","skill_r4","index_r5","selectSkill","loadLimit","AddingSkillsModalComponent_tr_53_Template_button_click_5_listener","ctx_r7","skill_r9","index_r10","removeSkill","AddingSkillsModalComponent_button_56_Template_button_click_0_listener","_r11","AddingSkillsModalComponent","leftTableStyles","rightTableStyles","availableSkills","selectedSkills","resizeLeftTbl","leftTbl","resizeRightTbl","rightTbl","userSkill","skillId","currentSkills","inString","filterInputLengthLimit","AddingSkillsModalComponent_Query","AddingSkillsModalComponent_Template_button_click_5_listener","AddingSkillsModalComponent_Template_table_resized_21_listener","AddingSkillsModalComponent_tr_30_Template","AddingSkillsModalComponent_tr_31_Template","AddingSkillsModalComponent_tr_32_Template","AddingSkillsModalComponent_Template_table_resized_44_listener","AddingSkillsModalComponent_tr_53_Template","AddingSkillsModalComponent_tr_54_Template","AddingSkillsModalComponent_button_56_Template","AddingSkillsModalComponent_Template_button_click_57_listener","SkillEstimationCellComponent","ResourceRolesService","EmployeeMainComponent_Conditional_17_Conditional_5_Template","EmployeeMainComponent_Conditional_17_Conditional_6_Template","firstWorkDay","lastWorkDay","EmployeeMainComponent_Conditional_47_Conditional_1_Template","EmployeeMainComponent_Conditional_47_Conditional_2_Template","EmployeeMainComponent_Conditional_115_Template_button_click_2_listener","makeProfileEditable","EmployeeMainComponent_Conditional_116_Template_button_click_2_listener","EmployeeMainComponent_Conditional_116_Template_button_click_5_listener","onProfileEditingCancel","EmployeeMainComponent_Conditional_122_Conditional_0_Template_button_click_0_listener","isShowAdditionalRolesGrid","EmployeeMainComponent_Conditional_122_Conditional_0_Template","EmployeeMainComponent_Conditional_122_Conditional_1_Template","EmployeeMainComponent_Conditional_131_Template_button_click_1_listener","addSkills","resourceRolesService","employeeCardService","employeeMainService","isProfileEditable","removeUserSkill","estimation","skillsEditAllowed","additionalUserRoles","subscribeToEstimates","us","EmployeeMainComponent_Query","EmployeeMainComponent_Template","EmployeeMainComponent_Conditional_16_Template","EmployeeMainComponent_Conditional_17_Template","EmployeeMainComponent_Conditional_40_Template","EmployeeMainComponent_Conditional_41_Template","EmployeeMainComponent_Conditional_46_Template","EmployeeMainComponent_Conditional_47_Template","EmployeeMainComponent_Conditional_115_Template","EmployeeMainComponent_Conditional_116_Template","EmployeeMainComponent_Conditional_122_Template","EmployeeMainComponent_Conditional_131_Template","enabled","tmp_44_0","userRolesEditAllowed","NgOptimizedImage","UserCertificatesComponent","fill_r1","SkillEstimationCellComponent_Template","SkillEstimationCellComponent_ng_template_1_Template","UserCertificatesComponent_Conditional_0_Conditional_4_Template_button_click_1_listener","addCertificate","UserCertificatesComponent_Conditional_0_Conditional_4_Template","certificatesEditAllowed","certificates","certificates$","UserCertificatesComponent_Template","UserCertificatesComponent_Conditional_0_Template","certificatesViewAllowed","certificatesSubject","timeOffBalanceLines$","timeOffTypeName","timeOffTypeUnit","accrued","used","balance","EmployeeTimeOffBalanceComponent_Template","timeOffBalanceLinesSubject","EmployeeWorkOverviewComponent_tr_42_Template_tr_click_0_listener","row_r2","selectSlice","selectedSector","percentage","chart","series","points","silent","functionName","tData","namedValue","colorIndex","setData","isEmptyData","chartSettings","plotBackgroundColor","plotBorderWidth","plotShadow","align","verticalAlign","credits","plotOptions","pie","allowPointSelect","cursor","showInLegend","dataLabels","format","tooltip","pointFormat","innerSize","point","sliced","EmployeeWorkOverviewComponent_Template","EmployeeWorkOverviewComponent_div_25_Template","EmployeeWorkOverviewComponent_tr_42_Template","EmployeeWorkOverviewComponent_tr_43_Template","EmployeeFilterComponent","EmployeeListComponent","EMPLOYEE_LIST","EmployeeFilterComponent_Query","ProfileFilterService","hasPeriodSelector","periodSelectorPlaceholder","resourceTypes","EmployeeListComponent_Template","ExpenseTaskCellComponent","ExpenseRequestCardService","ExpenseTaskCellComponent_Template","ExpenseTaskReadonlyCellComponent","getTaskFullName","ExpenseTaskReadonlyCellComponent_Template","LineModalComponent","ExpensesRequestDetailsToolbarComponent","CommentsDataService","ExpensesRequestDetailsComponent","createLine","openLineModal","copyLine","attachment","removeAttachment","afterActionComplete","reimbursementCurrencyChanged$","entityReloaded$","amountRC","refreshReimbursementXR","refreshProjectXR","getMainTaskObs","task","lineCardBuilderFn","updatedFormGroup","ExpensesRequestDetailsComponent_Template","FilesService","LineModalComponent_button_77_Template_button_click_0_listener","financialAccountsService","filesService","maxAttachmentSize","lineForm","modalClosed$","files","LineModalComponent_Template","LineModalComponent_Template_button_click_5_listener","LineModalComponent_button_77_Template","LineModalComponent_Template_button_click_78_listener","ExpensesRequestDetailsToolbarComponent_Conditional_2_Template_button_click_0_listener","ExpensesRequestDetailsToolbarComponent_Template","ExpensesRequestDetailsToolbarComponent_Conditional_2_Template","ExpensesRequestDetailsToolbarComponent_Template_button_click_4_listener","ExpensesRequestDetailsToolbarComponent_Template_button_click_10_listener","readonly$","EXPENSE_REQUEST_LINE_LIST","ExpensesRequestSetProjectComponent","ExpensesRequestCardComponent_ng_container_6_i_20_Template_i_click_0_listener","setProject","expensesService","getUserProjectCostCenters","ExpensesRequestCardComponent_ng_container_6_Template_button_click_11_listener","ExpensesRequestCardComponent_ng_container_6_Template_button_click_18_listener","ExpensesRequestCardComponent_ng_container_6_i_20_Template","ExpensesRequestCardComponent_ng_container_6_Conditional_22_Template","ExpensesRequestCardComponent_ng_container_6_Conditional_32_Template","ExpensesRequestCardComponent_ng_container_6_Conditional_33_Template","ExpensesRequestCardComponent_ng_container_6_Template_ul_activeIdChange_42_listener","ExpensesRequestCardComponent_ng_container_6_Template_li_click_44_listener","sortService","ExpensesRequestCardComponent_ng_container_6_div_48_Template","ExpensesRequestCardComponent_ng_container_6_Template_li_click_49_listener","ExpensesRequestCardComponent_ng_container_6_div_53_Template","ExpensesRequestCardComponent_ng_container_6_Template_li_click_54_listener","ExpensesRequestCardComponent_ng_container_6_div_58_Template","ExpensesRequestCardComponent_ng_container_6_Template_li_click_59_listener","ExpensesRequestCardComponent_ng_container_6_tmt_state_history_63_Template","isSetProjectShown","loadingState$","showLegalEntity","showCurrencies","showCostCenter","linesArray","ExpensesRequestCardComponent","reimbursementCurrency","getRequestToSave","reimbursementCurrencyId","lineBuilderFn","initBaseCurrency","deleteEntity","request$","onExpenseRequestLoaded","setProject$","updateFormHeader","expenseRequest","refreshReimbursementAmount","isOwnRequest","deleteItem","totalReimbursement","totalBillable","amountPC","billable","reimburse","ExpensesRequestService","SortService","ExpensesRequestCardComponent_Template","ExpensesRequestCardComponent_ng_container_6_Template","name$","_projectId","_userId","_currency","projectCurrency","baseCurrency","_baseCurrency","_reimbursementCurrency","projectTaskInfoService","entityQuery","entityLinesQuery","reimbursementCurrencyChanged","linesQuery","_request","resetProjectTasks","_mainTask","checkCollectionsQuantity","_lineCustomFields","expenseRequestId","getProjectTasksInfo","navGroup","isModal","projectCurrencyXR","reimbursementCurrencyXR","destroySub","refreshLineXr","projectXr","getLineXrObs","reimbursementXr","lineCurrency","multiCurrency","multiLegalEntity","ProjectTaskInfoService","loadUserInfoProjects","projectList$","projectList","ExpensesRequestSetProjectComponent_Template","ExpensesRequestSetProjectComponent_Template_button_click_5_listener","ExpensesRequestSetProjectComponent_Template_button_click_18_listener","ExpensesRequestSetProjectComponent_Template_button_click_21_listener","userQuery","setUserAllowed","userIsAllowed","ExpensesRequestCreationComponent_Template","ExpensesRequestCreationComponent_Template_button_click_5_listener","ExpensesRequestCreationComponent_div_7_Template","ExpensesRequestCreationComponent_div_10_Template","ExpensesRequestCreationComponent_Template_button_click_13_listener","ExpensesRequestCreationComponent_Template_button_click_16_listener","projectCollection","ExpensesRequestListComponent","ExpensesRequestFilterComponent","EXPENSES_LIST","FileBoxComponent","ExpensesRequestFilterService","ExpensesRequestListComponent_Template","onlySubordinates","ExpensesRequestFilterComponent_Template","ExpensesRequestFilterComponent_div_23_Template","ExpensesRequestFilterComponent_div_24_Template","ExpensesRequestFilterComponent_div_27_Template","ACCOUNTING_ENTRY_LIST","AccountingEntryListComponent","AccountingEntryCardComponent","AccountingEntryCreationComponent","AccountingEntryBodyComponent","AccountingEntryComponent","AccountingEntriesModule","AccountingEntryService","AccountingEntryCardComponent_div_9_Template_button_click_1_listener","saving$","AccountingEntryCardComponent_Template","AccountingEntryCardComponent_Template_wp_form_header_reloaded_0_listener","AccountingEntryCardComponent_wp_accounting_entry_body_7_Template","AccountingEntryCardComponent_div_9_Template","FinancialAccountTypes","AccountingEntryMode","closedPeriod","_closedPeriod","isLaborCost","laborCostIds","documentLink","revenue","timeOffCostId","entryId","minAllowedNumber","typeId","timeOffType","documentDate","costRate","isLaborCostSubject","isLaborCost$","isTimeOffLaborCost","isTimeOffLaborCost$","isUserEditable","isUserEditable$","financialAccountType","financialAccountType$","entryMode","manual","entryMode$","projectCostCenters","projectCostCenters$","isShownProjectCostCenter","isShownProjectCostCenter$","initFormGroup","laborCostId","removeValidators","updateValueAndValidity","modeId","timeOffTypeId","updateProjectCostCenters","onEntityLoaded","propagateName","getName","typeName","userName","periodIsOpen","refreshCurrencyCodes","clearValidators","automatic","documentTitle","fetchClosedPeriod","periods","curr","currDate","isExcludedDate","periodEnd","updateAmounts","updateAmount","costCenters","AccountingEntryCreationComponent_Template","AccountingEntryCreationComponent_Template_button_click_6_listener","AccountingEntryCreationComponent_Template_button_click_10_listener","AccountingEntryCreationComponent_Template_button_click_14_listener","AccountingEntryFilterService","AccountingEntryListComponent_Template","AccountingEntryComponent_Template","AccountingEntryBodyComponent_Conditional_49_Conditional_1_Conditional_8_Template","AccountingEntryBodyComponent_Conditional_49_Conditional_1_Template","AccountingEntryBodyComponent_Conditional_51_Conditional_1_Conditional_8_Template","AccountingEntryBodyComponent_Conditional_51_Conditional_1_Conditional_11_Template","AccountingEntryBodyComponent_Conditional_51_Conditional_1_Template","accountingEntryMode","AccountingEntryBodyComponent_Conditional_55_Conditional_7_Template","ɵɵpureFunction4","AccountingEntryBodyComponent_Conditional_63_Conditional_5_Template","AccountingEntryBodyComponent_Conditional_63_Conditional_6_Template","AccountingEntryBodyComponent_Template","AccountingEntryBodyComponent_Conditional_42_Template","AccountingEntryBodyComponent_Conditional_43_Template","AccountingEntryBodyComponent_Conditional_45_Template","AccountingEntryBodyComponent_Conditional_47_Template","AccountingEntryBodyComponent_Conditional_49_Template","AccountingEntryBodyComponent_Conditional_51_Template","AccountingEntryBodyComponent_Conditional_53_Template","AccountingEntryBodyComponent_Conditional_55_Template","AccountingEntryBodyComponent_Conditional_63_Template","AccountingPeriodListComponent","ACCOUNTING_PERIOD_LIST","AccountingPeriodCreationComponent","AccountingPeriodCardComponent","AccountingPeriodsModule","AccountingPeriodCardComponent_Conditional_4_Conditional_18_Template_button_click_1_listener","AccountingPeriodCardComponent_Conditional_4_Conditional_18_Template","accountingPeriod","setName","AccountingPeriodCardComponent_Template","AccountingPeriodCardComponent_Conditional_4_Template","AccountingPeriodCreationComponent_Template","AccountingPeriodCreationComponent_Template_button_click_5_listener","AccountingPeriodCreationComponent_Template_button_click_19_listener","AccountingPeriodCreationComponent_Template_button_click_22_listener","AccountingPeriodListComponent_Template","GeneralPnlComponent","GeneralPnlComponent_Template","InteractionListComponent","INTERACTIONS_LIST","InteractionListFilterComponent","interactionContact","InteractionListFilterComponent_Template","InteractionListFilterService","interactionContacts","performerId","isPlanned","menuActions","InteractionListComponent_Template","data_r2","data_r3","ChangingIssueTypeModalComponent","types$","issue","changeType","ChangingIssueTypeModalComponent_Template","ChangingIssueTypeModalComponent_Template_button_click_5_listener","ChangingIssueTypeModalComponent_ng_template_19_Template","ChangingIssueTypeModalComponent_ng_template_21_Template","ChangingIssueTypeModalComponent_Template_button_click_24_listener","ChangingIssueTypeModalComponent_Template_button_click_27_listener","IssueCardService","IssueCardSettings","issueCardService","issue$","IssueCardComponent_Conditional_5_ng_template_46_Conditional_11_Conditional_5_Template","IssueCardComponent_Conditional_5_ng_template_46_Conditional_11_Conditional_7_Template","IssueCardComponent_Conditional_5_ng_template_46_Conditional_5_Template","IssueCardComponent_Conditional_5_ng_template_46_Conditional_9_Template","IssueCardComponent_Conditional_5_ng_template_46_Conditional_11_Template","tmp_8_0","issueForm","IssueCardComponent_Conditional_5_div_55_Template_wp_comments_tab_queueLength__1_listener","isCommentOpened","Issues","IssueCardComponent_Conditional_5_Template_button_click_26_listener","createdBy_r2","ɵɵreference","openCreatedByUserInfo","IssueCardComponent_Conditional_5_Template_tmt_rich_editor_box_mentionedUserIds__30_listener","onMentionIds","IssueCardComponent_Conditional_5_Template_tmt_rich_editor_box_editing__30_listener","isEditorOpened","IssueCardComponent_Conditional_5_Template_div_hidden_39_listener","updateSettings","IssueCardComponent_Conditional_5_Template_div_shown_39_listener","IssueCardComponent_Conditional_5_ng_template_46_Template","IssueCardComponent_Conditional_5_Template_ul_activeIdChange_49_listener","IssueCardComponent_Conditional_5_div_55_Template","IssueCardComponent_Conditional_5_div_60_Template","IssueCardComponent_Conditional_5_div_65_Template","IssueCardComponent_Conditional_5_div_70_Template","IssueCardComponent_Conditional_5_div_75_Template","isInOffCanvas","parametersCollapsed","nav_r5","mentionedUserIds","isUpdateFollowers","IssueCardComponent_Template","IssueCardComponent_Conditional_5_Template","delay","projectTaskControl","projectControl","issueId","assigned","modified","priority","initiator","dueDate","followers","follower","indicatorTrigger","mainFormControlChangedDelayTime","disableResolutionFields","toggleProjectFields","openChangeTypeModal","followerId","assignedId","priorityId","initiatorId","updateFollowers","data_r4","IssueCreationComponent_Conditional_1_Template_button_click_5_listener","IssueCreationComponent_Conditional_1_ng_template_19_Template","IssueCreationComponent_Conditional_1_ng_template_21_Template","IssueCreationComponent_Conditional_1_Template_button_click_24_listener","IssueCreationComponent_Conditional_1_Template_button_click_27_listener","types","IssueCreationComponent_Template","IssueCreationComponent_Conditional_0_Template","IssueCreationComponent_Conditional_1_Template","IssueListComponent","IssueFilterComponent","ISSUE_LIST","WorkLogComponent","IssueFilterComponent_Template","detailAreaStyles","IssueListComponent_Template","defaultViewColumns","User","ProgramCardService","CoManagersModalComponent","ProgramCardComponent_ng_container_5_div_12_Template_button_click_6_listener","ProgramCardComponent_ng_container_5_div_12_Template_button_click_9_listener","getProgramStateTitle","tab_r4","ProgramCardComponent_ng_container_5_button_33_Template_button_click_0_listener","openCoManagers","ProgramCardComponent_ng_container_5_Template_button_click_8_listener","ProgramCardComponent_ng_container_5_div_12_Template","ProgramCardComponent_ng_container_5_button_13_Template","ProgramCardComponent_ng_container_5_li_24_Template","ProgramCardComponent_ng_container_5_Template_button_click_30_listener","ProgramCardComponent_ng_container_5_button_33_Template","program","programTotal$","coManagersViewAllowed","ProgramCardComponent","coManagersEditAllowed","program$","programTotal","ProgramCardComponent_Template","ProgramCardComponent_ng_container_5_Template","programTotalSubject","programSubject","settingsAction","programId","loadProgram","loadProgramTotal","ProgramOverviewAnalysisComponent","ProgramOverviewAnalysisComponent_Template","ProgramOverviewAnalysisModule","ProgramOverviewKpiComponent","ProgramOverviewKpiComponent_Template","ProgramOverviewKpiComponent_wp_overview_kpi_0_Template","ProgramOverviewKpiModule","ProgramOverviewComponent","ProgramOverviewComponent_Template","ProgramOverviewModule","ProgramPnlComponent","ProgramPnlComponent_Template","IncludingProjectModalComponent","IncludingProjectModalComponent_Template","IncludingProjectModalComponent_Template_button_click_5_listener","IncludingProjectModalComponent_Template_button_click_14_listener","IncludingProjectModalComponent_Template_button_click_17_listener","ProgramProjectsComponent","include","ProgramProjectsComponent_Template","ProgramFilterComponent","ProgramFilterComponent_Template","ProgramFilterComponent_div_9_Template","ProgramFilterService","ProgramListComponent","ProgramListComponent_Template","PROGRAM_LIST","ProgramSettingsComponent_button_62_Template_button_click_0_listener","okButtonText","skipManagerApprove","okFunc","creatingMode","errorFunc","ProgramSettingsComponent_Template","ProgramSettingsComponent_h3_3_Template","ProgramSettingsComponent_h3_4_Template","ProgramSettingsComponent_Template_button_click_5_listener","ProgramSettingsComponent_button_62_Template","ProgramSettingsComponent_Template_button_click_63_listener","ProjectSummaryDataService","_valueMode","summaryPages","_summaryPages","_entries","kpiTypes","loadProjectSummaryEntries","loadProjectSummaryPage","searchText","projectStateIds","projectStates","existedEntry","getProjectSummaryEntries","ProjectSummaryViewSettings","ProjectSummaryService","summaryDataService","selectedKpiTypes","summaryViewSettingsService","_slotGroups","_slots","_settings","summaryFilterService","scrollThrottlingDuration","pageReloaded$","_allAreLoaded","toggleAllProjects","detectGroupChanges","filter$","currentFilter","getFrameShift","year","ProjectSummaryViewSettingsService","ProjectSummaryFilterService","ProjectSummaryComponent_button_18_Template_button_click_0_listener","summaryPageDto_r3","ProjectSummaryComponent_ForEmpty_29_tbody_0_Template","summaryPageDto_r6","noDataMessageKey","ProjectSummaryComponent_ForEmpty_51_tbody_0_Template","ProjectSummaryComponent","_leftTableWidth","_noDataMessageKey","cdRef","ProjectSummary","updateFields","isTypeRequired","ProjectSummaryComponent_Template","ProjectSummaryComponent_Template_wp_form_header_reloaded_0_listener","ProjectSummaryComponent_button_18_Template","ProjectSummaryComponent_For_28_Template","ProjectSummaryComponent_ForEmpty_29_Template","ProjectSummaryComponent_For_36_Template","ProjectSummaryComponent_For_40_Template","ProjectSummaryComponent_For_43_Template","ProjectSummaryComponent_For_48_Template","ProjectSummaryComponent_For_50_Template","ProjectSummaryComponent_ForEmpty_51_Template","ProjectSummaryFilterModule","ProjectSummaryToolbarComponent","ProjectSummaryViewSettingsComponent","ProjectSummaryLeftGroupComponent","ProjectSummaryRightGroupComponent","ProjectSummaryTotalPipe","decimalPipe","decimalTemplate","Cost","pure","ProjectSummaryFilterSettings","_currentFilter","filterSubject","establishFilterSubject","establishFilter$","establishFilter","propagateFilterChange","ProjectSummaryFilterModalComponent","clearValues","ProjectSummaryFilterModalComponent_Template","ProjectSummaryFilterModalComponent_Template_button_click_5_listener","ProjectSummaryFilterModalComponent_Template_button_click_38_listener","ProjectSummaryFilterModalComponent_Template_button_click_42_listener","ProjectSummaryFilterModalComponent_Template_button_click_45_listener","conditionsCount","conditionCountTitle","ProjectSummaryFilterComponent","_conditionsCount","_conditionCountTitle","textControl","textInputMaxLength","textInputMinLength","openFilterModal","updateConditionalCount","clearInput","textInputDebounce","ProjectSummaryFilterComponent_Template","ProjectSummaryFilterComponent_Template_span_click_4_listener","ProjectSummaryFilterComponent_Template_button_click_5_listener","ProjectSummaryFilterComponent_span_7_Template","KpiType","ProjectSummaryLeftGroupComponent_For_1_ng_container_1_Template_span_click_3_listener","onToggleClick","ProjectSummaryLeftGroupComponent_For_1_ng_container_1_Template_div_click_6_listener","projectContainer_r3","summaryPageDto","ProjectSummaryLeftGroupComponent_For_1_ng_container_1_Template","ɵ$index_1_r5","selectedKpiType_r4","getProjectTotal","summaryService","ProjectSummaryLeftGroupComponent_ng_container_2_For_2_For_2_td_1_Template_div_click_4_listener","userContainer_r7","teamMember_r8","ProjectSummaryLeftGroupComponent_ng_container_2_For_2_For_2_td_1_Template","ɵ$index_36_r10","selectedKpiType_r9","getUserTotal","ProjectSummaryLeftGroupComponent_ng_container_2_For_2_For_2_Template","ProjectSummaryLeftGroupComponent_ng_container_2_For_2_Template","ProjectSummaryLeftGroupComponent_ng_container_2_ForEmpty_3_Template","teamMembers","_isExpanded","_selectedKpiTypes","kpiType","totalValue","prev","ProjectSummaryLeftGroupComponent_Template","ProjectSummaryLeftGroupComponent_For_1_Template","ProjectSummaryLeftGroupComponent_ng_container_2_Template","ProjectSummaryRightGroupComponent_For_1_For_2_Template","getTotalsByKpiType","selectedKpiType_r3","entry_r4","ProjectSummaryRightGroupComponent_ng_container_2_For_2_For_2_For_6_For_2_Template","_forTrack1","getSummaryEntriesByTeamMemberId","teamMember_r7","selectedKpiType_r6","ProjectSummaryRightGroupComponent_ng_container_2_For_2_For_2_For_6_Template","ProjectSummaryRightGroupComponent_ng_container_2_For_2_For_2_Template","ProjectSummaryRightGroupComponent_ng_container_2_For_2_Template","ProjectSummaryRightGroupComponent_ng_container_2_ForEmpty_3_Template","_totals","selectedKpiType","projectEntries","allEntries","allMembers","memberEntries","memberEntry","ProjectSummaryRightGroupComponent_Template","ProjectSummaryRightGroupComponent_For_1_Template","ProjectSummaryRightGroupComponent_ng_container_2_Template","usedValueModes","ProjectSummaryToolbarComponent_Template","ProjectSummaryResourcePlanViewSettings","settingsSubject","Plan","control_r1","kpiControls","orderedKpi","Estimate","Actual","ProjectSummaryViewSettingsComponent_Template","ProjectSummaryViewSettingsComponent_For_6_Template","projectSubject","isProjectBillable","fixedBid","versionCardService","project$","projectTotalSubject","projectTotal$","expandedTasks","timelineScrollPosition","resetTaskCache","loadProject","loadProjectTotal","projectTotal","inheritedProjectsCount","projectQuery","sourceProject","scheduleQuery","deleteProject","updateInheritedProjects","projectVersion","isEntryBlocked","isAutoPlanning","isLineBlocked","isSummaryTask","getProjectScheduleException","scheduleExceptionId","ProjectTaskCategoriesService","categories$","getCategories","ProjectVersionUtil","_workProjectVersion","mainProject","masterBaseline","openProjectVersionCard","openProjectVersionCard$","workProjectVersion","_projectVersion","projectVersions","_projectVersions","updateWorkProjectVersion","isWorkProjectVersion","initProjectVersion","openVersionCard","changeVersion","sortVersions","refreshVersions","versionsCopy","sorted","ProjectVersionsService","ProjectVersionState","ProjectCardComponent_ng_container_5_div_5_Template_button_click_5_listener","externalUrl","versionEditAllowed","projectVersionCtrl","versionService","projectVersionUpdating$","ProjectCardComponent_ng_container_5_button_24_Template_button_click_0_listener","ProjectCardComponent_ng_container_5_div_5_Template","ProjectCardComponent_ng_container_5_div_6_Template","ProjectCardComponent_ng_container_5_div_7_Template","ProjectCardComponent_ng_container_5_div_12_Template","ProjectCardComponent_ng_container_5_li_15_Template","ProjectCardComponent_ng_container_5_Template_button_click_21_listener","ProjectCardComponent_ng_container_5_button_24_Template","versionViewAllowed","ProjectCardComponent","subscriptions","openBooking","openProjectVersions","openVersionId","getVersion","project$$","teamViewAllowed","tasksViewAllowed","projectTasks","resourcePlanViewAllowed","resourcePlan","financeViewAllowed","revenueEstimateViewAllowed","billingEstimateViewAllowed","expenseEstimateViewAllowed","costCentersViewAllowed","pnl","startsWith","onTransitionSuccessListener","projectVersions$","versions","cancelledStateId","isDeleted","ProjectCardComponent_Template","ProjectCardComponent_ng_container_5_Template","ProjectOverviewModule","ProjectTasksModule","ProjectTeamModule","ProjectPnlModule","ProjectExpenseEstimatesModule","ProjectRbcModule","ProjectExpensesModule","ProjectVersionsModule","ProjectResourcesModule","ProjectResourceRequirementsModule","ProjectCostCentersModule","ProjectTariffsModule","ProjectCardModule","ProjectCostCenterModalComponent","ProjectCostCentersToolbarComponent","ProjectCostCentersService","projectCardService","costCentersEditAllowed","createCostCenter","editCostCenter","deleteCostCenter","costCenter","actualCost","actualExpenses","getCostCenterFormGroup","editingCostCenter","costCenterFormGroup","costCenterId","getCostCenterDTO","getCostCenterEditRequest","isExistCostCenter","costCenterDTO","ProjectCostCenterModalComponent_Conditional_27_Template_button_click_0_listener","projectCostCentersService","notificationString","ProjectCostCenterModalComponent_Template","ProjectCostCenterModalComponent_Template_button_click_5_listener","ProjectCostCenterModalComponent_Conditional_27_Template","ProjectCostCenterModalComponent_Template_button_click_28_listener","ProjectCostCentersToolbarComponent_button_2_Template_button_click_0_listener","ProjectCostCentersToolbarComponent_button_8_Template_button_click_0_listener","ProjectCostCentersToolbarComponent_Template","ProjectCostCentersToolbarComponent_button_2_Template","ProjectCostCentersToolbarComponent_Template_button_click_4_listener","ProjectCostCentersToolbarComponent_button_8_Template","ProjectCostCentersToolbarComponent_Template_button_click_10_listener","PROJECT_COST_CENTER","ProjectCostCentersComponent","ProjectCostCentersComponent_Template","ExpensesAccountFilterSettings","includeLaborCost","includeFinAccountNamesNotIncludedInBalance","ExpensesGroupType","ExpensesSectionType","ExpensesCalendarSettings","defaultDisplayedOthers","sectionType","displayedGroups","displayedOthers","ExpensesView","ExpensesViewSection","ExpensesViewGroup","ExpensesViewTaskLine","ExpensesViewOtherLine","ExpensesViewTypeLine","ExpensesViewInnerTypeLine","ExpensesViewRuleLine","ProjectExpenseEstimatesToolbarComponent_Conditional_3_Template_button_click_0_listener","addEntry","ProjectExpenseEstimatesToolbarComponent_Conditional_9_Template_button_click_0_listener","ProjectExpenseEstimatesToolbarComponent_Conditional_12_Template_button_click_0_listener","ProjectExpenseEstimatesToolbarComponent_Conditional_13_Template_button_click_0_listener","ProjectExpenseEstimatesToolbarComponent","projectExpenseEstimatesService","recognize","ProjectExpenseEstimatesService","ProjectExpenseEstimatesToolbarComponent_Template","ProjectExpenseEstimatesToolbarComponent_Conditional_3_Template","ProjectExpenseEstimatesToolbarComponent_Template_button_click_5_listener","ProjectExpenseEstimatesToolbarComponent_Conditional_9_Template","ProjectExpenseEstimatesToolbarComponent_Conditional_12_Template","ProjectExpenseEstimatesToolbarComponent_Conditional_13_Template","ProjectExpenseEstimatesToolbarComponent_Template_button_click_21_listener","setGrouping","ProjectExpenseEstimatesToolbarComponent_Template_button_click_24_listener","ProjectExpenseEstimatesToolbarComponent_Template_button_click_28_listener","getCurrentGroupingLabel","FinancialTaskCellService","ProjectExpensesService","ExpensesAccountFilterService","ProjectExpenseEstimatesComponent","projectService","projectExpensesService","accountFilterService","ruleModalClosed$","updateAccountsNotIncludedInBalance","ProjectExpenseEstimatesComponent_Template","ProjectExpenseEstimatesList","ProjectExpenseTypeReadonlyCellComponent","ExpenseEstimateModalComponent","ProjectExpenseTypeCellComponent","ProjectExpensesSharedModule","RuleCalculationMethod","_isWorkProjectVersion","versionDataService","financialTaskCellService","isTaskGroup","deleteEntry","originalId","isRuleReadonly","isAutomatic","createRequest","storageSettingsName","allTasks","tasksAmounts","reloaded$","toggleTaskId$","toggleTask","expenseEstimateEditAllowed","loadMainTask","updateFormArray","getQuery","added","updateTasks","setEntityRootPropertyId","indexOfNewEntry","groupValue","projectCurrencyCode","expenseRule","indent","isRuleEntry","expenseRuleId","getLeadTask","leadTask","applyTotals","calculateTasksTotal","topTasks","restoreLinks","addLevel","tasksInLevel","calculationMethod","newGroup","tasksToApply","projectCollectionEntity","accountsFilter","buildAccountsFilter","addProjectEntityIdFilter","ProjectVersionDataService","i19","i20","ExpenseEstimateModalComponent_button_46_Template_button_click_0_listener","ExpenseEstimateModalComponent_Template","ExpenseEstimateModalComponent_Template_button_click_5_listener","ExpenseEstimateModalComponent_div_38_Template","ExpenseEstimateModalComponent_button_46_Template","ExpenseEstimateModalComponent_Template_button_click_47_listener","ProjectExpenseTypeCellComponent_Template","ProjectExpenseTypeCellComponent_Conditional_0_Template","ProjectExpenseTypeReadonlyCellComponent_Template","ProjectExpenseTypeReadonlyCellComponent_ng_container_0_Template","minBy","ProjectExpensesCalendarDataService","laborCostTitle","_laborCostTitle","sectionData","_innerExpenseTypeLineTitle","_ruleDeviationBaseHints","laborCost","workingCapital","fnGetTaskLineTypeGroupKey","groupType","fnGetExpenseLineTypeGroupKey","fnGetOtherLineTypeGroupKey","mapRuleEntry","ruleLine","dateValue","deviatesFromBase","baseHint","calculationBase","loadSections","sectionTypes","expandedGroups","expandedLineTypeGroups","saveGroupExpandedStates","accountFilterSettings","queryParams","fn","section","updateViewModelForSection","restoreGroupExpandedStates","getSections","sections","getOrderedGroups","plan","estimate","actual","forecast","getSectionByGroup","otherLine","typeLines","typeLine","taskLines","taskLine","taskLineKey","expenseLineKey","getViewGroup","dataGroup","minTaskIndent","laborCostType","viewGroup","structNumber","accountLines","innerLine","rules","expenseRuleLines","rule","otherType","verboseHint","getViewSection","dataSection","actualGroup","estimateGroup","forecastGroup","planGroup","enrichSectionData","enrichGroupData","groupToEnrich","dataTaskLines","viewTaskLinesToEnrich","viewTaskLine","taskToUpdate","tl","viewTypeLine","typeToUpdate","viewRuleLine","ruleToUpdate","rulesToAdd","ProjectExpensesCalendarGroupFilterService","selectedGroups","_selectedGroups","allGroups","indexToRemove","updateConfig","ProjectExpensesCalendarSlotInfoService","isInnerLine","getLoadQuery","loaded","getInsertQuery","inserted","getCreatedMessage","getUpdateQuery","updated","getUpdatedMessage","getDeleteQuery","deleted","getDeletedMessage","dateFieldName","getDateFieldName","queryFilter","addProjectSelectFields","getTranslationPrefix","getUnitFromPlanningScale","ProjectExpensesCalendarService","_readonly","slotInfoService","toggleSubject","toggle$","forecastBreakpoint","getForecastBreakpoint","Expenses","ruleEstimateUpdated$","toggleGroupOther","updateOthersInSettings","others","sectionGroups","getFilledSlots","filledSlots","newSlot","getRuleFilledSlots","getTableWidth","countOfSlots","hasExpenseTypes","hasRules","isSlotEditable","isEstimate","isForecast","entryEndDate","getSlotEndDate","isPastBreakpoint","isRuleSlotEditable","isEditable","entryStartDate","getSlotStartDate","ruleStartDate","getRuleStartDate","ruleEndDate","getRuleEndDate","isFixed","isInRulePeriod","hasDeviationIndicator","rightTableWidth","section_r2","ProjectExpensesCalendarComponent_ng_container_22_ng_container_5_tbody_1_Template","groupFilterService","ProjectExpensesCalendarComponent_ng_container_22_ng_container_5_Template","expensesDataService","group_r6","section_r7","ProjectExpensesCalendarComponent_ng_container_38_ng_container_4_tbody_1_Template","ProjectExpensesCalendarComponent_ng_container_38_ng_container_4_Template","ProjectExpensesCalendarComponent","ProjectExpensesCalendarComponent_Template","ProjectExpensesCalendarComponent_ng_container_22_Template","ProjectExpensesCalendarComponent_col_28_Template","ProjectExpensesCalendarComponent_th_31_Template","ProjectExpensesCalendarComponent_th_33_Template","ProjectExpensesCalendarComponent_col_37_Template","ProjectExpensesCalendarComponent_ng_container_38_Template","ProjectExpensesCalendarGroupFilterComponent","ProjectExpensesCalendarLeftGroupComponent","ProjectExpensesCalendarRightGroupComponent","ProjectExpensesCalendarSlotInfoComponent","ProjectExpensesCalendarToolbarComponent","ProjectExpensesCalendarModule","ProjectExpensesCalendarGroupFilterComponent_div_5_Template_input_click_1_listener","group_r2","onToggle","ProjectExpensesCalendarGroupFilterComponent_Template","ProjectExpensesCalendarGroupFilterComponent_div_5_Template","ProjectExpensesCalendarLeftGroupComponent_span_3_Template_span_click_0_listener","onExpand","getExpandableRowIconClass","ProjectExpensesCalendarLeftGroupComponent_small_8_Template_small_click_0_listener","onExpandAll","getToggleAllIconClass","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_span_3_Template_span_click_0_listener","taskLine_r5","onLineExpand","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_span_3_Template_span_click_0_listener","typeLine_r7","getLineOffsetStyle","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_div_3_Template_button_click_2_listener","ruleLine_r9","openExpenseRuleModal","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_div_3_Template_i_click_4_listener","onUpdateExpenseRuleEstimates","isRuleEstimateBeingUpdated","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_ng_template_4_Template_button_click_0_listener","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_div_3_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_ng_template_4_Template","ruleLineItem_r11","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_tr_1_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_ng_container_2_Template","trackByRuleId","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_span_3_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_template_4_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_ng_container_12_Template","noTypeLineToggle_r12","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_ng_container_1_Template","trackByTypeId","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_span_3_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_template_4_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_ng_container_12_Template","noTaskToggle_r13","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_span_3_Template_span_click_0_listener","typeLine_r16","showOther","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_ng_container_12_tr_2_Template_button_click_2_listener","ruleLine_r18","_r17","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_ng_container_12_tr_1_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_ng_container_12_tr_2_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_span_3_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_ng_template_4_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_ng_container_12_Template","noOtherTypeLineToggle_r19","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_Template_span_click_4_listener","_r14","onToggleGroupOther","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_span_7_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_ng_container_12_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_1_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_ng_container_2_Template","trackByTaskId","hasTaskLines","hasOtherLineTypes","changeDetectorRef","ruleEstimateBeingUpdatedMap","isExpandable","ruleId","updateExpenseRuleEstimates","checkExpandedAll","otherTypeLines","ProjectExpensesCalendarLeftGroupComponent_Template","ProjectExpensesCalendarLeftGroupComponent_span_3_Template","ProjectExpensesCalendarLeftGroupComponent_ng_template_4_Template","ProjectExpensesCalendarLeftGroupComponent_small_8_Template","ProjectExpensesCalendarLeftGroupComponent_ng_container_15_Template","noGroupToggle_r20","ProjectExpensesCalendarRightGroupComponent_td_1_Template_td_click_0_listener","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_td_2_Template_td_click_0_listener","taskEntry_r5","taskLine_r6","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_td_2_Template_td_click_0_listener","typeEntry_r8","typeLine_r9","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_tr_1_td_1_Template_td_click_0_listener","typeEntry_r11","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_tr_1_td_1_Template","ruleEntry_r13","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_ng_container_2_td_2_Template_td_click_0_listener","ruleLine_r14","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_ng_container_2_td_2_Conditional_6_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_ng_container_2_td_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_tr_1_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_ng_container_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_td_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_ng_container_3_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_ng_container_1_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_td_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_ng_container_3_Template","taskEntry_r15","_c5","typeLine_r17","typeEntry_r16","typeEntry_r18","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_ng_container_3_tr_1_td_1_Template","typeEntry_r19","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_ng_container_3_tr_2_td_1_Template","ruleLine_r20","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_ng_container_3_tr_1_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_ng_container_3_tr_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_td_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_ng_container_3_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_td_2_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_ng_container_3_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_1_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_ng_container_2_Template","recalculateEntries","groupedLaborCosts","getGroupedLaborCosts","getTaskTypeLineEntries","flatten","getTypeLineGroupEntries","typeLineGroupEntries","typeLineEntry","entriesByDate","typeLineEntries","taskLineEntry","otherEntriesByDate","otherLineEntry","laborCostAmount","laborCostEntries","ftl","lce","ttl","ProjectExpensesCalendarRightGroupComponent_Template","ProjectExpensesCalendarRightGroupComponent_td_1_Template","ProjectExpensesCalendarRightGroupComponent_ng_container_2_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_7_i_11_Template_i_click_0_listener","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_7_Template_td_click_1_listener","onEdit","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_7_Template_td_click_7_listener","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_7_i_11_Template","laborCostInfo","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_7_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_tr_8_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_div_2_Template_button_click_2_listener","onCreate","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_div_0_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_table_1_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_div_2_Template","createAllowed","_projectCurrencyCode","setDefaultTask","laborCostSelected","openModal","filled","defaultTask","currTask","ProjectExpensesCalendarSlotInfoComponent_Template","ProjectExpensesCalendarSlotInfoComponent_Conditional_0_Template","ProjectExpensesCalendarToolbarComponent_Conditional_3_Template_button_click_0_listener","ProjectExpensesCalendarToolbarComponent_Template","ProjectExpensesCalendarToolbarComponent_Conditional_3_Template","ProjectExpensesComponent","ProjectExpensesComponent_Template","RecurringExpenseRuleModalComponent","ruleModalClosedSubject","ruleEstimateUpdatedSubject","RuleModalSavingState","RuleModalSavingStateMap","saveRuleAndEstimate","RuleCalculationMethods","RuleCalculationBase","RuleCalculationBases","RecurringExpenseFrequencies","calculationBases","RecurringExpenseRuleModalComponent_ng_container_2_button_66_Template_button_click_0_listener","savingState$","ruleModalSavingStateMap","RecurringExpenseRuleModalComponent_ng_container_2_button_67_Template_button_click_0_listener","RecurringExpenseRuleModalComponent_ng_container_2_Template_button_click_6_listener","RecurringExpenseRuleModalComponent_ng_container_2_div_38_Template","RecurringExpenseRuleModalComponent_ng_container_2_ng_template_39_Template","RecurringExpenseRuleModalComponent_ng_container_2_ng_container_57_Template","RecurringExpenseRuleModalComponent_ng_container_2_button_66_Template","RecurringExpenseRuleModalComponent_ng_container_2_button_67_Template","RecurringExpenseRuleModalComponent_ng_container_2_Template_button_click_68_listener","calculationMethods","isPercentRule","percentRuleControls_r5","frequencies","isWholeTask","hasEstimates","_hasEstimates","isWorkingCapitalBase","WorkingCapital","_calculationMethods","_calculationBases","_frequencies","formGroupService","crossId","frequency","ruleQuery","isCreatingMode","isTrivialUpdate","trivialUpdateFields","initVars","loadRule","initForm","ruleData","formInitData","updateFormState","enumValueKeyPrefix","getEnumSelectItems","_revenueCalculationBase","Revenue","Fixed","handleCalculationMethodChange","handleIsWholeTaskChange","handleProjectTaskChange","handleCalculationBaseChange","isProject","versionId","getSaveRuleObs","amountControl","percentControl","calculationBaseControl","toggleFormControlValidators","startDateControl","endDateControl","enumValues","keyPrefix","messageKey","FormGroupService","RecurringExpenseRuleModalComponent_Template","RecurringExpenseRuleModalComponent_ng_container_2_Template","_changesSubject","_accountNamesNotIncludedInBalanceSubject","accountNamesNotIncludedInBalance$","includedInBalanceFilterItem","accountIdsNotIncludedInBalance","accountIdsFilter","in","accountsNotIncludedInBalance","accountItems","accountNamesNotIncludedInBalance","controlName_r1","ExpensesAccountFilterComponent","formAccountNamesNotIncludedInBalance","isCalendar","_formUpdating","onAccountsLoaded","settingsForm","hasRemovedItems","ctrlIncludeLaborCost","ExpensesAccountFilterComponent_Template","ExpensesAccountFilterComponent_Conditional_10_Template","ExpensesAccountFilterComponent_For_13_Template","ExpensesViewSwitcherComponent","ExpensesViewSwitcherComponent_Template","ExpensesViewSwitcherComponent_ng_container_1_Template","ExpensesViewSwitcherComponent_ng_container_3_Template","ProjectOverviewAnalysisComponent","isWorkVersion","ProjectOverviewAnalysisComponent_Template","ProjectOverviewAnalysisModule","ProjectOverviewKpiComponent","ProjectOverviewKpiComponent_Template","ProjectOverviewKpiComponent_wp_overview_kpi_0_Template","ProjectOverviewKpiModule","ProjectOverviewComponent","ProjectOverviewComponent_Template","ProjectOverviewComponent_Template_ul_activeIdChange_1_listener","ProjectOverviewComponent_div_7_Template","ProjectOverviewComponent_div_12_Template","ProjectOverviewComponent_tmt_entity_workflow_tasks_17_Template","ProjectOverviewComponent_tmt_state_history_22_Template","ProjectPnlComponent","projectSubscription","ProjectPnlComponent_Template","RbcView","RbcViewSection","RbcViewGroup","RbcViewTaskLine","RbcViewOtherLine","RbcSectionType","RbcGroupType","RbcSettings","ProjectBillingToolbarComponent_Conditional_3_Template_button_click_0_listener","ProjectBillingToolbarComponent_Conditional_8_Template_button_click_0_listener","ProjectBillingToolbarComponent_Conditional_11_Template_button_click_0_listener","ProjectBillingToolbarComponent_Conditional_12_Template_button_click_0_listener","ProjectBillingToolbarComponent","projectBillingService","ProjectBillingService","ProjectBillingToolbarComponent_Template","ProjectBillingToolbarComponent_Conditional_3_Template","ProjectBillingToolbarComponent_Template_button_click_5_listener","ProjectBillingToolbarComponent_Conditional_8_Template","ProjectBillingToolbarComponent_Conditional_11_Template","ProjectBillingToolbarComponent_Conditional_12_Template","ProjectBillingToolbarComponent_Template_button_click_20_listener","ProjectBillingToolbarComponent_Template_button_click_23_listener","ProjectBillingList","ProjectBillingMode","resolveBillingView","billingEstimationSettings","ProjectBillingComponent","setReadonly","billingEstimateEditAllowed","updateWorkProjectVersionFlag","ProjectBillingComponent_Template","ProjectBillingModalComponent","ProjectRbcSharedModule","ProjectBillingModule","ProjectBillingSettings","createInvoice","isAutomaticBillingMode","toJSDate","billingDate","collectionDate","updateTotalsByTask","ProjectBillingModalComponent_Conditional_37_Template_button_click_0_listener","projectBillingEstSettings","_projectBillingEstSettings","projectBillingMode","ProjectBillingModalComponent_Template","ProjectBillingModalComponent_Template_button_click_5_listener","ProjectBillingModalComponent_Conditional_23_Template","ProjectBillingModalComponent_Conditional_37_Template","ProjectBillingModalComponent_Template_button_click_38_listener","ProjectRbcCalendarDataService","expendedGroups","st","getSectionNameForQuery","getGroupSignedDelta","currSection","taskFullName","charAt","ProjectRbcCalendarGroupFilterService","ProjectRbcCalendarSlotInfoService","RevenueEstimatesModalComponent","ProjectRbcCalendarService","allSectionTypes","Rbc","revenueEstimateEditAllowed","openRevenueEstimatesModal","ProjectRbcCalendarComponent_ng_container_22_ng_container_1_ng_container_5_tbody_1_Template","ProjectRbcCalendarComponent_ng_container_22_ng_container_1_ng_container_5_Template","rbcDataService","ProjectRbcCalendarComponent_ng_container_22_ng_container_1_Template","ProjectRbcCalendarComponent_ng_container_39_ng_container_1_ng_container_4_tbody_1_Template","ProjectRbcCalendarComponent_ng_container_39_ng_container_1_ng_container_4_Template","ProjectRbcCalendarComponent_ng_container_39_ng_container_1_Template","ProjectRbcCalendarComponent","ProjectRbcCalendarComponent_Template","ProjectRbcCalendarComponent_ng_container_22_Template","ProjectRbcCalendarComponent_col_29_Template","ProjectRbcCalendarComponent_th_32_Template","ProjectRbcCalendarComponent_th_34_Template","ProjectRbcCalendarComponent_col_38_Template","ProjectRbcCalendarComponent_ng_container_39_Template","ProjectRbcCalendarToolbarComponent","ProjectRbcCalendarRightGroupComponent","ProjectRbcCalendarLeftGroupComponent","ProjectRbcCalendarSlotInfoComponent","ProjectRbcCalendarGroupFilterComponent","ProjectRbcCalendarModule","RevenueEstimateMethod","RevenueEstimateMethods","RevenueEstimateFrequencies","revenueEstimateMethods","fixedAmount","targetProfitability","accrualFrequency","isDetailedByStages","dateStart","dateFinish","calculationMethodsControls","BillingRate","TargetProfitability","revenueEstimateRequest","calculationMethodChangeHandler","setValidators","projectPeriodChangeHandler","RevenueEstimatesModalComponent_Template","RevenueEstimatesModalComponent_Template_button_click_5_listener","RevenueEstimatesModalComponent_ng_container_23_Template","RevenueEstimatesModalComponent_div_24_Template","RevenueEstimatesModalComponent_div_25_Template","RevenueEstimatesModalComponent_Template_button_click_42_listener","RevenueEstimatesModalComponent_Template_button_click_46_listener","ProjectRbcCalendarGroupFilterComponent_div_5_Template_input_click_1_listener","ProjectRbcCalendarGroupFilterComponent_Template","ProjectRbcCalendarGroupFilterComponent_div_5_Template","forecastPlanDelta","taskLine_r2","ProjectRbcCalendarLeftGroupComponent_ng_container_15_tr_2_Template_span_click_3_listener","ProjectRbcCalendarLeftGroupComponent_ng_container_15_tr_2_span_6_Template","ProjectRbcCalendarLeftGroupComponent_ng_container_15_tr_1_Template","ProjectRbcCalendarLeftGroupComponent_ng_container_15_tr_2_Template","hasOtherLine","getGroupHintKey","ProjectRbcCalendarLeftGroupComponent_Template","ProjectRbcCalendarLeftGroupComponent_Template_span_click_3_listener","ProjectRbcCalendarLeftGroupComponent_i_10_Template","ProjectRbcCalendarLeftGroupComponent_ng_container_15_Template","ProjectRbcCalendarRightGroupComponent_td_1_Template_td_click_0_listener","ProjectRbcCalendarRightGroupComponent_ng_container_2_tr_1_td_1_Template_td_click_0_listener","line_r6","ProjectRbcCalendarRightGroupComponent_ng_container_2_tr_1_td_1_Template","entry_r7","ProjectRbcCalendarRightGroupComponent_ng_container_2_tr_2_td_1_Template","ProjectRbcCalendarRightGroupComponent_ng_container_2_tr_1_Template","ProjectRbcCalendarRightGroupComponent_ng_container_2_tr_2_Template","ProjectRbcCalendarRightGroupComponent_Template","ProjectRbcCalendarRightGroupComponent_td_1_Template","ProjectRbcCalendarRightGroupComponent_ng_container_2_Template","ProjectRevenueModalComponent","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_0_For_8_Conditional_10_Template_i_click_0_listener","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_0_For_8_Template_td_click_1_listener","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_0_For_8_Conditional_10_Template","tmp_14_0","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_0_For_8_Template","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_2_Template_button_click_2_listener","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_0_Template","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_1_Template","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Conditional_2_Template","proj","ProjectRbcCalendarSlotInfoComponent_Template","ProjectRbcCalendarSlotInfoComponent_Conditional_2_Template","ProjectRbcCalendarToolbarComponent_button_3_Template_button_click_0_listener","projectRbcCalendarService","ProjectRbcCalendarToolbarComponent_Template","ProjectRbcCalendarToolbarComponent_button_3_Template","ProjectRbcComponent","ProjectRbcComponent_Template","ProjectRevenueEstimatesModule","ProjectRevenueEstimatesService","ProjectRevenueEstimatesComponent","projectRevenueService","ProjectRevenueEstimatesComponent_Template","ProjectRevenueToolbarComponent","ProjectRevenueEstimatesList","_revenueEstimateEditAllowed","createAct","toggleTaskIdSubscription","childrenAmounts","totalAmounts","ProjectRevenueToolbarComponent_Conditional_2_button_9_Template_button_click_0_listener","ProjectRevenueToolbarComponent_Conditional_2_Template_button_click_1_listener","ProjectRevenueToolbarComponent_Conditional_2_Template_button_click_6_listener","ProjectRevenueToolbarComponent_Conditional_2_button_9_Template","ProjectRevenueToolbarComponent_Conditional_5_Template_button_click_0_listener","ProjectRevenueToolbarComponent_Conditional_7_Template_button_click_0_listener","ProjectRevenueToolbarComponent_Conditional_9_Template_button_click_0_listener","revenueEstimatesService","ProjectRevenueToolbarComponent_Template","ProjectRevenueToolbarComponent_Conditional_2_Template","ProjectRevenueToolbarComponent_Conditional_5_Template","ProjectRevenueToolbarComponent_Conditional_7_Template","ProjectRevenueToolbarComponent_Conditional_9_Template","ProjectRevenueToolbarComponent_Template_button_click_16_listener","ProjectRevenueToolbarComponent_Template_button_click_19_listener","ProjectRevenueModalComponent_button_31_Template_button_click_0_listener","ProjectRevenueModalComponent_Template","ProjectRevenueModalComponent_Template_button_click_5_listener","ProjectRevenueModalComponent_button_31_Template","ProjectRevenueModalComponent_Template_button_click_32_listener","RbcViewSwitcherComponent","RbcViewSwitcherComponent_Template","RbcViewSwitcherComponent_ng_container_1_Template","RbcViewSwitcherComponent_ng_container_3_Template","RbcViewSwitcherComponent_ng_container_5_Template","ResourceRequirementsDataService","groupsByResourceRequest","entryToSave","isAddToSavePrevented","saveCurrentEntriesToSave","dataToSave","entriesToSaveScale","loadResourceGroups","expandedGroupIds","expandedEstimateGroupIds","isEstimateExpanded","expandedRequestsGroupIds","planData","buildGroups","buildRequestGroups","createResourceRequest","note","resourceDescription","getGroupByTeamMember","viewGroups","buildGroup","buildTotals","fteSchedule","estimateTotals","availabilityHours","buildResourceEntries","buildLines","leadTaskLine","taskNumber","genericGroups","generic","resourceGroups","cachedGroup","bookedHoursTotal","estimateTotal","resourceRequests","frameSchedule","newTotals","cachedTotal","slotId","slotDate","scheduleDay","groupEntries","dataEntries","groupEntry","dataEntry","isActual","taskData","cachedLine","extraTotal","isSummary","buildEntries","cachedEntry","plannedEntry","planEntries","resourceRequestForGrouping","selectedTeamMemberIds","withoutRequest","ResourceRequirementsSettings","ResourceRequirementsService","currentViewMode","viewMode","selected$","emitChanges","updateSavedEntries","ResourceRequirements","goToResourceRequests","createResourceRequests","setViewMode","prevHours","cost","ProjectResourceRequirementsComponent_div_5_button_6_Template_button_click_0_listener","selectedControlCount","ProjectResourceRequirementsComponent_div_5_Template_button_click_1_listener","ProjectResourceRequirementsComponent_div_5_button_6_Template","selectAllControl","ProjectResourceRequirementsComponent_Conditional_30_th_0_Template","ProjectResourceRequirementsComponent_Conditional_51_For_1_tbody_0_Template_td_click_2_listener","request_r5","toggleRequestGroupExpand","teamMemberId_r6","ProjectResourceRequirementsComponent_Conditional_51_For_1_ng_container_1_For_2_Template","ProjectResourceRequirementsComponent_Conditional_51_For_1_tbody_0_Template","ProjectResourceRequirementsComponent_Conditional_51_For_1_ng_container_1_Template","ProjectResourceRequirementsComponent_Conditional_51_For_1_Template","group_r7","ProjectResourceRequirementsComponent_Conditional_52_For_1_Template","group_r8","slot_r9","teamMemberId_r10","ProjectResourceRequirementsComponent_Conditional_70_For_1_ng_container_1_For_2_Template","request_r11","ProjectResourceRequirementsComponent_Conditional_70_For_1_tbody_0_Template","ProjectResourceRequirementsComponent_Conditional_70_For_1_ng_container_1_Template","ProjectResourceRequirementsComponent_Conditional_70_For_1_Template","group_r12","ProjectResourceRequirementsComponent_Conditional_71_For_1_Template","ProjectResourceRequirementsComponent","periodOffset","ProjectResourceRequirementsComponent_Template","ProjectResourceRequirementsComponent_div_5_Template","ProjectResourceRequirementsComponent_Template_button_click_13_listener","ProjectResourceRequirementsComponent_Template_button_click_16_listener","ProjectResourceRequirementsComponent_Conditional_23_Template","ProjectResourceRequirementsComponent_Conditional_30_Template","ProjectResourceRequirementsComponent_tbody_49_Template","ProjectResourceRequirementsComponent_Conditional_51_Template","ProjectResourceRequirementsComponent_Conditional_52_Template","ProjectResourceRequirementsComponent_col_58_Template","ProjectResourceRequirementsComponent_th_61_Template","ProjectResourceRequirementsComponent_th_63_Template","ProjectResourceRequirementsComponent_col_67_Template","ProjectResourceRequirementsComponent_tbody_68_Template","ProjectResourceRequirementsComponent_Conditional_70_Template","ProjectResourceRequirementsComponent_Conditional_71_Template","ResourceRequirementsLeftGroupComponent","ResourceRequirementsRightGroupComponent","RequestCellComponent","RequestCellComponent_button_0_Template_button_click_0_listener","RequestCellComponent_div_1_button_13_Template_button_click_0_listener","RequestCellComponent_div_1_button_13_span_4_Template","getHint","RequestCellComponent_div_1_Template_tmt_state_badge_click_2_listener","RequestCellComponent_div_1_Template_button_click_8_listener","RequestCellComponent_div_1_button_13_Template","rr","toFixed","RequestCellComponent_Template","RequestCellComponent_button_0_Template","RequestCellComponent_div_1_Template","ResourceRequirementsLeftGroupComponent_ng_container_12_Template_div_click_4_listener","ResourceRequirementsLeftGroupComponent_tr_21_Template_td_click_2_listener","expandGroupEstimate","line_r4","ResourceRequirementsLeftGroupComponent_ng_container_22_tr_1_Template","ResourceRequirementsLeftGroupComponent_ng_container_22_tr_2_Template","expandGroup","userNameDivWidth","userNameSpanWidth","ResourceRequirementsLeftGroupComponent_Template","ResourceRequirementsLeftGroupComponent_Template_td_click_7_listener","ResourceRequirementsLeftGroupComponent_ng_container_12_Template","ResourceRequirementsLeftGroupComponent_ng_container_13_Template","ResourceRequirementsLeftGroupComponent_tr_19_Template","ResourceRequirementsLeftGroupComponent_tr_20_Template","ResourceRequirementsLeftGroupComponent_tr_21_Template","ResourceRequirementsLeftGroupComponent_ng_container_22_Template","ResourceRequirementsRightGroupComponent_For_2_Conditional_4_Template","isRequirementOverAvailable","hasValue","ResourceRequirementsRightGroupComponent_ng_container_3_tr_1_td_1_Template","ResourceRequirementsRightGroupComponent_ng_container_3_tr_2_td_1_Template","total_r6","ResourceRequirementsRightGroupComponent_ng_container_3_tr_1_Template","ResourceRequirementsRightGroupComponent_ng_container_3_tr_2_Template","ResourceRequirementsRightGroupComponent_ng_container_3_td_4_Template","lineIndex_r9","dayIndex_r8","ResourceRequirementsRightGroupComponent_ng_container_4_tr_1_td_1_Template","ResourceRequirementsRightGroupComponent_ng_container_4_tr_1_Template","ResourceRequirementsRightGroupComponent_ng_container_4_tr_2_Template","formBooking","wasBuilt","massValueChangeInProgress$","inProgress","entryIndex","rebuildBooking","updateLines","formEntry","book","bookIndex","isShowTaskDuration","ResourceRequirementsRightGroupComponent_Template","ResourceRequirementsRightGroupComponent_For_2_Template","ResourceRequirementsRightGroupComponent_ng_container_3_Template","ResourceRequirementsRightGroupComponent_ng_container_4_Template","projectTaskWarnings","MovePlanFormComponent","ProjectResourcesCalendarCommandService","plannerCommandService","command$","getGroupCommands","getLineCommands","getRequestCommands","removeResourcePlan","totalCost","movePlan","clearPlan","showWarnings","warnings","ProjectResourceDataService","ProjectResourcesHelper","isForecastMode","_isForecastMode","updateTasksDates","taskStartDate","taskEndDate","taskDurationPercent","getTaskDurationPercent","backgroundStyle","getBackgroundStyle","updateReadOnly","resourcePlanEditAllowed","otherActualGroup","updateTeamMembers","cachedTeamMember","ctm","buildOtherGroup","unassignedGroup","userGroups","groupData","ct","viewSchedule","slotTotal","dataFteSchedule","assignmentTariffId","assignmentId","currentPeriodEntries","otherActual","actualEntries","actualTotals","actualTotalSlot","ProjectResourcesGridDataService","projectResourceService","updateGrid","toggleGroupLineView","formGroupIndex","general","getResourceFormGroup","prepareResourceGeneralCell","preparedGridViewLine","preparedGridViewGroup","isAssignmentOrOtherActual","isTask","commonData","getCommonData","assignmentData","getAssignmentData","getTaskData","ProjectResourceService","periodDate","plannedDate","toObject","plannedDateEnd","daysInMonth","plannedInterval","taskInterval","taskIntersection","intersection","splitBy","Number","getEndDateByScale","dateEnd","ProjectResourceSettings","ResourceForecastCalendarPlannerSettings","ResourcePlannerSettings","showOtherActual","currentPeriodSlot","calculatedGroups","undoRedoService","commandService","isShowTaskDuration$","slotTotals","initNavigationService","resourcePlanEntry","updatedTasks","setSavingQueue","ResourcesCalendar","forecastPeriod","scaleFromForecastPeriod","toggleShowOtherActual","updateSlotTotals","prevCost","setShowTaskDuration","updateForecastDates","defaultIsActual","currentPeriodSlotIndex","_slot","groupsSlotsCount","isGroupExtended","slotGroup","UndoRedoService","toggler","ResourceGeneralCellComponent","ResourceTotalHoursCellComponent","projectResourcesList","task_r4","teamMember_r5","MovePlanFormComponent_Conditional_1_Conditional_7_For_66_Conditional_9_Template","MovePlanFormComponent_Conditional_1_Conditional_7_For_66_Conditional_10_Template","MovePlanFormComponent_Conditional_1_Conditional_7_Conditional_16_Template","MovePlanFormComponent_Conditional_1_Conditional_7_Template_table_resized_33_listener","MovePlanFormComponent_Conditional_1_Conditional_7_For_41_Template","MovePlanFormComponent_Conditional_1_Conditional_7_Conditional_42_Template","MovePlanFormComponent_Conditional_1_Conditional_7_Template_table_resized_58_listener","MovePlanFormComponent_Conditional_1_Conditional_7_For_66_Template","MovePlanFormComponent_Conditional_1_Conditional_7_Conditional_67_Template","isMoveLeft","viewTableStyle","allTasksSelector","allTeamMembersSelector","teamMemberLines","MovePlanFormComponent_Conditional_1_Conditional_10_Template_button_click_0_listener","MovePlanFormComponent_Conditional_1_Template_button_click_5_listener","MovePlanFormComponent_Conditional_1_Conditional_7_Template","MovePlanFormComponent_Conditional_1_Conditional_8_Template","MovePlanFormComponent_Conditional_1_Conditional_10_Template","MovePlanFormComponent_Conditional_1_Template_button_click_11_listener","thereIsNoPlan","hasSelectedData","_teamMembers","tasksService","moveRequest","teamMemberIds","projectTaskIds","selectAllTasks","selectAllTeamMembers","resourceGroup","earliestPlannedDate","genericMembers","resourceMembers","MovePlanFormComponent_Template","MovePlanFormComponent_Conditional_1_Template","ProjectResourceRightSideComponent_For_11_Conditional_2_Conditional_0_Template","ProjectResourceRightSideComponent_For_11_Conditional_2_Conditional_1_Template","slot_r3","ProjectResourceRightSideComponent_For_11_Conditional_2_Template","projectResourceDataService","ProjectResourceRightSideComponent_Conditional_14_For_2_Template","ProjectResourceRightSideComponent_Conditional_14_Conditional_3_Template","ProjectResourceRightSideComponent_Conditional_14_For_6_Template","ProjectResourceRightSideComponent_Conditional_14_Conditional_7_Template","slot_r6","ProjectResourceRightSideComponent_Conditional_18_Conditional_6_For_2_Template","ProjectResourceRightSideComponent_Conditional_18_For_2_Template","ProjectResourceRightSideComponent_Conditional_18_For_5_Template","ProjectResourceRightSideComponent_Conditional_18_Conditional_6_Template","ProjectResourceRightSideComponent","isShow","ProjectResourceRightSideComponent_Template","ProjectResourceRightSideComponent_For_4_Template","ProjectResourceRightSideComponent_For_8_Template","ProjectResourceRightSideComponent_For_11_Template","ProjectResourceRightSideComponent_Conditional_14_Template","ProjectResourceRightSideComponent_Conditional_18_Template","isToday","ɵ$index_12_r5","ɵ$index_9_r8","ProjectResourcesCalendarRightGroupComponent_Conditional_3_For_1_For_2_Conditional_0_Template","ProjectResourcesCalendarRightGroupComponent_Conditional_3_For_1_For_2_Conditional_1_Template","ProjectResourcesCalendarRightGroupComponent_Conditional_3_For_1_For_2_Template","ProjectResourcesCalendarRightGroupComponent_Conditional_3_For_1_Template","ProjectResourcesCalendarRightGroupComponent_Conditional_3_Conditional_2_Template","ProjectResourcesCalendarRightGroupComponent","static","ProjectResourcesCalendarRightGroupComponent_Template","ProjectResourcesCalendarRightGroupComponent_For_2_Template","ProjectResourcesCalendarRightGroupComponent_Conditional_3_Template","VisibleParts","ProjectResourceToolbarComponent_Conditional_5_Template_button_click_2_listener","ProjectResourceToolbarComponent","scheduleNavigationParts","defaultScheduleNavigationParts","part","planningScaleSelector","calendar","valueModeSelector","ProjectResourceToolbarComponent_Template","ProjectResourceToolbarComponent_Conditional_5_Template","ProjectResourceToolbarComponent_Template_button_click_9_listener","ProjectResourcesCalendarTogglerComponent_For_2_Template_div_click_0_listener","mode_r2","ProjectResourcesCalendarTogglerComponent","ProjectResourcesCalendarTogglerComponent_Template","ProjectResourcesCalendarTogglerComponent_For_2_Template","ResourceTotalCellComponent","ProjectResourcesComponent","startUndoRedoSession","abortUndoRedoSession","ProjectResourcesComponent_Template","UndoRedoButtonsComponent","ResourcesViewFormComponent","ResourceGeneralCellComponent_Conditional_0_Conditional_3_Template_div_click_3_listener","ResourceGeneralCellComponent_Conditional_0_Conditional_4_Conditional_0_Template","ResourceGeneralCellComponent_Conditional_0_Template_div_mouseenter_0_listener","changeRowStateView","ResourceGeneralCellComponent_Conditional_0_Template_div_mouseleave_0_listener","ResourceGeneralCellComponent_Conditional_0_Template_div_click_1_listener","ResourceGeneralCellComponent_Conditional_0_Conditional_3_Template","ResourceGeneralCellComponent_Conditional_0_Conditional_4_Template","rowState","ResourceGeneralCellComponent_Conditional_1_Template_div_mouseenter_0_listener","ResourceGeneralCellComponent_Conditional_1_Template_div_mouseleave_0_listener","ResourceGeneralCellComponent_Conditional_1_Conditional_3_Template","ResourceGeneralCellComponent_Conditional_2_Template_div_click_1_listener","ResourceGeneralCellComponent_Conditional_2_Conditional_5_Template","_rowState","projectResourcesGridDataService","initProps","currentValue","correspondingGroup","isHover","correspondingLine","isMenuOpened","ResourceGeneralCellComponent_Template","ResourceGeneralCellComponent_Conditional_0_Template","ResourceGeneralCellComponent_Conditional_1_Template","ResourceGeneralCellComponent_Conditional_2_Template","AbstractTotalCell","ResourceTotalCellComponent_Case_0_Conditional_4_Template","ResourceTotalCellComponent_Case_1_Conditional_4_Template","ResourceTotalCellComponent_Template","ResourceTotalCellComponent_Case_0_Template","ResourceTotalCellComponent_Case_1_Template","ResourceTotalHoursCellComponent_Template","ResourceTotalHoursCellComponent_Conditional_0_Template","item_r1","checkboxes","ResourcesViewFormComponent_Template","ResourcesViewFormComponent_For_6_Template","MembersCellComponent","MembersReadonlyCellComponent","PROJECT_TARIFF_LIST","getDefaultValue","ProjectTariffsSettings","ProjectTariffsClientTariffFilterComponent","ProjectTariffsClientTariffFilterComponent_Template","ProjectTariffsClientTariffFilterService","MassOperationHelper","ProjectTariffsClientTariffModalComponent_For_54_Template_tr_click_0_listener","tariff_r5","$index_r6","selectTariff","ProjectTariffsClientTariffModalComponent_ForEmpty_55_Conditional_0_Template","ProjectTariffsClientTariffModalComponent_For_62_Template_div_click_0_listener","tariff_r9","$index_r10","removeTariff","ProjectTariffsClientTariffModalComponent_For_62_Template_button_click_3_listener","ctx_r10","ProjectTariffsClientTariffModalComponent_Conditional_65_Template_button_click_0_listener","addTariffsFromOrganization","ProjectTariffsClientTariffModalComponent","projectVersionCardService","projectTariffsService","availableTariffs","selectedTariffs","loadTariffsFromOrganization","assignments","newRate","massOperationHelper","progress","successActionsCount","completedCount","Common_NameMustBeUnique","uniqueErrors","getCurrencyCode","actualRate","defineProperty","enumerable","writable","ProjectTariffsService","ProjectTariffsClientTariffModalComponent_Query","ProjectTariffsClientTariffModalComponent_Template","ProjectTariffsClientTariffModalComponent_Template_button_click_5_listener","ProjectTariffsClientTariffModalComponent_Template_table_resized_32_listener","ProjectTariffsClientTariffModalComponent_For_54_Template","ProjectTariffsClientTariffModalComponent_ForEmpty_55_Template","ProjectTariffsClientTariffModalComponent_For_62_Template","ProjectTariffsClientTariffModalComponent_ForEmpty_63_Template","ProjectTariffsClientTariffModalComponent_Conditional_65_Template","ProjectTariffsClientTariffModalComponent_Template_button_click_66_listener","ProjectTariffModalComponent_Conditional_2_Conditional_44_Template_button_click_0_listener","ProjectTariffModalComponent_Conditional_2_Template_button_click_5_listener","ProjectTariffModalComponent_Conditional_2_Conditional_44_Template","ProjectTariffModalComponent_Conditional_2_Template_button_click_45_listener","ProjectTariffModalComponent","ratesForm","getProjectTariffRates","prepareTariffData","getRateFormGroup","tariffDTO","ProjectTariffModalComponent_Template","ProjectTariffModalComponent_Conditional_0_Template","ProjectTariffModalComponent_Conditional_2_Template","RateMatrix","RateMatrixStructureCollection","rateMatrices","item_r4","tmp_22_0","item_r9","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_24_Template_tr_click_0_listener","$index_r8","selectLine","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_24_For_2_Template","rateMatrix","rateMatrixStructure","ProjectTariffsRateMatricesModalComponent_Conditional_14_ForEmpty_25_Conditional_0_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_33_Template_div_click_0_listener","line_r12","$index_r13","removeLine","uniqueName","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_6_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_Template_table_resized_12_listener","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_17_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_24_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_ForEmpty_25_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_Conditional_26_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_For_33_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_ForEmpty_34_Template","availableLines","selectedLines","ProjectTariffsRateMatricesModalComponent_Conditional_16_Template_button_click_0_listener","addTariffsFromRateMatrixLines","ProjectTariffsRateMatricesModalComponent","isLoadingMatrices$","rateMatrixStructureCollection","changeFilterValues","loadMatrices","loadRateMatrixLines","generateName","setSelectedLinesNames","projectTariffs","gt","lowerFirst","billingRateTypeId","activeStateId","actualMatrix","ProjectTariffsRateMatricesModalComponent_Query","ProjectTariffsRateMatricesModalComponent_Template","ProjectTariffsRateMatricesModalComponent_Template_button_click_5_listener","ProjectTariffsRateMatricesModalComponent_Conditional_10_Template","ProjectTariffsRateMatricesModalComponent_Conditional_12_Template","ProjectTariffsRateMatricesModalComponent_Conditional_14_Template","ProjectTariffsRateMatricesModalComponent_Conditional_16_Template","ProjectTariffsRateMatricesModalComponent_Template_button_click_17_listener","ProjectTariffsToolbarComponent_Conditional_2_Conditional_9_Template_button_click_0_listener","ProjectTariffsToolbarComponent_Conditional_2_Template_button_click_1_listener","ProjectTariffsToolbarComponent_Conditional_2_Conditional_9_Template","ProjectTariffsToolbarComponent_Conditional_2_Template_button_click_10_listener","ProjectTariffsToolbarComponent_Conditional_8_Template_button_click_0_listener","ProjectTariffsToolbarComponent","projectTariffService","ProjectTariffsToolbarComponent_Template","ProjectTariffsToolbarComponent_Conditional_2_Template","ProjectTariffsToolbarComponent_Template_button_click_4_listener","ProjectTariffsToolbarComponent_Conditional_8_Template","ProjectTariffsToolbarComponent_Template_button_click_21_listener","ProjectTariffsComponent","ProjectTariffsComponent_Template","projectTeamService","projectVersionDataService","openAddTariffsFromClientModal","openAddTariffsFromRateMatricesModal","editTariff","deleteTariff","assignmentTitleWithoutUnits","getTeamMembers","assignment","projectTeamMember","projectTeamMemberId","getTariffFormGroup","tariffFormGroup","memberValue","isAllTeamRole","tariffGroup","TimelineGraph","ProjectTaskDependencyType","defaultAllowedNodes","scheduleService","allowedLeftMarkerTaskIdsSubject","allowedLeftMarkerTaskIds$","allowedRightMarkerTaskIdsSubject","allowedRightMarkerTaskIds$","isCreatingDependencySubject","isCreatingDependency$","syncDependencies$","syncDependencyGraph","setAllowedMarkerTaskIds","allowedTaskNodes","setDefaultAllowedMarkerTaskIds","setIsCreatingDependency","isCreating","getAllowedPredecessorTaskNodes","dependencyType","targetTasks","allowedNodes","dependentNode","finishToStart","finishToFinish","startToFinish","startToStart","removeViolationMarkers","filterDependencyMarkers","predecessorNode","node","dependencyGraph","checkIsPathAllowed","checkIfIncreaseAllowed","graph","childTasks","getAllChildTasks","branchTasks","anyDependencyIsCircular","bt","beginNodeType","endNodeType","beginNode","endNode","predecessorId","checkHasDependentTasks","dependency","findMinStartAllowedDate","exceptionTaskIds","findDateByDependencies","handleTask","predecessorTasks","predecessorTask","findDateBySummaryTask","dateByDependencies","dateBySummaryTask","minDate","buildGraph","criticalPathElements","getCriticalPathElements","criticalDependencies$","criticalTaskIds$","taskIds","checkIsLeadTask","findFirstLevelChildren","childTask","targetNode","isNodePredecessor","taskIdsToFilter","allowed","difference","getAllSummaryTasks","excludeMain","findFirstLevelSummaryTask","summaryTasks","summaryTask","ProjectTaskType","ProjectTaskView","isLoadingSubject","updateSubject","update$","syncDependenciesSubject","isInherited","projectTaskView","timelineDateChanges","getTasksCollection","summaryFields","summaryEditableFields","deletingTaskIds","creatingTaskIds","isShowMainTask$","isShowPlannedTasks$","isShowCriticalPath$","blockFormGroupChangeListener","getRowVersion","getTask","isShowLoadingBar","setIsLoading","getTasksQuery","members","totalTasks","totalTask","prepareTaskPropertyForView","percentComplete","estimatedHours","plannedStartDate","plannedEndDate","addExpanded","updateSummaryValues","updatedAssignments","projectTaskAssignments","ass","maxIndent","tasksInIndent","updatePercentCompleteSums","visibleTasks","getVisibleTasks","updateStructNumbers","updateTotals","updatePlanningFields","rootTaskIndex","rootTaskFormGroup","addSavingQueuePatch","taskToPatch","addToQueuePatch","taskDTO","addSubscriptions","plannedHours","plannedCost","estimatedCost","allowTimeEntry","effortDriven","isMilestone","categoryId","applySummaryValues","fixedWork","oldTask","groupRawValue","taskPartsToPatch","getTaskPartsToPatch","traverse","renderTasks","sortedTasks","getTaskToSave","taskForSaving","pick","getUpdateFields","getAssignmentsDTO","currencyFields","fg","taskValue","newTask","changedFields","getChangedFields","taskToSaving","enrichListWithRequiredFields","taskForPatching","oldTaskAssignmentsDTO","newAssignmentsParts","getAssignmentsParts","partsToPatch","assignmentsDTO","isUnassigned","units","oldAssignments","newAssignments","parts","deleteAssignmentsPart","newAss","preservedAss","changedMemberIdPart","structuredClone","newMemberPreservedAss","addAssignmentsPart","changedUnitsPart","keysToSave","fixedDuration","TaskCardModalComponent","ProjectTaskSettings","taskMaxLevel","TasksGridActionsService","levels","taskDataService","dependenciesService","isShowMainTask","isShowPlanTasks","isShowCriticalPath","removeExpanded","setAdditionalViewSettings","setLevel","currentTaskId","createChild","defaultTaskType","checkIsCreatingAllowed","checkIsStatusChangingAllowed","checkIsChildCreatingAllowed","isCommandAllowed","autoPlanning","duplicateTask","checkIsDeletingAllowed","increaseTaskLevel","increaseLevel","checkIsIncreaseAllowed","decreaseTaskLevel","decreaseLevel","checkIsDecreaseAllowed","checkIfDecreaseAllowed","downTaskPosition","down","saveTaskByDiffs","checkIsDownAllowed","upTaskPosition","up","checkIsUpAllowed","switchTaskStatus","TasksGridComponent","ProjectTasksTimelineModule","EntityState","ProjectTasksComponent","initProjectTasks","initSummaryFieldLists","BtDeleteException","deletingTaskIndex","savingQueueId","updatedTask","entityState","assignUpdatedTaskProperty","updateTasksAfterSaving","tasksEditAllowed","showProjectTaskWarnings","projectTaskDTO","summaryCustomFields","getList","removeTaskFromData","currentTask","isTaskDeleting","deletingTaskIdIndex","allChildTaskIds","isTaskCreating","creatingTaskIdIndex","ProjectTasksComponent_Template","TasksMainModule","hasPermission","ProjectTaskConstants","indentWidth","TASKS_VIEW","ProjectTaskTableView","predecessorGraph","criticalDependencies","criticalTaskIds","mainTaskId","initGraph","initPredecessorGraph","initCriticalPathTasksAndDependencies","checkIfPathExists","allSummaryTasks","allChildrenTasks","newLeadTask","taskStartNode","taskEndNode","newLeadTaskStartNode","newLeadTaskEndNode","beginNodeKey","getGraphKey","endNodeKey","pathExist","visited","stack","nodeKey","nodeInfo","checkingDependencies","nodeType","startNode","taskSecondNodeInfo","sticky","dep","taskMap","childrenMap","dependentTasksMap","finishNode","startNodeDeps","finishNodeDeps","childrenTasks","dependentTasks","dependentTask","graphDep","startNodeInfo","finishNodeInfo","getNodeCorrespondingDateKey","finishNodeKey","nodeInfoDate","dependentNodeInfo","criticalDeps","depNodeDate","depNodeDateNotWorking","criticalDependency","nextNodeInfo","TasksViewSwitcherComponent","TaskAssignmentsComponent","AssignmentTableComponent","TasksViewFormComponent","TaskCollapsibleCellComponent","TaskCollapsibleReadonlyCellComponent","TaskDateCellComponent","TaskDateReadonlyCellComponent","TaskDurationCellComponent","TaskDurationReadonlyCellComponent","TaskNameCellComponent","TaskNameReadonlyCellComponent","TaskPredecessorCellComponent","TaskPredecessorReadonlyCellComponent","TasksReportModalComponent","TasksToolbarComponent","TaskTimelineRightGroupComponent","TimelineEntryComponent","TimelineRightSideComponent","TaskFlagCellComponent","TaskFlagReadonlyCellComponent","AssignmentTariffCellComponent","getProjectTariffQuery","AssignmentTariffCellComponent_Template","FormControlDirective","AssignmentTariffReadonlyCellComponent","AssignmentTariffReadonlyCellComponent_Template","styles","ProjectTaskAssignmentsView","PROJECT_TASK_ASSIGNMENTS_LIST","AssignmentsToolbarComponent","resolveTaskAssignmentsView","taskAssignmentsService","projectTasksDataService","getAvailableMembers","getCrossedOutString","assignedMemberIds","assignmentRows","memberColumn","assignmentsGridOptions","addAssignmentsLine","deleteAssignment","getAssignmentFormGroup","TaskAssignmentsService","AssignmentTableComponent_Template","AsyncPipe","TranslateStubModule","AssignmentsToolbarComponent_Conditional_0_Template_button_click_2_listener","AssignmentsToolbarComponent_Conditional_0_Template_button_click_7_listener","AssignmentsToolbarComponent_Conditional_0_Template_button_click_10_listener","AssignmentsToolbarComponent_Template","AssignmentsToolbarComponent_Conditional_0_Template","contentType","assignmentFormGroup","allTeamAssignment","assignmentsChangingFromModal","stopSubscriptionsSubject$","prepareAssignments","assignmentsFormGroup","initCardGroupChangesSubscription","initExternalChangesSubscription","formResult","assignmentRow","newAssignment","assignmentGroup","newAssignmentsIds","existAssignmentsIds","isEqualRows","rebuildAssignments","TaskAssignmentsComponent_Template","TaskAssignmentsComponent_Conditional_1_Template","TaskAssignmentsComponent_Conditional_2_Template","allTeamCode","assignmentItem","TaskDependenciesToolbarComponent_Conditional_0_Template_button_click_2_listener","TaskDependenciesToolbarComponent_Conditional_0_Template_button_click_7_listener","TaskDependenciesToolbarComponent","TaskDependenciesToolbarComponent_Template","TaskDependenciesToolbarComponent_Conditional_0_Template","AVAILABLE_DEPENDENCY_TYPES","PROJECT_TASK_TYPES","TaskCardModalComponent_ng_template_9_Conditional_47_Template","constants","taskTypes","TaskCardModalComponent_Conditional_26_ng_template_7_Conditional_0_Template","TaskCardModalComponent_Conditional_26_ng_template_7_Template","dependenciesChangingFromModal","getAvailablePredecessorTasks","allowedTaskIds","existPredecessorIds","predecessorControl","availablePredecessorTaskIds","dependencyTypes","taskFormGroup","taskGroup","isolatedFormGroup","addDependencyLine","deleteDependency","dependencyTypeColumn","prepareDependencies","taskType","getDependencyFormGroup","newDependencies","newValueStringArray","existValueStringArray","rebuildDependencies","TaskCardModalComponent_Template","TaskCardModalComponent_ng_template_9_Template","TaskCardModalComponent_Conditional_26_Template","targetState","identifier","taskLead","upTasks","downTasks","taskForIndentIncrease","changeLevel","taskAbove","maxNumber","maxNumberInLevel","taskBelow","allTask","orderedTasks","sTask","canDelete","canMoveUp","canMoveDown","canIncreaseLevel","canDecreaseLevel","canCreateChild","upTask","customFields","formDefaultValue","parseFloat","updatingTasks","originalTaskId","originalTask","getMaxIndent","elMax","ProjectTasksListService","extendListWithCustomFields","isShownInEntityLists","Sum","string","dateOnly","isIdMode","TaskFlagCellComponent_Template","TaskFlagReadonlyCellComponent_Template","viewValue","TaskCollapsibleCellComponent_Query","workPipe","updateStyles","firstChild","TaskCollapsibleReadonlyCellComponent_Template","gridCell","parentNode","onlySelf","TaskDateCellComponent_Query","TaskDateReadonlyCellComponent_Template","durationMinValue","durationBox","setUserValue","TaskDurationCellComponent_Query","TaskDurationReadonlyCellComponent_Template","toggle","getIndent","TaskNameCellComponent_Query","TaskNameCellComponent_Template_span_click_1_listener","TaskNameCellComponent_wp_text_box_2_Template","TaskNameCellComponent_div_3_Template","TaskNameReadonlyCellComponent_Template","TaskNameReadonlyCellComponent_Template_span_click_1_listener","TaskPredecessorCellComponent_Query","predecessorBox","setDisabledState","TaskPredecessorReadonlyCellComponent_Template","pairwise","PROJECT_TASK_LIST","MembersBoxComponent","PredecessorBoxComponent","ImageExport","FlagBoxComponent","resolveTasksView","timeline","resolveAutoPlanningView","info2","timelineDefault","timelineNoAutoPlanning","tableDefault","tableNoAutoPlanning","tasksView","tasksGridActionsService","keyboardEvents","newTaskId","newTaskGroup","setActiveNameCell","keyCode","taskIdsForDeleting","getTaskIdsForDeleting","nextTaskGroup","getTaskFormGroupForSelect","selectedTaskIds","taskExport","downloadTasksReport","exportTo","newTaskIndex","clearSelectedRangeCells","copyPasteParsers","parseTextToValue","grid","toolbarInputs","setColumnsCurrency","setColumnsOptions","lastGroup","gridView","taskTypeColumn","kpiKinds","isPromise","errorText","errorObj","tableContainer","tableContainerRect","scrollHeader","scrollHeaderRect","scrollFooter","scrollFooterRect","elementsToExportIgnore","removeExcludeAttributes","removeAttribute","cropInfo","exportElement","err","amountColumns","financialColumn","selectedTasks","deletedTaskIds","remainingTasks","minDeletedIndex","setActiveControl","TasksGridComponent_Query","TasksGridComponent_Template","KpiKind","TasksReportModalSettings","type_r1","kind_r2","TasksReportModalComponent_button_19_Template_button_click_0_listener","TasksReportModalComponent_Template","TasksReportModalComponent_Template_button_click_5_listener","TasksReportModalComponent_div_12_Template","TasksReportModalComponent_div_17_Template","TasksReportModalComponent_button_19_Template","TasksReportModalComponent_Template_button_click_20_listener","visibleParts","TasksToolbarComponent_For_37_Template_button_click_0_listener","level_r3","TasksToolbarComponent_For_47_Template_button_click_0_listener","export_r5","taskActionsService","createCanBeExecuted","editCanBeExecuted","deleteCanBeExecuted","increaseLevelCanBeExecuted","decreaseLevelCanBeExecuted","upCanBeExecuted","downCanBeExecuted","projectTaskExports","selectedGroup","TasksToolbarComponent_Template","TasksToolbarComponent_Conditional_2_Template","TasksToolbarComponent_Template_button_click_4_listener","TasksToolbarComponent_Template_button_click_10_listener","TasksToolbarComponent_Template_button_click_14_listener","TasksToolbarComponent_Template_button_click_18_listener","TasksToolbarComponent_Template_button_click_21_listener","TasksToolbarComponent_Template_button_click_24_listener","TasksToolbarComponent_Template_button_click_27_listener","TasksToolbarComponent_For_37_Template","TasksToolbarComponent_Conditional_38_Template","TasksToolbarComponent_For_47_Template","TasksToolbarComponent_Template_button_click_50_listener","Subscription","TimelineSettings","ProjectTaskTimelineService","taskHintNames","taskName","projectTaskDuration","entriesSubject","entries$","updateTasksSubject","updateTasks$","scheduleNavigationSubscriptions","smallGap","bigGap","shiftTimelineInterval","projectTaskTimelineInterval","updateSlots","autoScroll","reloadTimeline","getDefaultProjectInterval","getTimelineInterval","updateEntries","scrollToSelector","initScrollPosition","fteScheduleSubscription","initTimeline","dateToScrolling","ProjectTasksTimeline","translateTaskHintNames","addDependency","newDependency","currentDependencies","leftGap","rightGap","selectorToScroll","scrollOption","selector","keyToTranslate","TimelinePositionService","slotMinDate","projectTaskTimelineService","halfOfMilestoneSize","milestoneSize","timelineSlotWidth","getPosition","getWidth","isLeadTask","baseWidth","getDays","diffX","getDayWidth","GraphicQuadrant","ArrowDirection","TimelineRenderingService","timelinePositionService","dragContext","canvasPosition","dependenciesCanvas","leftOffset","topOffset","rowHeight","hiddenDependenciesLineWidth","lineColor","highlightColor","criticalColor","getDataTableHeight","clearCreateDynamicCanvas","dynamicCanvas","getContext","clearRect","highlightTaskDependencies","strokeStyle","lineWidth","fillStyle","selectedTask","drawDependency","predecessorDependencies","predecessorDependency","drawCriticalPathDependencies","clearCriticalPathCanvas","canvas","criticalPathCanvas","drawDependencies","dependentTaskId","canvasContext","dependentTaskViewParams","getTaskViewParams","predecessorTaskViewParams","getTaskPointCoordinates","isStart","taskLeftOffset","taskWidth","taskIndex","drawDependencyLine","startX","startY","endX","endY","drawStraightLine","isCommonMilestoneTask","isLeadMilestoneTask","positionDate","baseTaskWidth","taskParamsCorrectionValue","findQuadrant","deltaX","deltaY","second","fourth","third","beginPath","moveTo","lineTo","stroke","arrowDirection","addArrow","tan","PI","sign","closePath","coordinates","arcRadius","quadrant","drawQuadrantDependencyLine","drawFirstQuadrantDependencyLine","drawSecondQuadrantDependencyLine","drawThirdQuadrantDependencyLine","drawFourthQuadrantDependencyLine","arc","entry_r1","timelineRenderingService","TaskTimelineRightGroupComponent_Template","TaskTimelineRightGroupComponent_Template_tr_click_0_listener","TaskTimelineRightGroupComponent_For_10_Template","hiddenLeftSideDepsTitle","hiddenLeftSideDeps","TimelineEntryComponent_Conditional_1_Conditional_3_Template_div_pointerdown_1_listener","taskStrip_r3","initCreateDepend","percentCompleteForView","_c6","percentCompleteStyle","_c7","getLeadTaskRightSideStripStyles","TimelineEntryComponent_Conditional_1_Conditional_6_Template_div_pointerdown_0_listener","initResize","TimelineEntryComponent_Conditional_1_Conditional_6_Template_div_pointerdown_1_listener","_c8","widthBreakpoint","_c9","TimelineEntryComponent_Conditional_1_Conditional_7_Template_div_pointerdown_1_listener","TimelineEntryComponent_Conditional_1_Template_div_pointerdown_0_listener","initDrag","TimelineEntryComponent_Conditional_1_Template_div_click_0_listener","TimelineEntryComponent_Conditional_1_Conditional_3_Template","TimelineEntryComponent_Conditional_1_Conditional_5_Template","TimelineEntryComponent_Conditional_1_Conditional_6_Template","TimelineEntryComponent_Conditional_1_Conditional_7_Template","ɵɵpureFunction5","taskHint","_c10","hiddenRightSideDepsTitle","hiddenRightSideDeps","plannedTaskStyles","plannedTaskHint","percentCompleteSum","_hiddenLeftSideDeps","_hiddenLeftSideDepsTitle","_hiddenRightSideDeps","_hiddenRightSideDepsTitle","_taskHint","_plannedTaskHint","updateTaskView","mainTaskColorVarName","secondaryTaskColorVarName","baseMainTaskColor","baseSecondaryTaskColor","criticalMainTaskColor","criticalSecondaryTaskColor","startEvent","isDragAndDropBusy","drag","dragEnd$","roundedDaysCount","updateTaskDates","taskDuration","rightBorderDayWidth","leftBorderDayWidth","dependencyMarkerType","taskPosition","beginPointCoordinates","targetElement","targetElementType","targetElementId","targetFormGroup","startDayShift","endDayShift","datesForUpdate","newEndDate","newStartDate","isTaskStripVisible","taskElement","taskStrip","updateHiddenDependencies","updateTaskHint","updatePlannedTaskView","updatePlannedTaskHint","plannedTaskWidth","plannedTaskLeft","slotMaxDate","taskAssignmentsString","getAssignmentsString","startDateString","endDateString","filterHiddenPredecessorTask","filterHiddenDependentTasks","visibleTask","hiddenTask","predecessorFS","predecessorSS","predecessorFF","predecessorSF","dependentSF","dependentSS","dependentFF","dependentFS","hiddenDependentsDescription","generateDependencyList","depsTasks","dependencyList","rightSideTitle","leftSideTitle","DragDropService","TimelineEntryComponent_Query","TimelineEntryComponent_Conditional_0_Template","TimelineEntryComponent_Conditional_1_Template","TimelineEntryComponent_Conditional_2_Template","TimelineEntryComponent_Conditional_3_Template","TimelineRightSideComponent_For_23_Template_tbody_contextmenu_0_listener","taskFormGroup_r5","openContextMenu","taskFormArrayGroups","currentScrollPosition$","currentScrollPosition","TimelineRightSideComponent_Query","TimelineRightSideComponent_Template","TimelineRightSideComponent_For_4_Template","TimelineRightSideComponent_For_8_Template","TimelineRightSideComponent_For_11_Template","TimelineRightSideComponent_Conditional_15_Template","TimelineRightSideComponent_For_19_Template","TimelineRightSideComponent_tbody_20_Template","TimelineRightSideComponent_For_23_Template","TimelineRightSideComponent_For_34_Template","TimelineRightSideComponent_Conditional_35_Template","TasksViewFormComponent_For_6_Conditional_0_Template","hiddenCheckboxes","projectTasksActionsService","TasksViewFormComponent_Template","TasksViewFormComponent_For_6_Template","TasksViewSwitcherComponent_Template","AddResourceModalToolbarComponent","AddResourceModalToolbarComponent_Template","AddResourceModalToolbarComponent_Template_button_click_2_listener","filterResourceTypes","ResourcesFilterService","RESOURCES_LIST","AddResourcesModalComponent_For_14_Template_div_click_0_listener","AddResourcesModalComponent_For_14_Conditional_1_Template","AddResourcesModalComponent_For_14_Template_button_click_4_listener","AddResourcesModalComponent_Conditional_17_Template_button_click_0_listener","AddResourcesModalComponent","resourcesForTeamFilterNames","currentRate","existedFilter","projectOrVersionId","projectOrVersionPropertyName","resourceTypeConditions","AddResourcesModalComponent_Template","AddResourcesModalComponent_Template_button_click_5_listener","AddResourcesModalComponent_Conditional_9_Template","AddResourcesModalComponent_For_14_Template","AddResourcesModalComponent_Conditional_15_Template","AddResourcesModalComponent_Conditional_17_Template","AddResourcesModalComponent_Template_button_click_18_listener","AssessmentCellComponent_div_0_div_1_Template_i_click_2_listener","AssessmentCellComponent_div_0_div_2_Template_i_click_2_listener","AssessmentCellComponent_div_0_div_1_Template","AssessmentCellComponent_div_0_div_2_Template","countOfEstimations","AssessmentCellComponent","AssessmentCellComponent_Template","AssessmentCellComponent_div_0_Template","GenericAssignmentModalComponent_form_1_Template_button_click_5_listener","GenericAssignmentModalComponent_form_1_Template_button_click_26_listener","GenericAssignmentModalComponent_form_1_Template_button_click_29_listener","resourceFilter","GenericAssignmentModalComponent","hasRole","getTeamMembersCollection","isVersion","updateResourceFilter","currentResourceIds","teamMembersQuery","resourceIdsQuery","memberId","GenericAssignmentModalComponent_Template","GenericAssignmentModalComponent_form_1_Template","analytics","GenericSettings","strictValues_r4","analytic_r3","analyticControls_r5","GenericModalComponent_form_2_Conditional_20_For_4_Conditional_0_Template","GenericModalComponent_form_2_Conditional_20_For_4_Conditional_1_Template","strictFillOut","GenericModalComponent_form_2_Conditional_20_For_4_Template","matrixAnalytics","other_r6","otherAnalytics","GenericModalComponent_form_2_Conditional_36_Conditional_2_Template_button_click_0_listener","GenericModalComponent_form_2_Conditional_36_Conditional_3_Template_button_click_0_listener","GenericModalComponent_form_2_Conditional_36_Conditional_4_Template_button_click_3_listener","GenericModalComponent_form_2_Conditional_36_Conditional_0_Template","GenericModalComponent_form_2_Conditional_36_Conditional_2_Template","GenericModalComponent_form_2_Conditional_36_Conditional_3_Template","GenericModalComponent_form_2_Conditional_36_Conditional_4_Template","resourcePool_r10","analytic_r11","getMatrixAnalyticCollection","GenericModalComponent_form_2_ng_template_40_Conditional_0_Template","GenericModalComponent_form_2_ng_template_40_Conditional_1_Template","analytic_r12","getStrictValues","analytic_r13","GenericModalComponent_form_2_ng_template_46_Conditional_0_For_4_Template","otherAnalytics_r14","GenericModalComponent_form_2_ng_template_46_Conditional_0_Template","GenericModalComponent_form_2_Conditional_2_Template","GenericModalComponent_form_2_Conditional_3_Template","GenericModalComponent_form_2_Template_button_click_4_listener","GenericModalComponent_form_2_Conditional_6_Template","GenericModalComponent_form_2_Conditional_17_Template","GenericModalComponent_form_2_Conditional_20_Template","GenericModalComponent_form_2_Conditional_21_Template","GenericModalComponent_form_2_Conditional_22_Template","GenericModalComponent_form_2_Conditional_36_Template","GenericModalComponent_form_2_Template_button_click_37_listener","GenericModalComponent_form_2_ng_template_40_Template","GenericModalComponent_form_2_ng_template_42_Template","GenericModalComponent_form_2_ng_template_44_Template","GenericModalComponent_form_2_ng_template_46_Template","hasResourceRequest","GenericModalComponent","_hasResourceRequest","analytic","staffCount","primaryTariff","employmentType","stopAutoName$","stopCascadeControls$","autoNameSubscription","rateMatrixId","initModal","subToAutoName","addMore","formValues","genericResource","teamMemberPatchRequest","primaryTariffId","genericPatchRequest","existingNames","analyticIndex","selectedAnalytics","res","getActualMatrixStructure","loadDefaults","pools","initStrictFillOut","initUpdateGenericCalculatedInfoSubscriptions","setCascadeControls","getProjectTeamMember","updateGenericCalculatedInfo","staffCountTitle","parsedStaffCount","costRateTypeId","matrices","initEditing","filledControls","generatedName","getUniqueName","nameExists","newGeneratedName","initStrictFillOutControls","resetControls","GenericModalComponent_Query","GenericModalComponent_form_2_Template","MemberModalCostToolbarComponent_div_0_Template_button_click_1_listener","MemberModalCostToolbarComponent","MemberModalCostToolbarComponent_Template","MemberModalCostToolbarComponent_div_0_Template","MemberModalComponent_Conditional_1_ng_template_12_Conditional_5_Template","MemberModalComponent_Conditional_1_ng_template_12_Conditional_6_Template","MemberModalComponent_Conditional_1_ng_template_12_Conditional_12_Template","roles$","costValuesForm","costReadonly","MemberModalComponent_Conditional_1_Conditional_13_ng_template_4_Template","costForm","MemberModalComponent_Conditional_1_Conditional_16_Template_button_click_0_listener","MemberModalComponent_Conditional_1_Template_button_click_4_listener","MemberModalComponent_Conditional_1_ng_template_12_Template","MemberModalComponent_Conditional_1_Conditional_13_Template","MemberModalComponent_Conditional_1_Conditional_16_Template","MemberModalComponent_Conditional_1_Template_button_click_17_listener","teamCostViewAllowed","MemberModalComponent","removeCost","createCost","isCurrencyEditable","getTeamMemberRolesObservable","selectedRoleId","costValueFormData","costValues","rc","memberQuery","loadMainForm","loadCostForm","projectVersionReadonly","teamCostEditAllowed","costValue","initCostForm","initialValueFilteredCurrency","userCost","filteredCurrency","getGridFormGroup","existingRoleIds","MemberModalComponent_Template","MemberModalComponent_Conditional_1_Template","MemberResourceCellComponent","MemberResourceCellComponent_Template","MemberResourceCellComponent_Conditional_1_Template","MemberResourceCellComponent_Conditional_2_Template","MemberResourceCellComponent_Conditional_3_Template","ProjectTariffCellReadonlyComponent","ProjectTariffCellReadonlyComponent_Template","ProjectTariffCellComponent","ProjectTariffCellComponent_Template","PROJECT_TEAM_MEMBER_LIST","TeamToolbarComponent","UserAssessmentModalComponent","ProjectTeamComponent","assignUser","addResources","createGeneric","createGenericFromUser","setStatus","teamEditAllowed","filterSubscription","userSkillEstimationEditAllowed","getRestrictedRoleIds","genericRows","resourceRows","valuePC","localType","ProjectTeamComponent_Template","TeamSettings","setFilter","existedRoleIds","userRoles","userRole","isCurrentRestricted","TeamToolbarComponent_Conditional_2_Template_button_click_1_listener","TeamToolbarComponent_Conditional_4_Template_button_click_0_listener","TeamToolbarComponent_Conditional_10_Template_button_click_0_listener","TeamToolbarComponent_Conditional_12_Template_button_click_0_listener","TeamToolbarComponent_Conditional_13_Template_button_click_0_listener","TeamToolbarComponent_Template","TeamToolbarComponent_Conditional_2_Template","TeamToolbarComponent_Conditional_4_Template","TeamToolbarComponent_Template_button_click_6_listener","TeamToolbarComponent_Conditional_10_Template","TeamToolbarComponent_Conditional_12_Template","TeamToolbarComponent_Conditional_13_Template","TeamToolbarComponent_Template_button_click_25_listener","genericResources","fill_r4","UserAssessmentModalComponent_tr_41_Template_ngb_rating_rateChange_4_listener","userSkill_r3","UserAssessmentModalComponent_tr_41_ng_template_5_Template","UserAssessmentModalComponent_tr_41_Template_button_click_8_listener","removeEstimation","userSkills","estimations","skillsQuery","estimationsQuery","getUserSkills","UserAssessmentModalComponent_Query","UserAssessmentModalComponent_Template_button_click_5_listener","UserAssessmentModalComponent_Template_table_resized_29_listener","UserAssessmentModalComponent_tr_41_Template","UserAssessmentModalComponent_tr_42_Template","UserAssessmentModalComponent_Template_button_click_45_listener","UserAssessmentModalComponent_Template_button_click_48_listener","FinancialAmountCellComponent","FinancialAmountCellComponent_Template","FinancialAmountCellComponent_Conditional_0_Template","FinancialAmountCellComponent_Conditional_1_Template","FinancialAmountReadonlyCellComponent","getCss","FinancialAmountReadonlyCellComponent_Template","FinancialNonNullableAmountCellComponent","FinancialNonNullableAmountCellComponent_Template","FinancialNonNullableAmountCellComponent_Conditional_0_Template","FinancialNonNullableAmountCellComponent_Conditional_1_Template","FinancialDateCellComponent","FinancialDateCellComponent_Template","FinancialDateCellComponent_wp_date_box_0_Template","FinancialDateReadonlyCellComponent","FinancialDateReadonlyCellComponent_Template","FinancialNonNullableDateCellComponent","FinancialNonNullableDateCellComponent_Template","FinancialNonNullableDateCellComponent_wp_date_box_0_Template","FinancialDescriptionCellComponent","FinancialDescriptionCellComponent_Template","FinancialDescriptionCellComponent_wp_text_box_0_Template","FinancialDescriptionReadonlyCellComponent","FinancialDescriptionReadonlyCellComponent_Template","FinancialTaskCellComponent_Conditional_1_Template_span_click_0_listener","FinancialTaskCellComponent","FinancialTaskCellComponent_Template","FinancialTaskCellComponent_Conditional_1_Template","FinancialTaskCellComponent_Conditional_2_Template","forwardRef","NG_VALUE_ACCESSOR","FlagBoxComponent_ng_template_4_For_6_Template_button_click_0_listener","selectRow","dropdownIconsClasses","FlagBoxComponent_ng_template_4_Template_button_click_3_listener","FlagBoxComponent_ng_template_4_For_6_Template","storedRows","categoriesService","columnIconClasses","currentId","listOpened","selectBoxButton","expandingArea","propagateTouch","isDisabled","setColumnIconClasses","category","setDropdownIconClasses","writeValue","registerOnChange","registerOnTouched","openList","closeList","controlPopperModifiers","textData","guidRegex","classes","rowClasses","FlagBoxComponent_Query","useExisting","ɵɵHostDirectivesFeature","directive","StandaloneFormControlDirective","FlagBoxComponent_Template","FlagBoxComponent_Template_div_click_0_listener","FlagBoxComponent_ng_template_4_Template","createPopper","defaultResourceTypes","TextToControlValueParserHelper","MembersBoxComponent_Conditional_0_Conditional_4_Template_span_click_0_listener","MembersBoxComponent_Conditional_0_Conditional_9_Conditional_10_For_3_Template_tr_click_0_listener","row_r6","clickItem","MembersBoxComponent_Conditional_0_Conditional_9_Conditional_10_For_3_Template_input_ngModelChange_2_listener","MembersBoxComponent_Conditional_0_Conditional_9_Conditional_10_For_3_Template","filteredMemberRows","MembersBoxComponent_Conditional_0_Conditional_9_Template_span_click_5_listener","clearSearch","MembersBoxComponent_Conditional_0_Conditional_9_Conditional_9_Template","MembersBoxComponent_Conditional_0_Conditional_9_Conditional_10_Template","searchControl","MembersBoxComponent_Conditional_0_Template_div_clickOutside_0_listener","MembersBoxComponent_Conditional_0_Template_div_onIntersect_0_listener","MembersBoxComponent_Conditional_0_Template_input_click_2_listener","onInputClick","MembersBoxComponent_Conditional_0_Conditional_4_Template","MembersBoxComponent_Conditional_0_Template_button_click_5_listener","MembersBoxComponent_Conditional_0_Conditional_9_Template","shortNames","fullNames","availableResourceTypes","isAllTeamAvailable","memberRows","autofocus","inputEl","refreshRows","calculateViewNames","onBlur","updateAssignments","inputSearch","popperInstance","membersBoxContainer","strategy","modifiers","phase","requires","popper","rects","reference","elements","memberRow","allTeam","isValidJSONStructure","getAssignment","maxAssignmentShortNameLength","MembersBoxComponent_Query","MembersBoxComponent_Template","MembersBoxComponent_Conditional_0_Template","MembersBoxComponent_Conditional_1_Template","MembersBoxComponent_Conditional_2_Template","gridOrchestratorService","GridOrchestratorService","MembersCellComponent_Template","MembersReadonlyCellComponent_Template","titleShort","PredecessorBoxComponent_div_2_span_4_Template_span_click_0_listener","PredecessorBoxComponent_div_2_div_9_div_2_Template_span_click_4_listener","PredecessorBoxComponent_div_2_div_9_div_4_Template_div_click_0_listener","task_r6","itemCLickHandler","PredecessorBoxComponent_div_2_div_9_div_2_Template","PredecessorBoxComponent_div_2_div_9_div_4_Template","PredecessorBoxComponent_div_2_div_9_div_5_Template","filteredTasks","PredecessorBoxComponent_div_2_Template_div_clickOutside_0_listener","PredecessorBoxComponent_div_2_Template_div_onIntersect_0_listener","PredecessorBoxComponent_div_2_Template_input_click_2_listener","PredecessorBoxComponent_div_2_span_4_Template","PredecessorBoxComponent_div_2_Template_button_click_5_listener","PredecessorBoxComponent_div_2_div_9_Template","__","controlDelay","keypressListener","updateTitle","updateTaskOption","targetTask","pointerId","initKeyListener","predecessors","translationKey","taskList","currentTaskIndex","PredecessorBoxComponent_Query","PredecessorBoxComponent_Template","PredecessorBoxComponent_p_0_Template","PredecessorBoxComponent_p_1_Template","PredecessorBoxComponent_div_2_Template","RolesCellComponent","RolesReadonlyCellComponent","RecurringExpenseRuleCellComponent","RecurringExpenseRuleCellComponent_Template","RecurringExpenseRuleCellComponent_Template_button_click_0_listener","RolesCellComponent_Template","RolesCellComponent_Conditional_0_Template","RolesCellComponent_Conditional_1_Template","RolesReadonlyCellComponent_Template","CopyingProjectModalComponent","copyAssignments","copyTasks","copyTeam","copyManagers","copyRates","saveSourceLink","CopyingProjectModalComponent_Template","CopyingProjectModalComponent_Template_button_click_6_listener","CopyingProjectModalComponent_div_30_Template","CopyingProjectModalComponent_div_36_Template","CopyingProjectModalComponent_ng_container_37_Template","CopyingProjectModalComponent_Template_button_click_39_listener","CopyingProjectModalComponent_Template_button_click_42_listener","ProjectBillingTypes","billingType_r2","ProjectFilterComponent","billingTypes","ProjectFilterComponent_Template","ProjectFilterComponent_div_9_Template","ProjectFilterComponent_div_10_Template","ProjectFilterComponent_div_11_Template","ProjectFilterComponent_div_19_Template","ProjectFilterComponent_div_25_Template","billingTypeConditionExist","allBillingTypesIsTrue","allBillingTypesIsFalse","ProjectListComponent","ProjectListComponent_Template","ProjectVersionCardComponent_ng_container_6_div_5_Template_button_click_5_listener","projectVersionId","ProjectVersions","ProjectVersionCardComponent_ng_container_6_div_5_Template","ProjectVersionCardComponent_ng_container_6_div_22_Template","ProjectVersionCardComponent_ng_container_6_Template_ul_activeIdChange_31_listener","ProjectVersionCardComponent_ng_container_6_div_37_Template","ProjectVersionCardComponent_ng_container_6_div_42_Template","ProjectVersionCardComponent_ng_container_6_tmt_entity_workflow_tasks_47_Template","ProjectVersionCardComponent_ng_container_6_tmt_state_history_52_Template","ProjectVersionCardComponent","sourceVersions","sourceVersion","corporateTaxRate","openVersionActionName","getProjectVersionChangeDestroyed$","projectVersionName","updateActionsVisibility","formValueChangeSubscribe","setMasterBaseline","setMasterFlagAllowed","ProjectVersionCardComponent_Template","ProjectVersionCardComponent_Template_wp_form_header_reloaded_0_listener","ProjectVersionCardComponent_ng_container_6_Template","CreateProjectVersionMode","CreateProjectVersionModes","CreateProjectVersionModalComponent_form_1_Template_button_click_5_listener","CreateProjectVersionModalComponent_form_1_div_21_Template","CreateProjectVersionModalComponent_form_1_Template_button_click_23_listener","CreateProjectVersionModalComponent_form_1_Template_button_click_26_listener","modes","isSourceVersionCtrlVisible","CreateProjectVersionModalComponent","_modes","moveToCard","_sourceVersionsCopy","initCreateForm","sourceVersionId","CopyEstimate","mainProjectId","updateControlVisibility","getVersionNamePrefix","handleModeChange","Empty","sourceVersionCtrl","CopyForecast","CreateProjectVersionModalComponent_Template","CreateProjectVersionModalComponent_form_1_Template","formName$","ProjectVersionListComponent","projectsCollection","selectedVersion","mergeAllowed","getProjectVersionDestroyed$","initActionPanel","updateActionVisibility","createVersion","openMergeVersionsDialog","versionMergeAllowed","ProjectVersionListComponent_Template","ProjectVersionListComponent_Conditional_0_Template","projectsCollectionName","_collectionMapping","fnCollectionName","fnProjectEntityId","ForecastPeriod","includeMaster","addVersionIdQueryParam","assignNull","snapshot","ProjectVersionMergeType","ProjectVersionMergeOption","ProjVersionMergeMode","ProjVersionMergeDetailType","ProjectVersionsMergeModalService","currentStepType","_currentStepType","paramSelectionForm","_paramSelectionForm","paramSelectionValue","_paramSelectionValue","_paramSelectionStepSubmitting","_startParamSelectionStepSubmit","_finishParamSelectionStepSubmit","_mergeUpdateDetails","dto","hasConflicts","_mergeFinished","paramSelectionStepSubmitting$","startParamSelectionStepSubmit$","mergeUpdateDetails$","mergeFinished$","_stepTypes","option","versionName","_finishParamSelectionStepSubmit$$","changeStep","forward","currentStepIdx","newStepIdx","newStep","submitParamSelectionForm","showDiff","conflict","GetProjVersionMergeDetails","ProjVersionMergeSource","ProjVersionMergeTarget","ProjVersionMergeSourceEntry","ProjectVersionMergeEnum","ProjVersionMergeDetailEntityType","teamMemberCostValue","tariffRate","tariffAssignment","taskAssignment","recurringExpenseRule","ProjVersionMergeDetailEntityTypes","ProjVersionMergeDetailTypes","ProjVersionMergeKpiKind","profitability","ProjVersionMergeKpiKinds","combine","ProjectVersionMergeOptions","ProjectVersionMergeTypes","column_r1","column_r2","row_r3","ProjectVersionMergeDetailsKpiComponent_table_2_tr_6_td_1_Template","displayedColumns","trackColumn","ProjectVersionMergeDetailsKpiComponent_table_2_th_3_Template","ProjectVersionMergeDetailsKpiComponent_table_2_th_4_Template","ProjectVersionMergeDetailsKpiComponent_table_2_tr_6_Template","ProjectVersionMergeDetailsKpiComponent_table_2_tr_7_Template","trackRow","mergeModalService","ProjectVersionMergeDetailsKpiComponent","percentPointPipe","projectVersionsMergeModalKey","visible","fillForm","isCombine","kpi","estimateEntries","kindName","after","getEntryField","before","fieldNameDiff","getPercentValue","Infinity","NaN","ProjectVersionMergeDetailsKpiComponent_Template","ProjectVersionMergeDetailsKpiComponent_ng_template_0_Template","ProjectVersionMergeDetailsKpiComponent_table_2_Template","mergeConflicts_r5","ProjectVersionMergeDetailsUpdatesComponent","detailTypes","detailEntityTypes","mergeDetailsDto","reorder","sortedEntries","fnCompareForSort","fieldA","fieldB","ProjectVersionMergeDetailsUpdatesComponent_Template","ProjectVersionsMergeDetailsComponent","onNavChange","changeEvent","nextId","ProjectVersionsMergeDetailsComponent_Template","ProjectVersionsMergeDetailsComponent_Template_ul_navChange_3_listener","ProjectVersionsMergeDetailsComponent_li_4_Template","ProjectVersionsMergeDetailsComponent_wp_project_version_merge_details_updates_6_Template","ProjectVersionsMergeDetailsComponent_wp_project_version_merge_details_kpi_7_Template","ProjectVersionsMergeModalComponent_button_11_Template_button_click_0_listener","downloadReport","ProjectVersionsMergeModalComponent_button_17_Template_button_click_0_listener","ProjectVersionsMergeModalComponent_ng_template_18_Template_button_click_0_listener","ProjectVersionsMergeModalComponent_ng_template_18_Template_button_click_5_listener","ProjectVersionsMergeModalComponent","onMergeFinished","timestamp","isCombineToVersion","ProjectVersionsMergeModalComponent_Template","ProjectVersionsMergeModalComponent_Template_button_click_5_listener","ProjectVersionsMergeModalComponent_wp_project_versions_merge_param_selection_8_Template","ProjectVersionsMergeModalComponent_wp_project_versions_merge_details_9_Template","ProjectVersionsMergeModalComponent_button_11_Template","ProjectVersionsMergeModalComponent_button_17_Template","ProjectVersionsMergeModalComponent_ng_template_18_Template","ProjectVersionsMergeModalComponent_Template_button_click_20_listener","furtherSteps_r6","ProjectVersionsMergeParamSelectionComponent","ProjectVersionsMergeModalModule","NgSwitch","NgSwitchCase","NgForm","mergeOption_r1","formGroup_r2","isDefaultMergeOption","idx_r3","sourceControlValues","versionNameValidators","mergeType_r5","ProjectVersionsMergeParamSelectionComponent_div_2_div_3_Template","ProjectVersionsMergeParamSelectionComponent_div_2_div_5_Template","ProjectVersionsMergeParamSelectionComponent_div_2_div_9_Template","ProjectVersionsMergeParamSelectionComponent_div_2_div_10_Template","ProjectVersionsMergeParamSelectionComponent_div_2_div_12_Template","mergeOptions","sourceFormArray","isCombineMergeOption","mergeTypes","mergeTypeStates","fnFilterVersions","optionChanged$","getFormValue","sourceItemCount","getSourceControlOptions","targetCtrl","versionNameCtrl","idx","updateSourceControlValues","sourceEntries","ProjectVersionsMergeParamSelectionComponent_Template","ProjectVersionsMergeParamSelectionComponent_div_2_Template","PROJECT_VERSION_LIST","ProjectVersionCardSharedModule","resolveProjectId","resolveProjectIdForVersionForm","_projectVersionUpdating","fnGetVersion","fnGetVersionCount","versionCount","openCreateVersionModal","SourceProjectVersionReadonlyCellComponent","projectLabel","SourceProjectVersionReadonlyCellComponent_Template","ChangingBillingTypeModalComponent","ChangingProgramModalComponent","isWarningShown","ChangingBillingTypeModalComponent_Template","ChangingBillingTypeModalComponent_Template_button_click_5_listener","ChangingBillingTypeModalComponent_Conditional_19_Template","ChangingBillingTypeModalComponent_Template_button_click_21_listener","ChangingBillingTypeModalComponent_Template_button_click_24_listener","change","includeProject","ChangingProgramModalComponent_Template","ChangingProgramModalComponent_Template_button_click_5_listener","ChangingProgramModalComponent_Conditional_11_Template","ChangingProgramModalComponent_Conditional_12_Template","ChangingProgramModalComponent_Template_button_click_20_listener","ChangingProgramModalComponent_Template_button_click_23_listener","PROJECT_BILLING_MODES","DurationMode","mainForm","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_13_Template_button_click_0_listener","changeProperty","type_r4","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_15_For_2_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_71_Conditional_5_Template_button_click_0_listener","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_71_Conditional_5_Template","canEditProgram","msgKeyIsAutoPlanningChanged","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_13_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_15_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_16_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_23_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_71_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_72_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_94_Template","ProjectSettingsComponent_Conditional_2_ng_template_13_Conditional_95_Template","changingBillingTypeAllowed","hasLinkedInvoices","durationModes","ProjectSettingsComponent_Conditional_2_ng_template_18_Conditional_22_Conditional_11_Template","billingModes","isBillingPlanningSettingsAllowed","ProjectSettingsComponent_Conditional_2_ng_template_18_Conditional_9_Template","ProjectSettingsComponent_Conditional_2_ng_template_18_Conditional_10_Template","ProjectSettingsComponent_Conditional_2_ng_template_18_Conditional_22_Template","isBillingPlanningAllowed","advancedForm","ProjectSettingsComponent_Conditional_2_Conditional_21_Template_button_click_0_listener","ProjectSettingsComponent_Conditional_2_Conditional_2_Template","ProjectSettingsComponent_Conditional_2_Conditional_3_Template","ProjectSettingsComponent_Conditional_2_Template_button_click_4_listener","ProjectSettingsComponent_Conditional_2_ng_template_13_Template","ProjectSettingsComponent_Conditional_2_ng_template_18_Template","ProjectSettingsComponent_Conditional_2_Conditional_21_Template","ProjectSettingsComponent_Conditional_2_Template_button_click_23_listener","touched","nav_r7","mainFormRawValue","advancedFormRawValue","billingMode","billingSettingsFormRawValue","billingEstimationSettingsForm","_taskTypes","_billingModes","_msgKeyIsAutoPlanningChanged","main","advanced","deferment","collectionDeferment","accumulationPeriod","_originalIsAutoPlanning","_msgKeyTmplIsAutoPlanningChanged","initDefaultProject","isAutoPlanningChanged","legalEntities","ProjectSettingsComponent_Template","ProjectSettingsComponent_Conditional_2_Template","ResourceRequests","ResourceRequestCardMainComponent_div_2_Template_ul_activeIdChange_1_listener","ResourceRequestCardMainComponent_div_2_div_7_Template","ResourceRequestCardMainComponent_div_2_div_12_Template","ResourceRequestCardMainComponent_div_2_tmt_entity_workflow_tasks_17_Template","ResourceRequestCardMainComponent_div_2_tmt_state_history_22_Template","ResourceRequestCardMainComponent","ResourceRequestCardMainComponent_Template","ResourceRequestCardMainComponent_div_0_Template","ResourceRequestCardMainComponent_div_2_Template","ResourceRequestCardComponent_Conditional_6_Template_div_click_8_listener","ResourceRequestCardComponent_Conditional_6_Template_div_click_14_listener","openOwnerInfo","ResourceRequestCardComponent_ng_container_8_ul_1_li_1_Template","ResourceRequestCardComponent_ng_container_8_ul_1_Template","ResourceRequestCardComponent","fullscreen","modalDialogClass","isEntityProtected","ResourceRequestCardComponent_Template","ResourceRequestCardComponent_Conditional_6_Template","ResourceRequestCardComponent_ng_container_8_Template","RequestFilterComponent","RequestFilterComponent_Template","RequestFilterComponent_Conditional_24_Template","RequestFilterComponent_Conditional_25_Template","createdById","ResourceRequestListComponent","ResourceRequestListComponent_Template","RESOURCE_REQUEST_LIST","ResourceRequestModule","ResourceRequestFormAdvancedComponent","ResourceRequestCalendarComponent_Conditional_1_Conditional_2_Template","ResourceRequestCalendarComponent_Conditional_15_For_2_Conditional_2_Conditional_7_Template_button_click_0_listener","resetData","ResourceRequestCalendarComponent_Conditional_15_For_2_Conditional_2_Conditional_6_Template","ResourceRequestCalendarComponent_Conditional_15_For_2_Conditional_2_Conditional_7_Template","isDeviation","requestWithResourcePlan","ResourceRequestCalendarComponent_Conditional_15_For_2_Conditional_1_Template","ResourceRequestCalendarComponent_Conditional_15_For_2_Conditional_2_Template","ResourceRequestCalendarComponent_Conditional_15_For_2_Template","isValidValue","ɵ$index_116_r7","row_r9","entry_r6","ɵ$index_113_r10","ResourceRequestCalendarComponent_Conditional_30_For_2_For_2_Template","tmp_15_0","ResourceRequestCalendarComponent_Conditional_30_For_2_Template","pendingBooking","isBookingHidden","bookingFreezeTableOptions","ResourceRequestCalendarComponent","pendingRequest","defaultFreezeTableOptions","initFreezeTableOptions","initBookingSubscribers","isBookingEntryViewAllowed","asyncActionBeforeChange","resetEntries","requestFormLine","dateHours","addEntryToRequest","toggleFormEnable","calcTotals","initFormLinesSubscriber","calcRequestDatesAndHours","fromIndex","findLastIndex","previousValue","formLinesSubscription","checkIfHasDeviation","assistantResultLine","slotEntry","resultFormLine","getResultTotal","setBookingDataToCalendar","resetResourceIds","setBookingEntries","initResourceIds","freezeTableOptions","initControlSubscribers","requestResource","requestTemplate","pendingFrame","updatedRequest","ResourceRequestCalendarComponent_Template","ResourceRequestCalendarComponent_Conditional_1_Template","ResourceRequestCalendarComponent_Conditional_15_Template","ResourceRequestCalendarComponent_For_23_Template","ResourceRequestCalendarComponent_For_26_Template","ResourceRequestCalendarComponent_Conditional_30_Template","ResourceRequestCalendarComponent_div_32_Template","blockUIService","shiftByScale","listenEvents","resourcePlanEntries","differenceWith","intersectionWith","resetRequirementEntries","catch","withReload","getLoadingInterval","promises","getRequirementEntriesRequest","getResourcePlanEntries","rebuildAllEntries","updateRequirementEntries","resultTotal","isBottomMode","_this4","_this5","formRequirements","pr","ResourceRequestFormAdvancedComponent_Template","users","ResourceRequestFormMainComponent","form$","opened","completed","cascadeListener","setChangeDetectionFix","buildUserItem","initCascade","initFormSubscribers","toggleResourceFields","loadResourceRequestTemplate","fieldToDisable","self","origFunc","ResourceRequestFormMainComponent_Query","ResourceRequestFormMainComponent_ng_container_3_Template","ResourceRequestFormMainComponent_div_4_Template","ResourceRequestFormMainComponent_div_5_Template","ResourceRequestFormMainComponent_p_65_Template","ResourceRequestFormMainComponent_p_70_Template","ResourceRequestFormMainComponent_p_75_Template","ResourceRequestFormMainComponent_ng_template_83_Template","noTextData_r2","ResourceRequestModalComponent_form_2_Template_button_click_5_listener","ResourceRequestModalComponent_form_2_Template_tmt_resource_request_form_main_form__7_listener","onForm","ResourceRequestModalComponent_form_2_Template_button_click_11_listener","ResourceRequestModalComponent_form_2_Template_button_click_14_listener","isBookingUpdate","formMain","ResourceRequestModalComponent_Template","ResourceRequestModalComponent_form_2_Template","PreferredResourcesToolbarComponent_Conditional_0_Template_button_click_1_listener","PreferredResourcesToolbarComponent","PreferredResourcesToolbarComponent_Template","PreferredResourcesToolbarComponent_Conditional_0_Template","PreferredResourcesComponent","usersIds","PreferredResourcesComponent_Template","LoadingIndicatorComponent","eventSubject","requestSubject","oDataLoadParams","transformToSave","setLoading","ResourceSummaryDataService","entryTypes","_entryTypes","summaryRepresentationService","loadResourceSummaryEntries","loadResourceSummaryPage","mySubordinates","isMySubordinates","teamOfMyProjects","isMyProjects","includeSubDepartments","includeNonActiveResources","inactiveResources","includeNonActiveProjects","inactiveProjects","resourcesIds","isTimeOffValue","getResourceSummaryEntries","projectIdWithTimeOff","ResourceSummaryRepresentationService","ResourceSummaryViewSettings","ResourceSummaryService","selectedKpiTypesWithoutSchedule","Scheduled","isActualKpiTypeSelected","_settingsCopy","oldSettings","newSettings","shouldReload","ResourceSummaryViewSettingsService","ResourceSummaryFilterService","ResourceSummaryComponent_button_17_Template_button_click_0_listener","ResourceSummaryComponent","_isTypeRequired","ResourceSummary","ResourceSummaryComponent_Template","ResourceSummaryComponent_Template_wp_form_header_reloaded_0_listener","ResourceSummaryComponent_button_17_Template","ResourceSummaryComponent_For_29_Template","ResourceSummaryComponent_tbody_30_Template","ResourceSummaryComponent_For_38_Template","ResourceSummaryComponent_For_42_Template","ResourceSummaryComponent_For_45_Template","ResourceSummaryComponent_For_50_Template","ResourceSummaryComponent_For_52_Template","ResourceSummaryComponent_tbody_53_Template","ResourceSummaryLeftGroupComponent","ResourceSummaryRightGroupComponent","ResourceSummaryToolbarComponent","ResourceSummaryViewSettingsComponent","ResourceSummaryFilterModule","ResourceSummaryRepresentationSettingsComponent","ResourceSummaryTotalPipe","ResourceSummaryEntryPipe","ResourceSummaryFilterSettings","HierarchicalBoxComponent","ResourceSummaryFilterModalComponent","hierarchicalComponent","ResourceSummaryFilterModalComponent_Query","ResourceSummaryFilterModalComponent_Template_button_click_5_listener","ResourceSummaryFilterModalComponent_Template_button_click_74_listener","ResourceSummaryFilterModalComponent_Template_button_click_78_listener","ResourceSummaryFilterModalComponent_Template_button_click_81_listener","ResourceSummaryFilterComponent","ResourceSummaryFilterComponent_Template","ResourceSummaryFilterComponent_Template_span_click_4_listener","ResourceSummaryFilterComponent_Template_button_click_6_listener","ResourceSummaryFilterComponent_span_8_Template","ResourceSummaryLeftGroupComponent_For_1_ng_container_1_Template_span_click_3_listener","ResourceSummaryLeftGroupComponent_For_1_ng_container_1_Template_div_click_8_listener","resourceContainer_r3","openResourceInfo","ResourceSummaryLeftGroupComponent_For_1_ng_container_1_Template","ResourceSummaryLeftGroupComponent_ng_container_2_For_2_For_2_td_1_Template_div_click_1_listener","projectContainer_r7","project_r8","ResourceSummaryLeftGroupComponent_ng_container_2_For_2_For_2_td_1_Template","ɵ$index_35_r10","ResourceSummaryLeftGroupComponent_ng_container_2_For_2_For_2_Template","ResourceSummaryLeftGroupComponent_ng_container_2_For_2_Template","ResourceSummaryLeftGroupComponent_ng_container_2_tr_3_Template","ResourceSummaryLeftGroupComponent_ng_container_2_tr_4_Template","hasTimeOff","isProjectLinesEmpty","_selectedKpiTypesWithoutSchedule","_isActualKpiTypeSelected","isEmptyLines","isOnlyTimeOffAndActualTypeNotSelected","ResourceSummaryLeftGroupComponent_Template","ResourceSummaryLeftGroupComponent_For_1_Template","ResourceSummaryLeftGroupComponent_ng_container_2_Template","ResourceSummaryRepresentationSettings","RepresentationType","formControls","orderedRepresentationTypes","ResourceSummaryRepresentationSettingsComponent_Template","ResourceSummaryRepresentationSettingsComponent_For_6_Template","getSummaryTotalIndicatorStyle","ResourceSummaryRightGroupComponent_For_1_For_2_Template","ResourceSummaryRightGroupComponent_ng_container_2_For_2_For_2_For_6_For_2_Template","isWeekend","getSummaryEntriesByProjectId","project_r7","ResourceSummaryRightGroupComponent_ng_container_2_For_2_For_2_For_6_Template","ResourceSummaryRightGroupComponent_ng_container_2_For_2_For_2_Template","entry_r8","ResourceSummaryRightGroupComponent_ng_container_2_tr_3_For_6_For_2_Template","ResourceSummaryRightGroupComponent_ng_container_2_tr_3_For_6_Template","ResourceSummaryRightGroupComponent_ng_container_2_For_2_Template","ResourceSummaryRightGroupComponent_ng_container_2_tr_3_Template","ResourceSummaryRightGroupComponent_ng_container_2_tr_4_Template","timeColors","common","trackByEntry","_nonWorkingDays","projectEntry","projectEntryData","isNonWorking","resourceEntries","allResources","currentResourceEntries","resourceEntry","scheduleEntry","ResourceSummaryRightGroupComponent_Template","ResourceSummaryRightGroupComponent_For_1_Template","ResourceSummaryRightGroupComponent_ng_container_2_Template","ResourceSummaryToolbarComponent_Template","ResourceSummaryResourceViewSettings","Booked","ResourceSummaryViewSettingsComponent_Template","ResourceSummaryViewSettingsComponent_For_6_Template","ResourceListComponent","ResourceListComponent_Template","NavigationType","ResourceNavigation","navigationType","Resource","ResourcesFilterModule","Category","routerConfigFn","guidParamDefinition","encode","decode","str","is","viewNameParamDefinition","guidOrMyParamDefinition","trace","TRANSITION","SelectingOfSubstituteModalComponent_Conditional_12_Template_button_click_0_listener","SelectingOfSubstituteModalComponent_Template","SelectingOfSubstituteModalComponent_Template_button_click_8_listener","SelectingOfSubstituteModalComponent_Conditional_12_Template","SelectingOfSubstituteModalComponent_Template_button_click_13_listener","AccountDocumentLinkComponent_div_0_Template_button_click_2_listener","AccountDocumentLinkComponent","hasLicense","AccountDocumentLinkComponent_Template","AccountDocumentLinkComponent_div_0_Template","UntypedFormGroup","AccountDocumentStatus","EAEUCountries","AccountDocumentsComponent","doc","Issued","countryCode","documents","getDocumentFormGroup","AccountDocumentsComponent_Template","BuySubscriptionModalComponent","TenantBillingType","TenantState","tenant","trialExpiryDate","currentBalance","product_r2","AccountComponent_div_4_div_34_button_1_Template_button_click_0_listener","buy","AccountComponent_div_4_div_34_button_2_Template_button_click_0_listener","selectProducts","AccountComponent_div_4_div_34_button_1_Template","AccountComponent_div_4_div_34_button_2_Template","allowBillingManage","trial","AccountComponent_div_4_div_35_div_1_ng_template_7_Template","AccountComponent_div_4_div_35_div_1_Template","AccountComponent_div_4_tr_9_Template","AccountComponent_div_4_tr_10_Template","AccountComponent_div_4_tr_11_Template","AccountComponent_div_4_tr_12_Template","AccountComponent_div_4_tr_13_Template","AccountComponent_div_4_tr_32_Template","AccountComponent_div_4_div_33_Template","AccountComponent_div_4_div_34_Template","AccountComponent_div_4_div_35_Template","isOnPrem","license","tenantState","AccountComponent","cardState","cardState$","tenantOverview","AccountComponent_Template","AccountComponent_div_4_Template","BillingInfoComponent","AccountModule","billingContact","identificationNumber","bankIdentificationCode","bankAccount","useEDM","BillingInfoComponent_div_0_div_16_Template","BillingInfoComponent_div_0_div_37_Template","BillingInfoComponent_div_0_Template_button_click_39_listener","editBillingInfo","country","BillingInfoComponent_Template","BillingInfoComponent_div_0_Template","LicenseOrderCalculation","BuySubscriptionModalComponent_form_2_ng_container_8_Template_button_click_5_listener","BuySubscriptionModalComponent_form_2_ng_container_9_Template_div_ngModelChange_1_listener","modeType","newLicense","upgradeLicense","licensePeriods","discount","formProducts","product_r5","minLimits","calculation$","getAmountToPay","calculating$","getOrderEffectivePeriod","bonus","BuySubscriptionModalComponent_form_2_div_10_div_3_Template","BuySubscriptionModalComponent_form_2_div_10_div_4_Template","BuySubscriptionModalComponent_form_2_div_10_tr_16_Template","BuySubscriptionModalComponent_form_2_div_10_p_17_Template","BuySubscriptionModalComponent_form_2_div_10_div_21_Template","BuySubscriptionModalComponent_form_2_div_10_p_23_Template","BuySubscriptionModalComponent_form_2_div_10_div_25_Template","BuySubscriptionModalComponent_form_2_div_11_Template_button_click_10_listener","BuySubscriptionModalComponent_form_2_button_14_Template_button_click_0_listener","BuySubscriptionModalComponent_form_2_button_16_Template_button_click_0_listener","BuySubscriptionModalComponent_form_2_button_17_Template_button_click_0_listener","BuySubscriptionModalComponent_form_2_Template_button_click_5_listener","BuySubscriptionModalComponent_form_2_ng_container_8_Template","BuySubscriptionModalComponent_form_2_ng_container_9_Template","BuySubscriptionModalComponent_form_2_div_10_Template","BuySubscriptionModalComponent_form_2_div_11_Template","BuySubscriptionModalComponent_form_2_div_12_Template","BuySubscriptionModalComponent_form_2_button_14_Template","BuySubscriptionModalComponent_form_2_button_16_Template","BuySubscriptionModalComponent_form_2_button_17_Template","licenseToUpgrade","activeInvoiceExists","_mode","setMinCount","calculate","ModeType","discountHalfYear","discountYear","upgradeDate","expiryOfLicensingPeriod","toLocaleString","productCfg","hasActiveInvoice","cfg","selectedDate","maxDate","monthsCount","calcSubscription","calc","DATE_FULL","BuySubscriptionModalComponent_Template","BuySubscriptionModalComponent_form_2_Template","ActivityCardComponent","ActivityListComponent","ActivityCreationComponent","ActivityList","ActivitiesModule","ActivityCardComponent_div_23_Template_button_click_1_listener","activityForm","activity","ActivityCardComponent_Template","ActivityCardComponent_div_23_Template","ActivityCreationComponent_Template","ActivityCreationComponent_Template_button_click_5_listener","ActivityCreationComponent_Template_button_click_14_listener","ActivityCreationComponent_Template_button_click_17_listener","ActivityListComponent_Template","BillCodesListComponent","BillCodeCardComponent","BillCodeCreationComponent","BILL_CODE_LIST","BillCodesModule","BillCodeCardService","BillCodeCardComponent_Conditional_35_Template_button_click_1_listener","billCodeCardService","setAsDefault","BillCodeCardComponent_Template","BillCodeCardComponent_Conditional_5_Template","BillCodeCardComponent_Conditional_35_Template","costAdjustment","updateName","billCode","BillCodeCreationComponent_Template","BillCodeCreationComponent_Template_button_click_5_listener","BillCodeCreationComponent_Template_button_click_20_listener","BillCodeCreationComponent_Template_button_click_23_listener","BillCodesListComponent_Template","getCodedEntityDataColumns","getCodedEntityGridColumns","IS_ACTIVE_COLUMN_WIDTH","FilterConditionsBuilderComponent","BOARDS_LIST","BoardCardComponent","BoardCreationComponent","BoardsListComponent","BoardCardMainComponent","BoardCardFilterComponent","BoardCardFilterComponent_Conditional_1_Conditional_2_Template_button_click_1_listener","boardCardService","saveFilter","BoardCardFilterComponent_Conditional_1_Template_tmt_filter_conditions_builder_filtersChange_1_listener","BoardCardFilterComponent_Conditional_1_Conditional_2_Template","BoardCardService","BoardCardFilterComponent_Template","BoardCardFilterComponent_Conditional_1_Template","BoardCardMainComponent_Conditional_1_Conditional_27_Template_button_click_1_listener","saveMain","BoardCardMainComponent_Conditional_1_Conditional_27_Template","BoardCardMainComponent_Template","BoardCardMainComponent_Conditional_1_Template","BoardCardComponent_Conditional_2_For_3_Template","BoardCardComponent_Template","BoardCardComponent_Conditional_2_Template","_name","_board","boardTeamMemberCollection","getMemberId","afterTabLoaded","getSavingArrays","foundTeamMember","buildTeamMember","teamItem","itemId","entityTypes","usedInBoards","BoardCreationComponent_Template","BoardCreationComponent_Template_button_click_5_listener","BoardCreationComponent_Template_button_click_21_listener","BoardCreationComponent_Template_button_click_25_listener","BoardsListComponent_Template","CompetenceCardComponent_Conditional_38_Template_button_click_1_listener","CompetenceCardComponent","competenceForm","CompetenceCardComponent_Template","CompetenceCardComponent_Conditional_38_Template","CompetenceCreationComponent","CompetencesListComponent","CompetencesList","CompetencesModule","CompetenceCreationComponent_Template","CompetenceCreationComponent_Template_button_click_5_listener","CompetenceCreationComponent_Template_button_click_21_listener","CompetenceCreationComponent_Template_button_click_25_listener","CompetencesListComponent_Template","CostNormalizationMethod","NormalizationRuleTimeOffToolbarComponent","CostNormalizationRuleCardComponent_Conditional_29_Template_button_click_1_listener","CostNormalizationRuleCardComponent","method","excludedTimeOffTypes","methods","CostNormalizationRuleCardComponent_Template","CostNormalizationRuleCardComponent_Conditional_17_Template","CostNormalizationRuleCardComponent_Conditional_29_Template","NormalizationRuleTimeOffToolbarComponent_Conditional_0_For_12_Template_button_click_0_listener","timeOffType_r4","selectTimeOffType","NormalizationRuleTimeOffToolbarComponent_Conditional_0_Template_div_openChange_1_listener","openChange","NormalizationRuleTimeOffToolbarComponent_Conditional_0_For_12_Template","timeOffTypes","selectedTimeOffTypes","selectedTimeOffType","NormalizationRuleTimeOffToolbarComponent_Template","NormalizationRuleTimeOffToolbarComponent_Conditional_0_Template","CostNormalizationRuleCreationComponent","CostNormalizationRuleListComponent","CostNormalizationRuleList","CostNormalizationRuleModule","CostNormalizationRuleCreationComponent_Template","CostNormalizationRuleCreationComponent_Template_button_click_5_listener","CostNormalizationRuleCreationComponent_Template_button_click_14_listener","CostNormalizationRuleCreationComponent_Template_button_click_17_listener","CostNormalizationRuleListComponent_Template","CurrencyService","CurrencyCardComponent_div_6_li_2_Template","CurrencyCardComponent","CurrencyCardComponent_Template","CurrencyCardComponent_div_6_Template","CurrencyExchangeRateSettingComponent","exchangeRatesCollection","editCurrencyExchangeRate","addCurrencyExchangeRate","getActionBtnName","CurrencyExchangeRateSettingComponent_Template","CurrencyExchangeRateSettingComponent_Template_button_click_5_listener","CurrencyExchangeRateSettingComponent_Template_button_click_18_listener","CurrencyExchangeRateSettingComponent_Template_button_click_21_listener","CURRENCY_EXCHANGE_RATES_LIST","CurrencyExchangeRatesComponent_div_2_Template_button_click_2_listener","editExchangeRate","CurrencyExchangeRatesComponent_div_2_Template_button_click_8_listener","CurrencyExchangeRatesComponent_div_2_Template_button_click_14_listener","deleteExchangeRate","CurrencyExchangeRatesComponent","addContextFilter","addRowCommands","CurrencyExchangeRatesComponent_Template","CurrencyExchangeRatesComponent_div_2_Template","CurrencyMainComponent_form_3_div_24_Template_button_click_1_listener","CurrencyMainComponent_form_3_div_24_Template","CurrencyMainComponent","CurrencyMainComponent_Template","CurrencyMainComponent_form_3_Template","nameSubject","CurrencyCreationComponent","CurrencyCreationComponent_Template","CurrencyCreationComponent_Template_button_click_5_listener","CurrencyCreationComponent_Template_button_click_25_listener","CurrencyCreationComponent_Template_button_click_28_listener","CurrencyListComponent","CURRENCY_LIST","CurrenciesModule","CurrencyListComponent_Template","CustomFieldCardService","availableFormColumns","CustomFieldCardComponent_div_83_Template_button_click_1_listener","CustomFieldCardComponent","getLanguageName","formColumn","orderNumber","defaultValue","isShownInEntityListFilters","isShownInEntityForms","isShownInReports","isOnlyForApi","fc","CustomFieldCardComponent_Template","CustomFieldCardComponent_Conditional_82_Template","CustomFieldCardComponent_div_83_Template","dataField","isRequiredFieldVisible","metaEntityStringPropertyTypes","FieldConfigurationComponent_Conditional_6_Conditional_0_Template","FieldConfigurationComponent_Conditional_6_Conditional_1_Template","FieldConfigurationComponent_Conditional_6_Conditional_2_Template","FieldConfigurationComponent_Conditional_6_Conditional_3_Template","isStringType","customFieldType","formColumns","FieldConfigurationComponent","fieldEntityType","FieldConfigurationComponent_Template","FieldConfigurationComponent_Conditional_6_Template","FieldConfigurationComponent_Conditional_7_Template","FieldConfigurationComponent_Conditional_9_Template","FieldConfigurationComponent_Conditional_16_Template","FieldLocalizationComponent_button_4_Template_button_click_0_listener","FieldLocalizationComponent","FieldLocalizationComponent_Template","FieldLocalizationComponent_button_4_Template","CustomFieldCreationComponent","availableCustomFieldsTypes","customizable","CustomFieldCreationComponent_Template","CustomFieldCreationComponent_Template_button_click_5_listener","CustomFieldCreationComponent_Conditional_25_Template","CustomFieldCreationComponent_Template_button_click_27_listener","CustomFieldCreationComponent_Template_button_click_30_listener","CustomFieldListComponent","CustomFieldList","NamingLocalizationModule","CustomFieldsModule","loadedSubscription","pageLoaded$","CustomFieldListComponent_Template","DepartmentCardComponent_Conditional_38_Template_button_click_1_listener","DepartmentCardComponent","departmentForm","leadDepartment","DepartmentCardComponent_Template","DepartmentCardComponent_Conditional_38_Template","DepartmentCreationComponent","DepartmentCreationComponent_Template","DepartmentCreationComponent_Template_button_click_5_listener","DepartmentCreationComponent_Template_button_click_14_listener","DepartmentCreationComponent_Template_button_click_17_listener","DepartmentListComponent","DepartmentList","DepartmentsModule","DepartmentListComponent_Template","DIRECTORY_ENTRIES_LIST","DirectoryCardService","DirectoryEntriesToolbarComponent","directoryCardService","isGridLoading$","totals$","DirectoryCardComponent","openDirectoryPropertiesModal","prepareGridOptions","loadDirectory","endOfPageReached$","loadDirectoryEntriesPage","openDirectoryEntryModal","deleteDirectoryEntry","DirectoryCardComponent_Template","DirectoryCardComponent_Conditional_6_Template","DirectoryEntryModalComponent","DirectoryPropertiesModalComponent","_loadedAll","saveTabSubject","saveTab$","totalsSubject","directoriesCollection","directoryEntriesCollection","saveTab","getDirectories","patchDirectory","patchDirectoryEntry","currentTotals","directoryEntryResponse","getDirectoryEntryFormGroup","existingEntry","directoryEntry","foundFormGroup","formStructure","entryValue","directoryEntitiesCollection","editDirectoryEntry","addDirectoryEntry","DirectoryEntryModalComponent_Template","DirectoryEntryModalComponent_Template_button_click_5_listener","DirectoryEntryModalComponent_Template_button_click_32_listener","DirectoryEntryModalComponent_Template_button_click_35_listener","DirectoryEntriesToolbarComponent_Conditional_1_Template_button_click_1_listener","DirectoryEntriesToolbarComponent_Conditional_1_Template_button_click_6_listener","DirectoryEntriesToolbarComponent_Conditional_1_Template_button_click_11_listener","DirectoryEntriesToolbarComponent_Template","DirectoryEntriesToolbarComponent_Conditional_1_Template","DirectoryPropertiesModalComponent_Template","DirectoryPropertiesModalComponent_Template_button_click_5_listener","DirectoryPropertiesModalComponent_Conditional_32_Template","DirectoryPropertiesModalComponent_Template_button_click_34_listener","DirectoryPropertiesModalComponent_Template_button_click_37_listener","DirectoriesListComponent","DIRECTORIES_LIST","DirectoriesModule","DirectoriesListComponent_Template","FinancialAccountCardComponent","includeInBalanceShown","systemFields","revenueId","includedInBalanceHidden","FinancialAccountCardComponent_Template","FinancialAccountCardComponent_Conditional_24_Template","FinancialAccountCardComponent_Conditional_31_Template","FinancialAccountCardComponent_Template_button_click_33_listener","FormGroup","FinancialAccountCreationComponent","FinancialAccountCreationComponent_Template","FinancialAccountCreationComponent_Template_button_click_5_listener","FinancialAccountCreationComponent_Template_button_click_20_listener","FinancialAccountCreationComponent_Template_button_click_23_listener","FINANCIAL_ACCOUNT_LIST","FinancialAccountListComponent","FinancialAccountModule","FinancialAccountListComponent_Template","GradeCardService","GradeCardComponent_Conditional_33_Template_button_click_1_listener","GradeCardComponent","gradeCardService","gradeForm","grade$","GradeCardComponent_Template","GradeCardComponent_Conditional_33_Template","gradeName$","gradeNameSubject","gradeSubject","GradeCreationComponent","GradeCreationComponent_Template","GradeCreationComponent_Template_button_click_5_listener","GradeCreationComponent_Template_button_click_26_listener","GradeCreationComponent_Template_button_click_29_listener","GRADE_LIST","GradeListComponent","GradesModule","GradeListComponent_Template","GroupCardService","uiGlobals","GroupCardComponent_ul_6_li_1_Template","GroupCardComponent","GroupCardComponent_Template","GroupCardComponent_ul_6_Template","groupName$","groupNameSubject","loadCard","role_r1","i_r2","GroupPermissionsComponent_button_15_Template_button_click_0_listener","GroupPermissionsComponent","accessForm","loadedGroupSet","groupSet","groupPermissionSets","sets","GroupPermissionsComponent_Template","GroupPermissionsComponent_tr_13_Template","GroupPermissionsComponent_button_15_Template","GroupPropertiesComponent_div_23_Template_button_click_1_listener","GroupPropertiesComponent","groupForm","GroupPropertiesComponent_Template","GroupPropertiesComponent_div_23_Template","AddUserToGroupModalComponent_tr_40_Template_tr_click_0_listener","user_r4","selectUser","tmp_9_0","AddUserToGroupModalComponent_div_45_Template_div_click_0_listener","user_r9","removeUser","AddUserToGroupModalComponent_div_45_Template_button_click_5_listener","AddUserToGroupModalComponent_button_48_Template_button_click_0_listener","AddUserToGroupModalComponent","alreadyAddedIds","availableUsers","selectedUsers","loadUsers","u","defaultFilter","AddUserToGroupModalComponent_Query","AddUserToGroupModalComponent_Template_button_click_5_listener","AddUserToGroupModalComponent_Template_table_resized_26_listener","AddUserToGroupModalComponent_tr_40_Template","AddUserToGroupModalComponent_tr_41_Template","AddUserToGroupModalComponent_tr_42_Template","AddUserToGroupModalComponent_div_45_Template","AddUserToGroupModalComponent_div_46_Template","AddUserToGroupModalComponent_button_48_Template","AddUserToGroupModalComponent_Template_button_click_49_listener","UserFilterService","USER_LIST","GroupUsersComponent","massOperation","selectedRows","GroupUsersComponent_Template","GroupCreationComponent","GroupCreationComponent_Template","GroupCreationComponent_Template_button_click_5_listener","GroupCreationComponent_Template_button_click_14_listener","GroupCreationComponent_Template_button_click_17_listener","GroupListComponent","GROUP_LIST","GroupsModule","GroupListComponent_Template","change_r1","oldValue","attribute_r2","HistoryLogCardComponent_form_4_tr_53_Template","HistoryLogCardComponent_form_4_tr_54_Template","HistoryLogCardComponent_form_4_tr_70_Template","HistoryLogCardComponent_form_4_tr_71_Template","logEntry","attributes","HistoryLogCardComponent","HistoryLogCardComponent_Template","HistoryLogCardComponent_form_4_Template","HistoryLogListComponent","HISTORY_LOG","HistoryLogFilterComponent","HistoryLogModule","HistoryLogFilterComponent_Template","EventLogFilterService","HistoryLogListComponent_Template","ImportState","ImportStates","ImportEntityList","ImportFilterService","ImportCardComponent","labelClass","importEntity","class","loadImportLogs","observableTimer","importId","importing","subscribeToStateUpdating","observableImport","importObj","imported","ImportCardComponent_Template","ImportCardComponent_Template_wp_form_header_reloaded_0_listener","ImportCardComponent_Template_button_click_15_listener","getDatePeriodParams","ImportCreationComponent_ngx_dropzone_preview_34_Template_ngx_dropzone_preview_removed_0_listener","f_r3","ImportCreationComponent_button_36_Template_button_click_0_listener","ImportCreationComponent","file","FormData","append","onSelect","addedFiles","ImportCreationComponent_Template","ImportCreationComponent_Template_button_click_5_listener","ImportCreationComponent_Template_ngx_dropzone_change_25_listener","ImportCreationComponent_ngx_dropzone_preview_34_Template","ImportCreationComponent_button_36_Template","ImportCreationComponent_Template_button_click_37_listener","ImportListComponent","ImportList","ImportStateCellComponent","ImportsModule","ImportListComponent_Template","ImportStateCellComponent_Template","PageSize","PageOrientation","InvoiceTemplateCardComponent_button_83_Template_button_click_0_listener","removeLogo","InvoiceTemplateCardComponent_div_122_Template_button_click_1_listener","InvoiceTemplateCardComponent","logoSubject","logo$","invoiceTemplateForm","companyName","companyAddress","companyPhone","paymentRequisites","signaturePosts","signatureNames","pageOrientation","vatRateId","pageSizes","pz","pageOrientations","po","hasLogo","loadLogo","A4","Letter","Portrait","Landscape","URL","revokeObjectURL","objectUrl","onFileAdded","logoIsLoading","createObjectURL","bypassSecurityTrustUrl","InvoiceTemplateCardComponent_Template","InvoiceTemplateCardComponent_p_26_Template","InvoiceTemplateCardComponent_Template_ngx_dropzone_change_68_listener","InvoiceTemplateCardComponent_button_83_Template","InvoiceTemplateCardComponent_div_120_Template","InvoiceTemplateCardComponent_div_121_Template","InvoiceTemplateCardComponent_div_122_Template","InvoiceTemplateCreationComponent","InvoiceTemplateCreationComponent_Template","InvoiceTemplateCreationComponent_Template_button_click_5_listener","InvoiceTemplateCreationComponent_Template_button_click_14_listener","InvoiceTemplateCreationComponent_Template_button_click_17_listener","InvoiceTemplateListComponent","InvoiceTemplateList","InvoiceTemplatesModule","InvoiceTemplateListComponent_Template","IssueResolutionCardService","IssueResolutionCardComponent_Conditional_7_Conditional_13_Template_button_click_1_listener","issueResolutionCardService","IssueResolutionCardComponent_Conditional_7_Conditional_13_Template","IssueResolutionCardComponent","issueResolution$","issueResolution","IssueResolutionCardComponent_Template","IssueResolutionCardComponent_Conditional_7_Template","issueResolutionSubject","IssueResolutionCreationComponent","IssueResolutionCreationComponent_Template","IssueResolutionCreationComponent_Template_button_click_5_listener","IssueResolutionCreationComponent_Template_button_click_14_listener","IssueResolutionCreationComponent_Template_button_click_17_listener","ISSUE_RESOLUTION_LIST","IssueResolutionListComponent","IssueResolutionsModule","IssueResolutionListComponent_Template","IssueTypeCardService","IssueTypePermissionsComponent","IssueTypeCardComponent_Conditional_7_Conditional_24_Template_button_click_1_listener","issueTypeCardService","IssueTypeCardComponent_Conditional_7_Conditional_1_Template","IssueTypeCardComponent_Conditional_7_Conditional_24_Template","issueType$","IssueTypeCardComponent","saveMembers$","permissionsComponent","saveMembers","IssueTypeCardComponent_Query","IssueTypeCardComponent_Template","IssueTypeCardComponent_Conditional_7_Template","viewers","editors","issueTypeSubject","saveMembersSubject","IssueTypeMemberType","setFormTeam","getTeamMember","viewer","Viewer","Editor","setItemPermissionId","methodName","issueMemberType","issueTypeId","IssueTypePermissionsComponent_Template","IssueTypePermissionsPerformersComponent","gridHeader","IssueTypePermissionsPerformersComponent_Template","IssueTypeCreationComponent","IssueTypeCreationComponent_Template","IssueTypeCreationComponent_Template_button_click_5_listener","IssueTypeCreationComponent_Template_button_click_20_listener","IssueTypeCreationComponent_Template_button_click_23_listener","IssueTypeListComponent","ISSUE_TYPE_LIST","IssueTypesModule","IssueTypeListComponent_Template","IssueTypeMember","LegalEntityCardComponent_div_46_Template_button_click_1_listener","LegalEntityCardComponent","setSubscriptions","LegalEntityCardComponent_Template","LegalEntityCardComponent_p_8_Template","LegalEntityCardComponent_div_46_Template","LegalEntityCreationComponent","LegalEntityCreationComponent_Template","LegalEntityCreationComponent_Template_button_click_5_listener","LegalEntityCreationComponent_Template_button_click_20_listener","LegalEntityCreationComponent_Template_button_click_23_listener","LEGAL_ENTITY_LIST","LegalEntityListComponent","LegalEntitiesModule","LegalEntityListComponent_Template","LevelCardService","LevelCardComponent_Conditional_34_Template_button_click_1_listener","LevelCardComponent","levelCardService","levelForm","level$","LevelCardComponent_Template","LevelCardComponent_Conditional_9_Template","LevelCardComponent_Conditional_34_Template","levelName$","levelNameSubject","levelSubject","LevelCreationComponent","LevelCreationComponent_Template","LevelCreationComponent_Template_button_click_5_listener","LevelCreationComponent_Template_button_click_20_listener","LevelCreationComponent_Template_button_click_23_listener","LevelListComponent","LEVEL_LIST","LevelsModule","LevelListComponent_Template","KindToolbarComponent","TransitionsCellComponent","MermaidSchemaService","KindSettingsComponent","lifecycleCardService","transitionsService","transitionFormService","mermaidSchemaService","editSelectedConfiguration","deleteSelectedConfiguration","decreaseConfigStateIndex","increaseConfigStateIndex","Command","loadMetaEntity","addState","foundState","lifecycleData","initNewStateFormGroup","prepareSavingData","setConfiguration","stateConfigurations","initAvailableStateOptions","loadConfiguration","kindForm","transitionsRequests","entityKindId","getConfiguration","allTransitions","stateTransitions","transitionGroup","getTransitionGroup","transitionsFormArray","setAllowedTransitionFormProperties","formGroupValue","editKindState","newInitial","deleteStateFromConfig","configIndex","availableStatesOptions","isShowKind$","entityTypeToCollection","updateSchema","currentGroup","updateConfigIndexes","prevIndex","currentIndex","prepareTransitionsDTO","prepareSavingLocalization","LifecycleCardService","TransitionsService","TransitionFormService","KindSettingsComponent_Template","KindSettingsComponent_Conditional_4_Template","stateStyles","TransitionsToolbarComponent","KindStateModalComponent","editTransition","deleteTransition","lifecycleId","addTransition$","addNewTransitionGroup","transitionsData","lifecycleStates","setHeader","KindStateModalComponent_Template","KindStateModalComponent_Template_button_click_5_listener","KindStateModalComponent_Template_button_click_26_listener","KindStateModalComponent_Template_button_click_29_listener","KindToolbarComponent_Conditional_0_For_11_Template_button_click_0_listener","state_r4","KindToolbarComponent_Conditional_0_Conditional_1_Template","KindToolbarComponent_Conditional_0_For_11_Template","KindToolbarComponent_Conditional_0_ForEmpty_12_Template","KindToolbarComponent_Conditional_0_Template_button_click_13_listener","KindToolbarComponent_Conditional_0_Template_button_click_17_listener","KindToolbarComponent_Conditional_0_Template_button_click_21_listener","KindToolbarComponent_Conditional_0_Template_button_click_24_listener","KindToolbarComponent_Template","KindToolbarComponent_Conditional_0_Template","LifecycleToolbarComponent","LifecycleCardComponent","editState","deleteSelectedState","getStateFormGroup","isEntityDisabled","getLifecycle","deleteState","LifecycleCardComponent_Template","LifecycleCardComponent_Conditional_3_Template","StateModalComponent","addingState","lifecycleName","getState","userNameRequests","performers","getUserName","groupNameRequests","getGroupName","permissionSetRequests","getPermissionSetName","transitionForm","requestedProperties","nameControl","createState","getLanguages","getTransitionPropertyDisplayName","lifecycleKindType","labelStrings","LifecycleToolbarComponent_Conditional_0_Template_button_click_2_listener","LifecycleToolbarComponent_Conditional_0_Template_button_click_7_listener","LifecycleToolbarComponent_Conditional_0_Template_button_click_11_listener","LifecycleToolbarComponent_Template","LifecycleToolbarComponent_Conditional_0_Template","StateModalComponent_button_34_Template_button_click_0_listener","style_r2","initState","disablePropsIsSystem","StateModalComponent_Template","StateModalComponent_Template_button_click_5_listener","StateModalComponent_button_34_Template","StateModalComponent_Template_button_click_59_listener","StateModalComponent_Template_button_click_62_listener","TransitionFormComponent","transitionFormFormGroup","addProperty","deleteProperty","allowedTransitionFormProperties$","getRequestedPropertyFormGroup","TransitionFormComponent_Template","TransitionFormComponent_div_7_Template","TransitionFormComponent_Template_button_click_13_listener","TransitionFormComponent_Template_button_click_18_listener","requestComment","allowedProperties","namedEntity","getTransitionPropertyName","nextStateOptions","TransitionModalComponent_ng_template_19_ng_container_6_Template","TransitionModalComponent","nextState","nextStateName","performersString","commentIsRequired","duplicates","prop","exception","transitionFormGroup","setFormValue","performerGroup","performersArray","groupCopy","TransitionModalComponent_Template","TransitionModalComponent_Template_button_click_5_listener","TransitionModalComponent_ng_template_14_Template","TransitionModalComponent_ng_template_19_Template","TransitionModalComponent_Template_button_click_22_listener","TransitionModalComponent_Template_button_click_25_listener","TransitionsToolbarComponent_div_0_Template_button_click_2_listener","TransitionsToolbarComponent_div_0_Template_button_click_7_listener","TransitionsToolbarComponent_div_0_Template_button_click_11_listener","TransitionsToolbarComponent_Template","TransitionsToolbarComponent_div_0_Template","TransitionsCellComponent_Conditional_0_For_2_Template_span_click_1_listener","transition_r4","TransitionsCellComponent_Conditional_0_For_2_Template","performerLine","patchTransitionFormGroup","TransitionsCellComponent_Template","TransitionsCellComponent_Conditional_0_Template","addTransitionSubject","getEmptyTransitionFormGroup","getNextStateName","getPerformerString","getEmptyTransitionFormFormGroup","propertyGroup","propertiesArray","requestedPropertiesArray","requestedPropertyGroup","prepareTransitionsPerformers","transitionData","prepareTransitionsForm","LifecycleListComponent","LIFECYCLE_LIST","LifecyclesModule","CheckboxControlValueAccessor","NgbNavContent","NgbNav","NgbNavItem","NgbNavItemRole","NgbNavLink","NgbNavLinkBase","NgbNavOutlet","IconPickerComponent","PerformersComponent","NamingLocalizationComponent","LifecycleListComponent_Template","LocationCardComponent_div_30_Template_button_click_1_listener","LocationCardComponent","locationForm","LocationCardComponent_Template","LocationCardComponent_p_5_Template","LocationCardComponent_div_30_Template","LocationCreationComponent","LocationCreationComponent_Template","LocationCreationComponent_Template_button_click_5_listener","LocationCreationComponent_Template_button_click_20_listener","LocationCreationComponent_Template_button_click_23_listener","LocationListComponent","LocationListComponent_Template","LocationList","LocationsModule","loginLogEntry","authProvider","LoginLogCardComponent_form_4_Conditional_13_Template","LoginLogCardComponent_form_4_Conditional_14_Template","LoginLogCardComponent_form_4_Conditional_20_Template","LoginLogCardComponent_form_4_Conditional_21_Template","ipAddress","userAgent","isSuccessful","LoginLogCardComponent","toLocal","DATETIME_MED","LoginLogCardComponent_Template","LoginLogCardComponent_form_4_Template","LoginLogEntryFilterService","LoginLogListComponent","LoginLogListComponent_Template","LoginLogList","LoginLogModule","MetamodelHandlerComponent_Conditional_1_Conditional_8_Template_button_click_0_listener","MetamodelHandlerComponent_Conditional_1_Conditional_8_Template","MetamodelHandlerComponent","metamodelCardService","entityCustomHooks","encodeURIComponent","decodeURIComponent","MetamodelCardService","MetamodelHandlerComponent_Template","MetamodelHandlerComponent_Conditional_1_Template","afterNextRender","MetamodelCardComponent_Conditional_2_For_3_Template","MetamodelCardComponent","showHandler","MetamodelCardComponent_Template","MetamodelCardComponent_Conditional_2_Template","hierarchyProperty","getFormattedLocalStrings","usedInHistoryLog","MetamodelPropertiesComponent_Conditional_61_For_23_Template","property_r4","directoryCode","MetamodelPropertiesComponent_Conditional_62_For_23_Template","joinString","MetamodelPropertiesComponent_Conditional_63_For_23_Template","MetamodelPropertiesComponent","strings","MetamodelPropertiesComponent_Template","MetamodelPropertiesComponent_Conditional_39_Template","MetamodelPropertiesComponent_For_60_Template","MetamodelPropertiesComponent_Conditional_61_Template","MetamodelPropertiesComponent_Conditional_62_Template","MetamodelPropertiesComponent_Conditional_63_Template","usedInLogging","hasLifecycle","tmp_17_0","tmp_18_0","MetamodelListFilterComponent","MetamodelListFilterComponent_Template","MetamodelListFilterService","MetamodelListComponent","entitiesLines","metaEntities","initEntitiesFormArray","MetamodelListComponent_Template","METAENTITY_LIST","MetamodelModule","PermissionSetAdministratorComponent","PermissionSetAdministratorComponent_Template","PermissionSetAdministratorComponent_tr_394_Template","PermissionSetBillingManagerComponent","PermissionSetBillingManagerComponent_Template","PermissionSetCardComponent","permissionSetDetails","addDetails","detailFormGroup","PermissionSetCardComponent_Template","PermissionSetCardComponent_wp_permission_set_project_manager_29_Template","PermissionSetCardComponent_wp_permission_set_client_manager_30_Template","PermissionSetCardComponent_wp_permission_set_team_manager_31_Template","PermissionSetCardComponent_wp_permission_set_resource_manager_32_Template","PermissionSetCardComponent_wp_permission_set_billing_manager_33_Template","PermissionSetCardComponent_wp_permission_set_finance_manager_34_Template","PermissionSetCardComponent_wp_permission_set_user_35_Template","PermissionSetCardComponent_wp_permission_set_administrator_36_Template","PermissionSetCardComponent_Template_button_click_38_listener","PermissionSetClientManagerComponent","PermissionSetClientManagerComponent_Template","PermissionSetClientManagerComponent_ng_container_0_Template","PermissionSetFinanceManagerComponent","PermissionSetFinanceManagerComponent_Template","PermissionSetProjectManagerComponent","PermissionSetProjectManagerComponent_Template","PermissionSetProjectManagerComponent_ng_container_0_Template","PermissionSetResourceManagerComponent","PermissionSetResourceManagerComponent_Template","PermissionSetTeamManagerComponent","PermissionSetTeamManagerComponent_Template","PermissionSetUserComponent","PermissionSetUserComponent_Template","PermissionSetUserComponent_tr_50_Template","PermissionSetUserComponent_tr_51_Template","PermissionSetUserComponent_tr_52_Template","PermissionSetCreationComponent","PermissionSetCreationComponent_Template","PermissionSetCreationComponent_Template_button_click_5_listener","PermissionSetCreationComponent_Template_button_click_20_listener","PermissionSetCreationComponent_Template_button_click_23_listener","PermissionSetListComponent","PermissionSetListComponent_Template","PermissionSetList","PermissionSetsModule","RateMatrixStructureChangeModalComponent","MainRateMatrixComponent_Conditional_5_Conditional_45_Template_button_click_1_listener","MainRateMatrixComponent_Conditional_5_Template_button_click_15_listener","openMatrixRatesSettings","MainRateMatrixComponent_Conditional_5_Conditional_45_Template","rateMatrixForm","rateMatrixStructureTitle","RateMatrices","MainRateMatrixComponent","rateMatrixService","changeStructureMessage","patchRateMatrix","initRateMatrixStructureTitle","getRateMatrices","matrixRate","RateMatrixService","MainRateMatrixComponent_Template","MainRateMatrixComponent_Conditional_5_Template","MainRateMatrixComponent_Template_ul_activeIdChange_7_listener","MainRateMatrixComponent_div_13_Template","MainRateMatrixComponent_div_18_Template","MainRateMatrixComponent_tmt_entity_workflow_tasks_23_Template","MainRateMatrixComponent_tmt_state_history_28_Template","queryAnalytics","MatrixRateLinesComponent_For_8_Conditional_0_Template","MatrixRateLinesComponent","matrixRatesCollection","prepareForm","updateControlsAvailability","editMatrixRate","addMatrixRate","previousControl","currentControl","j","MatrixRateLinesComponent_Template","MatrixRateLinesComponent_Template_button_click_5_listener","MatrixRateLinesComponent_For_8_Template","MatrixRateLinesComponent_Template_button_click_15_listener","MatrixRateLinesComponent_Template_button_click_18_listener","MatrixRateToolbarComponent_Conditional_1_Template_button_click_1_listener","MatrixRateToolbarComponent_Conditional_1_Template_button_click_6_listener","MatrixRateToolbarComponent_Conditional_1_Template_button_click_11_listener","MatrixRateToolbarComponent","MatrixRateToolbarComponent_Template","MatrixRateToolbarComponent_Conditional_1_Template","RATE_MATRIX_LINE_LIST","MatrixRateComponent_Conditional_2_Conditional_1_Template_button_click_5_listener","openMatrixRateModal","MatrixRateComponent_Conditional_2_Conditional_1_Template_button_click_13_listener","buildMatrixLines","MatrixRateComponent_Conditional_2_Conditional_1_Template","MatrixRateComponent_Conditional_2_Conditional_2_Template","MatrixRateComponent","isBuilding","isGridLoading","rateMatrixLinesCollection","firstAnalyticName","loadMatrixLines","draftStateId","deleteMatrixRate","isLinesExisting","existingRate","matrixLine","getRateMatrixLineFormGroup","rateMatrixLine","lineValue","patchRateMatrixLine","expandProperties","actualColumnNames","firstAnalytic","foundAnalytic","MatrixRateComponent_Template","MatrixRateComponent_Conditional_2_Template","RateMatrixCardComponent_Conditional_6_For_6_Template","RateMatrixCardComponent","linescount","setAdditionalButtons","RateMatrixCardComponent_Template","RateMatrixCardComponent_Conditional_6_Template","CopyMatrixModalComponent","matrixId","analytic_r2","RateMatrixStructureChangeModalComponent_For_18_Conditional_4_Template","nodata_r3","RateMatrixStructureChangeModalComponent_For_28_Conditional_4_Template_button_click_0_listener","analytic_r5","removeSelected","RateMatrixStructureChangeModalComponent_For_28_Conditional_4_Template","RateMatrixStructureChangeModalComponent_Conditional_31_Template_button_click_0_listener","analyticsDepends","analyticsSortableOptions","selectedColumnsSortableOptions","checkOrder","checkDifference","withResult","dependedAnalytic","dependedAnalyticIndex","newDependedAnalyticIndex","newAnalyticIndex","itemsToRemove","selectedAnalytic","RateMatrixStructureChangeModalComponent_Template","RateMatrixStructureChangeModalComponent_Template_button_click_5_listener","RateMatrixStructureChangeModalComponent_For_18_Template","RateMatrixStructureChangeModalComponent_Conditional_19_Template","RateMatrixStructureChangeModalComponent_For_28_Template","RateMatrixStructureChangeModalComponent_Conditional_29_Template","RateMatrixStructureChangeModalComponent_Conditional_31_Template","RateMatrixStructureChangeModalComponent_Template_button_click_32_listener","RateMatrixStructureChangeModalComponent_ng_template_35_Template","createdMatrix","CopyMatrixModalComponent_Template","CopyMatrixModalComponent_Template_button_click_5_listener","CopyMatrixModalComponent_Template_button_click_20_listener","CopyMatrixModalComponent_Template_button_click_23_listener","RateMatrixCreationModalComponent","RateMatrixCreationModalComponent_Template","RateMatrixCreationModalComponent_Template_button_click_5_listener","RateMatrixCreationModalComponent_Template_button_click_25_listener","RateMatrixCreationModalComponent_Template_button_click_28_listener","RateMatrixListComponent","RateMatrixListComponent_Template","generateViews","generateColumns","NamedEntity","getFilterByActiveWorkflowInstances","getFilterByActiveWorkflowTasks","RATE_MATRIX_LIST","RateMatrixModule","ResourcePoolCardComponent_form_6_div_38_Template_button_click_1_listener","ResourcePoolCardComponent_form_6_p_1_Template","ResourcePoolCardComponent_form_6_div_38_Template","ResourcePoolCardComponent","leadResourcePool","leadResourcePoolId","ResourcePoolCardComponent_Template","ResourcePoolCardComponent_form_6_Template","ResourcePoolCreationComponent","ResourcePoolCreationComponent_Template","ResourcePoolCreationComponent_Template_button_click_5_listener","ResourcePoolCreationComponent_Template_button_click_20_listener","ResourcePoolCreationComponent_Template_button_click_23_listener","ResourcePoolListComponent","ResourcePoolListComponent_Template","RESOURCE_POOL_LIST","ResourcePoolsModule","RoleCardService","RoleCardComponent_Conditional_28_Template_button_click_1_listener","RoleCardComponent","roleCardService","roleResourcePools","role$","RoleCardComponent_Template","RoleCardComponent_Conditional_9_Template","RoleCardComponent_Conditional_28_Template","roleSubject","RoleCreationComponent","RoleCreationComponent_Template","RoleCreationComponent_Template_button_click_5_listener","RoleCreationComponent_Template_button_click_14_listener","RoleCreationComponent_Template_button_click_17_listener","RoleListComponent","RoleListComponent_Template","RoleList","RolesModule","ScheduleExceptionsToolbarComponent_Conditional_0_Template_button_click_1_listener","ScheduleExceptionsToolbarComponent","ScheduleExceptionsToolbarComponent_Template","ScheduleExceptionsToolbarComponent_Conditional_0_Template","ScheduleExceptionCardComponent_Conditional_27_Template_button_click_0_listener","ScheduleExceptionCardComponent","navigationServe","getExceptionDayFormGroup","exceptionDay","excludeFromCalendarDuration","ScheduleExceptionCardComponent_Template","ScheduleExceptionCardComponent_Conditional_27_Template","ScheduleExceptionCreationComponent","ScheduleExceptionCreationComponent_Template","ScheduleExceptionCreationComponent_Template_button_click_5_listener","ScheduleExceptionCreationComponent_Template_button_click_14_listener","ScheduleExceptionCreationComponent_Template_button_click_17_listener","ScheduleExceptionListComponent","ScheduleExceptionListComponent_Template","SCHEDULE_EXCEPTION_LIST","ScheduleExceptionsModule","ScheduleCardService","getLocaleDayNames","FormStyle","TranslationWidth","getLocaleFirstDayOfWeek","ScheduleCardComponent_button_25_Template_button_click_0_listener","setToWeek","getDayTitle","i_r4","day_r3","ScheduleCardComponent_button_61_Template_button_click_0_listener","ScheduleCardComponent","locale","localeFirstDayOfWeek","localeDaysOfWeek","Standalone","Wide","rebuildDays","schedule$","ScheduleCardComponent_Template","ScheduleCardComponent_button_25_Template","ScheduleCardComponent_div_26_Template","ScheduleCardComponent_p_46_Template","ScheduleCardComponent_tr_59_Template","ScheduleCardComponent_button_61_Template","cardIsLoading$","scheduleSubject","ScheduleCreationComponent","ScheduleCreationComponent_Template","ScheduleCreationComponent_Template_button_click_5_listener","ScheduleCreationComponent_Template_button_click_14_listener","ScheduleCreationComponent_Template_button_click_17_listener","ScheduleListComponent","ScheduleListComponent_Template","ScheduleList","SchedulesModule","SettingsAppComponent","SettingsAppComponent_Template","SETTINGS_STATES","DefaultFilterDetailsComponent","SettingsModule","UsersModule","TimeOffTypesModule","SkillsModule","TimesheetPeriodsModule","ValidationRulesModule","TimesheetTemplatesModule","WorkflowsModule","mod","MermaidSchemaModule","BookingModeChangeDialogComponent","currentBookingMode","newBookingMode","BookingModeChangeDialogComponent_Template","BookingModeChangeDialogComponent_Template_button_click_5_listener","BookingModeChangeDialogComponent_Template_button_click_27_listener","BookingModeChangeDialogComponent_Template_button_click_30_listener","CapitalChargesToolbarComponent_Conditional_1_Template_button_click_0_listener","CapitalChargesToolbarComponent","CapitalChargesToolbarComponent_Template","CapitalChargesToolbarComponent_Conditional_1_Template","AllPlanningScales","bookingScales","SettingsApplicationsComponent_div_89_Template_button_click_1_listener","SettingsApplicationsComponent","capitalChargeFormGroup","capitalCharge","capitalChargeRatesFormGroup","capitalChargeRates","capitalChargeRatesFormValues","forecastPeriods","bookingModes","bm","isBookingScaleFixed","bookingScale","isAccrueCostOnWorkingCapital","isAccrueCostOnOutstandingExpenses","showExtendedPnl","addCapitalChargeRateLine","removeCapitalChargeRateLine","changeBookingMode","tenantSetting","setting","languageCode","tenantSettings","timeZoneId","clientsSettings","capitalChargeRateValues","tenantSettingId","cultures","initValueGroup","getCapitalChargeRateLineFormGroup","SettingsCardService","SettingsApplicationsComponent_Template","SettingsApplicationsComponent_Template_button_click_58_listener","SettingsApplicationsComponent_div_67_Template","SettingsApplicationsComponent_div_89_Template","SettingsBillingComponent_form_2_div_81_Template_button_click_1_listener","SettingsBillingComponent_form_2_div_14_Template","SettingsBillingComponent_form_2_div_15_Template","SettingsBillingComponent_form_2_div_16_Template","SettingsBillingComponent_form_2_div_39_Template","SettingsBillingComponent_form_2_div_81_Template","countries","currencyLoading$","SettingsBillingComponent","loadCurrency","hasActiveAccount","reloadSubscription","SettingsBillingComponent_Template","SettingsBillingComponent_form_2_Template","SettingsDataDeletionComponent_div_20_Template_button_click_1_listener","isDeleting","SettingsDataDeletionComponent","SettingsDataDeletionComponent_Template","SettingsDataDeletionComponent_Template_input_ngModelChange_19_listener","confirmation","SettingsDataDeletionComponent_div_20_Template","DomainAddingComponent","domainName","DomainAddingComponent_Template","DomainAddingComponent_Template_button_click_5_listener","DomainAddingComponent_Template_button_click_14_listener","DomainAddingComponent_Template_button_click_17_listener","DomainConfirmationComponent","emails","DomainConfirmationComponent_Template","DomainConfirmationComponent_Template_button_click_5_listener","DomainConfirmationComponent_Template_button_click_13_listener","DomainConfirmationComponent_Template_button_click_16_listener","SettingsDomainsComponent","domains","isConfirmed","confirmDomain","isPrimary","deleteDomain","addDomain","domain","SettingsDomainsComponent_Template","SettingsDomainsComponent_Template_button_click_3_listener","SettingsMainComponent_div_43_Template_button_click_1_listener","SettingsMainComponent","ownerName","ownerEmail","ownerPhone","isServiceUserAllowed","SettingsMainComponent_Template","SettingsMainComponent_div_43_Template","AuthProviderType","formValidatorValues","localSetting","minPasswordLength","maxInvalidLoginAttempts","lockoutMinutes","passwordUpdatePeriodDays","SettingsAuthCreateProviderModalComponent_button_22_Template_button_click_0_listener","SettingsAuthCreateProviderModalComponent","providerToEdit","defaultLocalProviderConfiguration","requireCapitalLetters","requireDigits","requireSpecSymbols","useOtp","allowedGrantPassword","providerForm","openIdConfiguration","clientSecret","providerType","OpenId","Local","operation","providerName","openIdControls","localControls","SettingsAuthCreateProviderModalComponent_Template","SettingsAuthCreateProviderModalComponent_Template_button_click_5_listener","SettingsAuthCreateProviderModalComponent_Conditional_19_Template","SettingsAuthCreateProviderModalComponent_Conditional_20_Template","SettingsAuthCreateProviderModalComponent_button_22_Template","SettingsAuthCreateProviderModalComponent_Template_button_click_23_listener","SettingAuthProvidersToolbarComponent_Conditional_1_Template_button_click_6_listener","SettingAuthProvidersToolbarComponent_Conditional_1_Template_button_click_10_listener","SettingAuthProvidersToolbarComponent","SettingAuthProvidersToolbarComponent_Template","SettingAuthProvidersToolbarComponent_Conditional_1_Template","SettingAuthProvidersToolbarComponent_Template_button_click_3_listener","providersArray","SettingsAuthProvidersComponent_Conditional_0_Conditional_3_Template","SettingsAuthProvidersComponent","isReadingAllowed","isSelectedProviderEditable","formGroupType","AzureAd","sortingOrder","destroySubject","authProviders","openIdConfig","openIdConfigurationJsonData","providerGroup","SettingsAuthProvidersComponent_Template","SettingsAuthProvidersComponent_Conditional_0_Template","SettingsSystemComponent_div_24_Template_button_click_1_listener","SettingsSystemComponent","SettingsSystemComponent_Template","SettingsSystemComponent_div_24_Template","SettingsComponent","isReadMode","formName","SettingsComponent_Template","SettingsComponent_Template_wp_form_header_reloaded_0_listener","SettingsComponent_li_2_Template","DefaultFilterDetailsComponent_Template","NamingLocalizationModalComponent","btnDisabled","addRow","deleteRow","onLocalStringsChange","warningMessage","validateLocalStrings","_labelStrings","getLocalizationFormGroup","localizationLanguages","NamingLocalizationModalComponent_Template","NamingLocalizationModalComponent_Template_button_click_5_listener","NamingLocalizationModalComponent_Template_button_click_11_listener","NamingLocalizationModalComponent_Template_button_click_16_listener","NamingLocalizationModalComponent_Template_button_click_21_listener","NamingLocalizationModalComponent_Template_button_click_24_listener","localizationBtnText","_localizationBtnText","isNewMode","_addLocalizationLabel","updateLocalizationBtnText","NamingLocalizationComponent_Template","NamingLocalizationComponent_Template_button_click_0_listener","allPerformerTypes","getPerformerTypeName","PerformerBoxComponent_div_0_div_4_button_9_Template_button_click_0_listener","PerformerBoxComponent_div_0_div_4_div_2_Template","PerformerBoxComponent_div_0_div_4_div_3_Template","PerformerBoxComponent_div_0_div_4_div_4_Template","PerformerBoxComponent_div_0_div_4_div_5_Template","PerformerBoxComponent_div_0_div_4_div_6_Template","PerformerBoxComponent_div_0_div_4_button_9_Template","PerformerBoxComponent_div_0_div_4_Template_button_click_10_listener","performersService","performerTypes","performerControl","PerformerBoxComponent_div_0_Template_div_clickOutside_0_listener","PerformerBoxComponent_div_0_Template_div_click_1_listener","PerformerBoxComponent_div_0_div_4_Template","getPerformerDisplayName","isOpened","PerformerBoxComponent","predefinedRoles","getAvailableRoles","availableRoles","currentRoles","excludedRoles","performerType","idsString","PerformersService","PerformerBoxComponent_Query","PerformerBoxComponent_Template","PerformerBoxComponent_div_0_Template","PerformerCellComponent","PerformerCellComponent_Template","PerformerReadonlyCellComponent","performerValue","PerformerReadonlyCellComponent_Template","performerArray","PerformersComponent_div_1_Template_button_click_2_listener","addPerformer","PerformersComponent_div_1_Template_button_click_7_listener","deletePerformer","performerLines","ngAfterContentInit","sortLines","validatePerformer","PerformersComponent_Template","PerformersComponent_div_1_Template","SkillCardComponent_div_26_Template_button_click_1_listener","SkillCardComponent","skillForm","SkillCardComponent_Template","SkillCardComponent_div_26_Template","SkillCreationComponent","SkillCreationComponent_Template","SkillCreationComponent_Template_button_click_5_listener","SkillCreationComponent_Template_button_click_14_listener","SkillCreationComponent_Template_button_click_17_listener","SkillListComponent","SkillListComponent_Template","SkillList","AccrualPolicyTimeOffToolbarComponent","AccrualPolicyType","AccrualPolicyPeriod","TimeOffTypeUnit","TimeOffTypeUnits","accrualPeriods","AccrualPolicyModalComponent","timeOffTypeUnitsEnum","accrualType","accrualPeriod","unitsForAccrual","isOnlyForBillableProjects","accrualTypes","timeOffTypeUnits","unitId","hour","Overhours","accrualPolicy","excludedTimeOffType","currentTimeOffTypeUnit","AccrualPolicyModalComponent_Query","AccrualPolicyModalComponent_Template","AccrualPolicyModalComponent_Template_button_click_4_listener","AccrualPolicyModalComponent_div_18_Template","AccrualPolicyModalComponent_div_19_Template","AccrualPolicyModalComponent_Conditional_20_Template","AccrualPolicyModalComponent_Template_button_click_28_listener","AccrualPolicyModalComponent_Template_button_click_31_listener","AccrualPolicyTimeOffToolbarComponent_Conditional_0_For_12_Template_button_click_0_listener","AccrualPolicyTimeOffToolbarComponent_Conditional_0_Template_div_openChange_1_listener","AccrualPolicyTimeOffToolbarComponent_Conditional_0_For_12_Template","AccrualPolicyTimeOffToolbarComponent_Template","AccrualPolicyTimeOffToolbarComponent_Conditional_0_Template","AccrualPolicyService","AccrualPolicySectionComponent_button_4_Template_button_click_0_listener","createNewPolicy","AccrualPolicySectionComponent_div_6_Template_button_click_1_listener","editPolicy","AccrualPolicySectionComponent_div_6_Template_i_click_3_listener","deletePolicy","accrualPolicyName","AccrualPolicySectionComponent","timeOffTypeService","timeOffType$","TimeOffTypeCardService","AccrualPolicySectionComponent_Template","AccrualPolicySectionComponent_button_4_Template","AccrualPolicySectionComponent_div_6_Template","updateTimeOffType","timeOffTypeForm","calendarDay","TimeOffTypeCardComponent_form_3_div_41_wp_accrual_policy_section_4_Template","TimeOffTypeCardComponent_form_3_div_41_wp_using_policy_section_5_Template","TimeOffTypeCardComponent_form_3_Template_button_click_38_listener","TimeOffTypeCardComponent_form_3_div_41_Template","TimeOffTypeCardComponent","paid","usingPolicy","TimeOffTypeCardComponent_Template","TimeOffTypeCardComponent_form_3_Template","timeOffTypeSubject","UsingPolicyModalComponent","UsingPolicyModalComponent_Template","UsingPolicyModalComponent_Template_button_click_5_listener","UsingPolicyModalComponent_Template_button_click_20_listener","UsingPolicyModalComponent_Template_button_click_23_listener","UsingPolicyService","UsingPolicySectionComponent_button_4_Template_button_click_0_listener","UsingPolicySectionComponent_div_6_Template_button_click_1_listener","UsingPolicySectionComponent_div_6_Template_i_click_4_listener","UsingPolicySectionComponent","UsingPolicySectionComponent_Template","UsingPolicySectionComponent_button_4_Template","UsingPolicySectionComponent_div_6_Template","TimeOffTypeCreationComponent","TimeOffTypeCreationComponent_Template","TimeOffTypeCreationComponent_Template_button_click_5_listener","TimeOffTypeCreationComponent_Template_button_click_26_listener","TimeOffTypeCreationComponent_Template_button_click_29_listener","TimeOffTypeListComponent","TimeOffTypeListComponent_Template","TIME_OFF_TYPE_LIST","DayOfWeek","daysOfWeek","TimesheetPeriodCardComponent_div_34_Template_button_click_1_listener","TimesheetPeriodCardComponent","cardForm","periodScope","monthInitialDay","monthHalfDay","dayOfWeekValue","dayOfWeek","DATE_SHORT","TimesheetPeriodCardComponent_Template","TimesheetPeriodCardComponent_div_22_Template","TimesheetPeriodCardComponent_div_23_Template","TimesheetPeriodCardComponent_div_24_Template","TimesheetPeriodCardComponent_div_25_Template","TimesheetPeriodCardComponent_div_26_Template","TimesheetPeriodCardComponent_div_27_Template","TimesheetPeriodCardComponent_div_34_Template","TimesheetPeriodCreationComponent","periodScopeId","periodTypeId","TimesheetPeriodCreationComponent_Template","TimesheetPeriodCreationComponent_Template_button_click_5_listener","TimesheetPeriodCreationComponent_Template_button_click_20_listener","TimesheetPeriodCreationComponent_Template_button_click_23_listener","TimesheetPeriodsFilterService","TimesheetPeriodListComponent","TimesheetPeriodListComponent_Template","TimesheetPeriodList","CustomFieldsSectionComponent_div_5_button_11_Template_button_click_0_listener","customField_r4","addCustomField","CustomFieldsSectionComponent_div_5_Template_div_openChange_1_listener","CustomFieldsSectionComponent_div_5_button_11_Template","CustomFieldsSectionComponent","customField","currentFields","currentRule","CustomFieldsSectionComponent_Template","CustomFieldsSectionComponent_div_5_Template","ProjectStatesSectionComponent_Conditional_7_For_12_Template_button_click_0_listener","ProjectStatesSectionComponent_Conditional_7_Template_div_openChange_1_listener","ProjectStatesSectionComponent_Conditional_7_For_12_Template","ProjectStatesSectionComponent","currentStates","ProjectStatesSectionComponent_Template","ProjectStatesSectionComponent_Conditional_7_Template","TimesheetTemplateCardComponent_Conditional_102_Template_button_click_1_listener","TimesheetTemplateCardComponent","createAutomatically","clearEmptyLinesAutomatically","showBillCode","showActivity","showRole","showProjectCostCenter","showClient","showTariff","timeOffAutoApproval","emptyAutoApproval","dueDateLag","validationRules","allowedProjectStates","timeSheetTemplateId","validationRuleId","validationRule","allowedState","TimesheetTemplateCardComponent_Template","TimesheetTemplateCardComponent_Conditional_25_Template","TimesheetTemplateCardComponent_Conditional_102_Template","ValidationRulesSectionComponent_Conditional_5_For_12_Template_button_click_0_listener","rule_r4","addValidationRule","ValidationRulesSectionComponent_Conditional_5_Template_div_openChange_1_listener","ValidationRulesSectionComponent_Conditional_5_For_12_Template","ValidationRulesSectionComponent","currentRules","ValidationRulesSectionComponent_Template","ValidationRulesSectionComponent_Conditional_5_Template","TimesheetTemplateCreationComponent","TimesheetTemplateCreationComponent_Template","TimesheetTemplateCreationComponent_Template_button_click_5_listener","TimesheetTemplateCreationComponent_Template_button_click_14_listener","TimesheetTemplateCreationComponent_Template_button_click_17_listener","TimesheetTemplateListComponent","TimesheetTemplateListComponent_Template","TimesheetTemplateList","UserAccessComponent_button_18_Template_button_click_0_listener","UserAccessComponent","loadedUserSet","userSet","permissionSets","UserAccessComponent_Template","UserAccessComponent_tr_16_Template","UserAccessComponent_button_18_Template","UserCardService","UserCardComponent_div_6_li_2_Template","UserCardComponent","restorePassword","resetPassword","removeOtpConfiguration","goToLoginLog","UserCardComponent_Template","UserCardComponent_div_6_Template","userName$","PasswordResetModalComponent","userNameSubject","UserCostRatesToolbarComponent_Conditional_0_Template_button_click_1_listener","UserCostRatesToolbarComponent","UserCostRatesToolbarComponent_Template","UserCostRatesToolbarComponent_Conditional_0_Template","UserCostRatesComponent","userCostRatesService","UserCostRatesService","UserCostRatesComponent_Template","ClientValidationException","uc","UserCostComponent_button_12_Template_button_click_0_listener","UserCostComponent","costNormalizationRule","costNormalizationRuleId","changesListener","UserCostComponent_Template","UserCostComponent_button_12_Template","UserNotificationsComponent_button_3_Template_button_click_0_listener","UserNotificationsComponent","UserNotificationsComponent_Template","UserNotificationsComponent_Template_wp_user_settings_notifications_form_form__1_listener","UserNotificationsComponent_button_3_Template","UserProductsToolbarComponent_Conditional_0_For_11_Template_button_click_0_listener","product_r4","selectProduct","UserProductsToolbarComponent_Conditional_0_Template_div_openChange_1_listener","UserProductsToolbarComponent_Conditional_0_For_11_Template","UserProductsToolbarComponent","productInfo","UserProductsService","UserProductsToolbarComponent_Template","UserProductsToolbarComponent_Conditional_0_Template","UserProductsComponent_Conditional_7_Template_button_click_0_listener","UserProductsComponent","UserProductsComponent_Template","UserProductsComponent_Conditional_7_Template","userProduct","userProducts","password","passwordRequirements$$","newPassword","getPasswordRequirements","TenantSettingService","PasswordResetModalComponent_Template","PasswordResetModalComponent_Template_button_click_5_listener","PasswordResetModalComponent_Template_button_click_17_listener","PasswordResetModalComponent_Template_button_click_20_listener","UserProfileComponent_div_4_button_7_Template_button_click_0_listener","unlockUser","isUserUnlocking","UserProfileComponent_div_4_button_7_Template","UserProfileComponent_button_28_Template_button_click_0_listener","showNotificationsEmail","UserProfileComponent_div_39_Template_ngx_dropzone_change_1_listener","avatarIsLoading","profileForm","UserProfileComponent_button_92_Template_button_click_0_listener","UserProfileComponent","avatarVersion","isUserLocked$","authProviders$","defaultGradesQuery","notificationsEmail","authProviderId","checkIsUserLocked","isLocked","UserProfileComponent_Template","UserProfileComponent_div_4_Template","UserProfileComponent_Conditional_6_Template","UserProfileComponent_button_28_Template","UserProfileComponent_ng_container_29_Template","UserProfileComponent_div_39_Template","UserProfileComponent_Conditional_89_Template","UserProfileComponent_button_92_Template","UserRolesComponent_button_4_Template_button_click_0_listener","UserRolesComponent","UserRolesComponent_Template","UserRolesComponent_button_4_Template","UserPersonalScheduleModalComponent_button_9_Template_button_click_0_listener","UserPersonalScheduleModalComponent","dataForSaving","dataChanges","usingSchedules","UserPersonalScheduleModalComponent_Template","UserPersonalScheduleModalComponent_Template_button_click_5_listener","UserPersonalScheduleModalComponent_Template_wp_user_personal_schedule_changes_7_listener","UserPersonalScheduleModalComponent_button_9_Template","UserPersonalScheduleModalComponent_Template_button_click_10_listener","weekDay_r1","weekNumber_r3","weekDay_r2","notPersonal","UserPersonalScheduleComponent_tr_23_td_3_div_1_Template","UserPersonalScheduleComponent_tr_23_td_3_Template","weekDays","UserPersonalScheduleComponent","currentPeriod","storedDays","loadedPeriods","updatePeriodDates","currentMonthFirstDay","toFormat","toUpperCase","loadPeriod","loadedDays","previousPeriod","nextPeriod","weekNumbers","weekNumber","weekDayNumber","formattedDate","loadedDay","usingSchedule","weekdaysFormat","dayName","userScheduleDays","UserPersonalScheduleComponent_Template","UserPersonalScheduleComponent_Template_button_click_5_listener","UserPersonalScheduleComponent_Template_button_click_7_listener","UserPersonalScheduleComponent_Template_button_click_9_listener","UserPersonalScheduleComponent_th_21_Template","UserPersonalScheduleComponent_tr_23_Template","UserPersonalScheduleComponent_table_24_Template","UserScheduleToolbarComponent_Conditional_2_Template_button_click_0_listener","UserScheduleToolbarComponent_Conditional_5_Template_button_click_0_listener","UserScheduleToolbarComponent","UserScheduleToolbarComponent_Template","UserScheduleToolbarComponent_Conditional_2_Template","UserScheduleToolbarComponent_Conditional_5_Template","UserScheduleComponent_button_14_Template_button_click_0_listener","UserScheduleComponent","scheduleForm","getAllSchedules","openPersonalSchedule","personalSchedule","columnValues","userSchedules","userSchedule","modalInstance","UserScheduleComponent_Template","UserScheduleComponent_button_14_Template","TimeInputType","UserSettingsComponent_button_30_Template_button_click_0_listener","UserSettingsComponent","timeInputType","useStopwatch","timeInputTypes","UserSettingsComponent_Template","UserSettingsComponent_button_30_Template","UserSubstitutesToolbarComponent_Conditional_0_Template_button_click_1_listener","UserSubstitutesToolbarComponent","UserSubstitutesToolbarComponent_Template","UserSubstitutesToolbarComponent_Conditional_0_Template","UserSubstitutesComponent_Conditional_5_Template_button_click_0_listener","UserSubstitutesComponent","substitutes","substitute","userSubstitute","substituteId","UserSubstitutesComponent_Template","UserSubstitutesComponent_Conditional_5_Template","UserActivityToolbarComponent_Conditional_0_For_12_Template_button_click_0_listener","selectActivity","UserActivityToolbarComponent_Conditional_0_Template_div_openChange_1_listener","UserActivityToolbarComponent_Conditional_0_For_12_Template","activities","UserActivityToolbarComponent","selectedActivities","activityId","UserActivityToolbarComponent_Template","UserActivityToolbarComponent_Conditional_0_Template","UserTimesheetsComponent_div_13_button_12_Template_button_click_0_listener","UserTimesheetsComponent_div_13_button_12_Template","restrictActivities","activitiesAreEditable","UserTimesheetsComponent","activitiesAreVisible","timeSheetTemplate","activityName","loadProperties","loadUserActivities","userActivity","userActivities","UserTimesheetsComponent_Query","UserTimesheetsComponent_Template","UserTimesheetsComponent_div_13_Template","AddingResourceGroupModalComponent_tr_34_Template_tr_click_0_listener","AddingResourceGroupModalComponent_div_39_Template_div_click_0_listener","group_r9","removeGroup","AddingResourceGroupModalComponent_div_39_Template_button_click_3_listener","AddingResourceGroupModalComponent_button_42_Template_button_click_0_listener","AddingResourceGroupModalComponent","availableGroups","loadGroups","groupsQuery","AddingResourceGroupModalComponent_Query","AddingResourceGroupModalComponent_Template_button_click_5_listener","AddingResourceGroupModalComponent_Template_table_resized_22_listener","AddingResourceGroupModalComponent_tr_34_Template","AddingResourceGroupModalComponent_tr_35_Template","AddingResourceGroupModalComponent_tr_36_Template","AddingResourceGroupModalComponent_div_39_Template","AddingResourceGroupModalComponent_div_40_Template","AddingResourceGroupModalComponent_button_42_Template","AddingResourceGroupModalComponent_Template_button_click_43_listener","ResourceGroupsService","addGroups","newGroups","getGroup","ResourceGroupsComponent_div_1_Template_button_click_1_listener","addGroup","userGroupsService","ResourceGroupsComponent","ResourceGroupsComponent_Template","ResourceGroupsComponent_div_1_Template","UsersGroupsComponent_button_4_Template_button_click_0_listener","UsersGroupsComponent","resourceGroupsService","UsersGroupsComponent_Template","UsersGroupsComponent_button_4_Template","takeLast","UserCreationComponent","isInvitationInputVisible","_isInvitationInputVisible","userForm","invitation","permissionSetsQuery","updateInvitationInputVisibility","permissionSetData","afterCreation","afterError","UserCreationComponent_Template","UserCreationComponent_Template_button_click_5_listener","UserCreationComponent_div_31_Template","UserCreationComponent_Template_button_click_33_listener","UserCreationComponent_Template_button_click_36_listener","product_r1","UserFilterComponent","UserFilterComponent_Template","UserFilterComponent_div_42_Template","getSelectedProducts","UsersEditingComponent","UserListComponent","UserListComponent_Template","UsersEditingComponent_button_13_Template_button_click_0_listener","UsersEditingComponent_button_14_Template_button_click_0_listener","UsersEditingComponent_button_15_Template_button_click_0_listener","UsersEditingComponent_button_16_Template_button_click_0_listener","UsersEditingComponent_button_17_Template_button_click_0_listener","UsersEditingComponent_button_18_Template_button_click_0_listener","UsersEditingComponent_button_19_Template_button_click_0_listener","UsersEditingComponent_button_20_Template_button_click_0_listener","UsersEditingComponent_button_21_Template_button_click_0_listener","scheduleDate","visibleControls","finishFn","UsersEditingComponent_Template","UsersEditingComponent_Template_button_click_5_listener","UsersEditingComponent_div_12_Template","UsersEditingComponent_button_13_Template","UsersEditingComponent_button_14_Template","UsersEditingComponent_button_15_Template","UsersEditingComponent_button_16_Template","UsersEditingComponent_button_17_Template","UsersEditingComponent_button_18_Template","UsersEditingComponent_button_19_Template","UsersEditingComponent_button_20_Template","UsersEditingComponent_button_21_Template","UsersEditingComponent_div_22_Template","UsersEditingComponent_div_23_Template","UsersEditingComponent_div_24_Template","UsersEditingComponent_div_25_Template","UsersEditingComponent_div_26_Template","UsersEditingComponent_div_27_Template","UsersEditingComponent_div_28_Template","UsersEditingComponent_div_29_Template","UsersEditingComponent_div_30_Template","UsersEditingComponent_Template_button_click_33_listener","UsersEditingComponent_Template_button_click_36_listener","ProfileResourceControlsComponent","UserSettingsModalModule","LimitationType","RuleEmptyLinesComponent","RuleEmptyLinesComponent_Template","RuleLinesCountComponent","MinimumCount","RuleLinesCountComponent_Template","RuleProjectPlannedHoursComponent","CheckTaskPlan","CheckProjectPlan","RuleProjectPlannedHoursComponent_Template","field_r1","field_r2","RuleRequiredFieldsComponent","BillCodeRequired","ActivityRequired","RoleRequired","CommentRequired","CostCenterRequired","EntryFields","LineFields","TariffRequired","entryCustomFields","lineCustomFields","TimeAllocationRequired","TimeSheetLineRequired","RuleRequiredFieldsComponent_Template","RuleRequiredFieldsComponent_For_38_Template","RuleRequiredFieldsComponent_For_50_Template","RuleScheduleWorkDayDurationComponent","limitationType","LagUp","LagDown","RuleScheduleWorkDayDurationComponent_Template","ByDays","ForEntireTimesheet","RuleScheduleWorkDayPercentageComponent","MinPercentage","MaxPercentage","parsedData","clonedData","RuleScheduleWorkDayPercentageComponent_Template","RuleSubmitDateComponent","DaysBeforeEnd","RuleSubmitDateComponent_Template","RuleWorkDayDurationComponent","MaxDuration","RuleWorkDayDurationComponent_Template","ValidationRuleCardComponent_form_4_Case_46_Template_wp_rule_work_day_duration_changes_0_listener","dataJson","ValidationRuleCardComponent_form_4_Case_47_Template_wp_rule_schedule_work_day_percentage_changes_0_listener","ValidationRuleCardComponent_form_4_Case_48_Template_wp_rule_schedule_work_day_duration_changes_0_listener","ValidationRuleCardComponent_form_4_Case_49_Template_wp_rule_lines_count_changes_0_listener","ValidationRuleCardComponent_form_4_Case_50_Template_wp_rule_submit_date_changes_0_listener","ValidationRuleCardComponent_form_4_Case_51_Template_wp_rule_required_fields_changes_0_listener","ValidationRuleCardComponent_form_4_Case_52_Template_wp_rule_project_planned_hours_changes_0_listener","ValidationRuleCardComponent_form_4_Case_53_Template_wp_rule_empty_lines_changes_0_listener","ValidationRuleCardComponent_form_4_div_54_Template_button_click_1_listener","ValidationRuleCardComponent_form_4_Case_46_Template","ValidationRuleCardComponent_form_4_Case_47_Template","ValidationRuleCardComponent_form_4_Case_48_Template","ValidationRuleCardComponent_form_4_Case_49_Template","ValidationRuleCardComponent_form_4_Case_50_Template","ValidationRuleCardComponent_form_4_Case_51_Template","ValidationRuleCardComponent_form_4_Case_52_Template","ValidationRuleCardComponent_form_4_Case_53_Template","ValidationRuleCardComponent_form_4_div_54_Template","validationRuleType","ValidationRuleCardComponent","customMessage","validationRuleLevel","ValidationRuleCardComponent_Template","ValidationRuleCardComponent_form_4_Template","ValidationRuleCreationComponent","validationRuleTypeId","ValidationRuleCreationComponent_Template","ValidationRuleCreationComponent_Template_button_click_5_listener","ValidationRuleCreationComponent_Template_button_click_20_listener","ValidationRuleCreationComponent_Template_button_click_23_listener","ValidationRuleListComponent","ValidationRuleListComponent_Template","ValidationRuleList","WorkflowFunctionType","WorkflowToolbarComponent","initiators","workflowService","workflowDeclaration","WorkflowCardComponent_Conditional_3_Conditional_57_Template_button_click_1_listener","WorkflowCardComponent_Conditional_3_div_38_Template","WorkflowCardComponent_Conditional_3_Conditional_57_Template","getLifecycleFilter","actionNameLabels","cancelNameLabels","workflowFunctionsFormArray","WorkflowCardComponent","mermaidService","initialState","initiatorCanCancelInstance","functions","getFunctionFormGroup","finish","editWorkflowFunction","editWorkflowCondition","editWorkflowNotification","workflowFunction","deleteWorkflowFunction","workflowIndex","serviceFunctions","workflow","updateNumbers","initialStateId","requiredEndFunctionsError","requiredNextFunctionIdError","func","nextFunctionId","actionForm","showValidationWarning","updateWorkflowSchema","updateWorkflowDeclaration","initWorkflowCard","prepareFunctionsView","formValueChangingDebounceTime","updateMermaidSchema","typeView","actionsString","transitionsString","moveToStateId","skipIfPerformerIsInitiator","skipCompletedTask","skipActionId","conditionsForSkipping","isElse","recipients","initiatorsString","initiatorForm","workflowFunctions","functionIndex","workflowFunctionTask","transitionsOrConditions","existingGroup","loadSchema","getWorkflowSchema","schema","setWorkflow","newSchema","setNavigation","functionGroup","getWorkflowDeclaration","getStates","workflowSchema","mermaidSchemaData","schemaFunction","mermaidSchemaTransitions","stateTransition","stateCode","mermaidSchemaState","isLast","isNotification","isCondition","hideHead","hideTail","WorkflowCardService","WorkflowCardComponent_Template","WorkflowCardComponent_Conditional_3_Template","WorkflowActionModalComponent","WorkflowFunctionComponent","WorkflowTransitionModalComponent","WorkflowConditionComponent","WorkflowConditionModalComponent","WorkflowNotificationComponent","addActionSubject","addAction$","functionSubject","reloadFunction$","performerOrRecipient","permissionSetNameRequests","fillPerformersData","fillRecipientsData","getWorkflowActionFormPropertyName","usersData","recipient","editWorkflow","patchWorkflowFunction","newFunction","addWorkflowFunction","workflowFunctionGroup","functionFinish","isElseCondition","recipientLine","functionId","conditionsString","nextFunctionString","getConditionsString","newTransition","editCondition","conditionFormGroup","editAction","actionFormGroup","newAction","getStateName","conditionType","nextFunctionIdControl","states$","WorkflowConditionModalComponent_Template","WorkflowConditionModalComponent_Template_button_click_5_listener","WorkflowConditionModalComponent_Template_button_click_28_listener","WorkflowConditionModalComponent_Template_button_click_31_listener","WorkflowConditionToolbarComponent","WorkflowConditionToolbarComponent_Template","WorkflowConditionToolbarComponent_Template_button_click_1_listener","WorkflowConditionToolbarComponent_Template_button_click_7_listener","WorkflowConditionToolbarComponent_Template_button_click_11_listener","WorkflowConditionToolbarComponent_Template_button_click_15_listener","WorkflowConditionToolbarComponent_Template_button_click_18_listener","conditionsFormArray","workflowCardService","functionType","addNewConditionGroup","initGridOptions","newWorkflowFunction","getConditionFormGroup","conditionGroup","deleteCondition","conditionsGridOptions","newCondition","WorkflowConditionComponent_Template","WorkflowConditionComponent_Template_button_click_5_listener","WorkflowConditionComponent_Template_button_click_19_listener","WorkflowConditionComponent_Template_button_click_22_listener","WorkflowActionModalComponent_ng_template_19_Conditional_6_Template","WorkflowActionModalComponent_Template","WorkflowActionModalComponent_Template_button_click_5_listener","WorkflowActionModalComponent_ng_template_14_Template","WorkflowActionModalComponent_ng_template_19_Template","WorkflowActionModalComponent_Template_button_click_22_listener","WorkflowActionModalComponent_Template_button_click_25_listener","WorkflowActionsComponent_div_1_Template_button_click_2_listener","WorkflowActionsComponent_div_1_Template_button_click_7_listener","WorkflowActionsComponent_div_1_Template_button_click_12_listener","WorkflowActionsComponent","actionsGridOptions","deleteAction","getActionFormGroup","actionGroup","getEmptyActionFormGroup","getEmptyActionFormFormGroup","addNewActionGroup","WorkflowActionsComponent_Template","WorkflowActionsComponent_div_1_Template","WorkflowTransitionConditionType","actionsFormGroup","WorkflowFunctionComponent_ng_template_14_div_6_Template","WorkflowFunctionComponent_ng_template_14_div_7_Template","WorkflowFunctionComponent_ng_template_14_div_8_Template","WorkflowFunctionComponent_ng_template_14_div_9_Template","WorkflowFunctionComponent_ng_template_14_div_10_Template","WorkflowFunctionComponent_ng_template_14_div_11_Template","WorkflowFunctionComponent_li_15_ng_template_4_ng_container_5_p_1_Template","WorkflowFunctionComponent_li_15_ng_template_4_ng_container_5_Template_i_click_13_listener","i_r5","conditionsForSkippingForm_r6","getActions","WorkflowFunctionComponent_li_15_ng_template_4_p_4_Template","WorkflowFunctionComponent_li_15_ng_template_4_ng_container_5_Template","WorkflowFunctionComponent_li_15_ng_template_4_Template_button_click_6_listener","addSkipCondition","WorkflowFunctionComponent_li_15_ng_template_4_Template","existingWorkflowFunctions","elseAfterAllCount","elseAfterAll","actionsConditions","expectedActionId","elseConditionsCount","firstConditionsCount","getSkipConditionFormGroup","currentFunction","conditionForm","selectedFunction","considerEntityVersion","WorkflowFunctionComponent_Template","WorkflowFunctionComponent_Template_button_click_5_listener","WorkflowFunctionComponent_ng_template_14_Template","WorkflowFunctionComponent_li_15_Template","WorkflowFunctionComponent_Template_button_click_18_listener","WorkflowFunctionComponent_Template_button_click_21_listener","WorkflowNextFunctionComponent","workflowFunctionsOptions","WorkflowNextFunctionComponent_Template","TransitionConditionsComponent_button_7_Template_button_click_0_listener","TransitionConditionsComponent","getActionsList","addButtonDisable","getConditionsStringsFormGroup","expectedAction","conditionTypeValues","deleteString","subscribeConditionsChanges","TransitionConditionsComponent_Template","TransitionConditionsComponent_button_7_Template","TransitionConditionsComponent_Template_button_click_8_listener","WorkflowTransitionModalComponent_Template","WorkflowTransitionModalComponent_Template_button_click_5_listener","WorkflowTransitionModalComponent_Template_button_click_25_listener","WorkflowTransitionModalComponent_Template_button_click_28_listener","WorkflowTransitionsComponent_div_1_Template_button_click_2_listener","WorkflowTransitionsComponent_div_1_Template_button_click_7_listener","WorkflowTransitionsComponent_div_1_Template_button_click_12_listener","WorkflowTransitionsComponent","transitionsGridOptions","getTransitionFormGroup","transitionsArray","WorkflowTransitionsComponent_Template","WorkflowTransitionsComponent_div_1_Template","WorkflowNotificationComponent_Template","WorkflowNotificationComponent_Template_button_click_5_listener","WorkflowNotificationComponent_Template_button_click_28_listener","WorkflowNotificationComponent_Template_button_click_31_listener","functionTypesEnum","WorkflowToolbarComponent_Template","WorkflowToolbarComponent_Template_button_click_7_listener","WorkflowToolbarComponent_Template_button_click_11_listener","WorkflowToolbarComponent_Template_button_click_15_listener","WorkflowToolbarComponent_Template_button_click_20_listener","WorkflowToolbarComponent_Template_button_click_24_listener","WorkflowToolbarComponent_Template_button_click_28_listener","WorkflowToolbarComponent_Template_button_click_31_listener","WorkflowCreationComponent","WorkflowCreationComponent_Template","WorkflowCreationComponent_Template_button_click_5_listener","WorkflowCreationComponent_Template_button_click_20_listener","WorkflowCreationComponent_Template_button_click_23_listener","WorkflowListComponent","WorkflowListComponent_Template","WORKFLOW_LIST","NgForOf","FormArrayName","MultilineTextBoxComponent","ReactiveFormsModule","CommentsInputComponent","CommentComponent","CommentsTabComponent","AttachmentsTabComponent","FileBoxDnDZoneDirective","FileBoxButtonAddComponent","SortDirection","allCommentsLoaded","loadingPage","resetPagination","deleteComment","commentId","getComments","showSystemEvents","oldest","attachments","comments","editComment","createComment","CommentsSaveService","confirmSubject","confirm$","_changingQueue","changingQueue","onTransitionStartListener","removeFromQueue","getConfirmResult","returnValue","abort","CommentsSettings","CommentsService","_collection","_showSystemEvents","commentDataService","commentSaveService","activeCommentSubject","activeComment$","commentUpdateSubject","commentUpdate$","sortDirection$","setShowSystemEvents","modifiedById","newest","updatedComment","forceDelete","removeComment","isEditAllowed","setActiveComment","md","fromStateStyle","fromStateName","CommentComponent_Case_4_ng_container_2_Template","CommentComponent_Case_4_Conditional_8_Template","CommentComponent_Case_4_Conditional_11_Template","userName_r3","toStateStyle","toStateName","CommentComponent_Case_5_ng_container_2_Template","CommentComponent_Case_5_Conditional_13_Template","resolutionName","CommentComponent_Case_6_ng_container_2_Template","workflowName","CommentComponent_Case_7_ng_container_2_Template","CommentComponent_Case_8_Conditional_4_Conditional_1_Template_i_click_0_listener","CommentComponent_Case_8_Conditional_4_Conditional_1_Template","CommentComponent_Case_8_Conditional_4_Template_i_click_3_listener","setEditMode","commentsService","CommentComponent_Case_8_Conditional_7_Template_div_click_0_listener","renderedText","CommentComponent_Case_8_ng_container_3_Template","CommentComponent_Case_8_Conditional_4_Template","CommentComponent_Case_8_Conditional_5_Template","CommentComponent_Case_8_Conditional_7_Template","CommentComponent_Case_8_Conditional_8_Template","realUser","CommentComponent_ng_template_9_Conditional_0_Template","render","saveService","ngbNavService","isAvatarLoaded","forceEditMode","outsideClickDelay","navChange","isSubstituted","nickname","textContent","CommentComponent_Template","CommentComponent_Template_img_load_1_listener","CommentComponent_Case_4_Template","CommentComponent_Case_5_Template","CommentComponent_Case_6_Template","CommentComponent_Case_7_Template","CommentComponent_Case_8_Template","CommentComponent_ng_template_9_Template","CommentsInputComponent_Conditional_8_Template_button_click_0_listener","undo","CommentsInputComponent_Conditional_9_Template_button_click_0_listener","commentsDataService","commentsSaveService","isSaveButtonVisible","maxSymbolLength","inputDelay","commentTextControl","initInputSubscribers","newComment","runSaveActions","clearFiles","afterSaveAction","abortAfterSaveActions","CommentsInputComponent_Template","CommentsInputComponent_Template_tmt_rich_editor_box_mentionedUserIds__1_listener","CommentsInputComponent_Conditional_8_Template","CommentsInputComponent_Conditional_9_Template","getAttachments","AttachmentsTabComponent_Template","AttachmentsTabComponent_Conditional_1_Template","comment_r1","commentService","queueLength$","checkboxControl","CommentsTabComponent_Template","CommentsTabComponent_For_9_Template","leftTableWidth$","ColumnDefaultValueService","reversed","CustomActionsService","customActions","addCustomAction","commandName","handleCustomAction","leftTable","matches","KeyType","GridKeyboardEventsService","gridCellsOrchestratorService","columnDefaultValueService","switchCellSubject","switchCell$","stopSubscriptionSubject","initKeyboardEventsSubject","activeControl","subscribeRangeTypeKeyboardKeys","subscribeRowTypeKeyboardKeys","subscribeRowsTypeKeyboardKeys","editingControl","setEditingControl","keyType","getKeyType","metaKey","shiftKey","switchCell","cellType","toEnd","copySelectedRange","pasteDataFromClipboard","groupToSelection","selectedGroupIndex","getFormGroupIndex","indexToSelection","lastSelectedGroupIndex","addGroupToSelected","maxGroupIndex","getEmptyDataMatrix","selectionCoordinates","colLength","colEnd","colStart","rowLength","rowEnd","rowStart","emptyRow","emptyMatrix","insertDataMatrixToTable","dataMatrix","formGroups","matrixValue","valueForInserting","customParser","parser","validator","eventCode","symbol","digit","isFinite","switchSetting","parseValueToText","clipboard","writeText","readText","newNodalSelectedCellRowIndex","activeControlRowIndex","maxInputRowLength","newNodalSelectedCellColumnIndex","activeControlColumnIndex","newNodalSelectedControl","setNodalSelectedControl","targetGroup","_selectionCoordinates","initialControlValue","_initialControlValue","activeControlSubject","editingControlSubject","nodalSelectedControl","nodalSelectedControlSubject","selectedGroupSubject","selectedGroupsSubject","nodalSelectedControlColumnIndex","nodalSelectedControlRowIndex","updateSelectedGroupsSubjects","removeGroupFromSelected","switchGroupSelection","checkIsGridInCellEditingMode","updateSelectedGroups","nodalControl","updateSelectionCoordinates","getGridCellClasses","rowIndex","colIndex","checkIsGridInRowEditingMode","initGridManagementService","checkChangesDebounceTime","_order","readonlySubject","endOfPageReachedSubject","orderSubject","commandSubject","setReadonlyState","getCommand","setEndOfPageReachedValue","isReached","parseToNumber","parseToBoolean","parseToDate","expectArray","checkKeys","checkingObject","isNaN","textWithoutSpaces","textWithLineSeparators","dateSegments","BooleanReadonlyCellComponent","BooleanReadonlyCellComponent_Template","CommandCellComponent_Conditional_0_Template_span_click_1_listener","executeCommand","CommandCellComponent","CommandCellComponent_Template","CommandCellComponent_Conditional_0_Template","CommandCellComponent_Conditional_2_Template","UserCellComponent","NavigationCellComponent","StateCellComponent","isObservable","UserBoxComponent","CurrencyBoxComponent","ResourceNavigationCellComponent","FileBoxCellComponent","GridCellComponent","editing","_editing","canCellBeEditable","cellOrchestratorService","parentElement","nl2br","phonePipe","componentCellInputs","lastValue","addForceCellUpdating","Label","MultilineString","Url","textElement","renderComponent","renderDateControl","renderSelectControl","renderUserControl","renderNumberControl","renderCurrencyControl","renderStringControl","renderBooleanControl","renderUser","renderPlainValues","componentCell","handleSpecialColumnTypes","getFormattedText","renderText","specialTypes","renderResourceNavigation","renderNavigation","renderCommand","renderState","renderBoolean","renderMultilineString","renderLink","FileBox","renderFileBoxCell","isExtendedStringType","isEntityType","getEntityText","isSelectControlType","getSelectControlText","isDateType","getDateText","isDateTimeType","getDateTimeText","isDecimalPercentType","getDecimalPercentText","isDecimalType","getDecimalText","isIntegerPercentType","getPercentText","isIntegerType","getIntegerText","isWorkType","getWorkText","isCurrencyType","getCurrencyText","removeChildren","hrefMap","anchor","currencyCodeProperty","readonlyVersion","gridViewComponentColumn","childElements","GridCellComponent_Template","GridCellComponent_div_0_Template","GridSelectionCellDirective","mouseEnterListener","mouseDownListener","dblclickListener","initListeners","onCellMouseDown","onCellMouseEnter","selectToGroup","targetGroupIndex","buttons","GridTotalCellComponent_Conditional_0_0_ng_template_0_Template","GridTotalCellComponent_Conditional_0_0_Template","GridTotalCellComponent","_value","renderPlain","totalType","GridTotalCellComponent_Template","GridTotalCellComponent_Conditional_0_Template","rawFormValue","uiParams","columnValue","NavigationCellComponent_Template","ResourceNavigationCellComponent_Conditional_2_Case_0_Template","ResourceNavigationCellComponent_Conditional_2_Case_1_Template","ResourceNavigationCellComponent_Conditional_2_Case_2_Template","ResourceNavigationCellComponent_Template","ResourceNavigationCellComponent_Conditional_1_Template","ResourceNavigationCellComponent_Conditional_2_Template","StateCellComponent_Template","StateCellComponent_Conditional_0_Template","UserCellComponent_Template","UserCellComponent_Conditional_0_Template","customPopperOptions","GridComponent_1_ng_template_0_Template","GridComponent_Conditional_14_Template_th_click_0_listener","switchAllSelection","column_r6","GridComponent_For_16_Template_th_click_0_listener","GridComponent_For_16_Conditional_2_Template","GridComponent_For_16_Conditional_3_Template","getHeaderCellClasses","column_r7","GridComponent_For_29_Conditional_1_Template_div_click_1_listener","formGroup_r9","GridComponent_For_29_For_3_Template_td_contextmenu_0_listener","column_r11","onCellRightBtnClick","isEditing","ɵ$index_80_r14","ɵ$index_94_r12","validationService","GridComponent_For_29_Conditional_4_Conditional_2_Conditional_2_For_2_Template_button_click_0_listener","command_r19","_r18","ctx_r12","GridComponent_For_29_Conditional_4_Conditional_2_Conditional_2_For_2_Template","GridComponent_For_29_Conditional_4_Conditional_2_Template_button_click_0_listener","dropDown_r16","GridComponent_For_29_Conditional_4_Conditional_2_Conditional_2_Template","rowsWithCommands","GridComponent_For_29_Conditional_4_Template_td_onIntersect_0_listener","closeDropdown","GridComponent_For_29_Conditional_4_Template_td_click_0_listener","GridComponent_For_29_Conditional_4_Conditional_2_Template","popperOptions","rowHasCommands","GridComponent_For_29_Conditional_1_Template","GridComponent_For_29_For_3_Template","GridComponent_For_29_Conditional_4_Template","isShowMultiSelectColumn","column_r20","column_r21","GridComponent_Conditional_34_For_10_Conditional_0_Template","GridComponent_Conditional_34_For_10_Conditional_1_Template","GridComponent_Conditional_34_Conditional_2_Template","GridComponent_Conditional_34_For_4_Template","GridComponent_Conditional_34_Conditional_5_Template","GridComponent_Conditional_34_Conditional_8_Template","GridComponent_Conditional_34_For_10_Template","GridComponent_Conditional_34_Conditional_11_Template","GridComponent_35_ng_template_0_Template","gridKeyboardEventsService","customActionsService","columnResizeSubject","previous","checkEndOfPage","saveUserViewThrottleTime","setColumnWidth","dropdown","isRightAlign","getColumnsCount","onTableOutsideClick","lastIndex","getAdjacentRow","switchAdjacentCell","switchingControl","controlIndex","viewColumnNames","viewColumnIndex","nextControlName","switchSettings","GridComponent_Query","GridComponent_Template","GridComponent_1_Template","GridComponent_Template_table_columnResized_6_listener","GridComponent_Conditional_8_Template","GridComponent_For_10_Template","GridComponent_Conditional_11_Template","GridComponent_Conditional_14_Template","GridComponent_For_16_Template","GridComponent_Conditional_17_Template","GridComponent_Template_div_clickOutside_18_listener","GridComponent_Conditional_20_Template","GridComponent_Conditional_23_Template","GridComponent_For_25_Template","GridComponent_Conditional_26_Template","GridComponent_For_29_Template","GridComponent_Conditional_30_Template","GridComponent_Conditional_34_Template","GridComponent_35_Template","updateSchemaSubject","updateSchema$","schemaData","hoursInDay","PlannerFormatPipe","displayValue","Percentage","Days","PlannerPeriodService","nextSubject","previousSubject","PlannerViewService","getPeriodTitle","sh","DATE_MED","eh","maxDuration","stamp","toSeconds","getPeriodDates","baseDate","slidePeriod","weeksCountInPeriod","monthsCountInPeriod","getValueModeName","getPlanningScaleName","booleanAttribute","getLocaleNumberSymbol","NumberSymbol","PlannerCellComponent_div_1_Template_div_mousedown_0_listener","onSpreaderMouseDown","PlannerCellComponent_div_1_Template_div_dblclick_0_listener","onSpreaderDblClick","PlannerCellComponent_input_8_Template_input_mousedown_0_listener","onInputMouseDown","PlannerCellComponent_input_8_Template_input_keydown_0_listener","onKeydown","PlannerCellComponent_input_8_Template_input_input_0_listener","handleInput","PlannerCellComponent","isRelativeWithZeroBase","plannerFormat","entriesOrchestrator","minValue","allowClearInReadonly","spreading","spreader","spreadBottom","delimiter","previousViewValue","dayIndex","getViewValue","getHoursFromViewValue","changeValue","singleCellMode","getValueElement","valueElement","getContentElement","contentElement","parseViewHours","wholePart","decimalPart","updateViewValue","startEditing","stopEditing","charCode","separators","normalizedString","setSelectionRange","onDblClick","onMouseDown","onMouseEnter","mouseEnter","spreaderMouseDown","spreaderDblClick","initEvents","eventEntrySelectedSubscription","entrySelected$","pos","eventEntrySpreadedSubscription","entrySpreaded$","eventEntryDeselectedSubscription","entryDeselected$","eventEntryDespreadedSubscription","entryDespreaded$","eventEntryDeactivatedSubscription","entryDeactivated$","exceptEntry","eventEntryActivatedSubscription","entryActivated$","eventValueChangedSubscription","valueChanged$","onlyForWorkDay","eventResetSubscription","reset$","eventStopEditingSubscription","stopEditing$","eventStartEditingSubscription","startEditing$","serviceId","frame","PlannerCellComponent_Query","ɵɵInputTransformsFeature","PlannerCellComponent_Template","PlannerCellComponent_div_1_Template","PlannerCellComponent_Template_div_dblclick_2_listener","PlannerCellComponent_Template_div_mousedown_2_listener","PlannerCellComponent_input_8_Template","PlannerPeriodComponent_button_12_Template_button_click_0_listener","period_r2","changePeriod","isBase","PlannerPeriodComponent","_planningScale","_dates","_periodOffset","_baseDate","plannerViewService","plannerPeriodService","updateSuitablePeriods","suitablePeriods","suitableOffset","PlannerPeriodComponent_Template","PlannerPeriodComponent_Template_button_click_1_listener","PlannerPeriodComponent_Template_button_click_4_listener","PlannerPeriodComponent_button_12_Template","PlannerRowCommandsComponent_div_0_button_4_Template_button_click_0_listener","command_r4","PlannerRowCommandsComponent_div_0_Template_div_openChange_0_listener","openRowMenu","PlannerRowCommandsComponent_div_0_button_4_Template","PlannerRowCommandsComponent","PlannerRowCommandsComponent_Template","PlannerRowCommandsComponent_div_0_Template","PnlComponent","PnlFilterComponent","PnlFilterModalComponent","filterModalSubject","filterModal$","PnlCurrencyMode","PnlStatementEntryKind","PnlStatementGroupType","PnlStatementType","PnlDrillDownService","revenueLineType","getDrillDownFn","statementType","currencyMode","base","slotFirstDate","setActualSettings","setEstimateSettings","setPlanSettings","slotLastDate","getSlotLastDate","DocumentDate","GreaterOrEqual","LessOrEqual","resolvedProjectId","Equal","resolvedClientId","resolvedProgramId","resolvedTaskId","viewSettingsData","btoa","userSettingsData","LaborCost","NotEqual","PnlRowType","NonBillable","TM","FixedBid","PnlFilterModalComponent_Template","PnlFilterModalComponent_Template_button_click_5_listener","PnlFilterModalComponent_div_21_Template","PnlFilterModalComponent_div_41_Template","PnlFilterModalComponent_Template_button_click_45_listener","PnlFilterModalComponent_Template_button_click_54_listener","PnlFilterModalComponent_Template_button_click_57_listener","anyBillingTypeStateSelected","PnlFilterComponent_Template","PnlFilterComponent_Template_button_click_0_listener","PnlFilterComponent_span_2_Template","PnlSettings","PnlComponent_Conditional_13_Template_button_click_4_listener","setPnlCurrency","PnlComponent_Conditional_13_Template_button_click_7_listener","getPnlCurrencyTitle","PnlComponent_For_19_Template_button_click_0_listener","groupType_r4","setGroupType","PnlComponent_Conditional_20_Template_wp_pnl_filter_changes_0_listener","onFilterChange","PnlComponent_For_77_Conditional_2_Template_span_click_0_listener","row_r7","onGroupExpand","PnlComponent_For_77_Conditional_2_Template","PnlComponent_For_77_Conditional_3_Template","isExtendedGroup","rowType","expandableGroupItem","headerCell_r8","PnlComponent_For_84_For_2_Template","headerRow_r9","cells","PnlComponent_For_89_For_2_Conditional_1_Template_button_click_0_listener","cell_r11","PnlComponent_For_89_For_2_Conditional_2_Conditional_3_Template","deviatesFromRuleBase","PnlComponent_For_89_For_2_Conditional_1_Template","PnlComponent_For_89_For_2_Conditional_2_Template","PnlComponent_For_89_For_2_Template","row_r12","PnlComponent_Conditional_91_Template_button_click_1_listener","thereIsNoData","_thereIsNoData","isPeriodRequired","_isPeriodRequired","_showExtendedPnl","headerRows","_headerRows","visibleRows","_rows","isGroupExpanded","groupTypes","_groupTypes","isGeneral","financePipe","drillDownService","financialAccountService","showEstimate","showBudget","showActual","showForecast","hideInformationLines","hideEmptyExpenseTypes","_showExpenseRules","_rowIds","expensesGroup","grossMargin","extendedGrossMargin","extendedProfitability","outstandingCost","capitalCost","corporateTax","localizationStrings","quarterSuffix","innerExpenseLine","ruleDeviationBaseHints","extendedKinds","OutstandingCost","CapitalCost","fnFilteredExtendedKinds","reloading$","checkIfPeriodIsRequired","trackCellById","getGroupTypeTitle","getPnlTypeTitle","pnlType","_pnlTypes","_pnlCurrencies","downloadPnlReport","includeEstimate","includeBudget","includeActual","includeForecast","hideEmptyExpenses","showInBaseCurrency","billingTypeIds","setPnlType","getSetting","expandedRows","saveRowExpandedStates","pnlStatement","expenseRules","extendedEntries","buildStatement","restoreRowExpandedStates","fillPeriods","buildHeader","revenueCells","getCellsArray","totalExpensesCells","grossMarginCells","capitalCostCells","buildRow","getSeparatorRow","groupHeaderRow","buildLaborAndTimeOffRows","rowId","expenseTypeRowHasRules","buildExpenseRuleRows","balanceCells","showInformationLines","grossMarginRow","profitabilityRow","extendedGrossMarginRow","extendedProfitabilityRow","typesCount","getTypesCount","hasPeriodTypes","periodsRow","getFormattedPeriod","iso","getColSpan","periodTypesRow","addTypes","isExtendedEntries","ruleIds","ExpenseRule","hasInnerLine","InnerExpenseLine","isExpenseTypeRow","isGroupRow","TimeOffCost","groupItem","statementRow","expenseRuleCrossId","filteredEntries","getCellValue","headerRow","isPeriodInThePast","Forecast","CorporateTax","arr","maxPeriod","quarters","datePeriod","minPeriod","showFilter","getBillingTypeIds","isMainRegion","laborCostIncluded","timeOffCostIncluded","PnlComponent_Template","PnlComponent_Template_button_click_7_listener","PnlComponent_Template_button_click_10_listener","PnlComponent_Conditional_13_Template","PnlComponent_For_19_Template","PnlComponent_Conditional_20_Template","PnlComponent_Conditional_21_Template","PnlComponent_Conditional_22_Template","PnlComponent_Template_button_click_45_listener","PnlComponent_For_72_Template","PnlComponent_For_77_Template","PnlComponent_For_84_Template","PnlComponent_For_89_Template","PnlComponent_Conditional_91_Template","PnlComponent_Conditional_92_Template","templateService","content$","QuickStartComponent_Template","QuickStartComponent_Template_button_click_5_listener","QuickStartComponent_Template_button_click_9_listener","QuickStartComponent_Template_button_click_12_listener","AddingResourceRolesModalComponent_tr_43_Template_tr_click_0_listener","role_r4","selectRole","getCompetencesString","AddingResourceRolesModalComponent_div_50_Template_div_click_0_listener","role_r9","removeRole","AddingResourceRolesModalComponent_div_50_Template_button_click_3_listener","AddingResourceRolesModalComponent_button_53_Template_button_click_0_listener","AddingResourceRolesModalComponent","selectedRoles","loadRoles","rolesQuery","competences","AddingResourceRolesModalComponent_Query","AddingResourceRolesModalComponent_Template_button_click_5_listener","AddingResourceRolesModalComponent_Template_table_resized_28_listener","AddingResourceRolesModalComponent_tr_43_Template","AddingResourceRolesModalComponent_tr_44_Template","AddingResourceRolesModalComponent_tr_45_Template","AddingResourceRolesModalComponent_div_50_Template","AddingResourceRolesModalComponent_div_51_Template","AddingResourceRolesModalComponent_button_53_Template","AddingResourceRolesModalComponent_Template_button_click_54_listener","ResourceRolesComponent","CompetencesCellComponent","CompetencesCellReadonlyComponent","userRoleCompetences","addRoles","newRoles","addingCompetences","found","userRoleId","competence_r1","CompetencesCellReadonlyComponent_For_2_Conditional_1_Template","CompetencesCellReadonlyComponent_For_2_Conditional_2_Template","ɵ$index_3_r2","ɵ$count_3_r3","initCompetences","CompetencesCellReadonlyComponent_Template","CompetencesCellReadonlyComponent_For_2_Template","roleCompetences","CompetencesCellComponent_Template","ResourceRolesComponent_div_1_Template_button_click_1_listener","ResourceRolesComponent_Template","ResourceRolesComponent_div_1_Template","jumpSubject","planningScaleSubject","valueModeSubject","planningScaleFromSession","isFixedBookingScale","jump","DATE_HUGE","decadeStart","decadeEnd","fromObject","ScheduleNavigationComponent_button_7_Template_button_click_0_listener","calendarIsOpen","ScheduleNavigationComponent_div_8_ngb_datepicker_1_Template_ngb_datepicker_clickOutside_0_listener","closeCalendar","ScheduleNavigationComponent_div_8_ngb_datepicker_1_Template_ngb_datepicker_dateSelect_0_listener","ScheduleNavigationComponent_div_8_ngb_datepicker_1_Template_ngb_datepicker_clickOutsideEnabled_0_listener","ScheduleNavigationComponent_div_8_ngb_datepicker_1_Template","ScheduleNavigationComponent_div_10_button_5_Template_button_click_0_listener","valueMode_r5","ScheduleNavigationComponent_div_10_button_5_Template","valueModes","ScheduleNavigationComponent_div_11_button_5_Template_button_click_0_listener","scale_r7","ScheduleNavigationComponent_div_11_button_5_Template","scales","ScheduleNavigationComponent","maxScale","isCalendarVisible","isPlanningScaleVisible","isValueModeVisible","currentDateSelector","isResourcesContext","ScheduleNavigationComponent_Template","ScheduleNavigationComponent_Template_button_click_1_listener","ScheduleNavigationComponent_Template_button_click_4_listener","ScheduleNavigationComponent_button_7_Template","ScheduleNavigationComponent_div_8_Template","ScheduleNavigationComponent_div_10_Template","ScheduleNavigationComponent_div_11_Template","StateHistoryComponent","EntityWorkflowTasksComponent","StateChangingCellComponent","SubstitutionUserCellComponent","loadSubscription","realPerformer","workflowActionLabel","performed","newArray","EntityWorkflowTasksComponent_Template","EntityWorkflowTasksComponent_Conditional_2_Template","fromState","logs","stateHistoryLogs","changing","StateHistoryComponent_Template","StateHistoryComponent_Conditional_2_Template","trigger","animate","stagger","opacity","initAndDestroyHeight","margin","overflow","listFade","optional","AddEntitiesModalComponent_For_14_Template_div_click_0_listener","AddEntitiesModalComponent_For_14_Conditional_1_Template","AddEntitiesModalComponent_For_14_Template_button_click_4_listener","AddEntitiesModalComponent_Conditional_17_Template_button_click_0_listener","selectionLimit","selectEntity","entityTotal","AddEntitiesModalComponent_Template","AddEntitiesModalComponent_Template_button_click_5_listener","AddEntitiesModalComponent_Conditional_9_Template","AddEntitiesModalComponent_For_14_Template","AddEntitiesModalComponent_Conditional_15_Template","AddEntitiesModalComponent_Conditional_17_Template","AddEntitiesModalComponent_Template_button_click_18_listener","OffCanvasActionPanelService","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_3_Template_a_click_0_listener","action_r3","icons_r4","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_4_Template_a_click_0_listener","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_5_For_2_Conditional_1_Template","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_5_For_2_Template_button_click_2_listener","subAction_r7","isNeedDivider","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_5_For_2_Template","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_3_Template","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_4_Template","ActionPanelComponent_Conditional_3_For_2_For_2_Conditional_5_Template","ɵ$index_21_r9","ɵ$count_21_r10","ɵ$index_18_r12","ɵ$count_18_r13","isVisibleElement","ActionPanelComponent_Conditional_3_For_2_For_2_Template","group_r14","ActionPanelComponent_Conditional_3_For_2_Template","ActionPanelComponent_Conditional_7_Template_a_click_2_listener","ActionPanelComponent_Conditional_8_For_6_Conditional_1_Template","ActionPanelComponent_Conditional_8_For_6_Template_button_click_2_listener","subAction_r17","_r16","$index_r18","ActionPanelComponent_Conditional_8_For_6_Template","ActionPanelComponent_ng_template_10_Conditional_0_Conditional_2_Template","action_r19","ActionPanelComponent_ng_template_10_Conditional_0_Template","ActionPanelComponent","isShowBackButton","hasReloader","subAction","ActionPanelComponent_Template","ActionPanelComponent_Conditional_1_Template","ActionPanelComponent_Conditional_3_Template","ActionPanelComponent_Conditional_6_Template","ActionPanelComponent_Conditional_7_Template","ActionPanelComponent_Conditional_8_Template","ActionPanelComponent_ng_template_10_Template","AppMenuComponent_a_13_Template_a_click_0_listener","AppMenuComponent_a_14_Template_a_click_0_listener","AppMenuComponent_a_15_Template_a_click_0_listener","AppMenuComponent_a_16_Template_a_click_0_listener","AppMenuComponent_a_17_Template_a_click_0_listener","AppMenuComponent_a_18_Template_a_click_0_listener","AppMenuComponent_a_19_Template_a_click_0_listener","AppMenuComponent_a_20_Template_a_click_0_listener","AppMenuComponent_a_21_Template_a_click_0_listener","AppMenuComponent_div_22_ng_container_4_div_1_i_1_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_2_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_3_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_4_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_5_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_6_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_7_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_8_Template","AppMenuComponent_div_22_ng_container_4_div_1_i_9_Template","historyItem_r13","segment_r14","AppMenuComponent_div_22_ng_container_4_ng_container_4_span_1_Template","AppMenuComponent_div_22_ng_container_4_div_1_Template","AppMenuComponent_div_22_ng_container_4_Template_a_click_2_listener","AppMenuComponent_div_22_ng_container_4_ng_container_4_Template","i_r15","historyState","AppMenuComponent_div_22_ng_container_4_Template","AppMenuComponent","isClosed","scrollBox","AppMenuComponent_Query","AppMenuComponent_keyup_escape_HostBindingHandler","ɵɵresolveWindow","ɵɵhostProperty","AppMenuComponent_Template_div_clickOutside_0_listener","AppMenuComponent_Template_button_click_1_listener","AppMenuComponent_Template_a_click_8_listener","AppMenuComponent_a_13_Template","AppMenuComponent_a_14_Template","AppMenuComponent_a_15_Template","AppMenuComponent_a_16_Template","AppMenuComponent_a_17_Template","AppMenuComponent_a_18_Template","AppMenuComponent_a_19_Template","AppMenuComponent_a_20_Template","AppMenuComponent_a_21_Template","AppMenuComponent_div_22_Template","BlockUIComponent_Template","FormHeaderComponent_h1_0_Template_span_click_1_listener","onClickHeader","isEditMode","FormHeaderComponent_div_1_Template_button_click_4_listener","FormHeaderComponent_div_1_Template_button_click_7_listener","isNameSaving","FormHeaderComponent","panelService","reloaded","nameSaved","originalName","saveFn","hasName","FormHeaderComponent_Template","FormHeaderComponent_h1_0_Template","FormHeaderComponent_div_1_Template","indicatorsSubject","indicators$","headerIndicators","FormHeader2Component_Conditional_1_Template_div_click_0_listener","FormHeader2Component_Conditional_2_Template_button_click_4_listener","FormHeader2Component_Conditional_2_Template_button_click_7_listener","indicator_r4","FormHeader2Component_Conditional_3_For_2_Template","FormHeader2Component","FormHeader2Component_Template","FormHeader2Component_Conditional_1_Template","FormHeader2Component_Conditional_2_Template","FormHeader2Component_Conditional_3_Template","MessageComponent_ng_container_9_li_2_Template","MessageComponent_button_13_Template_button_click_0_listener","MessageComponent_Template","MessageComponent_Template_button_click_4_listener","MessageComponent_ng_container_9_Template","MessageComponent_Template_button_click_11_listener","MessageComponent_button_13_Template","NavigationPanelComponent_Conditional_0_Conditional_1_Template_button_click_0_listener","collapseNavPanel","item_r5","eventName","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Conditional_1_Template_a_click_0_listener","onClickItem","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Conditional_1_Conditional_5_Template","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Conditional_2_Template_i_click_4_listener","toggleItemVisible","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Conditional_1_Template","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Conditional_2_Template","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Conditional_0_Template","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_For_5_Template","NavigationPanelComponent_Conditional_0_For_6_Conditional_1_Template","groupIsVisible","NavigationPanelComponent_Conditional_0_Template_div_clickOutside_0_listener","NavigationPanelComponent_Conditional_0_Conditional_1_Template","NavigationPanelComponent_Conditional_0_For_6_Template","filteredGroups","NavigationPanelComponent_Conditional_1_Template_div_click_0_listener","expandNavPanel","NavigationPanelComponent_Conditional_1_Conditional_3_Template","NavigationPanelComponent_Conditional_3_Template_button_click_0_listener","toggleMode","NavigationPanelComponent_Conditional_4_Template_button_click_0_listener","saveNewGroup","NavigationPanelComponent_Conditional_4_Template_button_click_3_listener","NavigationPanelComponent_Conditional_4_Template_button_click_6_listener","resetToDefault","NavigationPanelComponent_Conditional_5_Template_button_click_0_listener","NavigationPanelComponent","isNavPanelExpanded","setFilteredGroups","isNavPanelShown","isItemVisible","NavigationPanelComponent_Template","NavigationPanelComponent_Conditional_0_Template","NavigationPanelComponent_Conditional_1_Template","NavigationPanelComponent_Conditional_3_Template","NavigationPanelComponent_Conditional_4_Template","NavigationPanelComponent_Conditional_5_Template","NotFoundComponent","urlMustContain","statusCode","NotFoundComponent_Template","NotFoundComponent_p_0_Template","NgbToast","_isFunction","NotificationComponent_ngb_toast_1_button_5_Template_button_click_0_listener","index_r2","NotificationComponent_ngb_toast_1_Template_ngb_toast_hidden_0_listener","NotificationComponent_ngb_toast_1_Template_ngb_toast_shown_0_listener","setHeight","NotificationComponent_ngb_toast_1_Template_ngb_toast_mouseenter_0_listener","hoverHandler","NotificationComponent_ngb_toast_1_Template_ngb_toast_mouseleave_0_listener","NotificationComponent_ngb_toast_1_Template_div_click_1_listener","notification_r4","NotificationComponent_ngb_toast_1_button_5_Template","autohide","NotificationComponent","defaultByType","keepShowOnHover","toasts","toastsRef","removedNotification","NotificationComponent_Query","NotificationComponent_ngb_toast_1_Template","breadCrumb_r1","getTooltip","textLimit","RouteNavigatorComponent_For_3_Conditional_1_Template","RouteNavigatorComponent_For_3_Conditional_2_Template","ɵ$index_5_r3","ɵ$count_5_r4","RouteNavigatorComponent","navbarId","navbarTitleId","navbarLineId","breadcrumbItemClass","calculateWidth","navbarWidth","navbarTitleWidth","navbarLineWidth","targetWidth","elementsArray","maxElementNameLength","innerText","checkFunction","textLimitLength","lastNavbarLineWidth","RouteNavigatorComponent_Template","RouteNavigatorComponent_For_3_Template","CoManagersModalComponent_Conditional_18_Template_button_click_0_listener","CoManagersModalComponent_Conditional_21_Template_button_click_0_listener","getUserQuery","coManagersCollection","foreignKey","rootEntityCollection","coManagers","cm","CoManagersModalComponent_Template","CoManagersModalComponent_Template_button_click_6_listener","CoManagersModalComponent_Conditional_18_Template","CoManagersModalComponent_Conditional_21_Template","CoManagersModalComponent_Template_button_click_22_listener","NgControl","AbstractBox","ngControl","toggleControlDirty","CheckboxComponent_Conditional_0_Template_input_change_0_listener","hostClasses","checked","checkReversed","CheckboxComponent_Query","CheckboxComponent_Template","CheckboxComponent_Conditional_0_Template","CheckboxComponent_Conditional_1_Template","basicSetup","EditorView","Compartment","EditorState","StreamLanguage","keymap","indentWithTab","csharp","javascript","langsObject","CodeEditorBoxComponent","compartment","extensions","updateListener","docChanged","markAsTouched","domEventHandlers","onFocus","blur","readOnly","editable","define","keyboardSubscription","dispatch","effects","reconfigure","initKeysSubscribes","CodeEditorBoxComponent_Template","CodeEditorBoxComponent_Conditional_1_Template","getCurrencySymbol","CurrencyBoxComponent_div_0_Template_div_clickOutside_0_listener","CurrencyBoxComponent_div_0_Template_input_input_2_listener","CurrencyBoxComponent_div_0_Template_input_blur_2_listener","CurrencyBoxComponent_div_0_Template_input_focus_2_listener","CurrencyBoxComponent_div_0_Template_input_onIntersect_2_listener","CurrencyBoxComponent_div_0_Template_span_click_4_listener","getInputRightPadding","getNarrowCurrencySymbol","getDisplayValue","CurrencyBoxComponent_div_3_tr_6_Template_tr_mousedown_0_listener","mousedownOnRow","CurrencyBoxComponent_div_3_tr_6_Template_tr_click_0_listener","currency_r4","clickRow","getWideCurrencySymbol","CurrencyBoxComponent_div_3_div_3_Template","CurrencyBoxComponent_div_3_tr_6_Template","_viewValue","isFocused","setInputValue","_min","_max","_editor","decimalSeparator","applyInitialValue","Event","dispatchEvent","getStringForEditing","updateValueFromDisplayValue","roundPrecision","floatValue","parseCurrencyString","trimmedValue","currencyEl","changeCurrency","getCurrencies","currencyBoxContainer","CurrencyBoxComponent_Query","CurrencyBoxComponent_Template","CurrencyBoxComponent_div_0_Template","CurrencyBoxComponent_p_1_Template","CurrencyBoxComponent_p_2_Template","CurrencyBoxComponent_div_3_Template","NgbCalendarGregorian","NgbDate","CustomNgbCalendarService","getToday","NgbCalendar","NgbDateParserFormatter","WpParserFormatter","DateBoxComponent_Conditional_0_Conditional_5_For_5_Template_button_click_0_listener","time_r5","updateTime","DateBoxComponent_Conditional_0_Conditional_5_For_5_Template","timeOptions","DateBoxComponent_Conditional_0_Template_div_openChange_0_listener","scrollToMiddle","DateBoxComponent_Conditional_0_Template_input_blur_1_listener","DateBoxComponent_Conditional_0_Template_input_onIntersect_1_listener","closePopper","DateBoxComponent_Conditional_0_Template_input_focus_1_listener","DateBoxComponent_Conditional_0_Template_button_click_3_listener","d_r3","DateBoxComponent_Conditional_0_Conditional_5_Template","getTitle","markDisabled","checkIsHighlighted","customDay_r6","includeTime","markHighlighted","date_r7","selected_r9","currentMonth_r8","disabled_r10","minute","excluded","checkIsExcludedByPeriod","luxonDate","excludedByFunc","checkIsDisabled","isEmittingBlocked","getValueFromControl","datePicker","_elRef","generateTimeOptions","mDate","ngbDate","controlValueBeforeFocusing","time24","to24HourFormat","currValue","currDateTime","currNgbDate","dateTimeToNgbDate","excludePeriod","includedDate","excludedByPeriod","isOpen","dropdownMenu","hour12","padStart","timePart","hourStr","minuteStr","DateBoxComponent_Query","DateBoxComponent_Template","DateBoxComponent_Conditional_0_Template","DateBoxComponent_Conditional_1_Template","DateBoxComponent_Conditional_2_Template","DateBoxComponent_ng_template_3_Template","FormatWidth","getLocaleDateFormat","getLocaleTimeFormat","dateBox","valueWithoutSymbols","replaceSymbols","dateFormat","Short","timeFormat","autocompletedValue","autocompleteByDateFormat","fromFormat","replaceWith","dateRegexp","newFormat","unifyFormat","monthIndex","yearIndex","hourIndex","minuteIndex","is12HourFormat","formatValue","DateTimeFormat","getMonth","getDate","getFullYear","midDay","prevCenturyStart","prevCenturyEnd","isPrevCentury","yearPrefix","yearCurrentLength","padWithZero","isDayCorrect","isMonthCorrect","isYearCorrect","isHoursCorrect","isMinutesCorrect","dateSeparator","getDateSeparator","timeArray","datePart","letter","DatePeriodBoxComponent_Conditional_0_Conditional_6_For_5_Template_tr_mouseenter_0_listener","DatePeriodBoxComponent_Conditional_0_Conditional_6_For_5_Template_tr_click_0_listener","selectedRow","DatePeriodBoxComponent_Conditional_0_Conditional_6_Conditional_1_Template","DatePeriodBoxComponent_Conditional_0_Conditional_6_For_5_Template","areaId","DatePeriodBoxComponent_Conditional_0_Conditional_7_Conditional_5_Template_button_click_0_listener","selectCustomPeriod","DatePeriodBoxComponent_Conditional_0_Conditional_7_Conditional_5_Template","DatePeriodBoxComponent_Conditional_0_Conditional_7_Template_button_click_6_listener","datesForm","DatePeriodBoxComponent_Conditional_0_Template_div_clickOutside_0_listener","DatePeriodBoxComponent_Conditional_0_Template_input_blur_1_listener","DatePeriodBoxComponent_Conditional_0_Template_input_keydown_1_listener","DatePeriodBoxComponent_Conditional_0_Template_input_click_1_listener","DatePeriodBoxComponent_Conditional_0_Template_span_click_3_listener","DatePeriodBoxComponent_Conditional_0_Conditional_6_Template","DatePeriodBoxComponent_Conditional_0_Conditional_7_Template","DatePeriodBoxComponent_Conditional_0_Template_button_click_8_listener","customPeriodOpened","DatePeriodBoxComponent","setDisplayText","onDisplayTextChanged","displayText","getDatePeriodTitle","getDatePeriodFromRow","filteringValue","selectNext","selectPrevious","scrollToSelectRow","advancedPeriods","datePeriodType","DatePeriodBoxComponent_Query","DatePeriodBoxComponent_Template","DatePeriodBoxComponent_Conditional_0_Template","DatePeriodBoxComponent_Conditional_1_Template","DatePeriodBoxComponent_Conditional_2_Template","DocModalComponent","docUrl","bypassSecurityTrustResourceUrl","DocModalComponent_Template","DocModalComponent_Template_button_click_1_listener","ɵɵsanitizeResourceUrl","DurationBoxComponent_div_0_span_3_Template_span_click_0_listener","DurationBoxComponent_div_0_Template_input_input_1_listener","DurationBoxComponent_div_0_Template_input_blur_1_listener","DurationBoxComponent_div_0_Template_input_focus_1_listener","DurationBoxComponent_div_0_span_3_Template","DurationBoxComponent","dimensionItem","durationMode","dayWords","weekWords","monthWords","parsedViewValue","parseValue","dayCount","weekLength","monthLength","checkLimits","setFullStringValue","formattedNumber","DurationBoxComponent_Query","DurationBoxComponent_Template","DurationBoxComponent_div_0_Template","DurationBoxComponent_p_1_Template","DurationBoxComponent_p_2_Template","EmailBoxComponent_button_5_Template_button_click_0_listener","domain_r2","setDomain","EmailBoxComponent","atIndex","EmailBoxComponent_Template","EmailBoxComponent_Template_input_ngModelChange_1_listener","EmailBoxComponent_Template_input_blur_1_listener","EmailBoxComponent_button_5_Template","EmailBoxComponent_p_6_Template","FileBoxButtonAddComponent_Conditional_0_Template_button_click_0_listener","attachFiles","FileBoxButtonAddComponent_Conditional_1_Template_button_click_0_listener","FileBoxButtonAddComponent_Conditional_2_Template_button_click_0_listener","inputFilesListener","addFiles","FileBoxButtonAddComponent_Template","FileBoxButtonAddComponent_Conditional_0_Template","FileBoxButtonAddComponent_Conditional_1_Template","FileBoxButtonAddComponent_Conditional_2_Template","dataReadyStatus","setInitialFiles","deleteAttachment","FileBoxCellComponent_Template","ngZone","fileOver","dataTransfer","FileBoxDnDZoneDirective_HostBindings","SkipSelf","NgbTooltipModule","FileBoxComponent_Conditional_2_Conditional_0_Template_button_click_0_listener","openViewer","FileBoxComponent_Conditional_2_Conditional_0_Conditional_3_Template","FileBoxComponent_Conditional_2_Conditional_0_Template","FileBoxComponent_Conditional_2_Conditional_1_Template","file_r4","urlPreview","FileBoxComponent_Conditional_3_For_2_Conditional_13_Template_button_click_0_listener","FileBoxComponent_Conditional_3_For_2_Conditional_14_Conditional_0_Template_button_click_0_listener","FileBoxComponent_Conditional_3_For_2_Conditional_14_Conditional_0_Template","FileBoxComponent_Conditional_3_For_2_Conditional_14_Template_button_click_1_listener","FileBoxComponent_Conditional_3_For_2_Template_button_click_1_listener","FileBoxComponent_Conditional_3_For_2_Conditional_3_Template","FileBoxComponent_Conditional_3_For_2_Conditional_4_Template","FileBoxComponent_Conditional_3_For_2_Conditional_10_Template","FileBoxComponent_Conditional_3_For_2_Conditional_11_Template","FileBoxComponent_Conditional_3_For_2_Conditional_13_Template","FileBoxComponent_Conditional_3_For_2_Conditional_14_Template","spinnerParams","shortName","FileBoxComponent_Conditional_3_Conditional_0_Template","FileBoxComponent_Conditional_3_For_2_Template","FileBoxComponent_Conditional_3_Conditional_3_Template","FileBoxComponent_Conditional_3_Conditional_4_Template","isAddButtonShown","isContainerMode","instantSave","spinnerSize","spinnerSpeed","spinnerCircleColor","spinnerSpinColor","spinnerBackgroundColor","spinnerBorderRadius","maxCount","initialFiles","downloadAttachmentItem","removeFile","abortFileRemove","parentService","FileBoxComponent_Template","FileBoxComponent_Conditional_2_Template","FileBoxComponent_Conditional_3_Template","NgbTooltip","AttachmentHelper","ViewerComponent","FILE_EXTENSION","_files","buildAttachmentItem","getTemplateType","ext","downloadBlob","blob","uploadAttachment","isKeepFile","results","currentFilesCount","availableCount","newFiles","newFile","isValidFormat","File","dataLazyLoad","deleteAttachmentWithConfirm","getIcon","fileExt","getShortName","fileName","resultLength","other","activeItemId","activeId","outsideClickCallback","fileKey","AbstractHierarchicalBoxComponent","withHierarchy","predefined","firstChange","treeListTarget","treeListEl","focusedRow","onFocused","setTextBoxValue","includeSubElements","parentIdKey","getReadOnlyDisplayText","enrichFromPredefined","errorHandler","AbstractHierarchicalBoxComponent_Query","HierarchicalBoxComponent_Conditional_1_Conditional_6_Template_button_click_0_listener","setIncludingSubElements","HierarchicalBoxComponent_Conditional_1_Conditional_9_Conditional_3_Template_tmt_tree_list_selected__0_listener","HierarchicalBoxComponent_Conditional_1_Conditional_9_Conditional_3_Template_tmt_tree_list_keyDown__0_listener","HierarchicalBoxComponent_Conditional_1_Conditional_9_Conditional_3_Template_tmt_tree_list_focused__0_listener","HierarchicalBoxComponent_Conditional_1_Conditional_9_Conditional_2_Template","HierarchicalBoxComponent_Conditional_1_Conditional_9_Conditional_3_Template","HierarchicalBoxComponent_Conditional_1_Template_div_clickOutside_0_listener","HierarchicalBoxComponent_Conditional_1_Template_div_onIntersect_0_listener","HierarchicalBoxComponent_Conditional_1_Template_input_blur_1_listener","HierarchicalBoxComponent_Conditional_1_Template_input_keydown_1_listener","HierarchicalBoxComponent_Conditional_1_Template_input_click_1_listener","HierarchicalBoxComponent_Conditional_1_Template_span_click_3_listener","HierarchicalBoxComponent_Conditional_1_Conditional_6_Template","HierarchicalBoxComponent_Conditional_1_Conditional_9_Template","HierarchicalBoxComponent_Conditional_1_Template_button_click_10_listener","HierarchicalBoxComponent_Template","HierarchicalBoxComponent_Conditional_0_Template","HierarchicalBoxComponent_Conditional_1_Template","formControl","spellcheck","MultilineTextBoxComponent_Query","MultilineTextBoxComponent_Template","MultilineTextBoxComponent_Template_textarea_focus_1_listener","MultilineTextBoxComponent_Template_textarea_blur_1_listener","MultilineTextBoxComponent_p_3_Template","MultilineTextBoxComponent_p_4_Template","AbstractMultiSelectBoxComponent","allValues","getNamedItem","theme","filteredItems","selectedItems","updateOption","targetItem","focusedItem","selectItem","defaultModeProperty","updateFilteredItemsDefaultProperty","removeToken","itemToRemove","focusItem","changeFilter","filterPart","sortSelectedItems","toggleDefault","AbstractMultiSelectBoxComponent_Query","MultiSelectBoxComponent_Conditional_2_Conditional_1_For_4_Template_i_click_3_listener","MultiSelectBoxComponent_Conditional_2_Conditional_1_Template_div_click_0_listener","MultiSelectBoxComponent_Conditional_2_Conditional_1_Conditional_2_Template","MultiSelectBoxComponent_Conditional_2_Conditional_1_For_4_Template","item_r7","MultiSelectBoxComponent_Conditional_2_Conditional_2_For_3_Conditional_1_Template","MultiSelectBoxComponent_Conditional_2_Conditional_2_For_3_Conditional_2_Template","ɵ$index_31_r8","ɵ$count_31_r9","MultiSelectBoxComponent_Conditional_2_Conditional_2_Template_div_click_0_listener","MultiSelectBoxComponent_Conditional_2_Conditional_2_Template_div_keydown_0_listener","MultiSelectBoxComponent_Conditional_2_Conditional_2_For_3_Template","MultiSelectBoxComponent_Conditional_2_Conditional_2_ForEmpty_4_Template","MultiSelectBoxComponent_Conditional_2_Conditional_3_Template_span_click_0_listener","MultiSelectBoxComponent_Conditional_2_Template_div_onIntersect_0_listener","MultiSelectBoxComponent_Conditional_2_Conditional_1_Template","MultiSelectBoxComponent_Conditional_2_Conditional_2_Template","MultiSelectBoxComponent_Conditional_2_Conditional_3_Template","MultiSelectBoxComponent_Conditional_2_Template_button_click_4_listener","MultiSelectBoxComponent_ng_template_3_Conditional_2_Template_input_keydown_1_listener","MultiSelectBoxComponent_ng_template_3_Conditional_2_Template_span_click_4_listener","MultiSelectBoxComponent_ng_template_3_For_5_Conditional_7_Template_i_click_0_listener","item_r14","MultiSelectBoxComponent_ng_template_3_For_5_Template_div_click_0_listener","MultiSelectBoxComponent_ng_template_3_For_5_Template_div_mouseenter_0_listener","MultiSelectBoxComponent_ng_template_3_For_5_Conditional_7_Template","MultiSelectBoxComponent_ng_template_3_Conditional_2_Template","MultiSelectBoxComponent_ng_template_3_Template_div_keydown_3_listener","MultiSelectBoxComponent_ng_template_3_For_5_Template","MultiSelectBoxComponent_ng_template_3_Conditional_6_Template","MultiSelectBoxComponent","MultiSelectBoxComponent_Template","MultiSelectBoxComponent_Conditional_0_Template","MultiSelectBoxComponent_Conditional_1_Template","MultiSelectBoxComponent_Conditional_2_Template","MultiSelectBoxComponent_ng_template_3_Template","NumberBoxComponent_div_0_Template_input_input_1_listener","NumberBoxComponent_div_0_Template_input_blur_1_listener","NumberBoxComponent_div_0_Template_input_focus_1_listener","_precision","_displayValue","selectInputValueOnFocus","lastEmittedValue","getDigitInfo","valueStr","NumberBoxComponent_Query","NumberBoxComponent_Template","NumberBoxComponent_div_0_Template","NumberBoxComponent_p_1_Template","NumberBoxComponent_p_2_Template","isFunction","ProjectVersionsBoxComponent_div_7_tr_10_Template_tr_click_0_listener","ProjectVersionsBoxComponent_div_7_tr_10_Template_tr_mouseenter_0_listener","projectVersionLabel","ProjectVersionsBoxComponent_div_7_tr_11_Template_tr_click_0_listener","ProjectVersionsBoxComponent_div_7_tr_11_Template_tr_mouseenter_0_listener","ProjectVersionsBoxComponent_div_7_tr_11_span_3_Template","getStateBadgeClass","ProjectVersionsBoxComponent_div_7_Template_div_mouseleave_0_listener","ProjectVersionsBoxComponent_div_7_Template_tr_mouseenter_3_listener","ProjectVersionsBoxComponent_div_7_Template_button_click_4_listener","createProjectVersion","ProjectVersionsBoxComponent_div_7_tr_10_Template","ProjectVersionsBoxComponent_div_7_tr_11_Template","ProjectVersionsBoxComponent_div_7_div_12_Template","createVersionButtonDisabled","projectVisible","ProjectVersionsBoxComponent","setTextControlValue","excludeOutsideClick","toUnicode","searchListener","getStateCircleClass","circleClass","loadStoredRows","dateA","dateB","ProjectVersionsBoxComponent_Query","ProjectVersionsBoxComponent_Template","ProjectVersionsBoxComponent_Template_div_clickOutside_0_listener","ProjectVersionsBoxComponent_Template_input_click_2_listener","ProjectVersionsBoxComponent_Template_input_keydown_2_listener","ProjectVersionsBoxComponent_Template_span_click_4_listener","ProjectVersionsBoxComponent_div_7_Template","ProjectVersionsBoxComponent_Template_button_click_8_listener","NodeSelection","TextSelection","getLastChildOfNode","get$CursorAtBlockStart","joinPreviousBlock","checkPrevNode","skipNode","$cursor","selection","nodeBefore","maybeChild","textBlock","docWithTextBlock","topNodeType","isEmptyTextblock","childCount","nodeSize","lastChild","isTextblock","tr","insertPos","setSelection","canAppend","isAtom","isLeaf","isNodeSelection","get$Cursor","isHrSelection","addHr","replaceSelectionWith","nodes","horizontal_rule","spec","complex","isEmptyParagraph","paragraph","disableHorizontalRule","subItems","wrapIn","isTextSelection","isBlockqouteNode","hasParentNodeOfType","toggleQuote","qType","blockquote","depth","nodeSpec","targetDepth","getBlockRange","lift","wrap","$pos","$before","$after","blockRange","toggleBlockquoteActive","tokenize","markerCode","marker","src","charCodeAt","scanned","scanDelims","len","ch","fromCharCode","delimiters","tokens","can_open","can_close","postProcess","mark","tag","loneMarkers","startDelim","endDelim","nesting","markup","ruler2Func","tokensMeta","tokens_meta","setBlockType","toParagraph","resetHeading","$from","heading","endOfTextblock","toggleHeadingActive","$head","subItem","redo","splitListItem","liftLiItem","sinkLiItem","joinPrevList","ListNode","liType","markItem","customKeymap","Shift-Enter","hard_break","Ctrl-b","Ctrl-i","Ctrl-Shift-s","Ctrl-u","Ctrl-Shift-0","Ctrl-Shift-1","Ctrl-Shift-2","Ctrl-Shift-3","Ctrl-Shift-4","Ctrl-Shift-5","Ctrl-Shift-6","Ctrl-Shift-.","Ctrl-e","Enter","Backspace","Tab","Shift-Tab","Ctrl-Shift-l","BulletList","Ctrl-Shift-m","OrderedList","toggleMark","isMarkActive","link","dom","getElementsByClassName","marks","removeMark","selectedText","textBetween","countOfWhitespacesAtEnd","trimEnd","domAtPos","keydownHandler","Plugin","findChildrenByMark","findParentNode","Decoration","DecorationSet","LinkPopupComponent","getLinkTextNode","textNodes","textNode","absolutePos","linkPopupPlugin","viewPopup","SelectionPopup","props","handleKeyDown","Ctrl-Shift-k","decorations","prevState","hidePopup","renderPopup","editorView","updateTextNodeRef","textNodeRef","head","closest","popups","tagA","isInsideLink","onclick","markType","isInSet","storedMarks","fromMark","toMark","$to","normalizeReference","isSpace","stateFromUrl","linkRuler","parseReference","oldPos","posMax","labelStart","labelEnd","helpers","parseLinkLabel","parseLinkDestination","normalizeLink","validateLink","parseLinkTitle","env","references","token_o","linkLevel","liftListItem","sinkListItem","wrapInList","blType","findAnyParentList","isIntoListOfType","olType","toList","listType","parentList","setNodeMarkup","toggleListActiveAndDisable","isParentActive","findParentNodeOfType","nodeTypeFactory","nodeName","ListItem","isListNode","isListItemNode","isListOrItemNode","wrappingInputRule","orderedListRule","bulletListRule","bullets","dash","asterisk","regexp","RegExp","bullet","findChildren","hasParentNode","mergeListsPlugin","appendTransaction","trs","oldState","newState","hasParentList","listNodes","mergeAdjacentNodesWithSameType","posAfterMap","posBefore","posAfter","mapping","uiRouter","urlObject","hostname","pathName","paths","pathname","isGuid","$$state","exec","guid","isMagicLinkSelection","magicLinkPastePlugin","handlePaste","descendants","magic_link","magicLinkSerializer","write","setMagicLinkSerializer","serializer","getAttrs","tok","attrGet","magicLinkSpec","selectable","atom","toDOM","parseDOM","MagicLinkView","entityTypesService","delayTime","isMagicLink","names","updateNodeView","MarkdownIt","additionalMarks","breaks","maxNesting","defaultTextRenderer","renderInline","mention","ruler","textBefore","textAfter","emailRegex","strike","ruler2","ins","samp","defaultLinkRender","link_open","renderToken","attrPush","toggleMarkActive","rangeHasMark","findMark","tagMark","insertMention","deleteRange","MentionSerializer","spaceBefore","spaceAfter","childBefore","childAfter","endsWith","mentionSpec","MentionView","mentionIds","mentions","stopEvent","Schema","addListNodes","basicSchema","addToEnd","inclusive","LinkPopupComponent_Conditional_11_Template_button_click_0_listener","isUpdateMode","getFromTo","updateLinkMark","addMark","parentInfo","parentOffset","LinkPopupComponent_Template","LinkPopupComponent_Conditional_9_Template","LinkPopupComponent_Conditional_11_Template","LinkPopupComponent_Template_button_click_12_listener","ITEMS_IDS","NgbDropdownModule","bootstrapClassName","subItem_r3","hotKey","RichEditorBoxMenuComponent_For_2_Conditional_0_For_7_Template_button_click_0_listener","onItemClick","RichEditorBoxMenuComponent_For_2_Conditional_0_For_7_Conditional_2_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_For_7_Conditional_3_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_For_7_Conditional_7_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_Conditional_3_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_Conditional_4_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_For_7_Template","popContent_r5","hideDropdownArrow","RichEditorBoxMenuComponent_For_2_Conditional_1_Template_div_click_0_listener","RichEditorBoxMenuComponent_For_2_Conditional_1_Conditional_1_Template","RichEditorBoxMenuComponent_For_2_Conditional_1_Conditional_2_Template","RichEditorBoxMenuComponent_For_2_Conditional_0_Template","RichEditorBoxMenuComponent_For_2_Conditional_1_Template","RichEditorBoxMenuComponent_ng_template_3_Conditional_2_Template","RichEditorBoxMenuComponent","allowedAutoPlacements","fallbackPlacements","toggleActive","onEditorStateChange","RichEditorBoxMenuComponent_Template","RichEditorBoxMenuComponent_For_2_Template","RichEditorBoxMenuComponent_ng_template_3_Template","NgClass","NgbDropdown","NgbDropdownToggle","NgbDropdownMenu","NgbDropdownItem","NgbDropdownButtonItem","baseKeymap","autocomplete","KEEP_OPEN","ActionKind","closeAutocomplete","codemark","MarkdownParser","MarkdownSerializer","defaultMarkdownParser","defaultMarkdownSerializer","inputRules","LinkyPipe","RichEditorBoxComponent_Conditional_1_Conditional_0_Template_p_click_0_listener","showEditor","emptyText","isEditButtonShown","RichEditorBoxComponent_Conditional_1_Conditional_1_Template_div_click_0_listener","renderedValue","RichEditorBoxComponent_Conditional_1_Conditional_2_Template_button_click_0_listener","RichEditorBoxComponent_Conditional_1_Conditional_0_Template","RichEditorBoxComponent_Conditional_1_Conditional_1_Template","RichEditorBoxComponent_Conditional_1_Conditional_2_Template","RichEditorBoxComponent_Conditional_2_Conditional_3_Template_button_click_1_listener","makeReadonly","RichEditorBoxComponent_Conditional_2_Conditional_3_Template_button_click_4_listener","RichEditorBoxComponent_Conditional_2_Conditional_0_Template","RichEditorBoxComponent_Conditional_2_Conditional_1_Template","RichEditorBoxComponent_Conditional_2_Conditional_3_Template","RichEditorBoxComponent_Conditional_2_Conditional_4_Template","isAlwaysEditingMode","RichEditorBoxComponent_ng_template_3_Conditional_2_For_1_Template_div_click_0_listener","onSuggestionClick","RichEditorBoxComponent_ng_template_3_Conditional_2_For_1_Template_div_mouseenter_0_listener","selectedSuggestion","RichEditorBoxComponent_ng_template_3_Conditional_2_For_1_Template","RichEditorBoxComponent_ng_template_3_Conditional_2_ForEmpty_2_Template","RichEditorBoxComponent_ng_template_3_Conditional_2_Conditional_3_Template","suggestions","suggestionsLoading$","RichEditorBoxComponent_ng_template_3_Conditional_2_Template","RichEditorBoxComponent_ng_template_3_Conditional_4_Template","hasMentions","mentionedUserIds$","editing$","autocompleteValue$","onPasteLinker","currentContent","expelEnclosingWhitespace","mixable","notRegisteredNodes","markdownParser","markdownSerializer","escapeExtraCharacters","plugins","triggers","reducer","handleAutocomplete","bullet_list","ordered_list","dispatchTransaction","transaction","menuBar","serialize","updateIsEmpty","nodeViews","transformPastedText","pasteHTML","stripPrefix","updateEditorContent","suggestion","openUsersPopup","contextElement","suggestionsEl","clickOutsideEnabled","insertText","enter","dataParams","RichEditorBoxComponent_Query","ngContentSelectors","RichEditorBoxComponent_Template","RichEditorBoxComponent_Conditional_1_Template","RichEditorBoxComponent_Conditional_2_Template","RichEditorBoxComponent_ng_template_3_Template","getChildrenOfNode","isInline","SelectBoxComponent_div_0_Conditional_4_ng_container_1_Template","prefixTemplate","SelectBoxComponent_div_0_Template_div_onIntersect_0_listener","SelectBoxComponent_div_0_Template_input_blur_2_listener","SelectBoxComponent_div_0_Template_input_keydown_2_listener","SelectBoxComponent_div_0_Template_input_click_2_listener","SelectBoxComponent_div_0_Conditional_4_Template","SelectBoxComponent_div_0_Template_span_click_5_listener","SelectBoxComponent_div_0_Template_button_click_8_listener","optionLabel","rowTemplate","SelectBoxComponent_ng_template_2_For_6_Conditional_3_ng_container_0_Template","SelectBoxComponent_ng_template_2_For_6_Conditional_0_Template","SelectBoxComponent_ng_template_2_For_6_Template_tr_mouseenter_1_listener","SelectBoxComponent_ng_template_2_For_6_Template_tr_mousedown_1_listener","SelectBoxComponent_ng_template_2_For_6_Template_tr_click_1_listener","SelectBoxComponent_ng_template_2_For_6_Conditional_3_Template","SelectBoxComponent_ng_template_2_For_6_Conditional_4_Template","groupHandler","SelectBoxComponent_ng_template_2_For_6_Template","SelectBoxComponent_ng_template_2_ForEmpty_7_Template","SelectBoxComponent_ng_template_2_div_8_Template","directoriesService","filterOnServer","fixedPosition","Symbol","updatePadding","existEntity","valueById","getEntityById","selectBoxContainer","onCancel","getDirectoryEntries","requestCollection","groupRows","groupedRows","accumulator","DirectoriesService","SelectBoxComponent_ContentQueries","SelectBoxComponent_Template","SelectBoxComponent_div_0_Template","SelectBoxComponent_p_1_Template","SelectBoxComponent_ng_template_2_Template","ProjectTaskInfo","TaskBoxComponent_Conditional_1_Conditional_8_Conditional_3_Template_tmt_tree_list_selected__0_listener","TaskBoxComponent_Conditional_1_Conditional_8_Conditional_3_Template_tmt_tree_list_keyDown__0_listener","TaskBoxComponent_Conditional_1_Conditional_8_Conditional_3_Template_tmt_tree_list_focused__0_listener","TaskBoxComponent_Conditional_1_Conditional_8_Conditional_2_Template","TaskBoxComponent_Conditional_1_Conditional_8_Conditional_3_Template","TaskBoxComponent_Conditional_1_Template_div_clickOutside_0_listener","TaskBoxComponent_Conditional_1_Template_div_onIntersect_0_listener","TaskBoxComponent_Conditional_1_Template_input_blur_1_listener","TaskBoxComponent_Conditional_1_Template_input_keydown_1_listener","TaskBoxComponent_Conditional_1_Template_input_click_1_listener","TaskBoxComponent_Conditional_1_Template_span_click_3_listener","TaskBoxComponent_Conditional_1_Conditional_8_Template","TaskBoxComponent_Conditional_1_Template_button_click_9_listener","TaskBoxComponent","showMainTask","reloadData","enrichTask","nameOriginal","taskInfo","allowEntry","filterFn","TaskBoxComponent_Template","TaskBoxComponent_Conditional_0_Template","TaskBoxComponent_Conditional_1_Template","NG_VALIDATORS","linkIcon_r2","TextBoxComponent_Conditional_9_Case_0_Template","TextBoxComponent_Conditional_9_Case_1_Template","TextBoxComponent_Conditional_9_Case_2_Template","TextBoxComponent_Conditional_9_Case_3_Template","TextBoxComponent_ng_template_11_Case_0_Template","TextBoxComponent_ng_template_11_Case_1_Template","TextBoxComponent_ng_template_11_Case_2_Template","phoneService","viewType","isPhone","newControlValue","newViewValue","getFormattedPhoneValue","extractNumbers","formattedValue","resetValue","getPhoneValue","getUrlValue","formatted","PhoneService","TextBoxComponent_Query","TextBoxComponent_Template","TextBoxComponent_Template_input_focus_1_listener","TextBoxComponent_Template_input_blur_1_listener","TextBoxComponent_Conditional_4_Template","TextBoxComponent_Template_span_click_5_listener","TextBoxComponent_Conditional_9_Template","TextBoxComponent_Conditional_10_Template","TextBoxComponent_ng_template_11_Template","TimeTrackerBoxComponent_Conditional_0_Template_input_keydown_1_listener","TimeTrackerBoxComponent_Conditional_0_Template_input_input_1_listener","TimeTrackerBoxComponent_Conditional_0_Template_input_blur_1_listener","TimeTrackerBoxComponent","hoursStringPart","minutesStringPart","TimeTrackerBoxComponent_Query","TimeTrackerBoxComponent_Template","TimeTrackerBoxComponent_Conditional_0_Template","TimeTrackerBoxComponent_Conditional_1_Template","TaskInfoComponent","getClPrName","phSelectTask","TimesheetTaskComponent_Conditional_3_Conditional_0_Template","TimesheetTaskComponent_Conditional_3_Conditional_1_Template","TimesheetTaskComponent_Conditional_4_Template_i_click_0_listener","openInfo","openedTaskInfo","searchTask_r5","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_For_4_Template_tr_click_0_listener","searchTaskClick","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_For_4_Template_tr_dblclick_0_listener","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_For_4_Conditional_1_Template","selectedSearchTask","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_Conditional_0_Template","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_For_4_Template","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_Conditional_5_Template","searchTasks","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_5_Template","TimesheetTaskComponent_Conditional_6_Conditional_14_Conditional_6_Template","searchLoading","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_3_Conditional_3_For_3_Template_tr_click_0_listener","client_r8","clientClick","selectedClient","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_3_Conditional_3_For_3_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_3_Conditional_2_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_3_Conditional_3_Template","clientsLoading","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_7_For_4_Template_tr_click_0_listener","project_r10","projectClick","selectedProject","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_7_Conditional_0_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_7_For_4_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Conditional_3_Template_i_click_0_listener","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Conditional_4_Template_i_click_0_listener","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Template_tr_click_0_listener","projectTask_r12","taskClick","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Template_tr_dblclick_0_listener","selectTask","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Conditional_3_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Conditional_4_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Template_i_click_6_listener","getTaskMargin","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_Conditional_0_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_For_4_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_3_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_6_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_7_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Template_div_scroll_9_listener","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_10_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Conditional_11_Template","projectsLoading","tasksLoading","TimesheetTaskComponent_Conditional_6_Conditional_17_Template_button_click_0_listener","TimesheetTaskComponent_Conditional_6_Conditional_7_Template","TimesheetTaskComponent_Conditional_6_Conditional_14_Template","TimesheetTaskComponent_Conditional_6_Conditional_15_Template","TimesheetTaskComponent_Conditional_6_Conditional_17_Template","TimesheetTaskComponent_Conditional_6_Template_button_click_18_listener","searchPh","TimesheetTaskComponent","timeSheetCacheService","timesheetTemplateId","areaExpanded","getProjectValues","openArea","clientsLoad","projectsLoad","cancelLoading","tasksLoad","isMainTask","billingTypeCode","organizationName","isLead","clientLoadingSubscription","getOrganizations","selectedId","projectsLoadingSubscription","currentProject","tasksLoadingSubscription","expandUp","searchSubscription","createdRows","isTaskShow","renderLevel","storedTask","TimeSheetCacheService","TimesheetTaskComponent_Query","TimesheetTaskComponent_Template","TimesheetTaskComponent_Template_div_clickOutside_0_listener","TimesheetTaskComponent_Template_div_click_1_listener","TimesheetTaskComponent_Conditional_2_Template","TimesheetTaskComponent_Conditional_3_Template","TimesheetTaskComponent_Conditional_4_Template","TimesheetTaskComponent_Template_i_focus_5_listener","TimesheetTaskComponent_Conditional_6_Template","UserBoxComponent_div_0_Template_div_onIntersect_0_listener","UserBoxComponent_div_0_ng_container_1_Template","UserBoxComponent_div_0_Template_input_blur_2_listener","UserBoxComponent_div_0_Template_input_keydown_2_listener","UserBoxComponent_div_0_Template_input_click_2_listener","UserBoxComponent_div_0_Template_span_click_4_listener","UserBoxComponent_div_0_Template_button_click_7_listener","avatar_r3","UserBoxComponent_Conditional_2_ng_container_1_Template","UserBoxComponent_ng_template_3_tr_6_Template_tr_mouseenter_0_listener","UserBoxComponent_ng_template_3_tr_6_Template_tr_click_0_listener","UserBoxComponent_ng_template_3_tr_6_ng_container_2_Template","UserBoxComponent_ng_template_3_div_3_Template","UserBoxComponent_ng_template_3_tr_6_Template","UserBoxComponent_ng_template_3_div_7_Template","item_r6","UserBoxComponent_ng_template_5_Conditional_0_Template","UserBoxComponent_ng_template_5_Conditional_1_Template","openListWithInputSelect","UserBoxComponent_Query","UserBoxComponent_Template","UserBoxComponent_div_0_Template","UserBoxComponent_Conditional_1_Template","UserBoxComponent_Conditional_2_Template","UserBoxComponent_ng_template_3_Template","UserBoxComponent_ng_template_5_Template","EntityListComponent_Conditional_1_Conditional_7_Template_button_click_0_listener","EntityListComponent_Conditional_1_Conditional_2_Template","EntityListComponent_Conditional_1_Conditional_3_Template","EntityListComponent_Conditional_1_Conditional_5_Template","EntityListComponent_Conditional_1_Conditional_7_Template","hasViewSettings","multiSelectList","titleService","nested","showCommands","translatedTitle","EntityListComponent_Template","EntityListComponent_Conditional_1_Template","FilterComponent","deleteSingle","deleteMany","actionButton","nestedEntityName","filterByState","getSource","applyFilter","loadTotals","requestPageListener","viewColumn","dataColumn","asKey","requestTotalListener","totalsResponse","disableValidators","DateBoxWrapperComponent","NumberBoxWrapperComponent","SelectBoxWrapperComponent","TextBoxWrapperComponent","CustomFieldHostDirective","CustomFieldComponent","viewContainerRef","hostContainer","createComponent","CustomFieldComponent_Query","CustomFieldComponent_ng_template_0_Template","getControl","field_r3","columnClasses","isVisibleHr","_leftFields","_rightFields","leftFields","rightFields","CustomFieldsComponent_Template","CustomFieldsComponent_Conditional_0_Template","CustomFieldsComponent_For_4_Template","CustomFieldsComponent_For_7_Template","CurrencyBoxWrapperComponent","CurrencyBoxWrapperComponent_Query","hostElement","ViewContainerRef","DateBoxWrapperComponent_Query","NumberBoxWrapperComponent_Query","SelectBoxWrapperComponent_Query","TextBoxWrapperComponent_Query","UserBoxWrapperComponent","UserBoxWrapperComponent_Query","DataNotSavedIndicatorService","DataNotSavedIndicatorComponent","dataNotSavedIndicatorService","dirtyMessageShown","invalidMessageShown","formIndex","registerForm","unregisterForm","DataNotSavedIndicatorComponent_Template","DataNotSavedIndicatorComponent_Conditional_0_Template","DataNotSavedIndicatorComponent_Conditional_1_Template","preventLeave","forms","disableLeaveControl","messageIsOpened","beforeUnloadHandler","dialogText","transitionOnStartListener","FilterDetailsHostDirective","_isEmpty","extraConditionsCount","extraConditionTitle","FilterComponent_Conditional_6_Template_button_click_0_listener","openDetails","FilterComponent_Conditional_6_Conditional_2_Template","FilterComponent_Conditional_7_For_7_Template_button_click_0_listener","view_r4","setView","FilterComponent_Conditional_7_For_7_Template","periodControl","customFieldsForm","excludeClickOutside","enrichFilterForm","isShowCustomFieldsForm","oldText","updateConditionCount","setAllowingInactive","addDetailsComponent","areaIsExpanded","resetValues","wpFilterDetailsHost","FilterComponent_Query","FilterComponent_Template_span_click_4_listener","FilterComponent_Conditional_6_Template","FilterComponent_Conditional_7_Template","FilterComponent_Conditional_8_Template","FilterComponent_Template_div_clickOutside_9_listener","FilterComponent_Template_button_click_11_listener","FilterComponent_ng_template_15_Template","FilterComponent_form_16_Template","FilterComponent_Conditional_19_Template","FilterComponent_Template_button_click_20_listener","_values","allowInactiveSubject","valuesSubject","resetValuesSubject","defaultValues","criteriaKeys","arrayConditionExist","allKeysIsTrue","allKeysIsFalse","customFieldPrefixForDataField","getFilterFieldKey","getFilterOperator","FinancialTypeCellComponent","FinancialTypeCellComponent_Template","GarlandComponent","lights","GarlandComponent_Template","GarlandComponent_li_1_Template","InfoPopupEntryComponent_Conditional_4_ng_container_0_Template","InfoPopupEntryComponent_Conditional_5_ng_container_0_Template","templateParams","InfoPopupEntryComponent","defaultPopperModifiers","initMutationObserver","isElement","observeIntersection","mutationObserver","observeMutation","childList","characterData","MutationObserver","mutations","InfoPopupEntryComponent_Query","InfoPopupEntryComponent_Template_div_clickOutside_0_listener","InfoPopupEntryComponent_Conditional_4_Template","InfoPopupEntryComponent_Conditional_5_Template","popup_r1","InfoPopupComponent","InfoPopupComponent_Template","InfoPopupComponent_For_1_Template","closeHandler","handlerEscape","initResizeSubscribe","isEqualNode","forceUpdate","updating","intersectionObserver","intersectionOptions","intersectionEntry","unobserve","LoadingIndicatorComponent_Conditional_1_Conditional_0_Defer_0_Template","ɵɵdefer","ɵɵdeferWhen","delayTimer$","LoadingIndicatorComponent_Conditional_1_Conditional_0_Template","progressWidthStyle","LoadingIndicatorComponent_Conditional_2_Defer_0_Conditional_0_Template","LoadingIndicatorComponent_Conditional_2_Defer_0_Conditional_1_Template","isSpinnerMode","LoadingIndicatorComponent_Conditional_2_Defer_0_Template","spinnerStyleVariables","formatCssVar","spinnerTopPosition","isOverlay","trimmed","LoadingIndicatorComponent_Template","LoadingIndicatorComponent_Conditional_1_Template","LoadingIndicatorComponent_Conditional_2_Template","menuItem_r8","MenuComponent_For_2_Conditional_0_Template_button_click_1_listener","collapse_r2","toggleSubMenu","MenuComponent_For_2_Conditional_0_Conditional_3_Template","MenuComponent_For_2_Conditional_0_Template_div_ngbCollapseChange_8_listener","onSubActionsCollapseChange","MenuComponent_For_2_Conditional_0_For_11_Template","isPending","getLabelString","canExecute","isCollapsed","MenuComponent_For_2_Conditional_0_Template","MenuComponent_For_2_Conditional_1_Template","item_r10","MenuComponent_ng_template_3_Template_button_click_0_listener","MenuComponent_ng_template_3_Conditional_2_Template","popupService","checkHasIcon","collapseRef","collapsed","MenuComponent_Template","MenuComponent_For_2_Template","MenuComponent_ng_template_3_Template","OffCanvasComponent_Conditional_8_Conditional_1_ng_container_0_Template","OffCanvasComponent_Conditional_8_Conditional_2_ng_container_0_Template","OffCanvasComponent_Conditional_8_Conditional_1_Template","OffCanvasComponent_Conditional_8_Conditional_2_Template","breakPointClassName","OffCanvasComponent_Template","OffCanvasComponent_Template_div_clickOutside_0_listener","OffCanvasComponent_Template_button_click_6_listener","OffCanvasComponent_Conditional_8_Template","element_r3","NullHandlerType","KpiPeriodType","OverviewKpiCurrencyMode","OverviewKpiSettings","durationPipe","defaultSettings","setPeriodByCurrentType","buildCards","onTheCurrentDate","onTheEndOfProject","onTheDate","forThePeriod","filterByTaskId","entityCollection","newPeriodType","setPeriodType","addCard","Profit","Profitability","Duration","assertSettingsChanged","mainTypePrefix","leftTypePrefix","rightTypePrefix","leftLabel","rightLabel","leftValue","rightValue","formattedLeftValue","formattedRightValue","leftDetail","rightDetail","attention","KpiCardComponent","KpiCardComponent_Template","OverviewKpiComponent_div_18_Template_button_click_4_listener","setOverviewCurrency","currencyModeProject","OverviewKpiComponent_div_18_Template_button_click_7_listener","currencyModeBase","getCurrencyTitle","card_r3","OverviewKpiComponent","kpiPeriodType","settingsChanged","defaultType","getTypeTitle","getPeriodTypeTitle","OverviewKpiComponent_Template","OverviewKpiComponent_Template_button_click_10_listener","OverviewKpiComponent_Template_button_click_12_listener","OverviewKpiComponent_Template_button_click_14_listener","OverviewKpiComponent_Template_button_click_16_listener","OverviewKpiComponent_div_18_Template","OverviewKpiComponent_Template_button_click_23_listener","OverviewKpiComponent_Template_button_click_25_listener","OverviewKpiComponent_Template_button_click_27_listener","OverviewKpiComponent_Template_button_click_29_listener","OverviewKpiComponent_wp_date_period_box_31_Template","OverviewKpiComponent_wp_date_box_32_Template","OverviewKpiComponent_tmt_task_box_33_Template","OverviewKpiComponent_div_35_Template","OverviewSwitcherModule","OverviewKpiModule","OverviewSwitcherComponent","OverviewSwitcherComponent_Template","TrendsKpiModule","TrendsKpiComponent","TrendsKpiSettings","kpiTrends$","kpiTrends","setKind","DateTimeLabelFormats","TrendsKpiComponent_button_12_Template_button_click_0_listener","kpiKind","getKindName","TrendsKpiComponent_button_13_Template_button_click_0_listener","TrendsKpiComponent_button_14_Template_button_click_0_listener","highchartsService","chartOptions","alignTicks","legend","labelStyle","fontSize","fontFamily","fontWeight","rangeSelector","yAxis","xAxis","ordinal","valueDecimals","dataGrouping","forced","dateTimeLabelFormats","getScaleName","setScale","setDataGrouping","showLoading","hideLoading","stockChart","reflow","ax0","ax1","userMin","dataMin","userMax","dataMax","TrendsKpiComponent_Template","TrendsKpiComponent_Template_button_click_10_listener","TrendsKpiComponent_button_12_Template","TrendsKpiComponent_button_13_Template","TrendsKpiComponent_button_14_Template","TrendsKpiComponent_Template_button_click_19_listener","TrendsKpiComponent_Template_button_click_21_listener","TrendsKpiComponent_Template_button_click_23_listener","TrendsKpiComponent_div_25_Template","selectedProducts","isLegacy","updateSelectedProducts","ProductSelectorModalComponent_Template","ProductSelectorModalComponent_Template_button_click_5_listener","ProductSelectorModalComponent_div_15_Template","ProductSelectorModalComponent_Template_button_click_21_listener","ProfileResourceControlsComponent_Query","ProjectInfoComponent_Conditional_0_a_2_Template_a_click_0_listener","ProjectInfoComponent_Conditional_0_a_2_Template","ProjectInfoComponent_Conditional_0_div_25_Template","hasProjectRole","ProjectInfoComponent_Template","ProjectInfoComponent_Conditional_0_Template","ProjectInfoComponent_Conditional_1_Template","dependentAnalytics","RateMatricesLinesFilterComponent","dependent","initDependentAnalyticsSubscriptions","RateMatricesLinesFilterComponent_Template","RateMatricesLinesFilterComponent_For_3_Template","newValues","sortDirectionSubject","visibilitySubject","visibility$","_sortDirection","SortComponent_div_0_Template_div_click_0_listener","SortComponent_div_0_div_1_Template","SortComponent_div_0_div_3_Template","SortComponent","SortComponent_Template","SortComponent_div_0_Template","StateBadgeComponent","StateBadgeComponent_Template","StateChangingCellComponent_Template","StateChangingCellComponent_Conditional_1_Template","StateSelectComponent_For_5_Template_input_change_1_listener","state_r2","StateSelectComponent","statesForm","allStates","loadStates","syncControls","currentTarget","valueToPatch","StateSelectComponent_Template","StateSelectComponent_For_5_Template","action_r2","StateIndicatorComponent_ng_container_0_div_1_button_4_Template_button_click_0_listener","performTransition","StateIndicatorComponent_ng_container_0_div_1_button_4_span_1_Template","StateIndicatorComponent_ng_container_0_div_1_button_4_Template","StateIndicatorComponent_ng_container_0_div_1_Template","StateIndicatorComponent_ng_container_0_span_2_Template","StateIndicatorComponent","lc","StateIndicatorComponent_Template","StateIndicatorComponent_ng_container_0_Template","StopwatchIndicatorComponent_li_0_Template_div_click_1_listener","isPaused","swHours","swMinutes","StopwatchIndicatorComponent","stopwatchService","intervalSubscription","StopwatchIndicatorComponent_Template","StopwatchIndicatorComponent_li_0_Template","clientAndProjectName","StopwatchPopupComponent_div_0_ng_container_2_button_5_Template_button_click_0_listener","swExecuted","StopwatchPopupComponent_div_0_ng_container_2_button_6_Template_button_click_0_listener","StopwatchPopupComponent_div_0_ng_container_2_div_1_Template","StopwatchPopupComponent_div_0_ng_container_2_div_2_Template","StopwatchPopupComponent_div_0_ng_container_2_button_5_Template","StopwatchPopupComponent_div_0_ng_container_2_button_6_Template","StopwatchPopupComponent_div_0_ng_container_2_Template_button_click_8_listener","StopwatchPopupComponent_div_0_ng_container_2_Template_button_click_16_listener","StopwatchPopupComponent_div_0_ng_container_2_Template_button_click_20_listener","StopwatchPopupComponent_div_0_Template_div_clickOutside_0_listener","StopwatchPopupComponent_div_0_ng_container_2_Template","StopwatchPopupComponent","updateContainer","clientAndProjectString","projectTaskIsMain","StopwatchPopupComponent_Template","StopwatchPopupComponent_div_0_Template","SubstitutionUserCellComponent_Conditional_0_Conditional_5_Template","SubstitutionUserCellComponent_Template","SubstitutionUserCellComponent_Conditional_0_Template","hoursProgress","TaskInfoComponent_Conditional_0_Conditional_3_Template","TaskInfoComponent_Conditional_0_div_19_Template","TaskInfoComponent_Conditional_0_div_28_Template","TaskInfoComponent_Template","TaskInfoComponent_Conditional_0_Template","TaskInfoComponent_Conditional_1_Template","TimeOffBalanceEntriesTypeCellComponent","TimeOffBalanceEntriesTypeCellComponent_Template","control_r3","collectionValues$","TransitionFormModalComponent_Conditional_1_For_8_Case_4_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_5_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_6_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_7_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_8_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_9_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_10_Template","TransitionFormModalComponent_Conditional_1_For_8_Case_11_Template","getMetaEntityProperty","TransitionFormModalComponent_Conditional_1_Template_button_click_5_listener","TransitionFormModalComponent_Conditional_1_For_8_Template","TransitionFormModalComponent_Conditional_1_Conditional_9_Template","TransitionFormModalComponent_Conditional_1_Template_button_click_11_listener","TransitionFormModalComponent_Conditional_1_Template_button_click_14_listener","transitionProperties","collectionValuesSubject","transitionFormDescription","transitionFormPropertyValues","makeForm","isNavigationProperty","getMetaEntityPropertyDirectoryId","collectionObservables","collectionValues","hasNavigationProperties","setControlValues","getEntityTypes","entityTypeDescriptions","mmProperty","collections","TransitionFormModalComponent_Template","TransitionFormModalComponent_Conditional_1_Template","TreeListComponent_Conditional_0_ng_template_2_For_1_Conditional_5_ng_container_0_Template","elements_r5","TreeListComponent_Conditional_0_ng_template_2_For_1_Template_div_mouseenter_0_listener","TreeListComponent_Conditional_0_ng_template_2_For_1_Template_button_click_1_listener","TreeListComponent_Conditional_0_ng_template_2_For_1_Template_div_click_3_listener","TreeListComponent_Conditional_0_ng_template_2_For_1_Conditional_5_Template","itemClass","selectedItem","TreeListComponent_Conditional_0_ng_template_2_For_1_Template","data_r6","TreeListComponent_Conditional_0_Template_div_keydown_0_listener","TreeListComponent_Conditional_0_Template_div_blur_0_listener","dropSelectedIndex","TreeListComponent_Conditional_0_Template_div_focus_0_listener","TreeListComponent_Conditional_0_ng_container_1_Template","TreeListComponent_Conditional_0_ng_template_2_Template","focused$","keyDown$","treeItems","itemsPlane","buildList","expandFromChild","getFilteredItems","itemsNested","clearTreeIds","updateTreeIds","relatedTarget","rightCode","leftCode","focusableCodes","currentElementIndex","groupsByParent","lead","newItem","newLeadIds","parentKey","fillRecursive","filtered","nestedList","parentId","TreeListComponent_Template","TreeListComponent_Conditional_0_Template","TreeListComponent_Conditional_1_Template","NgTemplateOutlet","UserInfoSettings","UserInfoComponent_Conditional_1_Template_button_click_5_listener","switch","UserInfoComponent_Conditional_1_Template_a_click_8_listener","UserInfoComponent_Conditional_1_Conditional_10_Template","UserInfoComponent_Conditional_1_Conditional_14_Template","UserInfoComponent_Conditional_1_Conditional_15_Template","UserInfoComponent_Conditional_1_Conditional_18_Template","UserInfoComponent_Conditional_1_Conditional_19_Template","UserInfoComponent_Conditional_1_Conditional_20_Template","UserInfoComponent_Conditional_1_Conditional_22_Template","UserInfoComponent_Conditional_1_Conditional_23_Template","UserInfoComponent_Conditional_1_Conditional_24_Template","UserInfoComponent_Conditional_1_Conditional_26_Template","ra","skillsCount","UserInfoComponent_Template","UserInfoComponent_Conditional_1_Template","UserInfoComponent_Conditional_2_Template","UserNotificationPopupComponent","UserNotificationIndicatorComponent","openedPopupId","togglePopup","UserNotificationIndicatorComponent_Template","UserNotificationIndicatorComponent_Template_div_click_1_listener","UserNotificationIndicatorComponent_div_3_Template","UserNotificationPopupComponent_a_8_Template_a_click_0_listener","UserNotificationPopupComponent_a_13_Template_a_click_0_listener","notification_r5","handleClick","openUserSettings","UserNotificationPopupComponent_Query","UserNotificationPopupComponent_Template_button_click_5_listener","UserNotificationPopupComponent_a_8_Template","UserNotificationPopupComponent_a_13_Template","UserNotificationPopupComponent_div_15_Template","ViewSettingsModalComponent_div_15_Conditional_1_Template_input_ngModelChange_2_listener","ViewSettingsModalComponent_div_15_Conditional_1_Template","ViewSettingsModalComponent_div_28_Conditional_4_Template_button_click_0_listener","ViewSettingsModalComponent_div_28_div_6_select_1_Template_select_ngModelChange_0_listener","ViewSettingsModalComponent_div_28_div_6_select_1_Template","total_r8","getTotalTitle","ViewSettingsModalComponent_div_28_select_8_Template_select_ngModelChange_0_listener","ViewSettingsModalComponent_div_28_select_8_option_3_Template","ViewSettingsModalComponent_div_28_Conditional_4_Template","ViewSettingsModalComponent_div_28_Conditional_5_Template","ViewSettingsModalComponent_div_28_div_6_Template","ViewSettingsModalComponent_div_28_select_8_Template","modern","ViewSettingsModalComponent","selectedColumns","columnsContainerId","columnsSortableOptions","predecessorViewColumn","selectedPredecessorColumnIndex","parseSettings","listColumn","userViewColumn","toDefault","defaultUserView","selectedColumn","ViewSettingsModalComponent_Template","ViewSettingsModalComponent_Template_button_click_5_listener","ViewSettingsModalComponent_div_15_Template","ViewSettingsModalComponent_span_22_Template","ViewSettingsModalComponent_div_28_Template","ViewSettingsModalComponent_div_29_Template","ViewSettingsModalComponent_Template_button_click_33_listener","ViewSettingsModalComponent_Template_button_click_38_listener","ViewSettingsModalComponent_Template_button_click_41_listener","ImageZoomDirective","pdfZoom","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_2_Conditional_0_Template","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_2_Conditional_1_Template","pdfIframe","attachmentStatuses","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_1_Template","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_2_Template","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_3_Template","ViewerComponent_For_3_ng_template_0_Conditional_0_Case_4_Template","ViewerComponent_For_3_ng_template_0_Conditional_4_Template_i_click_0_listener","zoomIn","ViewerComponent_For_3_ng_template_0_Conditional_5_Template_i_click_0_listener","zoomOut","ViewerComponent_For_3_ng_template_0_Conditional_0_Template","ViewerComponent_For_3_ng_template_0_Conditional_1_Template","ViewerComponent_For_3_ng_template_0_Conditional_4_Template","ViewerComponent_For_3_ng_template_0_Conditional_5_Template","ViewerComponent_For_3_ng_template_0_Template_i_click_6_listener","saveFile","ViewerComponent_For_3_ng_template_0_Conditional_8_Template","typeWithZoom","ViewerComponent_For_3_ng_template_0_Template","activeAttachmentTemplate","activeZoomItem","prepareAttachments","lazyLoad","activeItem","checkZoom","onSlide","zoomDirectives","imageId","ViewerComponent_Query","ViewerComponent_Template_ngb_carousel_slide_0_listener","ViewerComponent_Template_ngb_carousel_clickOutside_0_listener","ViewerComponent_For_3_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_4_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_5_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_6_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_7_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_8_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_9_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_10_Template","WorkflowActionCommentFormComponent_Conditional_1_For_8_Case_11_Template","WorkflowActionCommentFormComponent_Conditional_1_Template_button_click_5_listener","WorkflowActionCommentFormComponent_Conditional_1_For_8_Template","WorkflowActionCommentFormComponent_Conditional_1_Conditional_9_Template","WorkflowActionCommentFormComponent_Conditional_1_Template_button_click_11_listener","WorkflowActionCommentFormComponent_Conditional_1_Template_button_click_14_listener","actionProperties","_requestComment","actionFormDescription","WorkflowActionCommentFormComponent_Template","WorkflowActionCommentFormComponent_Conditional_1_Template","WorkflowIndicatorPopupComponent","WorkflowIndicatorPopupComponent_Template","WorkflowIndicatorPopupComponent_div_23_Template","WorkflowIndicatorComponent_button_0_Template_button_click_0_listener","WorkflowIndicatorComponent","WorkflowIndicatorComponent_Template","WorkflowIndicatorComponent_button_0_Template","OPERATOR_BY_META_ENTITY_TYPE","FilterConditionComponent_Conditional_0_For_7_Template_button_click_0_listener","propertyControl","FilterConditionComponent_Conditional_0_Conditional_9_Case_2_Conditional_0_Template","FilterConditionComponent_Conditional_0_Conditional_9_Case_2_Conditional_1_Template","FilterConditionComponent_Conditional_0_Conditional_9_Case_0_Template","FilterConditionComponent_Conditional_0_Conditional_9_Case_1_Template","FilterConditionComponent_Conditional_0_Conditional_9_Case_2_Template","metaEntityPropertyData","propertyRangeForm","FilterConditionComponent_Conditional_0_Conditional_11_Case_0_Template","FilterConditionComponent_Conditional_0_Conditional_11_Case_1_Template","FilterConditionComponent_Conditional_0_Conditional_13_Case_0_Template","FilterConditionComponent_Conditional_0_Conditional_13_Case_1_Template","FilterConditionComponent_Conditional_0_For_7_Template","FilterConditionComponent_Conditional_0_Conditional_9_Template","FilterConditionComponent_Conditional_0_Conditional_10_Template","FilterConditionComponent_Conditional_0_Conditional_11_Template","FilterConditionComponent_Conditional_0_Conditional_12_Template","FilterConditionComponent_Conditional_0_Conditional_13_Template","FilterConditionComponent_Conditional_0_Template_button_click_14_listener","onRemoveClick","FilterConditionComponent","nullableOperator","filterCondition","onConditionChange","getPlainValue","boolean","data$","FilterConditionComponent_HostBindings","FilterConditionComponent_Conditional_0_Template","FilterConditionComponent_Conditional_1_Template","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_For_9_Template_tmt_filter_condition_onRemoveClick_0_listener","ɵ$index_23_r4","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_For_9_Template_tmt_filter_condition_onConditionChange_0_listener","updateCondition","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_For_9_Conditional_1_Template","condition_r7","paramsBySourceField","filter_r8","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_Template_button_click_4_listener","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_For_9_Template","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_Template_button_click_11_listener","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_1_Template_button_click_5_listener","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_0_Template","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_1_Template","FilterConditionsBuilderComponent_Conditional_0_For_14_Conditional_2_Template","sourceControl","FilterConditionsBuilderComponent_Conditional_0_Conditional_16_Template_button_click_0_listener","sourceBoxShown","FilterConditionsBuilderComponent_Conditional_0_Template_button_click_9_listener","clearCriterions","FilterConditionsBuilderComponent_Conditional_0_For_14_Template","FilterConditionsBuilderComponent_Conditional_0_Conditional_15_Template","FilterConditionsBuilderComponent_Conditional_0_Conditional_16_Template","isNavigationExpanded","buildSource","availableSourceFields","filterIndex","criterionIndex","getPropertyName","navigationMetaEntity","navigationProperty","navigationSourceField","FilterConditionsBuilderComponent_Template","FilterConditionsBuilderComponent_Conditional_0_Template","FILTER_OPERATORS","biLink","IconPickerComponent_Template","actionsCount","detailsMessage","el_r2","MassOperationComponent_Conditional_11_For_6_For_4_Conditional_2_Template","tmp_25_0","MassOperationComponent_Conditional_11_For_6_For_4_Template","group_r3","MassOperationComponent_Conditional_11_For_6_Template","failActionsCount","errorGroups","MassOperationComponent_Conditional_13_Template_button_click_0_listener","operationInProgress","MassOperationComponent_Conditional_14_Template_button_click_0_listener","MassOperationComponent_Conditional_15_Template_button_click_0_listener","massOperationCompleted","initChangeStateMassOperationHelper","initDeleteMassOperationHelper","initReAccountMassOperationHelper","errorsHandler","errorTitle","originalIndex","MassOperationComponent_Template","MassOperationComponent_Template_button_click_5_listener","MassOperationComponent_Conditional_9_Template","MassOperationComponent_Conditional_10_Template","MassOperationComponent_Conditional_11_Template","MassOperationComponent_Conditional_13_Template","MassOperationComponent_Conditional_14_Template","MassOperationComponent_Conditional_15_Template","stateProperty","kindIdProperty","NavigationItemsComponent_Conditional_6_Template_button_click_2_listener","NavigationItemsComponent_Conditional_6_Template_button_click_7_listener","removeNavigationItem","areas","groupsObject","initAreasGroupsOptions","initNavigationArray","addNavigationItem","nav","addingGroup","initNavigationRowSubscription","NavigationItemsComponent_Template","NavigationItemsComponent_Conditional_6_Template","AccordionStateSettings","accordion","initializeAccordionState","listenToAccordionEvents","shown","accordionItems","accordionId","expanded","saveAccordionState","hidden","NgbAccordionItem","Position","HelperBlock","_zIndex","ngDraggable","allowDrag","getDragEl","putBack","moving","orignal","oldTrans","tempTrans","currTrans","oldZIndex","needTransform","draggingSub","_helperBlock","started","stopped","edge","outOfBounds","gridSize","inBounds","trackPosition","preventDefaultEvent","lockAxis","movingOffset","endOffset","resetPosition","bounds","isFirstChange","isIPosition","boundsCheck","subtract","divide","translateX","translateY","pickUp","getComputedStyle","getPropertyValue","zIndexMoving","subscribeEvents","passive","onMouseMove","isIEOrEdge","unsubscribeEvents","boundary","elem","getCurrentOffset","removeProperty","checkHandleTarget","MouseEvent","srcElement","AngularDraggableDirective_HostBindings","AngularDraggableDirective_mousedown_HostBindingHandler","AngularDraggableDirective_touchstart_HostBindingHandler","_added","_helper","isMouseEvent","changedTouches","getCurrent","multiply","AutofocusDirective","autoFocus","_isBusy","_isDisabled","updateDisabled","_text","innerHTML","PLATFORM_ID","isPlatformBrowser","ClickOutsideDirective","_el","platformId","attachOutsideOnClick","delayClickOutsideInit","delayClickOutsideEmit","emitOnBlur","excludeBeforeClick","clickOutsideEvents","clickOutside","_nodesExcluded","_initOnClickBody","_onWindowBlur","_init","_removeAttachOutsideOnClickListener","_removeWindowBlurListener","_excludeCheck","_initAttachOutsideOnClickListener","_initWindowBlurListener","_shouldExclude","_emit","excludedNode","DocsArticleDirective","tmtDocsArticle","DocsArticleDirective_HostBindings","DocsArticleDirective_click_HostBindingHandler","RendererStyleFlags2","draggableElements","dragData","isCloneOver","animating$","animateTime","placeholderClass","cloneClass","escapeObservable$","sortable","elRect","offsetHeight","runTransformAnimation","withoutTransition","onDragStart","containerRect","Important","clearSelection","setOnStart","moveClone","getDestinationGroup","setOnDragOver","onDragOver","crossed","getClosestElement","directionValidations","animating","breakpoint","movementDirection","keepTransform","onDrop","runMagnetAnimation","removePlaceholders","updateItems","removeClone","setOnItemUpdate","setCompleted","onDragEnd","useX","useY","groupElements","closestGroup","byWhat","targetCenter","crossDistance","crossElement","crossIndex","closestDistance","closestElement","closestIndex","elCenter","positionDiff","getDraggable","animated","targetEl","cloneRect","paddings","getPaddings","getSelection","removeAllRanges","computedStyleMap","styleMap","onDragOver$","prevToGroupName","newToGroupName","draggableElement","moveEvent","FreezeTableDirective","scrolledTableIndex","scrollTableBodies","leftWidthStrategy","rightWidthStrategy","afterViewInitInitialization","tablesCount","containerElement","mutationObserverEnabled","initializeDirective","subtree","isNeedFreezeHeader","headerRect","scrollTableHeaders","bodyRect","bodyPaddingTop","paddingTop","rootRect","rootContainer","toolbarRect","isNeedFreezeFooter","footerRect","scrollTableFooters","scrollerHeight","scrollerContainer","updatePositions","leftBodyRect","leftHeaderRect","leftFooterRect","leftContainerWidth","headerBlockHeight","hasHorizontalScroll","rightContainerWidth","freezeHeader","freezeFooter","updateToolbar","updateHeader","fixIndex","updateFooter","updateBody","updateScroller","scroller","createContainers","onHorizontalScrolled","verticalShadow","leftHeader","leftFooter","subscribeToScroll","scrollHandler","getCurrentScrolledPosition","scrollType","leftScrollValue","onScrollHorizontal","onScrollVertical","addStartDragEvent","mutationObserver$","redraw$","horizontalScroll$","scrollToLeft$","scrollToPosition$","pending$","scrollToRight$","scrollToSelector$","anchorElement","headerWidth","widthToScrolling","offsetLeft","scrollToPositionSubject","redrawSubject","horizontalScrollSubject","verticalScrollSubject","goTo","zoomEnabled","disableZoom","enableZoom","setStartPosition","zoomMax","zoomStep","zoomDefault","startPosition","currentPosition","borderPosition","pointerListener","movePosition","checkOverBorder","setTransition","setTranslate","zoomScale","calcBorderPosition","image","ratio","naturalHeight","naturalWidth","ImageZoomDirective_HostBindings","ImageZoomDirective_dblclick_HostBindingHandler","debounce","IntersectableDirective","initObservable","intersectionObservable","scrollTableHeader","scrollTableFooter","topMargin","bottomMargin","callback","onIntersect","debounceFn","currentGrid","formControlName","controlWrapper","toggleRequiredIndicator","statusChanges","hasValidator","LabelIndicatorDirective_ContentQueries","LoadingValueDirective","updateValue","OffCanvasSettings","OffCanvasResizeDirective","grabber","minWidth","maxWidth","saveWidth","innerWidth","valueSubject","updateDisabledState","onTouched","initLabel","RadioGroupDirective_ContentQueries","RadioGroupModule","innerInput","firstElementChild","ResizingDirective","columnResized","minColumnWidth","resizedSubject","pageX","startPageX","newWidth","startWidth","currentColumn","currentColumnName","TruncateDirective","containerWidthWithoutGaps","elementsWidth","elementsWidthInitial","initWidths","resizeObserver","ResizeObserver","htmlElements","elementsGap","elementsWidthSum","maxElementWidth","maxElementWidthIndex","elementWidth","truncatedElementsIndexes","childrenElements","FireLine","getRandom","getPositionAndAngle","bgColor","filterColor","shoot","fireLine","angle","neededSpace","trackMP","allowedSide","innerHeight","calculateEndPoint","x1","y1","angleDegrees","angleShift","angleRadians","x2","cos","y2","sin","intervalBetweenShoot","simpleShoot","doubleExplosion","singleExplosion","millisecond","fromControlName","toControlName","fromValue","toValue","maxTo","maxFrom","components","controlsSubscriptions","master","slave","masterControl","slaveControl","notReset","uuid","ii","html2canvas","defaultExportScale","exportType","exportFileName","croppedCanvas","croppedCanvasCtx","sourceY","sourceHeight","drawImage","downloadImage","quality","dataUrl","toDataURL","toBlob","ClipboardItem","DATE_COLUMN_WIDTH","getDataField","navigationPrefix","finalize","_errors","_completedCount","currentChunk","failedObservables","progress$","preventRequesting$","chunkSize","retry","progressIncrement","chunk","buildObservable","collator","Intl","Collator","numeric","compare","resolveContext","resolveEntity","resolveUserSettings","resolveUserId","resolveCurrentId","configByEntityType","titles","cases","unicodeString","theUnicode","VIEW_COLUMNS","Max","Min","Average","not","lt","workflowInstances","getFilterByActiveWorkflowTasks2","defaultProjectBillingColumns","projectTaskTableNoAutoPlanningColumns","projectTaskTimelineNoAutoPlanningColumns","getViewColumns","isMonitoring","TIME_OFF_BALANCE_ENTRIES_LIST","TIME_OFF_LIST","timeOffRequest","TIMESHEET_LIST","timeSheet","USER_LIST_VIEW_COLUMNS","WorkflowInstanceEntityCellComponent","WORKFLOW_INSTANCE_LIST","WORKFLOW_TASK_TIMESHEET_LIST","WORKFLOW_TASK_LIST","RESTRICTED_FORMATS","extensionsType","pdf","video","extension","parsedName","StopwatchStopType","voidStateId","EnumEntity","vat20","vat18","vat10","vat0","CodedEntity","AccountingEntryModes","ProjectTask","ProjectTaskDependency","fixedUnits","requestCanceledStateId","requestDraftStateId","deleting","TimeOffBalanceEntryMode","TimeOffBalanceEntryModes","TimeOffBalanceEntryType","accrual","TimeOffBalanceEntryTypes","DayPart","LicenseProduct","timeTracking","legacyStarter","legacyBasic","legacyStandard","corp","RecurringExpenseFrequency","RevenueEstimateFrequency","workingDay","BtValidationException","Canceled","TimeOff_CrossNonDraftTimesheetExists","SavingQueueException","ClientSession","Permission","EntityAccess","ClientSessionConfiguration","InteractionsService","interactionsService","interactionCardName","interactionCardData","InteractionCardComponent","loadInteractionById","deleteInteraction","loadInteractionTypes","InteractionCardComponent_Template","InteractionCardComponent_Conditional_0_Template","InteractionCardComponent_Conditional_3_Template","interactionForm","isInteractionCardMode","InteractionFormComponent_Conditional_57_Conditional_1_Template_button_click_0_listener","InteractionFormComponent_Conditional_57_Conditional_1_Template","InteractionFormComponent_Conditional_57_Template_button_click_2_listener","interaction","InteractionFormComponent","isInteractionModalMode","interactionTypes$","resetForm","interactionFormValue","saveInteraction","editInteraction","defaultInteractionType","toISOString","notPlanned","InteractionFormComponent_Query","InteractionFormComponent_Conditional_0_Template","InteractionFormComponent_Conditional_57_Template","InteractionItemComponent_Conditional_1_Conditional_0_Template_button_click_1_listener","copyLink","InteractionItemComponent_Conditional_1_Conditional_0_Template_button_click_4_listener","enableEditMode","InteractionItemComponent_Conditional_1_Conditional_0_Template_button_click_7_listener","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_1_Template_button_click_1_listener","openClient","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_2_Template_button_click_1_listener","openDeal","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_3_For_2_Template_button_click_2_listener","interactionContact_r7","openContact","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_3_For_2_Conditional_4_Template","maxWidthContact","ɵ$index_89_r8","ɵ$count_89_r9","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_3_For_2_Template","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_1_Template","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_2_Template","InteractionItemComponent_Conditional_1_Conditional_24_Conditional_3_Template","InteractionItemComponent_Conditional_1_Conditional_0_Template","InteractionItemComponent_Conditional_1_Conditional_2_Template","InteractionItemComponent_Conditional_1_Case_4_Template","InteractionItemComponent_Conditional_1_Case_5_Template","InteractionItemComponent_Conditional_1_Case_6_Template","InteractionItemComponent_Conditional_1_Case_7_Template","InteractionItemComponent_Conditional_1_Conditional_12_Template","InteractionItemComponent_Conditional_1_Template_button_click_17_listener","InteractionItemComponent_Conditional_1_Conditional_24_Template","isModifiable","interactions","hasDetailedInfo","InteractionItemComponent_Conditional_2_Template_tmt_interaction_form_onCancel_0_listener","InteractionItemComponent","setMaxWidth","setActiveInteraction","origin","visibleSections","InteractionItemComponent_Template","InteractionItemComponent_Conditional_1_Template","InteractionItemComponent_Conditional_2_Template","activeInteraction","InteractionModalComponent_Template","InteractionModalComponent_Template_button_click_5_listener","InteractionModalComponent_Template_button_click_9_listener","InteractionModalComponent_Template_button_click_12_listener","InteractionsFilterComponent","InteractionsFilterComponent_Template","InteractionsFilterService","interaction_r1","interactionsFilterService","getShowOnlyPlanned","initService","setShowOnlyPlanned","InteractionsComponent_Template","InteractionsComponent_Conditional_0_Template","InteractionsComponent_For_12_Template","InteractionsComponent_ForEmpty_13_Template","InteractionsFilterSettings","interactionTypes","_activeInteraction","_interactions","_interactionCardData","_showOnlyPlanned","interactionsCollection","setFromLocalSettings","loadInteractions","currentInteractions","sortInteractions","interactionToSave","interactionData","savedInteraction","newInteractionData","interactionId","oldInteractionIndex","interactionIndex","datePrev","dateNext","sortMultiplier","showOnlyPlanned","resourceType_r1","ResourcesFilterComponent","ResourcesFilterComponent_Query","ResourcesFilterComponent_div_69_Template","resourceTypeConditionExist","allResourceTypesIsTrue","allResourceTypesIsFalse","dateNow","newRates","TariffRatesToolbarComponent_Conditional_0_Template_button_click_2_listener","TariffRatesToolbarComponent_Conditional_0_Template_button_click_7_listener","TariffRatesToolbarComponent","TariffRatesToolbarComponent_Template","TariffRatesToolbarComponent_Conditional_0_Template","TariffRatesComponent","TariffRatesComponent_Template","UserSettingsModalService","UserSettingsModalComponent_button_18_Template_button_click_0_listener","UserSettingsModalComponent_button_19_Template_button_click_0_listener","UserSettingsModalComponent_button_20_Template_button_click_0_listener","UserSettingsModalComponent_button_21_Template_button_click_0_listener","visibleTabs","_externalUserTabNamesToExclude","saveCurrentTab","setVisibleTabsByAuthProvider","getUserAuthProviderObservable","tab","close$","UserSettingsModalComponent_Template","UserSettingsModalComponent_Template_button_click_6_listener","UserSettingsModalComponent_Template_ul_navChange_9_listener","UserSettingsModalComponent_Template_ul_activeIdChange_9_listener","UserSettingsModalComponent_li_10_Template","UserSettingsModalComponent_wp_user_settings_profile_12_Template","UserSettingsModalComponent_wp_user_settings_properties_13_Template","UserSettingsModalComponent_wp_user_settings_notifications_14_Template","UserSettingsModalComponent_wp_user_settings_security_15_Template","UserSettingsModalComponent_wp_user_settings_substitutes_16_Template","UserSettingsModalComponent_button_18_Template","UserSettingsModalComponent_button_19_Template","UserSettingsModalComponent_button_20_Template","UserSettingsModalComponent_button_21_Template","UserSettingsPropertiesComponent","UserSettingsProfileComponent","UserSettingsNotificationsComponent","UserSettingsNotificationsFormComponent","UserSettingsSecurityComponent","UserSettingsSubstitutesComponent","saveSubject","browserPermissionAlert","notifyCheckboxes","notifyByEmail","useBrowserNotifications","setMarkPristineFix","getPermissionAlert","UserSettingsNotificationsFormComponent_Template","UserSettingsNotificationsFormComponent_div_4_Template","UserSettingsNotificationsFormComponent_ngb_alert_16_Template","notifyOnDueDateExpired","workflowTaskCreated","issueAssigned","UserSettingsNotificationsComponent_Template","UserSettingsNotificationsComponent_Template_wp_user_settings_notifications_form_form__1_listener","UserSettingsProfileComponent_Template","UserSettingsProfileComponent_Template_ngx_dropzone_change_8_listener","savingSubscription","UserSettingsPropertiesComponent_Template","oldPassword","newPasswordRepeat","UserSettingsSecurityComponent_Template","UserSettingsSubstitutesComponent_Template","dashboards","defaultAvatarUrl","listener","digitsInfo","zeroIsNull","daySymbol","nullHandlerType","zero","hotkeys","HotkeyPipe","bracket","os","getOS","osKey","combination","platform","userAgentData","macosPlatforms","windowsPlatforms","iosPlatforms","Hotkey","PathPipe","percentPointSymbol","zeroIfNull","fillTemplate","SafeValuePipe","bypassSecurityTrustStyle","bypassSecurityTrustScript","hoursUnit","minutesUnit","emptyIfZero","forceType","isDecimalMode","HoursAndMinutes","HoursAndMinutesHumanized","isSchedulePercentMode","TranslateCutPipe","cutIndex","TruncatePipe","ellipsis","substr","hourSymbol","isSavingSubject","lastDataChanged","dataChanged","onbeforeunload","saveAttemptTimeout","clearTimeout","saveAttempt","saveData","savedWait","startSave","saveDuration","msg","_get","_merge","isBrowserSupported","isBrowserPermitted","isUserPermitted","otherTabAwaitTime","otherTabDetected","permissionDescription","isNeedAction","denied","granted","initOtherTabListener","currentPermission","eventHandler","otherTabDetecter","onerror","onshow","onclose","requestPermission","callBackPermission","Notification","minMatrixKey","infoBlockId","deleteCode","bsCode","entryDeselectedSubject","entrySelectedSubject","selectingStartedSubject","selectingStarted$","startEditingSubject","stopEditingSubject","entryDespreadedSubject","entrySpreadedSubject","valueChangedSubject","massValueChangeInProgressSubject","entryDeactivatedSubject","entryActivatedSubject","resetSubject","selectedCellsSubject","selectedCells$","entryPos","activeEntry","isSelecting","isSpreading","lastSpreadEntry","firstSelectedEntry","lastSelectedEntry","mouseupHandler","selectRange","spreadValues","keyDownHandler","isActiveElementCell","selectedRange","getSelectedRange","copyToClipboard","maxX","maxY","rangeRight","rangeBottom","lineArray","cellIndex","cellArray","updatedActiveEntry","documentClickHandler","lostFocus","selectedCount","getSpreadRange","getLeftRange","getTopRange","getRightRange","getBottomRange","selectSpreadRange","spreadRange","srXGap","srYGap","setCellValue","closeComment","withAdditionalBlocks","isCell","activeElement","cut","directoryCache","directoryEntriesCache","getDirectory","requestDirectory","requestDirectoryEntries","lastStartEvent","pointermove$","eventThrottle","lastAutoScrollParams","directionY","directionX","scrollSpeed","autoScrollOptions","startContainerScroll","scrollSpeeds","bodyRight","scrollX","scrollY","coordsDiff","scrollByDirection","scrollLeft","speedIndex","ceil","autoScrollingSubscription","onStartSubject","onDragOverSubject","onDropSubject","onEndSubject","onItemUpdateSubject","completedSubject","entityTypeDescription","currentView","usingDataColumns","stateColumn","kindColumn","orderField","orderClause","processDataField","iterateLevel","totalLogicalWidth","gridColumn","getDefaultUserView","requiredFeature","checkView","updatingUserViewIsRequired","lastIndexOf","lazy","editableColumns","addColumns","additionalParams","columnType","getReadonlyColumnType","phoneTemplate","chooseTemplate","char","firstUnderscore","numberCount","replaceEightCode","onlyNumbersValue","fixedNumbersLength","patternLength","phoneValue","complexKey","maxLevel","allTeamName","observableVersion","prepareTeamMembers","splitCount","maxNameLength","correctedName","queue","lastAddingTime","existedItem","saveNext","rowVersionFactory","handlerFactory","patchDTO","canBeMerged","lastExistQueueTaskIndex","queueTask","timeoutId","elapsedTime","milliseconds","nextQueueTask","savingQueueException","errorSubscription","btnText","targetId","escapingFirstDigit","scrollTarget","isScrollable","getFirstScrollableParent","calculateScrollDistance","overflowRegex","overflowY","targetRectTop","parentRectTop","hotkey","UndoRedoButtonsComponent_Template","UndoRedoButtonsComponent_Template_button_click_1_listener","undoRequest","UndoRedoButtonsComponent_Template_button_click_5_listener","redoRequest","ɵɵpropertyInterpolate2","undoRedoUpdateDataSubject","undoRedoUpdateData$","undoRedoInProgress","stopKeyboardSubscriptionSubject","undoRedoWarnings","abortSessionSubscription","currentSessionId","sessionId","initKeyboardSubscription","isPreventUndoRedo","HTMLInputElement","HTMLTextAreaElement","NgxDropzoneModule","FormsModule","LinkyModule","AngularResizeEventModule","AutosizeModule","PdfViewerModule","NgxNl2brModule","NgComponentOutlet","maxEmailLength","emailTooLong","invalidEmail","emailContainsSpaces","atSymbolCount","multipleAtSymbols","invalidChars","localPart","invalidDotPosition","notUniq","urlRegex","invalidUrl","translations","FakeLoader","getTranslation","TranslatePipeMock","args","TranslateServiceStub","ngModule","TimeOffBalanceEntryService","TimeOffBalanceEntryCardComponent_div_9_Template_button_click_1_listener","TimeOffBalanceEntryCardComponent","TimeOffBalanceEntryCardComponent_Template","TimeOffBalanceEntryCardComponent_Template_wp_form_header_reloaded_0_listener","TimeOffBalanceEntryCardComponent_wp_time_off_balance_entry_body_7_Template","TimeOffBalanceEntryCardComponent_div_9_Template","documentName","cu","TimeOffBalanceEntryCreationComponent","TimeOffBalanceEntryCreationComponent_Template","TimeOffBalanceEntryCreationComponent_Template_button_click_6_listener","TimeOffBalanceEntryCreationComponent_Template_button_click_10_listener","TimeOffBalanceEntryCreationComponent_Template_button_click_14_listener","TimeOffBalanceEntryFilterComponent","timeOffBalanceEntryTypes","timeOffBalanceEntryModes","TimeOffBalanceEntryFilterComponent_Template","TimeOffBalanceEntryFilterService","TimeOffBalanceEntriesListComponent","TimeOffBalanceEntriesListComponent_Template","getDocumentStateParams","TimeOffBalanceEntryBodyComponent","timeOffBalanceEntryType","creationMods","timeOfType","TimeOffBalanceEntryBodyComponent_Template","TimeOffBalanceEntryBodyComponent_div_1_Template","TimeOffRequestService","TimeOffPeriodModalComponent","finishDate","startDayIntervalValue","finishDayIntervalValue","startDayHours","finishDayHours","startDayInterval","finishDayInterval","getDayParts","TimeOffPeriodModalComponent_Template","TimeOffPeriodModalComponent_Template_button_click_5_listener","TimeOffPeriodModalComponent_Template_button_click_9_listener","TimeOffPeriodModalComponent_Template_button_click_12_listener","IntersectedTimesheetsComponent","TimeOffCardComponent_ng_container_5_button_31_Template_button_click_0_listener","TimeOffRequests","TimeOffCardComponent_ng_container_5_Template_button_click_12_listener","TimeOffCardComponent_ng_container_5_button_31_Template","TimeOffCardComponent_ng_container_5_wp_time_off_request_info_44_Template","TimeOffCardComponent_ng_container_5_Template_ul_activeIdChange_46_listener","TimeOffCardComponent_ng_container_5_div_52_Template","TimeOffCardComponent_ng_container_5_div_57_Template","TimeOffCardComponent_ng_container_5_tmt_entity_workflow_tasks_62_Template","TimeOffCardComponent_ng_container_5_tmt_state_history_67_Template","timeOffTypeQuery","TimeOffCardComponent","updateUIState","reloadInfo","updatePeriodDisplayText","getSaveData","goToBalances","TimeOffCardComponent_Template","TimeOffCardComponent_ng_container_5_Template","FullDay","TimeOffCreationComponent_Template","TimeOffCreationComponent_Template_button_click_5_listener","TimeOffCreationComponent_div_9_Template","TimeOffCreationComponent_wp_time_off_request_info_18_Template","TimeOffCreationComponent_Template_button_click_20_listener","TimeOffCreationComponent_Template_button_click_23_listener","TimeOffRequestFilterComponent","TimeOffRequestFilterComponent_Template","TimeOffRequestFilterComponent_div_16_Template","TimeOffRequestFilterComponent_div_17_Template","TimeOffRequestFilterComponent_ng_container_19_Template","TimeOffRequestFilterComponent_div_20_Template","TimeOffRequestFilterService","TimeOffRequestListComponent","TimeOffRequestListComponent_Template","IntersectedTimesheetsComponent_p_10_Template_a_click_3_listener","timesheet_r3","IntersectedTimesheetsComponent_Template","IntersectedTimesheetsComponent_Template_button_click_6_listener","IntersectedTimesheetsComponent_p_10_Template","IntersectedTimesheetsComponent_Template_button_click_12_listener","dayParts","day_r2","calcDuration","request_r4","TimeOffPeriodComponent","existsRequest","cellWidth","isSingleDay","loadSchedule","reCalculatePreview","getCalcDuration","ThreeQuarters","Half","Octet","TimeOffPeriodComponent_Template","TimeOffPeriodComponent_div_13_Template","TimeOffPeriodComponent_div_22_Template","TimeOffPeriodComponent_div_24_Template","TimeOffPeriodComponent_th_36_Template","TimeOffPeriodComponent_td_39_Template","TimeOffPeriodComponent_tr_46_Template","dayPart","isApproved","getRemainValue","TimeOffRequestInfoComponent","unitName","TimeOffRequestInfoComponent_Template","TimeOffRequestInfoComponent_tr_15_Template","TimeOffRequestInfoComponent_tr_16_Template","TimeOffRequestInfoComponent_p_17_Template","TimeOffScheduleSettings","TimeOffInfoComponent","TimeOffInfoComponent_Template","TimeOffInfoService","openSubject","open$","mergeMap","TimeOffScheduleDataService","leaveSchedules","allIsLoaded","requestListener","getLabelClass","leaveSchedulePageParams","leaveScheduleDays","leaveSchedule","leaveScheduleDay","createdLeaveSchedule","usersPageParams","formatTextValue","usersPageFilter","includeSubordinateDepartments","loadedUsers","TimeOffScheduleFiltersComponent","TimeOffScheduleFiltersComponent_Template","TimeOffScheduleFiltersService","clearText","TimeOffScheduleComponent_tr_22_Template_button_click_5_listener","user_r2","TimeOffScheduleComponent_tr_38_td_1_Template_td_click_0_listener","day_r7","dayTarget_r8","TimeOffScheduleComponent_tr_38_td_1_Template","leaveSchedule_r9","trackId","TimeOffScheduleComponent","scheduleNavigationVisibleParts","createTimeOffRequest","pageTitle","TimeOffScheduleComponent_Template","TimeOffScheduleComponent_tbody_19_Template","TimeOffScheduleComponent_tr_22_Template","TimeOffScheduleComponent_th_29_Template","TimeOffScheduleComponent_th_31_Template","TimeOffScheduleComponent_tr_35_Template","TimeOffScheduleComponent_tr_38_Template","activitiesCache","organizationsCache","projectsCache","projectTasksCache","projectTariffsCache","projectCostCenterCache","rolesCache","getActivities","getProjectTariffs","getProjectCostCenters","getRoles","getBillCodes","billCodesCache","TimesheetCardService","timesheet","timesheetSubject","webSocketHotChangesService","timesheet$","linesUpdatedSubject","linesUpdated$","selectControls","issueLines","dataLines","timeSheetLineCollection","timeEntryCollection","timesheetLinesStorageName","lineAnalytics","resolveIndirectUpdates","timeSheetLines","timeAllocations","timeOffRequests","issues","fillCustomFieldsOut","copyLines","withHours","copyHours","createLinesFromResourcePlan","emitLinesUpdated","checkIfTaskCanBeUsed","checkAndFillTimeSheetLine","newLine","lineData","billCodes","getTimesheetLineToSave","timeSheetLine","billCodeId","getAllocationToSave","allocation","newAllocation","timeSheetId","isAllocationFilledOut","allocationCustomFields","subscribeDataLineGroup","fillOutAllocationsGroup","patchAllocation","lineId","allocationId","updatedAllocation","allocationForm","allocations","updateIssueAllocation","isRemoved","issueAllocationIndex","requestTriggerFields","issueAllocation","fillOutIssueDataLines","getLineIndex","patchLine","deletedLineId","toSorted","timeAllocation","calculateGroupTotal","allocationFormArray","allocationControl","deletedTimeAllocationId","fillOutDataLines","timeEntry","timeAllocationsByLine","lineKey","timeEntries","allTimeAllocations","groupedTimeEntries","currentDate","subscribeAllocation","cellGroup","getObservable","isFilled","updatedData","dataToPatch","entityKey","notSavingProperties","isProjectChanged","TimeAllocation","TimeSheetLine","allocationFields","templateField","allocationField","lineCustomField","ValidationModalComponent","TimesheetLifecycleService","checkAndRun","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Conditional_3_For_3_Template_tr_click_0_listener","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Conditional_3_For_3_Template","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Conditional_1_Template","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Conditional_2_Template","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Conditional_3_Template","TimesheetAnalyticBoxComponent_Conditional_0_Template_div_clickOutside_0_listener","TimesheetAnalyticBoxComponent_Conditional_0_Template_div_click_1_listener","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_2_Template","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_3_Template","TimesheetAnalyticBoxComponent_Conditional_0_Conditional_5_Template","TimesheetAnalyticBoxComponent","TimesheetAnalyticBoxComponent_Template","TimesheetAnalyticBoxComponent_Conditional_0_Template","AllocationIssueInfoComponent","AllocationInfoComponent","TimesheetCellComponent_div_1_Template_div_mousedown_0_listener","TimesheetCellComponent_div_1_Template_div_dblclick_0_listener","getIconTitle","TimesheetCellComponent_input_9_Template_input_mousedown_0_listener","TimesheetCellComponent_input_9_Template_input_keydown_0_listener","TimesheetCellComponent_input_9_Template_input_input_0_listener","TimesheetCellComponent_input_9_Template_input_blur_0_listener","TimesheetCellComponent","timeDurationPipe","updateIcon","dayScheduleDuration","showIcon","showStop","showStart","isActiveStopwatch","issueMode","openAllocationInfo","closeAllocationInfo","stopwatchSubscription","arg","TimesheetCellComponent_Query","TimesheetCellComponent_Template","TimesheetCellComponent_div_1_Template","TimesheetCellComponent_Template_div_dblclick_2_listener","TimesheetCellComponent_Template_div_click_2_listener","TimesheetCellComponent_Template_div_mousedown_2_listener","TimesheetCellComponent_span_5_Template","TimesheetCellComponent_input_9_Template","ruleName","message_r2","ValidationModalComponent_For_8_Conditional_1_Template","ValidationModalComponent_For_8_Conditional_2_Template","ValidationModalComponent_For_8_Conditional_5_Template","ValidationModalComponent_For_8_Conditional_6_Template","ValidationModalComponent_For_8_For_8_Template","canOverride","ValidationModalComponent_Conditional_10_Template_button_click_0_listener","ignoreAndSubmit","existGroup","ruleType","ValidationModalComponent_Template","ValidationModalComponent_Template_button_click_5_listener","ValidationModalComponent_For_8_Template","ValidationModalComponent_Conditional_10_Template","ValidationModalComponent_Template_button_click_11_listener","AllocationInfoComponent_Conditional_6_For_2_Template_button_click_1_listener","setHours","buttonHints","buttonTitles","AllocationInfoComponent_Conditional_6_Conditional_3_Template_button_click_1_listener","AllocationInfoComponent_Conditional_6_Conditional_4_Template_button_click_1_listener","isPause","AllocationInfoComponent_Conditional_6_For_2_Template","AllocationInfoComponent_Conditional_6_Conditional_3_Template","AllocationInfoComponent_Conditional_6_Conditional_4_Template","showStartButton","showStopButton","timesheetCardService","h","updateStopwatchState","isPercent","AllocationInfoComponent_Template","AllocationInfoComponent_Conditional_6_Template","WorkLogCardComponent","AllocationIssueInfoComponent_Conditional_0_For_1_Template_button_click_2_listener","timeAllocation_r2","openTimeEntry","issuesForm","$index_r4","AllocationIssueInfoComponent_Conditional_0_For_1_Template","issueTimeAllocations","workLogService","workLogCardComponent","issueNameIsLink","WorkLogService","AllocationIssueInfoComponent_HostBindings","AllocationIssueInfoComponent_Conditional_0_Template","AllocationIssueInfoComponent_Conditional_1_Template","TableViewComponent_Conditional_3_Conditional_1_Template_button_click_0_listener","TableViewComponent_Conditional_3_Conditional_2_For_9_Template_button_click_0_listener","command_r5","TableViewComponent_Conditional_3_Conditional_2_Template_button_click_1_listener","TableViewComponent_Conditional_3_Conditional_2_For_9_Template","addingCommands","TableViewComponent_Conditional_3_Conditional_1_Template","TableViewComponent_Conditional_3_Conditional_2_Template","TableViewComponent_Conditional_4_Template_button_click_1_listener","removeLines","TableViewComponent_Conditional_4_Template_button_click_5_listener","moveLines","TableViewComponent_Conditional_4_Template_button_click_8_listener","TableViewComponent_Conditional_6_Template_button_click_0_listener","copyLinesToStorage","TableViewComponent_Conditional_7_Template_button_click_0_listener","pasteLinesFromStorage","field_r9","TableViewComponent_Conditional_34_Conditional_3_Template_button_click_5_listener","TableViewComponent_Conditional_34_Conditional_3_Template_button_click_13_listener","TableViewComponent_Conditional_34_Conditional_2_Template","TableViewComponent_Conditional_34_Conditional_3_Template","timesheetCacheService","formGroup_r11","field_r12","TableViewComponent_For_36_Conditional_8_Template","TableViewComponent_For_36_Conditional_9_Template","TableViewComponent_For_36_Conditional_10_Template","TableViewComponent_For_36_Conditional_11_Template","TableViewComponent_For_36_Conditional_12_Template","TableViewComponent_For_36_For_14_Template","issueGroup_r14","TableViewComponent_For_39_Conditional_2_Template","TableViewComponent_For_39_Conditional_3_Template","TableViewComponent_For_39_Conditional_4_Template","TableViewComponent_For_39_Conditional_5_Template","TableViewComponent_For_39_Conditional_6_Template","TableViewComponent_For_39_Conditional_7_Template","TableViewComponent_For_39_Conditional_8_Template","request_r15","day_r16","isException","ɵ$index_335_r17","ɵ$index_330_r20","formGroup_r19","TableViewComponent_For_67_For_3_Template","totalSchedule","ɵ$index_352_r21","ɵ$index_347_r24","issueGroup_r23","TableViewComponent_For_70_For_3_Template","day_r25","getDayOffHours","request_r26","TableViewComponent_For_73_For_2_Template","geTimeOffRequestHours","day_r27","columnsWidths","activityColumnWidth","roleRateColumnWidth","projectCostCenterColumnWidth","projectTariffColumnWidth","customColumnWidth","TableViewComponent_ng_template_83_Conditional_3_Template","TableViewComponent_ng_template_83_Conditional_4_Template","TableViewComponent_ng_template_83_Conditional_5_Template","TableViewComponent_ng_template_83_Conditional_6_Template","TableViewComponent_ng_template_83_Conditional_7_Template","TableViewComponent_ng_template_83_For_9_Template","taskColumnWidth","TableViewComponent","checkBoxColumnWidth","hasLinesInStorage","fixTableColumnCount","copyHoursAllowed","addTimeOffRequest","fillOutDays","removeNextLine","sl","needStopStopwatch","selectedLine","linesData","newLines","taskCanBeUsed","createdLine","directionSign","lineIndexesToMove","moveNextLine","moveIndex","lineToMove","fixTableWidth","dataTableWidth","hintAddon","isExceptionDay","valueOf","hasSame","TableViewComponent_Template","TableViewComponent_Conditional_3_Template","TableViewComponent_Conditional_4_Template","TableViewComponent_Conditional_6_Template","TableViewComponent_Conditional_7_Template","TableViewComponent_ng_container_11_Template","TableViewComponent_Conditional_21_Template","TableViewComponent_Conditional_22_Template","TableViewComponent_Conditional_23_Template","TableViewComponent_Conditional_24_Template","TableViewComponent_Conditional_25_Template","TableViewComponent_Conditional_26_Template","TableViewComponent_Conditional_27_Template","TableViewComponent_For_29_Template","TableViewComponent_ng_container_32_Template","TableViewComponent_Conditional_34_Template","TableViewComponent_For_36_Template","TableViewComponent_Conditional_37_Template","TableViewComponent_For_39_Template","TableViewComponent_Conditional_40_Template","TableViewComponent_For_42_Template","TableViewComponent_For_54_Template","TableViewComponent_For_62_Template","TableViewComponent_Conditional_65_Template","TableViewComponent_For_67_Template","TableViewComponent_Conditional_68_Template","TableViewComponent_For_70_Template","TableViewComponent_Conditional_71_Template","TableViewComponent_For_73_Template","TableViewComponent_For_79_Template","TableViewComponent_ng_template_83_Template","colGroup_r28","projectCostCenterName","projectTariffName","getCustomFieldValue","TimesheetDetailsComponent_table_1_tr_24_td_10_Template","TimesheetDetailsComponent_table_1_tr_24_td_11_Template","TimesheetDetailsComponent_table_1_tr_24_Conditional_12_Template","TimesheetDetailsComponent_table_1_tr_24_Conditional_13_Template","TimesheetDetailsComponent_table_1_tr_24_For_19_Template","firstLine","secondLine","TimesheetDetailsComponent_table_1_th_7_Template","TimesheetDetailsComponent_table_1_th_8_Template","TimesheetDetailsComponent_table_1_th_9_Template","TimesheetDetailsComponent_table_1_th_10_Template","TimesheetDetailsComponent_table_1_Conditional_11_Template","TimesheetDetailsComponent_table_1_Conditional_12_Template","TimesheetDetailsComponent_table_1_For_18_Template","TimesheetDetailsComponent_table_1_tr_24_Template","TimesheetDetailsComponent","directoryField","TimesheetDetailsComponent_Template","TimesheetDetailsComponent_div_0_Template","TimesheetDetailsComponent_table_1_Template","TimeSheets","TimesheetCardComponent_ng_container_9_div_6_Template","TimesheetCardComponent_ng_container_9_Template_button_click_12_listener","TimesheetCardComponent_ng_container_9_Conditional_14_Template","TimesheetCardComponent_ng_container_9_Template_ul_activeIdChange_18_listener","TimesheetCardComponent_ng_container_9_ng_template_24_Template","TimesheetCardComponent_ng_container_9_div_29_Template","TimesheetCardComponent_ng_container_9_div_34_Template","TimesheetCardComponent_ng_container_9_tmt_entity_workflow_tasks_39_Template","TimesheetCardComponent_ng_container_9_tmt_state_history_44_Template","TimesheetCardComponent","labelHours","labelBillableHours","labelSchedule","labelUtilization","billableHours","isBillable","TimesheetCardComponent_Template","TimesheetCardComponent_ng_container_9_Template","TimesheetHeaderComponent_button_13_Template_button_click_0_listener","period_r3","indicator_r5","TimesheetHeaderComponent","isCurrent","openPeriodSelector","TimesheetHeaderComponent_Query","TimesheetHeaderComponent_Template_button_click_1_listener","TimesheetHeaderComponent_Template_button_click_6_listener","TimesheetHeaderComponent_button_13_Template","TimesheetHeaderComponent_Template_button_click_14_listener","TimesheetHeaderComponent_div_18_Template","TimesheetFilterComponent_div_13_hr_1_Template","TimesheetFilterComponent","TimesheetFilterComponent_Template","TimesheetFilterComponent_div_9_Template","TimesheetFilterComponent_div_10_Template","TimesheetFilterComponent_tmt_state_select_12_Template","TimesheetFilterComponent_div_13_Template","TimesheetFilterService","TimesheetListComponent","reAccount","TimesheetListComponent_Template","selectBox_r4","availableCustomFields","WorkLogCardComponent_Conditional_1_Conditional_42_Template_button_click_0_listener","WorkLogCardComponent_Conditional_1_Conditional_43_Template_button_click_0_listener","property_r7","getValues","timesheetTask","WorkLogCardComponent_Conditional_1_Template_button_click_5_listener","WorkLogCardComponent_Conditional_1_Conditional_25_Template","WorkLogCardComponent_Conditional_1_Conditional_26_Template","WorkLogCardComponent_Conditional_1_For_33_Template","WorkLogCardComponent_Conditional_1_Conditional_40_Template","WorkLogCardComponent_Conditional_1_Conditional_42_Template","WorkLogCardComponent_Conditional_1_Conditional_43_Template","WorkLogCardComponent_Conditional_1_Template_button_click_44_listener","WorkLogCardComponent_Conditional_1_ng_template_47_Template","tmp_21_0","userControl","timeEntryQuery","getOrganization","issueProject","issueProjectTask","setDefaultValues","dependOnUserFields","dependOnProjectFields","updateTimeEntry","createTimeEntry","deleteTimeEntry","preparedEntry","prepareData","WorkLogCardComponent_Template","WorkLogCardComponent_Conditional_1_Template","i21","WorkLogItemComponent_Conditional_19_Conditional_3_Template_button_click_0_listener","WorkLogItemComponent_Conditional_19_Template_button_click_0_listener","editTimeEntry","WorkLogItemComponent_Conditional_19_Conditional_3_Template","WorkLogItemComponent_Conditional_20_Template_button_click_0_listener","WorkLogItemComponent_Conditional_21_Conditional_1_Template","WorkLogItemComponent_Conditional_21_Conditional_2_Template","WorkLogItemComponent_Conditional_21_Conditional_3_Template","key_r5","WorkLogItemComponent_For_25_Conditional_4_Template","WorkLogItemComponent_For_25_Conditional_5_Template","WorkLogItemComponent","customFieldsService","WorkLogItemComponent_Template","WorkLogItemComponent_Conditional_6_Template","WorkLogItemComponent_Template_button_click_11_listener","WorkLogItemComponent_Conditional_19_Template","WorkLogItemComponent_Conditional_20_Template","WorkLogItemComponent_Conditional_21_Template","WorkLogItemComponent_Conditional_22_Template","WorkLogItemComponent_For_25_Template","WorkLogFilterService","WorkLogComponent_Conditional_3_Template_button_click_0_listener","isTimeEntryReadonly","WorkLogComponent_Template","WorkLogComponent_Conditional_3_Template","WorkLogComponent_For_7_Template","WorkLogComponent_ForEmpty_8_Template","_timeEntries","optionalFields","requestByAnalytic","primaryValue","fromTeamMember","onDelete","WorkflowInstanceEntityCellComponent_Template","WorkflowInstanceFilterService","WorkflowInstanceListComponent","WorkflowInstanceListComponent_Template","WorkflowTaskCardServiceService","WorkflowTaskCardComponent_Conditional_6_Conditional_11_Template_button_click_6_listener","entityState$","WorkflowTaskCardComponent_Conditional_6_Conditional_22_ng_template_8_Conditional_1_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_22_ng_template_8_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_23_div_7_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_23_div_12_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_11_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_14_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_22_Template","WorkflowTaskCardComponent_Conditional_6_Conditional_23_Template","taskForm","isShowEntity","WorkflowTaskCardComponent","WorkflowTaskCardComponent_Template","WorkflowTaskCardComponent_Conditional_6_Template","workflowTaskId","workflowTask$","WorkflowTaskFilterComponent","WorkflowTaskFilterComponent_Template","WorkflowTaskFilterComponent_div_15_Template","WorkflowTaskListComponent","WorkflowTaskListComponent_Template","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[2151]}