@netgrif/components 6.3.0 → 6.4.0-beta.2
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/esm2020/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.mjs +5 -5
- package/esm2020/lib/admin/role-assignment/role-assignment.component.mjs +5 -5
- package/esm2020/lib/admin/user-invite/user-invite.component.mjs +3 -3
- package/esm2020/lib/data-fields/boolean-field/boolean-default-field/boolean-default-field.component.mjs +28 -0
- package/esm2020/lib/data-fields/boolean-field/boolean-field.component.mjs +13 -22
- package/esm2020/lib/data-fields/button-field/button-default-field/button-default-field.component.mjs +40 -0
- package/esm2020/lib/data-fields/button-field/button-field.component.mjs +12 -30
- package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +22 -0
- package/esm2020/lib/data-fields/data-field-template/data-field-template.component.mjs +8 -7
- package/esm2020/lib/data-fields/data-fields.module.mjs +87 -39
- package/esm2020/lib/data-fields/date-field/date-default-field/date-default-field.component.mjs +33 -0
- package/esm2020/lib/data-fields/date-field/date-field.component.mjs +12 -14
- package/esm2020/lib/data-fields/date-time-field/date-time-default-field/date-time-default-field.component.mjs +34 -0
- package/esm2020/lib/data-fields/date-time-field/date-time-field.component.mjs +12 -15
- package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/enumeration-field/enumeration-field.component.mjs +7 -10
- package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.mjs +17 -11
- package/esm2020/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.mjs +16 -10
- package/esm2020/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.mjs +17 -12
- package/esm2020/lib/data-fields/file-field/file-default-field/file-default-field.component.mjs +50 -0
- package/esm2020/lib/data-fields/file-field/file-field.component.mjs +14 -40
- package/esm2020/lib/data-fields/file-list-field/file-list-default-field/file-list-default-field.component.mjs +32 -0
- package/esm2020/lib/data-fields/file-list-field/file-list-field.component.mjs +25 -0
- package/esm2020/lib/data-fields/filter-field/filter-default-field/filter-default-field.component.mjs +30 -0
- package/esm2020/lib/data-fields/filter-field/filter-field.component.mjs +11 -17
- package/esm2020/lib/data-fields/filter-field/tab-view-filter-field/filter-field-tab-view-content.component.mjs +3 -3
- package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/i18n-field/i18n-field.component.mjs +7 -6
- package/esm2020/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/multichoice-autocomplete-field.component.mjs +16 -10
- package/esm2020/lib/data-fields/multichoice-field/multichoice-field.component.mjs +7 -7
- package/esm2020/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.mjs +16 -10
- package/esm2020/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.mjs +17 -8
- package/esm2020/lib/data-fields/number-field/number-currency-field/number-currency-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/number-field/number-default-field/number-default-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/number-field/number-field.component.mjs +7 -6
- package/esm2020/lib/data-fields/public-api.mjs +1 -16
- package/esm2020/lib/data-fields/required-label/required-label.component.mjs +3 -3
- package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-field.component.mjs +38 -0
- package/esm2020/lib/data-fields/task-ref-field/task-ref-field.component.mjs +12 -23
- package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/task-ref-list-field.component.mjs +22 -0
- package/esm2020/lib/data-fields/text-field/dashboard-bar-chart-text-field/dashboard-bar-chart-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/text-field/dashboard-iframe-text-field/dashboard-iframe-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/text-field/dashboard-line-chart-text-field/dashboard-line-chart-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/text-field/dashboard-pie-chart-text-field/dashboard-pie-chart-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.mjs +19 -14
- package/esm2020/lib/data-fields/text-field/password-text-field/password-text-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.mjs +17 -12
- package/esm2020/lib/data-fields/text-field/simple-text-field/simple-text-field.component.mjs +15 -9
- package/esm2020/lib/data-fields/text-field/text-field.component.mjs +8 -16
- package/esm2020/lib/data-fields/text-field/textarea-field/textarea-field.component.mjs +14 -9
- package/esm2020/lib/data-fields/user-field/user-default-field/user-default-field.component.mjs +35 -0
- package/esm2020/lib/data-fields/user-field/user-field.component.mjs +12 -19
- package/esm2020/lib/data-fields/user-list-field/user-list-default-field/user-list-default-field.component.mjs +39 -0
- package/esm2020/lib/data-fields/user-list-field/user-list-field.component.mjs +13 -23
- package/esm2020/lib/dialog/admin-impersonate-dialog/admin-impersonate-dialog.component.mjs +77 -0
- package/esm2020/lib/dialog/dialog.module.mjs +159 -0
- package/esm2020/lib/dialog/filter-selector-dialog/filter-selector-dialog.component.mjs +164 -0
- package/esm2020/lib/dialog/import-net-dialog/import-net-dialog.component.mjs +151 -0
- package/esm2020/lib/dialog/load-filter-dialog/load-filter-dialog.component.mjs +98 -0
- package/esm2020/lib/dialog/multi-user-assign-dialog/multi-user-assign-dialog.component.mjs +70 -0
- package/esm2020/lib/dialog/new-case-dialog/new-case-dialog.component.mjs +251 -0
- package/esm2020/lib/dialog/public-api.mjs +11 -0
- package/esm2020/lib/dialog/save-filter-dialog/save-filter-dialog.component.mjs +83 -0
- package/esm2020/lib/dialog/user-assign-dialog/user-assign-dialog.component.mjs +73 -0
- package/esm2020/lib/dialog/user-impersonate-dialog/user-impersonate-dialog.component.mjs +98 -0
- package/esm2020/lib/filter-field-content/filter-field-tab-view/filter-field-tab-view.component.mjs +3 -3
- package/esm2020/lib/forms/login/login-form.component.mjs +3 -3
- package/esm2020/lib/header/header-modes/edit-mode/edit-mode.component.mjs +3 -3
- package/esm2020/lib/header/header-modes/search-mode/search-mode.component.mjs +3 -3
- package/esm2020/lib/header/header-modes/sort-mode/sort-mode.component.mjs +3 -3
- package/esm2020/lib/header/header.component.mjs +3 -3
- package/esm2020/lib/navigation/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.mjs +105 -0
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.mjs +7 -8
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +6 -4
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.mjs +7 -8
- package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-task-view/default-task-view.component.mjs +63 -0
- package/esm2020/lib/navigation/navigation-double-drawer/navigation-double-drawer.component.mjs +3 -3
- package/esm2020/lib/navigation/navigation.module.mjs +9 -3
- package/esm2020/lib/navigation/public-api.mjs +2 -1
- package/esm2020/lib/panel/panel-item/panel-item.component.mjs +3 -3
- package/esm2020/lib/panel/panel.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel/task-panel.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel-list/task-list.component.mjs +5 -4
- package/esm2020/lib/panel/task-panel-list-pagination/task-list-pagination.component.mjs +3 -3
- package/esm2020/lib/panel/task-panel-single/single-task.component.mjs +2 -2
- package/esm2020/lib/panel/workflow-panel/workflow-panel.component.mjs +9 -10
- package/esm2020/lib/search/advanced-search/advanced-search-component/advanced-search.component.mjs +3 -3
- package/esm2020/lib/search/advanced-search/search-clause-component/search-clause.component.mjs +3 -3
- package/esm2020/lib/search/advanced-search/search-predicate-component/search-predicate.component.mjs +8 -8
- package/esm2020/lib/search/fulltext-search-component/fulltext-search.component.mjs +8 -6
- package/esm2020/lib/search/search-component/search.component.mjs +11 -10
- package/esm2020/lib/search/search.module.mjs +9 -3
- package/esm2020/lib/side-menu/content-components/admin-impersonate/side-menu-admin-impersonate-component.module.mjs +3 -3
- package/esm2020/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.mjs +4 -2
- package/esm2020/lib/side-menu/content-components/multi-user-assign/side-menu-multi-user-assign-component.module.mjs +3 -3
- package/esm2020/lib/side-menu/content-components/public-api.mjs +5 -1
- package/esm2020/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.mjs +3 -3
- package/esm2020/lib/tabs/tab-view/tab-view.component.mjs +7 -6
- package/esm2020/lib/task-content/field-component-resolver/field-component-resolver.component.mjs +18 -27
- package/esm2020/lib/task-content/task-content/task-content.component.mjs +3 -3
- package/esm2020/lib/user/profile/profile.component.mjs +2 -2
- package/esm2020/lib/view/case-view/components/case-list/case-list.component.mjs +3 -3
- package/esm2020/lib/view/case-view/components/case-list-paginator/case-list-paginator.component.mjs +3 -3
- package/esm2020/lib/view/case-view/components/create-case-button/create-case-button.component.mjs +10 -4
- package/esm2020/lib/view/workflow-view/workflow-view.component.mjs +22 -21
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/netgrif-components.mjs +3848 -2122
- package/fesm2015/netgrif-components.mjs.map +1 -1
- package/fesm2020/netgrif-components.mjs +3761 -2128
- package/fesm2020/netgrif-components.mjs.map +1 -1
- package/lib/data-fields/boolean-field/boolean-default-field/boolean-default-field.component.d.ts +8 -0
- package/lib/data-fields/boolean-field/boolean-field.component.d.ts +5 -5
- package/lib/data-fields/button-field/button-default-field/button-default-field.component.d.ts +12 -0
- package/lib/data-fields/button-field/button-field.component.d.ts +7 -8
- package/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.d.ts +8 -0
- package/lib/data-fields/data-field-template/data-field-template.component.d.ts +3 -2
- package/lib/data-fields/data-fields.module.d.ts +34 -20
- package/lib/data-fields/date-field/date-default-field/date-default-field.component.d.ts +9 -0
- package/lib/data-fields/date-field/date-field.component.d.ts +5 -3
- package/lib/data-fields/date-time-field/date-time-default-field/date-time-default-field.component.d.ts +9 -0
- package/lib/data-fields/date-time-field/date-time-field.component.d.ts +5 -3
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.d.ts +3 -3
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.d.ts +3 -3
- package/lib/data-fields/enumeration-field/enumeration-field.component.d.ts +3 -0
- package/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.d.ts +3 -3
- package/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.d.ts +3 -3
- package/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.d.ts +3 -3
- package/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.d.ts +3 -3
- package/lib/data-fields/file-field/file-default-field/file-default-field.component.d.ts +13 -0
- package/lib/data-fields/file-field/file-field.component.d.ts +6 -9
- package/lib/data-fields/file-list-field/file-list-default-field/file-list-default-field.component.d.ts +8 -0
- package/lib/data-fields/file-list-field/file-list-field.component.d.ts +10 -0
- package/lib/data-fields/filter-field/filter-default-field/filter-default-field.component.d.ts +10 -0
- package/lib/data-fields/filter-field/filter-field.component.d.ts +6 -6
- package/lib/data-fields/filter-field/tab-view-filter-field/filter-field-tab-view-content.component.d.ts +2 -2
- package/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.d.ts +3 -3
- package/lib/data-fields/i18n-field/i18n-field.component.d.ts +3 -0
- package/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.d.ts +3 -3
- package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/multichoice-autocomplete-field.component.d.ts +3 -3
- package/lib/data-fields/multichoice-field/multichoice-field.component.d.ts +3 -0
- package/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.d.ts +3 -3
- package/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.d.ts +3 -2
- package/lib/data-fields/number-field/number-currency-field/number-currency-field.component.d.ts +3 -3
- package/lib/data-fields/number-field/number-default-field/number-default-field.component.d.ts +3 -3
- package/lib/data-fields/number-field/number-field.component.d.ts +3 -0
- package/lib/data-fields/public-api.d.ts +0 -15
- package/lib/data-fields/task-ref-field/task-ref-dashboard-field/task-ref-dashboard-field.component.d.ts +13 -0
- package/lib/data-fields/task-ref-field/task-ref-field.component.d.ts +6 -7
- package/lib/data-fields/task-ref-field/task-ref-list-field/task-ref-list-field.component.d.ts +8 -0
- package/lib/data-fields/text-field/dashboard-bar-chart-text-field/dashboard-bar-chart-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/dashboard-iframe-text-field/dashboard-iframe-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/dashboard-line-chart-text-field/dashboard-line-chart-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/dashboard-pie-chart-text-field/dashboard-pie-chart-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.d.ts +5 -5
- package/lib/data-fields/text-field/password-text-field/password-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/simple-text-field/simple-text-field.component.d.ts +3 -3
- package/lib/data-fields/text-field/text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/textarea-field/textarea-field.component.d.ts +3 -3
- package/lib/data-fields/user-field/user-default-field/user-default-field.component.d.ts +10 -0
- package/lib/data-fields/user-field/user-field.component.d.ts +6 -5
- package/lib/data-fields/user-list-field/user-list-default-field/user-list-default-field.component.d.ts +11 -0
- package/lib/data-fields/user-list-field/user-list-field.component.d.ts +6 -6
- package/lib/dialog/admin-impersonate-dialog/admin-impersonate-dialog.component.d.ts +42 -0
- package/lib/dialog/dialog.module.d.ts +31 -0
- package/lib/dialog/filter-selector-dialog/filter-selector-dialog.component.d.ts +96 -0
- package/lib/dialog/import-net-dialog/import-net-dialog.component.d.ts +36 -0
- package/lib/dialog/load-filter-dialog/load-filter-dialog.component.d.ts +18 -0
- package/lib/dialog/multi-user-assign-dialog/multi-user-assign-dialog.component.d.ts +24 -0
- package/lib/dialog/new-case-dialog/new-case-dialog.component.d.ts +66 -0
- package/lib/dialog/public-api.d.ts +10 -0
- package/lib/dialog/save-filter-dialog/save-filter-dialog.component.d.ts +16 -0
- package/lib/dialog/user-assign-dialog/user-assign-dialog.component.d.ts +42 -0
- package/lib/dialog/user-impersonate-dialog/user-impersonate-dialog.component.d.ts +16 -0
- package/lib/filter-field-content/filter-field-tab-view/filter-field-tab-view.component.d.ts +2 -2
- package/lib/navigation/group-navigation-component-resolver/default-components/default-case-ref-list-view/default-case-ref-list-view.component.d.ts +19 -0
- package/lib/navigation/group-navigation-component-resolver/default-components/default-task-view/default-task-view.component.d.ts +12 -0
- package/lib/navigation/navigation.module.d.ts +17 -15
- package/lib/navigation/public-api.d.ts +1 -0
- package/lib/search/search.module.d.ts +4 -0
- package/lib/side-menu/content-components/admin-impersonate/side-menu-admin-impersonate-component.module.d.ts +1 -1
- package/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.d.ts +1 -1
- package/lib/side-menu/content-components/multi-user-assign/side-menu-multi-user-assign-component.module.d.ts +1 -1
- package/lib/side-menu/content-components/public-api.d.ts +4 -0
- package/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.d.ts +1 -1
- package/lib/task-content/field-component-resolver/field-component-resolver.component.d.ts +2 -2
- package/lib/view/case-view/components/create-case-button/create-case-button.component.d.ts +3 -1
- package/lib/view/workflow-view/workflow-view.component.d.ts +4 -3
- package/nae-theme.scss +8 -2
- package/nae-typography.scss +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
- package/src/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.theme.scss +2 -2
- package/src/lib/admin/role-assignment/role-assignment.component.theme.scss +16 -0
- package/src/lib/data-fields/data-field.theme.scss +217 -18
- package/src/lib/dialog/dialog.theme.scss +40 -2
- package/src/lib/header/header.theme.scss +0 -9
- package/src/lib/navigation/navigation.theme.scss +20 -3
- package/src/lib/panel/panel.theme.scss +50 -4
- package/src/lib/search/advanced-search/advanced-search-component/advanced-search.component.theme.scss +9 -0
- package/src/lib/search/advanced-search/search-predicate-component/search-predicate.component.theme.scss +7 -0
- package/src/lib/search/search-component/search.component-theme.scss +21 -0
- package/src/lib/side-menu/side-menu.theme.scss +1 -1
- package/src/lib/tabs/tabs.theme.scss +15 -1
- package/esm2020/lib/data-fields/file-field-list/file-list-field.component.mjs +0 -33
- package/lib/data-fields/file-field-list/file-list-field.component.d.ts +0 -8
|
@@ -1,35 +1,25 @@
|
|
|
1
1
|
import { Component, Inject, Optional } from '@angular/core';
|
|
2
|
-
import { AbstractUserListFieldComponent, NAE_INFORM_ABOUT_INVALID_DATA } from '@netgrif/components-core';
|
|
3
|
-
import { MultiUserAssignComponent } from "../../side-menu/content-components/multi-user-assign/multi-user-assign.component";
|
|
2
|
+
import { AbstractUserListFieldComponent, NAE_INFORM_ABOUT_INVALID_DATA, } from '@netgrif/components-core';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "@
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import * as i6 from "@angular/material/icon";
|
|
11
|
-
import * as i7 from "@angular/common";
|
|
12
|
-
import * as i8 from "@angular/material/form-field";
|
|
4
|
+
import * as i1 from "../data-field-template/data-field-template.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated
|
|
8
|
+
* */
|
|
13
9
|
export class UserListFieldComponent extends AbstractUserListFieldComponent {
|
|
14
|
-
constructor(
|
|
15
|
-
super(
|
|
16
|
-
}
|
|
17
|
-
selectUser() {
|
|
18
|
-
this.selectAbstractUser(MultiUserAssignComponent);
|
|
19
|
-
}
|
|
20
|
-
deleteUser(userId) {
|
|
21
|
-
this.removeAbstractUser(userId);
|
|
10
|
+
constructor(informAboutInvalidData) {
|
|
11
|
+
super(informAboutInvalidData);
|
|
22
12
|
}
|
|
23
13
|
}
|
|
24
|
-
UserListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UserListFieldComponent, deps: [{ token:
|
|
25
|
-
UserListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UserListFieldComponent, selector: "nc-user-list-field", usesInheritance: true, ngImport: i0, template: "<nc-data-field-template *ngIf='!dataField.behavior.hidden'\n [dataField]='dataField'\n [
|
|
14
|
+
UserListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UserListFieldComponent, deps: [{ token: NAE_INFORM_ABOUT_INVALID_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
UserListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UserListFieldComponent, selector: "nc-user-list-field", usesInheritance: true, ngImport: i0, template: "<nc-data-field-template *ngIf='!dataField.behavior.hidden'\n [dataField]='dataField'\n [offset]='taskOffset'>\n</nc-data-field-template>\n\n", styles: [""], components: [{ type: i1.DataFieldTemplateComponent, selector: "nc-data-field-template" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
26
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UserListFieldComponent, decorators: [{
|
|
27
17
|
type: Component,
|
|
28
|
-
args: [{ selector: 'nc-user-list-field', template: "<nc-data-field-template *ngIf='!dataField.behavior.hidden'\n [dataField]='dataField'\n [
|
|
29
|
-
}], ctorParameters: function () { return [{ type:
|
|
18
|
+
args: [{ selector: 'nc-user-list-field', template: "<nc-data-field-template *ngIf='!dataField.behavior.hidden'\n [dataField]='dataField'\n [offset]='taskOffset'>\n</nc-data-field-template>\n\n", styles: [""] }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
30
20
|
type: Optional
|
|
31
21
|
}, {
|
|
32
22
|
type: Inject,
|
|
33
23
|
args: [NAE_INFORM_ABOUT_INVALID_DATA]
|
|
34
24
|
}] }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmllbGRzL3VzZXItbGlzdC1maWVsZC91c2VyLWxpc3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWVsZHMvdXNlci1saXN0LWZpZWxkL3VzZXItbGlzdC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUNILDhCQUE4QixFQUM5Qiw2QkFBNkIsR0FDaEMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUVsQzs7S0FFSztBQU1MLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw4QkFBOEI7SUFFdEUsWUFBK0Qsc0JBQXNDO1FBQ2pHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O29IQUpRLHNCQUFzQixrQkFFQyw2QkFBNkI7d0dBRnBELHNCQUFzQixpRkNkbkMsNExBS0E7NEZEU2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBTWYsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RVc2VyTGlzdEZpZWxkQ29tcG9uZW50LFxuICAgIE5BRV9JTkZPUk1fQUJPVVRfSU5WQUxJRF9EQVRBLFxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmMtdXNlci1saXN0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbGlzdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItbGlzdC1maWVsZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJMaXN0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFVzZXJMaXN0RmllbGRDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOQUVfSU5GT1JNX0FCT1VUX0lOVkFMSURfREFUQSkgaW5mb3JtQWJvdXRJbnZhbGlkRGF0YTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIoaW5mb3JtQWJvdXRJbnZhbGlkRGF0YSk7XG4gICAgfVxufVxuIiwiPG5jLWRhdGEtZmllbGQtdGVtcGxhdGUgKm5nSWY9JyFkYXRhRmllbGQuYmVoYXZpb3IuaGlkZGVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFGaWVsZF09J2RhdGFGaWVsZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXRdPSd0YXNrT2Zmc2V0Jz5cbjwvbmMtZGF0YS1maWVsZC10ZW1wbGF0ZT5cblxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { ImpersonationUserListService, UserListService } from '@netgrif/components-core';
|
|
3
|
+
import { FormControl } from '@angular/forms';
|
|
4
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
import * as i2 from "@angular/material/form-field";
|
|
8
|
+
import * as i3 from "@angular/material/icon";
|
|
9
|
+
import * as i4 from "@angular/material/button";
|
|
10
|
+
import * as i5 from "../../side-menu/content-components/admin-impersonate/admin-impersonate-list/admin-impersonate-list.component";
|
|
11
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
12
|
+
import * as i7 from "@angular/material/input";
|
|
13
|
+
import * as i8 from "@angular/forms";
|
|
14
|
+
import * as i9 from "@angular/common";
|
|
15
|
+
import * as i10 from "@ngx-translate/core";
|
|
16
|
+
export class AdminImpersonateDialogComponent {
|
|
17
|
+
/**
|
|
18
|
+
* Inject and set data send from [UserFieldComponent]{@link AbstractUserFieldComponent} if the user is preselected.
|
|
19
|
+
* @param _sideMenuControl Contains [Roles]{@link ProcessRole} and [UserValue]{@link UserValue}.
|
|
20
|
+
*/
|
|
21
|
+
constructor(_dialogRef, _data) {
|
|
22
|
+
this._dialogRef = _dialogRef;
|
|
23
|
+
this._data = _data;
|
|
24
|
+
/**
|
|
25
|
+
* Form control for user search value.
|
|
26
|
+
*/
|
|
27
|
+
this.searchUserControl = new FormControl();
|
|
28
|
+
if (this._data) {
|
|
29
|
+
this.injectedData = this._data;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The user that is initially selected, or `undefined` if none is
|
|
34
|
+
*/
|
|
35
|
+
get initiallySelectedUser() {
|
|
36
|
+
return this.injectedData ? this.injectedData.value : undefined;
|
|
37
|
+
}
|
|
38
|
+
get roles() {
|
|
39
|
+
return this.injectedData ? this.injectedData.roles : [];
|
|
40
|
+
}
|
|
41
|
+
get negativeRoles() {
|
|
42
|
+
return this.injectedData ? this.injectedData.negativeRoles : [];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* On select user from users assign list publish side menu with selected user as data and message about selection.
|
|
46
|
+
* @param user Select current user as [UserValue]{@link UserValue}
|
|
47
|
+
*/
|
|
48
|
+
userWasSelected(user) {
|
|
49
|
+
this._currentUser = user;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* On assign button close side menu with selected user as data and message about confirm.
|
|
53
|
+
*/
|
|
54
|
+
assign() {
|
|
55
|
+
if (this._currentUser !== undefined) {
|
|
56
|
+
this._dialogRef.close({
|
|
57
|
+
opened: false,
|
|
58
|
+
message: 'Selected user was confirmed',
|
|
59
|
+
data: this._currentUser
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
AdminImpersonateDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AdminImpersonateDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
AdminImpersonateDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AdminImpersonateDialogComponent, selector: "nc-admin-impersonate-dialog", providers: [{
|
|
66
|
+
provide: UserListService, useClass: ImpersonationUserListService
|
|
67
|
+
}], ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.impersonation.title' | translate }}\n</div>\n<div mat-dialog-content fxLayoutAlign=\"start stretch\" class=\"height-fix\">\n <div class=\"user-assign-container side-menu-root\" fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"netgrif-input netgrif-input-fix\">\n <mat-form-field fxFlex=\"100\" class=\"user-assign-search\" color=\"primary\" appearance=\"outline\">\n <mat-icon matPrefix class=\"prefix-icon\">search</mat-icon>\n <input matInput placeholder=\"{{ 'side-menu.user.choose' | translate }}\"\n [formControl]=\"searchUserControl\">\n <button mat-stroked-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-admin-impersonate-list fxFlex\n [searchUserControl]=\"searchUserControl\"\n [roles]=\"roles\"\n [negativeRoles]=\"negativeRoles\"\n [initiallySelectedUser]=\"initiallySelectedUser\"\n (userSelected)=\"userWasSelected($event)\">\n </nc-admin-impersonate-list>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-raised-button color=\"primary\"\n (click)=\"assign()\">{{ 'side-menu.impersonation.submit' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n", styles: [".user-assign-container{padding:16px;position:relative;height:calc(100% - 4px)}.user-assign-search{width:100%}.prefix-icon{font-size:18px;color:#64748b}.height-100{height:100%}.height-fix{height:calc(100% - 44px)}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.AdminImpersonateListComponent, selector: "nc-admin-impersonate-list" }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i2.MatPrefix, selector: "[matPrefix]" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }], pipes: { "translate": i10.TranslatePipe, "uppercase": i9.UpperCasePipe } });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AdminImpersonateDialogComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'nc-admin-impersonate-dialog', providers: [{
|
|
71
|
+
provide: UserListService, useClass: ImpersonationUserListService
|
|
72
|
+
}], template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.impersonation.title' | translate }}\n</div>\n<div mat-dialog-content fxLayoutAlign=\"start stretch\" class=\"height-fix\">\n <div class=\"user-assign-container side-menu-root\" fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"netgrif-input netgrif-input-fix\">\n <mat-form-field fxFlex=\"100\" class=\"user-assign-search\" color=\"primary\" appearance=\"outline\">\n <mat-icon matPrefix class=\"prefix-icon\">search</mat-icon>\n <input matInput placeholder=\"{{ 'side-menu.user.choose' | translate }}\"\n [formControl]=\"searchUserControl\">\n <button mat-stroked-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-admin-impersonate-list fxFlex\n [searchUserControl]=\"searchUserControl\"\n [roles]=\"roles\"\n [negativeRoles]=\"negativeRoles\"\n [initiallySelectedUser]=\"initiallySelectedUser\"\n (userSelected)=\"userWasSelected($event)\">\n </nc-admin-impersonate-list>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-raised-button color=\"primary\"\n (click)=\"assign()\">{{ 'side-menu.impersonation.submit' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n", styles: [".user-assign-container{padding:16px;position:relative;height:calc(100% - 4px)}.user-assign-search{width:100%}.prefix-icon{font-size:18px;color:#64748b}.height-100{height:100%}.height-fix{height:calc(100% - 44px)}\n"] }]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
74
|
+
type: Inject,
|
|
75
|
+
args: [MAT_DIALOG_DATA]
|
|
76
|
+
}] }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4taW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9hZG1pbi1pbXBlcnNvbmF0ZS1kaWFsb2cvYWRtaW4taW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9hZG1pbi1pbXBlcnNvbmF0ZS1kaWFsb2cvYWRtaW4taW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFDSCw0QkFBNEIsRUFHNUIsZUFBZSxFQUVsQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQVV2RSxNQUFNLE9BQU8sK0JBQStCO0lBZ0J4Qzs7O09BR0c7SUFDSCxZQUFzQixVQUF5RCxFQUNoQyxLQUEyQjtRQURwRCxlQUFVLEdBQVYsVUFBVSxDQUErQztRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQXBCMUU7O1dBRUc7UUFDSSxzQkFBaUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBa0J6QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUE2QixDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxxQkFBcUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsSUFBZTtRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDbEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsT0FBTyxFQUFFLDZCQUE2QjtnQkFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQzFCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7NkhBN0RRLCtCQUErQiw4Q0FxQnBCLGVBQWU7aUhBckIxQiwrQkFBK0Isc0RBSjdCLENBQUM7WUFDUixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSw0QkFBNEI7U0FDbkUsQ0FBQywwQkNqQk4sbXZEQStCQTs0RkRaYSwrQkFBK0I7a0JBUjNDLFNBQVM7K0JBQ0ksNkJBQTZCLGFBRzVCLENBQUM7NEJBQ1IsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsNEJBQTRCO3lCQUNuRSxDQUFDOzswQkF1QlcsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSW1wZXJzb25hdGlvblVzZXJMaXN0U2VydmljZSxcbiAgICBQcm9jZXNzUm9sZSxcbiAgICBVc2VyTGlzdEluamVjdGVkRGF0YSxcbiAgICBVc2VyTGlzdFNlcnZpY2UsXG4gICAgVXNlclZhbHVlXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLWFkbWluLWltcGVyc29uYXRlLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkbWluLWltcGVyc29uYXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRtaW4taW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgICBwcm92aWRlOiBVc2VyTGlzdFNlcnZpY2UsIHVzZUNsYXNzOiBJbXBlcnNvbmF0aW9uVXNlckxpc3RTZXJ2aWNlXG4gICAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5JbXBlcnNvbmF0ZURpYWxvZ0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogRm9ybSBjb250cm9sIGZvciB1c2VyIHNlYXJjaCB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoVXNlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgIC8qKlxuICAgICAqIERhdGEgYWJvdXQgcHJlc2VsZWN0ZWQgdXNlciBzZW5kIGZyb20gW1VzZXJGaWVsZENvbXBvbmVudF17QGxpbmsgQWJzdHJhY3RVc2VyRmllbGRDb21wb25lbnR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBpbmplY3RlZERhdGE6IFVzZXJMaXN0SW5qZWN0ZWREYXRhO1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgdXNlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2N1cnJlbnRVc2VyOiBVc2VyVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3QgYW5kIHNldCBkYXRhIHNlbmQgZnJvbSBbVXNlckZpZWxkQ29tcG9uZW50XXtAbGluayBBYnN0cmFjdFVzZXJGaWVsZENvbXBvbmVudH0gaWYgdGhlIHVzZXIgaXMgcHJlc2VsZWN0ZWQuXG4gICAgICogQHBhcmFtIF9zaWRlTWVudUNvbnRyb2wgQ29udGFpbnMgW1JvbGVzXXtAbGluayBQcm9jZXNzUm9sZX0gYW5kIFtVc2VyVmFsdWVde0BsaW5rIFVzZXJWYWx1ZX0uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBZG1pbkltcGVyc29uYXRlRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJvdGVjdGVkIF9kYXRhOiBVc2VyTGlzdEluamVjdGVkRGF0YSkge1xuICAgICAgICBpZiAodGhpcy5fZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5pbmplY3RlZERhdGEgPSB0aGlzLl9kYXRhIGFzIFVzZXJMaXN0SW5qZWN0ZWREYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHVzZXIgdGhhdCBpcyBpbml0aWFsbHkgc2VsZWN0ZWQsIG9yIGB1bmRlZmluZWRgIGlmIG5vbmUgaXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGluaXRpYWxseVNlbGVjdGVkVXNlcigpOiBVc2VyVmFsdWUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3RlZERhdGEgPyB0aGlzLmluamVjdGVkRGF0YS52YWx1ZSBhcyBVc2VyVmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb2xlcygpOiBBcnJheTxzdHJpbmc+IHwgQXJyYXk8UHJvY2Vzc1JvbGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5qZWN0ZWREYXRhID8gdGhpcy5pbmplY3RlZERhdGEucm9sZXMgOiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5lZ2F0aXZlUm9sZXMoKTogQXJyYXk8c3RyaW5nPiB8IEFycmF5PFByb2Nlc3NSb2xlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdGVkRGF0YSA/IHRoaXMuaW5qZWN0ZWREYXRhLm5lZ2F0aXZlUm9sZXMgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBzZWxlY3QgdXNlciBmcm9tIHVzZXJzIGFzc2lnbiBsaXN0IHB1Ymxpc2ggc2lkZSBtZW51IHdpdGggc2VsZWN0ZWQgdXNlciBhcyBkYXRhIGFuZCBtZXNzYWdlIGFib3V0IHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gdXNlciBTZWxlY3QgY3VycmVudCB1c2VyIGFzIFtVc2VyVmFsdWVde0BsaW5rIFVzZXJWYWx1ZX1cbiAgICAgKi9cbiAgICBwdWJsaWMgdXNlcldhc1NlbGVjdGVkKHVzZXI6IFVzZXJWYWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50VXNlciA9IHVzZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gYXNzaWduIGJ1dHRvbiBjbG9zZSBzaWRlIG1lbnUgd2l0aCBzZWxlY3RlZCB1c2VyIGFzIGRhdGEgYW5kIG1lc3NhZ2UgYWJvdXQgY29uZmlybS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNzaWduKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFVzZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZWxlY3RlZCB1c2VyIHdhcyBjb25maXJtZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuX2N1cnJlbnRVc2VyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYXQtZGlhbG9nLXRpdGxlXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIG5vbmVcIj5cbiAgICB7eyAnc2lkZS1tZW51LmltcGVyc29uYXRpb24udGl0bGUnIHwgdHJhbnNsYXRlICB9fVxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiIGNsYXNzPVwiaGVpZ2h0LWZpeFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWFzc2lnbi1jb250YWluZXIgc2lkZS1tZW51LXJvb3RcIiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBjbGFzcz1cIm5ldGdyaWYtaW5wdXQgbmV0Z3JpZi1pbnB1dC1maXhcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDBcIiBjbGFzcz1cInVzZXItYXNzaWduLXNlYXJjaFwiIGNvbG9yPVwicHJpbWFyeVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeCBjbGFzcz1cInByZWZpeC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7eyAnc2lkZS1tZW51LnVzZXIuY2hvb3NlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hVc2VyQ29udHJvbFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uICpuZ0lmPVwic2VhcmNoVXNlckNvbnRyb2wudmFsdWVcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoVXNlckNvbnRyb2wuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmMtYWRtaW4taW1wZXJzb25hdGUtbGlzdCBmeEZsZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaFVzZXJDb250cm9sXT1cInNlYXJjaFVzZXJDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvbGVzXT1cInJvbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25lZ2F0aXZlUm9sZXNdPVwibmVnYXRpdmVSb2xlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbml0aWFsbHlTZWxlY3RlZFVzZXJdPVwiaW5pdGlhbGx5U2VsZWN0ZWRVc2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVzZXJTZWxlY3RlZCk9XCJ1c2VyV2FzU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L25jLWFkbWluLWltcGVyc29uYXRlLWxpc3Q+XG5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhc3NpZ24oKVwiPnt7ICdzaWRlLW1lbnUuaW1wZXJzb25hdGlvbi5zdWJtaXQnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NewCaseDialogComponent } from './new-case-dialog/new-case-dialog.component';
|
|
4
|
+
import { CovalentModule, MaterialModule, SnackBarModule, TranslateLibModule, NAE_USER_ASSIGN_DIALOG_COMPONENT, NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, NAE_NEW_CASE_DIALOG_COMPONENT, NAE_USER_IMPERSONATE_DIALOG_COMPONENT, NAE_SAVE_FILTER_DIALOG_COMPONENT, NAE_LOAD_FILTER_DIALOG_COMPONENT } from '@netgrif/components-core';
|
|
5
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
6
|
+
import { SideMenuUserAssignComponentModule } from '../side-menu/content-components/user-assign/side-menu-user-assign-component.module';
|
|
7
|
+
import { FlexLayoutModule, FlexModule } from '@angular/flex-layout';
|
|
8
|
+
import { FormsModule } from '@angular/forms';
|
|
9
|
+
import { HotkeyModule } from 'angular2-hotkeys';
|
|
10
|
+
import { ImportNetDialogComponent } from './import-net-dialog/import-net-dialog.component';
|
|
11
|
+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
12
|
+
import { UserAssignDialogComponent } from './user-assign-dialog/user-assign-dialog.component';
|
|
13
|
+
import { AdminImpersonateDialogComponent } from './admin-impersonate-dialog/admin-impersonate-dialog.component';
|
|
14
|
+
import { SideMenuAdminImpersonateComponentModule } from '../side-menu/content-components/admin-impersonate/side-menu-admin-impersonate-component.module';
|
|
15
|
+
import { UserImpersonateDialogComponent } from './user-impersonate-dialog/user-impersonate-dialog.component';
|
|
16
|
+
import { CaseViewComponentModule } from '../view/case-view/case-view.module';
|
|
17
|
+
import { HeaderComponentModule } from '../header/header.module';
|
|
18
|
+
import { FilterSelectorDialogComponent } from './filter-selector-dialog/filter-selector-dialog.component';
|
|
19
|
+
import { SideMenuFilterSelectorComponentModule } from '../side-menu/content-components/filter-selector/side-menu-filter-selector-component.module';
|
|
20
|
+
import { LoadFilterDialogComponent } from './load-filter-dialog/load-filter-dialog.component';
|
|
21
|
+
import { SaveFilterDialogComponent } from './save-filter-dialog/save-filter-dialog.component';
|
|
22
|
+
import { PanelComponentModule } from '../panel/panel.module';
|
|
23
|
+
import { SideMenuLoadFilterComponentModule } from '../side-menu/content-components/load-filter/side-menu-load-filter-component.module';
|
|
24
|
+
import { SideMenuSaveFilterComponentModule } from '../side-menu/content-components/save-filter/side-menu-save-filter-component.module';
|
|
25
|
+
import { SideMenuMultiUserAssignComponentModule } from '../side-menu/content-components/multi-user-assign/side-menu-multi-user-assign-component.module';
|
|
26
|
+
import { MultiUserAssignDialogComponent } from './multi-user-assign-dialog/multi-user-assign-dialog.component';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "angular2-hotkeys";
|
|
29
|
+
export class DialogComponentsModule {
|
|
30
|
+
}
|
|
31
|
+
DialogComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
+
DialogComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogComponentsModule, declarations: [NewCaseDialogComponent,
|
|
33
|
+
ImportNetDialogComponent,
|
|
34
|
+
UserAssignDialogComponent,
|
|
35
|
+
AdminImpersonateDialogComponent,
|
|
36
|
+
UserImpersonateDialogComponent,
|
|
37
|
+
FilterSelectorDialogComponent,
|
|
38
|
+
LoadFilterDialogComponent,
|
|
39
|
+
SaveFilterDialogComponent,
|
|
40
|
+
MultiUserAssignDialogComponent], imports: [BrowserAnimationsModule,
|
|
41
|
+
SideMenuUserAssignComponentModule,
|
|
42
|
+
TranslateLibModule,
|
|
43
|
+
CommonModule,
|
|
44
|
+
A11yModule,
|
|
45
|
+
MaterialModule,
|
|
46
|
+
CovalentModule,
|
|
47
|
+
FlexLayoutModule,
|
|
48
|
+
FlexModule,
|
|
49
|
+
FormsModule,
|
|
50
|
+
SnackBarModule,
|
|
51
|
+
TranslateLibModule,
|
|
52
|
+
SideMenuUserAssignComponentModule,
|
|
53
|
+
SideMenuAdminImpersonateComponentModule,
|
|
54
|
+
SideMenuFilterSelectorComponentModule,
|
|
55
|
+
SideMenuLoadFilterComponentModule,
|
|
56
|
+
SideMenuSaveFilterComponentModule,
|
|
57
|
+
SideMenuMultiUserAssignComponentModule,
|
|
58
|
+
CaseViewComponentModule,
|
|
59
|
+
HeaderComponentModule,
|
|
60
|
+
PanelComponentModule, i1.HotkeyModule], exports: [NewCaseDialogComponent,
|
|
61
|
+
ImportNetDialogComponent,
|
|
62
|
+
UserAssignDialogComponent,
|
|
63
|
+
AdminImpersonateDialogComponent,
|
|
64
|
+
UserImpersonateDialogComponent,
|
|
65
|
+
FilterSelectorDialogComponent,
|
|
66
|
+
LoadFilterDialogComponent,
|
|
67
|
+
SaveFilterDialogComponent,
|
|
68
|
+
MultiUserAssignDialogComponent] });
|
|
69
|
+
DialogComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogComponentsModule, providers: [
|
|
70
|
+
{ provide: NAE_USER_ASSIGN_DIALOG_COMPONENT, useValue: UserAssignDialogComponent },
|
|
71
|
+
{ provide: NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, useValue: AdminImpersonateDialogComponent },
|
|
72
|
+
{ provide: NAE_USER_IMPERSONATE_DIALOG_COMPONENT, useValue: UserImpersonateDialogComponent },
|
|
73
|
+
{ provide: NAE_NEW_CASE_DIALOG_COMPONENT, useValue: NewCaseDialogComponent },
|
|
74
|
+
{ provide: NAE_SAVE_FILTER_DIALOG_COMPONENT, useValue: SaveFilterDialogComponent },
|
|
75
|
+
{ provide: NAE_LOAD_FILTER_DIALOG_COMPONENT, useValue: LoadFilterDialogComponent }
|
|
76
|
+
], imports: [[
|
|
77
|
+
BrowserAnimationsModule,
|
|
78
|
+
SideMenuUserAssignComponentModule,
|
|
79
|
+
TranslateLibModule,
|
|
80
|
+
CommonModule,
|
|
81
|
+
A11yModule,
|
|
82
|
+
MaterialModule,
|
|
83
|
+
CovalentModule,
|
|
84
|
+
FlexLayoutModule,
|
|
85
|
+
FlexModule,
|
|
86
|
+
FormsModule,
|
|
87
|
+
SnackBarModule,
|
|
88
|
+
TranslateLibModule,
|
|
89
|
+
SideMenuUserAssignComponentModule,
|
|
90
|
+
SideMenuAdminImpersonateComponentModule,
|
|
91
|
+
SideMenuFilterSelectorComponentModule,
|
|
92
|
+
SideMenuLoadFilterComponentModule,
|
|
93
|
+
SideMenuSaveFilterComponentModule,
|
|
94
|
+
SideMenuMultiUserAssignComponentModule,
|
|
95
|
+
CaseViewComponentModule,
|
|
96
|
+
HeaderComponentModule,
|
|
97
|
+
PanelComponentModule,
|
|
98
|
+
HotkeyModule.forRoot()
|
|
99
|
+
]] });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogComponentsModule, decorators: [{
|
|
101
|
+
type: NgModule,
|
|
102
|
+
args: [{
|
|
103
|
+
declarations: [
|
|
104
|
+
NewCaseDialogComponent,
|
|
105
|
+
ImportNetDialogComponent,
|
|
106
|
+
UserAssignDialogComponent,
|
|
107
|
+
AdminImpersonateDialogComponent,
|
|
108
|
+
UserImpersonateDialogComponent,
|
|
109
|
+
FilterSelectorDialogComponent,
|
|
110
|
+
LoadFilterDialogComponent,
|
|
111
|
+
SaveFilterDialogComponent,
|
|
112
|
+
MultiUserAssignDialogComponent
|
|
113
|
+
],
|
|
114
|
+
exports: [
|
|
115
|
+
NewCaseDialogComponent,
|
|
116
|
+
ImportNetDialogComponent,
|
|
117
|
+
UserAssignDialogComponent,
|
|
118
|
+
AdminImpersonateDialogComponent,
|
|
119
|
+
UserImpersonateDialogComponent,
|
|
120
|
+
FilterSelectorDialogComponent,
|
|
121
|
+
LoadFilterDialogComponent,
|
|
122
|
+
SaveFilterDialogComponent,
|
|
123
|
+
MultiUserAssignDialogComponent
|
|
124
|
+
],
|
|
125
|
+
imports: [
|
|
126
|
+
BrowserAnimationsModule,
|
|
127
|
+
SideMenuUserAssignComponentModule,
|
|
128
|
+
TranslateLibModule,
|
|
129
|
+
CommonModule,
|
|
130
|
+
A11yModule,
|
|
131
|
+
MaterialModule,
|
|
132
|
+
CovalentModule,
|
|
133
|
+
FlexLayoutModule,
|
|
134
|
+
FlexModule,
|
|
135
|
+
FormsModule,
|
|
136
|
+
SnackBarModule,
|
|
137
|
+
TranslateLibModule,
|
|
138
|
+
SideMenuUserAssignComponentModule,
|
|
139
|
+
SideMenuAdminImpersonateComponentModule,
|
|
140
|
+
SideMenuFilterSelectorComponentModule,
|
|
141
|
+
SideMenuLoadFilterComponentModule,
|
|
142
|
+
SideMenuSaveFilterComponentModule,
|
|
143
|
+
SideMenuMultiUserAssignComponentModule,
|
|
144
|
+
CaseViewComponentModule,
|
|
145
|
+
HeaderComponentModule,
|
|
146
|
+
PanelComponentModule,
|
|
147
|
+
HotkeyModule.forRoot()
|
|
148
|
+
],
|
|
149
|
+
providers: [
|
|
150
|
+
{ provide: NAE_USER_ASSIGN_DIALOG_COMPONENT, useValue: UserAssignDialogComponent },
|
|
151
|
+
{ provide: NAE_ADMIN_IMPERSONATE_DIALOG_COMPONENT, useValue: AdminImpersonateDialogComponent },
|
|
152
|
+
{ provide: NAE_USER_IMPERSONATE_DIALOG_COMPONENT, useValue: UserImpersonateDialogComponent },
|
|
153
|
+
{ provide: NAE_NEW_CASE_DIALOG_COMPONENT, useValue: NewCaseDialogComponent },
|
|
154
|
+
{ provide: NAE_SAVE_FILTER_DIALOG_COMPONENT, useValue: SaveFilterDialogComponent },
|
|
155
|
+
{ provide: NAE_LOAD_FILTER_DIALOG_COMPONENT, useValue: LoadFilterDialogComponent }
|
|
156
|
+
]
|
|
157
|
+
}]
|
|
158
|
+
}] });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFDSCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLHNDQUFzQyxFQUN0Qyw2QkFBNkIsRUFDN0IscUNBQXFDLEVBQ3JDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDbkMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUNILGlDQUFpQyxFQUNwQyxNQUFNLG9GQUFvRixDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzlHLE9BQU8sRUFDSCx1Q0FBdUMsRUFDMUMsTUFBTSxnR0FBZ0cs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LEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFDO3FCQUNuRjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05ld0Nhc2VEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vbmV3LWNhc2UtZGlhbG9nL25ldy1jYXNlLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBDb3ZhbGVudE1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBTbmFja0Jhck1vZHVsZSxcbiAgICBUcmFuc2xhdGVMaWJNb2R1bGUsXG4gICAgTkFFX1VTRVJfQVNTSUdOX0RJQUxPR19DT01QT05FTlQsXG4gICAgTkFFX0FETUlOX0lNUEVSU09OQVRFX0RJQUxPR19DT01QT05FTlQsXG4gICAgTkFFX05FV19DQVNFX0RJQUxPR19DT01QT05FTlQsXG4gICAgTkFFX1VTRVJfSU1QRVJTT05BVEVfRElBTE9HX0NPTVBPTkVOVCxcbiAgICBOQUVfU0FWRV9GSUxURVJfRElBTE9HX0NPTVBPTkVOVCxcbiAgICBOQUVfTE9BRF9GSUxURVJfRElBTE9HX0NPTVBPTkVOVFxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtBMTF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIFNpZGVNZW51VXNlckFzc2lnbkNvbXBvbmVudE1vZHVsZVxufSBmcm9tICcuLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3VzZXItYXNzaWduL3NpZGUtbWVudS11c2VyLWFzc2lnbi1jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7RmxleExheW91dE1vZHVsZSwgRmxleE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtIb3RrZXlNb2R1bGV9IGZyb20gJ2FuZ3VsYXIyLWhvdGtleXMnO1xuaW1wb3J0IHtJbXBvcnROZXREaWFsb2dDb21wb25lbnR9IGZyb20gJy4vaW1wb3J0LW5ldC1kaWFsb2cvaW1wb3J0LW5ldC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1VzZXJBc3NpZ25EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vdXNlci1hc3NpZ24tZGlhbG9nL3VzZXItYXNzaWduLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtBZG1pbkltcGVyc29uYXRlRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2FkbWluLWltcGVyc29uYXRlLWRpYWxvZy9hZG1pbi1pbXBlcnNvbmF0ZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgU2lkZU1lbnVBZG1pbkltcGVyc29uYXRlQ29tcG9uZW50TW9kdWxlXG59IGZyb20gJy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvYWRtaW4taW1wZXJzb25hdGUvc2lkZS1tZW51LWFkbWluLWltcGVyc29uYXRlLWNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHtVc2VySW1wZXJzb25hdGVEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vdXNlci1pbXBlcnNvbmF0ZS1kaWFsb2cvdXNlci1pbXBlcnNvbmF0ZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7Q2FzZVZpZXdDb21wb25lbnRNb2R1bGV9IGZyb20gJy4uL3ZpZXcvY2FzZS12aWV3L2Nhc2Utdmlldy5tb2R1bGUnO1xuaW1wb3J0IHtIZWFkZXJDb21wb25lbnRNb2R1bGV9IGZyb20gJy4uL2hlYWRlci9oZWFkZXIubW9kdWxlJztcbmltcG9ydCB7RmlsdGVyU2VsZWN0b3JEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vZmlsdGVyLXNlbGVjdG9yLWRpYWxvZy9maWx0ZXItc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIFNpZGVNZW51RmlsdGVyU2VsZWN0b3JDb21wb25lbnRNb2R1bGVcbn0gZnJvbSAnLi4vc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9maWx0ZXItc2VsZWN0b3Ivc2lkZS1tZW51LWZpbHRlci1zZWxlY3Rvci1jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7TG9hZEZpbHRlckRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9sb2FkLWZpbHRlci1kaWFsb2cvbG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge1NhdmVGaWx0ZXJEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vc2F2ZS1maWx0ZXItZGlhbG9nL3NhdmUtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtQYW5lbENvbXBvbmVudE1vZHVsZX0gZnJvbSAnLi4vcGFuZWwvcGFuZWwubW9kdWxlJztcbmltcG9ydCB7XG4gICAgU2lkZU1lbnVMb2FkRmlsdGVyQ29tcG9uZW50TW9kdWxlXG59IGZyb20gJy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvbG9hZC1maWx0ZXIvc2lkZS1tZW51LWxvYWQtZmlsdGVyLWNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHtcbiAgICBTaWRlTWVudVNhdmVGaWx0ZXJDb21wb25lbnRNb2R1bGVcbn0gZnJvbSAnLi4vc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9zYXZlLWZpbHRlci9zaWRlLW1lbnUtc2F2ZS1maWx0ZXItY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQge1xuICAgIFNpZGVNZW51TXVsdGlVc2VyQXNzaWduQ29tcG9uZW50TW9kdWxlXG59IGZyb20gJy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvbXVsdGktdXNlci1hc3NpZ24vc2lkZS1tZW51LW11bHRpLXVzZXItYXNzaWduLWNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgTXVsdGlVc2VyQXNzaWduRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS11c2VyLWFzc2lnbi1kaWFsb2cvbXVsdGktdXNlci1hc3NpZ24tZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIE5ld0Nhc2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEltcG9ydE5ldERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgVXNlckFzc2lnbkRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgQWRtaW5JbXBlcnNvbmF0ZURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgVXNlckltcGVyc29uYXRlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgTG9hZEZpbHRlckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgU2F2ZUZpbHRlckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgTXVsdGlVc2VyQXNzaWduRGlhbG9nQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5ld0Nhc2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEltcG9ydE5ldERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgVXNlckFzc2lnbkRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgQWRtaW5JbXBlcnNvbmF0ZURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgVXNlckltcGVyc29uYXRlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgTG9hZEZpbHRlckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgU2F2ZUZpbHRlckRpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgTXVsdGlVc2VyQXNzaWduRGlhbG9nQ29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgICAgICBTaWRlTWVudVVzZXJBc3NpZ25Db21wb25lbnRNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZUxpYk1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgQ292YWxlbnRNb2R1bGUsXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgICAgIEZsZXhNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTbmFja0Jhck1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTGliTW9kdWxlLFxuICAgICAgICBTaWRlTWVudVVzZXJBc3NpZ25Db21wb25lbnRNb2R1bGUsXG4gICAgICAgIFNpZGVNZW51QWRtaW5JbXBlcnNvbmF0ZUNvbXBvbmVudE1vZHVsZSxcbiAgICAgICAgU2lkZU1lbnVGaWx0ZXJTZWxlY3RvckNvbXBvbmVudE1vZHVsZSxcbiAgICAgICAgU2lkZU1lbnVMb2FkRmlsdGVyQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBTaWRlTWVudVNhdmVGaWx0ZXJDb21wb25lbnRNb2R1bGUsXG4gICAgICAgIFNpZGVNZW51TXVsdGlVc2VyQXNzaWduQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBDYXNlVmlld0NvbXBvbmVudE1vZHVsZSxcbiAgICAgICAgSGVhZGVyQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBQYW5lbENvbXBvbmVudE1vZHVsZSxcbiAgICAgICAgSG90a2V5TW9kdWxlLmZvclJvb3QoKVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBOQUVfVVNFUl9BU1NJR05fRElBTE9HX0NPTVBPTkVOVCwgdXNlVmFsdWU6IFVzZXJBc3NpZ25EaWFsb2dDb21wb25lbnR9LFxuICAgICAgICB7cHJvdmlkZTogTkFFX0FETUlOX0lNUEVSU09OQVRFX0RJQUxPR19DT01QT05FTlQsIHVzZVZhbHVlOiBBZG1pbkltcGVyc29uYXRlRGlhbG9nQ29tcG9uZW50fSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9VU0VSX0lNUEVSU09OQVRFX0RJQUxPR19DT01QT05FTlQsIHVzZVZhbHVlOiBVc2VySW1wZXJzb25hdGVEaWFsb2dDb21wb25lbnR9LFxuICAgICAgICB7cHJvdmlkZTogTkFFX05FV19DQVNFX0RJQUxPR19DT01QT05FTlQsIHVzZVZhbHVlOiBOZXdDYXNlRGlhbG9nQ29tcG9uZW50fSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9TQVZFX0ZJTFRFUl9ESUFMT0dfQ09NUE9ORU5ULCB1c2VWYWx1ZTogU2F2ZUZpbHRlckRpYWxvZ0NvbXBvbmVudH0sXG4gICAgICAgIHtwcm92aWRlOiBOQUVfTE9BRF9GSUxURVJfRElBTE9HX0NPTVBPTkVOVCwgdXNlVmFsdWU6IExvYWRGaWx0ZXJEaWFsb2dDb21wb25lbnR9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnRzTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Component, Inject, ViewChild } from '@angular/core';
|
|
2
|
+
import { FilteredArray, FilterType } from '@netgrif/components-core';
|
|
3
|
+
import { FormControl } from '@angular/forms';
|
|
4
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
import * as i2 from "@netgrif/components-core";
|
|
8
|
+
import * as i3 from "@angular/material/form-field";
|
|
9
|
+
import * as i4 from "@angular/material/list";
|
|
10
|
+
import * as i5 from "../../side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component";
|
|
11
|
+
import * as i6 from "@angular/material/button";
|
|
12
|
+
import * as i7 from "@angular/flex-layout/flex";
|
|
13
|
+
import * as i8 from "@angular/material/input";
|
|
14
|
+
import * as i9 from "@angular/forms";
|
|
15
|
+
import * as i10 from "@angular/common";
|
|
16
|
+
import * as i11 from "@ngx-translate/core";
|
|
17
|
+
export class FilterSelectorDialogComponent {
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the {@link Filter} objects from the {@link FilterRepository} and instantiates this component.
|
|
20
|
+
*
|
|
21
|
+
* Filters that are available for selection can be set using the injected data. See {@link FilterSelectorInjectionData}
|
|
22
|
+
* for more information.
|
|
23
|
+
* @param _dialogRef -
|
|
24
|
+
* @param _data
|
|
25
|
+
* @param _filterRepository -
|
|
26
|
+
*/
|
|
27
|
+
constructor(_dialogRef, _data, _filterRepository) {
|
|
28
|
+
this._dialogRef = _dialogRef;
|
|
29
|
+
this._data = _data;
|
|
30
|
+
this._filterRepository = _filterRepository;
|
|
31
|
+
/**
|
|
32
|
+
* @ignore
|
|
33
|
+
* Stores the predicate used for filtering of filters with {@linkFilteredArray}.
|
|
34
|
+
* @param item some filter from the list
|
|
35
|
+
* @param searchInput value the user is searching for
|
|
36
|
+
*/
|
|
37
|
+
this._filterPredicate = (item, searchInput) => {
|
|
38
|
+
return item.title
|
|
39
|
+
? item.title.toLocaleLowerCase().includes(searchInput.toLocaleLowerCase())
|
|
40
|
+
: item.id.toLocaleLowerCase().includes(searchInput.toLocaleLowerCase());
|
|
41
|
+
};
|
|
42
|
+
const filterConstraints = this._data;
|
|
43
|
+
let caseFilters = [];
|
|
44
|
+
let taskFilters = [];
|
|
45
|
+
if (filterConstraints && filterConstraints.filterIdsConstraint) {
|
|
46
|
+
const filters = this._filterRepository.getFilters(filterConstraints.filterIdsConstraint);
|
|
47
|
+
filters.forEach(filter => {
|
|
48
|
+
if (filter.type === FilterType.CASE &&
|
|
49
|
+
(!filterConstraints.filterTypeConstraint || filterConstraints.filterTypeConstraint === FilterType.CASE)) {
|
|
50
|
+
caseFilters.push(filter);
|
|
51
|
+
}
|
|
52
|
+
else if (filter.type === FilterType.TASK &&
|
|
53
|
+
(!filterConstraints.filterTypeConstraint || filterConstraints.filterTypeConstraint === FilterType.TASK)) {
|
|
54
|
+
taskFilters.push(filter);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
if (!filterConstraints ||
|
|
60
|
+
!filterConstraints.filterTypeConstraint ||
|
|
61
|
+
filterConstraints.filterTypeConstraint === FilterType.CASE) {
|
|
62
|
+
caseFilters = this._filterRepository.getFilters(this._filterRepository.getCaseFilterList());
|
|
63
|
+
}
|
|
64
|
+
if (!filterConstraints ||
|
|
65
|
+
!filterConstraints.filterTypeConstraint ||
|
|
66
|
+
filterConstraints.filterTypeConstraint === FilterType.TASK) {
|
|
67
|
+
taskFilters = this._filterRepository.getFilters(this._filterRepository.getTaskFilterList());
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
this.caseFilters = new FilteredArray(caseFilters, this._filterPredicate);
|
|
71
|
+
this.taskFilters = new FilteredArray(taskFilters, this._filterPredicate);
|
|
72
|
+
this.searchFormControl = new FormControl();
|
|
73
|
+
this.subValue = this.searchFormControl.valueChanges.subscribe(newValue => this.filterFilters(newValue));
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
this.subValue.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @ignore
|
|
80
|
+
* Changes the currently selected filter and publishes an event about this to the output stream in {@link SideMenuControl}.
|
|
81
|
+
* @param filter the newly selected filter
|
|
82
|
+
*/
|
|
83
|
+
filterSelected(filter) {
|
|
84
|
+
this._selectedFilter = filter;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @ignore
|
|
88
|
+
* Closes the side menu and publishes an event with the currently selected filter.
|
|
89
|
+
*/
|
|
90
|
+
filterSelectionConfirmed() {
|
|
91
|
+
if (this._selectedFilter !== undefined) {
|
|
92
|
+
this._dialogRef.close({
|
|
93
|
+
opened: false,
|
|
94
|
+
message: 'Selected filter was confirmed',
|
|
95
|
+
data: this._selectedFilter
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @ignore
|
|
101
|
+
* Clears selection of task filters and ensures that only one case filter can be selected at once.
|
|
102
|
+
* @param event list change event published byt the material component
|
|
103
|
+
*/
|
|
104
|
+
caseFilterSelected(event) {
|
|
105
|
+
if (event.options[0].selected) {
|
|
106
|
+
this.filterSelected(event.options[0].value);
|
|
107
|
+
if (this.taskFilterList) {
|
|
108
|
+
this.taskFilterList.deselectAll();
|
|
109
|
+
}
|
|
110
|
+
// TODO 20.4.2020 - change to [multiple] input attribute on MatSelectionList in HTML,
|
|
111
|
+
// once Covalent supports material 9.1.0 or above
|
|
112
|
+
this.caseFilterList.deselectAll();
|
|
113
|
+
event.options[0].selected = true;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.filterSelected(undefined);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @ignore
|
|
121
|
+
* Clears selection of case filters and ensures that only one task filter can be selected at once.
|
|
122
|
+
* @param event list change event published byt the material component
|
|
123
|
+
*/
|
|
124
|
+
taskFilterSelected(event) {
|
|
125
|
+
if (event.options[0].selected) {
|
|
126
|
+
this.filterSelected(event.options[0].value);
|
|
127
|
+
if (this.caseFilterList) {
|
|
128
|
+
this.caseFilterList.deselectAll();
|
|
129
|
+
}
|
|
130
|
+
// TODO 20.4.2020 - change to [multiple] input attribute on MatSelectionList in HTML,
|
|
131
|
+
// once Covalent supports material 9.1.0 or above
|
|
132
|
+
this.taskFilterList.deselectAll();
|
|
133
|
+
event.options[0].selected = true;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.filterSelected(undefined);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @ignore
|
|
141
|
+
* Filters both lists of filters based on user search input.
|
|
142
|
+
* @param newValue user search input value
|
|
143
|
+
*/
|
|
144
|
+
filterFilters(newValue) {
|
|
145
|
+
this.caseFilters.filter(newValue);
|
|
146
|
+
this.taskFilters.filter(newValue);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
FilterSelectorDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterSelectorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FilterRepository }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
+
FilterSelectorDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterSelectorDialogComponent, selector: "nc-filter-selector-dialog", viewQueries: [{ propertyName: "caseFilterList", first: true, predicate: ["caseFilterList"], descendants: true }, { propertyName: "taskFilterList", first: true, predicate: ["taskFilterList"], descendants: true }], ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.filter-selector.choose-filter' | translate}}\n</div>\n<div mat-dialog-content class=\"filter-selector-root side-menu-root\">\n <div class=\"input-margin netgrif-input\">\n <mat-form-field class=\"full-width-input\" appearance=\"outline\">\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-raised-button color=\"primary\" class=\"submit-button-padding\"\n (click)=\"filterSelectionConfirmed()\">{{ 'side-menu.filter-selector.select' | translate }}</button>\n </div>\n</div>\n\n", 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%}\n"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "tabIndex", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { type: i4.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { type: i5.FilterSelectorListItemComponent, selector: "nc-filter-selector-list-item" }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatLabel, selector: "mat-label" }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i11.TranslatePipe } });
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterSelectorDialogComponent, decorators: [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{ selector: 'nc-filter-selector-dialog', template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.filter-selector.choose-filter' | translate}}\n</div>\n<div mat-dialog-content class=\"filter-selector-root side-menu-root\">\n <div class=\"input-margin netgrif-input\">\n <mat-form-field class=\"full-width-input\" appearance=\"outline\">\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-raised-button color=\"primary\" class=\"submit-button-padding\"\n (click)=\"filterSelectionConfirmed()\">{{ 'side-menu.filter-selector.select' | translate }}</button>\n </div>\n</div>\n\n", 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%}\n"] }]
|
|
154
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
155
|
+
type: Inject,
|
|
156
|
+
args: [MAT_DIALOG_DATA]
|
|
157
|
+
}] }, { type: i2.FilterRepository }]; }, propDecorators: { caseFilterList: [{
|
|
158
|
+
type: ViewChild,
|
|
159
|
+
args: ['caseFilterList']
|
|
160
|
+
}], taskFilterList: [{
|
|
161
|
+
type: ViewChild,
|
|
162
|
+
args: ['taskFilterList']
|
|
163
|
+
}] } });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9kaWFsb2cvZmlsdGVyLXNlbGVjdG9yLWRpYWxvZy9maWx0ZXItc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9maWx0ZXItc2VsZWN0b3ItZGlhbG9nL2ZpbHRlci1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFDSyxhQUFhLEVBRVEsVUFBVSxFQUUxQyxNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPdkUsTUFBTSxPQUFPLDZCQUE2QjtJQW9EdEM7Ozs7Ozs7O09BUUc7SUFDSCxZQUFzQixVQUF1RCxFQUM5QixLQUE0QixFQUNyRCxpQkFBbUM7UUFGbkMsZUFBVSxHQUFWLFVBQVUsQ0FBNkM7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDckQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQXZCekQ7Ozs7O1dBS0c7UUFDTyxxQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLEVBQUU7WUFDL0QsT0FBTyxJQUFJLENBQUMsS0FBSztnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMs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QUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUNwQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OzJIQTlLUSw2QkFBNkIsOENBOERsQixlQUFlOytHQTlEMUIsNkJBQTZCLHNSQ2pCMUMsKzFEQWdDQTs0RkRmYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkFrRXRCLE1BQU07MkJBQUMsZUFBZTsyRUE3Qk4sY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBS0UsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZpbHRlciwgRmlsdGVyZWRBcnJheSxcbiAgICBGaWx0ZXJSZXBvc2l0b3J5LFxuICAgIEZpbHRlclNlbGVjdG9ySW5qZWN0aW9uRGF0YSwgRmlsdGVyVHlwZSxcbiAgICBTaWRlTWVudUluamVjdGlvbkRhdGFcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0U2VsZWN0aW9uTGlzdCwgTWF0U2VsZWN0aW9uTGlzdENoYW5nZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYy1maWx0ZXItc2VsZWN0b3ItZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VsZWN0b3JEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIENhc2UgZmlsdGVycyBib3VuZCB0byBIVE1MXG4gICAgICovXG4gICAgcHVibGljIGNhc2VGaWx0ZXJzOiBGaWx0ZXJlZEFycmF5PEZpbHRlcj47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFRhc2sgZmlsdGVycyBib3VuZCB0byBodG1sXG4gICAgICovXG4gICAgcHVibGljIHRhc2tGaWx0ZXJzOiBGaWx0ZXJlZEFycmF5PEZpbHRlcj47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFRhc2sgZmlsdGVycyBib3VuZCB0byBodG1sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHN1YlZhbHVlOiBTdWJzY3JpcHRpb247XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIGBGb3JtQ29udHJvbGAgZm9yIHRoZSBzZWFyY2ggaW5wdXRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEN1cnJlbnRseSBzZWxlY3RlZCBmaWx0ZXIuIGB1bmRlZmluZWRgIGlmIG5vIGZpbHRlciBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkRmlsdGVyOiBGaWx0ZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBgbWF0LXNlbGVjdGlvbi1saXN0YCBjb21wb25lbnQsIHRoYXQgaG9sZHMgdGhlIGxpc3Qgb2YgY2FzZSBmaWx0ZXJzLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Nhc2VGaWx0ZXJMaXN0JykgY2FzZUZpbHRlckxpc3Q6IE1hdFNlbGVjdGlvbkxpc3Q7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgYG1hdC1zZWxlY3Rpb24tbGlzdGAgY29tcG9uZW50LCB0aGF0IGhvbGRzIHRoZSBsaXN0IG9mIHRhc2sgZmlsdGVycy5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0YXNrRmlsdGVyTGlzdCcpIHRhc2tGaWx0ZXJMaXN0OiBNYXRTZWxlY3Rpb25MaXN0O1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFN0b3JlcyB0aGUgcHJlZGljYXRlIHVzZWQgZm9yIGZpbHRlcmluZyBvZiBmaWx0ZXJzIHdpdGgge0BsaW5rRmlsdGVyZWRBcnJheX0uXG4gICAgICogQHBhcmFtIGl0ZW0gc29tZSBmaWx0ZXIgZnJvbSB0aGUgbGlzdFxuICAgICAqIEBwYXJhbSBzZWFyY2hJbnB1dCB2YWx1ZSB0aGUgdXNlciBpcyBzZWFyY2hpbmcgZm9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJQcmVkaWNhdGUgPSAoaXRlbTogRmlsdGVyLCBzZWFyY2hJbnB1dDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBpdGVtLnRpdGxlXG4gICAgICAgICAgICA/IGl0ZW0udGl0bGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hJbnB1dC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgOiBpdGVtLmlkLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoSW5wdXQudG9Mb2NhbGVMb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSB7QGxpbmsgRmlsdGVyfSBvYmplY3RzIGZyb20gdGhlIHtAbGluayBGaWx0ZXJSZXBvc2l0b3J5fSBhbmQgaW5zdGFudGlhdGVzIHRoaXMgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogRmlsdGVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiBjYW4gYmUgc2V0IHVzaW5nIHRoZSBpbmplY3RlZCBkYXRhLiBTZWUge0BsaW5rIEZpbHRlclNlbGVjdG9ySW5qZWN0aW9uRGF0YX1cbiAgICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgKiBAcGFyYW0gX2RpYWxvZ1JlZiAtXG4gICAgICogQHBhcmFtIF9kYXRhXG4gICAgICogQHBhcmFtIF9maWx0ZXJSZXBvc2l0b3J5IC1cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEZpbHRlclNlbGVjdG9yRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJvdGVjdGVkIF9kYXRhOiBTaWRlTWVudUluamVjdGlvbkRhdGEsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maWx0ZXJSZXBvc2l0b3J5OiBGaWx0ZXJSZXBvc2l0b3J5KSB7XG4gICAgICAgIGNvbnN0IGZpbHRlckNvbnN0cmFpbnRzID0gdGhpcy5fZGF0YSBhcyBGaWx0ZXJTZWxlY3RvckluamVjdGlvbkRhdGE7XG5cbiAgICAgICAgbGV0IGNhc2VGaWx0ZXJzID0gW107XG4gICAgICAgIGxldCB0YXNrRmlsdGVycyA9IFtdO1xuICAgICAgICBpZiAoZmlsdGVyQ29uc3RyYWludHMgJiYgZmlsdGVyQ29uc3RyYWludHMuZmlsdGVySWRzQ29uc3RyYWludCkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuX2ZpbHRlclJlcG9zaXRvcnkuZ2V0RmlsdGVycyhmaWx0ZXJDb25zdHJhaW50cy5maWx0ZXJJZHNDb25zdHJhaW50KTtcbiAgICAgICAgICAgIGZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gRmlsdGVyVHlwZS5DQVNFICYmXG4gICAgICAgICAgICAgICAgICAgICghZmlsdGVyQ29uc3RyYWludHMuZmlsdGVyVHlwZUNvbnN0cmFpbnQgfHwgZmlsdGVyQ29uc3RyYWludHMuZmlsdGVyVHlwZUNvbnN0cmFpbnQgPT09IEZpbHRlclR5cGUuQ0FTRSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZUZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGUuVEFTSyAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZpbHRlckNvbnN0cmFpbnRzLmZpbHRlclR5cGVDb25zdHJhaW50IHx8IGZpbHRlckNvbnN0cmFpbnRzLmZpbHRlclR5cGVDb25zdHJhaW50ID09PSBGaWx0ZXJUeXBlLlRBU0spKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tGaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZmlsdGVyQ29uc3RyYWludHMgfHxcbiAgICAgICAgICAgICAgICAhZmlsdGVyQ29uc3RyYWludHMuZmlsdGVyVHlwZUNvbnN0cmFpbnQgfHxcbiAgICAgICAgICAgICAgICBmaWx0ZXJDb25zdHJhaW50cy5maWx0ZXJUeXBlQ29uc3RyYWludCA9PT0gRmlsdGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICAgICAgY2FzZUZpbHRlcnMgPSB0aGlzLl9maWx0ZXJSZXBvc2l0b3J5LmdldEZpbHRlcnModGhpcy5fZmlsdGVyUmVwb3NpdG9yeS5nZXRDYXNlRmlsdGVyTGlzdCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZmlsdGVyQ29uc3RyYWludHMgfHxcbiAgICAgICAgICAgICAgICAhZmlsdGVyQ29uc3RyYWludHMuZmlsdGVyVHlwZUNvbnN0cmFpbnQgfHxcbiAgICAgICAgICAgICAgICBmaWx0ZXJDb25zdHJhaW50cy5maWx0ZXJUeXBlQ29uc3RyYWludCA9PT0gRmlsdGVyVHlwZS5UQVNLKSB7XG4gICAgICAgICAgICAgICAgdGFza0ZpbHRlcnMgPSB0aGlzLl9maWx0ZXJSZXBvc2l0b3J5LmdldEZpbHRlcnModGhpcy5fZmlsdGVyUmVwb3NpdG9yeS5nZXRUYXNrRmlsdGVyTGlzdCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FzZUZpbHRlcnMgPSBuZXcgRmlsdGVyZWRBcnJheTxGaWx0ZXI+KGNhc2VGaWx0ZXJzLCB0aGlzLl9maWx0ZXJQcmVkaWNhdGUpO1xuICAgICAgICB0aGlzLnRhc2tGaWx0ZXJzID0gbmV3IEZpbHRlcmVkQXJyYXk8RmlsdGVyPih0YXNrRmlsdGVycywgdGhpcy5fZmlsdGVyUHJlZGljYXRlKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgICAgIHRoaXMuc3ViVmFsdWUgPSB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobmV3VmFsdWUgPT4gdGhpcy5maWx0ZXJGaWx0ZXJzKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3ViVmFsdWUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogQ2hhbmdlcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGZpbHRlciBhbmQgcHVibGlzaGVzIGFuIGV2ZW50IGFib3V0IHRoaXMgdG8gdGhlIG91dHB1dCBzdHJlYW0gaW4ge0BsaW5rIFNpZGVNZW51Q29udHJvbH0uXG4gICAgICogQHBhcmFtIGZpbHRlciB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsdGVyXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlclNlbGVjdGVkKGZpbHRlcjogRmlsdGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmlsdGVyID0gZmlsdGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBDbG9zZXMgdGhlIHNpZGUgbWVudSBhbmQgcHVibGlzaGVzIGFuIGV2ZW50IHdpdGggdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmaWx0ZXIuXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlclNlbGVjdGlvbkNvbmZpcm1lZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRmlsdGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAgICAgICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2VsZWN0ZWQgZmlsdGVyIHdhcyBjb25maXJtZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuX3NlbGVjdGVkRmlsdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBDbGVhcnMgc2VsZWN0aW9uIG9mIHRhc2sgZmlsdGVycyBhbmQgZW5zdXJlcyB0aGF0IG9ubHkgb25lIGNhc2UgZmlsdGVyIGNhbiBiZSBzZWxlY3RlZCBhdCBvbmNlLlxuICAgICAqIEBwYXJhbSBldmVudCBsaXN0IGNoYW5nZSBldmVudCBwdWJsaXNoZWQgYnl0IHRoZSBtYXRlcmlhbCBjb21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FzZUZpbHRlclNlbGVjdGVkKGV2ZW50OiBNYXRTZWxlY3Rpb25MaXN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5vcHRpb25zWzBdLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGVkKGV2ZW50Lm9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFza0ZpbHRlckxpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tGaWx0ZXJMaXN0LmRlc2VsZWN0QWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPIDIwLjQuMjAyMCAtIGNoYW5nZSB0byBbbXVsdGlwbGVdIGlucHV0IGF0dHJpYnV0ZSBvbiBNYXRTZWxlY3Rpb25MaXN0IGluIEhUTUwsXG4gICAgICAgICAgICAvLyAgb25jZSBDb3ZhbGVudCBzdXBwb3J0cyBtYXRlcmlhbCA5LjEuMCBvciBhYm92ZVxuICAgICAgICAgICAgdGhpcy5jYXNlRmlsdGVyTGlzdC5kZXNlbGVjdEFsbCgpO1xuICAgICAgICAgICAgZXZlbnQub3B0aW9uc1swXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGVkKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogQ2xlYXJzIHNlbGVjdGlvbiBvZiBjYXNlIGZpbHRlcnMgYW5kIGVuc3VyZXMgdGhhdCBvbmx5IG9uZSB0YXNrIGZpbHRlciBjYW4gYmUgc2VsZWN0ZWQgYXQgb25jZS5cbiAgICAgKiBAcGFyYW0gZXZlbnQgbGlzdCBjaGFuZ2UgZXZlbnQgcHVibGlzaGVkIGJ5dCB0aGUgbWF0ZXJpYWwgY29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHRhc2tGaWx0ZXJTZWxlY3RlZChldmVudDogTWF0U2VsZWN0aW9uTGlzdENoYW5nZSk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQub3B0aW9uc1swXS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZChldmVudC5vcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNhc2VGaWx0ZXJMaXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXNlRmlsdGVyTGlzdC5kZXNlbGVjdEFsbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVE9ETyAyMC40LjIwMjAgLSBjaGFuZ2UgdG8gW211bHRpcGxlXSBpbnB1dCBhdHRyaWJ1dGUgb24gTWF0U2VsZWN0aW9uTGlzdCBpbiBIVE1MLFxuICAgICAgICAgICAgLy8gIG9uY2UgQ292YWxlbnQgc3VwcG9ydHMgbWF0ZXJpYWwgOS4xLjAgb3IgYWJvdmVcbiAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckxpc3QuZGVzZWxlY3RBbGwoKTtcbiAgICAgICAgICAgIGV2ZW50Lm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEZpbHRlcnMgYm90aCBsaXN0cyBvZiBmaWx0ZXJzIGJhc2VkIG9uIHVzZXIgc2VhcmNoIGlucHV0LlxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB1c2VyIHNlYXJjaCBpbnB1dCB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXJGaWx0ZXJzKG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXNlRmlsdGVycy5maWx0ZXIobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLnRhc2tGaWx0ZXJzLmZpbHRlcihuZXdWYWx1ZSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgbm9uZVwiPlxuICAgIHt7ICdzaWRlLW1lbnUuZmlsdGVyLXNlbGVjdG9yLmNob29zZS1maWx0ZXInIHwgdHJhbnNsYXRlfX1cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJmaWx0ZXItc2VsZWN0b3Itcm9vdCBzaWRlLW1lbnUtcm9vdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1tYXJnaW4gbmV0Z3JpZi1pbnB1dFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoLWlucHV0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snc2lkZS1tZW51LmZpbHRlci1zZWxlY3Rvci5zZWFyY2gtZmlsdGVyJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybUNvbnRyb2xcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2FzZUZpbHRlcnMuZmlsdGVyZWQubGVuZ3RoID4gMFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkZXItcGFkZGluZ1wiPnt7ICdzaWRlLW1lbnUuZmlsdGVyLXNlbGVjdG9yLmNhc2UtZmlsdGVycycgfCB0cmFuc2xhdGV9fTwvaDQ+XG4gICAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgKHNlbGVjdGlvbkNoYW5nZSk9XCJjYXNlRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiICNjYXNlRmlsdGVyTGlzdD5cbiAgICAgICAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBjYXNlRmlsdGVycy5maWx0ZXJlZFwiIFt2YWx1ZV09XCJmaWx0ZXJcIj5cbiAgICAgICAgICAgICAgICA8bmMtZmlsdGVyLXNlbGVjdG9yLWxpc3QtaXRlbSBbZmlsdGVyXT1cImZpbHRlclwiPjwvbmMtZmlsdGVyLXNlbGVjdG9yLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidGFza0ZpbHRlcnMuZmlsdGVyZWQubGVuZ3RoID4gMFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkZXItcGFkZGluZ1wiPnt7ICdzaWRlLW1lbnUuZmlsdGVyLXNlbGVjdG9yLnRhc2stZmlsdGVycycgfCB0cmFuc2xhdGV9fTwvaDQ+XG4gICAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0YXNrRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiICN0YXNrRmlsdGVyTGlzdD5cbiAgICAgICAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiB0YXNrRmlsdGVycy5maWx0ZXJlZFwiIFt2YWx1ZV09XCJmaWx0ZXJcIj5cbiAgICAgICAgICAgICAgICA8bmMtZmlsdGVyLXNlbGVjdG9yLWxpc3QtaXRlbSBbZmlsdGVyXT1cImZpbHRlclwiPjwvbmMtZmlsdGVyLXNlbGVjdG9yLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cInN1Ym1pdC1idXR0b24tcGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbHRlclNlbGVjdGlvbkNvbmZpcm1lZCgpXCI+e3sgJ3NpZGUtbWVudS5maWx0ZXItc2VsZWN0b3Iuc2VsZWN0JyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|