@netgrif/components 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +132 -0
- package/README.md +106 -0
- package/bundles/netgrif-components.umd.js +4769 -0
- package/bundles/netgrif-components.umd.js.map +1 -0
- package/bundles/netgrif-components.umd.min.js +16 -0
- package/bundles/netgrif-components.umd.min.js.map +1 -0
- package/esm2015/lib/admin/admin.module.js +19 -0
- package/esm2015/lib/admin/public-api.js +5 -0
- package/esm2015/lib/admin/role-assignment/role-assignment.component.js +28 -0
- package/esm2015/lib/admin/user-invite/user-invite.component.js +35 -0
- package/esm2015/lib/authentication/auth.module.js +15 -0
- package/esm2015/lib/authentication/authentication-overlay/authentication-overlay.component.js +35 -0
- package/esm2015/lib/authentication/public-api.js +5 -0
- package/esm2015/lib/dashboard/cards/barchart-card/barchart-card.component.js +49 -0
- package/esm2015/lib/dashboard/cards/count-card/count-card.component.js +22 -0
- package/esm2015/lib/dashboard/cards/iframe-card/iframe-card.component.js +23 -0
- package/esm2015/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +47 -0
- package/esm2015/lib/dashboard/cards/linechart-card/line-chart-card.component.js +59 -0
- package/esm2015/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +52 -0
- package/esm2015/lib/dashboard/cards/portal-card/portal-card.component.js +47 -0
- package/esm2015/lib/dashboard/dashboard-content/dashboard-content.component.js +22 -0
- package/esm2015/lib/dashboard/dashboard.module.js +44 -0
- package/esm2015/lib/dashboard/public-api.js +12 -0
- package/esm2015/lib/data-fields/boolean-field/boolean-field.component.js +28 -0
- package/esm2015/lib/data-fields/button-field/button-field.component.js +27 -0
- package/esm2015/lib/data-fields/data-field-template/data-field-template.component.js +25 -0
- package/esm2015/lib/data-fields/data-fields.module.js +134 -0
- package/esm2015/lib/data-fields/date-field/date-field.component.js +30 -0
- package/esm2015/lib/data-fields/date-time-field/date-time-field.component.js +30 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +23 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +23 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-field.component.js +21 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +16 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +16 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +16 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +22 -0
- package/esm2015/lib/data-fields/file-field/file-field.component.js +52 -0
- package/esm2015/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +33 -0
- package/esm2015/lib/data-fields/file-field-list/file-list-field.component.js +32 -0
- package/esm2015/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +42 -0
- package/esm2015/lib/data-fields/filter-field/filter-field.component.js +27 -0
- package/esm2015/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +16 -0
- package/esm2015/lib/data-fields/i18n-field/i18n-field.component.js +21 -0
- package/esm2015/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +22 -0
- package/esm2015/lib/data-fields/multichoice-field/multichoice-field.component.js +21 -0
- package/esm2015/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +16 -0
- package/esm2015/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +12 -0
- package/esm2015/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +34 -0
- package/esm2015/lib/data-fields/number-field/number-default-field/number-default-field.component.js +22 -0
- package/esm2015/lib/data-fields/number-field/number-field.component.js +32 -0
- package/esm2015/lib/data-fields/public-api.js +18 -0
- package/esm2015/lib/data-fields/required-label/required-label.component.js +20 -0
- package/esm2015/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +27 -0
- package/esm2015/lib/data-fields/text-field/password-text-field/password-text-field.component.js +26 -0
- package/esm2015/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +23 -0
- package/esm2015/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +23 -0
- package/esm2015/lib/data-fields/text-field/text-field.component.js +21 -0
- package/esm2015/lib/data-fields/text-field/textarea-field/textarea-field.component.js +26 -0
- package/esm2015/lib/data-fields/user-field/user-field.component.js +32 -0
- package/esm2015/lib/forms/email-submission/email-submission-form.component.js +22 -0
- package/esm2015/lib/forms/email-submission/email-submission-form.module.js +24 -0
- package/esm2015/lib/forms/forgotten-password/forgotten-password-form-component.module.js +22 -0
- package/esm2015/lib/forms/forgotten-password/forgotten-password-form.component.js +29 -0
- package/esm2015/lib/forms/login/login-form.component.js +25 -0
- package/esm2015/lib/forms/login/login-form.module.js +22 -0
- package/esm2015/lib/forms/public-api.js +11 -0
- package/esm2015/lib/forms/registration/registration-form.component.js +29 -0
- package/esm2015/lib/forms/registration/registration-form.module.js +24 -0
- package/esm2015/lib/header/header-modes/edit-mode/edit-mode.component.js +26 -0
- package/esm2015/lib/header/header-modes/loading-mode/loading-mode.component.js +16 -0
- package/esm2015/lib/header/header-modes/search-mode/search-mode.component.js +34 -0
- package/esm2015/lib/header/header-modes/sort-mode/sort-mode.component.js +16 -0
- package/esm2015/lib/header/header.component.js +36 -0
- package/esm2015/lib/header/header.module.js +39 -0
- package/esm2015/lib/header/public-api.js +12 -0
- package/esm2015/lib/legal/legal-notice/legal-notice.component.js +21 -0
- package/esm2015/lib/legal/legal-notice/legal-notice.module.js +17 -0
- package/esm2015/lib/legal/public-api.js +5 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +54 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +43 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +67 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +58 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +30 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +2 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +35 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +30 -0
- package/esm2015/lib/navigation/navigation-drawer/navigation-drawer.component.js +30 -0
- package/esm2015/lib/navigation/navigation-rail/navigation-rail.component.js +40 -0
- package/esm2015/lib/navigation/navigation-tree/navigation-tree.component.js +42 -0
- package/esm2015/lib/navigation/navigation.module.js +81 -0
- package/esm2015/lib/navigation/public-api.js +9 -0
- package/esm2015/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +16 -0
- package/esm2015/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +39 -0
- package/esm2015/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +32 -0
- package/esm2015/lib/navigation/quick-panel/components/quick-panel.component.js +25 -0
- package/esm2015/lib/navigation/quick-panel/public-api.js +9 -0
- package/esm2015/lib/navigation/quick-panel/quick-panel.module.js +33 -0
- package/esm2015/lib/panel/case-panel/case-panel.component.js +50 -0
- package/esm2015/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +25 -0
- package/esm2015/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +46 -0
- package/esm2015/lib/panel/panel.component.js +22 -0
- package/esm2015/lib/panel/panel.module.js +55 -0
- package/esm2015/lib/panel/public-api.js +10 -0
- package/esm2015/lib/panel/public-workflow-panel/public-workflow-panel.component.js +26 -0
- package/esm2015/lib/panel/task-panel/task-panel.component.js +113 -0
- package/esm2015/lib/panel/task-panel-list/task-list.component.js +31 -0
- package/esm2015/lib/panel/workflow-panel/workflow-panel.component.js +26 -0
- package/esm2015/lib/routing/public-api.js +3 -0
- package/esm2015/lib/routing/redirect/redirect.component.js +28 -0
- package/esm2015/lib/routing/redirect.module.js +12 -0
- package/esm2015/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +24 -0
- package/esm2015/lib/search/advanced-search/advanced-search.module.js +36 -0
- package/esm2015/lib/search/advanced-search/public-api.js +8 -0
- package/esm2015/lib/search/advanced-search/search-clause-component/search-clause.component.js +16 -0
- package/esm2015/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +20 -0
- package/esm2015/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +26 -0
- package/esm2015/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +27 -0
- package/esm2015/lib/search/fulltext-search-component/fulltext-search.component.js +21 -0
- package/esm2015/lib/search/public-api.js +10 -0
- package/esm2015/lib/search/search-component/case-search/case-search.component.js +24 -0
- package/esm2015/lib/search/search-component/search.component.js +98 -0
- package/esm2015/lib/search/search-component/task-search/task-search.component.js +24 -0
- package/esm2015/lib/search/search.module.js +36 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +16 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector.component.js +45 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +27 -0
- package/esm2015/lib/side-menu/content-components/import-net/import-net.component.js +44 -0
- package/esm2015/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +27 -0
- package/esm2015/lib/side-menu/content-components/load-filter/load-filter.component.js +54 -0
- package/esm2015/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +28 -0
- package/esm2015/lib/side-menu/content-components/new-case/new-case.component.js +48 -0
- package/esm2015/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +35 -0
- package/esm2015/lib/side-menu/content-components/option-selector/option-selector.component.js +22 -0
- package/esm2015/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +30 -0
- package/esm2015/lib/side-menu/content-components/public-api.js +19 -0
- package/esm2015/lib/side-menu/content-components/save-filter/save-filter.component.js +53 -0
- package/esm2015/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +26 -0
- package/esm2015/lib/side-menu/content-components/side-menu-content-component.module.js +50 -0
- package/esm2015/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +36 -0
- package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +19 -0
- package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +25 -0
- package/esm2015/lib/side-menu/content-components/user-assign/user-assign.component.js +29 -0
- package/esm2015/lib/side-menu/public-api.js +7 -0
- package/esm2015/lib/side-menu/side-menu-container/side-menu-container.component.js +22 -0
- package/esm2015/lib/side-menu/side-menu.module.js +27 -0
- package/esm2015/lib/tabs/public-api.js +4 -0
- package/esm2015/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +22 -0
- package/esm2015/lib/tabs/tab-view/tab-view.component.js +32 -0
- package/esm2015/lib/tabs/tabs.module.js +28 -0
- package/esm2015/lib/task-content/field-component-resolver/field-component-resolver.component.js +21 -0
- package/esm2015/lib/task-content/public-api.js +6 -0
- package/esm2015/lib/task-content/task-content/task-content.component.js +36 -0
- package/esm2015/lib/task-content/task-content.module.js +32 -0
- package/esm2015/lib/toolbar/public-api.js +3 -0
- package/esm2015/lib/toolbar/toolbar.component.js +26 -0
- package/esm2015/lib/toolbar/toolbar.module.js +22 -0
- package/esm2015/lib/user/profile/profile.component.js +22 -0
- package/esm2015/lib/user/profile/profile.module.js +20 -0
- package/esm2015/lib/user/public-api.js +7 -0
- package/esm2015/lib/user/user-card/user-card.component.js +22 -0
- package/esm2015/lib/user/user.module.js +22 -0
- package/esm2015/lib/view/case-view/case-view.module.js +22 -0
- package/esm2015/lib/view/case-view/components/case-list/case-list.component.js +31 -0
- package/esm2015/lib/view/public-api.js +10 -0
- package/esm2015/lib/view/tree-case-view/tree-case-view.module.js +38 -0
- package/esm2015/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +22 -0
- package/esm2015/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +22 -0
- package/esm2015/lib/view/tree-case-view/tree-component/tree.component.js +23 -0
- package/esm2015/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +55 -0
- package/esm2015/lib/view/workflow-view/workflow-view.component.js +36 -0
- package/esm2015/lib/view/workflow-view.module.js +36 -0
- package/esm2015/netgrif-components.js +43 -0
- package/esm2015/public-api.js +22 -0
- package/esm5/lib/admin/admin.module.js +23 -0
- package/esm5/lib/admin/public-api.js +5 -0
- package/esm5/lib/admin/role-assignment/role-assignment.component.js +33 -0
- package/esm5/lib/admin/user-invite/user-invite.component.js +40 -0
- package/esm5/lib/authentication/auth.module.js +19 -0
- package/esm5/lib/authentication/authentication-overlay/authentication-overlay.component.js +40 -0
- package/esm5/lib/authentication/public-api.js +5 -0
- package/esm5/lib/dashboard/cards/barchart-card/barchart-card.component.js +55 -0
- package/esm5/lib/dashboard/cards/count-card/count-card.component.js +27 -0
- package/esm5/lib/dashboard/cards/iframe-card/iframe-card.component.js +28 -0
- package/esm5/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +52 -0
- package/esm5/lib/dashboard/cards/linechart-card/line-chart-card.component.js +65 -0
- package/esm5/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +58 -0
- package/esm5/lib/dashboard/cards/portal-card/portal-card.component.js +52 -0
- package/esm5/lib/dashboard/dashboard-content/dashboard-content.component.js +27 -0
- package/esm5/lib/dashboard/dashboard.module.js +48 -0
- package/esm5/lib/dashboard/public-api.js +12 -0
- package/esm5/lib/data-fields/boolean-field/boolean-field.component.js +33 -0
- package/esm5/lib/data-fields/button-field/button-field.component.js +32 -0
- package/esm5/lib/data-fields/data-field-template/data-field-template.component.js +30 -0
- package/esm5/lib/data-fields/data-fields.module.js +138 -0
- package/esm5/lib/data-fields/date-field/date-field.component.js +34 -0
- package/esm5/lib/data-fields/date-time-field/date-time-field.component.js +34 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +28 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +28 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-field.component.js +25 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +20 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +20 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +20 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +27 -0
- package/esm5/lib/data-fields/file-field/file-field.component.js +57 -0
- package/esm5/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +36 -0
- package/esm5/lib/data-fields/file-field-list/file-list-field.component.js +36 -0
- package/esm5/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +46 -0
- package/esm5/lib/data-fields/filter-field/filter-field.component.js +31 -0
- package/esm5/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +20 -0
- package/esm5/lib/data-fields/i18n-field/i18n-field.component.js +25 -0
- package/esm5/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +26 -0
- package/esm5/lib/data-fields/multichoice-field/multichoice-field.component.js +25 -0
- package/esm5/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +20 -0
- package/esm5/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +19 -0
- package/esm5/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +38 -0
- package/esm5/lib/data-fields/number-field/number-default-field/number-default-field.component.js +26 -0
- package/esm5/lib/data-fields/number-field/number-field.component.js +36 -0
- package/esm5/lib/data-fields/public-api.js +18 -0
- package/esm5/lib/data-fields/required-label/required-label.component.js +22 -0
- package/esm5/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +32 -0
- package/esm5/lib/data-fields/text-field/password-text-field/password-text-field.component.js +31 -0
- package/esm5/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +28 -0
- package/esm5/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +28 -0
- package/esm5/lib/data-fields/text-field/text-field.component.js +25 -0
- package/esm5/lib/data-fields/text-field/textarea-field/textarea-field.component.js +31 -0
- package/esm5/lib/data-fields/user-field/user-field.component.js +36 -0
- package/esm5/lib/forms/email-submission/email-submission-form.component.js +26 -0
- package/esm5/lib/forms/email-submission/email-submission-form.module.js +28 -0
- package/esm5/lib/forms/forgotten-password/forgotten-password-form-component.module.js +26 -0
- package/esm5/lib/forms/forgotten-password/forgotten-password-form.component.js +33 -0
- package/esm5/lib/forms/login/login-form.component.js +30 -0
- package/esm5/lib/forms/login/login-form.module.js +26 -0
- package/esm5/lib/forms/public-api.js +11 -0
- package/esm5/lib/forms/registration/registration-form.component.js +33 -0
- package/esm5/lib/forms/registration/registration-form.module.js +28 -0
- package/esm5/lib/header/header-modes/edit-mode/edit-mode.component.js +31 -0
- package/esm5/lib/header/header-modes/loading-mode/loading-mode.component.js +20 -0
- package/esm5/lib/header/header-modes/search-mode/search-mode.component.js +39 -0
- package/esm5/lib/header/header-modes/sort-mode/sort-mode.component.js +20 -0
- package/esm5/lib/header/header.component.js +41 -0
- package/esm5/lib/header/header.module.js +43 -0
- package/esm5/lib/header/public-api.js +12 -0
- package/esm5/lib/legal/legal-notice/legal-notice.component.js +25 -0
- package/esm5/lib/legal/legal-notice/legal-notice.module.js +21 -0
- package/esm5/lib/legal/public-api.js +5 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +58 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +45 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +71 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +62 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +30 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +2 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +39 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +34 -0
- package/esm5/lib/navigation/navigation-drawer/navigation-drawer.component.js +35 -0
- package/esm5/lib/navigation/navigation-rail/navigation-rail.component.js +44 -0
- package/esm5/lib/navigation/navigation-tree/navigation-tree.component.js +46 -0
- package/esm5/lib/navigation/navigation.module.js +85 -0
- package/esm5/lib/navigation/public-api.js +9 -0
- package/esm5/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +20 -0
- package/esm5/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +44 -0
- package/esm5/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +37 -0
- package/esm5/lib/navigation/quick-panel/components/quick-panel.component.js +30 -0
- package/esm5/lib/navigation/quick-panel/public-api.js +9 -0
- package/esm5/lib/navigation/quick-panel/quick-panel.module.js +37 -0
- package/esm5/lib/panel/case-panel/case-panel.component.js +55 -0
- package/esm5/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +29 -0
- package/esm5/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +50 -0
- package/esm5/lib/panel/panel.component.js +26 -0
- package/esm5/lib/panel/panel.module.js +59 -0
- package/esm5/lib/panel/public-api.js +10 -0
- package/esm5/lib/panel/public-workflow-panel/public-workflow-panel.component.js +30 -0
- package/esm5/lib/panel/task-panel/task-panel.component.js +118 -0
- package/esm5/lib/panel/task-panel-list/task-list.component.js +36 -0
- package/esm5/lib/panel/workflow-panel/workflow-panel.component.js +30 -0
- package/esm5/lib/routing/public-api.js +3 -0
- package/esm5/lib/routing/redirect/redirect.component.js +30 -0
- package/esm5/lib/routing/redirect.module.js +16 -0
- package/esm5/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +28 -0
- package/esm5/lib/search/advanced-search/advanced-search.module.js +40 -0
- package/esm5/lib/search/advanced-search/public-api.js +8 -0
- package/esm5/lib/search/advanced-search/search-clause-component/search-clause.component.js +20 -0
- package/esm5/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +25 -0
- package/esm5/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +31 -0
- package/esm5/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +31 -0
- package/esm5/lib/search/fulltext-search-component/fulltext-search.component.js +25 -0
- package/esm5/lib/search/public-api.js +10 -0
- package/esm5/lib/search/search-component/case-search/case-search.component.js +28 -0
- package/esm5/lib/search/search-component/search.component.js +105 -0
- package/esm5/lib/search/search-component/task-search/task-search.component.js +28 -0
- package/esm5/lib/search/search.module.js +40 -0
- package/esm5/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +23 -0
- package/esm5/lib/side-menu/content-components/filter-selector/filter-selector.component.js +50 -0
- package/esm5/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +31 -0
- package/esm5/lib/side-menu/content-components/import-net/import-net.component.js +49 -0
- package/esm5/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +31 -0
- package/esm5/lib/side-menu/content-components/load-filter/load-filter.component.js +58 -0
- package/esm5/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +32 -0
- package/esm5/lib/side-menu/content-components/new-case/new-case.component.js +53 -0
- package/esm5/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +39 -0
- package/esm5/lib/side-menu/content-components/option-selector/option-selector.component.js +27 -0
- package/esm5/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +34 -0
- package/esm5/lib/side-menu/content-components/public-api.js +19 -0
- package/esm5/lib/side-menu/content-components/save-filter/save-filter.component.js +57 -0
- package/esm5/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +30 -0
- package/esm5/lib/side-menu/content-components/side-menu-content-component.module.js +54 -0
- package/esm5/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +40 -0
- package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +23 -0
- package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +30 -0
- package/esm5/lib/side-menu/content-components/user-assign/user-assign.component.js +34 -0
- package/esm5/lib/side-menu/public-api.js +7 -0
- package/esm5/lib/side-menu/side-menu-container/side-menu-container.component.js +27 -0
- package/esm5/lib/side-menu/side-menu.module.js +31 -0
- package/esm5/lib/tabs/public-api.js +4 -0
- package/esm5/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +26 -0
- package/esm5/lib/tabs/tab-view/tab-view.component.js +37 -0
- package/esm5/lib/tabs/tabs.module.js +32 -0
- package/esm5/lib/task-content/field-component-resolver/field-component-resolver.component.js +25 -0
- package/esm5/lib/task-content/public-api.js +6 -0
- package/esm5/lib/task-content/task-content/task-content.component.js +41 -0
- package/esm5/lib/task-content/task-content.module.js +36 -0
- package/esm5/lib/toolbar/public-api.js +3 -0
- package/esm5/lib/toolbar/toolbar.component.js +31 -0
- package/esm5/lib/toolbar/toolbar.module.js +26 -0
- package/esm5/lib/user/profile/profile.component.js +27 -0
- package/esm5/lib/user/profile/profile.module.js +24 -0
- package/esm5/lib/user/public-api.js +7 -0
- package/esm5/lib/user/user-card/user-card.component.js +27 -0
- package/esm5/lib/user/user.module.js +26 -0
- package/esm5/lib/view/case-view/case-view.module.js +26 -0
- package/esm5/lib/view/case-view/components/case-list/case-list.component.js +36 -0
- package/esm5/lib/view/public-api.js +10 -0
- package/esm5/lib/view/tree-case-view/tree-case-view.module.js +42 -0
- package/esm5/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +27 -0
- package/esm5/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +27 -0
- package/esm5/lib/view/tree-case-view/tree-component/tree.component.js +28 -0
- package/esm5/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +60 -0
- package/esm5/lib/view/workflow-view/workflow-view.component.js +41 -0
- package/esm5/lib/view/workflow-view.module.js +40 -0
- package/esm5/netgrif-components.js +43 -0
- package/esm5/public-api.js +22 -0
- package/fesm2015/netgrif-components.js +4034 -0
- package/fesm2015/netgrif-components.js.map +1 -0
- package/fesm5/netgrif-components.js +4419 -0
- package/fesm5/netgrif-components.js.map +1 -0
- package/lib/admin/admin.module.d.ts +2 -0
- package/lib/admin/public-api.d.ts +2 -0
- package/lib/admin/role-assignment/role-assignment.component.d.ts +6 -0
- package/lib/admin/user-invite/user-invite.component.d.ts +10 -0
- package/lib/authentication/auth.module.d.ts +2 -0
- package/lib/authentication/authentication-overlay/authentication-overlay.component.d.ts +10 -0
- package/lib/authentication/public-api.d.ts +2 -0
- package/lib/dashboard/cards/barchart-card/barchart-card.component.d.ts +14 -0
- package/lib/dashboard/cards/count-card/count-card.component.d.ts +6 -0
- package/lib/dashboard/cards/iframe-card/iframe-card.component.d.ts +6 -0
- package/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.d.ts +15 -0
- package/lib/dashboard/cards/linechart-card/line-chart-card.component.d.ts +16 -0
- package/lib/dashboard/cards/piechart-card/pie-chart-card.component.d.ts +17 -0
- package/lib/dashboard/cards/portal-card/portal-card.component.d.ts +18 -0
- package/lib/dashboard/dashboard-content/dashboard-content.component.d.ts +5 -0
- package/lib/dashboard/dashboard.module.d.ts +2 -0
- package/lib/dashboard/public-api.d.ts +9 -0
- package/lib/data-fields/boolean-field/boolean-field.component.d.ts +7 -0
- package/lib/data-fields/button-field/button-field.component.d.ts +6 -0
- package/lib/data-fields/data-field-template/data-field-template.component.d.ts +6 -0
- package/lib/data-fields/data-fields.module.d.ts +2 -0
- package/lib/data-fields/date-field/date-field.component.d.ts +5 -0
- package/lib/data-fields/date-time-field/date-time-field.component.d.ts +5 -0
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.d.ts +6 -0
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.d.ts +6 -0
- package/lib/data-fields/enumeration-field/enumeration-field.component.d.ts +4 -0
- package/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.d.ts +4 -0
- package/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.d.ts +4 -0
- package/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.d.ts +4 -0
- package/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.d.ts +6 -0
- package/lib/data-fields/file-field/file-field.component.d.ts +10 -0
- package/lib/data-fields/file-field/preview-dialog/preview-dialog.component.d.ts +11 -0
- package/lib/data-fields/file-field-list/file-list-field.component.d.ts +5 -0
- package/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.d.ts +8 -0
- package/lib/data-fields/filter-field/filter-field.component.d.ts +7 -0
- package/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.d.ts +4 -0
- package/lib/data-fields/i18n-field/i18n-field.component.d.ts +4 -0
- package/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.d.ts +5 -0
- package/lib/data-fields/multichoice-field/multichoice-field.component.d.ts +4 -0
- package/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.d.ts +4 -0
- package/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.d.ts +3 -0
- package/lib/data-fields/number-field/number-currency-field/number-currency-field.component.d.ts +10 -0
- package/lib/data-fields/number-field/number-default-field/number-default-field.component.d.ts +5 -0
- package/lib/data-fields/number-field/number-field.component.d.ts +6 -0
- package/lib/data-fields/public-api.d.ts +15 -0
- package/lib/data-fields/required-label/required-label.component.d.ts +6 -0
- package/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.d.ts +9 -0
- package/lib/data-fields/text-field/password-text-field/password-text-field.component.d.ts +9 -0
- package/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.d.ts +6 -0
- package/lib/data-fields/text-field/simple-text-field/simple-text-field.component.d.ts +6 -0
- package/lib/data-fields/text-field/text-field.component.d.ts +4 -0
- package/lib/data-fields/text-field/textarea-field/textarea-field.component.d.ts +8 -0
- package/lib/data-fields/user-field/user-field.component.d.ts +6 -0
- package/lib/forms/email-submission/email-submission-form.component.d.ts +5 -0
- package/lib/forms/email-submission/email-submission-form.module.d.ts +2 -0
- package/lib/forms/forgotten-password/forgotten-password-form-component.module.d.ts +2 -0
- package/lib/forms/forgotten-password/forgotten-password-form.component.d.ts +6 -0
- package/lib/forms/login/login-form.component.d.ts +6 -0
- package/lib/forms/login/login-form.module.d.ts +2 -0
- package/lib/forms/public-api.d.ts +8 -0
- package/lib/forms/registration/registration-form.component.d.ts +6 -0
- package/lib/forms/registration/registration-form.module.d.ts +2 -0
- package/lib/header/header-modes/edit-mode/edit-mode.component.d.ts +7 -0
- package/lib/header/header-modes/loading-mode/loading-mode.component.d.ts +4 -0
- package/lib/header/header-modes/search-mode/search-mode.component.d.ts +6 -0
- package/lib/header/header-modes/sort-mode/sort-mode.component.d.ts +4 -0
- package/lib/header/header.component.d.ts +9 -0
- package/lib/header/header.module.d.ts +2 -0
- package/lib/header/public-api.d.ts +6 -0
- package/lib/legal/legal-notice/legal-notice.component.d.ts +4 -0
- package/lib/legal/legal-notice/legal-notice.module.d.ts +2 -0
- package/lib/legal/public-api.d.ts +2 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.d.ts +8 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.d.ts +6 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.d.ts +10 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.d.ts +11 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.d.ts +25 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.d.ts +9 -0
- package/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.d.ts +6 -0
- package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.d.ts +6 -0
- package/lib/navigation/navigation-drawer/navigation-drawer.component.d.ts +9 -0
- package/lib/navigation/navigation-rail/navigation-rail.component.d.ts +4 -0
- package/lib/navigation/navigation-tree/navigation-tree.component.d.ts +5 -0
- package/lib/navigation/navigation.module.d.ts +3 -0
- package/lib/navigation/public-api.d.ts +5 -0
- package/lib/navigation/quick-panel/components/internal-link/internal-link.component.d.ts +4 -0
- package/lib/navigation/quick-panel/components/language-selector/language-selector.component.d.ts +9 -0
- package/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.d.ts +9 -0
- package/lib/navigation/quick-panel/components/quick-panel.component.d.ts +6 -0
- package/lib/navigation/quick-panel/public-api.d.ts +5 -0
- package/lib/navigation/quick-panel/quick-panel.module.d.ts +2 -0
- package/lib/panel/case-panel/case-panel.component.d.ts +17 -0
- package/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.d.ts +7 -0
- package/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.d.ts +8 -0
- package/lib/panel/panel.component.d.ts +5 -0
- package/lib/panel/panel.module.d.ts +2 -0
- package/lib/panel/public-api.d.ts +7 -0
- package/lib/panel/public-workflow-panel/public-workflow-panel.component.d.ts +5 -0
- package/lib/panel/task-panel/task-panel.component.d.ts +28 -0
- package/lib/panel/task-panel-list/task-list.component.d.ts +8 -0
- package/lib/panel/workflow-panel/workflow-panel.component.d.ts +5 -0
- package/lib/routing/public-api.d.ts +2 -0
- package/lib/routing/redirect/redirect.component.d.ts +9 -0
- package/lib/routing/redirect.module.d.ts +2 -0
- package/lib/search/advanced-search/advanced-search-component/advanced-search.component.d.ts +4 -0
- package/lib/search/advanced-search/advanced-search.module.d.ts +2 -0
- package/lib/search/advanced-search/public-api.d.ts +5 -0
- package/lib/search/advanced-search/search-clause-component/search-clause.component.d.ts +4 -0
- package/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.d.ts +6 -0
- package/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.d.ts +7 -0
- package/lib/search/advanced-search/search-predicate-component/search-predicate.component.d.ts +5 -0
- package/lib/search/fulltext-search-component/fulltext-search.component.d.ts +4 -0
- package/lib/search/public-api.d.ts +6 -0
- package/lib/search/search-component/case-search/case-search.component.d.ts +8 -0
- package/lib/search/search-component/search.component.d.ts +25 -0
- package/lib/search/search-component/task-search/task-search.component.d.ts +8 -0
- package/lib/search/search.module.d.ts +2 -0
- package/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.d.ts +7 -0
- package/lib/side-menu/content-components/filter-selector/filter-selector.component.d.ts +26 -0
- package/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/import-net/import-net.component.d.ts +10 -0
- package/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/load-filter/load-filter.component.d.ts +10 -0
- package/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/new-case/new-case.component.d.ts +14 -0
- package/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/option-selector/option-selector.component.d.ts +5 -0
- package/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/public-api.d.ts +15 -0
- package/lib/side-menu/content-components/save-filter/save-filter.component.d.ts +6 -0
- package/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/side-menu-content-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.d.ts +2 -0
- package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.d.ts +7 -0
- package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.d.ts +8 -0
- package/lib/side-menu/content-components/user-assign/user-assign.component.d.ts +11 -0
- package/lib/side-menu/public-api.d.ts +3 -0
- package/lib/side-menu/side-menu-container/side-menu-container.component.d.ts +5 -0
- package/lib/side-menu/side-menu.module.d.ts +2 -0
- package/lib/tabs/public-api.d.ts +3 -0
- package/lib/tabs/tab-creation-detector/tab-creation-detector.component.d.ts +10 -0
- package/lib/tabs/tab-view/tab-view.component.d.ts +12 -0
- package/lib/tabs/tabs.module.d.ts +2 -0
- package/lib/task-content/field-component-resolver/field-component-resolver.component.d.ts +4 -0
- package/lib/task-content/public-api.d.ts +3 -0
- package/lib/task-content/task-content/task-content.component.d.ts +9 -0
- package/lib/task-content/task-content.module.d.ts +2 -0
- package/lib/toolbar/public-api.d.ts +2 -0
- package/lib/toolbar/toolbar.component.d.ts +7 -0
- package/lib/toolbar/toolbar.module.d.ts +2 -0
- package/lib/user/profile/profile.component.d.ts +5 -0
- package/lib/user/profile/profile.module.d.ts +2 -0
- package/lib/user/public-api.d.ts +4 -0
- package/lib/user/user-card/user-card.component.d.ts +6 -0
- package/lib/user/user.module.d.ts +2 -0
- package/lib/view/case-view/case-view.module.d.ts +2 -0
- package/lib/view/case-view/components/case-list/case-list.component.d.ts +8 -0
- package/lib/view/public-api.d.ts +7 -0
- package/lib/view/tree-case-view/tree-case-view.module.d.ts +2 -0
- package/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.d.ts +5 -0
- package/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.d.ts +5 -0
- package/lib/view/tree-case-view/tree-component/tree.component.d.ts +5 -0
- package/lib/view/tree-case-view/tree-task-content/tree-task-content.component.d.ts +11 -0
- package/lib/view/workflow-view/workflow-view.component.d.ts +9 -0
- package/lib/view/workflow-view.module.d.ts +2 -0
- package/nae-theme.scss +39 -0
- package/nae-typography.scss +35 -0
- package/netgrif-components.d.ts +43 -0
- package/netgrif-components.metadata.json +1 -0
- package/package.json +75 -0
- package/public-api.d.ts +17 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.d.ts +93 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.js +167 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.js.map +1 -0
- package/schematics/_commons/import-to-add.d.ts +5 -0
- package/schematics/_commons/import-to-add.js +11 -0
- package/schematics/_commons/import-to-add.js.map +1 -0
- package/schematics/_commons/view-class-info.d.ts +22 -0
- package/schematics/_commons/view-class-info.js +58 -0
- package/schematics/_commons/view-class-info.js.map +1 -0
- package/schematics/_utility/models/file-data.d.ts +6 -0
- package/schematics/_utility/models/file-data.js +3 -0
- package/schematics/_utility/models/file-data.js.map +1 -0
- package/schematics/_utility/models/file-system-node.d.ts +6 -0
- package/schematics/_utility/models/file-system-node.js +12 -0
- package/schematics/_utility/models/file-system-node.js.map +1 -0
- package/schematics/_utility/models/project-info.d.ts +13 -0
- package/schematics/_utility/models/project-info.js +20 -0
- package/schematics/_utility/models/project-info.js.map +1 -0
- package/schematics/_utility/modified-library-functions.d.ts +24 -0
- package/schematics/_utility/modified-library-functions.js +150 -0
- package/schematics/_utility/modified-library-functions.js.map +1 -0
- package/schematics/_utility/utility-functions.d.ts +67 -0
- package/schematics/_utility/utility-functions.js +247 -0
- package/schematics/_utility/utility-functions.js.map +1 -0
- package/schematics/add/add/index.d.ts +2 -0
- package/schematics/add/add/index.js +16 -0
- package/schematics/add/add/index.js.map +1 -0
- package/schematics/add/create-nc-files/index.d.ts +2 -0
- package/schematics/add/create-nc-files/index.js +54 -0
- package/schematics/add/create-nc-files/index.js.map +1 -0
- package/schematics/add/create-nc-files/schema.json +7 -0
- package/schematics/add/custom-themes/files/custom-themes/custom-themes.scss.template +45 -0
- package/schematics/add/custom-themes/files/dark-theme/custom-dark-theme.scss.template +17 -0
- package/schematics/add/custom-themes/files/light-theme/custom-light-theme.scss.template +17 -0
- package/schematics/add/custom-themes/index.d.ts +2 -0
- package/schematics/add/custom-themes/index.js +199 -0
- package/schematics/add/custom-themes/index.js.map +1 -0
- package/schematics/add/custom-themes/schema.json +7 -0
- package/schematics/collection.json +47 -0
- package/schematics/migrations/4.1/migration-4.1.d.ts +5 -0
- package/schematics/migrations/4.1/migration-4.1.js +37 -0
- package/schematics/migrations/4.1/migration-4.1.js.map +1 -0
- package/schematics/migrations/5.4/migration-5.4.d.ts +5 -0
- package/schematics/migrations/5.4/migration-5.4.js +134 -0
- package/schematics/migrations/5.4/migration-5.4.js.map +1 -0
- package/schematics/migrations/5.4/schema.json +7 -0
- package/schematics/migrations.json +15 -0
- package/schematics/view/_utility/add-view-to-nae-json.d.ts +3 -0
- package/schematics/view/_utility/add-view-to-nae-json.js +57 -0
- package/schematics/view/_utility/add-view-to-nae-json.js.map +1 -0
- package/schematics/view/_utility/view-service-functions.d.ts +9 -0
- package/schematics/view/_utility/view-service-functions.js +59 -0
- package/schematics/view/_utility/view-service-functions.js.map +1 -0
- package/schematics/view/_utility/view-utility-functions.d.ts +8 -0
- package/schematics/view/_utility/view-utility-functions.js +61 -0
- package/schematics/view/_utility/view-utility-functions.js.map +1 -0
- package/schematics/view/create-view/models/nullable-create-view-arguments.d.ts +11 -0
- package/schematics/view/create-view/models/nullable-create-view-arguments.js +3 -0
- package/schematics/view/create-view/models/nullable-create-view-arguments.js.map +1 -0
- package/schematics/view/create-view/schema.json +7 -0
- package/schematics/view/create-view/schematic-create-view.d.ts +2 -0
- package/schematics/view/create-view/schematic-create-view.js +80 -0
- package/schematics/view/create-view/schematic-create-view.js.map +1 -0
- package/schematics/view/create-view-prompt/models/create-task-view-arguments.d.ts +4 -0
- package/schematics/view/create-view-prompt/models/create-task-view-arguments.js +3 -0
- package/schematics/view/create-view-prompt/models/create-task-view-arguments.js.map +1 -0
- package/schematics/view/create-view-prompt/models/create-view-arguments.d.ts +14 -0
- package/schematics/view/create-view-prompt/models/create-view-arguments.js +3 -0
- package/schematics/view/create-view-prompt/models/create-view-arguments.js.map +1 -0
- package/schematics/view/create-view-prompt/models/params-interfaces.d.ts +28 -0
- package/schematics/view/create-view-prompt/models/params-interfaces.js +3 -0
- package/schematics/view/create-view-prompt/models/params-interfaces.js.map +1 -0
- package/schematics/view/create-view-prompt/models/sidenav-prompt-options.d.ts +8 -0
- package/schematics/view/create-view-prompt/models/sidenav-prompt-options.js +3 -0
- package/schematics/view/create-view-prompt/models/sidenav-prompt-options.js.map +1 -0
- package/schematics/view/create-view-prompt/models/tab-content-template.d.ts +9 -0
- package/schematics/view/create-view-prompt/models/tab-content-template.js +11 -0
- package/schematics/view/create-view-prompt/models/tab-content-template.js.map +1 -0
- package/schematics/view/create-view-prompt/models/tabbed-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/models/tabbed-view.js +3 -0
- package/schematics/view/create-view-prompt/models/tabbed-view.js.map +1 -0
- package/schematics/view/create-view-prompt/schema-create-sidenav-prompt.json +25 -0
- package/schematics/view/create-view-prompt/schema-create-view-prompt.json +68 -0
- package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.d.ts +5 -0
- package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js +49 -0
- package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js.map +1 -0
- package/schematics/view/create-view-prompt/schematic-create-view-prompt.d.ts +3 -0
- package/schematics/view/create-view-prompt/schematic-create-view-prompt.js +88 -0
- package/schematics/view/create-view-prompt/schematic-create-view-prompt.js.map +1 -0
- package/schematics/view/create-view-prompt/views/case-view/create-case-view.d.ts +4 -0
- package/schematics/view/create-view-prompt/views/case-view/create-case-view.js +57 -0
- package/schematics/view/create-view-prompt/views/case-view/create-case-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/case-view/files/common/__className@dasherize__.component.html.template +20 -0
- package/schematics/view/create-view-prompt/views/case-view/files/common/__className@dasherize__.component.spec.ts.template +52 -0
- package/schematics/view/create-view-prompt/views/case-view/files/simple/__className@dasherize__.component.scss.template +28 -0
- package/schematics/view/create-view-prompt/views/case-view/files/simple/__className@dasherize__.component.ts.template +67 -0
- package/schematics/view/create-view-prompt/views/case-view/files/tabbed/__className@dasherize__.component.scss.template +21 -0
- package/schematics/view/create-view-prompt/views/case-view/files/tabbed/__className@dasherize__.component.ts.template +64 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js +34 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.html.template +1 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.scss.template +0 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.spec.ts.template +31 -0
- package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.ts.template +23 -0
- package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js +28 -0
- package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.html.template +1 -0
- package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.scss.template +0 -0
- package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.spec.ts.template +25 -0
- package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.ts.template +18 -0
- package/schematics/view/create-view-prompt/views/group-view/create-group-view.d.ts +4 -0
- package/schematics/view/create-view-prompt/views/group-view/create-group-view.js +37 -0
- package/schematics/view/create-view-prompt/views/group-view/create-group-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.html.template +7 -0
- package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.scss.template +22 -0
- package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.spec.ts.template +49 -0
- package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.ts.template +69 -0
- package/schematics/view/create-view-prompt/views/login/create-login-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/login/create-login-view.js +36 -0
- package/schematics/view/create-view-prompt/views/login/create-login-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.html.template +5 -0
- package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.scss.template +6 -0
- package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.spec.ts.template +38 -0
- package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.ts.template +18 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js +82 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.html.template +8 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.scss.template +0 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.spec.ts.template +51 -0
- package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.ts.template +19 -0
- package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js +161 -0
- package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.html.template +3 -0
- package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.scss.template +3 -0
- package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.spec.ts.template +27 -0
- package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.ts.template +34 -0
- package/schematics/view/create-view-prompt/views/task-view/create-task-view.d.ts +4 -0
- package/schematics/view/create-view-prompt/views/task-view/create-task-view.js +47 -0
- package/schematics/view/create-view-prompt/views/task-view/create-task-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.html.template +7 -0
- package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.scss.template +22 -0
- package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.spec.ts.template +49 -0
- package/schematics/view/create-view-prompt/views/task-view/files/simple/__className@dasherize__.component.ts.template +62 -0
- package/schematics/view/create-view-prompt/views/task-view/files/tabbed/__className@dasherize__.component.ts.template +64 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.d.ts +3 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js +39 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js.map +1 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.html.template +15 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.scss.template +17 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.spec.ts.template +33 -0
- package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.ts.template +23 -0
- package/src/assets/default-user-avatar.png +0 -0
- package/src/assets/default-user-background.jpg +0 -0
- package/src/assets/flags/de.png +0 -0
- package/src/assets/flags/gb.png +0 -0
- package/src/assets/flags/sk.png +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.otf +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
- package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300.svg +312 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.svg +329 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500.svg +305 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.svg +326 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.svg +323 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.woff2 +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.eot +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.svg +308 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.ttf +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/src/lib/admin/role-assignment/role-assignment.component.theme.scss +10 -0
- package/src/lib/data-fields/data-field.theme.scss +73 -0
- package/src/lib/dialog/dialog.theme.scss +13 -0
- package/src/lib/header/header.theme.scss +8 -0
- package/src/lib/navigation/navigation.theme.scss +9 -0
- package/src/lib/panel/panel.theme.scss +31 -0
- package/src/lib/search/advanced-search/search-clause-component/search-clause.component.theme.scss +9 -0
- package/src/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.theme.scss +9 -0
- package/src/lib/search/advanced-search/search-predicate-component/search-predicate.component.theme.scss +9 -0
- package/src/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/theme/user-assign-item.component.theme.scss +15 -0
- package/src/lib/side-menu/side-menu.theme.scss +24 -0
- package/src/lib/snack-bar/snack-bar.theme.scss +17 -0
- package/src/lib/tabs/tabs.theme.scss +16 -0
- package/src/lib/user/user.theme.scss +11 -0
- package/src/lib/view/view.theme.scss +16 -0
|
@@ -0,0 +1,4034 @@
|
|
|
1
|
+
import { Component, NgModule, Injector, EventEmitter, Output, Input, Optional, Inject, NgZone, ElementRef, ViewChild, Injectable, ViewEncapsulation, SkipSelf } from '@angular/core';
|
|
2
|
+
import { AbstractRoleAssignment, RoleAssignmentService, UserService, AbstractUserInviteComponent, UserInviteService, OrganizationListService, SignUpService, SnackBarService, MaterialModule, TranslateLibModule, AbstractAuthenticationOverlay, SessionService, SpinnerOverlayService, RedirectService, AbstractIframeCard, AbstractCountCard, AbstractCustomCard, DashboardResourceService, LoggerService, DashboardSingleData, DashboardMultiData, AbstractDashboardContent, AbstractBooleanFieldComponent, BOOLEAN_VALUE_LABEL_ENABLED, NAE_INFORM_ABOUT_INVALID_DATA, AbstractButtonFieldComponent, DialogService, AbstractDataFieldTemplateComponent, PaperViewService, ConfigurationService, DATE_FORMAT, AbstractDateFieldComponent, DATE_TIME_FORMAT, AbstractDateTimeFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationListFieldComponent, FilePreviewType, AbstractFileFieldComponent, TaskResourceService, EventService, AbstractFileListFieldComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractMultichoiceListFieldComponent, AbstractNumberFieldComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractRichTextareaFieldComponent, AbstractSimpleTextFieldComponent, AbstractUserAssignComponent, SideMenuControl, NAE_SIDE_MENU_CONTROL, UserListService, AbstractUserFieldComponent, SideMenuService, AbstractHtmlTextareaFieldComponent, AbstractCurrencyNumberFieldComponent, AbstractDefaultNumberFieldComponent, AbstractPasswordTextFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, SimpleFilter, AbstractFilterFieldContentComponent, FilterField, NAE_FILTER_FIELD, SearchService, NAE_BASE_FILTER, AllowedNetsService, AllowedNetsServiceFactory, CategoryFactory, NAE_SEARCH_CATEGORIES, CategoryResolverService, AbstractFilterFieldComponent, AbstractSearchClauseComponent, AbstractSearchPredicateComponent, AdvancedSearchComponentInitializationService, AbstractSearchOperandInputComponent, SearchInputType, DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING, AbstractSearchConfigurationInputComponent, OperatorTemplatePartType, AbstractAdvancedSearchComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, CovalentModule, NAE_USER_ASSIGN_COMPONENT, AbstractI18nFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nTextFieldComponent, CurrencyModule, CustomDateAdapter, AbstractEmailSubmissionFormComponent, AbstractLoginFormComponent, AbstractRegistrationFormComponent, AbstractForgottenPasswordComponent, AbstractLegalNoticeComponent, AbstractHeaderComponent, OverflowService, CaseHeaderService, TaskHeaderService, WorkflowHeaderService, HeaderSearchService, AbstractSortModeComponent, AbstractEditModeComponent, AbstractSearchModeComponent, AbstractLoadingModeComponent, AbstractQuickPanelComponent, LanguageService, AbstractLogoutShortcutComponent, AbstractLanguageSelectorComponent, AbstractInternalLinkComponent, AbstractNavigationDrawerComponent, UserPreferenceService, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, RoleGuardService, AuthorityGuardService, GroupGuardService, ActiveGroupService, DynamicNavigationRouteProviderService, AbstractUserCardComponent, AbstractGroupNavigationComponentResolverComponent, GroupNavigationComponentResolverService, navigationItemTaskFilterFactory, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, TabbedCaseView, CaseViewService, NAE_TAB_DATA, ViewIdService, FilterExtractionService, BaseAllowedNetsService, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, TabbedTaskView, TaskViewService, ChangedFieldsService, NAE_TASK_VIEW_CONFIGURATION, groupNavigationViewIdSegmentFactory, extractIconAndTitle, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_VIEW_ID_SEGMENT, AbstractTaskView, extractFilterFromData, FilterType, Filter, Category, AbstractSearchComponent, UserFiltersService, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_FILTERS_FILTER, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, AbstractFulltextSearchComponent, DefaultSearchCategoriesModule, AbstractPanelComponent, CaseListFontColorService, AbstractTaskContentComponent, FieldConverterService, TaskContentService, TaskEventService, NAE_ASYNC_RENDERING_CONFIGURATION, AbstractTaskPanelComponent, AssignTaskService, DelegateTaskService, CancelTaskService, FinishTaskService, TaskRequestStateService, TaskDataService, AssignPolicyService, CallChainService, SubjectTaskOperations, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, PermissionService, SingleTaskContentService, DataFocusPolicyService, FinishPolicyService, AbstractCasePanelComponent, CaseResourceService, AbstractTaskListComponent, AbstractWorkflowPanelComponent, WorkflowViewService, AbstractFieldComponentResolverComponent, SnackBarModule, AbstractImmediateFilterTextContentComponent, NAE_FILTER_TEXT, AbstractImmediateFilterTextComponent, AbstractTabViewComponent, ViewService, AbstractTabCreationDetectorComponent, AbstractCaseListComponent, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, AbstractNewCaseComponent, NAE_NEW_CASE_COMPONENT, AbstractImportNetComponent, PetriNetResourceService, AbstractFilterSelectorComponent, FilterRepository, AbstractFilterSelectorListItemComponent, AbstractOptionSelectorComponent, NAE_OPTION_SELECTOR_COMPONENT, UserFilterConstants, AbstractSaveFilterComponent, NAE_SAVE_FILTER_COMPONENT, AbstractLoadFilterComponent, NAE_DEFAULT_HEADERS, NAE_LOAD_FILTER_COMPONENT, AbstractSideMenuContainerComponent, AbstractToolbarComponent, AbstractProfileComponent, AbstractWorkflowViewComponent, ProcessService, AbstractTreeComponent, CaseTreeService, AbstractTreeTaskContentComponent, TreeTaskContentService, UnlimitedTaskContentService, SelectedCaseService, AbstractAddChildNodeComponent, AbstractRemoveNodeComponent } from '@netgrif/components-core';
|
|
3
|
+
import { CommonModule, CurrencyPipe } from '@angular/common';
|
|
4
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import { Router, RouterModule, ActivatedRoute } from '@angular/router';
|
|
6
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
|
+
import { NgxChartsModule } from '@swimlane/ngx-charts';
|
|
8
|
+
import { FlexLayoutModule, FlexModule } from '@angular/flex-layout';
|
|
9
|
+
import { AngularResizedEventModule } from 'angular-resize-event';
|
|
10
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
11
|
+
import { FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
|
12
|
+
import { NGX_MAT_DATE_FORMATS, NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';
|
|
13
|
+
import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
|
|
14
|
+
import { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';
|
|
15
|
+
import { MAT_DIALOG_DATA, MatDialog, MatDialogModule } from '@angular/material/dialog';
|
|
16
|
+
import { QuillModule } from 'ngx-quill';
|
|
17
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
18
|
+
import 'hammerjs';
|
|
19
|
+
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
20
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
21
|
+
import { ResizableModule } from 'angular-resizable-element';
|
|
22
|
+
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
23
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
24
|
+
import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
|
|
25
|
+
import { HotkeysService, HotkeyModule } from 'angular2-hotkeys';
|
|
26
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
27
|
+
|
|
28
|
+
class RoleAssignmentComponent extends AbstractRoleAssignment {
|
|
29
|
+
constructor(_service, _userService) {
|
|
30
|
+
super(_service, _userService);
|
|
31
|
+
this._service = _service;
|
|
32
|
+
this._userService = _userService;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
RoleAssignmentComponent.ctorParameters = () => [
|
|
36
|
+
{ type: RoleAssignmentService },
|
|
37
|
+
{ type: UserService }
|
|
38
|
+
];
|
|
39
|
+
RoleAssignmentComponent.decorators = [
|
|
40
|
+
{ type: Component, args: [{
|
|
41
|
+
selector: 'nc-role-assignment',
|
|
42
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"full-height full-width padding-default\">\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex=\"44\" class=\"full-height\">\n <ng-container *ngIf=\"users.users$ | async as users_\">\n\n <mat-toolbar color=\"primary\" class=\"height-96\">\n <span matTooltip=\"{{users_.length}}/{{users.totalUsers}}\">\n {{'admin.user-list.listTitle' | translate}}\n </span>\n <div fxFlex=\"5\"></div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon fxFlex class=\"search-icon\">search</mat-icon>\n <mat-form-field fxFlex=\"100\" class=\"user-assign-search\" color=\"primary\">\n <input matInput placeholder=\"{{ 'side-menu.user.choose' | translate }}\"\n [formControl]=\"searchUserControl\">\n <button mat-button *ngIf=\"searchUserControl.value\" matSuffix mat-icon-button\n (click)=\"searchUserControl.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <span style=\"flex: 1 1 auto;\"></span>\n <button disabled mat-icon-button\n matTooltip=\"{{userMultiSelect ? 'Multi selection' : 'Single selection'}}\"\n (click)=\"userMultiSelect = !userMultiSelect\">\n <mat-icon>{{userMultiSelect ? 'group' : 'person'}}</mat-icon>\n </button>\n <button mat-icon-button matTooltip=\"Select All\" (click)=\"selectAllUsers(true)\">\n <mat-icon>done_all</mat-icon>\n </button>\n <button mat-icon-button matTooltip=\"Deselect All\" (click)=\"selectAllUsers(false)\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-toolbar>\n\n <div *ngIf=\"(users.loading$ | async) === false && users_.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex class=\"margin-top-x2\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default no-user-icon\">perm_identity</mat-icon>\n <span class=\"font-size-20\">{{ 'admin.user-list.noUsersWereFound' | translate}}</span>\n </div>\n\n <mat-selection-list #userList color=\"accent\" fxFlex=\"100\" class=\"full-width\">\n\n <cdk-virtual-scroll-viewport itemSize=\"72\" (scrolledIndexChange)=\"loadNextUserPage()\"\n class=\"full-width full-height\">\n <mat-list-option *cdkVirtualFor=\"let user of users_; let i = index;\" checkboxPosition=\"before\"\n [selected]=\"user.selected\"\n [value]=\"user\"\n [ngClass]=\"{'list-item-selected':user.selected}\"\n (click)=\"user.toggle();autoSelectRoles()\">\n <h3 matLine>{{user.fullName}}</h3>\n <p matLine>ID: {{user.id}}, Email: {{user.email}}</p>\n </mat-list-option>\n\n <div *ngIf=\"users.loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"50\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-selection-list>\n </ng-container>\n </div>\n\n <div fxFlex=\"6\"></div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex=\"50\" class=\"full-height\">\n\n <mat-toolbar color=\"primary\" class=\"height-96\">\n <span>{{'admin.process-list.listTitle' | translate}}</span>\n <span style=\"flex: 1 1 auto;\"></span>\n <mat-spinner *ngIf=\"users.updating$ | async\" color=\"accent\" diameter=\"30\"></mat-spinner>\n </mat-toolbar>\n\n <div *ngIf=\"(users.loading$ | async) === false && nets.processes.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex class=\"margin-top-x2\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default no-user-icon\">timeline</mat-icon>\n <span class=\"font-size-20\">{{ 'admin.process-list.noProcessesWereFound' | translate}}</span>\n </div>\n\n <mat-accordion class=\"full-width margin-top-default process-list-accordion\" multi fxFlex>\n\n <mat-expansion-panel *ngFor=\"let item of nets.processes\" (afterExpand)=\"nets.loadProcessItemRoles(item)\"\n (afterCollapse)=\"nets.prepareToTryAgainToLoadRoles(item)\">\n\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon *ngIf=\"item.someRolesSelected\" color=\"accent\" class=\"margin-right-x2\">tour</mat-icon>\n <span>{{item.initials}} - {{item.title}}</span>\n </mat-panel-title>\n <mat-panel-description class=\"process-item-description\">\n <span\n class=\"process-item-description full-width\">{{'admin.process-list.newestVersion' | translate}}\n : {{item.newestVersion}}</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div *ngIf=\"item.loading\" fxFlex=\"100\" class=\"full-width\">\n <mat-progress-bar mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </div>\n\n <div *ngIf=\"!item.loading && item.emptyRoles\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex class=\"full-width full-height net-panel-content\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default\">account_circle</mat-icon>\n <span class=\"font-size-15\">{{ 'admin.process-list.noRoles' | translate}}</span>\n </div>\n\n <div *ngIf=\"!item.loading && !item.emptyRoles\" fxLayout=\"column\" fxLayoutAlign=\"start start\"\n class=\"full-height full-width net-panel-content\">\n <h3>{{ 'admin.process-list.roles' | translate}}</h3>\n <div *ngFor=\"let net of item.processes; let first = first\" fxLayout=\"column\"\n fxLayoutAlign=\"start center\" class=\"full-width\">\n <mat-divider *ngIf=\"!first\" style=\"position: relative\"></mat-divider>\n\n <button mat-button matTooltip=\"{{item.someRolesSelected ? 'Deselect All' : 'Select All'}}\"\n (click)=\"toggleAllRoles(net, !item.someRolesSelected)\">\n {{net.version}}\n </button>\n\n <mat-selection-list color=\"accent\" fxLayout=\"row wrap\" fxLayoutAlign=\"start center\"\n class=\"full-width\">\n <mat-list-option *ngFor=\"let role of net.roles\" checkboxPosition=\"before\"\n [selected]=\"role.selected\" (click)=\"role.toggle();update(role)\"\n fxFlex=\"50\">\n <h3 matLine>{{role.name}}</h3>\n </mat-list-option>\n </mat-selection-list>\n </div>\n </div>\n\n </mat-expansion-panel>\n\n </mat-accordion>\n\n <div *ngIf=\"nets.loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex=\"100\">\n <mat-spinner color=\"primary\" diameter=\"65\"></mat-spinner>\n </div>\n </div>\n</div>\n",
|
|
43
|
+
providers: [
|
|
44
|
+
RoleAssignmentService
|
|
45
|
+
],
|
|
46
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-list-item-margin{margin:4px 0}.net-panel-content{padding-left:24px;padding-right:24px;padding-bottom:24px}.font-size-20{font-size:20px}.font-size-15{font-size:15px}.no-user-icon{font-size:40px;width:40px;height:40px}.process-item-description{text-align:right}.process-list-accordion{overflow-y:auto;padding:0 2px 4px}.user-assign-search{width:100%}.search-icon{margin-right:10px}.height-96{min-height:96px}"]
|
|
47
|
+
},] }
|
|
48
|
+
];
|
|
49
|
+
RoleAssignmentComponent.ctorParameters = () => [
|
|
50
|
+
{ type: RoleAssignmentService },
|
|
51
|
+
{ type: UserService }
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
class UserInviteComponent extends AbstractUserInviteComponent {
|
|
55
|
+
constructor(_userInviteService, _orgList, _signUpService, _snackBar, _translate) {
|
|
56
|
+
super(_userInviteService, _orgList, _signUpService, _snackBar, _translate);
|
|
57
|
+
this._userInviteService = _userInviteService;
|
|
58
|
+
this._orgList = _orgList;
|
|
59
|
+
this._signUpService = _signUpService;
|
|
60
|
+
this._snackBar = _snackBar;
|
|
61
|
+
this._translate = _translate;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
UserInviteComponent.ctorParameters = () => [
|
|
65
|
+
{ type: UserInviteService },
|
|
66
|
+
{ type: OrganizationListService },
|
|
67
|
+
{ type: SignUpService },
|
|
68
|
+
{ type: SnackBarService },
|
|
69
|
+
{ type: TranslateService }
|
|
70
|
+
];
|
|
71
|
+
UserInviteComponent.decorators = [
|
|
72
|
+
{ type: Component, args: [{
|
|
73
|
+
selector: 'nc-user-invite',
|
|
74
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"start start\" class=\"full-height full-width padding-default\">\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex=\"40\" class=\"full-height margin-right-16px\">\n\n <mat-toolbar color=\"primary\" class=\"height-96 margin-bottom-16px\">\n <span>{{'admin.user-invite.newUser' | translate}}</span>\n <div fxFlex></div>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex=\"40\" class=\"padding-right-16px\">\n <mat-icon fxFlex class=\"mail-icon\">email</mat-icon>\n <mat-form-field fxFlex=\"100\" class=\"user-assign-search\" color=\"primary\">\n <input matInput placeholder=\"{{ 'admin.user-invite.mail' | translate }}\"\n [formControl]=\"invitedEmailControl\">\n <button mat-button *ngIf=\"invitedEmailControl.value\" matSuffix mat-icon-button\n (click)=\"invitedEmailControl.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n </mat-toolbar>\n\n\n <div fxLayout=\"column\" class=\"invited-card margin-bottom-16px\" fxLayoutAlign=\"start stretch\">\n\n <span class=\"invited-card-font padding-16px\">{{'admin.user-invite.selectedOrgs' | translate}}</span>\n\n <mat-divider class=\"inherited-divider\"></mat-divider>\n\n <div class=\"padding-16px\" fxLayout=\"column\" *ngIf=\"invitedGroups.length !== 0\">\n <div *ngFor=\"let org of invitedGroups\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span>{{org.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color=\"primary\" (click)=\"removeGroup(org)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n\n <span class=\"padding-16px\"\n *ngIf=\"invitedGroups.length === 0\">{{'admin.user-invite.noSelectedOrgs' | translate}}</span>\n </div>\n\n\n <div fxLayout=\"column\" class=\"invited-card margin-bottom-16px\" fxLayoutAlign=\"start stretch\">\n\n <span class=\"invited-card-font padding-16px\">{{'admin.user-invite.selectedRoles' | translate}}</span>\n\n <mat-divider class=\"inherited-divider\"></mat-divider>\n\n <div class=\"padding-16px\" fxLayout=\"column\" *ngIf=\"invitedRoles.length !== 0\">\n <div *ngFor=\"let role of invitedRoles\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span>{{role.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color=\"primary\" (click)=\"removeRole(role)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n\n <span class=\"padding-16px\"\n *ngIf=\"invitedRoles.length === 0\">{{'admin.user-invite.noSelectedRoles' | translate}}</span>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <button mat-raised-button color=\"primary\" (click)=\"invite()\">\n <span>{{'admin.user-invite.invite-user' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex=\"30\" class=\"full-height margin-right-16px\">\n\n <mat-toolbar color=\"primary\" class=\"height-96 margin-bottom-16px\">\n <span>{{'admin.user-invite.orgs' | translate}}</span>\n </mat-toolbar>\n\n <div *ngIf=\"groups.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex>\n <mat-icon color=\"accent\" class=\"margin-bottom-default no-user-icon\">groups</mat-icon>\n <span class=\"font-size-20\">{{'admin.user-invite.noGroups' | translate}}</span>\n </div>\n\n <div fxLayout=\"column\" class=\"invited-card \" *ngIf=\"groups.length !== 0\">\n <div fxLayout=\"column\">\n <div *ngFor=\"let group of groups\" class=\"padding-16px-0\" fxFlex fxLayout=\"row\"\n fxLayoutAlign=\"start center\">\n <span>{{group.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color=\"primary\" (click)=\"addGroup(group)\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex=\"30\" class=\"full-height\">\n\n <mat-toolbar color=\"primary\" class=\"height-96 margin-bottom-16px\">\n <span>{{'admin.process-list.listTitle' | translate}}</span>\n </mat-toolbar>\n\n <div *ngIf=\"nets.processes.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex class=\"margin-top-x2\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default no-user-icon\">timeline</mat-icon>\n <span class=\"font-size-20\">{{ 'admin.process-list.noProcessesWereFound' | translate}}</span>\n </div>\n\n <mat-accordion class=\"full-width margin-top-default process-list-accordion\" multi fxFlex>\n\n <mat-expansion-panel *ngFor=\"let item of nets.processes\" (afterExpand)=\"nets.loadProcessItemRoles(item)\"\n (afterCollapse)=\"nets.prepareToTryAgainToLoadRoles(item)\">\n\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon *ngIf=\"item.someRolesSelected\" color=\"accent\" class=\"margin-right-x2\">tour</mat-icon>\n <span>{{item.initials}} - {{item.title}}</span>\n </mat-panel-title>\n <mat-panel-description class=\"process-item-description\">\n <span\n class=\"process-item-description full-width\">{{'admin.process-list.newestVersion' | translate}}\n : {{item.newestVersion}}</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div *ngIf=\"item.loading\" fxFlex=\"100\" class=\"full-width\">\n <mat-progress-bar mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </div>\n\n <div *ngIf=\"!item.loading && item.emptyRoles\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex class=\"full-width full-height net-panel-content\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default\">account_circle</mat-icon>\n <span class=\"font-size-15\">{{ 'admin.process-list.noRoles' | translate}}</span>\n </div>\n\n <div *ngIf=\"!item.loading && !item.emptyRoles\" fxLayout=\"column\" fxLayoutAlign=\"start center\"\n class=\"full-height full-width net-panel-content padding-0-16px\">\n <h3>Roles</h3>\n <div *ngFor=\"let net of item.processes; let first = first\" fxLayout=\"column\"\n fxLayoutAlign=\"start center\" class=\"full-width\">\n <mat-divider *ngIf=\"!first\" style=\"position: relative\"></mat-divider>\n\n <span>{{'admin.user-invite.version' | translate }} - {{net.version}}</span>\n\n <div fxLayout=\"column\" class=\"full-width padding-16px\">\n <div *ngFor=\"let role of net.roles\" fxFlex fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <span>{{role.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color=\"primary\" (click)=\"addRole(role)\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n </mat-expansion-panel>\n\n </mat-accordion>\n\n <div *ngIf=\"nets.loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex=\"100\">\n <mat-spinner color=\"primary\" diameter=\"65\"></mat-spinner>\n </div>\n </div>\n</div>\n\n",
|
|
75
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.flex-class{flex:1 1 auto}.height-96{min-height:96px}.mail-icon{margin-right:10px}.invited-card{padding:0 16px;width:100%;white-space:nowrap;border:1px solid #eee}.invited-card-font,.invited-card-font h1,.invited-card-font h2,.invited-card-font h3,.invited-card-font h4,.invited-card-font h5,.invited-card-font h6{font:500 20px/32px Roboto,monospace;letter-spacing:normal;margin:0}.inherited-divider{position:inherit}.padding-16px{padding:16px}.padding-0-16px{padding:0 16px}.padding-16px-0{padding:16px 0}.padding-right-16px{padding-right:16px}.margin-right-16px{margin-right:16px}.margin-bottom-16px{margin-bottom:16px}.font-size-20{font-size:20px}"]
|
|
76
|
+
},] }
|
|
77
|
+
];
|
|
78
|
+
UserInviteComponent.ctorParameters = () => [
|
|
79
|
+
{ type: UserInviteService },
|
|
80
|
+
{ type: OrganizationListService },
|
|
81
|
+
{ type: SignUpService },
|
|
82
|
+
{ type: SnackBarService },
|
|
83
|
+
{ type: TranslateService }
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
class AdminComponentModule {
|
|
87
|
+
}
|
|
88
|
+
AdminComponentModule.decorators = [
|
|
89
|
+
{ type: NgModule, args: [{
|
|
90
|
+
declarations: [RoleAssignmentComponent, UserInviteComponent],
|
|
91
|
+
exports: [RoleAssignmentComponent, UserInviteComponent],
|
|
92
|
+
imports: [
|
|
93
|
+
CommonModule,
|
|
94
|
+
MaterialModule,
|
|
95
|
+
TranslateLibModule
|
|
96
|
+
]
|
|
97
|
+
},] }
|
|
98
|
+
];
|
|
99
|
+
|
|
100
|
+
/* COMPONENTS */
|
|
101
|
+
|
|
102
|
+
class AuthenticationOverlayComponent extends AbstractAuthenticationOverlay {
|
|
103
|
+
constructor(_session, _spinnerOverlay, router, redirectService, userService) {
|
|
104
|
+
super(_session, _spinnerOverlay, router, redirectService, userService);
|
|
105
|
+
this._session = _session;
|
|
106
|
+
this._spinnerOverlay = _spinnerOverlay;
|
|
107
|
+
this.router = router;
|
|
108
|
+
this.redirectService = redirectService;
|
|
109
|
+
this.userService = userService;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
AuthenticationOverlayComponent.ctorParameters = () => [
|
|
113
|
+
{ type: SessionService },
|
|
114
|
+
{ type: SpinnerOverlayService },
|
|
115
|
+
{ type: Router },
|
|
116
|
+
{ type: RedirectService },
|
|
117
|
+
{ type: UserService }
|
|
118
|
+
];
|
|
119
|
+
AuthenticationOverlayComponent.decorators = [
|
|
120
|
+
{ type: Component, args: [{
|
|
121
|
+
selector: 'nc-authentication-overlay',
|
|
122
|
+
template: "<ng-content></ng-content>\n",
|
|
123
|
+
styles: [""]
|
|
124
|
+
},] }
|
|
125
|
+
];
|
|
126
|
+
AuthenticationOverlayComponent.ctorParameters = () => [
|
|
127
|
+
{ type: SessionService },
|
|
128
|
+
{ type: SpinnerOverlayService },
|
|
129
|
+
{ type: Router },
|
|
130
|
+
{ type: RedirectService },
|
|
131
|
+
{ type: UserService }
|
|
132
|
+
];
|
|
133
|
+
|
|
134
|
+
class AuthenticationComponentModule {
|
|
135
|
+
}
|
|
136
|
+
AuthenticationComponentModule.decorators = [
|
|
137
|
+
{ type: NgModule, args: [{
|
|
138
|
+
declarations: [AuthenticationOverlayComponent],
|
|
139
|
+
exports: [AuthenticationOverlayComponent],
|
|
140
|
+
imports: [
|
|
141
|
+
CommonModule
|
|
142
|
+
]
|
|
143
|
+
},] }
|
|
144
|
+
];
|
|
145
|
+
|
|
146
|
+
/* COMPONENTS */
|
|
147
|
+
|
|
148
|
+
class IframeCardComponent extends AbstractIframeCard {
|
|
149
|
+
constructor(_sanitizer) {
|
|
150
|
+
super(_sanitizer);
|
|
151
|
+
this._sanitizer = _sanitizer;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
IframeCardComponent.ctorParameters = () => [
|
|
155
|
+
{ type: DomSanitizer }
|
|
156
|
+
];
|
|
157
|
+
IframeCardComponent.decorators = [
|
|
158
|
+
{ type: Component, args: [{
|
|
159
|
+
selector: 'nc-iframe-card',
|
|
160
|
+
template: "<mat-card class=\"dashboard-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <iframe [src]=\"sanitizedURL\" fxFlex=\"100\" class=\"full-size\" title=\"Dashboard embedded content\"></iframe>\n</mat-card>\n",
|
|
161
|
+
styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}"]
|
|
162
|
+
},] }
|
|
163
|
+
];
|
|
164
|
+
IframeCardComponent.ctorParameters = () => [
|
|
165
|
+
{ type: DomSanitizer }
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
class CountCardComponent extends AbstractCountCard {
|
|
169
|
+
constructor(_injector) {
|
|
170
|
+
super(_injector);
|
|
171
|
+
this._injector = _injector;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
CountCardComponent.ctorParameters = () => [
|
|
175
|
+
{ type: Injector }
|
|
176
|
+
];
|
|
177
|
+
CountCardComponent.decorators = [
|
|
178
|
+
{ type: Component, args: [{
|
|
179
|
+
selector: 'nc-count-card',
|
|
180
|
+
template: "<mat-card fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"dashboard-card\">\n <span>{{card.title}}</span>\n <ng-template [ngIf]=\"loading\" [ngIfElse]=\"result\">\n <mat-spinner color=\"primary\"></mat-spinner>\n </ng-template>\n <ng-template #result>\n <span class=\"number\">{{count}}</span>\n </ng-template>\n</mat-card>\n",
|
|
181
|
+
styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.number{font-size:80px}"]
|
|
182
|
+
},] }
|
|
183
|
+
];
|
|
184
|
+
CountCardComponent.ctorParameters = () => [
|
|
185
|
+
{ type: Injector }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
class LinearGaugeCardComponent extends AbstractCustomCard {
|
|
189
|
+
constructor(_injector, resourceService, translateService, loggerService) {
|
|
190
|
+
super(_injector, resourceService, translateService, loggerService);
|
|
191
|
+
this._injector = _injector;
|
|
192
|
+
this.resourceService = resourceService;
|
|
193
|
+
this.translateService = translateService;
|
|
194
|
+
this.loggerService = loggerService;
|
|
195
|
+
this.selectEvent = new EventEmitter();
|
|
196
|
+
}
|
|
197
|
+
ngOnInit() {
|
|
198
|
+
super.ngOnInit();
|
|
199
|
+
}
|
|
200
|
+
onSelect(data) {
|
|
201
|
+
this.loggerService.info('Linear gauge selected.');
|
|
202
|
+
this.selectEvent.emit(data);
|
|
203
|
+
}
|
|
204
|
+
convertData(json) {
|
|
205
|
+
this.value = json.aggregations.types_count.value;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
LinearGaugeCardComponent.ctorParameters = () => [
|
|
209
|
+
{ type: Injector },
|
|
210
|
+
{ type: DashboardResourceService },
|
|
211
|
+
{ type: TranslateService },
|
|
212
|
+
{ type: LoggerService }
|
|
213
|
+
];
|
|
214
|
+
LinearGaugeCardComponent.decorators = [
|
|
215
|
+
{ type: Component, args: [{
|
|
216
|
+
selector: 'nc-linear-gauge-card',
|
|
217
|
+
template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-linear-gauge class=\"custom-chart\"\n [scheme]=\"colorScheme\"\n [value]=\"value\"\n (select)=\"onSelect($event)\"\n [units]=\"card.units\">\n </ngx-charts-linear-gauge>\n</mat-card>\n",
|
|
218
|
+
styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}.custom-mat-card{padding-left:0;padding-top:0}"]
|
|
219
|
+
},] }
|
|
220
|
+
];
|
|
221
|
+
LinearGaugeCardComponent.ctorParameters = () => [
|
|
222
|
+
{ type: Injector },
|
|
223
|
+
{ type: DashboardResourceService },
|
|
224
|
+
{ type: TranslateService },
|
|
225
|
+
{ type: LoggerService }
|
|
226
|
+
];
|
|
227
|
+
LinearGaugeCardComponent.propDecorators = {
|
|
228
|
+
selectEvent: [{ type: Output }]
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
class PieChartCardComponent extends AbstractCustomCard {
|
|
232
|
+
constructor(_injector, resourceService, translateService, loggerService) {
|
|
233
|
+
super(_injector, resourceService, translateService, loggerService);
|
|
234
|
+
this._injector = _injector;
|
|
235
|
+
this.resourceService = resourceService;
|
|
236
|
+
this.translateService = translateService;
|
|
237
|
+
this.loggerService = loggerService;
|
|
238
|
+
this.isDoughnut = false;
|
|
239
|
+
this.legendPosition = 'right';
|
|
240
|
+
this.selectEvent = new EventEmitter();
|
|
241
|
+
}
|
|
242
|
+
ngOnInit() {
|
|
243
|
+
super.ngOnInit();
|
|
244
|
+
}
|
|
245
|
+
onSelect(data) {
|
|
246
|
+
this.loggerService.info('Pie chart selected.');
|
|
247
|
+
this.selectEvent.emit(data);
|
|
248
|
+
}
|
|
249
|
+
convertData(json) {
|
|
250
|
+
json.aggregations.result.buckets.forEach(bucket => {
|
|
251
|
+
this.single.push(new DashboardSingleData(bucket.key, bucket.doc_count));
|
|
252
|
+
});
|
|
253
|
+
this.single = [...this.single];
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
PieChartCardComponent.ctorParameters = () => [
|
|
257
|
+
{ type: Injector },
|
|
258
|
+
{ type: DashboardResourceService },
|
|
259
|
+
{ type: TranslateService },
|
|
260
|
+
{ type: LoggerService }
|
|
261
|
+
];
|
|
262
|
+
PieChartCardComponent.decorators = [
|
|
263
|
+
{ type: Component, args: [{
|
|
264
|
+
selector: 'nc-pie-chart-card',
|
|
265
|
+
template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-pie-chart class=\"custom-chart\"\n [scheme]=\"colorScheme\"\n [results]=\"single\"\n [gradient]=\"gradient\"\n [legend]=\"showLegend\"\n [legendPosition]=\"legendPosition\"\n [labels]=\"showLabels\"\n [doughnut]=\"isDoughnut\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-pie-chart>\n</mat-card>\n",
|
|
266
|
+
styles: [".custom-mat-card{padding-left:0;padding-top:0}.dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}"]
|
|
267
|
+
},] }
|
|
268
|
+
];
|
|
269
|
+
PieChartCardComponent.ctorParameters = () => [
|
|
270
|
+
{ type: Injector },
|
|
271
|
+
{ type: DashboardResourceService },
|
|
272
|
+
{ type: TranslateService },
|
|
273
|
+
{ type: LoggerService }
|
|
274
|
+
];
|
|
275
|
+
PieChartCardComponent.propDecorators = {
|
|
276
|
+
selectEvent: [{ type: Output }]
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
class BarchartCardComponent extends AbstractCustomCard {
|
|
280
|
+
constructor(_injector, resourceService, translateService, loggerService) {
|
|
281
|
+
super(_injector, resourceService, translateService, loggerService);
|
|
282
|
+
this._injector = _injector;
|
|
283
|
+
this.resourceService = resourceService;
|
|
284
|
+
this.translateService = translateService;
|
|
285
|
+
this.loggerService = loggerService;
|
|
286
|
+
this.selectEvent = new EventEmitter();
|
|
287
|
+
}
|
|
288
|
+
ngOnInit() {
|
|
289
|
+
super.ngOnInit();
|
|
290
|
+
}
|
|
291
|
+
onSelect(data) {
|
|
292
|
+
this.loggerService.info('BarChart was selected');
|
|
293
|
+
this.selectEvent.emit(data);
|
|
294
|
+
}
|
|
295
|
+
convertData(json) {
|
|
296
|
+
json.aggregations.result.buckets.forEach(bucket => {
|
|
297
|
+
this.single.push(new DashboardSingleData(bucket.key, bucket.doc_count));
|
|
298
|
+
});
|
|
299
|
+
this.single = [...this.single];
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
BarchartCardComponent.ctorParameters = () => [
|
|
303
|
+
{ type: Injector },
|
|
304
|
+
{ type: DashboardResourceService },
|
|
305
|
+
{ type: TranslateService },
|
|
306
|
+
{ type: LoggerService }
|
|
307
|
+
];
|
|
308
|
+
BarchartCardComponent.decorators = [
|
|
309
|
+
{ type: Component, args: [{
|
|
310
|
+
selector: 'nc-barchart-card',
|
|
311
|
+
template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-bar-vertical class=\"custom-chart\"\n [scheme]=\"colorScheme\"\n [results]=\"single\"\n [gradient]=\"gradient\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [legend]=\"showLegend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxisLabel]=\"card.xAxisLabel\"\n [yAxisLabel]=\"card.yAxisLabel\"\n (select)=\"onSelect($event)\">\n </ngx-charts-bar-vertical>\n</mat-card>\n",
|
|
312
|
+
styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}.custom-mat-card{padding-left:0;padding-top:0}"]
|
|
313
|
+
},] }
|
|
314
|
+
];
|
|
315
|
+
BarchartCardComponent.ctorParameters = () => [
|
|
316
|
+
{ type: Injector },
|
|
317
|
+
{ type: DashboardResourceService },
|
|
318
|
+
{ type: TranslateService },
|
|
319
|
+
{ type: LoggerService }
|
|
320
|
+
];
|
|
321
|
+
BarchartCardComponent.propDecorators = {
|
|
322
|
+
selectEvent: [{ type: Output }]
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
class PortalCardComponent extends AbstractCustomCard {
|
|
326
|
+
constructor(_injector, resourceService, translateService, loggerService) {
|
|
327
|
+
super(_injector, resourceService, translateService, loggerService);
|
|
328
|
+
this._injector = _injector;
|
|
329
|
+
this.resourceService = resourceService;
|
|
330
|
+
this.translateService = translateService;
|
|
331
|
+
this.loggerService = loggerService;
|
|
332
|
+
this.selectEvent = new EventEmitter();
|
|
333
|
+
}
|
|
334
|
+
ngOnInit() {
|
|
335
|
+
this.injectedDashboard = this.componentPortal;
|
|
336
|
+
}
|
|
337
|
+
onSelect(data) {
|
|
338
|
+
this.loggerService.info('Custom dashboard selected.');
|
|
339
|
+
this.selectEvent.emit(data);
|
|
340
|
+
}
|
|
341
|
+
convertData(json) {
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
PortalCardComponent.ctorParameters = () => [
|
|
345
|
+
{ type: Injector },
|
|
346
|
+
{ type: DashboardResourceService },
|
|
347
|
+
{ type: TranslateService },
|
|
348
|
+
{ type: LoggerService }
|
|
349
|
+
];
|
|
350
|
+
PortalCardComponent.decorators = [
|
|
351
|
+
{ type: Component, args: [{
|
|
352
|
+
selector: 'nc-portal-card',
|
|
353
|
+
template: "<ng-template [cdkPortalOutlet]=\"injectedDashboard\">\n</ng-template>\n",
|
|
354
|
+
styles: [".custom-mat-card{padding-left:0;padding-top:0}.dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}"]
|
|
355
|
+
},] }
|
|
356
|
+
];
|
|
357
|
+
PortalCardComponent.ctorParameters = () => [
|
|
358
|
+
{ type: Injector },
|
|
359
|
+
{ type: DashboardResourceService },
|
|
360
|
+
{ type: TranslateService },
|
|
361
|
+
{ type: LoggerService }
|
|
362
|
+
];
|
|
363
|
+
PortalCardComponent.propDecorators = {
|
|
364
|
+
componentPortal: [{ type: Input }],
|
|
365
|
+
selectEvent: [{ type: Output }]
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
class LineChartCardComponent extends AbstractCustomCard {
|
|
369
|
+
constructor(_injector, resourceService, translateService, loggerService) {
|
|
370
|
+
super(_injector, resourceService, translateService, loggerService);
|
|
371
|
+
this._injector = _injector;
|
|
372
|
+
this.resourceService = resourceService;
|
|
373
|
+
this.translateService = translateService;
|
|
374
|
+
this.loggerService = loggerService;
|
|
375
|
+
this.timeline = true;
|
|
376
|
+
this.selectEvent = new EventEmitter();
|
|
377
|
+
}
|
|
378
|
+
ngOnInit() {
|
|
379
|
+
super.ngOnInit();
|
|
380
|
+
}
|
|
381
|
+
onSelect(data) {
|
|
382
|
+
this.loggerService.info('Line chart selected.');
|
|
383
|
+
this.selectEvent.emit(data);
|
|
384
|
+
}
|
|
385
|
+
convertData(json) {
|
|
386
|
+
let index = 0;
|
|
387
|
+
let result;
|
|
388
|
+
for (result in json.aggregations) {
|
|
389
|
+
if (json.aggregations.hasOwnProperty(result)) {
|
|
390
|
+
this.multi.push(new DashboardMultiData(result, new Array()));
|
|
391
|
+
json.aggregations[result].buckets.forEach(bucket => {
|
|
392
|
+
this.multi[index].series.push(new DashboardSingleData(bucket.key, bucket.doc_count));
|
|
393
|
+
});
|
|
394
|
+
index++;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
this.multi = [...this.multi];
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
LineChartCardComponent.ctorParameters = () => [
|
|
401
|
+
{ type: Injector },
|
|
402
|
+
{ type: DashboardResourceService },
|
|
403
|
+
{ type: TranslateService },
|
|
404
|
+
{ type: LoggerService }
|
|
405
|
+
];
|
|
406
|
+
LineChartCardComponent.decorators = [
|
|
407
|
+
{ type: Component, args: [{
|
|
408
|
+
selector: 'nc-line-chart-card',
|
|
409
|
+
template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-line-chart class=\"custom-chart\"\n [legend]=\"showLegend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [xAxisLabel]=\"card.xAxisLabel\"\n [yAxisLabel]=\"card.yAxisLabel\"\n [timeline]=\"timeline\"\n [results]=\"multi\"\n (select)=\"onSelect($event)\"\n >\n </ngx-charts-line-chart>\n</mat-card>\n",
|
|
410
|
+
styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-mat-card{padding-left:0;padding-top:0}"]
|
|
411
|
+
},] }
|
|
412
|
+
];
|
|
413
|
+
LineChartCardComponent.ctorParameters = () => [
|
|
414
|
+
{ type: Injector },
|
|
415
|
+
{ type: DashboardResourceService },
|
|
416
|
+
{ type: TranslateService },
|
|
417
|
+
{ type: LoggerService }
|
|
418
|
+
];
|
|
419
|
+
LineChartCardComponent.propDecorators = {
|
|
420
|
+
selectEvent: [{ type: Output }]
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
class DashboardContentComponent extends AbstractDashboardContent {
|
|
424
|
+
constructor(_log) {
|
|
425
|
+
super(_log);
|
|
426
|
+
this._log = _log;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
DashboardContentComponent.ctorParameters = () => [
|
|
430
|
+
{ type: LoggerService }
|
|
431
|
+
];
|
|
432
|
+
DashboardContentComponent.decorators = [
|
|
433
|
+
{ type: Component, args: [{
|
|
434
|
+
selector: 'nc-dashboard-content',
|
|
435
|
+
template: "<mat-grid-list [cols]=\"params.columns\" rowHeight=\"210px\">\n <mat-grid-tile *ngFor=\"let card of gridElements\"\n [colspan]=\"card.layout.cols\"\n [rowspan]=\"card.layout.rows\"\n [ngSwitch]=\"card.type\">\n <nc-count-card *ngSwitchCase=\"cardTypes.COUNT\" [card]=\"card.item\" class=\"full-size\"></nc-count-card>\n <nc-iframe-card *ngSwitchCase=\"cardTypes.IFRAME\" [card]=\"card.item\" class=\"full-size\"></nc-iframe-card>\n <nc-pie-chart-card *ngSwitchCase=\"cardTypes.PIE\" [card]=\"card.item\" class=\"full-size\"></nc-pie-chart-card>\n <nc-line-chart-card *ngSwitchCase=\"cardTypes.LINE\" [card]=\"card.item\" class=\"full-size\"></nc-line-chart-card>\n <nc-linear-gauge-card *ngSwitchCase=\"cardTypes.LINEARGAUGE\" [card]=\"card.item\"\n class=\"full-size\"></nc-linear-gauge-card>\n <nc-barchart-card *ngSwitchCase=\"cardTypes.BAR\" [card]=\"card.item\" class=\"full-size\"></nc-barchart-card>\n <nc-portal-card *ngSwitchCase=\"cardTypes.DEFAULT\" [card]=\"card.item\"\n [componentPortal]=\"card.item.portalComponent\" class=\"full-size\"></nc-portal-card>\n <div *ngSwitchCase=\"cardTypes.BLANK\"></div>\n </mat-grid-tile>\n</mat-grid-list>\n",
|
|
436
|
+
styles: [".full-size{width:100%;height:100%;margin:auto;padding:0}"]
|
|
437
|
+
},] }
|
|
438
|
+
];
|
|
439
|
+
DashboardContentComponent.ctorParameters = () => [
|
|
440
|
+
{ type: LoggerService }
|
|
441
|
+
];
|
|
442
|
+
|
|
443
|
+
class DashboardComponentModule {
|
|
444
|
+
}
|
|
445
|
+
DashboardComponentModule.decorators = [
|
|
446
|
+
{ type: NgModule, args: [{
|
|
447
|
+
declarations: [
|
|
448
|
+
CountCardComponent,
|
|
449
|
+
IframeCardComponent,
|
|
450
|
+
DashboardContentComponent,
|
|
451
|
+
PieChartCardComponent,
|
|
452
|
+
LineChartCardComponent,
|
|
453
|
+
BarchartCardComponent,
|
|
454
|
+
LinearGaugeCardComponent,
|
|
455
|
+
PortalCardComponent
|
|
456
|
+
],
|
|
457
|
+
exports: [
|
|
458
|
+
CountCardComponent,
|
|
459
|
+
IframeCardComponent,
|
|
460
|
+
DashboardContentComponent,
|
|
461
|
+
PieChartCardComponent,
|
|
462
|
+
LineChartCardComponent,
|
|
463
|
+
BarchartCardComponent,
|
|
464
|
+
LinearGaugeCardComponent
|
|
465
|
+
],
|
|
466
|
+
imports: [
|
|
467
|
+
CommonModule,
|
|
468
|
+
MaterialModule,
|
|
469
|
+
TranslateLibModule,
|
|
470
|
+
NgxChartsModule
|
|
471
|
+
]
|
|
472
|
+
},] }
|
|
473
|
+
];
|
|
474
|
+
|
|
475
|
+
/* COMPONENTS */
|
|
476
|
+
|
|
477
|
+
class BooleanFieldComponent extends AbstractBooleanFieldComponent {
|
|
478
|
+
constructor(translate, isEnabled, informAboutInvalidData) {
|
|
479
|
+
super(translate, informAboutInvalidData);
|
|
480
|
+
this.isEnabled = isEnabled;
|
|
481
|
+
this.valueLabelEnabled = isEnabled;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
BooleanFieldComponent.ctorParameters = () => [
|
|
485
|
+
{ type: TranslateService },
|
|
486
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
|
|
487
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
488
|
+
];
|
|
489
|
+
BooleanFieldComponent.decorators = [
|
|
490
|
+
{ type: Component, args: [{
|
|
491
|
+
selector: 'nc-boolean-field',
|
|
492
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"boolean\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #boolean let-showLargeLayout=\"showLargeLayout\">\n <div>\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"true\"></nc-required-label>\n <br></mat-label>\n <mat-slide-toggle color=\"primary\" [formControl]=\"formControl\">\n {{createValueLabel()}}\n </mat-slide-toggle>\n <mat-error *ngIf=\"dataField.isInvalid(formControl)\">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n",
|
|
493
|
+
styles: [""]
|
|
494
|
+
},] }
|
|
495
|
+
];
|
|
496
|
+
BooleanFieldComponent.ctorParameters = () => [
|
|
497
|
+
{ type: TranslateService },
|
|
498
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
|
|
499
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
500
|
+
];
|
|
501
|
+
|
|
502
|
+
class ButtonFieldComponent extends AbstractButtonFieldComponent {
|
|
503
|
+
constructor(translate, dialogService, informAboutInvalidData) {
|
|
504
|
+
super(translate, dialogService, informAboutInvalidData);
|
|
505
|
+
this.dialogService = dialogService;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
ButtonFieldComponent.ctorParameters = () => [
|
|
509
|
+
{ type: TranslateService },
|
|
510
|
+
{ type: DialogService },
|
|
511
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
512
|
+
];
|
|
513
|
+
ButtonFieldComponent.decorators = [
|
|
514
|
+
{ type: Component, args: [{
|
|
515
|
+
selector: 'nc-button-field',
|
|
516
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"button\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #button let-showLargeLayout=\"showLargeLayout\">\n <div>\n <mat-label *ngIf=\"!showLargeLayout.value\">\n {{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n <br>\n </mat-label>\n <button mat-button\n [ngClass]=\"{\n 'mat-raised-button': resolveComponentType() === 'raised',\n 'mat-stroked-button': resolveComponentType() === 'stroked',\n 'mat-flat-button': resolveComponentType() === 'flat',\n 'mat-icon-button': resolveComponentType() === 'icon',\n 'mat-fab': resolveComponentType() === 'fab',\n 'mat-mini-fab': resolveComponentType() === 'minifab'}\"\n color=\"primary\"\n [matTooltip]=\"dataField.description\"\n [disabled]=\"formControl.disabled || dataField.waitingForResponse\"\n (click)=\"resolveValue()\">\n <div class=\"grid-wrapper\">\n <mat-icon *ngIf=\"dataField.waitingForResponse\" class=\"grid-1-1 margin-auto\" >\n <mat-spinner color=\"warn\" diameter=\"22\"></mat-spinner>\n </mat-icon>\n <div [ngClass]=\"{'label-waiting': dataField.waitingForResponse}\" class=\"grid-1-1\">\n {{(dataField.placeholder === undefined || dataField.placeholder === '') ? dataField.title : (isIconTypeButton() ? '' : dataField.placeholder) }}\n </div>\n <mat-icon class=\"grid-1-1\"\n *ngIf=\"isIconTypeButton() && !dataField.waitingForResponse\">{{dataField.placeholder}}</mat-icon>\n </div>\n </button>\n\n <mat-error *ngIf=\"dataField.isInvalid(formControl)\">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n",
|
|
517
|
+
styles: [".label-waiting{opacity:0}.grid-wrapper{display:-ms-grid;display:grid;place-items:center}.grid-1-1{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.margin-auto{margin:0 auto}"]
|
|
518
|
+
},] }
|
|
519
|
+
];
|
|
520
|
+
ButtonFieldComponent.ctorParameters = () => [
|
|
521
|
+
{ type: TranslateService },
|
|
522
|
+
{ type: DialogService },
|
|
523
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
524
|
+
];
|
|
525
|
+
|
|
526
|
+
class DataFieldTemplateComponent extends AbstractDataFieldTemplateComponent {
|
|
527
|
+
constructor(_paperView, _config) {
|
|
528
|
+
super(_paperView, _config);
|
|
529
|
+
this._paperView = _paperView;
|
|
530
|
+
this._config = _config;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
DataFieldTemplateComponent.ctorParameters = () => [
|
|
534
|
+
{ type: PaperViewService },
|
|
535
|
+
{ type: ConfigurationService }
|
|
536
|
+
];
|
|
537
|
+
DataFieldTemplateComponent.decorators = [
|
|
538
|
+
{ type: Component, args: [{
|
|
539
|
+
selector: 'nc-data-field-template',
|
|
540
|
+
template: "<div class=\"fill-all-space\" #dataFieldContainer>\n\n <!-- Large layout -->\n <ng-template [ngIf]=\"evaluateTemplateCondition()\" [ngIfElse]=\"elseTemplate\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"fill-all-space\" [ngClass]=\"{'padding-16px': isPaperView(), 'padding-32px': !isPaperView()}\">\n <div fxFlex=\"{{offset}}\"></div>\n <div fxFlex=\"{{47.5 - offset}}\" class=\"cell-padding\">\n <span class=\"data-field-title\" [matTooltip]=\"dataField.description\">{{dataField.title}}<nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"true\"></nc-required-label></span>\n </div>\n <div fxFlex=\"5\"></div>\n <div fxFlex=\"{{47.5 - offset}}\" class=\"cell-padding\">\n <ng-container *ngTemplateOutlet=\"dataFieldTemplate; context: {'showLargeLayout':showLargeLayout}\"></ng-container>\n </div>\n <div fxFlex=\"{{offset}}\"></div>\n </div>\n </ng-template>\n\n <!-- Small layout -->\n <ng-template #elseTemplate>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"fill-all-space padding-16px\">\n <div fxFlex=\"{{offset}}\"></div>\n <div fxFlex=\"{{100 - (2 * offset)}}\" class=\"cell-padding\">\n <ng-container *ngTemplateOutlet=\"dataFieldTemplate; context: {'showLargeLayout':showLargeLayout}\"></ng-container>\n </div>\n <div fxFlex=\"{{offset}}\"></div>\n </div>\n </ng-template>\n</div>\n",
|
|
541
|
+
styles: [".data-field-title{font-size:16px;font-weight:400}.fill-all-space{min-width:100%;padding:0;margin:0 auto}.cell-padding{margin:0;padding:8px}.padding-16px{padding:0 16px}.padding-32px{padding:0 32px}"]
|
|
542
|
+
},] }
|
|
543
|
+
];
|
|
544
|
+
DataFieldTemplateComponent.ctorParameters = () => [
|
|
545
|
+
{ type: PaperViewService },
|
|
546
|
+
{ type: ConfigurationService }
|
|
547
|
+
];
|
|
548
|
+
|
|
549
|
+
const ɵ0 = DATE_FORMAT;
|
|
550
|
+
class DateFieldComponent extends AbstractDateFieldComponent {
|
|
551
|
+
constructor(translate, informAboutInvalidData) {
|
|
552
|
+
super(translate, informAboutInvalidData);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
DateFieldComponent.ctorParameters = () => [
|
|
556
|
+
{ type: TranslateService },
|
|
557
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
558
|
+
];
|
|
559
|
+
DateFieldComponent.decorators = [
|
|
560
|
+
{ type: Component, args: [{
|
|
561
|
+
selector: 'nc-date-field',
|
|
562
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"date\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #date let-showLargeLayout=\"showLargeLayout\">\n <mat-form-field [appearance]=\"dataField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}</mat-label>\n <input matInput\n [matDatepicker]=\"datepicker\"\n [required]=\"dataField.behavior.required\"\n [placeholder]=\"dataField.placeholder\"\n [formControl]=\"formControl\"\n (click)=\"datepicker.open()\"\n [min]=\"dataField.min\"\n [max]=\"dataField.max\"\n (keydown.enter)=\"datepicker.close()\">\n <mat-datepicker-toggle matPrefix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n <mat-hint>{{dataField.description}}</mat-hint>\n <mat-error *ngIf=\"dataField.isInvalid(formControl)\">{{getErrorMessage()}}</mat-error>\n </mat-form-field>\n</ng-template>\n",
|
|
563
|
+
providers: [
|
|
564
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 }
|
|
565
|
+
],
|
|
566
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
567
|
+
},] }
|
|
568
|
+
];
|
|
569
|
+
DateFieldComponent.ctorParameters = () => [
|
|
570
|
+
{ type: TranslateService },
|
|
571
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
572
|
+
];
|
|
573
|
+
|
|
574
|
+
const ɵ0$1 = DATE_TIME_FORMAT;
|
|
575
|
+
class DateTimeFieldComponent extends AbstractDateTimeFieldComponent {
|
|
576
|
+
constructor(translate, informAboutInvalidData) {
|
|
577
|
+
super(translate, informAboutInvalidData);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
DateTimeFieldComponent.ctorParameters = () => [
|
|
581
|
+
{ type: TranslateService },
|
|
582
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
583
|
+
];
|
|
584
|
+
DateTimeFieldComponent.decorators = [
|
|
585
|
+
{ type: Component, args: [{
|
|
586
|
+
selector: 'nc-date-time-field',
|
|
587
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"fieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #fieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <mat-form-field [appearance]=\"dataField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}</mat-label>\n <input matInput\n [ngxMatDatetimePicker]=\"picker\"\n [required]=\"dataField.behavior.required\"\n [placeholder]=\"dataField.placeholder\"\n [formControl]=\"formControl\"\n [min]=\"dataField.min\"\n [max]=\"dataField.max\"\n (click)=\"picker.open()\">\n <mat-datepicker-toggle matPrefix [for]=\"picker\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker\n [showSpinners]=\"true\"\n [showSeconds]=\"false\"\n [stepHour]=\"1\"\n [stepMinute]=\"5\"\n [color]=\"'primary'\"\n [enableMeridian]=\"false\">\n </ngx-mat-datetime-picker>\n <mat-hint>{{dataField.description}}</mat-hint>\n <mat-error *ngIf=\"dataField.isInvalid(formControl)\">{{getErrorMessage()}}</mat-error>\n </mat-form-field>\n</ng-template>\n",
|
|
588
|
+
providers: [
|
|
589
|
+
{ provide: NGX_MAT_DATE_FORMATS, useValue: ɵ0$1 }
|
|
590
|
+
],
|
|
591
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
592
|
+
},] }
|
|
593
|
+
];
|
|
594
|
+
DateTimeFieldComponent.ctorParameters = () => [
|
|
595
|
+
{ type: TranslateService },
|
|
596
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
597
|
+
];
|
|
598
|
+
|
|
599
|
+
class EnumerationFieldComponent extends AbstractEnumerationFieldComponent {
|
|
600
|
+
constructor(informAboutInvalidData) {
|
|
601
|
+
super(informAboutInvalidData);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
EnumerationFieldComponent.ctorParameters = () => [
|
|
605
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
606
|
+
];
|
|
607
|
+
EnumerationFieldComponent.decorators = [
|
|
608
|
+
{ type: Component, args: [{
|
|
609
|
+
selector: 'nc-enumeration-field',
|
|
610
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"enumFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #enumFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div [ngSwitch]=\"dataField.getType()\">\n <nc-enumeration-autocomplete-dynamic-field *ngSwitchCase=\"'autocomplete_dynamic'\"\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-autocomplete-dynamic-field>\n <nc-enumeration-autocomplete-select-field *ngSwitchCase=\"'autocomplete'\"\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-autocomplete-select-field>\n <nc-enumeration-list-field *ngSwitchCase=\"'list'\"\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-list-field>\n <nc-enumeration-stepper-field *ngSwitchCase=\"'stepper'\"\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-stepper-field>\n <nc-enumeration-icon-field *ngSwitchCase=\"'icon'\"\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-icon-field>\n <nc-enumeration-select-field *ngSwitchDefault\n [showLargeLayout]=\"showLargeLayout\"\n [enumerationField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-enumeration-select-field>\n </div>\n</ng-template>\n",
|
|
611
|
+
styles: [""]
|
|
612
|
+
},] }
|
|
613
|
+
];
|
|
614
|
+
EnumerationFieldComponent.ctorParameters = () => [
|
|
615
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
616
|
+
];
|
|
617
|
+
|
|
618
|
+
class EnumerationAutocompleteSelectFieldComponent extends AbstractEnumerationAutocompleteSelectFieldComponent {
|
|
619
|
+
constructor(_translate) {
|
|
620
|
+
super(_translate);
|
|
621
|
+
this._translate = _translate;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
EnumerationAutocompleteSelectFieldComponent.ctorParameters = () => [
|
|
625
|
+
{ type: TranslateService }
|
|
626
|
+
];
|
|
627
|
+
EnumerationAutocompleteSelectFieldComponent.decorators = [
|
|
628
|
+
{ type: Component, args: [{
|
|
629
|
+
selector: 'nc-enumeration-autocomplete-select-field',
|
|
630
|
+
template: "<mat-form-field [appearance]=\"enumerationField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{enumerationField.title}}</mat-label>\n <input type=\"text\"\n aria-label=\"Autocomplete\"\n matInput\n #input\n [placeholder]=\"enumerationField.placeholder\"\n [formControl]=\"formControlRef\"\n [matAutocomplete]=\"auto\"\n (keyup)=\"change()\">\n <mat-autocomplete [displayWith]=\"renderSelection\" autoActiveFirstOption #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.key\" (click)=\"change()\">\n {{option.value}}\n </mat-option>\n </mat-autocomplete>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf=\"enumerationField.isInvalid(formControlRef)\">{{buildErrorMessage()}}</mat-error>\n</mat-form-field>\n",
|
|
631
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
632
|
+
},] }
|
|
633
|
+
];
|
|
634
|
+
EnumerationAutocompleteSelectFieldComponent.ctorParameters = () => [
|
|
635
|
+
{ type: TranslateService }
|
|
636
|
+
];
|
|
637
|
+
|
|
638
|
+
class EnumerationSelectFieldComponent extends AbstractEnumerationSelectFieldComponent {
|
|
639
|
+
constructor() {
|
|
640
|
+
super();
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
EnumerationSelectFieldComponent.decorators = [
|
|
644
|
+
{ type: Component, args: [{
|
|
645
|
+
selector: 'nc-enumeration-select-field',
|
|
646
|
+
template: "<mat-form-field [appearance]=\"enumerationField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{enumerationField.title}}</mat-label>\n <mat-select [formControl]=\"formControlRef\"\n [placeholder]=\"enumerationField.placeholder\">\n <mat-option *ngFor=\"let option of enumerationField.choices\" [value]=\"option.key\">\n {{option.value}}\n </mat-option>\n </mat-select>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf=\"enumerationField.isInvalid(formControlRef)\">{{'dataField.validations.required' | translate}}</mat-error>\n</mat-form-field>\n",
|
|
647
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
648
|
+
},] }
|
|
649
|
+
];
|
|
650
|
+
EnumerationSelectFieldComponent.ctorParameters = () => [];
|
|
651
|
+
|
|
652
|
+
class EnumerationListFieldComponent extends AbstractEnumerationListFieldComponent {
|
|
653
|
+
constructor() {
|
|
654
|
+
super();
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
EnumerationListFieldComponent.decorators = [
|
|
658
|
+
{ type: Component, args: [{
|
|
659
|
+
selector: 'nc-enumeration-list-field',
|
|
660
|
+
template: "<mat-radio-group\n color=\"primary\"\n class=\"full-width example-radio-group\"\n aria-labelledby=\"example-radio-group-label\"\n [required]=\"enumerationField.behavior.required\"\n [formControl]=\"formControlRef\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{enumerationField.title}}\n <nc-required-label *ngIf=\"enumerationField.behavior.required\" [isIn]=\"true\"></nc-required-label>\n <br></mat-label>\n <mat-radio-button class=\"example-radio-button\" *ngFor=\"let option of enumerationField.choices\" [value]=\"option.key\">\n {{option.value}}\n </mat-radio-button>\n <mat-error *ngIf=\"enumerationField.isInvalid(formControlRef)\">{{'dataField.validations.required' | translate}}</mat-error>\n</mat-radio-group>\n",
|
|
661
|
+
styles: [".example-radio-group{display:flex;flex-direction:column;margin:16px 0}.example-radio-button{margin:8px}.full-width{width:100%}"]
|
|
662
|
+
},] }
|
|
663
|
+
];
|
|
664
|
+
EnumerationListFieldComponent.ctorParameters = () => [];
|
|
665
|
+
|
|
666
|
+
class PreviewDialogComponent {
|
|
667
|
+
constructor(data) {
|
|
668
|
+
this.data = data;
|
|
669
|
+
data.imageFull.subscribe(imageSource => {
|
|
670
|
+
this.image = imageSource;
|
|
671
|
+
});
|
|
672
|
+
}
|
|
673
|
+
ngOnInit() {
|
|
674
|
+
}
|
|
675
|
+
fullImageExists() {
|
|
676
|
+
return !!this.image;
|
|
677
|
+
}
|
|
678
|
+
isPdf() {
|
|
679
|
+
return this.data.extension === FilePreviewType.pdf;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
PreviewDialogComponent.ctorParameters = () => [
|
|
683
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
|
684
|
+
];
|
|
685
|
+
PreviewDialogComponent.decorators = [
|
|
686
|
+
{ type: Component, args: [{
|
|
687
|
+
selector: 'nc-preview-dialog',
|
|
688
|
+
template: "<button class=\"close\" mat-icon-button [mat-dialog-close]=\"true\">\n <mat-icon>close</mat-icon>\n</button>\n<h1 mat-dialog-title *ngIf=\"!isPdf()\">Image: {{data.dataField.value.name}}</h1>\n<h1 mat-dialog-title *ngIf=\"isPdf()\">PDF: {{data.dataField.value.name}}</h1>\n<div mat-dialog-content fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <img class=\"image-size\" *ngIf=\"!fullImageExists()\" [src]=\"data.imagePreview\" alt=\"Image preview\"/>\n <img class=\"image-size\" *ngIf=\"fullImageExists() && !isPdf()\" [src]=\"image\" alt=\"Image\"/>\n <embed class=\"pdf-view\" *ngIf=\"fullImageExists() && isPdf()\" [src]=\"image\" [type]=\"'application/pdf'\" />\n</div>\n",
|
|
689
|
+
styles: [".image-size{max-height:64vh}.close{float:right;top:-24px;right:-24px}.pdf-view{width:50vw;height:64vh}"]
|
|
690
|
+
},] }
|
|
691
|
+
];
|
|
692
|
+
PreviewDialogComponent.ctorParameters = () => [
|
|
693
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
|
694
|
+
];
|
|
695
|
+
|
|
696
|
+
class FileFieldComponent extends AbstractFileFieldComponent {
|
|
697
|
+
constructor(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData, _sanitizer, dialog) {
|
|
698
|
+
super(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData, _sanitizer);
|
|
699
|
+
this._sanitizer = _sanitizer;
|
|
700
|
+
this.dialog = dialog;
|
|
701
|
+
}
|
|
702
|
+
showPreviewDialog() {
|
|
703
|
+
super.showPreviewDialog();
|
|
704
|
+
this.dialog.open(PreviewDialogComponent, {
|
|
705
|
+
data: {
|
|
706
|
+
dataField: this.dataField,
|
|
707
|
+
imagePreview: this.previewSource,
|
|
708
|
+
imageFull: this.fullSource,
|
|
709
|
+
extension: this.previewExtension
|
|
710
|
+
}
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
FileFieldComponent.ctorParameters = () => [
|
|
715
|
+
{ type: TaskResourceService },
|
|
716
|
+
{ type: LoggerService },
|
|
717
|
+
{ type: SnackBarService },
|
|
718
|
+
{ type: TranslateService },
|
|
719
|
+
{ type: EventService },
|
|
720
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] },
|
|
721
|
+
{ type: DomSanitizer },
|
|
722
|
+
{ type: MatDialog }
|
|
723
|
+
];
|
|
724
|
+
FileFieldComponent.decorators = [
|
|
725
|
+
{ type: Component, args: [{
|
|
726
|
+
selector: 'nc-file-field',
|
|
727
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"dataFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div fxLayoutAlign=\"center center\" fxLayout=\"row\">\n <div fxFlex=\"{{!filePreview ? '100' : '75'}}\">\n <mat-label *ngIf=\"!showLargeLayout.value\">\n {{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n <br>\n </mat-label>\n <div class=\"form-input button-icon-input full-width input-margin\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <button mat-icon-button color=\"accent\" (click)=\"chooseFile()\"\n [matTooltip]=\"'dataField.file.clickToUpload' | translate\" *ngIf=\"!formControl.disabled\"\n [class.do-not-click]=\"state.uploading\">\n <mat-icon>file_upload</mat-icon>\n </button>\n <span (click)=\"isEmpty() ? chooseFile() : download()\" fxFlex\n [matTooltip]=\"isEmpty() ? '' : ('dataField.file.clickToDownload' | translate : {fileName: constructDisplayName()})\"\n class=\"input-name-ellipsis\"\n [ngClass]=\"{'input-placeholder': isEmpty(), 'no-cursor': isEmpty() && formControl.disabled}\">{{constructDisplayName()}}</span>\n <button (click)=\"deleteFile()\" [matTooltip]=\"'dataField.file.clickToDelete' | translate\" mat-icon-button\n *ngIf=\"!isEmpty() && !formControl.disabled\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n </div>\n <mat-progress-bar *ngIf=\"state.uploading || state.downloading\" color=\"primary\" [value]=\"state.progress\"\n [mode]=\"state.uploading ? 'determinate' : 'indeterminate'\"\n class=\"margin-bottom-default\"></mat-progress-bar>\n <input type=\"file\" #fileUploadInput name=\"fileUpload\" [multiple]=\"false\"\n accept=\"{{dataField.allowTypes}}\" class=\"invisible-input\">\n <input type=\"text\" [formControl]=\"formControl\" class=\"invisible-input\">\n <mat-hint class=\"file-hint-error\"\n *ngIf=\"!dataField.isInvalid(formControl)\">{{dataField.description}}</mat-hint>\n <mat-error class=\"file-hint-error\"\n *ngIf=\"dataField.isInvalid(formControl)\">{{'dataField.validations.required' | translate}}</mat-error>\n </div>\n <div *ngIf=\"filePreview\" fxFlex=\"5\"></div>\n <div *ngIf=\"filePreview\" fxFlex=\"20\" fxLayout=\"row\" fxLayoutAlign=\"center center\" #imageDiv\n (resized)=\"changeMaxWidth($event)\"\n [ngStyle]=\"{'max-height': getHeight()+'px'}\">\n <img *ngIf=\"previewSource !== undefined && !state.downloading && isDisplayable\" class=\"image-preview\" #imageEl\n [ngStyle]=\"!isBorderLGBTQ() && !isBorderDefault() && {\n 'border-width': getPreviewBorderWidth(),\n 'border-style': getPreviewBorderStyle(),\n 'border-color': getPreviewBorderColor()\n }\"\n [ngClass]=\"{'border-LGBTQ': isBorderLGBTQ(), 'border-default': isBorderDefault()}\"\n [src]=\"previewSource\" alt=\"Image preview\" (click)=\"showPreviewDialog()\"/>\n <mat-spinner *ngIf=\"previewSource === undefined && !!state.downloading && isDisplayable\"\n [diameter]=\"26\"></mat-spinner>\n </div>\n </div>\n</ng-template>\n",
|
|
728
|
+
styles: [".invisible-input{display:none}.margin-bottom-default{margin-bottom:8px}.file-field-image{width:120px}.file-field-image-wrapper{border-radius:3px}.progress-bar-size{height:8px}.margin-bottom-half{margin-bottom:4px}.do-not-click:hover{cursor:not-allowed}.file-button{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.input-name-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.input-placeholder{color:rgba(0,0,0,.42)}.button-icon-input{padding:2px!important}.full-width{width:100%;min-width:100%}.input-margin{margin-top:7px!important}.form-input{background:0 0;color:#333;outline:0;border:1px solid rgba(0,0,0,.12);text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;padding:10px 15px;box-sizing:border-box;height:54.81px}.form-input:hover{border-color:#000}.placeholder{color:rgba(0,0,0,.42)!important}.file-hint-error{padding:0 1em;font-size:75%}.image-preview{width:auto;height:auto;cursor:pointer}.no-cursor{cursor:default!important}.border-LGBTQ{border:5px solid transparent;-o-border-image:linear-gradient(to bottom right,#b827fc 0,#2c90fc 25%,#b8fd33 50%,#fec837 75%,#fd1892 100%);border-image:linear-gradient(to bottom right,#b827fc 0,#2c90fc 25%,#b8fd33 50%,#fec837 75%,#fd1892 100%);border-image-slice:1}.border-default{border:1px solid #000}"]
|
|
729
|
+
},] }
|
|
730
|
+
];
|
|
731
|
+
FileFieldComponent.ctorParameters = () => [
|
|
732
|
+
{ type: TaskResourceService },
|
|
733
|
+
{ type: LoggerService },
|
|
734
|
+
{ type: SnackBarService },
|
|
735
|
+
{ type: TranslateService },
|
|
736
|
+
{ type: EventService },
|
|
737
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] },
|
|
738
|
+
{ type: DomSanitizer },
|
|
739
|
+
{ type: MatDialog }
|
|
740
|
+
];
|
|
741
|
+
|
|
742
|
+
class FileListFieldComponent extends AbstractFileListFieldComponent {
|
|
743
|
+
constructor(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData) {
|
|
744
|
+
super(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
FileListFieldComponent.ctorParameters = () => [
|
|
748
|
+
{ type: TaskResourceService },
|
|
749
|
+
{ type: LoggerService },
|
|
750
|
+
{ type: SnackBarService },
|
|
751
|
+
{ type: TranslateService },
|
|
752
|
+
{ type: EventService },
|
|
753
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
754
|
+
];
|
|
755
|
+
FileListFieldComponent.decorators = [
|
|
756
|
+
{ type: Component, args: [{
|
|
757
|
+
selector: 'nc-file-list-field',
|
|
758
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"dataFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div>\n <mat-label *ngIf=\"!showLargeLayout.value\">\n {{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n <br>\n </mat-label>\n <div class=\"form-input button-icon-input full-width input-margin\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <button mat-icon-button color=\"accent\" (click)=\"chooseFile()\"\n [matTooltip]=\"'dataField.file.clickToUpload' | translate\" *ngIf=\"!formControl.disabled\"\n [class.do-not-click]=\"state.uploading\">\n <mat-icon>file_upload</mat-icon>\n </button>\n <span *ngIf=\"uploadedFiles.length === 0\" (click)=\"chooseFile()\" fxFlex\n [ngClass]=\"{'no-cursor': formControl.disabled}\" class=\"input-placeholder input-name-ellipsis\">{{constructDisplayName()}}</span>\n <div *ngIf=\"uploadedFiles.length !== 0\" class=\"input-name-ellipsis\" fxFlex>\n <div *ngFor=\"let name of uploadedFiles\" fxLayoutAlign=\"start center\">\n <span (click)=\"download(name)\" fxFlex [matTooltip]=\"'dataField.file.clickToDownload' | translate : {fileName: name}\"\n class=\"input-name-ellipsis file-list-item\">{{name}}</span>\n <button (click)=\"deleteFile(name)\" [matTooltip]=\"'dataField.file.clickToDelete' | translate\" mat-icon-button\n *ngIf=\"!formControl.disabled\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <mat-progress-bar *ngIf=\"state.uploading || state.downloading\" color=\"primary\" [value]=\"state.progress\"\n [mode]=\"state.uploading ? 'determinate' : 'indeterminate'\"\n class=\"margin-bottom-default\"></mat-progress-bar>\n <input type=\"file\" #fileUploadInput name=\"fileUpload\" [multiple]=\"true\"\n accept=\"{{dataField.allowTypes}}\" class=\"invisible-input\"/>\n <input type=\"text\" [formControl]=\"formControl\" class=\"invisible-input\">\n <mat-hint class=\"file-hint-error\" *ngIf=\"!dataField.isInvalid(formControl)\">{{dataField.description}}</mat-hint>\n <mat-error class=\"file-hint-error\" *ngIf=\"dataField.isInvalid(formControl)\">{{'dataField.validations.required' | translate}}</mat-error>\n </div>\n</ng-template>\n",
|
|
759
|
+
styles: [".invisible-input{display:none}.margin-bottom-default{margin-bottom:8px}.progress-bar-size{height:8px}.margin-bottom-half{margin-bottom:4px}.do-not-click:hover{cursor:not-allowed}.file-button{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.input-name-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.input-placeholder{color:rgba(0,0,0,.42)}.button-icon-input{padding:2px!important}.full-width{width:100%;min-width:100%}.input-margin{margin-top:7px!important}.form-input{background:0 0;color:#333;outline:0;border:1px solid rgba(0,0,0,.12);text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;padding:10px 15px;box-sizing:border-box;min-height:54.81px}.form-input:hover{border-color:#000}.file-hint-error{padding:0 1em;font-size:75%}.no-cursor{cursor:default!important}"]
|
|
760
|
+
},] }
|
|
761
|
+
];
|
|
762
|
+
FileListFieldComponent.ctorParameters = () => [
|
|
763
|
+
{ type: TaskResourceService },
|
|
764
|
+
{ type: LoggerService },
|
|
765
|
+
{ type: SnackBarService },
|
|
766
|
+
{ type: TranslateService },
|
|
767
|
+
{ type: EventService },
|
|
768
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
769
|
+
];
|
|
770
|
+
|
|
771
|
+
class MultichoiceFieldComponent extends AbstractMultichoiceFieldComponent {
|
|
772
|
+
constructor(informAboutInvalidData) {
|
|
773
|
+
super(informAboutInvalidData);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
MultichoiceFieldComponent.ctorParameters = () => [
|
|
777
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
778
|
+
];
|
|
779
|
+
MultichoiceFieldComponent.decorators = [
|
|
780
|
+
{ type: Component, args: [{
|
|
781
|
+
selector: 'nc-multichoice-field',
|
|
782
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"multiFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #multiFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div *ngIf=\"dataField.component !== undefined\" [ngSwitch]=\"dataField.component.name\">\n <nc-multichoice-list-field *ngSwitchCase=\"'list'\"\n [showLargeLayout]=\"showLargeLayout\"\n [multichoiceField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-multichoice-list-field>\n <nc-multichoice-select-field *ngSwitchDefault\n [showLargeLayout]=\"showLargeLayout\"\n [multichoiceField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-multichoice-select-field>\n </div>\n\n <!-- @deprecated in 4.3.0-->\n <div *ngIf=\"dataField.component === undefined\" [ngSwitch]=\"dataField.view\">\n <nc-multichoice-list-field *ngSwitchCase=\"'list'\"\n [showLargeLayout]=\"showLargeLayout\"\n [multichoiceField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-multichoice-list-field>\n <nc-multichoice-select-field *ngSwitchDefault\n [showLargeLayout]=\"showLargeLayout\"\n [multichoiceField]=\"dataField\"\n [formControlRef]=\"formControl\">\n </nc-multichoice-select-field>\n </div>\n</ng-template>\n",
|
|
783
|
+
styles: [""]
|
|
784
|
+
},] }
|
|
785
|
+
];
|
|
786
|
+
MultichoiceFieldComponent.ctorParameters = () => [
|
|
787
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
788
|
+
];
|
|
789
|
+
|
|
790
|
+
class MultichoiceSelectFieldComponent extends AbstractMultichoiceSelectFieldComponent {
|
|
791
|
+
}
|
|
792
|
+
MultichoiceSelectFieldComponent.decorators = [
|
|
793
|
+
{ type: Component, args: [{
|
|
794
|
+
selector: 'nc-multichoice-select-field',
|
|
795
|
+
template: "<mat-form-field [appearance]=\"multichoiceField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{multichoiceField.title}}</mat-label>\n <mat-select [placeholder]=\"multichoiceField.placeholder\"\n [formControl]=\"formControlRef\"\n [required]=\"multichoiceField.behavior.required\"\n multiple>\n <mat-option *ngFor=\"let option of multichoiceField.choices\" [value]=\"option.key\">\n {{option.value}}\n </mat-option>\n </mat-select>\n <mat-hint>{{multichoiceField.description}}</mat-hint>\n <mat-error *ngIf=\"multichoiceField.isInvalid(formControlRef)\">{{'dataField.validations.required' | translate}}</mat-error>\n</mat-form-field>\n",
|
|
796
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
797
|
+
},] }
|
|
798
|
+
];
|
|
799
|
+
|
|
800
|
+
class MultichoiceListFieldComponent extends AbstractMultichoiceListFieldComponent {
|
|
801
|
+
constructor() {
|
|
802
|
+
super();
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
MultichoiceListFieldComponent.decorators = [
|
|
806
|
+
{ type: Component, args: [{
|
|
807
|
+
selector: 'nc-multichoice-list-field',
|
|
808
|
+
template: "<mat-selection-list color=\"primary\"\n [formControl]=\"formControlRef\"\n [required]=\"multichoiceField.behavior.required\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{multichoiceField.title}}\n <nc-required-label *ngIf=\"multichoiceField.behavior.required\" [isIn]=\"true\"></nc-required-label>\n <br></mat-label>\n <mat-list-option *ngFor=\"let option of multichoiceField.choices\" [value]=\"option.key\">\n {{option.value}}\n </mat-list-option>\n <mat-error *ngIf=\"multichoiceField.isInvalid(formControlRef)\">{{'dataField.validations.required' | translate}}</mat-error>\n</mat-selection-list>\n",
|
|
809
|
+
styles: [""]
|
|
810
|
+
},] }
|
|
811
|
+
];
|
|
812
|
+
MultichoiceListFieldComponent.ctorParameters = () => [];
|
|
813
|
+
|
|
814
|
+
class NumberFieldComponent extends AbstractNumberFieldComponent {
|
|
815
|
+
constructor(translate, informAboutInvalidData) {
|
|
816
|
+
super(translate, informAboutInvalidData);
|
|
817
|
+
}
|
|
818
|
+
resolveComponent() {
|
|
819
|
+
if (this.dataField.component !== undefined) {
|
|
820
|
+
return this.dataField.component.name;
|
|
821
|
+
}
|
|
822
|
+
else {
|
|
823
|
+
return 'default';
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
NumberFieldComponent.ctorParameters = () => [
|
|
828
|
+
{ type: TranslateService },
|
|
829
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
830
|
+
];
|
|
831
|
+
NumberFieldComponent.decorators = [
|
|
832
|
+
{ type: Component, args: [{
|
|
833
|
+
selector: 'nc-number-field',
|
|
834
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"dataFieldTemplate\"\n [offset]=\"taskOffset\">\n\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div [ngSwitch]=\"resolveComponent()\">\n <nc-number-currency-field *ngSwitchCase=\"'currency'\"\n [numberField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout] = showLargeLayout>\n </nc-number-currency-field>\n <nc-number-default-field *ngSwitchDefault\n [numberField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout] = showLargeLayout>\n </nc-number-default-field>\n </div>\n\n</ng-template>\n",
|
|
835
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
836
|
+
},] }
|
|
837
|
+
];
|
|
838
|
+
NumberFieldComponent.ctorParameters = () => [
|
|
839
|
+
{ type: TranslateService },
|
|
840
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
841
|
+
];
|
|
842
|
+
|
|
843
|
+
class TextFieldComponent extends AbstractTextFieldComponent {
|
|
844
|
+
constructor(informAboutInvalidData) {
|
|
845
|
+
super(informAboutInvalidData);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
TextFieldComponent.ctorParameters = () => [
|
|
849
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
850
|
+
];
|
|
851
|
+
TextFieldComponent.decorators = [
|
|
852
|
+
{ type: Component, args: [{
|
|
853
|
+
selector: 'nc-text-field',
|
|
854
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"textFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #textFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div *ngIf=\"dataField.component !== undefined\" [ngSwitch]=\"dataField.component.name\">\n <nc-password-text-field *ngSwitchCase=\"'password'\" [passwordTextField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-password-text-field>\n <nc-textarea-field *ngSwitchCase=\"'textarea'\" [textAreaField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-textarea-field>\n <nc-rich-textarea-field *ngSwitchCase=\"'richtextarea'\" [textAreaField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-rich-textarea-field>\n <nc-html-textarea-field *ngSwitchCase=\"'htmltextarea'\" [textAreaField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-html-textarea-field>\n <nc-simple-text-field *ngSwitchDefault [textField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-simple-text-field>\n </div>\n\n <!-- @deprecated in 4.3.0-->\n <div *ngIf=\"dataField.component == undefined\" [ngSwitch]=\"dataField.view\">\n <nc-textarea-field *ngSwitchCase=\"'textarea'\" [textAreaField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-textarea-field>\n <nc-rich-textarea-field *ngSwitchCase=\"'richtextarea'\" [textAreaField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-rich-textarea-field>\n <nc-html-textarea-field *ngSwitchCase=\"'htmltextarea'\" [textAreaField]=\"dataField\"\n [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-html-textarea-field>\n <nc-simple-text-field *ngSwitchDefault [textField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-simple-text-field>\n </div>\n</ng-template>\n",
|
|
855
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
856
|
+
},] }
|
|
857
|
+
];
|
|
858
|
+
TextFieldComponent.ctorParameters = () => [
|
|
859
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
860
|
+
];
|
|
861
|
+
|
|
862
|
+
class TextareaFieldComponent extends AbstractTextareaFieldComponent {
|
|
863
|
+
constructor(_translate, _ngZone) {
|
|
864
|
+
super(_translate, _ngZone);
|
|
865
|
+
this._translate = _translate;
|
|
866
|
+
this._ngZone = _ngZone;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
TextareaFieldComponent.ctorParameters = () => [
|
|
870
|
+
{ type: TranslateService },
|
|
871
|
+
{ type: NgZone }
|
|
872
|
+
];
|
|
873
|
+
TextareaFieldComponent.decorators = [
|
|
874
|
+
{ type: Component, args: [{
|
|
875
|
+
selector: 'nc-textarea-field',
|
|
876
|
+
template: "<mat-form-field [appearance]=\"textAreaField.materialAppearance\"\n floatLabel=\"always\"\n class=\"full-width\"\n color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{textAreaField.title}}</mat-label>\n <textarea matInput\n #textArea\n [placeholder]=\"textAreaField.placeholder\"\n [required]=\"textAreaField.behavior.required\"\n [formControl]=\"formControlRef\"\n [ngStyle]=\"{'min-height': getHeight()+'px', 'height': getHeight()+'px'}\"\n #dynamicTextArea=\"cdkTextareaAutosize\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"></textarea>\n <mat-hint>{{textAreaField.description}}</mat-hint>\n <mat-error *ngIf=\"textAreaField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n\n\n",
|
|
877
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
878
|
+
},] }
|
|
879
|
+
];
|
|
880
|
+
TextareaFieldComponent.ctorParameters = () => [
|
|
881
|
+
{ type: TranslateService },
|
|
882
|
+
{ type: NgZone }
|
|
883
|
+
];
|
|
884
|
+
|
|
885
|
+
class RichTextareaFieldComponent extends AbstractRichTextareaFieldComponent {
|
|
886
|
+
constructor(_translate) {
|
|
887
|
+
super(_translate);
|
|
888
|
+
this._translate = _translate;
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
RichTextareaFieldComponent.ctorParameters = () => [
|
|
892
|
+
{ type: TranslateService }
|
|
893
|
+
];
|
|
894
|
+
RichTextareaFieldComponent.decorators = [
|
|
895
|
+
{ type: Component, args: [{
|
|
896
|
+
selector: 'nc-rich-textarea-field',
|
|
897
|
+
template: "<div class=\"height-100\">\n <td-text-editor *ngIf=\"!formControlRef.disabled\" [(ngModel)]=\"textAreaField.value\"\n [options]=\"options\"></td-text-editor>\n <mat-error *ngIf=\"textAreaField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n\n <input type=\"hidden\" [formControl]=\"formControlRef\">\n\n <div class=\"border\" *ngIf=\"formControlRef.disabled\">\n <td-markdown>{{textAreaField.value}}</td-markdown>\n </div>\n</div>\n",
|
|
898
|
+
styles: [".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]
|
|
899
|
+
},] }
|
|
900
|
+
];
|
|
901
|
+
RichTextareaFieldComponent.ctorParameters = () => [
|
|
902
|
+
{ type: TranslateService }
|
|
903
|
+
];
|
|
904
|
+
|
|
905
|
+
class SimpleTextFieldComponent extends AbstractSimpleTextFieldComponent {
|
|
906
|
+
constructor(_translate) {
|
|
907
|
+
super(_translate);
|
|
908
|
+
this._translate = _translate;
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
SimpleTextFieldComponent.ctorParameters = () => [
|
|
912
|
+
{ type: TranslateService }
|
|
913
|
+
];
|
|
914
|
+
SimpleTextFieldComponent.decorators = [
|
|
915
|
+
{ type: Component, args: [{
|
|
916
|
+
selector: 'nc-simple-text-field',
|
|
917
|
+
template: "<mat-form-field [appearance]=\"textField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{textField.title}}</mat-label>\n <input matInput\n [placeholder]=\"textField.placeholder\"\n [required]=\"textField.behavior.required\"\n [formControl]=\"formControlRef\">\n <mat-hint>{{textField.description}}</mat-hint>\n <mat-error *ngIf=\"textField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n",
|
|
918
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
919
|
+
},] }
|
|
920
|
+
];
|
|
921
|
+
SimpleTextFieldComponent.ctorParameters = () => [
|
|
922
|
+
{ type: TranslateService }
|
|
923
|
+
];
|
|
924
|
+
|
|
925
|
+
/**
|
|
926
|
+
* Is the main - parent component of the entire user assignment in the side menu.
|
|
927
|
+
*
|
|
928
|
+
* Holds logic link of the [UserAssignListComponent]{@link UserAssignListComponent}
|
|
929
|
+
* along with searching, selecting, and then assigning to the user field.
|
|
930
|
+
*/
|
|
931
|
+
class UserAssignComponent extends AbstractUserAssignComponent {
|
|
932
|
+
constructor(_sideMenuControl) {
|
|
933
|
+
super(_sideMenuControl);
|
|
934
|
+
this._sideMenuControl = _sideMenuControl;
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
UserAssignComponent.ctorParameters = () => [
|
|
938
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
|
|
939
|
+
];
|
|
940
|
+
UserAssignComponent.decorators = [
|
|
941
|
+
{ type: Component, args: [{
|
|
942
|
+
selector: 'nc-user-assign',
|
|
943
|
+
template: "<div class=\"full-width full-height\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <mat-toolbar color=\"primary\">{{ 'side-menu.user.assign' | translate | uppercase }}</mat-toolbar>\n <div class=\"user-assign-container side-menu-root\" fxLayout=\"column\" fxFlex>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon fxFlex class=\"search-icon\">search</mat-icon>\n <mat-form-field fxFlex=\"100\" class=\"user-assign-search\" color=\"primary\">\n <input matInput placeholder=\"{{ 'side-menu.user.choose' | translate }}\"\n [formControl]=\"searchUserControl\">\n <button mat-button *ngIf=\"searchUserControl.value\" matSuffix mat-icon-button\n (click)=\"searchUserControl.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <nc-user-assign-list fxFlex\n [searchUserControl]=\"searchUserControl\"\n [roles]=\"roles\"\n [negativeRoles]=\"negativeRoles\"\n [initiallySelectedUser]=\"initiallySelectedUser\"\n (userSelected)=\"userWasSelected($event)\">\n </nc-user-assign-list>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-button color=\"primary\"\n (click)=\"assign()\">{{ 'tasks.view.assign' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n",
|
|
944
|
+
providers: [UserListService],
|
|
945
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-assign-container{padding:16px;position:relative}.user-assign-search{width:100%}.search-icon{margin-right:10px}"]
|
|
946
|
+
},] }
|
|
947
|
+
];
|
|
948
|
+
UserAssignComponent.ctorParameters = () => [
|
|
949
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
|
|
950
|
+
];
|
|
951
|
+
|
|
952
|
+
class UserFieldComponent extends AbstractUserFieldComponent {
|
|
953
|
+
constructor(sideMenuService, snackbar, translate, informAboutInvalidData) {
|
|
954
|
+
super(sideMenuService, snackbar, translate, informAboutInvalidData);
|
|
955
|
+
}
|
|
956
|
+
selectUser() {
|
|
957
|
+
this.selectAbstractUser(UserAssignComponent);
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
UserFieldComponent.ctorParameters = () => [
|
|
961
|
+
{ type: SideMenuService },
|
|
962
|
+
{ type: SnackBarService },
|
|
963
|
+
{ type: TranslateService },
|
|
964
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
965
|
+
];
|
|
966
|
+
UserFieldComponent.decorators = [
|
|
967
|
+
{ type: Component, args: [{
|
|
968
|
+
selector: 'nc-user-field',
|
|
969
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"dataFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n\n <div>\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n <br>\n </mat-label>\n <button mat-stroked-button\n *ngIf=\"dataField.value !== undefined\"\n [disabled]=\"formControl.disabled\"\n color=\"primary\"\n (click)=\"selectUser()\">\n <mat-icon>how_to_reg</mat-icon>\n {{dataField.value.fullName}}\n </button>\n <button mat-stroked-button\n *ngIf=\"dataField.value === undefined\"\n [disabled]=\"formControl.disabled\"\n color=\"primary\"\n (click)=\"selectUser()\">\n <mat-icon>person_add</mat-icon>\n Select user\n </button>\n <mat-error *ngIf=\"dataField.isInvalid(formControl)\">{{'dataField.validations.required' | translate}}</mat-error>\n </div>\n\n</ng-template>\n",
|
|
970
|
+
styles: [""]
|
|
971
|
+
},] }
|
|
972
|
+
];
|
|
973
|
+
UserFieldComponent.ctorParameters = () => [
|
|
974
|
+
{ type: SideMenuService },
|
|
975
|
+
{ type: SnackBarService },
|
|
976
|
+
{ type: TranslateService },
|
|
977
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
978
|
+
];
|
|
979
|
+
|
|
980
|
+
class RequiredLabelComponent {
|
|
981
|
+
constructor() {
|
|
982
|
+
this.isIn = false;
|
|
983
|
+
}
|
|
984
|
+
ngOnInit() {
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
RequiredLabelComponent.decorators = [
|
|
988
|
+
{ type: Component, args: [{
|
|
989
|
+
selector: 'nc-required-label',
|
|
990
|
+
template: "<span class=\"required-label-color\" [ngClass]=\"{ 'disabled-opacity-45': !isIn }\"> * </span>\n",
|
|
991
|
+
styles: [".required-label-color{color:red}.disabled-opacity-45{opacity:.45}"]
|
|
992
|
+
},] }
|
|
993
|
+
];
|
|
994
|
+
RequiredLabelComponent.ctorParameters = () => [];
|
|
995
|
+
RequiredLabelComponent.propDecorators = {
|
|
996
|
+
isIn: [{ type: Input }]
|
|
997
|
+
};
|
|
998
|
+
|
|
999
|
+
class HtmlTextareaFieldComponent extends AbstractHtmlTextareaFieldComponent {
|
|
1000
|
+
constructor(_translate, _sanitizer) {
|
|
1001
|
+
super(_translate, _sanitizer);
|
|
1002
|
+
this._translate = _translate;
|
|
1003
|
+
this._sanitizer = _sanitizer;
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
HtmlTextareaFieldComponent.ctorParameters = () => [
|
|
1007
|
+
{ type: TranslateService },
|
|
1008
|
+
{ type: DomSanitizer }
|
|
1009
|
+
];
|
|
1010
|
+
HtmlTextareaFieldComponent.decorators = [
|
|
1011
|
+
{ type: Component, args: [{
|
|
1012
|
+
selector: 'nc-html-textarea-field',
|
|
1013
|
+
template: "<div class=\"height-100\" #quillContainer>\n <quill-editor theme=\"snow\" *ngIf=\"!formControlRef.disabled\" [(ngModel)]=\"textAreaField.value\"\n [modules]=\"quillModules\" [bounds]=\"quillContainer\"></quill-editor>\n <mat-error *ngIf=\"textAreaField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n <input type=\"hidden\" [formControl]=\"formControlRef\">\n <div *ngIf=\"formControlRef.disabled\" class=\"border ql-snow\">\n <div class=\"ql-editor\" [innerHTML]=\"disabledDisplay\"></div>\n </div>\n</div>\n",
|
|
1014
|
+
styles: [".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]
|
|
1015
|
+
},] }
|
|
1016
|
+
];
|
|
1017
|
+
HtmlTextareaFieldComponent.ctorParameters = () => [
|
|
1018
|
+
{ type: TranslateService },
|
|
1019
|
+
{ type: DomSanitizer }
|
|
1020
|
+
];
|
|
1021
|
+
|
|
1022
|
+
class NumberCurrencyFieldComponent extends AbstractCurrencyNumberFieldComponent {
|
|
1023
|
+
constructor(currencyPipe, translate) {
|
|
1024
|
+
super(currencyPipe, translate);
|
|
1025
|
+
}
|
|
1026
|
+
ngOnInit() {
|
|
1027
|
+
super.ngOnInit();
|
|
1028
|
+
}
|
|
1029
|
+
onFocusOut(event) {
|
|
1030
|
+
this.transformToText(event);
|
|
1031
|
+
}
|
|
1032
|
+
onFocusIn() {
|
|
1033
|
+
this.transformToNumber();
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
NumberCurrencyFieldComponent.ctorParameters = () => [
|
|
1037
|
+
{ type: CurrencyPipe },
|
|
1038
|
+
{ type: TranslateService }
|
|
1039
|
+
];
|
|
1040
|
+
NumberCurrencyFieldComponent.decorators = [
|
|
1041
|
+
{ type: Component, args: [{
|
|
1042
|
+
selector: 'nc-number-currency-field',
|
|
1043
|
+
template: "<mat-form-field [appearance]=\"numberField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{numberField.title}}</mat-label>\n <input matInput\n [type]=\"fieldType\"\n [value]=\"transformedValue\"\n [formControl]=\"formControlRef\"\n [placeholder]=\"numberField.placeholder\"\n [required]=\"numberField.behavior.required\"\n (focusout)=\"onFocusOut($event)\"\n (focusin)=\"onFocusIn()\">\n <mat-hint>{{numberField.description}}</mat-hint>\n <mat-error *ngIf=\"numberField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n<mat-label class=\"currency-label\" *ngIf=\"fieldType == 'number'\">{{getCurrencySymbol()}}</mat-label>\n",
|
|
1044
|
+
styles: [".full-width{margin:0 auto;width:90%}.currency-label{margin-left:5px}"]
|
|
1045
|
+
},] }
|
|
1046
|
+
];
|
|
1047
|
+
NumberCurrencyFieldComponent.ctorParameters = () => [
|
|
1048
|
+
{ type: CurrencyPipe },
|
|
1049
|
+
{ type: TranslateService }
|
|
1050
|
+
];
|
|
1051
|
+
|
|
1052
|
+
class NumberDefaultFieldComponent extends AbstractDefaultNumberFieldComponent {
|
|
1053
|
+
constructor(translate) {
|
|
1054
|
+
super(translate);
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
NumberDefaultFieldComponent.ctorParameters = () => [
|
|
1058
|
+
{ type: TranslateService }
|
|
1059
|
+
];
|
|
1060
|
+
NumberDefaultFieldComponent.decorators = [
|
|
1061
|
+
{ type: Component, args: [{
|
|
1062
|
+
selector: 'nc-number-default-field',
|
|
1063
|
+
template: "<mat-form-field [appearance]=\"numberField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{numberField.title}}</mat-label>\n <input matInput\n type=\"number\"\n [formControl]=\"formControlRef\"\n [placeholder]=\"numberField.placeholder\"\n [required]=\"numberField.behavior.required\">\n <mat-hint>{{numberField.description}}</mat-hint>\n <mat-error *ngIf=\"numberField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n",
|
|
1064
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
1065
|
+
},] }
|
|
1066
|
+
];
|
|
1067
|
+
NumberDefaultFieldComponent.ctorParameters = () => [
|
|
1068
|
+
{ type: TranslateService }
|
|
1069
|
+
];
|
|
1070
|
+
|
|
1071
|
+
class PasswordTextFieldComponent extends AbstractPasswordTextFieldComponent {
|
|
1072
|
+
constructor(_translate) {
|
|
1073
|
+
super(_translate);
|
|
1074
|
+
this._translate = _translate;
|
|
1075
|
+
this.hide = true;
|
|
1076
|
+
}
|
|
1077
|
+
ngOnInit() {
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
PasswordTextFieldComponent.ctorParameters = () => [
|
|
1081
|
+
{ type: TranslateService }
|
|
1082
|
+
];
|
|
1083
|
+
PasswordTextFieldComponent.decorators = [
|
|
1084
|
+
{ type: Component, args: [{
|
|
1085
|
+
selector: 'nc-password-text-field',
|
|
1086
|
+
template: "<mat-form-field [appearance]=\"passwordTextField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{passwordTextField.title}}</mat-label>\n <input matInput\n [placeholder]=\"passwordTextField.placeholder\"\n [required]=\"passwordTextField.behavior.required\"\n [formControl]=\"formControlRef\"\n [type]=\"hide ? 'password' : 'text'\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hide = !hide\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hide\">\n <mat-icon\n [color]=\"hide ? undefined : 'accent'\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-hint>{{passwordTextField.description}}</mat-hint>\n <mat-error *ngIf=\"passwordTextField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n",
|
|
1087
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
1088
|
+
},] }
|
|
1089
|
+
];
|
|
1090
|
+
PasswordTextFieldComponent.ctorParameters = () => [
|
|
1091
|
+
{ type: TranslateService }
|
|
1092
|
+
];
|
|
1093
|
+
|
|
1094
|
+
class EnumerationStepperFieldComponent extends AbstractEnumerationStepperFieldComponent {
|
|
1095
|
+
constructor(ref) {
|
|
1096
|
+
super(ref);
|
|
1097
|
+
this.ref = ref;
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
EnumerationStepperFieldComponent.ctorParameters = () => [
|
|
1101
|
+
{ type: ElementRef }
|
|
1102
|
+
];
|
|
1103
|
+
EnumerationStepperFieldComponent.decorators = [
|
|
1104
|
+
{ type: Component, args: [{
|
|
1105
|
+
selector: 'nc-enumeration-stepper-field',
|
|
1106
|
+
template: "<mat-label class=\"stepper-label\" *ngIf=\"!showLargeLayout.value\" matTooltipClass=\"stepper-tooltip-text\" [matTooltip]=\"enumerationField.description\" matTooltipPosition=\"right\">\n {{enumerationField.title}}\n <nc-required-label *ngIf=\"enumerationField.behavior.required\" [isIn]=\"!enumerationField.disabled\" ></nc-required-label>\n</mat-label>\n\n<div class=\"horizontal-stepper\" fxLayout=\"row\" *ngIf=\"!arrowStepper\">\n <div class=\"horizontal-step\">\n <ng-template ngFor let-option [ngForOf]=\"enumerationField.choices\" let-i=\"index\">\n <div class=\"horizontal-step-header\" #oneStep>\n <div class=\"horizontal-state\" [ngClass]=\"{'horizontal-state-primary': canShowDoneIcon(i), 'horizontal-state-secondary': !canShowDoneIcon(i)}\">\n <mat-icon *ngIf=\"canShowDoneIcon(i + 1)\">done</mat-icon>\n </div>\n <div class=\"horizontal-state-label\">{{option.value}}</div>\n </div>\n <div class=\"horizontal-line\" fxFlex *ngIf=\"i < enumerationField.choices.length - 1\"></div>\n </ng-template>\n </div>\n</div>\n\n<div *ngIf=\"arrowStepper\" class=\"stepper-min-height\" fxLayoutAlign=\"stretch center\" fxLayout=\"row\">\n <ng-template ngFor let-option [ngForOf]=\"enumerationField.choices\" let-i=\"index\">\n <span class=\"stepper-arrow-text\" [ngClass]=\"{'stepper-arrow-selected': isSelected(option.key), 'stepper-disabled': enumerationField.disabled}\"\n (click)=\"setStepperValue(option.key)\" fxFlex fxLayoutAlign=\"center center\">{{option.value}}</span>\n <span fxFlex *ngIf=\"i < enumerationField.choices.length - 1\" fxLayoutAlign=\"center center\">\n <mat-icon>arrow_forward_ios</mat-icon>\n </span>\n </ng-template>\n</div>\n",
|
|
1107
|
+
styles: [".horizontal-stepper{display:flex}.horizontal-step-header{box-sizing:border-box;flex-direction:column;height:auto;padding:24px;overflow:hidden;outline:0;position:relative;-webkit-tap-highlight-color:transparent;display:flex;align-items:center}.horizontal-step-header:not(:first-child)::before{left:0}.horizontal-step-header:not(:last-child)::after{right:0}.horizontal-step-header:not(:first-child)::before,.horizontal-step-header:not(:last-child)::after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);top:36px}.horizontal-state{color:#fff;border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.horizontal-state-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;min-width:36px;vertical-align:middle;padding:16px 0 0;text-align:center;width:100%;word-wrap:break-word}.horizontal-line{position:relative;top:36px;border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:12px}.horizontal-step{flex:auto;display:flex}.stepper-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.stepper-tooltip-text{color:#fff;padding:10px 15px}.stepper-min-height{border-radius:10px;min-height:70px;background-color:#f9f9f9}.stepper-arrow-text{font-weight:500;font-size:16px;letter-spacing:-.2;line-height:24px;color:#333;cursor:pointer}.stepper-disabled{cursor:unset!important}"]
|
|
1108
|
+
},] }
|
|
1109
|
+
];
|
|
1110
|
+
EnumerationStepperFieldComponent.ctorParameters = () => [
|
|
1111
|
+
{ type: ElementRef }
|
|
1112
|
+
];
|
|
1113
|
+
|
|
1114
|
+
class EnumerationIconFieldComponent extends AbstractEnumerationIconFieldComponent {
|
|
1115
|
+
constructor() {
|
|
1116
|
+
super();
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
EnumerationIconFieldComponent.decorators = [
|
|
1120
|
+
{ type: Component, args: [{
|
|
1121
|
+
selector: 'nc-enumeration-icon-field',
|
|
1122
|
+
template: "<div>\n <div *ngFor=\"let option of enumerationField.choices; let i = index\">\n <div class=\"enum-icon-item enum-icon-item-row\" (click)=\"setEnumValue(option.key)\" [ngClass]=\"{'enum-icon-item-active': isSelected(option.key)}\">\n <mat-icon *ngIf=\"resolveIconType(option.key) === 'material'\">{{resolveIconValue(option.key)}}</mat-icon>\n <mat-icon *ngIf=\"resolveIconType(option.key) === 'svg'\" [svgIcon]=\"resolveIconValue(option.key)\"></mat-icon>\n <span fxFlex class=\"enum-icon-text\">{{option.value}}</span>\n <mat-icon *ngIf=\"resolveArrow(option.key)\">arrow_forward</mat-icon>\n </div>\n <mat-divider class=\"enum-icon-divider\" *ngIf=\"i !== enumerationField.choices.length - 1 && resolveDivider(option.key)\"></mat-divider>\n </div>\n</div>\n\n",
|
|
1123
|
+
styles: [".enum-icon-item{font-size:18px;font-family:Asap,sans-serif;font-weight:500;line-height:24px;letter-spacing:-.2px;text-align:left;color:#333;text-decoration:none;padding:25px 0}.enum-icon-item-row:hover{cursor:pointer}.enum-icon-item-row:focus,.enum-icon-item:focus{outline:0}.enum-icon-divider{position:relative!important}.enum-icon-text{padding:0 16px}"]
|
|
1124
|
+
},] }
|
|
1125
|
+
];
|
|
1126
|
+
EnumerationIconFieldComponent.ctorParameters = () => [];
|
|
1127
|
+
|
|
1128
|
+
class EnumerationAutocompleteDynamicFieldComponent extends AbstractEnumerationAutocompleteDynamicFieldComponent {
|
|
1129
|
+
constructor(_translate) {
|
|
1130
|
+
super(_translate);
|
|
1131
|
+
this._translate = _translate;
|
|
1132
|
+
}
|
|
1133
|
+
}
|
|
1134
|
+
EnumerationAutocompleteDynamicFieldComponent.ctorParameters = () => [
|
|
1135
|
+
{ type: TranslateService }
|
|
1136
|
+
];
|
|
1137
|
+
EnumerationAutocompleteDynamicFieldComponent.decorators = [
|
|
1138
|
+
{ type: Component, args: [{
|
|
1139
|
+
selector: 'nc-enumeration-autocomplete-dynamic-field',
|
|
1140
|
+
template: "<mat-form-field [appearance]=\"enumerationField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{enumerationField.title}}</mat-label>\n <input type=\"text\"\n aria-label=\"Autocomplete\"\n matInput\n #input\n [placeholder]=\"enumerationField.placeholder\"\n [formControl]=\"formControlRef\"\n [matAutocomplete]=\"auto\"\n (keyup)=\"change()\">\n <mat-spinner *ngIf=\"enumerationField.loading\" matSuffix diameter=\"30\"></mat-spinner>\n <mat-autocomplete [displayWith]=\"renderSelection\" autoActiveFirstOption #auto=\"matAutocomplete\">\n\n <mat-option disabled *ngIf=\"(filteredOptions | async)?.length === 0 && !enumerationField.loading && enumerationField.value && enumerationField.value.length > 0\" fxLayoutAlign=\"center center\">\n {{ 'dataField.dynamicEnum.noData' | translate }}\n </mat-option>\n\n <ng-container *ngIf=\"!enumerationField.loading\">\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.key\" (click)=\"change()\">\n {{option.value}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf=\"enumerationField.isInvalid(formControlRef)\">{{buildErrorMessage()}}</mat-error>\n</mat-form-field>\n\n",
|
|
1141
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
1142
|
+
},] }
|
|
1143
|
+
];
|
|
1144
|
+
EnumerationAutocompleteDynamicFieldComponent.ctorParameters = () => [
|
|
1145
|
+
{ type: TranslateService }
|
|
1146
|
+
];
|
|
1147
|
+
|
|
1148
|
+
function filterFieldBaseFilterFactory(filterField) {
|
|
1149
|
+
return {
|
|
1150
|
+
filter: SimpleFilter.empty(filterField.filterMetadata.filterType)
|
|
1151
|
+
};
|
|
1152
|
+
}
|
|
1153
|
+
function filterFieldAllowedNetsFactory(factory, filterField) {
|
|
1154
|
+
return factory.createFromArray(filterField.allowedNets);
|
|
1155
|
+
}
|
|
1156
|
+
function filterFieldCategoriesFactory(factory, filterField) {
|
|
1157
|
+
const result = filterField.filterMetadata.searchCategories.map(c => factory.toClass(c));
|
|
1158
|
+
return result;
|
|
1159
|
+
}
|
|
1160
|
+
class FilterFieldContentComponent extends AbstractFilterFieldContentComponent {
|
|
1161
|
+
constructor(filterField, fieldSearchService) {
|
|
1162
|
+
super(filterField, fieldSearchService);
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
FilterFieldContentComponent.ctorParameters = () => [
|
|
1166
|
+
{ type: FilterField, decorators: [{ type: Inject, args: [NAE_FILTER_FIELD,] }] },
|
|
1167
|
+
{ type: SearchService }
|
|
1168
|
+
];
|
|
1169
|
+
FilterFieldContentComponent.decorators = [
|
|
1170
|
+
{ type: Component, args: [{
|
|
1171
|
+
selector: 'nc-filter-field-content',
|
|
1172
|
+
template: "<nc-advanced-search *ngIf=\"filterLoaded\" [editable]=\"editable\"></nc-advanced-search>\n",
|
|
1173
|
+
providers: [
|
|
1174
|
+
{ provide: NAE_BASE_FILTER, useFactory: filterFieldBaseFilterFactory, deps: [NAE_FILTER_FIELD] },
|
|
1175
|
+
{ provide: AllowedNetsService, useFactory: filterFieldAllowedNetsFactory, deps: [AllowedNetsServiceFactory, NAE_FILTER_FIELD] },
|
|
1176
|
+
CategoryFactory,
|
|
1177
|
+
{ provide: NAE_SEARCH_CATEGORIES, useFactory: filterFieldCategoriesFactory, deps: [CategoryResolverService, NAE_FILTER_FIELD] },
|
|
1178
|
+
SearchService
|
|
1179
|
+
],
|
|
1180
|
+
styles: [""]
|
|
1181
|
+
},] }
|
|
1182
|
+
];
|
|
1183
|
+
FilterFieldContentComponent.ctorParameters = () => [
|
|
1184
|
+
{ type: FilterField, decorators: [{ type: Inject, args: [NAE_FILTER_FIELD,] }] },
|
|
1185
|
+
{ type: SearchService }
|
|
1186
|
+
];
|
|
1187
|
+
|
|
1188
|
+
class FilterFieldComponent extends AbstractFilterFieldComponent {
|
|
1189
|
+
constructor(parentInjector, informAboutInvalidData) {
|
|
1190
|
+
super(parentInjector, informAboutInvalidData);
|
|
1191
|
+
}
|
|
1192
|
+
getFilterContentComponent() {
|
|
1193
|
+
return FilterFieldContentComponent;
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
FilterFieldComponent.ctorParameters = () => [
|
|
1197
|
+
{ type: Injector },
|
|
1198
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
1199
|
+
];
|
|
1200
|
+
FilterFieldComponent.decorators = [
|
|
1201
|
+
{ type: Component, args: [{
|
|
1202
|
+
selector: 'nc-filter-field',
|
|
1203
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"filterFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #filterFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <!-- TODO: title based on large layout -->\n <ng-template [ngIf]=\"initialized\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </ng-template>\n <!-- TODO: description? -->\n</ng-template>\n",
|
|
1204
|
+
styles: [""]
|
|
1205
|
+
},] }
|
|
1206
|
+
];
|
|
1207
|
+
FilterFieldComponent.ctorParameters = () => [
|
|
1208
|
+
{ type: Injector },
|
|
1209
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
1210
|
+
];
|
|
1211
|
+
|
|
1212
|
+
class SearchClauseComponent extends AbstractSearchClauseComponent {
|
|
1213
|
+
constructor() {
|
|
1214
|
+
super();
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
SearchClauseComponent.decorators = [
|
|
1218
|
+
{ type: Component, args: [{
|
|
1219
|
+
selector: 'nc-search-clause',
|
|
1220
|
+
template: "<div class=\"clause-body clause-body-color\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <div *ngFor=\"let item of getPredicateMap() | keyvalue; trackBy: trackByPredicates; first as first\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div *ngIf=\"!first\" class=\"bool-operator-margin\">{{'search.or' | translate | uppercase}}</div>\n <nc-search-predicate [predicate]=\"item.value.wrappedPredicate\" [predicateId]=\"item.key\"\n [remove$]=\"removeChild$\" [generator]=\"item.value.generator\" [editable]=\"editable\"></nc-search-predicate>\n </div>\n <button *ngIf=\"editable\" mat-stroked-button (click)=\"addChildPredicate()\" class=\"bool-operator-button\">+ {{'search.or' | translate | uppercase}}</button>\n </div>\n</div>\n",
|
|
1221
|
+
styles: [".clause-body{border-radius:4px;padding:4px 6px}.bool-operator-margin{margin-left:8px;margin-right:8px}.bool-operator-button{margin-left:4px}"]
|
|
1222
|
+
},] }
|
|
1223
|
+
];
|
|
1224
|
+
SearchClauseComponent.ctorParameters = () => [];
|
|
1225
|
+
|
|
1226
|
+
class SearchPredicateComponent extends AbstractSearchPredicateComponent {
|
|
1227
|
+
constructor(searchCategories, logger, initializationService, categoryFactory) {
|
|
1228
|
+
super(searchCategories, logger, initializationService, categoryFactory);
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
SearchPredicateComponent.ctorParameters = () => [
|
|
1232
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
|
|
1233
|
+
{ type: LoggerService },
|
|
1234
|
+
{ type: AdvancedSearchComponentInitializationService },
|
|
1235
|
+
{ type: CategoryFactory }
|
|
1236
|
+
];
|
|
1237
|
+
SearchPredicateComponent.decorators = [
|
|
1238
|
+
{ type: Component, args: [{
|
|
1239
|
+
selector: 'nc-search-predicate',
|
|
1240
|
+
template: "<div class=\"predicate-body\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n [ngClass]=\"!!selectedCategory && selectedCategory.providesPredicate ? 'predicate-body-color' : 'white-background'\">\n <div *ngIf=\"editable\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button mat-icon-button color=\"warn\" (click)=\"remove()\" class=\"smaller-button\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n\n <div *ngIf=\"!selectedCategory; then categorySelection else categoryDisplay\"></div>\n <ng-template #categorySelection>\n <mat-form-field class=\"text-margin\" appearance=\"outline\">\n <mat-label>{{'search.category.select' | translate}}</mat-label>\n <mat-select (selectionChange)=\"categoryChanged($event.value)\" #categoryInput [disabled]=\"!editable\">\n <mat-option *ngFor=\"let category of searchCategories\"\n [value]=\"category\">{{category.translationPath | translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-template>\n <ng-template #categoryDisplay>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"text-margin\"\n [ngClass]=\"{'bold-text': selectedCategory.displayBold}\"\n (click)=\"clearCategorySelection()\">\n {{selectedCategory.translationPath | translate}}\n </div>\n </ng-template>\n\n <div *ngIf=\"selectedCategory\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <ng-template ngFor let-configurationInput [ngForOf]=\"selectedCategory.configurationInputs$ | async\">\n <nc-search-configuration-input [configuration]=\"configurationInput\" [selectedCategory]=\"selectedCategory\"\n [editable]=\"editable\"></nc-search-configuration-input>\n </ng-template>\n </div>\n</div>\n",
|
|
1241
|
+
styles: [".predicate-body{border-radius:4px;padding-right:4px;margin-top:2px;margin-bottom:2px;min-height:32px}.smaller-button{width:32px;height:32px;line-height:32px;margin-right:-4px}.bold-text{font-weight:700}.text-margin{margin-left:4px}.white-background{background:#fafafa}::ng-deep .mat-form-field-wrapper{margin:0;padding-bottom:0}"]
|
|
1242
|
+
},] }
|
|
1243
|
+
];
|
|
1244
|
+
SearchPredicateComponent.ctorParameters = () => [
|
|
1245
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
|
|
1246
|
+
{ type: LoggerService },
|
|
1247
|
+
{ type: AdvancedSearchComponentInitializationService },
|
|
1248
|
+
{ type: CategoryFactory }
|
|
1249
|
+
];
|
|
1250
|
+
|
|
1251
|
+
const ɵ0$2 = DATE_TIME_FORMAT;
|
|
1252
|
+
class SearchOperandInputComponent extends AbstractSearchOperandInputComponent {
|
|
1253
|
+
constructor() {
|
|
1254
|
+
super();
|
|
1255
|
+
// make enum accessible in HTMl
|
|
1256
|
+
this.searchInputType = SearchInputType;
|
|
1257
|
+
this.dateFormat = DATE_FORMAT_STRING;
|
|
1258
|
+
this.dateTimeFormat = DATE_TIME_FORMAT_STRING;
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
SearchOperandInputComponent.decorators = [
|
|
1262
|
+
{ type: Component, args: [{
|
|
1263
|
+
selector: 'nc-search-operand-input',
|
|
1264
|
+
template: "<div *ngIf=\"!isInputFilled; then operandSelection else operandDisplay\"></div>\n\n<ng-template #operandSelection>\n <div [ngSwitch]=\"inputType\">\n <ng-template [ngSwitchCase]=\"searchInputType.TEXT\">\n <mat-form-field appearance=\"outline\">\n <input type=\"text\" matInput autocomplete=\"off\"\n [formControl]=\"inputFormControl\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"$event.target.blur()\"\n (blur)=\"confirmInput()\"\n #operandInput>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"searchInputType.AUTOCOMPLETE\">\n <mat-form-field appearance=\"outline\">\n <input type=\"text\" matInput autocomplete=\"off\"\n #autocompleteInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"inputFormControl\"\n [matAutocomplete]=\"searchAutocomplete\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"$event.target.blur(); autocompleteTrigger.closePanel()\"\n (focus)=\"editInput()\"\n #operandInput>\n <mat-autocomplete #searchAutocomplete=\"matAutocomplete\"\n [displayWith]=\"renderSelection\"\n (optionSelected)=\"autocompleteInput.blur()\">\n <mat-option *ngFor=\"let option of filteredOptions$ | async\" [value]=\"option\">\n <mat-icon *ngIf=\"option.icon\">{{option.icon}}</mat-icon>\n <span>{{option.text | translate}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"searchInputType.DATE\">\n <mat-form-field appearance=\"outline\">\n <input matInput autocomplete=\"off\"\n [formControl]=\"inputFormControl\"\n [matDatepicker]=\"searchDatepicker\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"searchDatepicker.close()\"\n (focus)=\"editInput(); searchDatepicker.open()\"\n (blur)=\"confirmInput()\"\n #operandInput>\n <mat-datepicker-toggle matPrefix [for]=\"searchDatepicker\"></mat-datepicker-toggle>\n <mat-datepicker #searchDatepicker></mat-datepicker>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"searchInputType.DATE_TIME\">\n <mat-form-field appearance=\"outline\">\n <input matInput autocomplete=\"off\"\n [formControl]=\"inputFormControl\"\n [ngxMatDatetimePicker]=\"searchDateTimepicker\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"searchDateTimepicker.close()\"\n (focus)=\"editInput(); searchDateTimepicker.open()\"\n #operandInput>\n <mat-datepicker-toggle matPrefix [for]=\"searchDateTimepicker\">\n <mat-icon matDatepickerToggleIcon>schedule</mat-icon>\n </mat-datepicker-toggle>\n <ngx-mat-datetime-picker #searchDateTimepicker\n [showSpinners]=\"true\"\n [showSeconds]=\"false\"\n [stepHour]=\"1\"\n [stepMinute]=\"5\"\n [color]=\"'primary'\"\n [enableMeridian]=\"false\"\n (closed)=\"confirmInput()\"></ngx-mat-datetime-picker>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"searchInputType.NUMBER\">\n <mat-form-field appearance=\"outline\">\n <input type=\"number\" matInput autocomplete=\"off\"\n [formControl]=\"inputFormControl\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"$event.target.blur()\"\n (focus)=\"editInput()\"\n (blur)=\"confirmInput()\"\n #operandInput>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"searchInputType.BOOLEAN\">\n <div fxLayout=\"row\">\n <mat-slide-toggle [formControl]=\"inputFormControl\"\n [disabled]=\"!editable\"\n (focus)=\"editInput()\"\n (toggleChange)=\"confirmInput()\"></mat-slide-toggle>\n </div>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #operandDisplay>\n <div [ngSwitch]=\"inputType\" (click)=\"editInput()\" class=\"bold-text\">\n <div *ngSwitchCase=\"searchInputType.AUTOCOMPLETE\">\n {{inputFormControl.value.text | translate}}\n </div>\n <div *ngSwitchCase=\"searchInputType.DATE\">\n {{inputFormControl.value.format(dateFormat)}}\n </div>\n <div *ngSwitchCase=\"searchInputType.DATE_TIME\">\n {{inputFormControl.value.format(dateTimeFormat)}}\n </div>\n <div *ngSwitchDefault>\n {{inputFormControl.value}}\n </div>\n </div>\n</ng-template>\n",
|
|
1265
|
+
providers: [
|
|
1266
|
+
{ provide: NGX_MAT_DATE_FORMATS, useValue: ɵ0$2 }
|
|
1267
|
+
],
|
|
1268
|
+
styles: [".bold-text{font-weight:700}"]
|
|
1269
|
+
},] }
|
|
1270
|
+
];
|
|
1271
|
+
SearchOperandInputComponent.ctorParameters = () => [];
|
|
1272
|
+
|
|
1273
|
+
class SearchConfigurationInputComponent extends AbstractSearchConfigurationInputComponent {
|
|
1274
|
+
constructor() {
|
|
1275
|
+
super();
|
|
1276
|
+
// make the enum referencable in HTML
|
|
1277
|
+
this.searchInputType = SearchInputType;
|
|
1278
|
+
// make the enum referencable in HTML
|
|
1279
|
+
this.operatorTemplatePartType = OperatorTemplatePartType;
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
SearchConfigurationInputComponent.decorators = [
|
|
1283
|
+
{ type: Component, args: [{
|
|
1284
|
+
selector: 'nc-search-configuration-input',
|
|
1285
|
+
template: "<div [ngSwitch]=\"configuration.type\">\n <ng-template [ngSwitchCase]=\"searchInputType.AUTOCOMPLETE\">\n <div *ngIf=\"!configuration.isOptionSelected; then configurationSelection else configurationDisplay\"></div>\n\n <ng-template #configurationSelection>\n <mat-form-field class=\"text-margin\" appearance=\"outline\">\n <mat-label>{{configuration.label | translate}}</mat-label>\n <input type=\"text\" matInput\n #autocompleteInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"configuration.formControl\"\n [matAutocomplete]=\"configurationAutocomplete\"\n [disabled]=\"!editable\"\n (keydown.enter)=\"$event.target.blur(); autocompleteTrigger.closePanel()\"\n #configurationInput>\n <mat-autocomplete #configurationAutocomplete=\"matAutocomplete\"\n [displayWith]=\"renderSelection\"\n (optionSelected)=\"autocompleteInput.blur()\">\n <mat-option\n *ngFor=\"let option of configuration.filteredOptions$ | async\"\n [value]=\"option\">\n <mat-icon *ngIf=\"option.icon\">{{option.icon}}</mat-icon>\n <span>{{option.text}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </ng-template>\n\n <ng-template #configurationDisplay>\n <div class=\"text-margin\"\n [ngClass]=\"{'bold-text': configuration.displayBold}\"\n (click)=\"clearConfigurationInput()\">\n {{configuration.selectedOptionTranslatePath | translate}}\n </div>\n </ng-template>\n </ng-template>\n <ng-template [ngSwitchCase]=\"searchInputType.OPERATOR\">\n <div *ngIf=\"selectedCategory.isOperatorSelected(); then argumentsSelection; else operatorSelection\"></div>\n\n <ng-template #operatorSelection>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{configuration.label | translate}}</mat-label>\n <mat-select [formControl]=\"configuration.formControl\" [disabled]=\"!editable\" #configurationInput>\n <mat-option *ngFor=\"let operator of selectedCategory.allowedOperators\" [value]=\"operator\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <ng-template ngFor let-namePart [ngForOf]=\"operator.getOperatorNameTemplate()\" let-last=\"last\">\n <ng-container [ngTemplateOutlet]=\"namePart ? operatorInputText : operatorInputPlaceholder\"\n [ngTemplateOutletContext]=\"{last:last, namePart:namePart}\"></ng-container>\n </ng-template>\n\n <ng-template #operatorInputText let-last=\"last\" let-namePart=\"namePart\">\n <div [ngClass]=\"{'argument-right-margin': !last}\">\n {{namePart | translate}}\n </div>\n </ng-template>\n\n <ng-template #operatorInputPlaceholder let-last=\"last\">\n <div class=\"argument-placeholder-color argument-placeholder-dimensions\" [ngClass]=\"{'argument-right-margin': !last}\"></div>\n </ng-template>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ng-template>\n\n <ng-template #argumentsSelection>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" (click)=\"clearOperatorInput()\">\n <ng-template ngFor let-templatePart [ngForOf]=\"selectedCategory.operatorTemplate$ | async\"\n [ngForTrackBy]=\"trackByTemplateParts\">\n <div [ngSwitch]=\"templatePart.type\">\n <ng-template [ngSwitchCase]=\"operatorTemplatePartType.TEXT\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\"\n class=\"text-margin\">\n {{templatePart.content | translate}}\n </div>\n </ng-template>\n\n <ng-template [ngSwitchCase]=\"operatorTemplatePartType.INPUT\">\n <div class=\"text-margin\"\n (click)=\"$event.stopPropagation()\">\n <nc-search-operand-input [inputFormControl]=\"templatePart.content\"\n [inputType]=\"selectedCategory.inputType\"\n [first]=\"templatePart.first\"\n [filterOptionsFunction]=\"filterOptions\"\n [editable]=\"editable\"></nc-search-operand-input>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n</div>\n",
|
|
1286
|
+
styles: [".bold-text{font-weight:700}.text-margin{margin-left:4px}.argument-placeholder-dimensions{height:1.5em;width:6em;border-radius:4px}.argument-right-margin{margin-right:.5em}"]
|
|
1287
|
+
},] }
|
|
1288
|
+
];
|
|
1289
|
+
SearchConfigurationInputComponent.ctorParameters = () => [];
|
|
1290
|
+
|
|
1291
|
+
class AdvancedSearchComponent extends AbstractAdvancedSearchComponent {
|
|
1292
|
+
constructor(searchService, initializationService) {
|
|
1293
|
+
super(searchService, initializationService);
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
AdvancedSearchComponent.ctorParameters = () => [
|
|
1297
|
+
{ type: SearchService },
|
|
1298
|
+
{ type: AdvancedSearchComponentInitializationService }
|
|
1299
|
+
];
|
|
1300
|
+
AdvancedSearchComponent.decorators = [
|
|
1301
|
+
{ type: Component, args: [{
|
|
1302
|
+
selector: 'nc-advanced-search',
|
|
1303
|
+
template: "<div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <div *ngFor=\"let item of getPredicateMap() | keyvalue; trackBy: trackByPredicates; first as first\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div *ngIf=\"!first\" class=\"bool-operator-margin\">{{'search.and' | translate | uppercase}}</div>\n <nc-search-clause [predicate]=\"item.value\" [predicateId]=\"item.key\" [remove$]=\"removeChild$\" [editable]=\"editable\"\n class=\"clause-margin\"></nc-search-clause>\n </div>\n <button *ngIf=\"editable\" mat-stroked-button (click)=\"addChildPredicate()\" class=\"bool-operator-margin\">+ {{'search.and' | translate | uppercase}}</button>\n</div>\n",
|
|
1304
|
+
providers: [AdvancedSearchComponentInitializationService],
|
|
1305
|
+
styles: [".bool-operator-margin{margin-left:8px;margin-right:8px}"]
|
|
1306
|
+
},] }
|
|
1307
|
+
];
|
|
1308
|
+
AdvancedSearchComponent.ctorParameters = () => [
|
|
1309
|
+
{ type: SearchService },
|
|
1310
|
+
{ type: AdvancedSearchComponentInitializationService }
|
|
1311
|
+
];
|
|
1312
|
+
|
|
1313
|
+
class AdvancedSearchComponentModule {
|
|
1314
|
+
}
|
|
1315
|
+
AdvancedSearchComponentModule.decorators = [
|
|
1316
|
+
{ type: NgModule, args: [{
|
|
1317
|
+
declarations: [
|
|
1318
|
+
SearchClauseComponent,
|
|
1319
|
+
SearchPredicateComponent,
|
|
1320
|
+
SearchOperandInputComponent,
|
|
1321
|
+
SearchConfigurationInputComponent,
|
|
1322
|
+
AdvancedSearchComponent,
|
|
1323
|
+
],
|
|
1324
|
+
exports: [
|
|
1325
|
+
SearchClauseComponent,
|
|
1326
|
+
SearchPredicateComponent,
|
|
1327
|
+
SearchOperandInputComponent,
|
|
1328
|
+
SearchConfigurationInputComponent,
|
|
1329
|
+
AdvancedSearchComponent,
|
|
1330
|
+
],
|
|
1331
|
+
imports: [
|
|
1332
|
+
CommonModule,
|
|
1333
|
+
MaterialModule,
|
|
1334
|
+
TranslateLibModule,
|
|
1335
|
+
NgxMatDatetimePickerModule,
|
|
1336
|
+
]
|
|
1337
|
+
},] }
|
|
1338
|
+
];
|
|
1339
|
+
|
|
1340
|
+
/**
|
|
1341
|
+
* Includes avatar user icon and full username in the side menu.
|
|
1342
|
+
*/
|
|
1343
|
+
class UserAssignItemComponent extends AbstractUserAssignItemComponent {
|
|
1344
|
+
constructor() {
|
|
1345
|
+
super();
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
UserAssignItemComponent.decorators = [
|
|
1349
|
+
{ type: Component, args: [{
|
|
1350
|
+
selector: 'nc-user-assign-item',
|
|
1351
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"user-item\" [ngClass]=\"{\n 'user-assign-item-selected': (selectedId$ | async) === user.id\n }\">\n <mat-icon class=\"icon\">account_circle</mat-icon>\n <div fxLayout=\"column\">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n</div>\n",
|
|
1352
|
+
styles: [".user-item{padding:10px 15px;cursor:pointer}.user-item:hover{background-color:rgba(0,0,0,.14);border-radius:2.5px}.icon{margin-right:16px;height:40px;width:40px;font-size:40px}.email-selected,.email-unselected{font-size:.9em}"]
|
|
1353
|
+
},] }
|
|
1354
|
+
];
|
|
1355
|
+
UserAssignItemComponent.ctorParameters = () => [];
|
|
1356
|
+
|
|
1357
|
+
/**
|
|
1358
|
+
* Is responsible for displaying, filtering, loading and selecting users.
|
|
1359
|
+
*/
|
|
1360
|
+
class UserAssignListComponent extends AbstractUserAssignListComponent {
|
|
1361
|
+
constructor(_userListService) {
|
|
1362
|
+
super(_userListService);
|
|
1363
|
+
this._userListService = _userListService;
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
UserAssignListComponent.ctorParameters = () => [
|
|
1367
|
+
{ type: UserListService }
|
|
1368
|
+
];
|
|
1369
|
+
UserAssignListComponent.decorators = [
|
|
1370
|
+
{ type: Component, args: [{
|
|
1371
|
+
selector: 'nc-user-assign-list',
|
|
1372
|
+
template: "<div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"users$ | async as users\">\n <div *ngIf=\"!loading && users.length === 0\" fxFlex=\"100\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\" class=\"margin-bottom-default\">person_add_disabled</mat-icon>\n <span class=\"font-size-20\">{{ 'side-menu.user.noUser' | translate }}</span>\n </div>\n\n <div class=\"full-height full-width\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"60\" (scrolledIndexChange)=\"loadNextPage()\"\n class=\"full-height full-width\">\n <nc-user-assign-item\n *cdkVirtualFor=\"let user of users;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [user]=\"user\"\n [selectedId$]=\"selectedUser$\"\n (click)=\"select(user)\">\n </nc-user-assign-item>\n\n <div *ngIf=\"loading\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n </ng-container>\n</div>\n",
|
|
1373
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.font-size-20{font-size:20px}.margin-bottom-default{margin-bottom:8px}.margin-top-default{margin-top:8px}"]
|
|
1374
|
+
},] }
|
|
1375
|
+
];
|
|
1376
|
+
UserAssignListComponent.ctorParameters = () => [
|
|
1377
|
+
{ type: UserListService }
|
|
1378
|
+
];
|
|
1379
|
+
|
|
1380
|
+
const ɵ0$3 = UserAssignComponent;
|
|
1381
|
+
class SideMenuUserAssignComponentModule {
|
|
1382
|
+
}
|
|
1383
|
+
SideMenuUserAssignComponentModule.decorators = [
|
|
1384
|
+
{ type: NgModule, args: [{
|
|
1385
|
+
declarations: [
|
|
1386
|
+
UserAssignComponent,
|
|
1387
|
+
UserAssignItemComponent,
|
|
1388
|
+
UserAssignListComponent
|
|
1389
|
+
],
|
|
1390
|
+
imports: [
|
|
1391
|
+
CommonModule,
|
|
1392
|
+
MaterialModule,
|
|
1393
|
+
CovalentModule,
|
|
1394
|
+
FlexLayoutModule,
|
|
1395
|
+
FlexModule,
|
|
1396
|
+
FormsModule,
|
|
1397
|
+
TranslateLibModule
|
|
1398
|
+
],
|
|
1399
|
+
exports: [UserAssignComponent],
|
|
1400
|
+
entryComponents: [UserAssignComponent],
|
|
1401
|
+
providers: [
|
|
1402
|
+
{ provide: NAE_USER_ASSIGN_COMPONENT, useValue: ɵ0$3 },
|
|
1403
|
+
]
|
|
1404
|
+
},] }
|
|
1405
|
+
];
|
|
1406
|
+
|
|
1407
|
+
class I18nFieldComponent extends AbstractI18nFieldComponent {
|
|
1408
|
+
constructor(informAboutInvalidData) {
|
|
1409
|
+
super(informAboutInvalidData);
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
I18nFieldComponent.ctorParameters = () => [
|
|
1413
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
1414
|
+
];
|
|
1415
|
+
I18nFieldComponent.decorators = [
|
|
1416
|
+
{ type: Component, args: [{
|
|
1417
|
+
selector: 'nc-i18n-field',
|
|
1418
|
+
template: "<nc-data-field-template *ngIf=\"!dataField.behavior.hidden\"\n [dataField]=\"dataField\"\n [dataFieldTemplate]=\"i18nFieldTemplate\"\n [offset]=\"taskOffset\">\n</nc-data-field-template>\n\n<ng-template #i18nFieldTemplate let-showLargeLayout=\"showLargeLayout\">\n <div [ngSwitch]=\"getType()\">\n <nc-i18n-divider-field *ngSwitchCase=\"'divider'\" [dividerI18nField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-i18n-divider-field>\n <nc-i18n-text-field *ngSwitchDefault [textI18nField]=\"dataField\" [formControlRef]=\"formControl\"\n [showLargeLayout]=\"showLargeLayout\"></nc-i18n-text-field>\n </div>\n</ng-template>\n",
|
|
1419
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
1420
|
+
},] }
|
|
1421
|
+
];
|
|
1422
|
+
I18nFieldComponent.ctorParameters = () => [
|
|
1423
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
|
|
1424
|
+
];
|
|
1425
|
+
|
|
1426
|
+
class I18nDividerFieldComponent extends AbstractI18nDividerFieldComponent {
|
|
1427
|
+
constructor() {
|
|
1428
|
+
super();
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
I18nDividerFieldComponent.decorators = [
|
|
1432
|
+
{ type: Component, args: [{
|
|
1433
|
+
selector: 'nc-i18n-divider-field',
|
|
1434
|
+
template: "<div fxFlex fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div fxFlex=\"20\" class=\"divider-line\"\n [ngClass]=\"{'primary-background-color': !dividerPropertyEnabled('dividerColor')}\"\n [ngStyle]=\"dividerPropertyEnabled('dividerColor') && {'background': getDividerColor()}\"></div>\n <span [ngClass]=\"{'margin-default': dividerI18nField.value.defaultValue !== ''}\"\n [ngStyle]=\"dividerPropertyEnabled('fontSize') && {'font-size': getDividerFontSize()}\">\n {{dividerI18nField.value.defaultValue}}\n </span>\n <div fxFlex class=\"divider-line\"\n [ngClass]=\"{'primary-background-color': !dividerPropertyEnabled('dividerColor')}\"\n [ngStyle]=\"dividerPropertyEnabled('dividerColor') && {'background': getDividerColor()}\"></div>\n</div>\n",
|
|
1435
|
+
styles: [".divider-line{height:1px}.margin-default{margin-right:8px;margin-left:8px}"]
|
|
1436
|
+
},] }
|
|
1437
|
+
];
|
|
1438
|
+
I18nDividerFieldComponent.ctorParameters = () => [];
|
|
1439
|
+
|
|
1440
|
+
class I18nTextFieldComponent extends AbstractI18nTextFieldComponent {
|
|
1441
|
+
constructor(translateService) {
|
|
1442
|
+
super(translateService);
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1445
|
+
I18nTextFieldComponent.ctorParameters = () => [
|
|
1446
|
+
{ type: TranslateService }
|
|
1447
|
+
];
|
|
1448
|
+
I18nTextFieldComponent.decorators = [
|
|
1449
|
+
{ type: Component, args: [{
|
|
1450
|
+
selector: 'nc-i18n-text-field',
|
|
1451
|
+
template: "<ng-template [ngIf]=\"textI18nField.disabled\">\n <ng-template [ngIf]=\"!isPlainText()\">\n <mat-form-field [appearance]=\"textI18nField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{textI18nField.title}}</mat-label>\n <input matInput\n [disabled]=\"true\"\n [ngModel]=\"getTranslation()\"\n [placeholder]=\"textI18nField.placeholder\"\n [required]=\"textI18nField.behavior.required\">\n <mat-hint>{{textI18nField.description}}</mat-hint>\n </mat-form-field>\n </ng-template>\n <ng-template [ngIf]=\"isPlainText()\">\n <div class=\"full-width\"\n [ngStyle]=\"textPropertyEnabled('fontSize') && {'font-size': getTextFontSize()}\">\n <span [ngStyle]=\"textPropertyEnabled('textColor') && {'color': getTextColor()}\">\n {{getTranslation()}}\n </span>\n </div>\n </ng-template>\n</ng-template>\n<ng-template [ngIf]=\"!textI18nField.disabled\">\n <div class=\"full-width\">\n <!-- TODO: add editable view for text component -->\n </div>\n</ng-template>\n",
|
|
1452
|
+
styles: [".full-width{display:block;margin:0 auto;width:100%}"]
|
|
1453
|
+
},] }
|
|
1454
|
+
];
|
|
1455
|
+
I18nTextFieldComponent.ctorParameters = () => [
|
|
1456
|
+
{ type: TranslateService }
|
|
1457
|
+
];
|
|
1458
|
+
|
|
1459
|
+
class DataFieldsComponentModule {
|
|
1460
|
+
}
|
|
1461
|
+
DataFieldsComponentModule.decorators = [
|
|
1462
|
+
{ type: NgModule, args: [{
|
|
1463
|
+
declarations: [
|
|
1464
|
+
BooleanFieldComponent,
|
|
1465
|
+
ButtonFieldComponent,
|
|
1466
|
+
DataFieldTemplateComponent,
|
|
1467
|
+
DateFieldComponent,
|
|
1468
|
+
DateTimeFieldComponent,
|
|
1469
|
+
EnumerationFieldComponent,
|
|
1470
|
+
EnumerationAutocompleteSelectFieldComponent,
|
|
1471
|
+
EnumerationSelectFieldComponent,
|
|
1472
|
+
EnumerationListFieldComponent,
|
|
1473
|
+
FileFieldComponent,
|
|
1474
|
+
FileListFieldComponent,
|
|
1475
|
+
MultichoiceFieldComponent,
|
|
1476
|
+
MultichoiceSelectFieldComponent,
|
|
1477
|
+
MultichoiceListFieldComponent,
|
|
1478
|
+
NumberFieldComponent,
|
|
1479
|
+
TextFieldComponent,
|
|
1480
|
+
TextareaFieldComponent,
|
|
1481
|
+
RichTextareaFieldComponent,
|
|
1482
|
+
SimpleTextFieldComponent,
|
|
1483
|
+
UserFieldComponent,
|
|
1484
|
+
RequiredLabelComponent,
|
|
1485
|
+
HtmlTextareaFieldComponent,
|
|
1486
|
+
PasswordTextFieldComponent,
|
|
1487
|
+
NumberCurrencyFieldComponent,
|
|
1488
|
+
NumberDefaultFieldComponent,
|
|
1489
|
+
PreviewDialogComponent,
|
|
1490
|
+
NumberDefaultFieldComponent,
|
|
1491
|
+
EnumerationStepperFieldComponent,
|
|
1492
|
+
EnumerationIconFieldComponent,
|
|
1493
|
+
EnumerationAutocompleteDynamicFieldComponent,
|
|
1494
|
+
FilterFieldComponent,
|
|
1495
|
+
FilterFieldContentComponent,
|
|
1496
|
+
I18nFieldComponent,
|
|
1497
|
+
I18nDividerFieldComponent,
|
|
1498
|
+
I18nTextFieldComponent,
|
|
1499
|
+
],
|
|
1500
|
+
exports: [
|
|
1501
|
+
BooleanFieldComponent,
|
|
1502
|
+
ButtonFieldComponent,
|
|
1503
|
+
DataFieldTemplateComponent,
|
|
1504
|
+
DateFieldComponent,
|
|
1505
|
+
DateTimeFieldComponent,
|
|
1506
|
+
EnumerationFieldComponent,
|
|
1507
|
+
FileFieldComponent,
|
|
1508
|
+
FileListFieldComponent,
|
|
1509
|
+
MultichoiceFieldComponent,
|
|
1510
|
+
NumberFieldComponent,
|
|
1511
|
+
TextFieldComponent,
|
|
1512
|
+
UserFieldComponent,
|
|
1513
|
+
FilterFieldComponent,
|
|
1514
|
+
I18nFieldComponent
|
|
1515
|
+
],
|
|
1516
|
+
imports: [
|
|
1517
|
+
CommonModule,
|
|
1518
|
+
FlexLayoutModule,
|
|
1519
|
+
MaterialModule,
|
|
1520
|
+
CovalentModule,
|
|
1521
|
+
AngularResizedEventModule,
|
|
1522
|
+
HttpClientModule,
|
|
1523
|
+
ReactiveFormsModule,
|
|
1524
|
+
NgxMatDatetimePickerModule,
|
|
1525
|
+
NgxMatMomentModule,
|
|
1526
|
+
TranslateLibModule,
|
|
1527
|
+
SideMenuUserAssignComponentModule,
|
|
1528
|
+
QuillModule.forRoot(),
|
|
1529
|
+
MatDialogModule,
|
|
1530
|
+
AdvancedSearchComponentModule,
|
|
1531
|
+
MatProgressSpinnerModule,
|
|
1532
|
+
CurrencyModule
|
|
1533
|
+
],
|
|
1534
|
+
providers: [
|
|
1535
|
+
{ provide: DateAdapter, useClass: CustomDateAdapter }
|
|
1536
|
+
],
|
|
1537
|
+
entryComponents: [
|
|
1538
|
+
PreviewDialogComponent,
|
|
1539
|
+
FilterFieldContentComponent
|
|
1540
|
+
]
|
|
1541
|
+
},] }
|
|
1542
|
+
];
|
|
1543
|
+
|
|
1544
|
+
/* Class */
|
|
1545
|
+
|
|
1546
|
+
class EmailSubmissionFormComponent extends AbstractEmailSubmissionFormComponent {
|
|
1547
|
+
constructor(formBuilder) {
|
|
1548
|
+
super(formBuilder);
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
EmailSubmissionFormComponent.ctorParameters = () => [
|
|
1552
|
+
{ type: FormBuilder }
|
|
1553
|
+
];
|
|
1554
|
+
EmailSubmissionFormComponent.decorators = [
|
|
1555
|
+
{ type: Component, args: [{
|
|
1556
|
+
selector: 'nc-email-submission-form',
|
|
1557
|
+
template: "<div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"24px\">\n <form [formGroup]=\"rootFormGroup\" (ngSubmit)=\"onSubmit()\" class=\"full-width\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">email</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.email.enterEmail' | translate}}\" formControlName=\"email\" required autocomplete=\"email\">\n <mat-error *ngIf=\"rootFormGroup.controls['email'].hasError('email')\">\n {{ 'dataField.validations.email' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n <nc-legal-notice *ngIf=\"displayLegalNotice\" [buttonName]=\"'dialog.submit'\"></nc-legal-notice>\n <div fxLayout=\"row\" class=\"margin-top-4\">\n <button mat-icon-button fxLayoutAlign=\"start\" (click)=\"emitGoBack()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div fxFlex></div>\n <button fxLayoutAlign=\"end\" mat-raised-button color=\"primary\" fxFlexOffset=\"8px\">{{ 'dialog.submit' | translate}}</button>\n </div>\n </form>\n</div>\n",
|
|
1558
|
+
styles: [".margin-top-4{margin-top:4px}.full-width{width:100%}"]
|
|
1559
|
+
},] }
|
|
1560
|
+
];
|
|
1561
|
+
EmailSubmissionFormComponent.ctorParameters = () => [
|
|
1562
|
+
{ type: FormBuilder }
|
|
1563
|
+
];
|
|
1564
|
+
|
|
1565
|
+
class LoginFormComponent extends AbstractLoginFormComponent {
|
|
1566
|
+
constructor(formBuilder, _userService) {
|
|
1567
|
+
super(formBuilder, _userService);
|
|
1568
|
+
this._userService = _userService;
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
LoginFormComponent.ctorParameters = () => [
|
|
1572
|
+
{ type: FormBuilder },
|
|
1573
|
+
{ type: UserService }
|
|
1574
|
+
];
|
|
1575
|
+
LoginFormComponent.decorators = [
|
|
1576
|
+
{ type: Component, args: [{
|
|
1577
|
+
selector: 'nc-login-form',
|
|
1578
|
+
template: "<div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"8px\">\n <form [formGroup]=\"rootFormGroup\" (ngSubmit)=\"onSubmit()\" class=\"full-width\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">account_circle</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.login.login' | translate}}\" formControlName=\"login\" minlength=\"4\"\n required autocomplete=\"username\">\n <mat-error *ngIf=\"rootFormGroup.controls['login'].hasError('minlength')\">\n {{ 'forms.login.length' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">vpn_key</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.login.enterPass' | translate}}\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n formControlName=\"password\" required autocomplete=\"current-password\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hidePassword = !hidePassword\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hidePassword\">\n <mat-icon\n [color]=\"hidePassword ? undefined : 'accent'\">{{hidePassword ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" [fxLayoutAlign]=\"getButtonsFxLayoutAlign()\" fxLayoutAlign.xs=\"center\" class=\"margin-top-4\">\n <button mat-stroked-button type=\"button\" *ngIf=\"showForgottenPasswordButton && !showSignUpButton\" (click)=\"resetEmit()\" color=\"primary\" class=\"margin-left-40\">{{ 'forms.login.reset' | translate}}</button>\n <button mat-stroked-button type=\"button\" *ngIf=\"showSignUpButton\" (click)=\"signUpEmit()\" color=\"primary\" class=\"margin-left-40\">{{ 'forms.login.sign' | translate}}</button>\n <button color=\"primary\" type=\"submit\" mat-raised-button fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-spinner *ngIf=\"loading | async\"\n mode=\"indeterminate\"\n diameter=\"36\"\n color=\"accent\"\n fxFlex></mat-spinner>\n <span *ngIf=\"(loading | async) === false\" fxFlex>{{ 'forms.login.loginButton' | translate}}</span>\n </button>\n </div>\n </form>\n\n <div *ngIf=\"showSignUpButton && showForgottenPasswordButton\" fxLayout=\"row\" class=\"width-100\" fxLayoutAlign=\"end\">\n <button mat-button *ngIf=\"showForgottenPasswordButton\" (click)=\"resetEmit()\" color=\"primary\">{{ 'forms.login.reset' | translate}}</button>\n </div>\n</div>\n",
|
|
1579
|
+
styles: [".forgotten-password{margin-bottom:10px}.login-form-container a{color:#757575}.login-form-container a:hover{color:rgba(0,0,0,.87);cursor:pointer}.margin-top-2x{margin-top:16px}.margin-right-default{margin-right:8px}.position-relative{position:relative!important}.width-100{width:100%}.margin-top-4{margin-top:4px}.full-width{width:100%}.margin-left-40{margin-left:40px}"]
|
|
1580
|
+
},] }
|
|
1581
|
+
];
|
|
1582
|
+
LoginFormComponent.ctorParameters = () => [
|
|
1583
|
+
{ type: FormBuilder },
|
|
1584
|
+
{ type: UserService }
|
|
1585
|
+
];
|
|
1586
|
+
|
|
1587
|
+
class RegistrationFormComponent extends AbstractRegistrationFormComponent {
|
|
1588
|
+
constructor(formBuilder, signupService, log, translate) {
|
|
1589
|
+
super(formBuilder, signupService, log, translate);
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
RegistrationFormComponent.ctorParameters = () => [
|
|
1593
|
+
{ type: FormBuilder },
|
|
1594
|
+
{ type: SignUpService },
|
|
1595
|
+
{ type: LoggerService },
|
|
1596
|
+
{ type: TranslateService }
|
|
1597
|
+
];
|
|
1598
|
+
RegistrationFormComponent.decorators = [
|
|
1599
|
+
{ type: Component, args: [{
|
|
1600
|
+
selector: 'nc-registration-form',
|
|
1601
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\"24px\" *ngIf=\"tokenVerified && (loadingToken | async) === false\">\n <form [formGroup]=\"rootFormGroup\" (ngSubmit)=\"onSubmit()\" class=\"full-width\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">email</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.register.email' | translate}}\" disabled [value]=\"userEmail\" autocomplete=\"username\">\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">account_circle</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.register.name' | translate }}\" formControlName=\"name\" required autocomplete=\"given-name\">\n <mat-error *ngIf=\"!isFieldValid('name')\">{{getErrorMessage('name')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">account_circle_outline</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.register.surname' | translate }}\" formControlName=\"surname\" required autocomplete=\"family-name\">\n <mat-error *ngIf=\"!isFieldValid('surname')\">{{getErrorMessage('surname')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">vpn_key</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.login.enterPass' | translate }}\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n formControlName=\"password\" required autocomplete=\"new-password\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hidePassword = !hidePassword\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hidePassword\">\n <mat-icon\n [color]=\"hidePassword ? undefined : 'accent'\">{{hidePassword ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"!isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">vpn_key</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.register.repeatPass' | translate }}\"\n [type]=\"hideRepeatPassword ? 'password' : 'text'\"\n formControlName=\"confirmPassword\" required autocomplete=\"new-password\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hideRepeatPassword = !hideRepeatPassword\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hideRepeatPassword\">\n <mat-icon\n [color]=\"hideRepeatPassword ? undefined : 'accent'\">{{hideRepeatPassword ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"!isFieldValid('confirmPassword')\">{{getErrorMessage('confirmPassword')}}</mat-error>\n </mat-form-field>\n </div>\n <nc-legal-notice *ngIf=\"displayLegalNotice\" [buttonName]=\"'forms.register.register'\"></nc-legal-notice>\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxLayoutAlign.xs=\"center\" class=\"margin-top-4\">\n <button fxFlexOffset=\"8px\" fxFlexOffset.xs=\"0\" mat-raised-button class=\"register-button\" color=\"primary\">\n {{ 'forms.register.register' | translate }}\n </button>\n </div>\n </form>\n</div>\n\n<div *ngIf=\"!tokenVerified && (loadingToken | async) === false\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex>\n <mat-icon color=\"accent\">unpublished</mat-icon>\n <span class=\"font-size-20\">{{ 'forms.register.notVerified' | translate}}</span>\n</div>\n\n<div *ngIf=\"loadingToken | async\">\n <mat-progress-spinner></mat-progress-spinner>\n</div>\n",
|
|
1602
|
+
styles: [".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]
|
|
1603
|
+
},] }
|
|
1604
|
+
];
|
|
1605
|
+
RegistrationFormComponent.ctorParameters = () => [
|
|
1606
|
+
{ type: FormBuilder },
|
|
1607
|
+
{ type: SignUpService },
|
|
1608
|
+
{ type: LoggerService },
|
|
1609
|
+
{ type: TranslateService }
|
|
1610
|
+
];
|
|
1611
|
+
|
|
1612
|
+
class ForgottenPasswordFormComponent extends AbstractForgottenPasswordComponent {
|
|
1613
|
+
constructor(formBuilder, signupService, log, translate) {
|
|
1614
|
+
super(formBuilder, signupService, log, translate);
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
ForgottenPasswordFormComponent.ctorParameters = () => [
|
|
1618
|
+
{ type: FormBuilder },
|
|
1619
|
+
{ type: SignUpService },
|
|
1620
|
+
{ type: LoggerService },
|
|
1621
|
+
{ type: TranslateService }
|
|
1622
|
+
];
|
|
1623
|
+
ForgottenPasswordFormComponent.decorators = [
|
|
1624
|
+
{ type: Component, args: [{
|
|
1625
|
+
selector: 'nc-forgotten-password-form',
|
|
1626
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\"24px\" *ngIf=\"tokenVerified && (loadingToken | async) === false\">\n <form [formGroup]=\"rootFormGroup\" (ngSubmit)=\"onSubmit()\" class=\"full-width\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">email</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.register.email' | translate}}\" disabled [value]=\"userEmail\" autocomplete=\"username\">\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">vpn_key</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.forgottenPass.enterNewPass' | translate }}\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n formControlName=\"password\" required autocomplete=\"new-password\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hidePassword = !hidePassword\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hidePassword\">\n <mat-icon\n [color]=\"hidePassword ? undefined : 'accent'\">{{hidePassword ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"!isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon color=\"primary\">vpn_key</mat-icon>\n <mat-form-field fxFlex=\"100\">\n <input matInput placeholder=\"{{ 'forms.forgottenPass.repeatNewPass' | translate }}\"\n [type]=\"hideRepeatPassword ? 'password' : 'text'\"\n formControlName=\"confirmPassword\" required autocomplete=\"new-password\">\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"hideRepeatPassword = !hideRepeatPassword\"\n (keypress)=\"false\"\n [attr.aria-label]=\"'Hide password'\"\n [attr.aria-pressed]=\"hideRepeatPassword\">\n <mat-icon\n [color]=\"hideRepeatPassword ? undefined : 'accent'\">{{hideRepeatPassword ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"!isFieldValid('confirmPassword')\">{{getErrorMessage('confirmPassword')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxLayoutAlign.xs=\"center\" class=\"margin-top-4\">\n <button fxFlexOffset=\"8px\" fxFlexOffset.xs=\"0\" mat-raised-button class=\"register-button\" color=\"primary\">\n {{ 'forms.forgottenPass.recover' | translate }}\n </button>\n </div>\n </form>\n</div>\n\n<div *ngIf=\"!tokenVerified && (loadingToken | async) === false\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex>\n <mat-icon color=\"accent\">unpublished</mat-icon>\n <span class=\"font-size-20\">{{ 'forms.register.notVerified' | translate}}</span>\n</div>\n\n<div *ngIf=\"loadingToken | async\">\n <mat-progress-spinner></mat-progress-spinner>\n</div>\n",
|
|
1627
|
+
styles: [".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]
|
|
1628
|
+
},] }
|
|
1629
|
+
];
|
|
1630
|
+
ForgottenPasswordFormComponent.ctorParameters = () => [
|
|
1631
|
+
{ type: FormBuilder },
|
|
1632
|
+
{ type: SignUpService },
|
|
1633
|
+
{ type: LoggerService },
|
|
1634
|
+
{ type: TranslateService }
|
|
1635
|
+
];
|
|
1636
|
+
|
|
1637
|
+
class LegalNoticeComponent extends AbstractLegalNoticeComponent {
|
|
1638
|
+
constructor(config) {
|
|
1639
|
+
super(config);
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
LegalNoticeComponent.ctorParameters = () => [
|
|
1643
|
+
{ type: ConfigurationService }
|
|
1644
|
+
];
|
|
1645
|
+
LegalNoticeComponent.decorators = [
|
|
1646
|
+
{ type: Component, args: [{
|
|
1647
|
+
selector: 'nc-legal-notice',
|
|
1648
|
+
template: "<div class=\"text-style\">\n {{'legal.byClicking' | translate:{'buttonName': (buttonName | translate)} }}\n {{'legal.youIndicate' | translate}}\n <a [href]=\"termsOfServiceLink\" [target]=\"'blank'\">{{'legal.termsOfService' | translate}}</a>\n {{'legal.and' | translate}}\n <a [href]=\"privacyPolicyLink\" [target]=\"'blank'\">{{'legal.privacyNotice' | translate}}</a>\n {{'legal.sentenceEnd' | translate}}\n</div>\n",
|
|
1649
|
+
styles: [".text-style{font-size:small;text-align:justify;margin:8px 4px}"]
|
|
1650
|
+
},] }
|
|
1651
|
+
];
|
|
1652
|
+
LegalNoticeComponent.ctorParameters = () => [
|
|
1653
|
+
{ type: ConfigurationService }
|
|
1654
|
+
];
|
|
1655
|
+
|
|
1656
|
+
class LegalNoticeModule {
|
|
1657
|
+
}
|
|
1658
|
+
LegalNoticeModule.decorators = [
|
|
1659
|
+
{ type: NgModule, args: [{
|
|
1660
|
+
declarations: [LegalNoticeComponent],
|
|
1661
|
+
imports: [
|
|
1662
|
+
CommonModule,
|
|
1663
|
+
TranslateLibModule
|
|
1664
|
+
],
|
|
1665
|
+
exports: [LegalNoticeComponent]
|
|
1666
|
+
},] }
|
|
1667
|
+
];
|
|
1668
|
+
|
|
1669
|
+
class EmailSubmissionFormComponentModule {
|
|
1670
|
+
}
|
|
1671
|
+
EmailSubmissionFormComponentModule.decorators = [
|
|
1672
|
+
{ type: NgModule, args: [{
|
|
1673
|
+
declarations: [EmailSubmissionFormComponent],
|
|
1674
|
+
exports: [EmailSubmissionFormComponent],
|
|
1675
|
+
imports: [
|
|
1676
|
+
CommonModule,
|
|
1677
|
+
MaterialModule,
|
|
1678
|
+
FlexLayoutModule,
|
|
1679
|
+
ReactiveFormsModule,
|
|
1680
|
+
TranslateLibModule,
|
|
1681
|
+
LegalNoticeModule
|
|
1682
|
+
]
|
|
1683
|
+
},] }
|
|
1684
|
+
];
|
|
1685
|
+
|
|
1686
|
+
class LoginFormComponentModule {
|
|
1687
|
+
}
|
|
1688
|
+
LoginFormComponentModule.decorators = [
|
|
1689
|
+
{ type: NgModule, args: [{
|
|
1690
|
+
declarations: [LoginFormComponent],
|
|
1691
|
+
exports: [LoginFormComponent],
|
|
1692
|
+
imports: [
|
|
1693
|
+
CommonModule,
|
|
1694
|
+
MaterialModule,
|
|
1695
|
+
FlexLayoutModule,
|
|
1696
|
+
ReactiveFormsModule,
|
|
1697
|
+
TranslateLibModule
|
|
1698
|
+
]
|
|
1699
|
+
},] }
|
|
1700
|
+
];
|
|
1701
|
+
|
|
1702
|
+
class RegistrationFormComponentModule {
|
|
1703
|
+
}
|
|
1704
|
+
RegistrationFormComponentModule.decorators = [
|
|
1705
|
+
{ type: NgModule, args: [{
|
|
1706
|
+
declarations: [RegistrationFormComponent],
|
|
1707
|
+
exports: [RegistrationFormComponent],
|
|
1708
|
+
imports: [
|
|
1709
|
+
CommonModule,
|
|
1710
|
+
MaterialModule,
|
|
1711
|
+
FlexLayoutModule,
|
|
1712
|
+
ReactiveFormsModule,
|
|
1713
|
+
TranslateLibModule,
|
|
1714
|
+
LegalNoticeModule
|
|
1715
|
+
]
|
|
1716
|
+
},] }
|
|
1717
|
+
];
|
|
1718
|
+
|
|
1719
|
+
class ForgottenPasswordFormComponentModule {
|
|
1720
|
+
}
|
|
1721
|
+
ForgottenPasswordFormComponentModule.decorators = [
|
|
1722
|
+
{ type: NgModule, args: [{
|
|
1723
|
+
declarations: [ForgottenPasswordFormComponent],
|
|
1724
|
+
exports: [ForgottenPasswordFormComponent],
|
|
1725
|
+
imports: [
|
|
1726
|
+
CommonModule,
|
|
1727
|
+
MaterialModule,
|
|
1728
|
+
FlexLayoutModule,
|
|
1729
|
+
ReactiveFormsModule,
|
|
1730
|
+
TranslateLibModule
|
|
1731
|
+
]
|
|
1732
|
+
},] }
|
|
1733
|
+
];
|
|
1734
|
+
|
|
1735
|
+
/* COMPONENTS */
|
|
1736
|
+
|
|
1737
|
+
class HeaderComponent extends AbstractHeaderComponent {
|
|
1738
|
+
constructor(_injector, _translate, overflowService) {
|
|
1739
|
+
super(_injector, _translate, overflowService);
|
|
1740
|
+
this._injector = _injector;
|
|
1741
|
+
this._translate = _translate;
|
|
1742
|
+
this.overflowService = overflowService;
|
|
1743
|
+
}
|
|
1744
|
+
}
|
|
1745
|
+
HeaderComponent.ctorParameters = () => [
|
|
1746
|
+
{ type: Injector },
|
|
1747
|
+
{ type: TranslateService },
|
|
1748
|
+
{ type: OverflowService, decorators: [{ type: Optional }] }
|
|
1749
|
+
];
|
|
1750
|
+
HeaderComponent.decorators = [
|
|
1751
|
+
{ type: Component, args: [{
|
|
1752
|
+
selector: 'nc-header',
|
|
1753
|
+
template: "<mat-card [ngClass]=\"{'padding-custom': headerService.headerState.mode === headerModeEnum.SORT}\">\n <div fxLayout=\"row\">\n <div fxLayout=\"row\" fxFlex=\"95\" class=\"header-content-container flex-95\" fxLayoutAlign=\"start center\"\n [ngSwitch]=\"headerService.headerState.mode\" *ngIf=\"!headerService.loading.isActive\">\n <div *ngSwitchCase=\"headerModeEnum.SORT\" fxFlex=\"100\" fxLayout=\"row\">\n <nc-sort-mode fxFlex=\"100\" [headerService]=\"headerService\" [overflowWidth]=\"getMinWidth()\"></nc-sort-mode>\n </div>\n <div *ngSwitchCase=\"headerModeEnum.SEARCH\" fxFlex=\"100\" fxLayout=\"row\">\n <nc-search-mode fxFlex=\"100\" [headerService]=\"headerService\" [overflowWidth]=\"getMinWidth()\"></nc-search-mode>\n </div>\n <div *ngSwitchCase=\"headerModeEnum.EDIT\" fxFlex=\"100\" fxLayout=\"row\">\n <nc-edit-mode fxFlex=\"100\" [headerService]=\"headerService\" [overflowWidth]=\"getMinWidth()\"></nc-edit-mode>\n </div>\n </div>\n <div fxLayout=\"row\" fxFlex=\"95\" class=\"header-content-container\" fxLayoutAlign=\"start center\"\n *ngIf=\"headerService.loading.isActive\">\n <div fxFlex=\"100\" fxLayout=\"row\">\n <nc-loading-mode fxFlex=\"100\" [headerService]=\"headerService\" [overflowWidth]=\"getMinWidth()\"></nc-loading-mode>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\" class=\"flex-5\">\n <div *ngIf=\"!hideEditMode\">\n <button mat-icon-button [matMenuTriggerFor]=\"headerMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #headerMenu=\"matMenu\">\n <div *ngIf=\"headerService.headerState.mode !== headerModeEnum.EDIT\">\n <button mat-menu-item\n [ngClass]=\"{'active-header-item': headerService.headerState.mode === headerModeEnum.SORT}\"\n (click)=\"headerService.changeMode(headerModeEnum.SORT, false)\">\n <mat-icon>sort</mat-icon>\n {{ 'headers.orderMode' | translate}}\n </button>\n <button *ngIf=\"type === headerTypeEnum.CASE\" mat-menu-item\n [ngClass]=\"{'active-header-item': headerService.headerState.mode === headerModeEnum.SEARCH}\"\n (click)=\"headerService.changeMode(headerModeEnum.SEARCH, false)\">\n <mat-icon>search</mat-icon>\n {{ 'headers.searchMode' | translate}}\n </button>\n <button mat-menu-item (click)=\"headerService.changeMode(headerModeEnum.EDIT)\">\n <mat-icon>edit</mat-icon>\n {{ 'headers.editMode' | translate}}\n </button>\n </div>\n <div *ngIf=\"headerService.headerState.mode === headerModeEnum.EDIT\">\n <button mat-menu-item (click)=\"confirmEditMode()\">\n <mat-icon color=\"primary\">done</mat-icon>\n {{ 'dialog.submit' | translate}}\n </button>\n <button mat-menu-item (click)=\"headerService.revertEditMode()\">\n <mat-icon color=\"warn\">close</mat-icon>\n {{ 'tasks.view.cancel' | translate}}\n </button>\n <div class=\"mat-menu-item-look\" *ngIf=\"canOverflow\">\n <mat-slide-toggle [formControl]=\"overflowControl\">{{ 'headers.overflowMode' | translate}}</mat-slide-toggle>\n </div>\n <div class=\"mat-menu-item-look mat-menu-item-height\" (click)=\"clickStop($event)\" *ngIf=\"canOverflow && overflowControl.value\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ 'headers.columnWidth' | translate}}</mat-label>\n <input matInput type=\"number\" [formControl]=\"columnWidthControl\">\n <mat-error *ngIf=\"!columnWidthControl.valid\">{{getErrorMessageWidth()}}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"mat-menu-item-look mat-menu-item-height\" (click)=\"clickStop($event)\" *ngIf=\"canOverflow && overflowControl.value\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ 'headers.columnCount' | translate}}</mat-label>\n <input matInput type=\"number\" [formControl]=\"columnCountControl\">\n <mat-error *ngIf=\"!columnCountControl.valid\">{{getErrorMessageCount()}}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-menu>\n </div>\n </div>\n </div>\n</mat-card>\n",
|
|
1754
|
+
providers: [
|
|
1755
|
+
CaseHeaderService,
|
|
1756
|
+
TaskHeaderService,
|
|
1757
|
+
WorkflowHeaderService,
|
|
1758
|
+
HeaderSearchService,
|
|
1759
|
+
CategoryFactory
|
|
1760
|
+
],
|
|
1761
|
+
styles: [".header-content-container{height:40px}.padding-custom{padding:8px 16px}.flex-95{flex:1 1 95%}.flex-5{flex:1 1 5%}.mat-menu-item-look{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;font-size:14px}.mat-menu-item-height{min-height:64px;height:auto}"]
|
|
1762
|
+
},] }
|
|
1763
|
+
];
|
|
1764
|
+
HeaderComponent.ctorParameters = () => [
|
|
1765
|
+
{ type: Injector },
|
|
1766
|
+
{ type: TranslateService },
|
|
1767
|
+
{ type: OverflowService, decorators: [{ type: Optional }] }
|
|
1768
|
+
];
|
|
1769
|
+
|
|
1770
|
+
class SortModeComponent extends AbstractSortModeComponent {
|
|
1771
|
+
constructor() {
|
|
1772
|
+
super();
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
SortModeComponent.decorators = [
|
|
1776
|
+
{ type: Component, args: [{
|
|
1777
|
+
selector: 'nc-sort-mode',
|
|
1778
|
+
template: "<div matSort (matSortChange)=\"sortHeaderChanged($event)\" fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\" center\">\n <div [ngStyle]=\"{'min-width': getMinWidth()}\" *ngFor=\"let header of headerService.headerState.selectedHeaders$ | async; let i = index\" fxFlex\n [fxHide.lt-xl]=\"i >= 4 && this.headerService.responsiveHeaders\"\n [fxHide.lt-lg]=\"i >= 3 && this.headerService.responsiveHeaders\"\n [fxHide.lt-md]=\"i >= 2 && this.headerService.responsiveHeaders\"\n [fxHide.lt-sm]=\"i >= 1 && this.headerService.responsiveHeaders\">\n <div *ngIf=\"!!header; then thenBlock else elseBlock\" fxFlex></div>\n <ng-template #thenBlock>\n <span fxFlex\n mat-sort-header=\"{{i}}-{{header.uniqueId}}\">\n {{ header.title | translate}}\n </span>\n </ng-template>\n <ng-template #elseBlock>\n <div fxFlex></div>\n </ng-template>\n </div>\n</div>\n",
|
|
1779
|
+
styles: [""]
|
|
1780
|
+
},] }
|
|
1781
|
+
];
|
|
1782
|
+
SortModeComponent.ctorParameters = () => [];
|
|
1783
|
+
|
|
1784
|
+
class EditModeComponent extends AbstractEditModeComponent {
|
|
1785
|
+
constructor(_translate, loggerService) {
|
|
1786
|
+
super(_translate, loggerService);
|
|
1787
|
+
this._translate = _translate;
|
|
1788
|
+
this.loggerService = loggerService;
|
|
1789
|
+
}
|
|
1790
|
+
}
|
|
1791
|
+
EditModeComponent.ctorParameters = () => [
|
|
1792
|
+
{ type: TranslateService },
|
|
1793
|
+
{ type: LoggerService }
|
|
1794
|
+
];
|
|
1795
|
+
EditModeComponent.decorators = [
|
|
1796
|
+
{ type: Component, args: [{
|
|
1797
|
+
selector: 'nc-edit-mode',
|
|
1798
|
+
template: "<div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"start center\">\n <mat-form-field *ngFor=\"let header of this.headerService.selectedHeaders$ | async; let i = index\" fxLayout=\"row\"\n fxLayoutAlign=\" center\" fxFlex [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 4 && this.headerService.responsiveHeaders\"\n [fxHide.lt-lg]=\"i >= 3 && this.headerService.responsiveHeaders\"\n [fxHide.lt-md]=\"i >= 2 && this.headerService.responsiveHeaders\"\n [fxHide.lt-sm]=\"i >= 1 && this.headerService.responsiveHeaders\">\n <mat-label *ngIf=\"!header\">{{ 'headers.newHeader' | translate}}</mat-label>\n <input type=\"text\"\n aria-label=\"Autocomplete\"\n matInput\n [formControl]=\"formControls[i]\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"renderSelection\"\n (optionSelected)=\"headerColumnSelected(i, $event.option.value)\" fxFlex>\n <mat-optgroup *ngFor=\"let group of this.filterOptions[i] | async\" [label]=\"group.groupTitle\">\n <mat-option *ngFor=\"let field of group.fields\" [value]=\"field\">\n {{field.title | translate}}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n",
|
|
1799
|
+
styles: [""]
|
|
1800
|
+
},] }
|
|
1801
|
+
];
|
|
1802
|
+
EditModeComponent.ctorParameters = () => [
|
|
1803
|
+
{ type: TranslateService },
|
|
1804
|
+
{ type: LoggerService }
|
|
1805
|
+
];
|
|
1806
|
+
|
|
1807
|
+
const ɵ0$4 = DATE_FORMAT, ɵ1 = DATE_TIME_FORMAT;
|
|
1808
|
+
class SearchModeComponent extends AbstractSearchModeComponent {
|
|
1809
|
+
constructor(_sideMenuService) {
|
|
1810
|
+
super(_sideMenuService);
|
|
1811
|
+
this._sideMenuService = _sideMenuService;
|
|
1812
|
+
}
|
|
1813
|
+
selectUser(column) {
|
|
1814
|
+
this.selectAbstractUser(column, UserAssignComponent);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
SearchModeComponent.ctorParameters = () => [
|
|
1818
|
+
{ type: SideMenuService }
|
|
1819
|
+
];
|
|
1820
|
+
SearchModeComponent.decorators = [
|
|
1821
|
+
{ type: Component, args: [{
|
|
1822
|
+
selector: 'nc-search-mode',
|
|
1823
|
+
template: "<div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\" center\">\n <div *ngFor=\"let header of this.headerService.selectedHeaders$ | async; let i = index\"\n [fxHide.lt-xl]=\"i >= 4 && this.headerService.responsiveHeaders\"\n [fxHide.lt-lg]=\"i >= 3 && this.headerService.responsiveHeaders\"\n [fxHide.lt-md]=\"i >= 2 && this.headerService.responsiveHeaders\"\n [fxHide.lt-sm]=\"i >= 1 && this.headerService.responsiveHeaders\" fxFlex [ngStyle]=\"{'min-width': getMinWidth()}\">\n <div\n *ngIf=\"!!header && header.fieldType !== 'button'; then thenBlock else elseBlock\"\n fxFlex></div>\n <ng-template #thenBlock>\n <div fxLayout=\"row\" fxLayoutAlign=\" center\" fxFlex [ngSwitch]=\"header.fieldType\">\n <mat-form-field fxLayout=\"row\" fxLayoutAlign=\" center\" fxFlex *ngSwitchCase=\"'date'\">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput autocomplete=\"off\"\n [matDatepicker]=\"datepicker\"\n [formControl]=\"formControls[i]\"\n [placeholder]=\"'headers.date' | translate\"\n (click)=\"datepicker.open()\"\n (keydown.enter)=\"datepicker.close()\">\n <mat-datepicker-toggle matPrefix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n </mat-form-field>\n <mat-form-field fxLayout=\"row\" fxLayoutAlign=\" center\" fxFlex *ngSwitchCase=\"'dateTime'\">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput autocomplete=\"off\"\n [ngxMatDatetimePicker]=\"datetimepicker\"\n [formControl]=\"formControls[i]\"\n [placeholder]=\"'headers.dateTime' | translate\"\n (click)=\"datetimepicker.open()\"\n (keydown.enter)=\"datetimepicker.close()\">\n <mat-datepicker-toggle matPrefix [for]=\"datetimepicker\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #datetimepicker\n [showSpinners]=\"true\"\n [showSeconds]=\"false\"\n [stepHour]=\"1\"\n [stepMinute]=\"5\"\n [color]=\"'primary'\"\n [enableMeridian]=\"false\">\n </ngx-mat-datetime-picker>\n </mat-form-field>\n <mat-form-field fxLayout=\"row\" fxLayoutAlign=\" center\" fxFlex *ngSwitchCase=\"'number'\">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput type=\"number\" [formControl]=\"formControls[i]\">\n </mat-form-field>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngSwitchCase=\"'boolean'\">\n <mat-slide-toggle color=\"primary\" [formControl]=\"formControls[i]\">\n {{header.title | translate}}\n </mat-slide-toggle>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center start\" *ngSwitchCase=\"'user'\">\n <mat-label>{{header.title | translate}}</mat-label>\n <button mat-stroked-button\n color=\"primary\"\n (click)=\"selectUser(i)\">\n <mat-icon>person_search</mat-icon>\n {{formControls[i].value ? formControls[i].value.fullName : ('headers.selectUser' | translate)}}\n </button>\n </div>\n <mat-form-field fxLayout=\"row\" fxLayoutAlign=\" center\" fxFlex *ngSwitchDefault>\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput [formControl]=\"formControls[i]\">\n </mat-form-field>\n </div>\n </ng-template>\n\n <ng-template #elseBlock>\n <div fxFlex></div>\n </ng-template>\n </div>\n</div>\n",
|
|
1824
|
+
providers: [
|
|
1825
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0$4 },
|
|
1826
|
+
{ provide: NGX_MAT_DATE_FORMATS, useValue: ɵ1 }
|
|
1827
|
+
],
|
|
1828
|
+
styles: [""]
|
|
1829
|
+
},] }
|
|
1830
|
+
];
|
|
1831
|
+
SearchModeComponent.ctorParameters = () => [
|
|
1832
|
+
{ type: SideMenuService }
|
|
1833
|
+
];
|
|
1834
|
+
|
|
1835
|
+
class LoadingModeComponent extends AbstractLoadingModeComponent {
|
|
1836
|
+
constructor() {
|
|
1837
|
+
super();
|
|
1838
|
+
}
|
|
1839
|
+
}
|
|
1840
|
+
LoadingModeComponent.decorators = [
|
|
1841
|
+
{ type: Component, args: [{
|
|
1842
|
+
selector: 'nc-loading-mode',
|
|
1843
|
+
template: "<div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\" center\">\n <div *ngFor=\"let header of headerService.headerState.selectedHeaders$ | async; let i = index\" fxFlex\n [fxHide.lt-xl]=\"i >= 4\"\n [fxHide.lt-lg]=\"i >= 3\"\n [fxHide.lt-md]=\"i >= 2\"\n [fxHide.lt-sm]=\"i >= 1\" [ngStyle]=\"{'min-width': getMinWidth()}\">\n <div class=\"phl-item\">\n <div class=\"phl-row\" fxLayoutAlign=\"start center\">\n <div class=\"phl-col\">\n </div>\n </div>\n </div>\n </div>\n</div>\n",
|
|
1844
|
+
styles: [".phl-row{width:100%;flex-wrap:wrap}.phl-col{height:20px;flex:0 0 45%;background-color:#ced4da;border-radius:4px}.phl-item{position:relative;display:flex;flex-wrap:wrap;overflow:hidden;background-color:#fff}.phl-item::after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));-webkit-animation:1s infinite shimmer;animation:1s infinite shimmer;content:\"\"}@-webkit-keyframes shimmer{100%{transform:translateX(100%)}}@keyframes shimmer{100%{transform:translateX(100%)}}.phl-item,.phl-item *,.phl-item::after,.phl-item::before{box-sizing:border-box}"]
|
|
1845
|
+
},] }
|
|
1846
|
+
];
|
|
1847
|
+
LoadingModeComponent.ctorParameters = () => [];
|
|
1848
|
+
|
|
1849
|
+
class HeaderComponentModule {
|
|
1850
|
+
}
|
|
1851
|
+
HeaderComponentModule.decorators = [
|
|
1852
|
+
{ type: NgModule, args: [{
|
|
1853
|
+
declarations: [
|
|
1854
|
+
HeaderComponent,
|
|
1855
|
+
SortModeComponent,
|
|
1856
|
+
SearchModeComponent,
|
|
1857
|
+
EditModeComponent,
|
|
1858
|
+
LoadingModeComponent
|
|
1859
|
+
],
|
|
1860
|
+
exports: [
|
|
1861
|
+
HeaderComponent,
|
|
1862
|
+
SortModeComponent,
|
|
1863
|
+
SearchModeComponent,
|
|
1864
|
+
EditModeComponent,
|
|
1865
|
+
LoadingModeComponent
|
|
1866
|
+
],
|
|
1867
|
+
imports: [
|
|
1868
|
+
CommonModule,
|
|
1869
|
+
MaterialModule,
|
|
1870
|
+
FlexModule,
|
|
1871
|
+
TranslateLibModule,
|
|
1872
|
+
MaterialModule,
|
|
1873
|
+
NgxMatDatetimePickerModule
|
|
1874
|
+
]
|
|
1875
|
+
},] }
|
|
1876
|
+
];
|
|
1877
|
+
|
|
1878
|
+
/*
|
|
1879
|
+
* Public API Surface of netgrif-components
|
|
1880
|
+
*/
|
|
1881
|
+
|
|
1882
|
+
class QuickPanelComponent extends AbstractQuickPanelComponent {
|
|
1883
|
+
constructor(_select, _paperView) {
|
|
1884
|
+
super(_select, _paperView);
|
|
1885
|
+
this._select = _select;
|
|
1886
|
+
this._paperView = _paperView;
|
|
1887
|
+
}
|
|
1888
|
+
}
|
|
1889
|
+
QuickPanelComponent.ctorParameters = () => [
|
|
1890
|
+
{ type: LanguageService },
|
|
1891
|
+
{ type: PaperViewService }
|
|
1892
|
+
];
|
|
1893
|
+
QuickPanelComponent.decorators = [
|
|
1894
|
+
{ type: Component, args: [{
|
|
1895
|
+
selector: 'nc-quick-panel',
|
|
1896
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"quick-panel\" [style.width.px]=\"width\">\n <nc-language-selector *ngIf=\"items.includes('language')\" [language]=\"getLang()\"></nc-language-selector>\n <nc-internal-link *ngIf=\"items.includes('settings')\" icon=\"settings\" link=\"/settings\"></nc-internal-link>\n <nc-logout-shortcut *ngIf=\"items.includes('logout')\"></nc-logout-shortcut>\n\n <button mat-icon-button [matMenuTriggerFor]=\"quickPanelMoreMenu\">\n <mat-icon class=\"quick-panel-more-icon\">more_vert</mat-icon>\n </button>\n</div>\n<mat-menu #quickPanelMoreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"setPaperView()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"isPaperView()\">cancel</mat-icon>\n <mat-icon *ngIf=\"!isPaperView()\">check</mat-icon>\n <span>{{isPaperView() ? 'Disable' : 'Enable'}} Paper View</span>\n </button>\n</mat-menu>\n",
|
|
1897
|
+
styles: [".quick-panel{height:62px;padding:8px}.quick-panel-more-icon{text-align:center;font-size:24px}"]
|
|
1898
|
+
},] }
|
|
1899
|
+
];
|
|
1900
|
+
QuickPanelComponent.ctorParameters = () => [
|
|
1901
|
+
{ type: LanguageService },
|
|
1902
|
+
{ type: PaperViewService }
|
|
1903
|
+
];
|
|
1904
|
+
|
|
1905
|
+
class LogoutShortcutComponent extends AbstractLogoutShortcutComponent {
|
|
1906
|
+
constructor(_user, _log, _config, _router) {
|
|
1907
|
+
super(_user, _log, _config, _router);
|
|
1908
|
+
this._user = _user;
|
|
1909
|
+
this._log = _log;
|
|
1910
|
+
this._config = _config;
|
|
1911
|
+
this._router = _router;
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1914
|
+
LogoutShortcutComponent.ctorParameters = () => [
|
|
1915
|
+
{ type: UserService },
|
|
1916
|
+
{ type: LoggerService },
|
|
1917
|
+
{ type: ConfigurationService },
|
|
1918
|
+
{ type: Router }
|
|
1919
|
+
];
|
|
1920
|
+
LogoutShortcutComponent.decorators = [
|
|
1921
|
+
{ type: Component, args: [{
|
|
1922
|
+
selector: 'nc-logout-shortcut',
|
|
1923
|
+
template: "<button mat-icon-button (click)=\"logout()\">\n <mat-icon class=\"logout-icon\">exit_to_app</mat-icon>\n</button>\n",
|
|
1924
|
+
styles: [".logout-icon{font-size:24px;text-align:center;cursor:pointer}"]
|
|
1925
|
+
},] }
|
|
1926
|
+
];
|
|
1927
|
+
LogoutShortcutComponent.ctorParameters = () => [
|
|
1928
|
+
{ type: UserService },
|
|
1929
|
+
{ type: LoggerService },
|
|
1930
|
+
{ type: ConfigurationService },
|
|
1931
|
+
{ type: Router }
|
|
1932
|
+
];
|
|
1933
|
+
|
|
1934
|
+
class LanguageSelectorComponent extends AbstractLanguageSelectorComponent {
|
|
1935
|
+
constructor(_select) {
|
|
1936
|
+
super(_select);
|
|
1937
|
+
this._select = _select;
|
|
1938
|
+
this.skFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABAElEQVRYhWP4//8/w0DiAbV81AGjDkB2wECB' +
|
|
1939
|
+
'UQeMOgC/A34fO4ET08UBb2VU4BgE3mkZwfn/Pn6kngO4/Rb9R8dNNSvAFn2tb4H7GESD+CDxxrxZGHpIxXgdALIA5oBPodFgB4BoujsA5Os/V66' +
|
|
1940
|
+
'BHQCiQXy6OKC5aytGGkDmg6KIpg6wzN/y/6GN+/8a0+T/8dZF/7n8FoJpEP+BrtV/j6qdtHUACJf27gVbjI5B4pRajuKAdzKq/7HhDxYO/0vQHJ' +
|
|
1941
|
+
'HatO3/R3c/rOpJxQQdAMLvtYz/r22c+98dGOTr+leD+dSwnGgHIIcGtSwmywG0wKMOGDwOGEg86oBRBwy4AwD9AXxVUM8swgAAAABJRU5ErkJgg' +
|
|
1942
|
+
'g==';
|
|
1943
|
+
this.deFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAPElEQVRYw+3WIREAMADDwPjXNk8ZnIQOBIQ/' +
|
|
1944
|
+
'6hWVZQQI8AUAcFGAAAHeDoCTAgT4B3BwUoAAAXrFAQIoF+hFdQp+ds+vAAAAAElFTkSuQmCC';
|
|
1945
|
+
this.gbFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByElEQVRYw+2WvUvDUBTFA04u7VTo0sGpf4Ao' +
|
|
1946
|
+
'1L2L4FApdHN01slBcFIEJ0EcFDqqFaGubkJdtIhVKWhBobjZwc5+NMeeSNI0vOTdpmId8uBt7+N3Ts69LwYAY5TTiAAigH8B8Fwo4LPVwvtHB6u' +
|
|
1947
|
+
'7VYxN7cOY3AucpgnU4nFcW0cAqdkD7Z7FjQpeNrdwn0rhrVSCA9BcWsZtIoF2uWwddlV/RXr++NcAJuYOcX5SwUMmg6dczhL71TF7ALysenSGej' +
|
|
1948
|
+
'oNqRtSAIVqPDbbmF447QFwIS9a276A1A0dgJ/q9eINxmeK1po+AHv2uZHP+7oRBBCk2n2XEkDqhgpAoloEIHHDC7CycylSPRCA1427ZNJxg8MN0' +
|
|
1949
|
+
'MhmRaqVAAg53AAhxw9ALRazDvrr6QCM4nKKHvoTWAd1P0OYYZqQhZBBYqAYLAaMQWPgVAAMKIPKwDK4ujdFC8ASYilxsLRYYiw1lpwXgKXJEiUk' +
|
|
1950
|
+
'S5alyxIOelN8AVSq2VzYZNhs2HS8AHbfYLOy3WATC3JDCeCnmu3VXuMHYPcNqRt9ADrV7o1BAO4uqnPDAZCoHhRA6Ub3qXe74QBIVIcB0LnhAEh' +
|
|
1951
|
+
'UDwPg50b0VxwBRACc37+H2GuakEPwAAAAAElFTkSuQmCC';
|
|
1952
|
+
}
|
|
1953
|
+
getFlag(flagCode) {
|
|
1954
|
+
return flagCode === 'sk' ? this.skFlag : (flagCode === 'gb' ? this.gbFlag : this.deFlag);
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
LanguageSelectorComponent.ctorParameters = () => [
|
|
1958
|
+
{ type: LanguageService }
|
|
1959
|
+
];
|
|
1960
|
+
LanguageSelectorComponent.decorators = [
|
|
1961
|
+
{ type: Component, args: [{
|
|
1962
|
+
selector: 'nc-language-selector',
|
|
1963
|
+
template: "<mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let lang of langMenuItems\" mat-menu-item (click)=\"setLang(lang.key)\" fxLayout=\"row\"\n fxLayoutAlign=\"start center\" [style.backgroundColor]=\"lang.key === language ? 'rgba(253,151,31,0.1)':''\">\n <img [src]='getFlag(flagCode(lang.key))' alt=\"Country icon\" class=\"icon-small-dimensions\">\n <span class=\"margin-left-default\">{{'toolbar.menu.' + lang.value | translate}}</span>\n </button>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <img [src]='getFlag(flagCountryCode)'\n alt=\"Country icon\" class=\"icon-medium-dimensions\">\n</button>\n",
|
|
1964
|
+
styles: [".icon-small-dimensions{width:24px;height:24px}.margin-left-default{margin-left:8px}.icon-medium-dimensions{width:32px;height:32px}"]
|
|
1965
|
+
},] }
|
|
1966
|
+
];
|
|
1967
|
+
LanguageSelectorComponent.ctorParameters = () => [
|
|
1968
|
+
{ type: LanguageService }
|
|
1969
|
+
];
|
|
1970
|
+
|
|
1971
|
+
class InternalLinkComponent extends AbstractInternalLinkComponent {
|
|
1972
|
+
constructor() {
|
|
1973
|
+
super();
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1976
|
+
InternalLinkComponent.decorators = [
|
|
1977
|
+
{ type: Component, args: [{
|
|
1978
|
+
selector: 'nc-internal-link',
|
|
1979
|
+
template: "<button mat-icon-button [routerLink]=\"link\">\n <mat-icon class=\"internal-link-icon\">{{icon}}</mat-icon>\n</button>\n",
|
|
1980
|
+
styles: [".internal-link-icon{font-size:24px;text-align:center;vertical-align:center;cursor:pointer;outline:0!important}"]
|
|
1981
|
+
},] }
|
|
1982
|
+
];
|
|
1983
|
+
InternalLinkComponent.ctorParameters = () => [];
|
|
1984
|
+
|
|
1985
|
+
class QuickPanelComponentModule {
|
|
1986
|
+
}
|
|
1987
|
+
QuickPanelComponentModule.decorators = [
|
|
1988
|
+
{ type: NgModule, args: [{
|
|
1989
|
+
declarations: [
|
|
1990
|
+
QuickPanelComponent,
|
|
1991
|
+
LogoutShortcutComponent,
|
|
1992
|
+
LanguageSelectorComponent,
|
|
1993
|
+
InternalLinkComponent
|
|
1994
|
+
],
|
|
1995
|
+
exports: [
|
|
1996
|
+
QuickPanelComponent,
|
|
1997
|
+
LogoutShortcutComponent,
|
|
1998
|
+
LanguageSelectorComponent,
|
|
1999
|
+
InternalLinkComponent
|
|
2000
|
+
],
|
|
2001
|
+
imports: [
|
|
2002
|
+
CommonModule,
|
|
2003
|
+
RouterModule,
|
|
2004
|
+
MaterialModule,
|
|
2005
|
+
TranslateLibModule
|
|
2006
|
+
]
|
|
2007
|
+
},] }
|
|
2008
|
+
];
|
|
2009
|
+
|
|
2010
|
+
/* MODULES */
|
|
2011
|
+
/* SERVICES */
|
|
2012
|
+
|
|
2013
|
+
class NavigationDrawerComponent extends AbstractNavigationDrawerComponent {
|
|
2014
|
+
constructor(breakpoint, _log, userPreferenceService) {
|
|
2015
|
+
super(breakpoint, _log, userPreferenceService);
|
|
2016
|
+
this.breakpoint = breakpoint;
|
|
2017
|
+
this._log = _log;
|
|
2018
|
+
this.userPreferenceService = userPreferenceService;
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
NavigationDrawerComponent.ctorParameters = () => [
|
|
2022
|
+
{ type: BreakpointObserver },
|
|
2023
|
+
{ type: LoggerService },
|
|
2024
|
+
{ type: UserPreferenceService }
|
|
2025
|
+
];
|
|
2026
|
+
NavigationDrawerComponent.decorators = [
|
|
2027
|
+
{ type: Component, args: [{
|
|
2028
|
+
selector: 'nc-navigation-drawer',
|
|
2029
|
+
template: "<mat-sidenav-container class=\"drawer-container\" (panright)=\"swipeRight()\" (panleft)=\"swipeLeft()\" autosize>\n <mat-sidenav #sidenav [mode]=\"config.mode\" [(opened)]=\"opened\" position=\"start\"\n [disableClose]=\"config.disableClose\" class=\"drawer-content mat-elevation-z10\"\n mwlResizable\n [style.width.px]=\"width\"\n [resizeCursorPrecision]=\"10\"\n [resizeEdges]=\"{ right: true }\"\n (resizing)=\"onResizeEvent($event)\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <nc-user-card *ngIf=\"showUser\" [user]=\"user\" mode=\"full\" [contentWidth]=\"contentWidth\"></nc-user-card>\n <mat-divider *ngIf=\"showUser\" class=\"drawer-divider\"></mat-divider>\n\n <nc-quick-panel *ngIf=\"showQuickPanel\" [items]=\"quickPanelItems\" [contentWidth]=\"contentWidth\"></nc-quick-panel>\n <mat-divider *ngIf=\"showQuickPanel\" class=\"drawer-divider\"></mat-divider>\n\n <nc-navigation-tree *ngIf=\"navigation\" [contentWidth]=\"contentWidth\"></nc-navigation-tree>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n",
|
|
2030
|
+
styles: [".drawer-container{height:100%}.drawer-content{min-width:200px;outline:0!important}.mat-drawer-side{border-right:0}mat-divider.drawer-divider{width:90%}"]
|
|
2031
|
+
},] }
|
|
2032
|
+
];
|
|
2033
|
+
NavigationDrawerComponent.ctorParameters = () => [
|
|
2034
|
+
{ type: BreakpointObserver },
|
|
2035
|
+
{ type: LoggerService },
|
|
2036
|
+
{ type: UserPreferenceService }
|
|
2037
|
+
];
|
|
2038
|
+
|
|
2039
|
+
const railAnimation = trigger('transform', [
|
|
2040
|
+
state('expand', style({
|
|
2041
|
+
width: '184px',
|
|
2042
|
+
'min-width': '184px',
|
|
2043
|
+
padding: '8px'
|
|
2044
|
+
})),
|
|
2045
|
+
state('collapse', style({
|
|
2046
|
+
width: '48px',
|
|
2047
|
+
'min-width': '48px',
|
|
2048
|
+
padding: '4px'
|
|
2049
|
+
})),
|
|
2050
|
+
transition('expand <=> collapse', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
|
|
2051
|
+
]);
|
|
2052
|
+
const railContentAnimation = trigger('transformContent', [
|
|
2053
|
+
state('shrink', style({
|
|
2054
|
+
'margin-left': '185px'
|
|
2055
|
+
})),
|
|
2056
|
+
state('grow', style({
|
|
2057
|
+
'margin-left': '49px'
|
|
2058
|
+
})),
|
|
2059
|
+
transition('shrink <=> grow', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
|
|
2060
|
+
]);
|
|
2061
|
+
class NavigationRailComponent extends AbstractNavigationRailComponent {
|
|
2062
|
+
constructor() {
|
|
2063
|
+
super();
|
|
2064
|
+
}
|
|
2065
|
+
}
|
|
2066
|
+
NavigationRailComponent.decorators = [
|
|
2067
|
+
{ type: Component, args: [{
|
|
2068
|
+
selector: 'nc-navigation-rail',
|
|
2069
|
+
template: "<mat-sidenav-container class=\"drawer-container\">\n <mat-sidenav #sideRail mode=\"side\" opened=\"true\" position=\"start\" disableClose=\"true\"\n class=\"drawer-content mat-elevation-z16\"\n (mouseenter)=\"expandOnHover && open()\"\n (mouseleave)=\"expandOnHover && close()\">\n\n <div [@transform]=\"expanded ? 'expand' : 'collapse'\">\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start start\" fxFlex>\n <div fxLayout=\"row\">\n <mat-icon>account_circle</mat-icon>\n <span *ngIf=\"expanded\" class=\"margin-left-default\">User</span>\n </div>\n <div fxLayout=\"row\">\n <mat-icon>assignment</mat-icon>\n <span *ngIf=\"expanded\" class=\"margin-left-default\">Report</span>\n </div>\n <div fxLayout=\"row\">\n <mat-icon>bug_report</mat-icon>\n <span *ngIf=\"expanded\" class=\"margin-left-default\">Bugs</span>\n </div>\n <div fxLayout=\"row\">\n <mat-icon>fingerprint</mat-icon>\n <span *ngIf=\"expanded\" class=\"margin-left-default\">Security</span>\n </div>\n </div>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content [@transformContent]=\"expanded ? 'shrink' : 'grow'\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n\n</mat-sidenav-container>\n",
|
|
2070
|
+
animations: [railAnimation, railContentAnimation],
|
|
2071
|
+
styles: [".margin-left-default{margin-left:8px}"]
|
|
2072
|
+
},] }
|
|
2073
|
+
];
|
|
2074
|
+
NavigationRailComponent.ctorParameters = () => [];
|
|
2075
|
+
|
|
2076
|
+
class NavigationTreeComponent extends AbstractNavigationTreeComponent {
|
|
2077
|
+
constructor(config, router, log, userService, roleGuard, authorityGuard, groupGuard, activeGroupService, taskResourceService, languageService, navigationRouteProvider) {
|
|
2078
|
+
super(config, router, log, userService, roleGuard, authorityGuard, groupGuard, activeGroupService, taskResourceService, languageService, navigationRouteProvider);
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
NavigationTreeComponent.ctorParameters = () => [
|
|
2082
|
+
{ type: ConfigurationService },
|
|
2083
|
+
{ type: Router },
|
|
2084
|
+
{ type: LoggerService },
|
|
2085
|
+
{ type: UserService },
|
|
2086
|
+
{ type: RoleGuardService },
|
|
2087
|
+
{ type: AuthorityGuardService },
|
|
2088
|
+
{ type: GroupGuardService },
|
|
2089
|
+
{ type: ActiveGroupService },
|
|
2090
|
+
{ type: TaskResourceService },
|
|
2091
|
+
{ type: LanguageService },
|
|
2092
|
+
{ type: DynamicNavigationRouteProviderService }
|
|
2093
|
+
];
|
|
2094
|
+
NavigationTreeComponent.decorators = [
|
|
2095
|
+
{ type: Component, args: [{
|
|
2096
|
+
selector: 'nc-navigation-tree',
|
|
2097
|
+
template: "<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\" [style.width.px]=\"width\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" [routerLink]=\"node.url\" routerLinkActive=\"active-navigation-route\"\n matTreeNodeToggle matRipple class=\"tree-node\">\n <button *ngIf=\"node.level >= 1\" mat-icon-button disabled class=\"margin-component\"></button>\n <button *ngIf=\"node.level >= 2\" mat-icon-button disabled class=\"margin-component\"></button>\n <mat-icon color=\"primary\" class=\"tree-node-icon\">{{node.icon}}</mat-icon>\n {{node.translate ? (node.name | translate) : node.name}}\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\n <div class=\"mat-tree-node tree-node\" matTreeNodeToggle matRipple\n [class.bottom-shadow]=\"treeControl.isExpanded(node)\">\n <button *ngIf=\"node.level >= 1\" mat-icon-button disabled class=\"margin-component\"></button>\n <button *ngIf=\"node.level >= 2\" mat-icon-button disabled class=\"margin-component\"></button>\n\n <mat-icon color=\"primary\" class=\"tree-node-icon\">{{node.icon}}</mat-icon>\n {{node.translate ? (node.name | translate) : node.name}}\n\n <div fxFlex></div>\n <button mat-icon-button class=\"nested-tree-expansion-icon\">\n <mat-icon>\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n </div>\n <div [class.nested-tree-invisible]=\"!treeControl.isExpanded(node)\" class=\"darker-background\">\n <ng-container matTreeNodeOutlet></ng-container>\n </div>\n </mat-nested-tree-node>\n</mat-tree>\n",
|
|
2098
|
+
styles: [".navigation-tree{outline:0!important}.nested-tree-invisible{display:none}.darker-background{background-color:rgba(0,0,0,.05)}.bottom-shadow{box-shadow:0 2px 4px -4px rgba(0,0,0,.2),0 4px 5px -3px rgba(0,0,0,.14),0 6px 10px -5px rgba(0,0,0,.12)}.tree-node{outline:0!important;cursor:pointer;padding:4px 12px}.tree-node mat-icon.tree-node-icon{line-height:40px;height:40px;width:24px;margin-right:4px}.tree-node .margin-component{width:8px;margin-right:4px}.nested-tree-expansion-icon{width:24px}"]
|
|
2099
|
+
},] }
|
|
2100
|
+
];
|
|
2101
|
+
NavigationTreeComponent.ctorParameters = () => [
|
|
2102
|
+
{ type: ConfigurationService },
|
|
2103
|
+
{ type: Router },
|
|
2104
|
+
{ type: LoggerService },
|
|
2105
|
+
{ type: UserService },
|
|
2106
|
+
{ type: RoleGuardService },
|
|
2107
|
+
{ type: AuthorityGuardService },
|
|
2108
|
+
{ type: GroupGuardService },
|
|
2109
|
+
{ type: ActiveGroupService },
|
|
2110
|
+
{ type: TaskResourceService },
|
|
2111
|
+
{ type: LanguageService },
|
|
2112
|
+
{ type: DynamicNavigationRouteProviderService }
|
|
2113
|
+
];
|
|
2114
|
+
|
|
2115
|
+
class UserCardComponent extends AbstractUserCardComponent {
|
|
2116
|
+
constructor(_injector) {
|
|
2117
|
+
super(_injector);
|
|
2118
|
+
this._injector = _injector;
|
|
2119
|
+
}
|
|
2120
|
+
}
|
|
2121
|
+
UserCardComponent.ctorParameters = () => [
|
|
2122
|
+
{ type: Injector }
|
|
2123
|
+
];
|
|
2124
|
+
UserCardComponent.decorators = [
|
|
2125
|
+
{ type: Component, args: [{
|
|
2126
|
+
selector: 'nc-user-card',
|
|
2127
|
+
template: "<div [ngSwitch]=\"mode\" class=\"no-outline\">\n <div *ngSwitchCase=\"'full'\" #fullShowcase fxLayout=\"column\" fxLayoutAlign=\"start center\"\n class=\"full-showcase-container no-outline margin-bottom-x2\" [style.width.px]=\"width\"\n [routerLink]=\"link\">\n <ng-template [ngIf]=\"!userBannerExists()\">\n <div class=\"banner-wrapper mat-elevation-z6\" matRipple [matRippleTrigger]=\"fullShowcase\">\n <div [style.backgroundImage]=\"'url(assets/netgrif-cubes-upper-left.png)'\" class=\"cube-upper-left\">\n <div [style.backgroundImage]=\"'url(assets/netgrif-cubes-down-right.png)'\" class=\"cube-down-right\"></div>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"userBannerExists()\">\n <div [style.backgroundImage]=\"'url('+userBanner+')'\" class=\"full-width user-banner mat-elevation-z6\" matRipple\n [matRippleTrigger]=\"fullShowcase\"></div>\n </ng-template>\n <div class=\"user-avatar-large margin-bottom-default mat-elevation-z6\" matRipple\n [matRippleTrigger]=\"fullShowcase\">\n <img [src]=\"userAvatar\" alt=\"user avatar\" class=\"full-width full-height\">\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"full-width full-showcase-text padding-default\">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase=\"'horizontal'\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n class=\"horizontal-showcase-container no-outline padding-default\" [routerLink]=\"link\" matRipple>\n <div class=\"user-avatar-large mat-elevation-z6\">\n <img [src]=\"userAvatar\" alt=\"user avatar\" class=\"full-width full-height\">\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"full-width full-showcase-text\">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase=\"'vertical'\" fxLayout=\"column\" fxLayoutAlign=\"start center\"\n class=\"vertical-showcase-container no-outline padding-default\"\n [routerLink]=\"link\" matRipple>\n <div class=\"user-avatar-large mat-elevation-z6\">\n <img [src]=\"userAvatar\" alt=\"user avatar\" class=\"full-width full-height\">\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"full-width full-showcase-text\">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase=\"'icon'\" [routerLink]=\"link\">\n <div class=\"mat-elevation-z6 no-outline\"\n [ngClass]=\"{'user-avatar-large':iconStyle === 'large', 'user-avatar-small':iconStyle==='small'}\"\n [matTooltip]=\"user.fullName+'\\n'+user.email\"\n matTooltipHideDelay=\"1000\"\n [matTooltipPosition]=\"tooltipPosition\"\n matRipple>\n <img [src]=\"userAvatar\" alt=\"user avatar\" class=\"full-width full-height\">\n </div>\n </div>\n <div *ngSwitchDefault>\n <span>{{ 'side-menu.user.showcase' | translate}}</span>\n </div>\n</div>\n\n\n",
|
|
2128
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.full-showcase-container .user-banner{height:100px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.full-showcase-container .user-avatar-large{margin-top:-32px}.banner-wrapper{height:100px;width:100%}.cube-upper-left{width:100%;height:100%;background-repeat:no-repeat;background-size:auto 80px}.cube-down-right{background-repeat:no-repeat;background-position-x:right;background-position-y:bottom;background-size:auto 30px;min-width:100%;min-height:100%;padding:0;margin:0}.user-avatar-large{width:64px;height:64px;border-radius:64px}.user-avatar-small{width:46px;height:46px;border-radius:46px}.full-showcase-text{text-align:center}.full-showcase-text span{font-size:12px;color:#616161}.full-showcase-text span:first-child{font-size:20px;color:#424242;margin-bottom:4px}.horizontal-showcase-container{height:80px;border:1px solid #fd971f;border-radius:6px}.horizontal-showcase-container .user-avatar-large{margin-right:8px}.vertical-showcase-container{width:160px;border:1px solid #f0ad4e;border-radius:6px;white-space:pre-line}.vertical-showcase-container .user-avatar-large{margin-bottom:8px}::ng-deep .mat-tooltip{white-space:pre-line!important;text-align:center}.no-outline{outline:0!important}"]
|
|
2129
|
+
},] }
|
|
2130
|
+
];
|
|
2131
|
+
UserCardComponent.ctorParameters = () => [
|
|
2132
|
+
{ type: Injector }
|
|
2133
|
+
];
|
|
2134
|
+
|
|
2135
|
+
class UserComponentModule {
|
|
2136
|
+
}
|
|
2137
|
+
UserComponentModule.decorators = [
|
|
2138
|
+
{ type: NgModule, args: [{
|
|
2139
|
+
declarations: [UserCardComponent],
|
|
2140
|
+
exports: [
|
|
2141
|
+
UserCardComponent
|
|
2142
|
+
],
|
|
2143
|
+
imports: [
|
|
2144
|
+
CommonModule,
|
|
2145
|
+
RouterModule,
|
|
2146
|
+
MaterialModule,
|
|
2147
|
+
TranslateLibModule
|
|
2148
|
+
]
|
|
2149
|
+
},] }
|
|
2150
|
+
];
|
|
2151
|
+
|
|
2152
|
+
class GroupNavigationComponentResolverComponent extends AbstractGroupNavigationComponentResolverComponent {
|
|
2153
|
+
constructor(componentResolverService, parentInjector, activatedRoute, router, log) {
|
|
2154
|
+
super(componentResolverService, parentInjector, activatedRoute, router, log);
|
|
2155
|
+
}
|
|
2156
|
+
}
|
|
2157
|
+
GroupNavigationComponentResolverComponent.ctorParameters = () => [
|
|
2158
|
+
{ type: GroupNavigationComponentResolverService },
|
|
2159
|
+
{ type: Injector },
|
|
2160
|
+
{ type: ActivatedRoute },
|
|
2161
|
+
{ type: Router },
|
|
2162
|
+
{ type: LoggerService }
|
|
2163
|
+
];
|
|
2164
|
+
GroupNavigationComponentResolverComponent.decorators = [
|
|
2165
|
+
{ type: Component, args: [{
|
|
2166
|
+
selector: 'nc-group-navigation-component-resolver',
|
|
2167
|
+
template: "<div *ngIf=\"initialized || errored; else loading\" class=\"full-height\">\n <div *ngIf=\"initialized; else displayError\" class=\"full-height\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n</div>\n\n<ng-template #loading>\n <mat-progress-spinner></mat-progress-spinner>\n</ng-template>\n\n<ng-template #displayError>\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\" class=\"margin-bottom-error-icon\">cancel</mat-icon>\n <span class=\"font-size-20\">{{'dynamicNavigation.couldNotResolveView' | translate}}</span>\n </div>\n</ng-template>\n",
|
|
2168
|
+
styles: [".full-height{height:100%}.margin-bottom-error-icon{margin-bottom:8px}.font-size-20{font-size:20px}"]
|
|
2169
|
+
},] }
|
|
2170
|
+
];
|
|
2171
|
+
GroupNavigationComponentResolverComponent.ctorParameters = () => [
|
|
2172
|
+
{ type: GroupNavigationComponentResolverService },
|
|
2173
|
+
{ type: Injector },
|
|
2174
|
+
{ type: ActivatedRoute },
|
|
2175
|
+
{ type: Router },
|
|
2176
|
+
{ type: LoggerService }
|
|
2177
|
+
];
|
|
2178
|
+
|
|
2179
|
+
/**
|
|
2180
|
+
* Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into a {@link BaseFilter} instance
|
|
2181
|
+
* @param extractionService
|
|
2182
|
+
* @param tabData the injected data containing the navigation item case task data
|
|
2183
|
+
*/
|
|
2184
|
+
function filterCaseTabbedDataFilterFactory(extractionService, tabData) {
|
|
2185
|
+
return navigationItemTaskFilterFactory(extractionService, tabData.navigationItemTaskData);
|
|
2186
|
+
}
|
|
2187
|
+
/**
|
|
2188
|
+
* Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into an {@link AllowedNetsService}
|
|
2189
|
+
* instance
|
|
2190
|
+
* @param allowedNetsServiceFactory
|
|
2191
|
+
* @param baseAllowedNets
|
|
2192
|
+
* @param tabData the injected data containing the navigation item case task data
|
|
2193
|
+
*/
|
|
2194
|
+
function filterCaseTabbedDataAllowedNetsServiceFactory(allowedNetsServiceFactory, baseAllowedNets, tabData) {
|
|
2195
|
+
return navigationItemTaskAllowedNetsServiceFactory(allowedNetsServiceFactory, baseAllowedNets, tabData.navigationItemTaskData);
|
|
2196
|
+
}
|
|
2197
|
+
/**
|
|
2198
|
+
* Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into an array of {@link Category} classes
|
|
2199
|
+
* @param categoryResolverService
|
|
2200
|
+
* @param tabData the injected data containing the navigation item case task data
|
|
2201
|
+
* @param defaultCaseSearchCategories the default case search categories
|
|
2202
|
+
* @param defaultTaskSearchCategories the default task search categories
|
|
2203
|
+
*/
|
|
2204
|
+
function filterCaseTabbedDataSearchCategoriesFactory(categoryResolverService, tabData, defaultCaseSearchCategories, defaultTaskSearchCategories) {
|
|
2205
|
+
return navigationItemTaskCategoryFactory(categoryResolverService, tabData.navigationItemTaskData, defaultCaseSearchCategories, defaultTaskSearchCategories);
|
|
2206
|
+
}
|
|
2207
|
+
|
|
2208
|
+
const ɵ0$5 = filterCaseTabbedDataFilterFactory, ɵ1$1 = filterCaseTabbedDataAllowedNetsServiceFactory, ɵ2 = filterCaseTabbedDataSearchCategoriesFactory;
|
|
2209
|
+
class DefaultTabbedCaseViewComponent extends TabbedCaseView {
|
|
2210
|
+
constructor(caseViewService, loggerService, injectedTabData) {
|
|
2211
|
+
super(caseViewService, loggerService, injectedTabData);
|
|
2212
|
+
}
|
|
2213
|
+
ngAfterViewInit() {
|
|
2214
|
+
super.initializeHeader(this.caseHeaderComponent);
|
|
2215
|
+
}
|
|
2216
|
+
loadFilter(filterData) {
|
|
2217
|
+
this._injectedTabData.tabViewRef.openTab({
|
|
2218
|
+
label: {
|
|
2219
|
+
text: filterData.filter.title
|
|
2220
|
+
},
|
|
2221
|
+
canBeClosed: true,
|
|
2222
|
+
tabContentComponent: DefaultTabbedCaseViewComponent,
|
|
2223
|
+
injectedObject: Object.assign(Object.assign({}, this._injectedTabData), { filterCase: filterData.filterCase }),
|
|
2224
|
+
order: this._injectedTabData.tabViewOrder,
|
|
2225
|
+
parentUniqueId: this._injectedTabData.tabUniqueId
|
|
2226
|
+
}, this._autoswitchToTaskTab, this._openExistingTab);
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
DefaultTabbedCaseViewComponent.ctorParameters = () => [
|
|
2230
|
+
{ type: CaseViewService },
|
|
2231
|
+
{ type: LoggerService },
|
|
2232
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
|
|
2233
|
+
];
|
|
2234
|
+
DefaultTabbedCaseViewComponent.decorators = [
|
|
2235
|
+
{ type: Component, args: [{
|
|
2236
|
+
selector: 'nc-default-tabbed-case-view',
|
|
2237
|
+
template: "<div class=\"case-view-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <mat-card class=\"case-view-search-container\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <div fxLayoutAlign=\"start center\" fxFlex>\n <nc-search class=\"search-width\" (filterLoaded)=\"loadFilter($event)\"></nc-search>\n </div>\n <div fxLayoutAlign=\"end center\">\n <button mat-mini-fab color=\"primary\" (click)=\"createNewCase()\">\n <mat-icon class=\"net-upload\" aria-hidden=\"false\">add</mat-icon>\n </button>\n </div>\n </div>\n </mat-card>\n\n <nc-header #header [type]=\"headerType\" class=\"case-header-padding\"></nc-header>\n\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\"\n (caseClick)=\"handleCaseClick($event)\" fxFlex></nc-case-list>\n</div>\n",
|
|
2238
|
+
providers: [
|
|
2239
|
+
CategoryFactory,
|
|
2240
|
+
CaseViewService,
|
|
2241
|
+
SearchService,
|
|
2242
|
+
ViewIdService,
|
|
2243
|
+
{
|
|
2244
|
+
provide: NAE_BASE_FILTER,
|
|
2245
|
+
useFactory: ɵ0$5,
|
|
2246
|
+
deps: [FilterExtractionService, NAE_TAB_DATA]
|
|
2247
|
+
},
|
|
2248
|
+
{
|
|
2249
|
+
provide: AllowedNetsService,
|
|
2250
|
+
useFactory: ɵ1$1,
|
|
2251
|
+
deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_TAB_DATA]
|
|
2252
|
+
},
|
|
2253
|
+
{
|
|
2254
|
+
provide: NAE_SEARCH_CATEGORIES,
|
|
2255
|
+
useFactory: ɵ2,
|
|
2256
|
+
deps: [CategoryResolverService, NAE_TAB_DATA, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_TASK_SEARCH_CATEGORIES]
|
|
2257
|
+
},
|
|
2258
|
+
],
|
|
2259
|
+
styles: [".case-view-container{margin:16px;height:calc(100% - 32px)}.case-view-search-container{padding:16px}.case-header-padding{padding-bottom:20px;padding-top:20px}.font-size-20{font-size:20px}.search-width{width:100%}"]
|
|
2260
|
+
},] }
|
|
2261
|
+
];
|
|
2262
|
+
DefaultTabbedCaseViewComponent.ctorParameters = () => [
|
|
2263
|
+
{ type: CaseViewService },
|
|
2264
|
+
{ type: LoggerService },
|
|
2265
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
|
|
2266
|
+
];
|
|
2267
|
+
DefaultTabbedCaseViewComponent.propDecorators = {
|
|
2268
|
+
caseHeaderComponent: [{ type: ViewChild, args: ['header',] }]
|
|
2269
|
+
};
|
|
2270
|
+
|
|
2271
|
+
function baseFilterFactory(injectedTabData) {
|
|
2272
|
+
return {
|
|
2273
|
+
filter: injectedTabData.baseFilter
|
|
2274
|
+
};
|
|
2275
|
+
}
|
|
2276
|
+
const ɵ0$6 = tabbedAllowedNetsServiceFactory, ɵ1$2 = tabbedTaskViewConfigurationFactory;
|
|
2277
|
+
class DefaultTabbedTaskViewComponent extends TabbedTaskView {
|
|
2278
|
+
constructor(taskViewService, injectedTabData) {
|
|
2279
|
+
super(taskViewService, injectedTabData);
|
|
2280
|
+
}
|
|
2281
|
+
ngAfterViewInit() {
|
|
2282
|
+
this.initializeHeader(this.taskHeaderComponent);
|
|
2283
|
+
}
|
|
2284
|
+
}
|
|
2285
|
+
DefaultTabbedTaskViewComponent.ctorParameters = () => [
|
|
2286
|
+
{ type: TaskViewService },
|
|
2287
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
|
|
2288
|
+
];
|
|
2289
|
+
DefaultTabbedTaskViewComponent.decorators = [
|
|
2290
|
+
{ type: Component, args: [{
|
|
2291
|
+
selector: 'nc-default-tabbed-task-view',
|
|
2292
|
+
template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <mat-card class=\"search-panel\">\n <nc-search class=\"search-width\"></nc-search>\n </mat-card>\n <nc-header #header type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\" [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" fxFlex></nc-task-list>\n </div>\n</div>\n",
|
|
2293
|
+
providers: [
|
|
2294
|
+
CategoryFactory,
|
|
2295
|
+
TaskViewService,
|
|
2296
|
+
SearchService,
|
|
2297
|
+
ChangedFieldsService,
|
|
2298
|
+
{ provide: ViewIdService, useValue: null },
|
|
2299
|
+
{
|
|
2300
|
+
provide: NAE_BASE_FILTER,
|
|
2301
|
+
useFactory: baseFilterFactory,
|
|
2302
|
+
deps: [NAE_TAB_DATA]
|
|
2303
|
+
},
|
|
2304
|
+
{
|
|
2305
|
+
provide: AllowedNetsService,
|
|
2306
|
+
useFactory: ɵ0$6,
|
|
2307
|
+
deps: [AllowedNetsServiceFactory, NAE_TAB_DATA]
|
|
2308
|
+
},
|
|
2309
|
+
{
|
|
2310
|
+
provide: NAE_TASK_VIEW_CONFIGURATION,
|
|
2311
|
+
useFactory: ɵ1$2,
|
|
2312
|
+
deps: [NAE_TAB_DATA]
|
|
2313
|
+
}
|
|
2314
|
+
],
|
|
2315
|
+
styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:20px}.content-margin{margin:0 20px}.task-panel-padding-mini{padding-bottom:20px;padding-top:20px}.full-height{height:100%}.search-width{width:100%}"]
|
|
2316
|
+
},] }
|
|
2317
|
+
];
|
|
2318
|
+
DefaultTabbedTaskViewComponent.ctorParameters = () => [
|
|
2319
|
+
{ type: TaskViewService },
|
|
2320
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
|
|
2321
|
+
];
|
|
2322
|
+
DefaultTabbedTaskViewComponent.propDecorators = {
|
|
2323
|
+
taskHeaderComponent: [{ type: ViewChild, args: ['header',] }]
|
|
2324
|
+
};
|
|
2325
|
+
|
|
2326
|
+
const ɵ0$7 = groupNavigationViewIdSegmentFactory;
|
|
2327
|
+
class DefaultTabViewComponent {
|
|
2328
|
+
constructor(_navigationItemTaskData) {
|
|
2329
|
+
this._navigationItemTaskData = _navigationItemTaskData;
|
|
2330
|
+
const labelData = extractIconAndTitle(this._navigationItemTaskData);
|
|
2331
|
+
this.tabs = [
|
|
2332
|
+
{
|
|
2333
|
+
label: { text: labelData.name, icon: labelData.icon },
|
|
2334
|
+
canBeClosed: false,
|
|
2335
|
+
tabContentComponent: DefaultTabbedCaseViewComponent,
|
|
2336
|
+
injectedObject: {
|
|
2337
|
+
tabViewComponent: DefaultTabbedTaskViewComponent,
|
|
2338
|
+
tabViewOrder: 0,
|
|
2339
|
+
navigationItemTaskData: this._navigationItemTaskData
|
|
2340
|
+
}
|
|
2341
|
+
}
|
|
2342
|
+
];
|
|
2343
|
+
}
|
|
2344
|
+
}
|
|
2345
|
+
DefaultTabViewComponent.ctorParameters = () => [
|
|
2346
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
|
|
2347
|
+
];
|
|
2348
|
+
DefaultTabViewComponent.decorators = [
|
|
2349
|
+
{ type: Component, args: [{
|
|
2350
|
+
selector: 'nc-default-tab-view',
|
|
2351
|
+
template: "<div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"full-height\">\n <nc-tab-view [initialTabs]=\"tabs\" stretch=\"false\" class=\"full-height block\"></nc-tab-view>\n</div>\n",
|
|
2352
|
+
providers: [
|
|
2353
|
+
ViewIdService,
|
|
2354
|
+
{ provide: NAE_VIEW_ID_SEGMENT, useFactory: ɵ0$7, deps: [ActivatedRoute] }
|
|
2355
|
+
],
|
|
2356
|
+
styles: [".full-height{height:100%}.block{display:block!important}"]
|
|
2357
|
+
},] }
|
|
2358
|
+
];
|
|
2359
|
+
DefaultTabViewComponent.ctorParameters = () => [
|
|
2360
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
|
|
2361
|
+
];
|
|
2362
|
+
|
|
2363
|
+
const ɵ0$8 = groupNavigationViewIdSegmentFactory, ɵ1$3 = navigationItemTaskFilterFactory, ɵ2$1 = navigationItemTaskAllowedNetsServiceFactory, ɵ3 = navigationItemTaskCategoryFactory;
|
|
2364
|
+
class DefaultSimpleTaskViewComponent extends AbstractTaskView {
|
|
2365
|
+
constructor(taskViewService) {
|
|
2366
|
+
super(taskViewService);
|
|
2367
|
+
}
|
|
2368
|
+
ngAfterViewInit() {
|
|
2369
|
+
this.initializeHeader(this.taskHeaderComponent);
|
|
2370
|
+
}
|
|
2371
|
+
}
|
|
2372
|
+
DefaultSimpleTaskViewComponent.ctorParameters = () => [
|
|
2373
|
+
{ type: TaskViewService }
|
|
2374
|
+
];
|
|
2375
|
+
DefaultSimpleTaskViewComponent.decorators = [
|
|
2376
|
+
{ type: Component, args: [{
|
|
2377
|
+
selector: 'nc-default-simple-task-view',
|
|
2378
|
+
template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <mat-card class=\"search-panel\">\n <nc-search class=\"search-width\"></nc-search>\n </mat-card>\n <nc-header #header type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\" [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" fxFlex></nc-task-list>\n </div>\n</div>\n",
|
|
2379
|
+
providers: [
|
|
2380
|
+
CategoryFactory,
|
|
2381
|
+
TaskViewService,
|
|
2382
|
+
SearchService,
|
|
2383
|
+
ViewIdService,
|
|
2384
|
+
ChangedFieldsService,
|
|
2385
|
+
{ provide: NAE_VIEW_ID_SEGMENT, useFactory: ɵ0$8, deps: [ActivatedRoute] },
|
|
2386
|
+
{
|
|
2387
|
+
provide: NAE_BASE_FILTER,
|
|
2388
|
+
useFactory: ɵ1$3,
|
|
2389
|
+
deps: [FilterExtractionService, NAE_NAVIGATION_ITEM_TASK_DATA]
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
provide: AllowedNetsService,
|
|
2393
|
+
useFactory: ɵ2$1,
|
|
2394
|
+
deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_NAVIGATION_ITEM_TASK_DATA]
|
|
2395
|
+
},
|
|
2396
|
+
{ provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ3, deps: [
|
|
2397
|
+
CategoryResolverService,
|
|
2398
|
+
NAE_NAVIGATION_ITEM_TASK_DATA,
|
|
2399
|
+
NAE_DEFAULT_CASE_SEARCH_CATEGORIES,
|
|
2400
|
+
NAE_DEFAULT_TASK_SEARCH_CATEGORIES
|
|
2401
|
+
] },
|
|
2402
|
+
],
|
|
2403
|
+
styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:20px}.content-margin{margin:0 20px}.task-panel-padding-mini{padding-bottom:20px;padding-top:20px}.full-height{height:100%}.search-width{width:100%}"]
|
|
2404
|
+
},] }
|
|
2405
|
+
];
|
|
2406
|
+
DefaultSimpleTaskViewComponent.ctorParameters = () => [
|
|
2407
|
+
{ type: TaskViewService }
|
|
2408
|
+
];
|
|
2409
|
+
DefaultSimpleTaskViewComponent.propDecorators = {
|
|
2410
|
+
taskHeaderComponent: [{ type: ViewChild, args: ['header',] }]
|
|
2411
|
+
};
|
|
2412
|
+
|
|
2413
|
+
class DefaultGroupNavigationComponentResolverService extends GroupNavigationComponentResolverService {
|
|
2414
|
+
constructor(taskResourceService, log) {
|
|
2415
|
+
super(taskResourceService, log);
|
|
2416
|
+
}
|
|
2417
|
+
resolveViewComponent(navigationItemTaskData) {
|
|
2418
|
+
const filter = extractFilterFromData(navigationItemTaskData);
|
|
2419
|
+
if (filter === undefined) {
|
|
2420
|
+
throw new Error('Provided navigation item task data does not contain a filter field');
|
|
2421
|
+
}
|
|
2422
|
+
switch (filter.type) {
|
|
2423
|
+
case FilterType.CASE:
|
|
2424
|
+
return DefaultTabViewComponent;
|
|
2425
|
+
case FilterType.TASK:
|
|
2426
|
+
return DefaultSimpleTaskViewComponent;
|
|
2427
|
+
default:
|
|
2428
|
+
throw new Error(`Cannot resolve group navigation component from '${filter.type}' filter type`);
|
|
2429
|
+
}
|
|
2430
|
+
}
|
|
2431
|
+
}
|
|
2432
|
+
DefaultGroupNavigationComponentResolverService.ctorParameters = () => [
|
|
2433
|
+
{ type: TaskResourceService },
|
|
2434
|
+
{ type: LoggerService }
|
|
2435
|
+
];
|
|
2436
|
+
DefaultGroupNavigationComponentResolverService.decorators = [
|
|
2437
|
+
{ type: Injectable }
|
|
2438
|
+
];
|
|
2439
|
+
DefaultGroupNavigationComponentResolverService.ctorParameters = () => [
|
|
2440
|
+
{ type: TaskResourceService },
|
|
2441
|
+
{ type: LoggerService }
|
|
2442
|
+
];
|
|
2443
|
+
|
|
2444
|
+
/**
|
|
2445
|
+
* Converts search categories provided by the {@link NAE_SEARCH_CATEGORIES}
|
|
2446
|
+
* injection token in the old (pre 5.6.0) format, to the new format.
|
|
2447
|
+
*
|
|
2448
|
+
* If no search categories are provided converts the default search categories into search categories
|
|
2449
|
+
* based on the base filter filter type.
|
|
2450
|
+
*
|
|
2451
|
+
* @param categoryResolverService service for serialisation and deserialization of search categories
|
|
2452
|
+
* @param baseFilter determines the default categories used if no categories are provided, injected by the {@link NAE_BASE_FILTER}
|
|
2453
|
+
* injection token
|
|
2454
|
+
* @param defaultCaseSearchCategories the default case search categories, injected by the {@link NAE_DEFAULT_CASE_SEARCH_CATEGORIES}
|
|
2455
|
+
* injection token
|
|
2456
|
+
* @param defaultTaskSearchCategories the default task search categories, injected by the {@link NAE_DEFAULT_TASK_SEARCH_CATEGORIES}
|
|
2457
|
+
* injection token
|
|
2458
|
+
* @param naeSearchCategories optionally the search category instances, or the search category classes. Instances are converted to classes.
|
|
2459
|
+
* If no categories are provided the default ones based on the base filter filter type will be returned.
|
|
2460
|
+
* Injected by the {@link NAE_SEARCH_CATEGORIES} injection token.
|
|
2461
|
+
*/
|
|
2462
|
+
function searchCategoryConverter(categoryResolverService, baseFilter, defaultCaseSearchCategories, defaultTaskSearchCategories, naeSearchCategories = null) {
|
|
2463
|
+
if (naeSearchCategories === null) {
|
|
2464
|
+
// categories were not provided => return the defaults
|
|
2465
|
+
const type = baseFilter.filter instanceof Filter ? baseFilter.filter.type : baseFilter.filterType;
|
|
2466
|
+
if (type === FilterType.CASE) {
|
|
2467
|
+
return defaultCaseSearchCategories;
|
|
2468
|
+
}
|
|
2469
|
+
else if (type === FilterType.TASK) {
|
|
2470
|
+
return defaultTaskSearchCategories;
|
|
2471
|
+
}
|
|
2472
|
+
throw new Error(`Illegal filter type: ${type}`);
|
|
2473
|
+
}
|
|
2474
|
+
// categories were provided => convert them if necessary
|
|
2475
|
+
if (naeSearchCategories.length !== 0 && naeSearchCategories[0] instanceof Category) {
|
|
2476
|
+
return naeSearchCategories.map(c => {
|
|
2477
|
+
return categoryResolverService.toClass(categoryResolverService.serialize(c));
|
|
2478
|
+
});
|
|
2479
|
+
}
|
|
2480
|
+
return naeSearchCategories;
|
|
2481
|
+
}
|
|
2482
|
+
const ɵ0$9 = DATE_FORMAT;
|
|
2483
|
+
class SearchComponent extends AbstractSearchComponent {
|
|
2484
|
+
constructor(searchService, logger, dialogService, translate, userFilterService, allowedNetsService, viewIdService, searchCategories, configuration, filtersFilter = null, navigationItemTaskData = null) {
|
|
2485
|
+
super(searchService, logger, dialogService, translate, userFilterService, allowedNetsService, viewIdService, searchCategories, configuration, filtersFilter, navigationItemTaskData);
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
SearchComponent.ctorParameters = () => [
|
|
2489
|
+
{ type: SearchService },
|
|
2490
|
+
{ type: LoggerService },
|
|
2491
|
+
{ type: DialogService },
|
|
2492
|
+
{ type: TranslateService },
|
|
2493
|
+
{ type: UserFiltersService },
|
|
2494
|
+
{ type: AllowedNetsService },
|
|
2495
|
+
{ type: ViewIdService },
|
|
2496
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
|
|
2497
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_SEARCH_COMPONENT_CONFIGURATION,] }] },
|
|
2498
|
+
{ type: Filter, decorators: [{ type: Optional }, { type: Inject, args: [NAE_FILTERS_FILTER,] }] },
|
|
2499
|
+
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
|
|
2500
|
+
];
|
|
2501
|
+
SearchComponent.decorators = [
|
|
2502
|
+
{ type: Component, args: [{
|
|
2503
|
+
selector: 'nc-search',
|
|
2504
|
+
template: "<div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\">\n <div class=\"search-icon\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngIf=\"showSearchIcon\">\n <mat-icon [inline]=\"true\">search</mat-icon>\n </div>\n\n <div *ngIf=\"advancedSearchDisplayed; then advancedSearch; else fullTextSearch\"></div>\n\n <ng-template #advancedSearch>\n <nc-advanced-search></nc-advanced-search>\n </ng-template>\n\n <ng-template #fullTextSearch>\n <nc-fulltext-search></nc-fulltext-search>\n </ng-template>\n\n <button mat-icon-button class=\"search-buttons-margin\" *ngIf=\"showSearchToggleButton\"\n [matTooltip]=\"(advancedSearchDisplayed ? 'search.tooltip.toFullText' : 'search.tooltip.toAdvanced') | translate\"\n (click)=\"toggleSearchMode()\">\n <mat-icon>youtube_searched_for</mat-icon>\n </button>\n\n <button mat-icon-button class=\"search-buttons-margin\" *ngIf=\"advancedSearchDisplayed && showSaveFilterButton\"\n [matTooltip]=\"'search.tooltip.save' | translate\" (click)=\"saveFilter()\">\n <mat-icon>save</mat-icon>\n </button>\n\n <button mat-icon-button class=\"search-buttons-margin\" *ngIf=\"advancedSearchDisplayed && showLoadFilterButton\"\n [matTooltip]=\"'search.tooltip.load' | translate\" (click)=\"loadFilter()\">\n <mat-icon>open_in_browser</mat-icon>\n </button>\n\n <button mat-icon-button class=\"search-buttons-margin\" *ngIf=\"advancedSearchDisplayed && showAdvancedSearchHelp\"\n [matTooltip]=\"'search.tooltip.help' | translate\" (click)=\"showHelp()\">\n <mat-icon>help</mat-icon>\n </button>\n</div>\n",
|
|
2505
|
+
encapsulation: ViewEncapsulation.None,
|
|
2506
|
+
providers: [
|
|
2507
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0$9 },
|
|
2508
|
+
{
|
|
2509
|
+
provide: NAE_SEARCH_CATEGORIES,
|
|
2510
|
+
useFactory: searchCategoryConverter,
|
|
2511
|
+
deps: [
|
|
2512
|
+
CategoryResolverService,
|
|
2513
|
+
NAE_BASE_FILTER,
|
|
2514
|
+
NAE_DEFAULT_CASE_SEARCH_CATEGORIES,
|
|
2515
|
+
NAE_DEFAULT_TASK_SEARCH_CATEGORIES,
|
|
2516
|
+
[new Optional(), new SkipSelf(), NAE_SEARCH_CATEGORIES]
|
|
2517
|
+
]
|
|
2518
|
+
}
|
|
2519
|
+
],
|
|
2520
|
+
styles: [".button-margin{margin-left:8px;margin-right:8px}.clause-margin{margin-top:4px;margin-bottom:4px}.disable-error-margin .mat-form-field-wrapper{margin:0;padding-bottom:0}.search-buttons-margin{margin-left:8px}.search-icon{padding-right:8px;font-size:xx-large}.search-input{width:100%}.search-input-lg{width:60%}.search-input-md{width:80%}.search-input-sm{width:100%}"]
|
|
2521
|
+
},] }
|
|
2522
|
+
];
|
|
2523
|
+
SearchComponent.ctorParameters = () => [
|
|
2524
|
+
{ type: SearchService },
|
|
2525
|
+
{ type: LoggerService },
|
|
2526
|
+
{ type: DialogService },
|
|
2527
|
+
{ type: TranslateService },
|
|
2528
|
+
{ type: UserFiltersService },
|
|
2529
|
+
{ type: AllowedNetsService },
|
|
2530
|
+
{ type: ViewIdService },
|
|
2531
|
+
{ type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
|
|
2532
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_SEARCH_COMPONENT_CONFIGURATION,] }] },
|
|
2533
|
+
{ type: Filter, decorators: [{ type: Optional }, { type: Inject, args: [NAE_FILTERS_FILTER,] }] },
|
|
2534
|
+
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
|
|
2535
|
+
];
|
|
2536
|
+
|
|
2537
|
+
const ɵ0$a = defaultCaseSearchCategoriesFactory;
|
|
2538
|
+
/**
|
|
2539
|
+
* A component that provides the default case search categories.
|
|
2540
|
+
*
|
|
2541
|
+
* @deprecated in 5.0.0 - Use the universal {@link SearchComponent} instead and provide the {@link NAE_SEARCH_CATEGORIES} yourself
|
|
2542
|
+
* (a [factory method]{@link defaultCaseSearchCategoriesFactory} can be used).
|
|
2543
|
+
*/
|
|
2544
|
+
class CaseSearchComponent {
|
|
2545
|
+
}
|
|
2546
|
+
CaseSearchComponent.decorators = [
|
|
2547
|
+
{ type: Component, args: [{
|
|
2548
|
+
selector: 'nc-case-search',
|
|
2549
|
+
template: "<nc-search></nc-search>\n",
|
|
2550
|
+
providers: [
|
|
2551
|
+
CategoryFactory,
|
|
2552
|
+
{ provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ0$a, deps: [CategoryFactory] }
|
|
2553
|
+
],
|
|
2554
|
+
styles: [""]
|
|
2555
|
+
},] }
|
|
2556
|
+
];
|
|
2557
|
+
|
|
2558
|
+
const ɵ0$b = defaultTaskSearchCategoriesFactory;
|
|
2559
|
+
/**
|
|
2560
|
+
* A component that provides the default task search categories.
|
|
2561
|
+
*
|
|
2562
|
+
* @deprecated in 5.0.0 - Use the universal {@link SearchComponent} instead and provide the {@link NAE_SEARCH_CATEGORIES} yourself
|
|
2563
|
+
* (a [factory method]{@link defaultTaskSearchCategoriesFactory} can be used).
|
|
2564
|
+
*/
|
|
2565
|
+
class TaskSearchComponent {
|
|
2566
|
+
}
|
|
2567
|
+
TaskSearchComponent.decorators = [
|
|
2568
|
+
{ type: Component, args: [{
|
|
2569
|
+
selector: 'nc-task-search',
|
|
2570
|
+
template: "<nc-search></nc-search>\n",
|
|
2571
|
+
providers: [
|
|
2572
|
+
CategoryFactory,
|
|
2573
|
+
{ provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ0$b, deps: [CategoryFactory] }
|
|
2574
|
+
],
|
|
2575
|
+
styles: [""]
|
|
2576
|
+
},] }
|
|
2577
|
+
];
|
|
2578
|
+
|
|
2579
|
+
class FulltextSearchComponent extends AbstractFulltextSearchComponent {
|
|
2580
|
+
constructor(searchService) {
|
|
2581
|
+
super(searchService);
|
|
2582
|
+
}
|
|
2583
|
+
}
|
|
2584
|
+
FulltextSearchComponent.ctorParameters = () => [
|
|
2585
|
+
{ type: SearchService }
|
|
2586
|
+
];
|
|
2587
|
+
FulltextSearchComponent.decorators = [
|
|
2588
|
+
{ type: Component, args: [{
|
|
2589
|
+
selector: 'nc-fulltext-search',
|
|
2590
|
+
template: "<mat-form-field appearance=\"outline\" class=\"disable-error-margin\">\n <input type=\"text\" matInput\n [placeholder]=\"'search.fullText' | translate\"\n [formControl]=\"fullTextFormControl\"\n (keydown.enter)=\"$event.target.blur()\">\n</mat-form-field>\n",
|
|
2591
|
+
styles: [""]
|
|
2592
|
+
},] }
|
|
2593
|
+
];
|
|
2594
|
+
FulltextSearchComponent.ctorParameters = () => [
|
|
2595
|
+
{ type: SearchService }
|
|
2596
|
+
];
|
|
2597
|
+
|
|
2598
|
+
class SearchComponentModule {
|
|
2599
|
+
}
|
|
2600
|
+
SearchComponentModule.decorators = [
|
|
2601
|
+
{ type: NgModule, args: [{
|
|
2602
|
+
declarations: [
|
|
2603
|
+
SearchComponent,
|
|
2604
|
+
CaseSearchComponent,
|
|
2605
|
+
TaskSearchComponent,
|
|
2606
|
+
FulltextSearchComponent,
|
|
2607
|
+
],
|
|
2608
|
+
exports: [
|
|
2609
|
+
SearchComponent,
|
|
2610
|
+
CaseSearchComponent,
|
|
2611
|
+
TaskSearchComponent,
|
|
2612
|
+
],
|
|
2613
|
+
imports: [
|
|
2614
|
+
CommonModule,
|
|
2615
|
+
MaterialModule,
|
|
2616
|
+
TranslateLibModule,
|
|
2617
|
+
NgxMatDatetimePickerModule,
|
|
2618
|
+
MaterialModule,
|
|
2619
|
+
AdvancedSearchComponentModule,
|
|
2620
|
+
DefaultSearchCategoriesModule
|
|
2621
|
+
]
|
|
2622
|
+
},] }
|
|
2623
|
+
];
|
|
2624
|
+
|
|
2625
|
+
class PanelComponent extends AbstractPanelComponent {
|
|
2626
|
+
constructor(caseListFontColorService) {
|
|
2627
|
+
super(caseListFontColorService);
|
|
2628
|
+
}
|
|
2629
|
+
}
|
|
2630
|
+
PanelComponent.ctorParameters = () => [
|
|
2631
|
+
{ type: CaseListFontColorService }
|
|
2632
|
+
];
|
|
2633
|
+
PanelComponent.decorators = [
|
|
2634
|
+
{ type: Component, args: [{
|
|
2635
|
+
selector: 'nc-app-panel',
|
|
2636
|
+
template: "<mat-expansion-panel [@.disabled]=\"expansionDisabled\" hideToggle (afterExpand)=\"emitExpand()\"\n (afterCollapse)=\"emitCollapse()\" #matExpansionPanel class=\"panel-margin\"\n [ngClass]=\"{'margin-top':first, 'margin-bottom':last}\">\n <mat-expansion-panel-header (click)=\"expandPanel()\" class=\"panel-color header-padding header-min-height\"\n [ngStyle]=\"{'background': caseColor, 'color': getCaseFontColor()}\">\n <mat-panel-description *ngTemplateOutlet=\"panelHeader\">\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div *ngTemplateOutlet=\"panelContent\"></div>\n </ng-template>\n</mat-expansion-panel>\n\n",
|
|
2637
|
+
styles: [".mat-expansion-panel-header{border-bottom:1px solid rgba(0,0,0,.03);color:rgba(0,0,0,.87)}.header-padding{padding:0 16px}.header-min-height{min-height:48px!important;height:auto!important}.panel-margin{margin:0 2px}.margin-top{margin-top:2px}.margin-bottom{margin-bottom:2px}"]
|
|
2638
|
+
},] }
|
|
2639
|
+
];
|
|
2640
|
+
PanelComponent.ctorParameters = () => [
|
|
2641
|
+
{ type: CaseListFontColorService }
|
|
2642
|
+
];
|
|
2643
|
+
|
|
2644
|
+
class TaskContentComponent extends AbstractTaskContentComponent {
|
|
2645
|
+
constructor(_fieldConverter, taskContentService, _paperView, _logger, _taskEventService, config) {
|
|
2646
|
+
super(_fieldConverter, taskContentService, _paperView, _logger, _taskEventService, config);
|
|
2647
|
+
this._fieldConverter = _fieldConverter;
|
|
2648
|
+
this.taskContentService = taskContentService;
|
|
2649
|
+
this._paperView = _paperView;
|
|
2650
|
+
this._logger = _logger;
|
|
2651
|
+
this._taskEventService = _taskEventService;
|
|
2652
|
+
}
|
|
2653
|
+
}
|
|
2654
|
+
TaskContentComponent.ctorParameters = () => [
|
|
2655
|
+
{ type: FieldConverterService },
|
|
2656
|
+
{ type: TaskContentService },
|
|
2657
|
+
{ type: PaperViewService },
|
|
2658
|
+
{ type: LoggerService },
|
|
2659
|
+
{ type: TaskEventService, decorators: [{ type: Optional }] },
|
|
2660
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ASYNC_RENDERING_CONFIGURATION,] }] }
|
|
2661
|
+
];
|
|
2662
|
+
TaskContentComponent.decorators = [
|
|
2663
|
+
{ type: Component, args: [{
|
|
2664
|
+
selector: 'nc-task-content',
|
|
2665
|
+
template: "<div *ngIf=\"loading$ | async; else notLoading\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\"></mat-spinner>\n</div>\n\n<ng-template #notLoading>\n <div *ngIf=\"hasDataToDisplay$ | async; else noContentToDisplay\"\n [ngClass]=\"{'paper-view-content mat-elevation-z10': isPaperView(), 'scrolling_data': this.scrollingNeeded()}\"\n [ngStyle]=\"{'max-height': this.resolveContentHeightCss()}\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\"\n *ngFor=\"let subgrid of dataSource; trackBy: trackBySubgridFn\">\n <div [gdAreas]=\"subgrid.gridAreas\" [gdColumns]=\"subgrid.getGridColumns()\" class=\"grid-rows-auto\">\n <div *ngFor=\"let item of subgrid.content; trackBy: trackByFn\"\n [gdArea]=\"item.gridAreaId\"\n class=\"border\" fxLayout=\"row\" [fxLayoutAlign]=\"getItemAlignment(item)\">\n <nc-field-component-resolver [id]=\"item?.item?.stringId\" [gridElement]=\"item\" fxFlex></nc-field-component-resolver>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noContentToDisplay>\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"displayNoDataIcon\">{{noDataIcon ? noDataIcon : 'block'}}</mat-icon>\n <span>{{(noDataText ? noDataText : 'tasks.view.noData') | translate}}</span>\n </div>\n</ng-template>\n",
|
|
2666
|
+
styles: [".border{overflow-y:auto}.paper-view-content{padding:20px;width:22cm;border:1px solid #ddd}.scrolling_data{overflow-y:auto!important}.grid-rows-auto{-ms-grid-rows:auto;grid-template-rows:auto}"]
|
|
2667
|
+
},] }
|
|
2668
|
+
];
|
|
2669
|
+
TaskContentComponent.ctorParameters = () => [
|
|
2670
|
+
{ type: FieldConverterService },
|
|
2671
|
+
{ type: TaskContentService },
|
|
2672
|
+
{ type: PaperViewService },
|
|
2673
|
+
{ type: LoggerService },
|
|
2674
|
+
{ type: TaskEventService, decorators: [{ type: Optional }] },
|
|
2675
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ASYNC_RENDERING_CONFIGURATION,] }] }
|
|
2676
|
+
];
|
|
2677
|
+
|
|
2678
|
+
class TaskPanelComponent extends AbstractTaskPanelComponent {
|
|
2679
|
+
constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService) {
|
|
2680
|
+
super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService);
|
|
2681
|
+
this._taskContentService = _taskContentService;
|
|
2682
|
+
this._log = _log;
|
|
2683
|
+
this._taskViewService = _taskViewService;
|
|
2684
|
+
this._paperView = _paperView;
|
|
2685
|
+
this._taskEventService = _taskEventService;
|
|
2686
|
+
this._assignTaskService = _assignTaskService;
|
|
2687
|
+
this._delegateTaskService = _delegateTaskService;
|
|
2688
|
+
this._cancelTaskService = _cancelTaskService;
|
|
2689
|
+
this._finishTaskService = _finishTaskService;
|
|
2690
|
+
this._taskState = _taskState;
|
|
2691
|
+
this._taskDataService = _taskDataService;
|
|
2692
|
+
this._assignPolicyService = _assignPolicyService;
|
|
2693
|
+
this._callChain = _callChain;
|
|
2694
|
+
this._translate = _translate;
|
|
2695
|
+
this._disableFunctions = _disableFunctions;
|
|
2696
|
+
this.isEnabled = isEnabled;
|
|
2697
|
+
this._parentInjector = _parentInjector;
|
|
2698
|
+
this._currencyPipe = _currencyPipe;
|
|
2699
|
+
this._changedFieldsService = _changedFieldsService;
|
|
2700
|
+
this._permissionService = _permissionService;
|
|
2701
|
+
}
|
|
2702
|
+
createContentPortal() {
|
|
2703
|
+
const providers = [
|
|
2704
|
+
{ provide: TaskContentService, useValue: this._taskContentService },
|
|
2705
|
+
{ provide: BOOLEAN_VALUE_LABEL_ENABLED, useValue: this.isEnabled }
|
|
2706
|
+
];
|
|
2707
|
+
const injector = Injector.create({ providers, parent: this._parentInjector });
|
|
2708
|
+
if (this.panelContentComponent === undefined) {
|
|
2709
|
+
this.portal = new ComponentPortal(TaskContentComponent, null, injector);
|
|
2710
|
+
}
|
|
2711
|
+
else {
|
|
2712
|
+
this.portal = new ComponentPortal(this.panelContentComponent, null, injector);
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
}
|
|
2716
|
+
TaskPanelComponent.ctorParameters = () => [
|
|
2717
|
+
{ type: TaskContentService },
|
|
2718
|
+
{ type: LoggerService },
|
|
2719
|
+
{ type: TaskViewService },
|
|
2720
|
+
{ type: PaperViewService },
|
|
2721
|
+
{ type: TaskEventService },
|
|
2722
|
+
{ type: AssignTaskService },
|
|
2723
|
+
{ type: DelegateTaskService },
|
|
2724
|
+
{ type: CancelTaskService },
|
|
2725
|
+
{ type: FinishTaskService },
|
|
2726
|
+
{ type: TaskRequestStateService },
|
|
2727
|
+
{ type: TaskDataService },
|
|
2728
|
+
{ type: AssignPolicyService },
|
|
2729
|
+
{ type: CallChainService },
|
|
2730
|
+
{ type: TranslateService },
|
|
2731
|
+
{ type: SubjectTaskOperations, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
|
|
2732
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS,] }] },
|
|
2733
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
|
|
2734
|
+
{ type: Injector },
|
|
2735
|
+
{ type: CurrencyPipe },
|
|
2736
|
+
{ type: ChangedFieldsService },
|
|
2737
|
+
{ type: PermissionService }
|
|
2738
|
+
];
|
|
2739
|
+
TaskPanelComponent.decorators = [
|
|
2740
|
+
{ type: Component, args: [{
|
|
2741
|
+
selector: 'nc-task-panel',
|
|
2742
|
+
template: "<nc-app-panel [panelContent]=\"taskPanelContent\" [panelHeader]=\"taskPanelHeader\"\n (stopLoading)=\"stopLoading()\" (getExpansionPanelRef)=\"setPanelRef($event)\" [first]=\"first\" [last]=\"last\">\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div fxFlex class=\"text-column-div\" [ngClass]=\"{'panel-header-padding': !textEllipsis}\">\n <span class=\"text-column-margin\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"task-panel-icon panel-primary-icon\">\n {{taskPanelData.task.icon ? taskPanelData.task.icon : 'label'}}</mat-icon>\n <span [ngClass]=\"{\n 'text-column-ellipsis': textEllipsis,\n 'text-column-word-wrap': !textEllipsis\n }\">{{firstFeaturedValue}}</span>\n </span>\n </div>\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\"\n [fxHide.lt-xl]=\"i >= 3 && responsiveBody\"\n [fxHide.lt-lg]=\"i >= 2 && responsiveBody\"\n [fxHide.lt-md]=\"i >= 1 && responsiveBody\"\n [fxHide.lt-sm]=\"i >= 0 && responsiveBody\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <span class=\"text-column-margin\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"task-panel-icon panel-primary-icon\"\n *ngIf=\"!!field.icon && !!field.value && field.type !== 'button'\">{{field.icon}}</mat-icon>\n <button *ngIf=\"field.type === 'button'\" mat-flat-button color=\"primary\">{{field.value}}</button>\n <span [ngClass]=\"{\n 'text-column-ellipsis': textEllipsis,\n 'text-column-word-wrap': !textEllipsis\n }\" [matTooltip]=\"field.value\"\n [matTooltipDisabled]=\"!textEllipsis\"\n [matTooltipClass]=\"'pre-line-dialog'\"\n >{{field.type === 'button' ? '' : field.value }}</span>\n </span>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <button mat-icon-button (click)=\"preventPanelOpen($event)\"\n *ngIf=\"!isLoading && (canAssign() || canDo('delegate') || canReassign() || canCancel() || canFinish())\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngIf=\"canAssign()\" (click)=\"assign()\" [disabled]=\"canDisable('assign')\">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canDo('delegate')\" (click)=\"delegate()\"\n [disabled]=\"canDisable('delegate')\">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canReassign()\" (click)=\"delegate()\" [disabled]=\"canDisable('reassign')\">\n <mat-icon>person_add</mat-icon>\n <span>{{ 'tasks.view.reassign' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canCancel()\" (click)=\"cancel()\" [disabled]=\"canDisable('cancel')\">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf=\"canFinish()\" (click)=\"finish()\" [disabled]=\"canDisable('finish')\">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"30\"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class=\"panel-main-content\" fxLayout=\"column\">\n <div class=\"task-panel-body\" [ngClass]=\"{'paper-view': isPaperView()}\" fxFlex=\"100\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </div>\n <mat-action-row>\n <div fxLayout.lt-sm=\"column\" fxLayoutAlign.lt-sm=\"center stretch\" ngClass.lt-sm=\"width-100\">\n <button *ngIf=\"canAssign()\" (click)=\"assign()\" mat-button [disabled]=\"canDisable('assign')\">\n {{ getAssignTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canDo('delegate')\" (click)=\"delegate()\" mat-button [disabled]=\"canDisable('delegate')\">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canReassign()\" (click)=\"delegate()\" mat-button [disabled]=\"canDisable('reassign')\">\n {{ 'tasks.view.reassign' | translate | uppercase }}</button>\n <button *ngIf=\"canCancel()\" (click)=\"cancel()\" mat-button [disabled]=\"canDisable('cancel')\">\n {{ getCancelTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canFinish()\" (click)=\"finish()\" mat-button [disabled]=\"canDisable('finish')\">\n {{ getFinishTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canCollapse()\" color=\"primary\" (click)=\"collapse()\" mat-button>\n {{ 'tasks.view.collapse' | translate | uppercase }}</button>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n",
|
|
2743
|
+
providers: [
|
|
2744
|
+
{ provide: TaskContentService, useClass: SingleTaskContentService },
|
|
2745
|
+
TaskDataService,
|
|
2746
|
+
TaskEventService,
|
|
2747
|
+
AssignTaskService,
|
|
2748
|
+
DelegateTaskService,
|
|
2749
|
+
CancelTaskService,
|
|
2750
|
+
FinishTaskService,
|
|
2751
|
+
TaskRequestStateService,
|
|
2752
|
+
DataFocusPolicyService,
|
|
2753
|
+
AssignPolicyService,
|
|
2754
|
+
FinishPolicyService,
|
|
2755
|
+
ChangedFieldsService,
|
|
2756
|
+
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
|
|
2757
|
+
],
|
|
2758
|
+
styles: [".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:12px 0!important}.pre-line-dialog{white-space:pre-line!important}"]
|
|
2759
|
+
},] }
|
|
2760
|
+
];
|
|
2761
|
+
TaskPanelComponent.ctorParameters = () => [
|
|
2762
|
+
{ type: TaskContentService },
|
|
2763
|
+
{ type: LoggerService },
|
|
2764
|
+
{ type: TaskViewService },
|
|
2765
|
+
{ type: PaperViewService },
|
|
2766
|
+
{ type: TaskEventService },
|
|
2767
|
+
{ type: AssignTaskService },
|
|
2768
|
+
{ type: DelegateTaskService },
|
|
2769
|
+
{ type: CancelTaskService },
|
|
2770
|
+
{ type: FinishTaskService },
|
|
2771
|
+
{ type: TaskRequestStateService },
|
|
2772
|
+
{ type: TaskDataService },
|
|
2773
|
+
{ type: AssignPolicyService },
|
|
2774
|
+
{ type: CallChainService },
|
|
2775
|
+
{ type: TranslateService },
|
|
2776
|
+
{ type: SubjectTaskOperations, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
|
|
2777
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS,] }] },
|
|
2778
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
|
|
2779
|
+
{ type: Injector },
|
|
2780
|
+
{ type: CurrencyPipe },
|
|
2781
|
+
{ type: ChangedFieldsService },
|
|
2782
|
+
{ type: PermissionService }
|
|
2783
|
+
];
|
|
2784
|
+
|
|
2785
|
+
class CasePanelComponent extends AbstractCasePanelComponent {
|
|
2786
|
+
constructor(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _overflowService, _userService, _currencyPipe, _permissionService) {
|
|
2787
|
+
super(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _overflowService, _userService, _currencyPipe, _permissionService);
|
|
2788
|
+
this._caseResourceService = _caseResourceService;
|
|
2789
|
+
this._caseViewService = _caseViewService;
|
|
2790
|
+
this._snackBarService = _snackBarService;
|
|
2791
|
+
this._translateService = _translateService;
|
|
2792
|
+
this._log = _log;
|
|
2793
|
+
this._overflowService = _overflowService;
|
|
2794
|
+
this._userService = _userService;
|
|
2795
|
+
this._currencyPipe = _currencyPipe;
|
|
2796
|
+
this._permissionService = _permissionService;
|
|
2797
|
+
}
|
|
2798
|
+
}
|
|
2799
|
+
CasePanelComponent.ctorParameters = () => [
|
|
2800
|
+
{ type: CaseResourceService },
|
|
2801
|
+
{ type: CaseViewService },
|
|
2802
|
+
{ type: SnackBarService },
|
|
2803
|
+
{ type: TranslateService },
|
|
2804
|
+
{ type: LoggerService },
|
|
2805
|
+
{ type: OverflowService, decorators: [{ type: Optional }] },
|
|
2806
|
+
{ type: UserService },
|
|
2807
|
+
{ type: CurrencyPipe },
|
|
2808
|
+
{ type: PermissionService }
|
|
2809
|
+
];
|
|
2810
|
+
CasePanelComponent.decorators = [
|
|
2811
|
+
{ type: Component, args: [{
|
|
2812
|
+
selector: 'nc-case-panel',
|
|
2813
|
+
template: "<nc-app-panel [panelHeader]=\"casePanelHeader\" [preventExpand]=\"true\" [first]=\"first\" [last]=\"last\" [caseColor] = case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div fxFlex class=\"text-column-div\" [ngClass]=\"{'panel-header-padding': !textEllipsis}\" [ngStyle]=\"{'min-width': getMinWidth()}\">\n <span class=\"text-column-margin\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"case-panel-icon panel-primary-icon\" *ngIf=\"showCasePanelIcon\">\n {{case_.icon ? case_.icon : 'label'}}</mat-icon>\n <span [ngClass]=\"{\n 'text-column-ellipsis': textEllipsis,\n 'text-column-word-wrap': !textEllipsis\n }\">{{firstFeaturedValue}}</span>\n </span>\n </div>\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxFlex\n class=\"text-column-div\" [ngStyle]=\"{'min-width': getMinWidth()}\"\n [fxHide.lt-xl]=\"i >= 3 && responsiveBody\"\n [fxHide.lt-lg]=\"i >= 2 && responsiveBody\"\n [fxHide.lt-md]=\"i >= 1 && responsiveBody\"\n [fxHide.lt-sm]=\"i >= 0 && responsiveBody\"\n [ngClass]=\"{'panel-header-padding': !textEllipsis && field.type !== 'button'}\">\n <span class=\"text-column-margin\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"case-panel-icon panel-primary-icon\"\n *ngIf=\"field.icon && field.value && field.type !== 'button'\">{{field.icon}}</mat-icon>\n <ng-container [ngSwitch]=\"field.type\">\n <span *ngSwitchDefault\n [ngClass]=\"{'text-column-ellipsis': textEllipsis, 'text-column-word-wrap': !textEllipsis}\"\n [matTooltip]=\"field.value\"\n [matTooltipDisabled]=\"!textEllipsis\"\n [matTooltipClass]=\"'pre-line-dialog'\">{{field.value}}</span>\n <button *ngSwitchCase=\"'button'\" mat-flat-button color=\"primary\">{{field.value}}</button>\n <nc-immediate-filter-text *ngSwitchCase=\"'filter'\"\n [filterMetadata]=\"field.filterMetadata\"\n [ellipsis]=\"textEllipsis\"\n class=\"width-100\">\n </nc-immediate-filter-text>\n </ng-container>\n </span>\n </div>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxFlex=\"5\">\n <div *ngIf=\"showDeleteMenu && canDelete()\">\n <button mat-icon-button (click)=\"show($event)\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"deleteCase()\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'panel.case.delete' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n",
|
|
2814
|
+
styles: [".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:12px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}"]
|
|
2815
|
+
},] }
|
|
2816
|
+
];
|
|
2817
|
+
CasePanelComponent.ctorParameters = () => [
|
|
2818
|
+
{ type: CaseResourceService },
|
|
2819
|
+
{ type: CaseViewService },
|
|
2820
|
+
{ type: SnackBarService },
|
|
2821
|
+
{ type: TranslateService },
|
|
2822
|
+
{ type: LoggerService },
|
|
2823
|
+
{ type: OverflowService, decorators: [{ type: Optional }] },
|
|
2824
|
+
{ type: UserService },
|
|
2825
|
+
{ type: CurrencyPipe },
|
|
2826
|
+
{ type: PermissionService }
|
|
2827
|
+
];
|
|
2828
|
+
|
|
2829
|
+
class TaskListComponent extends AbstractTaskListComponent {
|
|
2830
|
+
constructor(_taskViewService, _log, injectedTabData, route) {
|
|
2831
|
+
super(_taskViewService, _log, injectedTabData, route);
|
|
2832
|
+
this._taskViewService = _taskViewService;
|
|
2833
|
+
this._log = _log;
|
|
2834
|
+
this.route = route;
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
TaskListComponent.ctorParameters = () => [
|
|
2838
|
+
{ type: TaskViewService },
|
|
2839
|
+
{ type: LoggerService },
|
|
2840
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
|
|
2841
|
+
{ type: ActivatedRoute }
|
|
2842
|
+
];
|
|
2843
|
+
TaskListComponent.decorators = [
|
|
2844
|
+
{ type: Component, args: [{
|
|
2845
|
+
selector: 'nc-task-list',
|
|
2846
|
+
template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"tasks$ | async as tasks\">\n\n <div *ngIf=\"(loading$ | async) === false && tasks.length === 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n fxFlex>\n <mat-icon color=\"accent\">check_box</mat-icon>\n <span class=\"font-size-20\">{{ 'tasks.view.noTasksSatisfyingThisFilter' | translate }}</span>\n </div>\n\n <mat-accordion [multi]=\"allowMultiOpen\" class=\"full-width\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"52\" (scrolledIndexChange)=\"loadNextPage()\"\n class=\"task-panel-scroll-container full-width full-height\">\n <nc-task-panel\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [taskPanelData]=\"task\" [selectedHeaders$]=\"selectedHeaders$\" [first]=\"first\" [last]=\"last\"\n [forceLoadDataOnOpen]=\"forceLoadDataOnOpen\"\n [responsiveBody]=\"responsiveBody\"\n (taskEvent)=\"emitTaskEvent($event)\"\n (panelRefOutput)=\"addToPanelRefs(task, $event)\"\n class=\"panel-expanded-spacing\">\n </nc-task-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-spinner color=\"primary\" diameter=\"52\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n",
|
|
2847
|
+
styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}.task-panel-scroll-container{padding:0 4px}"]
|
|
2848
|
+
},] }
|
|
2849
|
+
];
|
|
2850
|
+
TaskListComponent.ctorParameters = () => [
|
|
2851
|
+
{ type: TaskViewService },
|
|
2852
|
+
{ type: LoggerService },
|
|
2853
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
|
|
2854
|
+
{ type: ActivatedRoute }
|
|
2855
|
+
];
|
|
2856
|
+
|
|
2857
|
+
class WorkflowPanelComponent extends AbstractWorkflowPanelComponent {
|
|
2858
|
+
constructor(log, translate, workflowService) {
|
|
2859
|
+
super(log, translate, workflowService);
|
|
2860
|
+
}
|
|
2861
|
+
}
|
|
2862
|
+
WorkflowPanelComponent.ctorParameters = () => [
|
|
2863
|
+
{ type: LoggerService },
|
|
2864
|
+
{ type: TranslateService },
|
|
2865
|
+
{ type: WorkflowViewService }
|
|
2866
|
+
];
|
|
2867
|
+
WorkflowPanelComponent.decorators = [
|
|
2868
|
+
{ type: Component, args: [{
|
|
2869
|
+
selector: 'nc-workflow-panel',
|
|
2870
|
+
template: "<nc-app-panel [panelHeader]=\"header\" [panelContent]=\"content\" (getExpansionPanelRef)=\"setPanelRef($event)\">\n <ng-template #header>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\" (click)=\"preventSelectionClick($event)\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxLayoutAlign=\"start center\" fxFlex\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody\">\n <mat-icon class=\"workflow-panel-icon panel-primary-icon\"\n *ngIf=\"!!field.icon && !!field.value\">{{field.icon}}</mat-icon>\n {{field.value}}\n </div>\n </div>\n <div fxFlex=\"5\"></div>\n </ng-template>\n <ng-template #content>\n <div class=\"panel-main-content\" fxLayout=\"column\">\n <div class=\"workflow-panel-body\" fxFlex=\"100\">\n <div fxLayout=\"row\">\n <div fxFlex=\"50\">\n <nc-text-field [dataField]=\"panelContent.netIdentifier\">\n </nc-text-field>\n </div>\n <div fxFlex=\"50\">\n <nc-text-field [dataField]=\"panelContent.title\">\n </nc-text-field>\n </div>\n </div>\n <div fxLayout=\"row\">\n <div fxFlex=\"50\">\n <nc-text-field [dataField]=\"panelContent.version\">\n </nc-text-field>\n </div>\n <div fxFlex=\"50\">\n <nc-text-field [dataField]=\"panelContent.author\">\n </nc-text-field>\n </div>\n </div>\n <div fxLayout=\"row\">\n <div fxFlex=\"50\">\n <nc-date-time-field [dataField]=\"panelContent.uploaded\">\n </nc-date-time-field>\n </div>\n </div>\n </div>\n <mat-action-row>\n <button *ngIf=\"showDeleteMenu\" mat-raised-button color=\"warn\"\n (click)=\"deleteWorkflow()\">{{'workflow.delete' | translate | uppercase }}</button>\n <button mat-button color=\"primary\"\n (click)=\"panelRef.expanded = false\">{{'tasks.view.collapse' | translate | uppercase }}</button>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n",
|
|
2871
|
+
styles: [".task-panel-icon{margin-right:10px}.workflow-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.workflow-panel-body{padding:10px 24px}.workflow-panel-icon{margin-right:8px}"]
|
|
2872
|
+
},] }
|
|
2873
|
+
];
|
|
2874
|
+
WorkflowPanelComponent.ctorParameters = () => [
|
|
2875
|
+
{ type: LoggerService },
|
|
2876
|
+
{ type: TranslateService },
|
|
2877
|
+
{ type: WorkflowViewService }
|
|
2878
|
+
];
|
|
2879
|
+
|
|
2880
|
+
class FieldComponentResolverComponent extends AbstractFieldComponentResolverComponent {
|
|
2881
|
+
constructor(taskContentService) {
|
|
2882
|
+
super(taskContentService);
|
|
2883
|
+
}
|
|
2884
|
+
}
|
|
2885
|
+
FieldComponentResolverComponent.ctorParameters = () => [
|
|
2886
|
+
{ type: TaskContentService }
|
|
2887
|
+
];
|
|
2888
|
+
FieldComponentResolverComponent.decorators = [
|
|
2889
|
+
{ type: Component, args: [{
|
|
2890
|
+
selector: 'nc-field-component-resolver',
|
|
2891
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\" [ngClass]=\"{'min-row-height': isField()}\" [ngSwitch]=\"getElementType()\">\n <nc-boolean-field *ngSwitchCase=\"fieldTypeEnum.BOOLEAN\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-boolean-field>\n\n <nc-text-field *ngSwitchCase=\"fieldTypeEnum.TEXT\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-text-field>\n\n <nc-number-field *ngSwitchCase=\"fieldTypeEnum.NUMBER\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-number-field>\n\n <nc-enumeration-field *ngSwitchCase=\"fieldTypeEnum.ENUMERATION\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-enumeration-field>\n\n <nc-enumeration-field *ngSwitchCase=\"fieldTypeEnum.ENUMERATION_MAP\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-enumeration-field>\n\n <nc-multichoice-field *ngSwitchCase=\"fieldTypeEnum.MULTICHOICE\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-multichoice-field>\n\n <nc-multichoice-field *ngSwitchCase=\"fieldTypeEnum.MULTICHOICE_MAP\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-multichoice-field>\n\n <nc-date-field *ngSwitchCase=\"fieldTypeEnum.DATE\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-date-field>\n\n <nc-date-time-field *ngSwitchCase=\"fieldTypeEnum.DATE_TIME\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-date-time-field>\n\n <nc-file-field *ngSwitchCase=\"fieldTypeEnum.FILE\" [dataField]=\"getDataField()\" [taskId]=\"getTaskId()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-file-field>\n\n <nc-file-list-field *ngSwitchCase=\"fieldTypeEnum.FILE_LIST\" [dataField]=\"getDataField()\" [taskId]=\"getTaskId()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-file-list-field>\n\n <nc-user-field *ngSwitchCase=\"fieldTypeEnum.USER\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-user-field>\n\n <nc-button-field *ngSwitchCase=\"fieldTypeEnum.BUTTON\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex>\n </nc-button-field>\n\n <nc-filter-field *ngSwitchCase=\"fieldTypeEnum.FILTER\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex=\"\">\n </nc-filter-field>\n\n <nc-i18n-field *ngSwitchCase=\"fieldTypeEnum.I18N\" [dataField]=\"getDataField()\" [taskOffset]=\"getFieldOffset()\" fxFlex=\"\">\n </nc-i18n-field>\n\n <div *ngSwitchCase=\"taskElementEnum.DATA_GROUP_TITLE\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div fxFlex=\"20\" class=\"line-datagroup\"></div>\n <span [ngClass]=\"{'margin-default': getDataGroupTitle() !== ''}\">{{getDataGroupTitle()}}</span>\n <div fxFlex class=\"line-datagroup\"></div>\n </div>\n\n <div *ngSwitchCase=\"taskElementEnum.LOADER\" class=\"min-row-height\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div class=\"phl-item\">\n <div class=\"phl-row\" fxLayoutAlign=\"center center\">\n <div class=\"phl-col\">\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"taskElementEnum.BLANK\"></div>\n</div>\n",
|
|
2892
|
+
styles: [".line-datagroup{height:1px;background:rgba(0,0,0,.12)}.margin-default{margin-right:8px;margin-left:8px}.min-row-height{min-height:105px}.phl-row{width:100%;flex-wrap:wrap}.phl-col{height:70px;flex:0 0 90%;background-color:#ced4da;border-radius:8px}.phl-item{width:100%;position:relative;display:flex;flex-wrap:wrap;overflow:hidden;background-color:#fff}.phl-item::after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));-webkit-animation:1s infinite shimmer;animation:1s infinite shimmer;content:\"\"}@-webkit-keyframes shimmer{100%{transform:translateX(100%)}}@keyframes shimmer{100%{transform:translateX(100%)}}.phl-item,.phl-item *,.phl-item::after,.phl-item::before{box-sizing:border-box}"]
|
|
2893
|
+
},] }
|
|
2894
|
+
];
|
|
2895
|
+
FieldComponentResolverComponent.ctorParameters = () => [
|
|
2896
|
+
{ type: TaskContentService }
|
|
2897
|
+
];
|
|
2898
|
+
|
|
2899
|
+
class TaskContentComponentModule {
|
|
2900
|
+
}
|
|
2901
|
+
TaskContentComponentModule.decorators = [
|
|
2902
|
+
{ type: NgModule, args: [{
|
|
2903
|
+
declarations: [
|
|
2904
|
+
TaskContentComponent,
|
|
2905
|
+
FieldComponentResolverComponent
|
|
2906
|
+
],
|
|
2907
|
+
imports: [
|
|
2908
|
+
CommonModule,
|
|
2909
|
+
MaterialModule,
|
|
2910
|
+
FlexModule,
|
|
2911
|
+
TranslateLibModule,
|
|
2912
|
+
SnackBarModule,
|
|
2913
|
+
DataFieldsComponentModule
|
|
2914
|
+
],
|
|
2915
|
+
exports: [
|
|
2916
|
+
TaskContentComponent
|
|
2917
|
+
],
|
|
2918
|
+
entryComponents: [
|
|
2919
|
+
TaskContentComponent
|
|
2920
|
+
]
|
|
2921
|
+
},] }
|
|
2922
|
+
];
|
|
2923
|
+
|
|
2924
|
+
class PublicWorkflowPanelComponent extends AbstractWorkflowPanelComponent {
|
|
2925
|
+
constructor(log, translate, workflowService) {
|
|
2926
|
+
super(log, translate, workflowService);
|
|
2927
|
+
}
|
|
2928
|
+
}
|
|
2929
|
+
PublicWorkflowPanelComponent.ctorParameters = () => [
|
|
2930
|
+
{ type: LoggerService },
|
|
2931
|
+
{ type: TranslateService },
|
|
2932
|
+
{ type: WorkflowViewService }
|
|
2933
|
+
];
|
|
2934
|
+
PublicWorkflowPanelComponent.decorators = [
|
|
2935
|
+
{ type: Component, args: [{
|
|
2936
|
+
selector: 'nc-public-workflow-panel',
|
|
2937
|
+
template: "<nc-app-panel [panelHeader]=\"header\" [preventExpand]=\"true\">\n <ng-template #header>\n <div fxLayoutAlign=\"start center\" fxLayout=\"row\" fxFlex=\"95\">\n <div *ngFor=\"let field of featuredFieldsValues; let i = index\" fxLayoutAlign=\"start center\" fxFlex\n [fxHide.lt-xl]=\"i >= 4 && responsiveBody\"\n [fxHide.lt-lg]=\"i >= 3 && responsiveBody\"\n [fxHide.lt-md]=\"i >= 2 && responsiveBody\"\n [fxHide.lt-sm]=\"i >= 1 && responsiveBody\">\n <mat-icon class=\"workflow-panel-icon panel-primary-icon\"\n *ngIf=\"!!field.icon && !!field.value\">{{field.icon}}</mat-icon>\n {{field.value}}\n </div>\n </div>\n <div fxFlex=\"5\"></div>\n </ng-template>\n</nc-app-panel>\n",
|
|
2938
|
+
styles: [""]
|
|
2939
|
+
},] }
|
|
2940
|
+
];
|
|
2941
|
+
PublicWorkflowPanelComponent.ctorParameters = () => [
|
|
2942
|
+
{ type: LoggerService },
|
|
2943
|
+
{ type: TranslateService },
|
|
2944
|
+
{ type: WorkflowViewService }
|
|
2945
|
+
];
|
|
2946
|
+
|
|
2947
|
+
function filterTextBaseFilterFactory(configuration) {
|
|
2948
|
+
return {
|
|
2949
|
+
filter: SimpleFilter.empty(configuration.metadata.filterMetadata.filterType)
|
|
2950
|
+
};
|
|
2951
|
+
}
|
|
2952
|
+
function filterTextAllowedNetsFactory(factory, configuration) {
|
|
2953
|
+
return factory.createFromArray(configuration.metadata.allowedNets);
|
|
2954
|
+
}
|
|
2955
|
+
function filterTextCategoriesFactory(factory, configuration) {
|
|
2956
|
+
const categories = configuration.metadata.filterMetadata.searchCategories.map(c => factory.getByNameWithDefaultOperator(c));
|
|
2957
|
+
categories.forEach(c => c.destroy());
|
|
2958
|
+
return categories;
|
|
2959
|
+
}
|
|
2960
|
+
class ImmediateFilterTextContentComponent extends AbstractImmediateFilterTextContentComponent {
|
|
2961
|
+
constructor(configuration, textSearchService, translateService) {
|
|
2962
|
+
super(configuration, textSearchService, translateService);
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
ImmediateFilterTextContentComponent.ctorParameters = () => [
|
|
2966
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_FILTER_TEXT,] }] },
|
|
2967
|
+
{ type: SearchService },
|
|
2968
|
+
{ type: TranslateService }
|
|
2969
|
+
];
|
|
2970
|
+
ImmediateFilterTextContentComponent.decorators = [
|
|
2971
|
+
{ type: Component, args: [{
|
|
2972
|
+
selector: 'nc-immediate-filter-text-content',
|
|
2973
|
+
template: "<div [matTooltip]=\"ellipsis ? tooltip : null\" [ngClass]=\"{'ellipsis': ellipsis}\" fxFlex>\n <ng-template ngFor let-segment [ngForOf]=\"segments\">\n <span [ngClass]=\"{'bold-text': segment.bold}\" class=\"span-margin\">\n {{segment.uppercase ? (segment.segment | translate | uppercase) : (segment.segment | translate)}}\n </span>\n </ng-template>\n</div>\n",
|
|
2974
|
+
providers: [
|
|
2975
|
+
{ provide: NAE_BASE_FILTER, useFactory: filterTextBaseFilterFactory, deps: [NAE_FILTER_TEXT] },
|
|
2976
|
+
{ provide: AllowedNetsService, useFactory: filterTextAllowedNetsFactory, deps: [AllowedNetsServiceFactory, NAE_FILTER_TEXT] },
|
|
2977
|
+
{ provide: NAE_SEARCH_CATEGORIES, useFactory: filterTextCategoriesFactory, deps: [CategoryFactory, NAE_FILTER_TEXT] },
|
|
2978
|
+
CategoryFactory,
|
|
2979
|
+
SearchService,
|
|
2980
|
+
],
|
|
2981
|
+
styles: [".bold-text{font-weight:700}.span-margin{margin-right:.4ex}.ellipsis{word-break:break-word!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}"]
|
|
2982
|
+
},] }
|
|
2983
|
+
];
|
|
2984
|
+
ImmediateFilterTextContentComponent.ctorParameters = () => [
|
|
2985
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_FILTER_TEXT,] }] },
|
|
2986
|
+
{ type: SearchService },
|
|
2987
|
+
{ type: TranslateService }
|
|
2988
|
+
];
|
|
2989
|
+
|
|
2990
|
+
class ImmediateFilterTextComponent extends AbstractImmediateFilterTextComponent {
|
|
2991
|
+
constructor(parentInjector) {
|
|
2992
|
+
super(parentInjector);
|
|
2993
|
+
}
|
|
2994
|
+
getFilterTextContentComponent() {
|
|
2995
|
+
return ImmediateFilterTextContentComponent;
|
|
2996
|
+
}
|
|
2997
|
+
}
|
|
2998
|
+
ImmediateFilterTextComponent.ctorParameters = () => [
|
|
2999
|
+
{ type: Injector }
|
|
3000
|
+
];
|
|
3001
|
+
ImmediateFilterTextComponent.decorators = [
|
|
3002
|
+
{ type: Component, args: [{
|
|
3003
|
+
selector: 'nc-immediate-filter-text',
|
|
3004
|
+
template: "<ng-template [ngIf]=\"initialized\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</ng-template>\n",
|
|
3005
|
+
styles: [""]
|
|
3006
|
+
},] }
|
|
3007
|
+
];
|
|
3008
|
+
ImmediateFilterTextComponent.ctorParameters = () => [
|
|
3009
|
+
{ type: Injector }
|
|
3010
|
+
];
|
|
3011
|
+
|
|
3012
|
+
class PanelComponentModule {
|
|
3013
|
+
}
|
|
3014
|
+
PanelComponentModule.decorators = [
|
|
3015
|
+
{ type: NgModule, args: [{
|
|
3016
|
+
declarations: [
|
|
3017
|
+
PanelComponent,
|
|
3018
|
+
TaskPanelComponent,
|
|
3019
|
+
CasePanelComponent,
|
|
3020
|
+
WorkflowPanelComponent,
|
|
3021
|
+
TaskListComponent,
|
|
3022
|
+
PublicWorkflowPanelComponent,
|
|
3023
|
+
ImmediateFilterTextComponent,
|
|
3024
|
+
ImmediateFilterTextContentComponent,
|
|
3025
|
+
],
|
|
3026
|
+
imports: [
|
|
3027
|
+
CommonModule,
|
|
3028
|
+
MaterialModule,
|
|
3029
|
+
FlexModule,
|
|
3030
|
+
DataFieldsComponentModule,
|
|
3031
|
+
TranslateLibModule,
|
|
3032
|
+
SnackBarModule,
|
|
3033
|
+
TaskContentComponentModule,
|
|
3034
|
+
SideMenuUserAssignComponentModule,
|
|
3035
|
+
CurrencyModule
|
|
3036
|
+
],
|
|
3037
|
+
exports: [
|
|
3038
|
+
PanelComponent,
|
|
3039
|
+
TaskPanelComponent,
|
|
3040
|
+
CasePanelComponent,
|
|
3041
|
+
WorkflowPanelComponent,
|
|
3042
|
+
TaskListComponent,
|
|
3043
|
+
PublicWorkflowPanelComponent,
|
|
3044
|
+
ImmediateFilterTextComponent,
|
|
3045
|
+
],
|
|
3046
|
+
entryComponents: [
|
|
3047
|
+
ImmediateFilterTextContentComponent,
|
|
3048
|
+
]
|
|
3049
|
+
},] }
|
|
3050
|
+
];
|
|
3051
|
+
|
|
3052
|
+
/**
|
|
3053
|
+
* Component that renders a tab view.
|
|
3054
|
+
*
|
|
3055
|
+
* See {@link TabView} for the class that holds the logic for this view.
|
|
3056
|
+
*/
|
|
3057
|
+
class TabViewComponent extends AbstractTabViewComponent {
|
|
3058
|
+
constructor(_viewService, _logger, injector) {
|
|
3059
|
+
super(_viewService, _logger, injector);
|
|
3060
|
+
this._viewService = _viewService;
|
|
3061
|
+
this._logger = _logger;
|
|
3062
|
+
}
|
|
3063
|
+
}
|
|
3064
|
+
TabViewComponent.ctorParameters = () => [
|
|
3065
|
+
{ type: ViewService },
|
|
3066
|
+
{ type: LoggerService },
|
|
3067
|
+
{ type: Injector }
|
|
3068
|
+
];
|
|
3069
|
+
TabViewComponent.decorators = [
|
|
3070
|
+
{ type: Component, args: [{
|
|
3071
|
+
selector: 'nc-tab-view',
|
|
3072
|
+
template: "<mat-tab-group [selectedIndex]=\"tabView.selectedIndex\"\n [class.center-tabs]=\"align === 'center'\"\n [class.end-tabs]=\"align === 'end'\"\n (selectedTabChange)=\"tabView.tabChange($event)\" class=\"tab-group\"\n [class.nae-tab-fill-height]=\"stretch\" fxFlex>\n <mat-tab *ngFor=\"let tab of tabView.openedTabs; let i=index\">\n <ng-template mat-tab-label>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"icon-margin-right\"\n *ngIf=\"tab.label.icon !== undefined\">{{tab.label.icon}}</mat-icon>\n <span class=\"custom-badge\" [matBadge]=\"(badgeCount(tab) | async)\"\n [matBadgeHidden]=\"(badgeHidden(tab) | async)\">{{(tab.label.text | translate) + ((badgeHidden(tab) | async) ? '' : offset)}}</span>\n </div>\n <button mat-icon-button *ngIf=\"tab.canBeClosed\" (click)=\"tabView.closeTabIndex(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n </ng-template>\n <!-- TODO 16.4.2020 - lazy loading of tab contents is disabled for now -->\n <!-- <ng-template matTabContent>-->\n <nc-tab-creation-detector [initializeTabFunction]=\"initializeTabLambda\"\n [tabIndex]=\"i\"></nc-tab-creation-detector>\n <ng-template [ngIf]=\"tab.isTabInitialized\" class=\"full-height\">\n <ng-template [cdkPortalOutlet]=\"tab.portal\" class=\"full-height\"></ng-template>\n </ng-template>\n </mat-tab>\n</mat-tab-group>\n",
|
|
3073
|
+
styles: [".icon-margin-right{margin-right:5px}.full-height{height:100%}.full-width{width:100%}.tab-group{height:100%}.mat-badge-content{top:-3px!important;right:-24px!important}.custom-badge .mat-badge-content{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:16px;text-align:center;border-radius:8px;padding-left:3px;padding-right:3px}"]
|
|
3074
|
+
},] }
|
|
3075
|
+
];
|
|
3076
|
+
TabViewComponent.ctorParameters = () => [
|
|
3077
|
+
{ type: ViewService },
|
|
3078
|
+
{ type: LoggerService },
|
|
3079
|
+
{ type: Injector }
|
|
3080
|
+
];
|
|
3081
|
+
|
|
3082
|
+
/**
|
|
3083
|
+
* @ignore
|
|
3084
|
+
* Class that detects tab content creation and then initializes then calls the provided `initializeTab` function.
|
|
3085
|
+
* It is necessary if the tab content is lazy loaded, because the
|
|
3086
|
+
* ComponentPortal's outlet must be initialized before the Portal itself is created.
|
|
3087
|
+
*/
|
|
3088
|
+
class TabCreationDetectorComponent extends AbstractTabCreationDetectorComponent {
|
|
3089
|
+
constructor() {
|
|
3090
|
+
super();
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3093
|
+
TabCreationDetectorComponent.decorators = [
|
|
3094
|
+
{ type: Component, args: [{
|
|
3095
|
+
selector: 'nc-tab-creation-detector',
|
|
3096
|
+
template: "",
|
|
3097
|
+
styles: [""]
|
|
3098
|
+
},] }
|
|
3099
|
+
];
|
|
3100
|
+
TabCreationDetectorComponent.ctorParameters = () => [];
|
|
3101
|
+
|
|
3102
|
+
class TabsComponentModule {
|
|
3103
|
+
}
|
|
3104
|
+
TabsComponentModule.decorators = [
|
|
3105
|
+
{ type: NgModule, args: [{
|
|
3106
|
+
declarations: [
|
|
3107
|
+
TabViewComponent,
|
|
3108
|
+
TabCreationDetectorComponent,
|
|
3109
|
+
],
|
|
3110
|
+
exports: [
|
|
3111
|
+
TabViewComponent,
|
|
3112
|
+
],
|
|
3113
|
+
imports: [
|
|
3114
|
+
CommonModule,
|
|
3115
|
+
MatTabsModule,
|
|
3116
|
+
MaterialModule,
|
|
3117
|
+
FlexLayoutModule,
|
|
3118
|
+
TranslateLibModule,
|
|
3119
|
+
]
|
|
3120
|
+
},] }
|
|
3121
|
+
];
|
|
3122
|
+
|
|
3123
|
+
class CaseListComponent extends AbstractCaseListComponent {
|
|
3124
|
+
constructor(_caseViewService, _log, injectedTabData, route) {
|
|
3125
|
+
super(_caseViewService, _log, injectedTabData, route);
|
|
3126
|
+
this._caseViewService = _caseViewService;
|
|
3127
|
+
this._log = _log;
|
|
3128
|
+
this.route = route;
|
|
3129
|
+
}
|
|
3130
|
+
}
|
|
3131
|
+
CaseListComponent.ctorParameters = () => [
|
|
3132
|
+
{ type: CaseViewService },
|
|
3133
|
+
{ type: LoggerService },
|
|
3134
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
|
|
3135
|
+
{ type: ActivatedRoute }
|
|
3136
|
+
];
|
|
3137
|
+
CaseListComponent.decorators = [
|
|
3138
|
+
{ type: Component, args: [{
|
|
3139
|
+
selector: 'nc-case-list',
|
|
3140
|
+
template: "<div *ngIf=\"showVirtualScroll\" fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex>\n <ng-container *ngIf=\"cases$ | async as cases\">\n\n <div *ngIf=\"(loading$ | async) === false && cases.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\" fxFlex>\n <mat-icon color=\"accent\" class=\"margin-bottom-default\">storage</mat-icon>\n <span class=\"font-size-20\">{{ 'view-list.noCasesSatisfyingThisFilter' | translate}}</span>\n </div>\n\n <mat-accordion multi=\"true\" class=\"full-width\" fxFlex=\"100\">\n <cdk-virtual-scroll-viewport itemSize=\"50\" (scrolledIndexChange)=\"loadNextPage()\"\n class=\"full-height scroll-container\" [ngStyle]=\"{'width': width ? width : '100%' }\">\n\n <nc-case-panel [responsiveBody]=\"responsiveBody\"\n [textEllipsis]=\"textEllipsis\"\n *cdkVirtualFor=\"let case_ of cases;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0\"\n [showCasePanelIcon]=\"showCasePanelIcon\"\n [showDeleteMenu]=\"showDeleteMenu\"\n [case_]=\"case_\" [selectedHeaders$]=\"selectedHeaders$\" (click)=\"onCaseClick(case_)\"\n [first]=\"first\" [last]=\"last\">\n </nc-case-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"50\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n </ng-container>\n</div>\n",
|
|
3141
|
+
styles: [".font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}.margin-bottom-default{margin-bottom:8px}.margin-top-default{margin-top:8px}.full-width{width:100%}.full-height{height:100%}.scroll-container{padding:0 4px}"]
|
|
3142
|
+
},] }
|
|
3143
|
+
];
|
|
3144
|
+
CaseListComponent.ctorParameters = () => [
|
|
3145
|
+
{ type: CaseViewService },
|
|
3146
|
+
{ type: LoggerService },
|
|
3147
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
|
|
3148
|
+
{ type: ActivatedRoute }
|
|
3149
|
+
];
|
|
3150
|
+
|
|
3151
|
+
class CaseViewComponentModule {
|
|
3152
|
+
}
|
|
3153
|
+
CaseViewComponentModule.decorators = [
|
|
3154
|
+
{ type: NgModule, args: [{
|
|
3155
|
+
declarations: [CaseListComponent],
|
|
3156
|
+
exports: [CaseListComponent],
|
|
3157
|
+
imports: [
|
|
3158
|
+
CommonModule,
|
|
3159
|
+
MaterialModule,
|
|
3160
|
+
FlexModule,
|
|
3161
|
+
PanelComponentModule,
|
|
3162
|
+
TranslateLibModule
|
|
3163
|
+
]
|
|
3164
|
+
},] }
|
|
3165
|
+
];
|
|
3166
|
+
|
|
3167
|
+
const ɵ0$c = GroupNavigationComponentResolverComponent;
|
|
3168
|
+
class NavigationComponentModule {
|
|
3169
|
+
}
|
|
3170
|
+
NavigationComponentModule.decorators = [
|
|
3171
|
+
{ type: NgModule, args: [{
|
|
3172
|
+
declarations: [
|
|
3173
|
+
NavigationDrawerComponent,
|
|
3174
|
+
NavigationRailComponent,
|
|
3175
|
+
NavigationTreeComponent,
|
|
3176
|
+
GroupNavigationComponentResolverComponent,
|
|
3177
|
+
DefaultSimpleTaskViewComponent,
|
|
3178
|
+
DefaultTabbedTaskViewComponent,
|
|
3179
|
+
DefaultTabbedCaseViewComponent,
|
|
3180
|
+
DefaultTabViewComponent
|
|
3181
|
+
],
|
|
3182
|
+
imports: [
|
|
3183
|
+
CommonModule,
|
|
3184
|
+
RouterModule,
|
|
3185
|
+
MaterialModule,
|
|
3186
|
+
FlexModule,
|
|
3187
|
+
FlexLayoutModule,
|
|
3188
|
+
QuickPanelComponentModule,
|
|
3189
|
+
TranslateLibModule,
|
|
3190
|
+
UserComponentModule,
|
|
3191
|
+
ResizableModule,
|
|
3192
|
+
MatProgressSpinnerModule,
|
|
3193
|
+
SearchComponentModule,
|
|
3194
|
+
HeaderComponentModule,
|
|
3195
|
+
PanelComponentModule,
|
|
3196
|
+
TabsComponentModule,
|
|
3197
|
+
CaseViewComponentModule,
|
|
3198
|
+
],
|
|
3199
|
+
exports: [
|
|
3200
|
+
NavigationDrawerComponent,
|
|
3201
|
+
NavigationRailComponent,
|
|
3202
|
+
NavigationTreeComponent,
|
|
3203
|
+
GroupNavigationComponentResolverComponent,
|
|
3204
|
+
DefaultSimpleTaskViewComponent,
|
|
3205
|
+
DefaultTabbedTaskViewComponent,
|
|
3206
|
+
DefaultTabbedCaseViewComponent,
|
|
3207
|
+
DefaultTabViewComponent
|
|
3208
|
+
],
|
|
3209
|
+
providers: [
|
|
3210
|
+
{ provide: NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, useValue: ɵ0$c },
|
|
3211
|
+
{ provide: GroupNavigationComponentResolverService, useClass: DefaultGroupNavigationComponentResolverService }
|
|
3212
|
+
],
|
|
3213
|
+
entryComponents: [
|
|
3214
|
+
GroupNavigationComponentResolverComponent,
|
|
3215
|
+
DefaultSimpleTaskViewComponent,
|
|
3216
|
+
DefaultTabbedTaskViewComponent,
|
|
3217
|
+
DefaultTabbedCaseViewComponent,
|
|
3218
|
+
DefaultTabViewComponent
|
|
3219
|
+
]
|
|
3220
|
+
},] }
|
|
3221
|
+
];
|
|
3222
|
+
|
|
3223
|
+
/* APIS */
|
|
3224
|
+
|
|
3225
|
+
/* MODULES */
|
|
3226
|
+
|
|
3227
|
+
/* Module */
|
|
3228
|
+
|
|
3229
|
+
/* Advanced search */
|
|
3230
|
+
|
|
3231
|
+
const ɵ0$d = { showError: true };
|
|
3232
|
+
class NewCaseComponent extends AbstractNewCaseComponent {
|
|
3233
|
+
constructor(_sideMenuControl, _formBuilder, _snackBarService, _caseResourceService, _hotkeysService, _translate) {
|
|
3234
|
+
super(_sideMenuControl, _formBuilder, _snackBarService, _caseResourceService, _hotkeysService, _translate);
|
|
3235
|
+
this._sideMenuControl = _sideMenuControl;
|
|
3236
|
+
this._formBuilder = _formBuilder;
|
|
3237
|
+
this._snackBarService = _snackBarService;
|
|
3238
|
+
this._caseResourceService = _caseResourceService;
|
|
3239
|
+
this._hotkeysService = _hotkeysService;
|
|
3240
|
+
this._translate = _translate;
|
|
3241
|
+
this.isVersionVisible = _sideMenuControl.isVersionVisible;
|
|
3242
|
+
}
|
|
3243
|
+
}
|
|
3244
|
+
NewCaseComponent.ctorParameters = () => [
|
|
3245
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3246
|
+
{ type: FormBuilder },
|
|
3247
|
+
{ type: SnackBarService },
|
|
3248
|
+
{ type: CaseResourceService },
|
|
3249
|
+
{ type: HotkeysService },
|
|
3250
|
+
{ type: TranslateService }
|
|
3251
|
+
];
|
|
3252
|
+
NewCaseComponent.decorators = [
|
|
3253
|
+
{ type: Component, args: [{
|
|
3254
|
+
selector: 'nc-new-case',
|
|
3255
|
+
template: "<div #toolbar class=\"custom-mat-toolbar\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{titleShortening()}}\n</div>\n<mat-vertical-stepper *ngIf=\"hasMultipleNets$ | async\" linear #stepper1>\n <mat-step [stepControl]=\"processFormControl\" errorMessage=\"{{'side-menu.new-case.errFirst' | translate}}\">\n <ng-template matStepLabel>{{'side-menu.new-case.choose' | translate}}</ng-template>\n <mat-form-field>\n <input type=\"text\" matInput [formControl]=\"processFormControl\" [matAutocomplete]=\"auto\" required\n (keyup.enter)=\"nextStep()\" (change)=\"checkVersion(processFormControl.value)\">\n <span class=\"version-span\" *ngIf=\"isVersionVisible\" matSuffix>{{netVersion}}</span>\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\"\n (optionSelected)=\"showVersion($event.option)\">\n <mat-option *ngFor=\"let option of filteredOptions$ | async\" [value]=\"option\">\n {{option.viewValue}}\n <span class=\"version-span\" *ngIf=\"isVersionVisible\">{{option.version}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div>\n <button *ngIf=\"isCaseTitleEnabled()\" mat-button matStepperNext>{{'side-menu.new-case.next' | translate}}</button>\n <button *ngIf=\"!isCaseTitleEnabled()\" mat-button (click)=\"createNewCase()\">{{'side-menu.new-case.create' | translate}}</button>\n </div>\n </mat-step>\n <mat-step *ngIf=\"isCaseTitleEnabled()\" [stepControl]=\"titleFormControl\" errorMessage=\"{{'side-menu.new-case.errSecond' | translate}}\">\n <ng-template matStepLabel>{{'side-menu.new-case.caseTitle' | translate}}</ng-template>\n <mat-form-field>\n <input matInput placeholder=\"Title\" autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div>\n <button mat-button (click)=\"stepper1.reset(); checkVersion(processFormControl.value)\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-button (click)=\"createNewCase()\">{{'side-menu.new-case.create' | translate}}</button>\n </div>\n </mat-step>\n</mat-vertical-stepper>\n<mat-vertical-stepper *ngIf=\"(hasMultipleNets$ | async) === false\" linear #stepper2>\n <mat-step [stepControl]=\"titleFormControl\" errorMessage=\"{{'side-menu.new-case.errSecond' | translate}}\">\n <ng-template matStepLabel>{{'side-menu.new-case.caseTitle' | translate}}</ng-template>\n <mat-form-field>\n <input matInput placeholder=\"Title\" autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div>\n <button mat-button (click)=\"stepper2.reset()\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-button (click)=\"createNewCase()\">{{'side-menu.new-case.create' | translate}}</button>\n </div>\n </mat-step>\n</mat-vertical-stepper>\n<div *ngIf=\"(notInitialized$ | async)\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-spinner class=\"spinner-margin\"></mat-spinner>\n</div>\n",
|
|
3256
|
+
providers: [{
|
|
3257
|
+
provide: STEPPER_GLOBAL_OPTIONS,
|
|
3258
|
+
useValue: ɵ0$d
|
|
3259
|
+
}],
|
|
3260
|
+
styles: [".version-span{padding-left:8px;color:gray}.spinner-margin{margin-top:16px}"]
|
|
3261
|
+
},] }
|
|
3262
|
+
];
|
|
3263
|
+
NewCaseComponent.ctorParameters = () => [
|
|
3264
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3265
|
+
{ type: FormBuilder },
|
|
3266
|
+
{ type: SnackBarService },
|
|
3267
|
+
{ type: CaseResourceService },
|
|
3268
|
+
{ type: HotkeysService },
|
|
3269
|
+
{ type: TranslateService }
|
|
3270
|
+
];
|
|
3271
|
+
|
|
3272
|
+
const ɵ0$e = NewCaseComponent;
|
|
3273
|
+
class SideMenuNewCaseComponentModule {
|
|
3274
|
+
}
|
|
3275
|
+
SideMenuNewCaseComponentModule.decorators = [
|
|
3276
|
+
{ type: NgModule, args: [{
|
|
3277
|
+
declarations: [
|
|
3278
|
+
NewCaseComponent
|
|
3279
|
+
],
|
|
3280
|
+
imports: [
|
|
3281
|
+
CommonModule,
|
|
3282
|
+
MaterialModule,
|
|
3283
|
+
CovalentModule,
|
|
3284
|
+
FlexLayoutModule,
|
|
3285
|
+
FlexModule,
|
|
3286
|
+
FormsModule,
|
|
3287
|
+
SnackBarModule,
|
|
3288
|
+
TranslateLibModule,
|
|
3289
|
+
HotkeyModule.forRoot()
|
|
3290
|
+
],
|
|
3291
|
+
exports: [NewCaseComponent],
|
|
3292
|
+
entryComponents: [NewCaseComponent],
|
|
3293
|
+
providers: [
|
|
3294
|
+
{ provide: NAE_NEW_CASE_COMPONENT, useValue: ɵ0$e }
|
|
3295
|
+
]
|
|
3296
|
+
},] }
|
|
3297
|
+
];
|
|
3298
|
+
|
|
3299
|
+
class ImportNetComponent extends AbstractImportNetComponent {
|
|
3300
|
+
constructor(_sideMenuControl, _petriNetResource, _log, _snackbar, _translate) {
|
|
3301
|
+
super(_sideMenuControl, _petriNetResource, _log, _snackbar, _translate);
|
|
3302
|
+
this._sideMenuControl = _sideMenuControl;
|
|
3303
|
+
this._petriNetResource = _petriNetResource;
|
|
3304
|
+
this._log = _log;
|
|
3305
|
+
this._snackbar = _snackbar;
|
|
3306
|
+
this._translate = _translate;
|
|
3307
|
+
}
|
|
3308
|
+
}
|
|
3309
|
+
ImportNetComponent.ctorParameters = () => [
|
|
3310
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3311
|
+
{ type: PetriNetResourceService },
|
|
3312
|
+
{ type: LoggerService },
|
|
3313
|
+
{ type: SnackBarService },
|
|
3314
|
+
{ type: TranslateService }
|
|
3315
|
+
];
|
|
3316
|
+
ImportNetComponent.decorators = [
|
|
3317
|
+
{ type: Component, args: [{
|
|
3318
|
+
selector: 'nc-import-net',
|
|
3319
|
+
template: "<mat-toolbar color=\"primary\">{{ 'side-menu.import-net.upload' | translate}}</mat-toolbar>\n\n<div fxLayout=\"column\" class=\"container side-menu-root\">\n\n <ul class=\"file-list\">\n <li *ngFor=\"let file of fileList\" [@fadeInOut]=\"'in'\">\n <mat-progress-bar color=\"accent\" [value]=\"file.progress\"></mat-progress-bar>\n <span class=\"file-list-label\">\n <mat-progress-spinner *ngIf=\"file.inProgress && file.uploaded\" class=\"margin-right-default\"\n color=\"accent\" mode=\"indeterminate\" diameter=\"20\"></mat-progress-spinner>\n <mat-icon *ngIf=\"!file.inProgress && file.uploaded && file.completed\"\n class=\"done-icon margin-right-default\">\n done\n </mat-icon>\n <mat-icon *ngIf=\"!file.inProgress && !file.completed && file.error\"\n class=\"done-icon margin-right-default\">\n error\n </mat-icon>\n {{file.data.name}}\n <a title=\"Retry\" (click)=\"retryFile(file)\" *ngIf=\"!file.inProgress && file.error\">\n <mat-icon>refresh</mat-icon>\n </a>\n <a title=\"Cancel\" (click)=\"cancelFile(file)\" *ngIf=\"file.inProgress\">\n <mat-icon>cancel</mat-icon>\n </a>\n </span>\n </li>\n </ul>\n\n <input type=\"file\" id=\"sidemenu-fileUpload\" name=\"fileUpload\" multiple=\"multiple\"\n accept=\"text/xml\" class=\"display-none\"/>\n\n <mat-form-field color=\"primary\">\n <mat-label>Release</mat-label>\n <mat-select [formControl]=\"releaseTypeControl\">\n <mat-option *ngFor=\"let type of releaseTypes\" [value]=\"type\">\n {{type}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <button mat-raised-button color=\"primary\" (click)=\"onProcessFileChosen()\">\n <mat-icon>file_upload</mat-icon>\n {{ 'side-menu.import-net.choose' | translate}}\n </button>\n\n <button *ngIf=\"isAllFinished\" mat-flat-button (click)=\"close()\">\n {{ 'side-menu.import-net.done' | translate}}\n </button>\n\n</div>\n",
|
|
3320
|
+
animations: [
|
|
3321
|
+
trigger('fadeInOut', [
|
|
3322
|
+
state('in', style({ opacity: 100 })),
|
|
3323
|
+
transition('* => void', [
|
|
3324
|
+
animate(300, style({ opacity: 0 }))
|
|
3325
|
+
])
|
|
3326
|
+
])
|
|
3327
|
+
],
|
|
3328
|
+
styles: [".file-list,.file-list li{margin:0;padding:0;list-style:none}.file-list-label{display:inline-flex;vertical-align:middle;font-size:12px;line-height:18px}.file-list-label mat-icon{font-size:18px;text-align:center}.file-list-label a{cursor:pointer}.container{padding:10%}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.display-none{display:none!important}"]
|
|
3329
|
+
},] }
|
|
3330
|
+
];
|
|
3331
|
+
ImportNetComponent.ctorParameters = () => [
|
|
3332
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3333
|
+
{ type: PetriNetResourceService },
|
|
3334
|
+
{ type: LoggerService },
|
|
3335
|
+
{ type: SnackBarService },
|
|
3336
|
+
{ type: TranslateService }
|
|
3337
|
+
];
|
|
3338
|
+
|
|
3339
|
+
class SideMenuImportNetComponentModule {
|
|
3340
|
+
}
|
|
3341
|
+
SideMenuImportNetComponentModule.decorators = [
|
|
3342
|
+
{ type: NgModule, args: [{
|
|
3343
|
+
declarations: [
|
|
3344
|
+
ImportNetComponent
|
|
3345
|
+
],
|
|
3346
|
+
imports: [
|
|
3347
|
+
CommonModule,
|
|
3348
|
+
MaterialModule,
|
|
3349
|
+
CovalentModule,
|
|
3350
|
+
FlexLayoutModule,
|
|
3351
|
+
FlexModule,
|
|
3352
|
+
FormsModule,
|
|
3353
|
+
TranslateLibModule
|
|
3354
|
+
],
|
|
3355
|
+
exports: [ImportNetComponent],
|
|
3356
|
+
entryComponents: [ImportNetComponent]
|
|
3357
|
+
},] }
|
|
3358
|
+
];
|
|
3359
|
+
|
|
3360
|
+
/**
|
|
3361
|
+
* Allows user to choose a {@link Filter} from the {@link FilterRepository}.
|
|
3362
|
+
*
|
|
3363
|
+
* Publishes events to the {@link SideMenuControl} object when:
|
|
3364
|
+
*
|
|
3365
|
+
* - filter is selected by the user. Message: `New selected filter`, Data: is either the selected filter or `undefined` if the user
|
|
3366
|
+
* deselected the filter
|
|
3367
|
+
*
|
|
3368
|
+
* - filter selection is confirmed by the user. Message: `Selected filter was confirmed`, Data: the selected filter. If the user didn't
|
|
3369
|
+
* select any filter this event will not be published.
|
|
3370
|
+
*
|
|
3371
|
+
*/
|
|
3372
|
+
class FilterSelectorComponent extends AbstractFilterSelectorComponent {
|
|
3373
|
+
/**
|
|
3374
|
+
* Retrieves the {@link Filter} objects from the {@link FilterRepository} and instantiates this component.
|
|
3375
|
+
*
|
|
3376
|
+
* Filters that are available for selection can be set using the injected data. See {@link FilterSelectorInjectionData}
|
|
3377
|
+
* for more information.
|
|
3378
|
+
* @param _sideMenuControl -
|
|
3379
|
+
* @param _filterRepository -
|
|
3380
|
+
*/
|
|
3381
|
+
constructor(_sideMenuControl, _filterRepository) {
|
|
3382
|
+
super(_sideMenuControl, _filterRepository);
|
|
3383
|
+
this._sideMenuControl = _sideMenuControl;
|
|
3384
|
+
this._filterRepository = _filterRepository;
|
|
3385
|
+
}
|
|
3386
|
+
}
|
|
3387
|
+
FilterSelectorComponent.ctorParameters = () => [
|
|
3388
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3389
|
+
{ type: FilterRepository }
|
|
3390
|
+
];
|
|
3391
|
+
FilterSelectorComponent.decorators = [
|
|
3392
|
+
{ type: Component, args: [{
|
|
3393
|
+
selector: 'nc-filter-selector',
|
|
3394
|
+
template: "<mat-toolbar color=\"primary\">{{ 'side-menu.filter-selector.choose-filter' | translate}}</mat-toolbar>\n<div class=\"filter-selector-root side-menu-root\">\n <div class=\"input-margin\">\n <mat-form-field class=\"full-width-input\">\n <mat-label>{{'side-menu.filter-selector.search-filter' | translate}}</mat-label>\n <input matInput type=\"text\" [formControl]=\"searchFormControl\">\n </mat-form-field>\n </div>\n <div *ngIf=\"caseFilters.filtered.length > 0\">\n <h4 class=\"header-padding\">{{ 'side-menu.filter-selector.case-filters' | translate}}</h4>\n <mat-selection-list (selectionChange)=\"caseFilterSelected($event)\" #caseFilterList>\n <mat-list-option *ngFor=\"let filter of caseFilters.filtered\" [value]=\"filter\">\n <nc-filter-selector-list-item [filter]=\"filter\"></nc-filter-selector-list-item>\n </mat-list-option>\n </mat-selection-list>\n </div>\n <div *ngIf=\"taskFilters.filtered.length > 0\">\n <h4 class=\"header-padding\">{{ 'side-menu.filter-selector.task-filters' | translate}}</h4>\n <mat-selection-list (selectionChange)=\"taskFilterSelected($event)\" #taskFilterList>\n <mat-list-option *ngFor=\"let filter of taskFilters.filtered\" [value]=\"filter\">\n <nc-filter-selector-list-item [filter]=\"filter\"></nc-filter-selector-list-item>\n </mat-list-option>\n </mat-selection-list>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-stroked-button color=\"primary\" class=\"submit-button-padding\"\n (click)=\"filterSelectionConfirmed()\">{{ 'side-menu.filter-selector.select' | translate }}</button>\n </div>\n</div>\n",
|
|
3395
|
+
styles: [".filter-selector-root{width:calc(100% - 8px);margin:0;padding-top:4px;padding-left:4px;padding-right:4px}.header-padding{padding:0 0 0 16px}.submit-button-padding{margin-right:16px}.input-margin{margin-left:16px;margin-right:16px}.full-width-input{display:block;margin:0 auto;width:100%}"]
|
|
3396
|
+
},] }
|
|
3397
|
+
];
|
|
3398
|
+
FilterSelectorComponent.ctorParameters = () => [
|
|
3399
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3400
|
+
{ type: FilterRepository }
|
|
3401
|
+
];
|
|
3402
|
+
|
|
3403
|
+
/**
|
|
3404
|
+
* @ignore
|
|
3405
|
+
* Renders a single filter in the selection list.
|
|
3406
|
+
*/
|
|
3407
|
+
class FilterSelectorListItemComponent extends AbstractFilterSelectorListItemComponent {
|
|
3408
|
+
}
|
|
3409
|
+
FilterSelectorListItemComponent.decorators = [
|
|
3410
|
+
{ type: Component, args: [{
|
|
3411
|
+
selector: 'nc-filter-selector-list-item',
|
|
3412
|
+
template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span>{{text}}</span>\n</div>\n",
|
|
3413
|
+
styles: [""]
|
|
3414
|
+
},] }
|
|
3415
|
+
];
|
|
3416
|
+
|
|
3417
|
+
class SideMenuFilterSelectorComponentModule {
|
|
3418
|
+
}
|
|
3419
|
+
SideMenuFilterSelectorComponentModule.decorators = [
|
|
3420
|
+
{ type: NgModule, args: [{
|
|
3421
|
+
declarations: [
|
|
3422
|
+
FilterSelectorComponent,
|
|
3423
|
+
FilterSelectorListItemComponent,
|
|
3424
|
+
],
|
|
3425
|
+
imports: [
|
|
3426
|
+
CommonModule,
|
|
3427
|
+
MaterialModule,
|
|
3428
|
+
TranslateLibModule,
|
|
3429
|
+
],
|
|
3430
|
+
exports: [
|
|
3431
|
+
FilterSelectorComponent,
|
|
3432
|
+
],
|
|
3433
|
+
entryComponents: [
|
|
3434
|
+
FilterSelectorComponent
|
|
3435
|
+
]
|
|
3436
|
+
},] }
|
|
3437
|
+
];
|
|
3438
|
+
|
|
3439
|
+
class OptionSelectorComponent extends AbstractOptionSelectorComponent {
|
|
3440
|
+
constructor(_sideMenuControl) {
|
|
3441
|
+
super(_sideMenuControl);
|
|
3442
|
+
this._sideMenuControl = _sideMenuControl;
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3445
|
+
OptionSelectorComponent.ctorParameters = () => [
|
|
3446
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
|
|
3447
|
+
];
|
|
3448
|
+
OptionSelectorComponent.decorators = [
|
|
3449
|
+
{ type: Component, args: [{
|
|
3450
|
+
selector: 'nc-option-selector',
|
|
3451
|
+
template: "<mat-toolbar color=\"primary\">{{ data.title | translate}}</mat-toolbar>\n<div fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <mat-form-field class=\"select-field-margin\">\n <input type=\"text\" matInput required\n [placeholder]=\"'side-menu.option-selector.choose-one-option' | translate\"\n [formControl]=\"selectorFormControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"submit()\">\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\n {{option.text}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button mat-stroked-button (click)=\"submit()\">{{'side-menu.option-selector.select' | translate}}</button>\n </div>\n</div>\n",
|
|
3452
|
+
styles: [".select-field-margin{margin:8px 16px}"]
|
|
3453
|
+
},] }
|
|
3454
|
+
];
|
|
3455
|
+
OptionSelectorComponent.ctorParameters = () => [
|
|
3456
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
|
|
3457
|
+
];
|
|
3458
|
+
|
|
3459
|
+
const ɵ0$f = OptionSelectorComponent;
|
|
3460
|
+
class SideMenuOptionSelectorComponentModule {
|
|
3461
|
+
}
|
|
3462
|
+
SideMenuOptionSelectorComponentModule.decorators = [
|
|
3463
|
+
{ type: NgModule, args: [{
|
|
3464
|
+
imports: [
|
|
3465
|
+
CommonModule,
|
|
3466
|
+
MaterialModule,
|
|
3467
|
+
TranslateLibModule
|
|
3468
|
+
],
|
|
3469
|
+
declarations: [
|
|
3470
|
+
OptionSelectorComponent
|
|
3471
|
+
],
|
|
3472
|
+
exports: [
|
|
3473
|
+
OptionSelectorComponent
|
|
3474
|
+
],
|
|
3475
|
+
entryComponents: [
|
|
3476
|
+
OptionSelectorComponent
|
|
3477
|
+
],
|
|
3478
|
+
providers: [
|
|
3479
|
+
{ provide: NAE_OPTION_SELECTOR_COMPONENT, useValue: ɵ0$f }
|
|
3480
|
+
]
|
|
3481
|
+
},] }
|
|
3482
|
+
];
|
|
3483
|
+
|
|
3484
|
+
function baseFilterFactory$1(sideMenuControl) {
|
|
3485
|
+
if (!sideMenuControl.data) {
|
|
3486
|
+
throw new Error('NewFilterCaseId was not provided in the sidemenu injectio data');
|
|
3487
|
+
}
|
|
3488
|
+
const injectedData = sideMenuControl.data;
|
|
3489
|
+
return {
|
|
3490
|
+
filter: SimpleFilter.fromTaskQuery({
|
|
3491
|
+
case: { id: injectedData.newFilterCaseId },
|
|
3492
|
+
transitionId: UserFilterConstants.NEW_FILTER_TRANSITION_ID
|
|
3493
|
+
})
|
|
3494
|
+
};
|
|
3495
|
+
}
|
|
3496
|
+
function localAllowedNetsFactory(factory) {
|
|
3497
|
+
return factory.createFromArray([UserFilterConstants.FILTER_NET_IDENTIFIER]);
|
|
3498
|
+
}
|
|
3499
|
+
class SaveFilterComponent extends AbstractSaveFilterComponent {
|
|
3500
|
+
constructor(sideMenuControl, userFilterService, log, taskViewService) {
|
|
3501
|
+
super(sideMenuControl, userFilterService, log, taskViewService);
|
|
3502
|
+
}
|
|
3503
|
+
}
|
|
3504
|
+
SaveFilterComponent.ctorParameters = () => [
|
|
3505
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3506
|
+
{ type: UserFiltersService },
|
|
3507
|
+
{ type: LoggerService },
|
|
3508
|
+
{ type: TaskViewService }
|
|
3509
|
+
];
|
|
3510
|
+
SaveFilterComponent.decorators = [
|
|
3511
|
+
{ type: Component, args: [{
|
|
3512
|
+
selector: 'nc-save-filter',
|
|
3513
|
+
template: "<mat-toolbar color=\"primary\">{{'search.tooltip.save' | translate}}</mat-toolbar>\n<div class=\"save-filter-container side-menu-root\">\n <nc-task-list [allowMultiOpen]=\"false\" [tasks$]=\"tasks$\" [loading$]=\"loading$\" [textEllipsis]=\"true\" [forceLoadDataOnOpen]=\"true\"\n [responsiveBody]=\"true\" [selectedHeaders$]=\"selectedHeaders$\" (taskEvent)=\"processTaskEvents($event)\" fxFlex class=\"virtual-scroll-list-padding\"></nc-task-list>\n</div>\n",
|
|
3514
|
+
providers: [
|
|
3515
|
+
TaskViewService,
|
|
3516
|
+
SearchService,
|
|
3517
|
+
{ provide: NAE_BASE_FILTER,
|
|
3518
|
+
useFactory: baseFilterFactory$1,
|
|
3519
|
+
deps: [NAE_SIDE_MENU_CONTROL]
|
|
3520
|
+
},
|
|
3521
|
+
{ provide: AllowedNetsService,
|
|
3522
|
+
useFactory: localAllowedNetsFactory,
|
|
3523
|
+
deps: [AllowedNetsServiceFactory] },
|
|
3524
|
+
],
|
|
3525
|
+
styles: [".save-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.virtual-scroll-list-padding{padding-right:4px}"]
|
|
3526
|
+
},] }
|
|
3527
|
+
];
|
|
3528
|
+
SaveFilterComponent.ctorParameters = () => [
|
|
3529
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3530
|
+
{ type: UserFiltersService },
|
|
3531
|
+
{ type: LoggerService },
|
|
3532
|
+
{ type: TaskViewService }
|
|
3533
|
+
];
|
|
3534
|
+
|
|
3535
|
+
const ɵ0$g = SaveFilterComponent;
|
|
3536
|
+
class SideMenuSaveFilterComponentModule {
|
|
3537
|
+
}
|
|
3538
|
+
SideMenuSaveFilterComponentModule.decorators = [
|
|
3539
|
+
{ type: NgModule, args: [{
|
|
3540
|
+
imports: [
|
|
3541
|
+
CommonModule,
|
|
3542
|
+
MaterialModule,
|
|
3543
|
+
TranslateLibModule,
|
|
3544
|
+
PanelComponentModule
|
|
3545
|
+
],
|
|
3546
|
+
declarations: [SaveFilterComponent],
|
|
3547
|
+
exports: [SaveFilterComponent],
|
|
3548
|
+
entryComponents: [SaveFilterComponent],
|
|
3549
|
+
providers: [
|
|
3550
|
+
{ provide: NAE_SAVE_FILTER_COMPONENT, useValue: ɵ0$g }
|
|
3551
|
+
]
|
|
3552
|
+
},] }
|
|
3553
|
+
];
|
|
3554
|
+
|
|
3555
|
+
function baseFilterFactory$2(sideMenuControl) {
|
|
3556
|
+
if (!sideMenuControl.data) {
|
|
3557
|
+
throw new Error('NewFilterCaseId was not provided in the side menu injection data');
|
|
3558
|
+
}
|
|
3559
|
+
const injectedData = sideMenuControl.data;
|
|
3560
|
+
return { filter: injectedData.filter };
|
|
3561
|
+
}
|
|
3562
|
+
function localAllowedNetsFactory$1(factory) {
|
|
3563
|
+
return factory.createFromArray([UserFilterConstants.FILTER_NET_IDENTIFIER]);
|
|
3564
|
+
}
|
|
3565
|
+
const ɵ0$h = ['meta-title', `${UserFilterConstants.FILTER_NET_IDENTIFIER}-${UserFilterConstants.FILTER_FIELD_ID}`];
|
|
3566
|
+
class LoadFilterComponent extends AbstractLoadFilterComponent {
|
|
3567
|
+
constructor(sideMenuControl, log, caseViewService) {
|
|
3568
|
+
super(sideMenuControl, log, caseViewService);
|
|
3569
|
+
}
|
|
3570
|
+
ngAfterViewInit() {
|
|
3571
|
+
this.initializeHeader(this.caseHeaderComponent);
|
|
3572
|
+
}
|
|
3573
|
+
}
|
|
3574
|
+
LoadFilterComponent.ctorParameters = () => [
|
|
3575
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3576
|
+
{ type: LoggerService },
|
|
3577
|
+
{ type: CaseViewService }
|
|
3578
|
+
];
|
|
3579
|
+
LoadFilterComponent.decorators = [
|
|
3580
|
+
{ type: Component, args: [{
|
|
3581
|
+
selector: 'nc-load-filter',
|
|
3582
|
+
template: "<mat-toolbar color=\"primary\">{{'search.tooltip.load' | translate}}</mat-toolbar>\n<div class=\"load-filter-container side-menu-root\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"2\" [responsiveHeaders]=\"true\" [hideEditMode]=\"true\" class=\"case-header-padding\" [ngStyle]=\"{'width': getWidth()}\"></nc-header>\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [showDeleteMenu]=\"false\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex [textEllipsis]=\"true\" class=\"virtual-scroll-list-padding\"></nc-case-list>\n</div>\n",
|
|
3583
|
+
providers: [
|
|
3584
|
+
CaseViewService,
|
|
3585
|
+
SearchService,
|
|
3586
|
+
{ provide: NAE_BASE_FILTER,
|
|
3587
|
+
useFactory: baseFilterFactory$2,
|
|
3588
|
+
deps: [NAE_SIDE_MENU_CONTROL] },
|
|
3589
|
+
{ provide: AllowedNetsService,
|
|
3590
|
+
useFactory: localAllowedNetsFactory$1,
|
|
3591
|
+
deps: [AllowedNetsServiceFactory] },
|
|
3592
|
+
{ provide: NAE_DEFAULT_HEADERS, useValue: ɵ0$h }
|
|
3593
|
+
],
|
|
3594
|
+
styles: [".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.case-header-padding{padding-bottom:16px;padding-top:4px}.virtual-scroll-list-padding{padding-right:4px}"]
|
|
3595
|
+
},] }
|
|
3596
|
+
];
|
|
3597
|
+
LoadFilterComponent.ctorParameters = () => [
|
|
3598
|
+
{ type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
|
|
3599
|
+
{ type: LoggerService },
|
|
3600
|
+
{ type: CaseViewService }
|
|
3601
|
+
];
|
|
3602
|
+
LoadFilterComponent.propDecorators = {
|
|
3603
|
+
caseHeaderComponent: [{ type: ViewChild, args: ['header',] }]
|
|
3604
|
+
};
|
|
3605
|
+
|
|
3606
|
+
const ɵ0$i = LoadFilterComponent;
|
|
3607
|
+
class SideMenuLoadFilterComponentModule {
|
|
3608
|
+
}
|
|
3609
|
+
SideMenuLoadFilterComponentModule.decorators = [
|
|
3610
|
+
{ type: NgModule, args: [{
|
|
3611
|
+
imports: [
|
|
3612
|
+
CommonModule,
|
|
3613
|
+
MaterialModule,
|
|
3614
|
+
TranslateLibModule,
|
|
3615
|
+
CaseViewComponentModule,
|
|
3616
|
+
HeaderComponentModule,
|
|
3617
|
+
],
|
|
3618
|
+
declarations: [LoadFilterComponent],
|
|
3619
|
+
exports: [LoadFilterComponent],
|
|
3620
|
+
entryComponents: [LoadFilterComponent],
|
|
3621
|
+
providers: [
|
|
3622
|
+
{ provide: NAE_LOAD_FILTER_COMPONENT, useValue: ɵ0$i }
|
|
3623
|
+
]
|
|
3624
|
+
},] }
|
|
3625
|
+
];
|
|
3626
|
+
|
|
3627
|
+
const ɵ0$j = UserAssignComponent, ɵ1$4 = NewCaseComponent, ɵ2$2 = OptionSelectorComponent, ɵ3$1 = SaveFilterComponent, ɵ4 = LoadFilterComponent;
|
|
3628
|
+
class SideMenuContentComponentModule {
|
|
3629
|
+
}
|
|
3630
|
+
SideMenuContentComponentModule.decorators = [
|
|
3631
|
+
{ type: NgModule, args: [{
|
|
3632
|
+
imports: [
|
|
3633
|
+
CommonModule,
|
|
3634
|
+
SideMenuUserAssignComponentModule,
|
|
3635
|
+
SideMenuNewCaseComponentModule,
|
|
3636
|
+
SideMenuImportNetComponentModule,
|
|
3637
|
+
SideMenuFilterSelectorComponentModule,
|
|
3638
|
+
SideMenuOptionSelectorComponentModule,
|
|
3639
|
+
SideMenuSaveFilterComponentModule,
|
|
3640
|
+
SideMenuLoadFilterComponentModule,
|
|
3641
|
+
],
|
|
3642
|
+
exports: [
|
|
3643
|
+
SideMenuUserAssignComponentModule,
|
|
3644
|
+
SideMenuNewCaseComponentModule,
|
|
3645
|
+
SideMenuImportNetComponentModule,
|
|
3646
|
+
SideMenuFilterSelectorComponentModule,
|
|
3647
|
+
SideMenuOptionSelectorComponentModule,
|
|
3648
|
+
SideMenuSaveFilterComponentModule,
|
|
3649
|
+
SideMenuLoadFilterComponentModule,
|
|
3650
|
+
],
|
|
3651
|
+
providers: [
|
|
3652
|
+
{ provide: NAE_USER_ASSIGN_COMPONENT, useValue: ɵ0$j },
|
|
3653
|
+
{ provide: NAE_NEW_CASE_COMPONENT, useValue: ɵ1$4 },
|
|
3654
|
+
{ provide: NAE_OPTION_SELECTOR_COMPONENT, useValue: ɵ2$2 },
|
|
3655
|
+
{ provide: NAE_SAVE_FILTER_COMPONENT, useValue: ɵ3$1 },
|
|
3656
|
+
{ provide: NAE_LOAD_FILTER_COMPONENT, useValue: ɵ4 }
|
|
3657
|
+
]
|
|
3658
|
+
},] }
|
|
3659
|
+
];
|
|
3660
|
+
|
|
3661
|
+
/* MODULES */
|
|
3662
|
+
/* MODELS */
|
|
3663
|
+
|
|
3664
|
+
class SideMenuContainerComponent extends AbstractSideMenuContainerComponent {
|
|
3665
|
+
constructor(_sideMenuService) {
|
|
3666
|
+
super(_sideMenuService);
|
|
3667
|
+
this._sideMenuService = _sideMenuService;
|
|
3668
|
+
}
|
|
3669
|
+
}
|
|
3670
|
+
SideMenuContainerComponent.ctorParameters = () => [
|
|
3671
|
+
{ type: SideMenuService }
|
|
3672
|
+
];
|
|
3673
|
+
SideMenuContainerComponent.decorators = [
|
|
3674
|
+
{ type: Component, args: [{
|
|
3675
|
+
selector: 'nc-side-menu-container',
|
|
3676
|
+
template: "<mat-sidenav-container class=\"side-menu-container\">\n <mat-sidenav #rightSideMenu mode=\"over\" position=\"end\" class=\"side-menu\" ngClass.lt-sm=\"side-menu-size-mobile\"\n [ngClass.gt-xs]=\"portalWrapper.size\">\n <ng-template [cdkPortalOutlet]=\"portalWrapper.portal\"></ng-template>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n",
|
|
3677
|
+
styles: [".side-menu-container{position:absolute;top:0;bottom:0;left:0;right:0}.side-menu{border-radius:4px}.side-menu-width-small{width:296px}.side-menu-width-medium{width:400px}.side-menu-width-large{width:496px}.side-menu-size-mobile{width:246px}"]
|
|
3678
|
+
},] }
|
|
3679
|
+
];
|
|
3680
|
+
SideMenuContainerComponent.ctorParameters = () => [
|
|
3681
|
+
{ type: SideMenuService }
|
|
3682
|
+
];
|
|
3683
|
+
|
|
3684
|
+
class SideMenuComponentModule {
|
|
3685
|
+
}
|
|
3686
|
+
SideMenuComponentModule.decorators = [
|
|
3687
|
+
{ type: NgModule, args: [{
|
|
3688
|
+
declarations: [
|
|
3689
|
+
SideMenuContainerComponent
|
|
3690
|
+
],
|
|
3691
|
+
imports: [
|
|
3692
|
+
CommonModule,
|
|
3693
|
+
RouterModule,
|
|
3694
|
+
MaterialModule,
|
|
3695
|
+
MatSidenavModule,
|
|
3696
|
+
PortalModule
|
|
3697
|
+
],
|
|
3698
|
+
exports: [
|
|
3699
|
+
SideMenuContainerComponent
|
|
3700
|
+
]
|
|
3701
|
+
},] }
|
|
3702
|
+
];
|
|
3703
|
+
|
|
3704
|
+
/* APIS */
|
|
3705
|
+
|
|
3706
|
+
/* MODULES */
|
|
3707
|
+
|
|
3708
|
+
class ToolbarComponent extends AbstractToolbarComponent {
|
|
3709
|
+
constructor(translate, selectLangService) {
|
|
3710
|
+
super(translate, selectLangService);
|
|
3711
|
+
this.translate = translate;
|
|
3712
|
+
this.selectLangService = selectLangService;
|
|
3713
|
+
}
|
|
3714
|
+
}
|
|
3715
|
+
ToolbarComponent.ctorParameters = () => [
|
|
3716
|
+
{ type: TranslateService },
|
|
3717
|
+
{ type: LanguageService }
|
|
3718
|
+
];
|
|
3719
|
+
ToolbarComponent.decorators = [
|
|
3720
|
+
{ type: Component, args: [{
|
|
3721
|
+
selector: 'nc-toolbar',
|
|
3722
|
+
template: "<mat-toolbar color=\"primary\">\n <mat-toolbar-row fxLayout=\"row\">\n <div class=\"main-toolbar-logo\" fxFlex fxLayout=\"row\">\n <a href=\"/\">\n <img [src]=\"logoSrc\" [alt]=\"logoAlt\">\n </a>\n </div>\n <div fxFlex fxHide.gt-xs=\"false\" fxHide.lt-md=\"true\" fxLayout=\"row\" fxLayoutAlign=\"center\">\n {{appName}}\n </div>\n <div class=\"main-toolbar-menu\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"end\">\n <button mat-button [matMenuTriggerFor]=\"mainMenu\" class=\"main-toolbar-menu-button\" fxLayout=\"row\">\n <span class=\"main-toolbar-logged-user\" fxHide.xs=\"true\">{{loggedUser}}</span>\n <mat-icon class=\"main-toolbar-icon\" aria-hidden=\"false\" aria-label=\"Example home icon\">account_circle\n </mat-icon>\n <mat-menu #mainMenu=\"matMenu\" class=\"main-toolbar-opened-menu\">\n <button mat-menu-item [matMenuTriggerFor]=\"languages\">\n <mat-icon class=\"main-toolbar-menu-icon\" aria-hidden=\"false\" aria-label=\"Example home icon\">\n language\n </mat-icon>\n {{ 'toolbar.menu.lang' | translate }}\n </button>\n <button mat-menu-item>\n <mat-icon class=\"main-toolbar-menu-icon\" aria-hidden=\"false\" aria-label=\"Example home icon\">\n account_circle\n </mat-icon>\n {{ 'toolbar.menu.profile' | translate }}\n </button>\n <button mat-menu-item>\n <mat-icon class=\"main-toolbar-menu-icon\" aria-hidden=\"false\" aria-label=\"Example home icon\">\n exit_to_app\n </mat-icon>\n {{ 'toolbar.menu.logout' | translate }}\n </button>\n </mat-menu>\n <mat-menu #languages=\"matMenu\">\n <button mat-menu-item (click)=\"setLang('en-UK')\">{{ 'toolbar.menu.en' | translate }}\n <mat-icon *ngIf=\"activeLang('en-UK')\" class=\"main-toolbar-menu-icon\"\n aria-hidden=\"false\" aria-label=\"Example home icon\">keyboard_arrow_left\n </mat-icon>\n </button>\n <button mat-menu-item (click)=\"setLang('sk-SK')\">{{ 'toolbar.menu.sk' | translate }}\n <mat-icon *ngIf=\"activeLang('sk-SK')\" class=\"main-toolbar-menu-icon\"\n aria-hidden=\"false\" aria-label=\"Example home icon\">keyboard_arrow_left\n </mat-icon>\n </button>\n <button mat-menu-item (click)=\"setLang('de-DE')\">{{ 'toolbar.menu.de' | translate }}\n <mat-icon *ngIf=\"activeLang('de-DE')\" class=\"main-toolbar-menu-icon\"\n aria-hidden=\"false\" aria-label=\"Example home icon\">keyboard_arrow_left\n </mat-icon>\n </button>\n </mat-menu>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n",
|
|
3723
|
+
styles: [".main-toolbar-logo{max-height:60%}.main-toolbar-logo img{width:120px}mat-icon.main-toolbar-icon{font-size:48px;height:100%;margin-right:15px}.main-toolbar-logged-user{margin-right:15px}.main-toolbar-menu,.main-toolbar-menu-button{font-size:20px;height:100%}.main-toolbar-menu-icon{font-size:23px}"]
|
|
3724
|
+
},] }
|
|
3725
|
+
];
|
|
3726
|
+
ToolbarComponent.ctorParameters = () => [
|
|
3727
|
+
{ type: TranslateService },
|
|
3728
|
+
{ type: LanguageService }
|
|
3729
|
+
];
|
|
3730
|
+
|
|
3731
|
+
class ToolbarComponentModule {
|
|
3732
|
+
}
|
|
3733
|
+
ToolbarComponentModule.decorators = [
|
|
3734
|
+
{ type: NgModule, args: [{
|
|
3735
|
+
declarations: [ToolbarComponent],
|
|
3736
|
+
imports: [
|
|
3737
|
+
CommonModule,
|
|
3738
|
+
FlexLayoutModule,
|
|
3739
|
+
MaterialModule,
|
|
3740
|
+
TranslateLibModule
|
|
3741
|
+
],
|
|
3742
|
+
exports: [
|
|
3743
|
+
ToolbarComponent
|
|
3744
|
+
]
|
|
3745
|
+
},] }
|
|
3746
|
+
];
|
|
3747
|
+
|
|
3748
|
+
class ProfileComponent extends AbstractProfileComponent {
|
|
3749
|
+
constructor(_userService) {
|
|
3750
|
+
super(_userService);
|
|
3751
|
+
this._userService = _userService;
|
|
3752
|
+
}
|
|
3753
|
+
}
|
|
3754
|
+
ProfileComponent.ctorParameters = () => [
|
|
3755
|
+
{ type: UserService }
|
|
3756
|
+
];
|
|
3757
|
+
ProfileComponent.decorators = [
|
|
3758
|
+
{ type: Component, args: [{
|
|
3759
|
+
selector: 'nc-user-profile',
|
|
3760
|
+
template: "<div *ngIf=\"!user\">\n <div fxLayout=\"row\" fxFlex=\"50\" fxLayoutAlign=\"center center\">\n <mat-card fxLayoutAlign=\"center center\">\n <h1>{{ 'profile.notLogged' | translate}}</h1>\n </mat-card>\n </div>\n</div>\n<div *ngIf=\"user\" fxLayout=\"column\" fxLayoutAlign=\"center start\">\n <div [style.backgroundImage]=\"'url('+userBanner+')'\" fxLayout=\"row\" class=\"full-width banner mat-elevation-z6\"\n matRipple fxLayoutAlign=\"start center\">\n <div class=\"user-avatar-large mat-elevation-z6 margin-banner\" matRipple>\n <img [src]=\"userAvatar\" alt=\"user avatar\" class=\"full-width full-height\">\n </div>\n <h1 class=\"white-name\">{{user.fullName}}</h1>\n </div>\n <div fxLayout=\"row\" fxFlex fxLayoutAlign=\"center end\" class=\"full-width div-background\">\n <div fxFlex=\"80\" class=\"tab-group margin-bottom-x2 mat-elevation-z4\">\n <div fxLayout=\"row\">\n <div fxFlex=\"50\" class=\"padding-x2\" fxLayout=\"column\">\n <div fxLayout=\"column\" class=\"full-height border\">\n <div fxLayoutAlign=\"center start\" class=\"card-title\" matRipple>\n <h2>{{ 'profile.personal' | translate}}</h2>\n </div>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"padding-default\">\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <mat-label>{{ 'profile.name' | translate}}</mat-label>\n <input matInput disabled [value]=user.firstName>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <mat-label>{{ 'profile.surname' | translate}}</mat-label>\n <input matInput disabled [value]=user.lastName>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"full-width\">\n <mat-label>Email</mat-label>\n <input disabled matInput [value]=\"user.email\">\n </mat-form-field>\n </div>\n </div>\n </div>\n <div fxFlex=\"50\" class=\"padding-x2\" fxLayout=\"column\">\n <div fxLayout=\"column\" class=\"full-height border\">\n <div fxLayoutAlign=\"center start\" class=\"card-title\" matRipple>\n <h2>{{ 'profile.authority' | translate}}</h2>\n </div>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"padding-default\">\n <mat-form-field appearance=\"outline\" class=\"user-chip-list\">\n <mat-chip-list disabled>\n <mat-chip color=\"primary\"\n *ngFor=\"let authority of user.authorities\">{{authority}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n <div fxLayout=\"row\">\n <div fxFlex=\"50\" class=\"padding-x2\" fxLayout=\"column\">\n <div fxLayout=\"column\" class=\"full-height border\">\n <div fxLayoutAlign=\"center start\" class=\"card-title\" matRipple>\n <h2>{{ 'profile.roles' | translate}}</h2>\n </div>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"padding-default\">\n <mat-form-field appearance=\"outline\" class=\"user-chip-list\">\n <mat-chip-list disabled>\n <mat-chip color=\"primary\" *ngFor=\"let role of user.roles\">{{role.name}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div fxFlex=\"50\" class=\"padding-x2\" fxLayout=\"column\">\n <div fxLayout=\"column\" class=\"full-height border\">\n <div fxLayoutAlign=\"center start\" class=\"card-title\" matRipple>\n <h2>{{ 'profile.groups' | translate}}</h2>\n </div>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"padding-default\">\n <mat-form-field appearance=\"outline\" class=\"user-chip-list\">\n <mat-chip-list disabled>\n <mat-chip color=\"primary\" *ngFor=\"let group of user.groups\">{{group}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
|
|
3761
|
+
styles: [".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-avatar-large{width:100px;height:100px;border-radius:100px}.banner{height:250px;background-repeat:no-repeat;background-size:cover}.margin-banner{margin-left:10%;margin-right:32px}.white-name{color:#fff}.tab-group{margin-top:-48px;z-index:100;background:#f0f0f0}.div-background{background:#ddd}.user-chip-list{width:100%}.border{border:1px solid #ddd;border-radius:5px;background:#fff}"]
|
|
3762
|
+
},] }
|
|
3763
|
+
];
|
|
3764
|
+
ProfileComponent.ctorParameters = () => [
|
|
3765
|
+
{ type: UserService }
|
|
3766
|
+
];
|
|
3767
|
+
|
|
3768
|
+
class ProfileComponentModule {
|
|
3769
|
+
}
|
|
3770
|
+
ProfileComponentModule.decorators = [
|
|
3771
|
+
{ type: NgModule, args: [{
|
|
3772
|
+
declarations: [ProfileComponent],
|
|
3773
|
+
exports: [
|
|
3774
|
+
ProfileComponent
|
|
3775
|
+
],
|
|
3776
|
+
imports: [
|
|
3777
|
+
CommonModule,
|
|
3778
|
+
MaterialModule,
|
|
3779
|
+
TranslateLibModule
|
|
3780
|
+
]
|
|
3781
|
+
},] }
|
|
3782
|
+
];
|
|
3783
|
+
|
|
3784
|
+
/* MODULES */
|
|
3785
|
+
|
|
3786
|
+
class WorkflowViewComponent extends AbstractWorkflowViewComponent {
|
|
3787
|
+
constructor(_sideMenuService, _workflowViewService, _log, _processService) {
|
|
3788
|
+
super(_sideMenuService, _workflowViewService, _log, _processService);
|
|
3789
|
+
this._sideMenuService = _sideMenuService;
|
|
3790
|
+
this._workflowViewService = _workflowViewService;
|
|
3791
|
+
this._log = _log;
|
|
3792
|
+
this._processService = _processService;
|
|
3793
|
+
}
|
|
3794
|
+
importNet() {
|
|
3795
|
+
this.importSidemenuNet(ImportNetComponent);
|
|
3796
|
+
}
|
|
3797
|
+
}
|
|
3798
|
+
WorkflowViewComponent.ctorParameters = () => [
|
|
3799
|
+
{ type: SideMenuService },
|
|
3800
|
+
{ type: WorkflowViewService },
|
|
3801
|
+
{ type: LoggerService },
|
|
3802
|
+
{ type: ProcessService }
|
|
3803
|
+
];
|
|
3804
|
+
WorkflowViewComponent.decorators = [
|
|
3805
|
+
{ type: Component, args: [{
|
|
3806
|
+
selector: 'nc-workflow-view',
|
|
3807
|
+
template: "<div class=\"workflow-container full-height\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div>\n <button mat-fab color=\"primary\" class=\"upload-petri-net\" (click)=\"importNet()\">\n <mat-icon>cloud_upload</mat-icon>\n </button>\n </div>\n <div fxLayout=\"row\" fxLayoutAlign=\"center\" class=\"workflow-header\">\n <nc-header #header fxFlex=\"100\" [type]=\"headerType\"></nc-header>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex class=\"workflow-panels-container\">\n <ng-container *ngIf=\"workflows$ | async as workflows\">\n\n <div *ngIf=\"(loading$ | async) === false && workflows.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\" class=\"font-size-40 block-size-40 margin-bottom-default\">linear_scale\n </mat-icon>\n <span class=\"font-size-20\">{{ 'view-list.noProcessesSatisfyingThisFilter' | translate}}</span>\n </div>\n\n <mat-accordion [multi]=\"true\" fxFlex=\"100\" class=\"full-width\">\n\n <cdk-virtual-scroll-viewport itemSize=\"50\" (scrolledIndexChange)=\"loadNextPage()\" class=\"full-height full-width\">\n\n <nc-workflow-panel\n *cdkVirtualFor=\"let workflow of workflows; let i = index; templateCacheSize: 0; trackBy: trackBy\"\n [workflow]=\"workflow\"\n [selectedHeaders$]=\"selectedHeaders$\"\n [showDeleteMenu]=\"showDeleteMenu\">\n </nc-workflow-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"50\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-accordion>\n </ng-container>\n </div>\n</div>\n",
|
|
3808
|
+
providers: [WorkflowViewService],
|
|
3809
|
+
styles: [".workflow-container{padding:16px}.workflow-header,.workflow-panels-container{margin-top:16px}.upload-petri-net{position:fixed;bottom:24px;right:24px;z-index:999}.full-width{width:100%}.full-height{height:100%}.font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}"]
|
|
3810
|
+
},] }
|
|
3811
|
+
];
|
|
3812
|
+
WorkflowViewComponent.ctorParameters = () => [
|
|
3813
|
+
{ type: SideMenuService },
|
|
3814
|
+
{ type: WorkflowViewService },
|
|
3815
|
+
{ type: LoggerService },
|
|
3816
|
+
{ type: ProcessService }
|
|
3817
|
+
];
|
|
3818
|
+
|
|
3819
|
+
class TreeComponent extends AbstractTreeComponent {
|
|
3820
|
+
constructor(_treeService) {
|
|
3821
|
+
super(_treeService);
|
|
3822
|
+
this._treeService = _treeService;
|
|
3823
|
+
}
|
|
3824
|
+
}
|
|
3825
|
+
TreeComponent.ctorParameters = () => [
|
|
3826
|
+
{ type: CaseTreeService }
|
|
3827
|
+
];
|
|
3828
|
+
TreeComponent.decorators = [
|
|
3829
|
+
{ type: Component, args: [{
|
|
3830
|
+
selector: 'nc-tree-component',
|
|
3831
|
+
template: "<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\n <div class=\"min-node-height width-100\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n [ngClass]=\"{'selected-tree-node border-radius': selectedCaseNode(node)}\" (click)=\"caseNodeClicked(node)\">\n <mat-icon *ngIf=\"node.beforeTextIcon()\" [matTooltip]=\"node.beforeTextIconTitle()\" [svgIcon]=\"node.beforeTextIcon()\"></mat-icon>\n <span class=\"padding-12px\"\n [ngClass]=\"{'selected-tree-node': selectedCaseNode(node)}\">{{node.case.title}}</span>\n <div fxFlex></div>\n <nc-add-child-node [node]=\"node\" *ngIf=\"node.canAddChildren()\"></nc-add-child-node>\n <nc-remove-node [node]=\"node\" *ngIf=\"node.canBeRemoved()\"></nc-remove-node>\n </div>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChild\">\n <div class=\"min-node-height\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n [ngClass]=\"{'selected-tree-node border-radius': selectedCaseNode(node)}\">\n <div class=\"mat-tree-node\" (click)=\"caseNodeClicked(node)\">\n <mat-icon *ngIf=\"node.beforeTextIcon()\" [svgIcon]=\"node.beforeTextIcon()\"></mat-icon>\n <span class=\"padding-12px\"\n [ngClass]=\"{'selected-tree-node': selectedCaseNode(node)}\">{{node.case.title}}</span>\n <div fxFlex></div>\n <nc-add-child-node [node]=\"node\" *ngIf=\"node.canAddChildren()\"></nc-add-child-node>\n <nc-remove-node [node]=\"node\" *ngIf=\"node.canBeRemoved()\"></nc-remove-node>\n\n <button *ngIf=\"!node.isLoadingChildren()\" (click)=\"toggleCaseNode($event, node)\" mat-icon-button\n [attr.aria-label]=\"'toggle ' + node.case.title\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n\n <div *ngIf=\"node.isLoadingChildren()\" class=\"spinner-margin\">\n <mat-spinner [diameter]=\"24\"></mat-spinner>\n </div>\n </div>\n </div>\n <div class=\"tree-offset\" [class.tree-invisible]=\"!treeControl.isExpanded(node)\">\n <ng-container matTreeNodeOutlet></ng-container>\n </div>\n </mat-nested-tree-node>\n</mat-tree>\n",
|
|
3832
|
+
providers: [CaseTreeService],
|
|
3833
|
+
styles: [".padding-12px{padding-left:12px;padding-right:12px}.padding-12px:hover{cursor:pointer}.border-radius{border-radius:8px}.tree-offset{margin-left:20px}.tree-invisible{display:none}.mat-tree-node{min-height:0!important}.min-node-height{min-height:40px!important}.width-100{width:100%}.spinner-margin{margin:8px}"]
|
|
3834
|
+
},] }
|
|
3835
|
+
];
|
|
3836
|
+
TreeComponent.ctorParameters = () => [
|
|
3837
|
+
{ type: CaseTreeService }
|
|
3838
|
+
];
|
|
3839
|
+
|
|
3840
|
+
class TreeTaskContentComponent extends AbstractTreeTaskContentComponent {
|
|
3841
|
+
constructor(_treeTaskContentService, _taskEventService, _assign, _cancel, _finish, _taskContentService, _permissionService) {
|
|
3842
|
+
super(_treeTaskContentService, _taskEventService, _assign, _cancel, _finish, _taskContentService, _permissionService);
|
|
3843
|
+
this._treeTaskContentService = _treeTaskContentService;
|
|
3844
|
+
this._taskEventService = _taskEventService;
|
|
3845
|
+
this._assign = _assign;
|
|
3846
|
+
this._cancel = _cancel;
|
|
3847
|
+
this._finish = _finish;
|
|
3848
|
+
this._taskContentService = _taskContentService;
|
|
3849
|
+
this._permissionService = _permissionService;
|
|
3850
|
+
}
|
|
3851
|
+
}
|
|
3852
|
+
TreeTaskContentComponent.ctorParameters = () => [
|
|
3853
|
+
{ type: TreeTaskContentService },
|
|
3854
|
+
{ type: TaskEventService },
|
|
3855
|
+
{ type: AssignTaskService },
|
|
3856
|
+
{ type: CancelTaskService },
|
|
3857
|
+
{ type: FinishTaskService },
|
|
3858
|
+
{ type: TaskContentService },
|
|
3859
|
+
{ type: PermissionService }
|
|
3860
|
+
];
|
|
3861
|
+
TreeTaskContentComponent.decorators = [
|
|
3862
|
+
{ type: Component, args: [{
|
|
3863
|
+
selector: 'nc-tree-task-content',
|
|
3864
|
+
template: "<div class=\"panel-main-content\" fxLayout=\"column\">\n <div class=\"task-panel-body\" fxFlex=\"100\">\n <nc-task-content [noDataText]=\"taskContentText$ | async\"></nc-task-content>\n\n <div *ngIf=\"!processingTaskChange && displayTaskControlButtons\" fxLayoutAlign=\"center center\">\n <button *ngIf=\"canAssign()\" color=\"primary\" (click)=\"assign()\" mat-raised-button>\n {{ getAssignTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canCancel()\" color=\"warn\" (click)=\"cancel()\" mat-stroked-button>\n {{ getCancelTitle() | translate | uppercase }}</button>\n <button *ngIf=\"canFinish()\" color=\"primary\" (click)=\"finish()\" mat-raised-button>\n {{ getFinishTitle() | translate | uppercase }}</button>\n </div>\n <div *ngIf=\"processingTaskChange\" fxLayoutAlign=\"center center\">\n <mat-spinner [diameter]=\"40\"></mat-spinner>\n </div>\n </div>\n</div>\n",
|
|
3865
|
+
providers: [
|
|
3866
|
+
{ provide: TaskContentService, useClass: UnlimitedTaskContentService },
|
|
3867
|
+
TreeTaskContentService,
|
|
3868
|
+
AssignTaskService,
|
|
3869
|
+
TaskDataService,
|
|
3870
|
+
TaskEventService,
|
|
3871
|
+
CancelTaskService,
|
|
3872
|
+
FinishTaskService,
|
|
3873
|
+
TaskRequestStateService,
|
|
3874
|
+
DataFocusPolicyService,
|
|
3875
|
+
AssignPolicyService,
|
|
3876
|
+
FinishPolicyService,
|
|
3877
|
+
SelectedCaseService,
|
|
3878
|
+
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
|
|
3879
|
+
],
|
|
3880
|
+
styles: [".task-panel-body{padding:10px 24px}"]
|
|
3881
|
+
},] }
|
|
3882
|
+
];
|
|
3883
|
+
TreeTaskContentComponent.ctorParameters = () => [
|
|
3884
|
+
{ type: TreeTaskContentService },
|
|
3885
|
+
{ type: TaskEventService },
|
|
3886
|
+
{ type: AssignTaskService },
|
|
3887
|
+
{ type: CancelTaskService },
|
|
3888
|
+
{ type: FinishTaskService },
|
|
3889
|
+
{ type: TaskContentService },
|
|
3890
|
+
{ type: PermissionService }
|
|
3891
|
+
];
|
|
3892
|
+
|
|
3893
|
+
class WorkflowViewComponentModule {
|
|
3894
|
+
}
|
|
3895
|
+
WorkflowViewComponentModule.decorators = [
|
|
3896
|
+
{ type: NgModule, args: [{
|
|
3897
|
+
declarations: [
|
|
3898
|
+
WorkflowViewComponent,
|
|
3899
|
+
],
|
|
3900
|
+
imports: [
|
|
3901
|
+
CommonModule,
|
|
3902
|
+
FlexLayoutModule,
|
|
3903
|
+
MaterialModule,
|
|
3904
|
+
SideMenuComponentModule,
|
|
3905
|
+
HeaderComponentModule,
|
|
3906
|
+
PanelComponentModule,
|
|
3907
|
+
DataFieldsComponentModule,
|
|
3908
|
+
TranslateLibModule
|
|
3909
|
+
],
|
|
3910
|
+
exports: [
|
|
3911
|
+
WorkflowViewComponent,
|
|
3912
|
+
],
|
|
3913
|
+
entryComponents: [
|
|
3914
|
+
ImportNetComponent
|
|
3915
|
+
]
|
|
3916
|
+
},] }
|
|
3917
|
+
];
|
|
3918
|
+
|
|
3919
|
+
class AddChildNodeComponent extends AbstractAddChildNodeComponent {
|
|
3920
|
+
constructor(_treeService) {
|
|
3921
|
+
super(_treeService);
|
|
3922
|
+
this._treeService = _treeService;
|
|
3923
|
+
}
|
|
3924
|
+
}
|
|
3925
|
+
AddChildNodeComponent.ctorParameters = () => [
|
|
3926
|
+
{ type: CaseTreeService }
|
|
3927
|
+
];
|
|
3928
|
+
AddChildNodeComponent.decorators = [
|
|
3929
|
+
{ type: Component, args: [{
|
|
3930
|
+
selector: 'nc-add-child-node',
|
|
3931
|
+
template: "<button *ngIf=\"!node.isAddingNode()\" mat-icon-button (click)=\"addChild($event)\">\n <mat-icon *ngIf=\"!node.treeAddTextIcon()\">add</mat-icon>\n <mat-icon *ngIf=\"node.treeAddTextIcon()\" [matTooltip]=\"node.treeAddTextIconTitle()\" [svgIcon]=\"node.treeAddTextIcon()\"></mat-icon>\n</button>\n\n<div *ngIf=\"node.isAddingNode()\" class=\"spinner-margin\">\n <mat-spinner [diameter]=\"24\"></mat-spinner>\n</div>\n",
|
|
3932
|
+
styles: [".spinner-margin{margin:8px}"]
|
|
3933
|
+
},] }
|
|
3934
|
+
];
|
|
3935
|
+
AddChildNodeComponent.ctorParameters = () => [
|
|
3936
|
+
{ type: CaseTreeService }
|
|
3937
|
+
];
|
|
3938
|
+
|
|
3939
|
+
class RemoveNodeComponent extends AbstractRemoveNodeComponent {
|
|
3940
|
+
constructor(_treeService) {
|
|
3941
|
+
super(_treeService);
|
|
3942
|
+
this._treeService = _treeService;
|
|
3943
|
+
}
|
|
3944
|
+
}
|
|
3945
|
+
RemoveNodeComponent.ctorParameters = () => [
|
|
3946
|
+
{ type: CaseTreeService }
|
|
3947
|
+
];
|
|
3948
|
+
RemoveNodeComponent.decorators = [
|
|
3949
|
+
{ type: Component, args: [{
|
|
3950
|
+
selector: 'nc-remove-node',
|
|
3951
|
+
template: "<button *ngIf=\"!node.isBeingRemoved()\" mat-icon-button (click)=\"removeNode($event)\">\n <mat-icon>delete_forever</mat-icon>\n</button>\n\n<div *ngIf=\"node.isBeingRemoved()\" class=\"spinner-margin\">\n <mat-spinner [diameter]=\"24\"></mat-spinner>\n</div>\n",
|
|
3952
|
+
styles: [".spinner-margin{margin:8px}"]
|
|
3953
|
+
},] }
|
|
3954
|
+
];
|
|
3955
|
+
RemoveNodeComponent.ctorParameters = () => [
|
|
3956
|
+
{ type: CaseTreeService }
|
|
3957
|
+
];
|
|
3958
|
+
|
|
3959
|
+
class TreeCaseViewComponentModule {
|
|
3960
|
+
}
|
|
3961
|
+
TreeCaseViewComponentModule.decorators = [
|
|
3962
|
+
{ type: NgModule, args: [{
|
|
3963
|
+
declarations: [
|
|
3964
|
+
TreeComponent,
|
|
3965
|
+
TreeTaskContentComponent,
|
|
3966
|
+
AddChildNodeComponent,
|
|
3967
|
+
RemoveNodeComponent
|
|
3968
|
+
],
|
|
3969
|
+
imports: [
|
|
3970
|
+
CommonModule,
|
|
3971
|
+
FlexLayoutModule,
|
|
3972
|
+
MaterialModule,
|
|
3973
|
+
DataFieldsComponentModule,
|
|
3974
|
+
TranslateLibModule,
|
|
3975
|
+
PanelComponentModule,
|
|
3976
|
+
TaskContentComponentModule
|
|
3977
|
+
],
|
|
3978
|
+
exports: [
|
|
3979
|
+
TreeComponent,
|
|
3980
|
+
TreeTaskContentComponent,
|
|
3981
|
+
],
|
|
3982
|
+
entryComponents: []
|
|
3983
|
+
},] }
|
|
3984
|
+
];
|
|
3985
|
+
|
|
3986
|
+
/* COMPONENTS */
|
|
3987
|
+
|
|
3988
|
+
/* MODULES */
|
|
3989
|
+
|
|
3990
|
+
class RedirectComponent {
|
|
3991
|
+
constructor(redirectService, translate) {
|
|
3992
|
+
this.redirectService = redirectService;
|
|
3993
|
+
this.translate = translate;
|
|
3994
|
+
}
|
|
3995
|
+
ngOnInit() {
|
|
3996
|
+
this.redirectService.redirectFromUrl();
|
|
3997
|
+
}
|
|
3998
|
+
}
|
|
3999
|
+
RedirectComponent.ctorParameters = () => [
|
|
4000
|
+
{ type: RedirectService },
|
|
4001
|
+
{ type: TranslateService }
|
|
4002
|
+
];
|
|
4003
|
+
RedirectComponent.decorators = [
|
|
4004
|
+
{ type: Component, args: [{
|
|
4005
|
+
selector: 'nc-redirect',
|
|
4006
|
+
template: "<p>{{this.translate.instant('tasks.view.redirecting')}}</p>\n",
|
|
4007
|
+
styles: [""]
|
|
4008
|
+
},] }
|
|
4009
|
+
];
|
|
4010
|
+
RedirectComponent.ctorParameters = () => [
|
|
4011
|
+
{ type: RedirectService },
|
|
4012
|
+
{ type: TranslateService }
|
|
4013
|
+
];
|
|
4014
|
+
|
|
4015
|
+
class RedirectComponentModule {
|
|
4016
|
+
}
|
|
4017
|
+
RedirectComponentModule.decorators = [
|
|
4018
|
+
{ type: NgModule, args: [{
|
|
4019
|
+
imports: [],
|
|
4020
|
+
exports: [RedirectComponent],
|
|
4021
|
+
declarations: [RedirectComponent]
|
|
4022
|
+
},] }
|
|
4023
|
+
];
|
|
4024
|
+
|
|
4025
|
+
/*
|
|
4026
|
+
* Public API Surface of netgrif-components
|
|
4027
|
+
*/
|
|
4028
|
+
|
|
4029
|
+
/**
|
|
4030
|
+
* Generated bundle index. Do not edit.
|
|
4031
|
+
*/
|
|
4032
|
+
|
|
4033
|
+
export { AdminComponentModule, AdvancedSearchComponent, AuthenticationComponentModule, AuthenticationOverlayComponent, BarchartCardComponent, BooleanFieldComponent, ButtonFieldComponent, CaseListComponent, CasePanelComponent, CaseSearchComponent, CaseViewComponentModule, CountCardComponent, DashboardComponentModule, DashboardContentComponent, DataFieldTemplateComponent, DataFieldsComponentModule, DateFieldComponent, DateTimeFieldComponent, EditModeComponent, EmailSubmissionFormComponent, EmailSubmissionFormComponentModule, EnumerationFieldComponent, FieldComponentResolverComponent, FileFieldComponent, FileListFieldComponent, FilterFieldComponent, FilterSelectorComponent, ForgottenPasswordFormComponent, ForgottenPasswordFormComponentModule, FulltextSearchComponent, HeaderComponent, HeaderComponentModule, I18nFieldComponent, IframeCardComponent, ImportNetComponent, InternalLinkComponent, LanguageSelectorComponent, LegalNoticeComponent, LegalNoticeModule, LineChartCardComponent, LinearGaugeCardComponent, LoadFilterComponent, LoadingModeComponent, LoginFormComponent, LoginFormComponentModule, LogoutShortcutComponent, MultichoiceFieldComponent, NavigationComponentModule, NavigationDrawerComponent, NavigationRailComponent, NavigationTreeComponent, NewCaseComponent, NumberFieldComponent, OptionSelectorComponent, PanelComponent, PanelComponentModule, PieChartCardComponent, PortalCardComponent, ProfileComponent, ProfileComponentModule, PublicWorkflowPanelComponent, QuickPanelComponent, QuickPanelComponentModule, RedirectComponent, RedirectComponentModule, RegistrationFormComponent, RegistrationFormComponentModule, RoleAssignmentComponent, SaveFilterComponent, SearchClauseComponent, SearchComponent, SearchComponentModule, SearchConfigurationInputComponent, SearchModeComponent, SearchOperandInputComponent, SearchPredicateComponent, SideMenuComponentModule, SideMenuContainerComponent, SideMenuContentComponentModule, SideMenuFilterSelectorComponentModule, SideMenuImportNetComponentModule, SideMenuLoadFilterComponentModule, SideMenuNewCaseComponentModule, SideMenuOptionSelectorComponentModule, SideMenuSaveFilterComponentModule, SideMenuUserAssignComponentModule, SortModeComponent, TabCreationDetectorComponent, TabViewComponent, TabsComponentModule, TaskContentComponent, TaskContentComponentModule, TaskListComponent, TaskPanelComponent, TaskSearchComponent, TextFieldComponent, ToolbarComponent, ToolbarComponentModule, TreeCaseViewComponentModule, TreeComponent, TreeTaskContentComponent, UserAssignComponent, UserCardComponent, UserComponentModule, UserFieldComponent, WorkflowPanelComponent, WorkflowViewComponent, WorkflowViewComponentModule, searchCategoryConverter, ɵ0, ɵ1, ɵ2$2 as ɵ2, ɵ3$1 as ɵ3, ɵ4, baseFilterFactory$1 as ɵa, localAllowedNetsFactory as ɵb, I18nDividerFieldComponent as ɵba, I18nTextFieldComponent as ɵbb, UserAssignItemComponent as ɵbc, UserAssignListComponent as ɵbd, AdvancedSearchComponentModule as ɵbe, GroupNavigationComponentResolverComponent as ɵbf, DefaultSimpleTaskViewComponent as ɵbg, baseFilterFactory as ɵbh, DefaultTabbedTaskViewComponent as ɵbi, DefaultTabbedCaseViewComponent as ɵbj, filterCaseTabbedDataFilterFactory as ɵbk, filterCaseTabbedDataAllowedNetsServiceFactory as ɵbl, filterCaseTabbedDataSearchCategoriesFactory as ɵbm, DefaultTabViewComponent as ɵbo, ImmediateFilterTextComponent as ɵbp, filterTextBaseFilterFactory as ɵbq, filterTextAllowedNetsFactory as ɵbr, filterTextCategoriesFactory as ɵbs, ImmediateFilterTextContentComponent as ɵbt, DefaultGroupNavigationComponentResolverService as ɵbu, FilterSelectorListItemComponent as ɵbv, AddChildNodeComponent as ɵbw, RemoveNodeComponent as ɵbx, baseFilterFactory$2 as ɵc, localAllowedNetsFactory$1 as ɵd, UserInviteComponent as ɵe, EnumerationAutocompleteSelectFieldComponent as ɵf, EnumerationSelectFieldComponent as ɵg, EnumerationListFieldComponent as ɵh, MultichoiceSelectFieldComponent as ɵi, MultichoiceListFieldComponent as ɵj, TextareaFieldComponent as ɵk, RichTextareaFieldComponent as ɵl, SimpleTextFieldComponent as ɵm, RequiredLabelComponent as ɵn, HtmlTextareaFieldComponent as ɵo, PasswordTextFieldComponent as ɵp, NumberCurrencyFieldComponent as ɵq, NumberDefaultFieldComponent as ɵr, PreviewDialogComponent as ɵs, EnumerationStepperFieldComponent as ɵt, EnumerationIconFieldComponent as ɵu, EnumerationAutocompleteDynamicFieldComponent as ɵv, filterFieldBaseFilterFactory as ɵw, filterFieldAllowedNetsFactory as ɵx, filterFieldCategoriesFactory as ɵy, FilterFieldContentComponent as ɵz };
|
|
4034
|
+
//# sourceMappingURL=netgrif-components.js.map
|