@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
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { Component, Inject, Optional, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormControl, Validators } from '@angular/forms';
|
|
3
|
+
import { BehaviorSubject, combineLatest, ReplaySubject } from 'rxjs';
|
|
4
|
+
import { LoadingEmitter, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE } from '@netgrif/components-core';
|
|
5
|
+
import { Hotkey } from 'angular2-hotkeys';
|
|
6
|
+
import { map, startWith, tap } from 'rxjs/operators';
|
|
7
|
+
import semver from 'semver';
|
|
8
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@netgrif/components-core";
|
|
13
|
+
import * as i4 from "angular2-hotkeys";
|
|
14
|
+
import * as i5 from "@ngx-translate/core";
|
|
15
|
+
import * as i6 from "@angular/material/stepper";
|
|
16
|
+
import * as i7 from "@angular/material/form-field";
|
|
17
|
+
import * as i8 from "@angular/material/autocomplete";
|
|
18
|
+
import * as i9 from "@angular/material/core";
|
|
19
|
+
import * as i10 from "@angular/material/button";
|
|
20
|
+
import * as i11 from "@angular/material/progress-spinner";
|
|
21
|
+
import * as i12 from "@angular/flex-layout/flex";
|
|
22
|
+
import * as i13 from "@angular/common";
|
|
23
|
+
import * as i14 from "@angular/material/input";
|
|
24
|
+
export class NewCaseDialogComponent {
|
|
25
|
+
constructor(_dialogRef, _data, _formBuilder, _snackBarService, _caseResourceService, _hotkeysService, _translate, isVersionVisible, allVersionEnabled) {
|
|
26
|
+
this._dialogRef = _dialogRef;
|
|
27
|
+
this._data = _data;
|
|
28
|
+
this._formBuilder = _formBuilder;
|
|
29
|
+
this._snackBarService = _snackBarService;
|
|
30
|
+
this._caseResourceService = _caseResourceService;
|
|
31
|
+
this._hotkeysService = _hotkeysService;
|
|
32
|
+
this._translate = _translate;
|
|
33
|
+
this.processFormControl = new FormControl('', Validators.required);
|
|
34
|
+
this.titleFormControl = new FormControl('', Validators.required);
|
|
35
|
+
this.options = [];
|
|
36
|
+
this.colors = [
|
|
37
|
+
{ value: 'panel-primary-icon', viewValue: 'Primary' },
|
|
38
|
+
{ value: 'panel-accent-icon', viewValue: 'Accent' },
|
|
39
|
+
];
|
|
40
|
+
if (this._data) {
|
|
41
|
+
this._injectedData = this._data;
|
|
42
|
+
}
|
|
43
|
+
this.isVersionVisible = isVersionVisible !== null ? isVersionVisible : true;
|
|
44
|
+
this.allVersionEnabled = allVersionEnabled !== null ? allVersionEnabled : false;
|
|
45
|
+
if (!this._injectedData) {
|
|
46
|
+
this.closeNoNets();
|
|
47
|
+
}
|
|
48
|
+
this._hotkeysService.add(new Hotkey('enter', (event) => {
|
|
49
|
+
this.nextStep();
|
|
50
|
+
return false;
|
|
51
|
+
}));
|
|
52
|
+
this._hasMultipleNets$ = new ReplaySubject(1);
|
|
53
|
+
this._notInitialized$ = new BehaviorSubject(true);
|
|
54
|
+
this._options$ = new ReplaySubject(1);
|
|
55
|
+
this.loadingSubmit = new LoadingEmitter(false);
|
|
56
|
+
this._allowedNetsSubscription = this._injectedData.allowedNets$.pipe(map(nets => nets.map(petriNet => ({
|
|
57
|
+
value: petriNet.stringId,
|
|
58
|
+
viewValue: petriNet.title,
|
|
59
|
+
version: petriNet.version
|
|
60
|
+
}))), map(nets => {
|
|
61
|
+
if (!this.allVersionEnabled) {
|
|
62
|
+
return this.removeOldVersions(nets);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return nets;
|
|
66
|
+
}
|
|
67
|
+
}), tap(options => {
|
|
68
|
+
if (options.length === 0) {
|
|
69
|
+
this.closeNoNets();
|
|
70
|
+
}
|
|
71
|
+
this.options = options;
|
|
72
|
+
this._hasMultipleNets$.next(options.length > 1);
|
|
73
|
+
})).subscribe(options => {
|
|
74
|
+
this._options$.next(options);
|
|
75
|
+
if (!this._notInitialized$.closed) {
|
|
76
|
+
this._notInitialized$.next(false);
|
|
77
|
+
this._notInitialized$.complete();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this.filteredOptions$ = combineLatest([this._options$, this.processFormControl.valueChanges.pipe(startWith(''))]).pipe(map(sources => {
|
|
81
|
+
const options = sources[0];
|
|
82
|
+
const input = typeof sources[1] === 'string' || sources[1] === null ? sources[1] : sources[1].viewValue;
|
|
83
|
+
return input ? this._filter(input, options) : options.slice();
|
|
84
|
+
}), tap(filteredOptions => {
|
|
85
|
+
if (filteredOptions.length === 1) {
|
|
86
|
+
this.processFormControl.setValue(filteredOptions[0], { emitEvent: false });
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
ngOnDestroy() {
|
|
91
|
+
this._hasMultipleNets$.complete();
|
|
92
|
+
this.loadingSubmit.complete();
|
|
93
|
+
this._allowedNetsSubscription.unsubscribe();
|
|
94
|
+
}
|
|
95
|
+
get hasMultipleNets$() {
|
|
96
|
+
return this._hasMultipleNets$.asObservable();
|
|
97
|
+
}
|
|
98
|
+
get notInitialized$() {
|
|
99
|
+
return this._notInitialized$.asObservable();
|
|
100
|
+
}
|
|
101
|
+
displayFn(process) {
|
|
102
|
+
return process && process.viewValue ? process.viewValue : '';
|
|
103
|
+
}
|
|
104
|
+
createNewCase() {
|
|
105
|
+
if (this.loadingSubmit.value) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (this.titleFormControl.valid || !this.isCaseTitleRequired()) {
|
|
109
|
+
const newCase = {
|
|
110
|
+
title: this.titleFormControl.value === '' ? null : this.titleFormControl.value,
|
|
111
|
+
color: 'panel-primary-icon',
|
|
112
|
+
netId: this.options.length === 1 ? this.options[0].value : this.processFormControl.value.value
|
|
113
|
+
};
|
|
114
|
+
this.loadingSubmit.on();
|
|
115
|
+
this._caseResourceService.createCase(newCase)
|
|
116
|
+
.subscribe((response) => {
|
|
117
|
+
this.loadingSubmit.off();
|
|
118
|
+
if (!!response.outcome) {
|
|
119
|
+
this._snackBarService.openSuccessSnackBar(response.outcome.message === undefined
|
|
120
|
+
? this._translate.instant('side-menu.new-case.createCase') + ' ' + newCase.title
|
|
121
|
+
: response.outcome.message);
|
|
122
|
+
this._dialogRef.close({
|
|
123
|
+
opened: false,
|
|
124
|
+
message: response.outcome.message === undefined
|
|
125
|
+
? 'Confirm new case setup'
|
|
126
|
+
: response.outcome.message,
|
|
127
|
+
data: response.outcome.aCase
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else if (!!response.error) {
|
|
131
|
+
this._snackBarService.openWarningSnackBar(this._translate.instant('side-menu.new-case.createCaseError') + ' ' + newCase.title);
|
|
132
|
+
this._dialogRef.close({
|
|
133
|
+
opened: false,
|
|
134
|
+
message: response.error === undefined
|
|
135
|
+
? 'Confirm new case setup'
|
|
136
|
+
: response.error
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}, error => {
|
|
140
|
+
this.loadingSubmit.off();
|
|
141
|
+
this._snackBarService.openErrorSnackBar(error.message ? error.message : error);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Function to filter out matchless options without accent and case-sensitive differences
|
|
147
|
+
* @param value to compare matching options
|
|
148
|
+
* @param options that should be filtered
|
|
149
|
+
* @return return matched options
|
|
150
|
+
*/
|
|
151
|
+
_filter(value, options) {
|
|
152
|
+
const filterValue = value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
153
|
+
return options.filter(option => option.viewValue.toLowerCase().normalize('NFD')
|
|
154
|
+
.replace(/[\u0300-\u036f]/g, '').indexOf(filterValue) === 0);
|
|
155
|
+
}
|
|
156
|
+
closeNoNets() {
|
|
157
|
+
this._snackBarService.openErrorSnackBar(this._translate.instant('side-menu.new-case.noNets'));
|
|
158
|
+
this._dialogRef.close({
|
|
159
|
+
opened: false
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
nextStep() {
|
|
163
|
+
if (this.stepper1) {
|
|
164
|
+
if (this.stepper1.selectedIndex === 1) {
|
|
165
|
+
this.createNewCase();
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.stepper1.next();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (this.stepper2) {
|
|
172
|
+
if (this.stepper2.selectedIndex === 0) {
|
|
173
|
+
this.createNewCase();
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
this.stepper2.next();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
titleResolving() {
|
|
181
|
+
const caze = this._translate.instant('side-menu.new-case.case');
|
|
182
|
+
const name = typeof this.processFormControl.value === 'string' || this.processFormControl.value === null ?
|
|
183
|
+
undefined : this.processFormControl.value.viewValue;
|
|
184
|
+
return name === undefined ? caze : caze + ' - ' + name;
|
|
185
|
+
}
|
|
186
|
+
removeOldVersions(options) {
|
|
187
|
+
const tempNets = Object.assign([], options);
|
|
188
|
+
const petriNetIds = new Set(options.map(form => form.value));
|
|
189
|
+
const newestNets = new Array();
|
|
190
|
+
for (const value of petriNetIds) {
|
|
191
|
+
let current = { value, version: '1.0.0', viewValue: '' };
|
|
192
|
+
for (const net of tempNets) {
|
|
193
|
+
if (value === net.value && !semver.lt(net.version, current.version)) {
|
|
194
|
+
current = net;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
newestNets.push(current);
|
|
198
|
+
}
|
|
199
|
+
return newestNets;
|
|
200
|
+
}
|
|
201
|
+
isCaseTitleEnabled() {
|
|
202
|
+
return !!(this._injectedData?.newCaseCreationConfiguration?.enableCaseTitle ?? true);
|
|
203
|
+
}
|
|
204
|
+
isCaseTitleRequired() {
|
|
205
|
+
return this.isCaseTitleEnabled() && !!(this._injectedData?.newCaseCreationConfiguration?.isCaseTitleRequired ?? true);
|
|
206
|
+
}
|
|
207
|
+
showVersion(option) {
|
|
208
|
+
if (option !== undefined && option.value !== undefined && option.value.version !== undefined)
|
|
209
|
+
this.netVersion = option.value.version;
|
|
210
|
+
}
|
|
211
|
+
checkVersion(viewValue) {
|
|
212
|
+
const currentOption = typeof viewValue === 'string' || viewValue === null ? undefined : viewValue.version;
|
|
213
|
+
if (currentOption === undefined) {
|
|
214
|
+
this.netVersion = '';
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
toNextStep(viewValue) {
|
|
218
|
+
if (viewValue !== null && viewValue.value !== undefined) {
|
|
219
|
+
this.stepper1.next();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
NewCaseDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NewCaseDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.FormBuilder }, { token: i3.SnackBarService }, { token: i3.CaseResourceService }, { token: i4.HotkeysService }, { token: i5.TranslateService }, { token: NAE_NET_VERSION_VISIBLE, optional: true }, { token: NAE_NET_ALL_VERSIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
+
NewCaseDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NewCaseDialogComponent, selector: "nc-new-case-dialog", viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "stepper1", first: true, predicate: ["stepper1"], descendants: true }, { propertyName: "stepper2", first: true, predicate: ["stepper2"], descendants: true }], ngImport: i0, template: "<div #toolbar class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{titleResolving()}}\n</div>\n<div mat-dialog-content class=\"dialog-field-fix\">\n <mat-vertical-stepper *ngIf=\"hasMultipleNets$ | async\" linear #stepper1 class=\" netgrif-input\">\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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.choose' | translate}}\n </mat-label>\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 mat-dialog-actions class=\"cvti-button-field\" >\n <button *ngIf=\"isCaseTitleEnabled()\" mat-stroked-button (click)=\"toNextStep(processFormControl.value)\">{{'side-menu.new-case.next' | translate}}</button>\n <button *ngIf=\"!isCaseTitleEnabled()\" mat-raised-button color=\"primary\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">{{'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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.caseTitle' | translate}}\n </mat-label>\n <input matInput autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div mat-dialog-actions class=\"cvti-button-field\">\n <button mat-button class=\"margin-right\" (click)=\"stepper1.reset(); checkVersion(processFormControl.value)\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-stroked-button color=\"primary\" class=\"min-height-36px\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">\n <span *ngIf=\"(loadingSubmit | async) === false\"\n fxFlex>{{'side-menu.new-case.create' | translate}}</span>\n </button>\n </div>\n </mat-step>\n </mat-vertical-stepper>\n <mat-vertical-stepper *ngIf=\"(hasMultipleNets$ | async) === false\" linear #stepper2 class=\" netgrif-input\">\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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.caseTitle' | translate}}\n </mat-label>\n <input matInput autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div mat-dialog-actions class=\"cvti-button-field\">\n <button mat-stroked-button (click)=\"stepper2.reset()\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-raised-button color=\"primary\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">{{'side-menu.new-case.create' | translate}}</button>\n </div>\n </mat-step>\n </mat-vertical-stepper>\n <div *ngIf=\"(notInitialized$ | async)\" class=\"spinner-padding\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-spinner></mat-spinner>\n </div>\n\n</div>\n\n", styles: [".version-span{padding-left:8px;color:gray}.spinner-padding{padding:24px}.spinner-margin{margin-top:16px}.min-height-36px{min-height:36px}.margin-right{margin-right:8px}@keyframes spinner{to{transform:rotate(360deg)}}.spinner:before{content:\"\";box-sizing:border-box;position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;border-radius:50%;border:2px solid #ffffff;border-top-color:#000;animation:spinner .8s linear infinite}.margin-top-field{margin-top:4px}\n"], components: [{ type: i6.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { type: i6.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10.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: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i12.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: i12.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: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatStepLabel, selector: "[matStepLabel]" }, { type: i7.MatLabel, selector: "mat-label" }, { type: i14.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: i2.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.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7.MatSuffix, selector: "[matSuffix]" }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i12.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"] }], pipes: { "async": i13.AsyncPipe, "translate": i5.TranslatePipe } });
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NewCaseDialogComponent, decorators: [{
|
|
226
|
+
type: Component,
|
|
227
|
+
args: [{ selector: 'nc-new-case-dialog', template: "<div #toolbar class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{titleResolving()}}\n</div>\n<div mat-dialog-content class=\"dialog-field-fix\">\n <mat-vertical-stepper *ngIf=\"hasMultipleNets$ | async\" linear #stepper1 class=\" netgrif-input\">\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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.choose' | translate}}\n </mat-label>\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 mat-dialog-actions class=\"cvti-button-field\" >\n <button *ngIf=\"isCaseTitleEnabled()\" mat-stroked-button (click)=\"toNextStep(processFormControl.value)\">{{'side-menu.new-case.next' | translate}}</button>\n <button *ngIf=\"!isCaseTitleEnabled()\" mat-raised-button color=\"primary\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">{{'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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.caseTitle' | translate}}\n </mat-label>\n <input matInput autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div mat-dialog-actions class=\"cvti-button-field\">\n <button mat-button class=\"margin-right\" (click)=\"stepper1.reset(); checkVersion(processFormControl.value)\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-stroked-button color=\"primary\" class=\"min-height-36px\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">\n <span *ngIf=\"(loadingSubmit | async) === false\"\n fxFlex>{{'side-menu.new-case.create' | translate}}</span>\n </button>\n </div>\n </mat-step>\n </mat-vertical-stepper>\n <mat-vertical-stepper *ngIf=\"(hasMultipleNets$ | async) === false\" linear #stepper2 class=\" netgrif-input\">\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 color=\"primary\" appearance=\"outline\" class=\"margin-top-field\">\n <mat-label>\n {{'side-menu.new-case.caseTitle' | translate}}\n </mat-label>\n <input matInput autocomplete=\"off\" [formControl]=\"titleFormControl\" [required]=\"isCaseTitleRequired()\" (keyup.enter)=\"nextStep()\">\n </mat-form-field>\n <div mat-dialog-actions class=\"cvti-button-field\">\n <button mat-stroked-button (click)=\"stepper2.reset()\">{{'side-menu.new-case.reset' | translate}}</button>\n <button mat-raised-button color=\"primary\" (click)=\"createNewCase()\" [class.spinner]=\"loadingSubmit | async\"\n [disabled]=\"loadingSubmit | async\">{{'side-menu.new-case.create' | translate}}</button>\n </div>\n </mat-step>\n </mat-vertical-stepper>\n <div *ngIf=\"(notInitialized$ | async)\" class=\"spinner-padding\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-spinner></mat-spinner>\n </div>\n\n</div>\n\n", styles: [".version-span{padding-left:8px;color:gray}.spinner-padding{padding:24px}.spinner-margin{margin-top:16px}.min-height-36px{min-height:36px}.margin-right{margin-right:8px}@keyframes spinner{to{transform:rotate(360deg)}}.spinner:before{content:\"\";box-sizing:border-box;position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;border-radius:50%;border:2px solid #ffffff;border-top-color:#000;animation:spinner .8s linear infinite}.margin-top-field{margin-top:4px}\n"] }]
|
|
228
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
229
|
+
type: Inject,
|
|
230
|
+
args: [MAT_DIALOG_DATA]
|
|
231
|
+
}] }, { type: i2.FormBuilder }, { type: i3.SnackBarService }, { type: i3.CaseResourceService }, { type: i4.HotkeysService }, { type: i5.TranslateService }, { type: undefined, decorators: [{
|
|
232
|
+
type: Optional
|
|
233
|
+
}, {
|
|
234
|
+
type: Inject,
|
|
235
|
+
args: [NAE_NET_VERSION_VISIBLE]
|
|
236
|
+
}] }, { type: undefined, decorators: [{
|
|
237
|
+
type: Optional
|
|
238
|
+
}, {
|
|
239
|
+
type: Inject,
|
|
240
|
+
args: [NAE_NET_ALL_VERSIONS]
|
|
241
|
+
}] }]; }, propDecorators: { toolbar: [{
|
|
242
|
+
type: ViewChild,
|
|
243
|
+
args: ['toolbar']
|
|
244
|
+
}], stepper1: [{
|
|
245
|
+
type: ViewChild,
|
|
246
|
+
args: ['stepper1']
|
|
247
|
+
}], stepper2: [{
|
|
248
|
+
type: ViewChild,
|
|
249
|
+
args: ['stepper2']
|
|
250
|
+
}] } });
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNhc2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9uZXctY2FzZS1kaWFsb2cvbmV3LWNhc2UtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9uZXctY2FzZS1kaWFsb2cvbmV3LWNhc2UtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFhLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0YsT0FBTyxFQUUwQixjQUFjLEVBQzNDLG9CQUFvQixFQUFFLHVCQUF1QixFQUdoRCxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWF2RSxNQUFNLE9BQU8sc0JBQXNCO0lBMEIvQixZQUFzQixVQUFnRCxFQUN2QixLQUE0QixFQUNyRCxZQUF5QixFQUN6QixnQkFBaUMsRUFDakMsb0JBQXlDLEVBQ3pDLGVBQStCLEVBQy9CLFVBQTRCLEVBQ08sZ0JBQXlCLEVB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Q0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWM7UUFDdkIsTUFBTSxhQUFhLEdBQUcsT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUMxRyxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWM7UUFDckIsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDOztvSEFuUFEsc0JBQXNCLDhDQTJCWCxlQUFlLHdLQU1ILHVCQUF1Qiw2QkFDdkIsb0JBQW9CO3dHQWxDM0Msc0JBQXNCLDRVQzdCbkMsKzJKQW9FQTs0RkR2Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjs7MEJBK0JqQixNQUFNOzJCQUFDLGVBQWU7OzBCQU10QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBQzFDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9COzRDQXBCOUIsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVHLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNYXRUb29sYmFyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7XG4gICAgQ2FzZVJlc291cmNlU2VydmljZSwgQ3JlYXRlQ2FzZUV2ZW50T3V0Y29tZSxcbiAgICBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2UsIExvYWRpbmdFbWl0dGVyLFxuICAgIE5BRV9ORVRfQUxMX1ZFUlNJT05TLCBOQUVfTkVUX1ZFUlNJT05fVklTSUJMRSxcbiAgICBOZXdDYXNlSW5qZWN0aW9uRGF0YSwgU2lkZU1lbnVJbmplY3Rpb25EYXRhLFxuICAgIFNuYWNrQmFyU2VydmljZVxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtIb3RrZXksIEhvdGtleXNTZXJ2aWNlfSBmcm9tICdhbmd1bGFyMi1ob3RrZXlzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7TWF0T3B0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmludGVyZmFjZSBGb3JtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHZpZXdWYWx1ZTogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtbmV3LWNhc2UtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmV3LWNhc2UtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZXctY2FzZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZXdDYXNlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIGlzVmVyc2lvblZpc2libGU/OiBib29sZWFuO1xuICAgIGFsbFZlcnNpb25FbmFibGVkPzogYm9vbGVhbjtcbiAgICBwcm9jZXNzRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIHRpdGxlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIG5ldFZlcnNpb246IHN0cmluZztcblxuICAgIG9wdGlvbnM6IEFycmF5PEZvcm0+ID0gW107XG4gICAgY29sb3JzOiBBcnJheTxGb3JtPiA9IFtcbiAgICAgICAge3ZhbHVlOiAncGFuZWwtcHJpbWFyeS1pY29uJywgdmlld1ZhbHVlOiAnUHJpbWFyeSd9LFxuICAgICAgICB7dmFsdWU6ICdwYW5lbC1hY2NlbnQtaWNvbicsIHZpZXdWYWx1ZTogJ0FjY2VudCd9LFxuICAgIF07XG4gICAgZmlsdGVyZWRPcHRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxGb3JtPj47XG4gICAgQFZpZXdDaGlsZCgndG9vbGJhcicpIHRvb2xiYXI6IE1hdFRvb2xiYXI7XG5cbiAgICBAVmlld0NoaWxkKCdzdGVwcGVyMScpIHN0ZXBwZXIxO1xuICAgIEBWaWV3Q2hpbGQoJ3N0ZXBwZXIyJykgc3RlcHBlcjI7XG5cbiAgICBwdWJsaWMgbG9hZGluZ1N1Ym1pdDogTG9hZGluZ0VtaXR0ZXI7XG4gICAgcHJvdGVjdGVkIF9vcHRpb25zJDogUmVwbGF5U3ViamVjdDxBcnJheTxGb3JtPj47XG4gICAgcHJvdGVjdGVkIF9pbmplY3RlZERhdGE6IE5ld0Nhc2VJbmplY3Rpb25EYXRhO1xuICAgIHByb3RlY3RlZCBfaGFzTXVsdGlwbGVOZXRzJDogUmVwbGF5U3ViamVjdDxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX25vdEluaXRpYWxpemVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByaXZhdGUgX2FsbG93ZWROZXRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5ld0Nhc2VEaWFsb2dDb21wb25lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcm90ZWN0ZWQgX2RhdGE6IFNpZGVNZW51SW5qZWN0aW9uRGF0YSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2FzZVJlc291cmNlU2VydmljZTogQ2FzZVJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2hvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9ORVRfVkVSU0lPTl9WSVNJQkxFKSBpc1ZlcnNpb25WaXNpYmxlOiBib29sZWFuLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX05FVF9BTExfVkVSU0lPTlMpIGFsbFZlcnNpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3RlZERhdGEgPSB0aGlzLl9kYXRhIGFzIE5ld0Nhc2VJbmplY3Rpb25EYXRhO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNWZXJzaW9uVmlzaWJsZSA9IGlzVmVyc2lvblZpc2libGUgIT09IG51bGwgPyBpc1ZlcnNpb25WaXNpYmxlIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxWZXJzaW9uRW5hYmxlZCA9IGFsbFZlcnNpb25FbmFibGVkICE9PSBudWxsID8gYWxsVmVyc2lvbkVuYWJsZWQgOiBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLl9pbmplY3RlZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VOb05ldHMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ob3RrZXlzU2VydmljZS5hZGQobmV3IEhvdGtleSgnZW50ZXInLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHRoaXMubmV4dFN0ZXAoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuX2hhc011bHRpcGxlTmV0cyQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICAgICAgdGhpcy5fbm90SW5pdGlhbGl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3VibWl0ID0gbmV3IExvYWRpbmdFbWl0dGVyKGZhbHNlKTtcblxuICAgICAgICB0aGlzLl9hbGxvd2VkTmV0c1N1YnNjcmlwdGlvbiA9IHRoaXMuX2luamVjdGVkRGF0YS5hbGxvd2VkTmV0cyQucGlwZShcbiAgICAgICAgICAgIG1hcChuZXRzID0+IG5ldHMubWFwKHBldHJpTmV0ID0+ICh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHBldHJpTmV0LnN0cmluZ0lkLFxuICAgICAgICAgICAgICAgIHZpZXdWYWx1ZTogcGV0cmlOZXQudGl0bGUsXG4gICAgICAgICAgICAgICAgdmVyc2lvbjogcGV0cmlOZXQudmVyc2lvblxuICAgICAgICAgICAgfSkpKSxcbiAgICAgICAgICAgIG1hcChuZXRzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYWxsVmVyc2lvbkVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlT2xkVmVyc2lvbnMobmV0cyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VOb05ldHMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgICAgICAgICB0aGlzLl9oYXNNdWx0aXBsZU5ldHMkLm5leHQob3B0aW9ucy5sZW5ndGggPiAxKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKG9wdGlvbnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyQubmV4dChvcHRpb25zKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fbm90SW5pdGlhbGl6ZWQkLmNsb3NlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdEluaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RJbml0aWFsaXplZCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fb3B0aW9ucyQsIHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgnJykpXSkucGlwZShcbiAgICAgICAgICAgIG1hcChzb3VyY2VzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gc291cmNlc1swXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHR5cGVvZiBzb3VyY2VzWzFdID09PSAnc3RyaW5nJyB8fCBzb3VyY2VzWzFdID09PSBudWxsID8gc291cmNlc1sxXSA6IHNvdXJjZXNbMV0udmlld1ZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dCA/IHRoaXMuX2ZpbHRlcihpbnB1dCwgb3B0aW9ucykgOiBvcHRpb25zLnNsaWNlKCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChmaWx0ZXJlZE9wdGlvbnMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnNldFZhbHVlKGZpbHRlcmVkT3B0aW9uc1swXSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYXNNdWx0aXBsZU5ldHMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1Ym1pdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9hbGxvd2VkTmV0c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzTXVsdGlwbGVOZXRzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlTmV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBub3RJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RJbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUZuKHByb2Nlc3M6IEZvcm0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvY2VzcyAmJiBwcm9jZXNzLnZpZXdWYWx1ZSA/IHByb2Nlc3Mudmlld1ZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZU5ld0Nhc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmdTdWJtaXQudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpdGxlRm9ybUNvbnRyb2wudmFsaWQgfHwgIXRoaXMuaXNDYXNlVGl0bGVSZXF1aXJlZCgpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDYXNlID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlRm9ybUNvbnRyb2wudmFsdWUgPT09ICcnID8gbnVsbCA6IHRoaXMudGl0bGVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3BhbmVsLXByaW1hcnktaWNvbicsXG4gICAgICAgICAgICAgICAgbmV0SWQ6IHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDEgPyB0aGlzLm9wdGlvbnNbMF0udmFsdWUgOiB0aGlzLnByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1Ym1pdC5vbigpO1xuICAgICAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5jcmVhdGVDYXNlKG5ld0Nhc2UpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlOiBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1Ym1pdC5vZmYoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJlc3BvbnNlLm91dGNvbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlblN1Y2Nlc3NTbmFja0JhcihyZXNwb25zZS5vdXRjb21lLm1lc3NhZ2UgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlQ2FzZScpICsgJyAnICsgbmV3Q2FzZS50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3BvbnNlLm91dGNvbWUubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2Uub3V0Y29tZS5tZXNzYWdlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0NvbmZpcm0gbmV3IGNhc2Ugc2V0dXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3BvbnNlLm91dGNvbWUubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IChyZXNwb25zZS5vdXRjb21lIGFzIENyZWF0ZUNhc2VFdmVudE91dGNvbWUpLmFDYXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCEhcmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3Blbldhcm5pbmdTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmNyZWF0ZUNhc2VFcnJvcicpICsgJyAnICsgbmV3Q2FzZS50aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UuZXJyb3IgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnQ29uZmlybSBuZXcgY2FzZSBzZXR1cCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzcG9uc2UuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3VibWl0Lm9mZigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKGVycm9yLm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIGZpbHRlciBvdXQgbWF0Y2hsZXNzIG9wdGlvbnMgd2l0aG91dCBhY2NlbnQgYW5kIGNhc2Utc2Vuc2l0aXZlIGRpZmZlcmVuY2VzXG4gICAgICogQHBhcmFtIHZhbHVlIHRvIGNvbXBhcmUgbWF0Y2hpbmcgb3B0aW9uc1xuICAgICAqIEBwYXJhbSBvcHRpb25zIHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkXG4gICAgICogQHJldHVybiAgcmV0dXJuIG1hdGNoZWQgb3B0aW9uc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZmlsdGVyKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IEFycmF5PEZvcm0+KTogQXJyYXk8Rm9ybT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmlld1ZhbHVlLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKS5pbmRleE9mKGZpbHRlclZhbHVlKSA9PT0gMCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNsb3NlTm9OZXRzKCkge1xuICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5ub05ldHMnKSk7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAgICAgICBvcGVuZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5leHRTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5zdGVwcGVyMSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RlcHBlcjEuc2VsZWN0ZWRJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTmV3Q2FzZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBwZXIxLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGVwcGVyMikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RlcHBlcjIuc2VsZWN0ZWRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTmV3Q2FzZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBwZXIyLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRpdGxlUmVzb2x2aW5nKCkge1xuICAgICAgICBjb25zdCBjYXplID0gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5jYXNlJyk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgdGhpcy5wcm9jZXNzRm9ybUNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnIHx8IHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnZhbHVlID09PSBudWxsID9cbiAgICAgICAgICAgIHVuZGVmaW5lZCA6IHRoaXMucHJvY2Vzc0Zvcm1Db250cm9sLnZhbHVlLnZpZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPT09IHVuZGVmaW5lZCA/IGNhemUgOiBjYXplICsgJyAtICcgKyBuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlT2xkVmVyc2lvbnMob3B0aW9uczogQXJyYXk8Rm9ybT4pOiBBcnJheTxGb3JtPiB7XG4gICAgICAgIGNvbnN0IHRlbXBOZXRzID0gT2JqZWN0LmFzc2lnbihbXSwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHBldHJpTmV0SWRzID0gbmV3IFNldChvcHRpb25zLm1hcChmb3JtID0+IGZvcm0udmFsdWUpKTtcbiAgICAgICAgY29uc3QgbmV3ZXN0TmV0cyA9IG5ldyBBcnJheTxGb3JtPigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgcGV0cmlOZXRJZHMpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50OiBGb3JtID0ge3ZhbHVlLCB2ZXJzaW9uOiAnMS4wLjAnLCB2aWV3VmFsdWU6ICcnfTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbmV0IG9mIHRlbXBOZXRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBuZXQudmFsdWUgJiYgIXNlbXZlci5sdChuZXQudmVyc2lvbiwgY3VycmVudC52ZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbmV0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld2VzdE5ldHMucHVzaChjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3ZXN0TmV0cztcbiAgICB9XG5cbiAgICBpc0Nhc2VUaXRsZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLl9pbmplY3RlZERhdGE/Lm5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24/LmVuYWJsZUNhc2VUaXRsZSA/PyB0cnVlKTtcbiAgICB9XG5cbiAgICBpc0Nhc2VUaXRsZVJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Nhc2VUaXRsZUVuYWJsZWQoKSAmJiAhISh0aGlzLl9pbmplY3RlZERhdGE/Lm5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24/LmlzQ2FzZVRpdGxlUmVxdWlyZWQgPz8gdHJ1ZSk7XG4gICAgfVxuXG4gICAgc2hvd1ZlcnNpb24ob3B0aW9uOiBNYXRPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wdGlvbiAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZS52ZXJzaW9uICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aGlzLm5ldFZlcnNpb24gPSBvcHRpb24udmFsdWUudmVyc2lvbjtcbiAgICB9XG5cbiAgICBjaGVja1ZlcnNpb24odmlld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbiA9IHR5cGVvZiB2aWV3VmFsdWUgPT09ICdzdHJpbmcnIHx8IHZpZXdWYWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHZpZXdWYWx1ZS52ZXJzaW9uO1xuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5ldFZlcnNpb24gPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvTmV4dFN0ZXAodmlld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZpZXdWYWx1ZSAhPT0gbnVsbCAmJiB2aWV3VmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdGVwcGVyMS5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICN0b29sYmFyIGNsYXNzPVwibWF0LWRpYWxvZy10aXRsZVwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBub25lXCI+XG4gICAge3t0aXRsZVJlc29sdmluZygpfX1cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJkaWFsb2ctZmllbGQtZml4XCI+XG4gICAgPG1hdC12ZXJ0aWNhbC1zdGVwcGVyICpuZ0lmPVwiaGFzTXVsdGlwbGVOZXRzJCB8IGFzeW5jXCIgbGluZWFyICNzdGVwcGVyMSBjbGFzcz1cIiBuZXRncmlmLWlucHV0XCI+XG4gICAgICAgIDxtYXQtc3RlcCBbc3RlcENvbnRyb2xdPVwicHJvY2Vzc0Zvcm1Db250cm9sXCIgZXJyb3JNZXNzYWdlPVwie3snc2lkZS1tZW51Lm5ldy1jYXNlLmVyckZpcnN0JyB8IHRyYW5zbGF0ZX19XCIgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD57eydzaWRlLW1lbnUubmV3LWNhc2UuY2hvb3NlJyB8IHRyYW5zbGF0ZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cInByaW1hcnlcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwibWFyZ2luLXRvcC1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHt7J3NpZGUtbWVudS5uZXctY2FzZS5jaG9vc2UnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwicHJvY2Vzc0Zvcm1Db250cm9sXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm5leHRTdGVwKClcIiAoY2hhbmdlKT1cImNoZWNrVmVyc2lvbihwcm9jZXNzRm9ybUNvbnRyb2wudmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJzaW9uLXNwYW5cIiAqbmdJZj1cImlzVmVyc2lvblZpc2libGVcIiBtYXRTdWZmaXg+e3tuZXRWZXJzaW9ufX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwic2hvd1ZlcnNpb24oJGV2ZW50Lm9wdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e29wdGlvbi52aWV3VmFsdWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJzaW9uLXNwYW5cIiAqbmdJZj1cImlzVmVyc2lvblZpc2libGVcIj57e29wdGlvbi52ZXJzaW9ufX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJjdnRpLWJ1dHRvbi1maWVsZFwiID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNDYXNlVGl0bGVFbmFibGVkKClcIiAgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJ0b05leHRTdGVwKHByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZSlcIj57eydzaWRlLW1lbnUubmV3LWNhc2UubmV4dCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNDYXNlVGl0bGVFbmFibGVkKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY3JlYXRlTmV3Q2FzZSgpXCIgW2NsYXNzLnNwaW5uZXJdPVwibG9hZGluZ1N1Ym1pdCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nU3VibWl0IHwgYXN5bmNcIj57eydzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtc3RlcD5cbiAgICAgICAgPG1hdC1zdGVwICpuZ0lmPVwiaXNDYXNlVGl0bGVFbmFibGVkKClcIiBbc3RlcENvbnRyb2xdPVwidGl0bGVGb3JtQ29udHJvbFwiIGVycm9yTWVzc2FnZT1cInt7J3NpZGUtbWVudS5uZXctY2FzZS5lcnJTZWNvbmQnIHwgdHJhbnNsYXRlfX1cIiA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPnt7J3NpZGUtbWVudS5uZXctY2FzZS5jYXNlVGl0bGUnIHwgdHJhbnNsYXRlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNvbG9yPVwicHJpbWFyeVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJtYXJnaW4tdG9wLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3snc2lkZS1tZW51Lm5ldy1jYXNlLmNhc2VUaXRsZScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUNvbnRyb2xdPVwidGl0bGVGb3JtQ29udHJvbFwiIFtyZXF1aXJlZF09XCJpc0Nhc2VUaXRsZVJlcXVpcmVkKClcIiAoa2V5dXAuZW50ZXIpPVwibmV4dFN0ZXAoKVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiY3Z0aS1idXR0b24tZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJtYXJnaW4tcmlnaHRcIiAoY2xpY2spPVwic3RlcHBlcjEucmVzZXQoKTsgY2hlY2tWZXJzaW9uKHByb2Nlc3NGb3JtQ29udHJvbC52YWx1ZSlcIj57eydzaWRlLW1lbnUubmV3LWNhc2UucmVzZXQnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cIm1pbi1oZWlnaHQtMzZweFwiIChjbGljayk9XCJjcmVhdGVOZXdDYXNlKClcIiBbY2xhc3Muc3Bpbm5lcl09XCJsb2FkaW5nU3VibWl0IHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdTdWJtaXQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihsb2FkaW5nU3VibWl0IHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZ4RmxleD57eydzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LXN0ZXA+XG4gICAgPC9tYXQtdmVydGljYWwtc3RlcHBlcj5cbiAgICA8bWF0LXZlcnRpY2FsLXN0ZXBwZXIgKm5nSWY9XCIoaGFzTXVsdGlwbGVOZXRzJCB8IGFzeW5jKSA9PT0gZmFsc2VcIiBsaW5lYXIgI3N0ZXBwZXIyIGNsYXNzPVwiIG5ldGdyaWYtaW5wdXRcIj5cbiAgICAgICAgPG1hdC1zdGVwIFtzdGVwQ29udHJvbF09XCJ0aXRsZUZvcm1Db250cm9sXCIgZXJyb3JNZXNzYWdlPVwie3snc2lkZS1tZW51Lm5ldy1jYXNlLmVyclNlY29uZCcgfCB0cmFuc2xhdGV9fVwiID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+e3snc2lkZS1tZW51Lm5ldy1jYXNlLmNhc2VUaXRsZScgfCB0cmFuc2xhdGV9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY29sb3I9XCJwcmltYXJ5XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cIm1hcmdpbi10b3AtZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7eydzaWRlLW1lbnUubmV3LWNhc2UuY2FzZVRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUNvbnRyb2xdPVwidGl0bGVGb3JtQ29udHJvbFwiIFtyZXF1aXJlZF09XCJpc0Nhc2VUaXRsZVJlcXVpcmVkKClcIiAoa2V5dXAuZW50ZXIpPVwibmV4dFN0ZXAoKVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiY3Z0aS1idXR0b24tZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwic3RlcHBlcjIucmVzZXQoKVwiPnt7J3NpZGUtbWVudS5uZXctY2FzZS5yZXNldCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNyZWF0ZU5ld0Nhc2UoKVwiIFtjbGFzcy5zcGlubmVyXT1cImxvYWRpbmdTdWJtaXQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1N1Ym1pdCB8IGFzeW5jXCI+e3snc2lkZS1tZW51Lm5ldy1jYXNlLmNyZWF0ZScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LXN0ZXA+XG4gICAgPC9tYXQtdmVydGljYWwtc3RlcHBlcj5cbiAgICA8ZGl2ICpuZ0lmPVwiKG5vdEluaXRpYWxpemVkJCB8IGFzeW5jKVwiIGNsYXNzPVwic3Bpbm5lci1wYWRkaW5nXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './dialog.module';
|
|
2
|
+
export * from './new-case-dialog/new-case-dialog.component';
|
|
3
|
+
export * from './import-net-dialog/import-net-dialog.component';
|
|
4
|
+
export * from './user-assign-dialog/user-assign-dialog.component';
|
|
5
|
+
export * from './multi-user-assign-dialog/multi-user-assign-dialog.component';
|
|
6
|
+
export * from './admin-impersonate-dialog/admin-impersonate-dialog.component';
|
|
7
|
+
export * from './user-impersonate-dialog/user-impersonate-dialog.component';
|
|
8
|
+
export * from './filter-selector-dialog/filter-selector-dialog.component';
|
|
9
|
+
export * from './load-filter-dialog/load-filter-dialog.component';
|
|
10
|
+
export * from './save-filter-dialog/save-filter-dialog.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXctY2FzZS1kaWFsb2cvbmV3LWNhc2UtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ltcG9ydC1uZXQtZGlhbG9nL2ltcG9ydC1uZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItYXNzaWduLWRpYWxvZy91c2VyLWFzc2lnbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktdXNlci1hc3NpZ24tZGlhbG9nL211bHRpLXVzZXItYXNzaWduLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hZG1pbi1pbXBlcnNvbmF0ZS1kaWFsb2cvYWRtaW4taW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItaW1wZXJzb25hdGUtZGlhbG9nL3VzZXItaW1wZXJzb25hdGUtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1zZWxlY3Rvci1kaWFsb2cvZmlsdGVyLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkLWZpbHRlci1kaWFsb2cvbG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NhdmUtZmlsdGVyLWRpYWxvZy9zYXZlLWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { AbstractTaskViewComponent, AllowedNetsService, AllowedNetsServiceFactory, NAE_BASE_FILTER, SearchService, SimpleFilter, TaskEvent, TaskViewService, UserFilterConstants, } from '@netgrif/components-core';
|
|
3
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
+
import { localAllowedNetsFactory } from '../../side-menu/content-components/save-filter/save-filter.component';
|
|
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/router";
|
|
9
|
+
import * as i4 from "../../panel/task-panel-list/task-list.component";
|
|
10
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
11
|
+
import * as i6 from "@ngx-translate/core";
|
|
12
|
+
export function saveBaseFilterFactory(dialogControl) {
|
|
13
|
+
if (!dialogControl) {
|
|
14
|
+
throw new Error('NewFilterCaseId was not provided in the sidemenu injectio data');
|
|
15
|
+
}
|
|
16
|
+
const injectedData = dialogControl;
|
|
17
|
+
return {
|
|
18
|
+
filter: SimpleFilter.fromTaskQuery({
|
|
19
|
+
case: { id: injectedData.newFilterCaseId },
|
|
20
|
+
transitionId: UserFilterConstants.NEW_FILTER_TRANSITION_ID
|
|
21
|
+
})
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export class SaveFilterDialogComponent extends AbstractTaskViewComponent {
|
|
25
|
+
constructor(_dialogRef, _data, _userFilterService, _log, taskViewService, _activatedRoute) {
|
|
26
|
+
super(taskViewService, _activatedRoute);
|
|
27
|
+
this._dialogRef = _dialogRef;
|
|
28
|
+
this._data = _data;
|
|
29
|
+
this._userFilterService = _userFilterService;
|
|
30
|
+
this._log = _log;
|
|
31
|
+
if (this._data) {
|
|
32
|
+
this._injectedData = this._data;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
processTaskEvents(notification) {
|
|
36
|
+
if (!notification.success) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (notification.event === TaskEvent.FINISH) {
|
|
40
|
+
this._dialogRef.close({ opened: false, message: 'Filter saved' });
|
|
41
|
+
}
|
|
42
|
+
if (notification.event === TaskEvent.CANCEL) {
|
|
43
|
+
this._userFilterService.delete(this._injectedData.newFilterCaseId);
|
|
44
|
+
this._dialogRef.close({ opened: false, message: 'Filter save canceled' });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
SaveFilterDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SaveFilterDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.UserFiltersService }, { token: i2.LoggerService }, { token: i2.TaskViewService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
+
SaveFilterDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SaveFilterDialogComponent, selector: "nc-save-filter-dialog", providers: [
|
|
50
|
+
TaskViewService,
|
|
51
|
+
SearchService,
|
|
52
|
+
{
|
|
53
|
+
provide: NAE_BASE_FILTER,
|
|
54
|
+
useFactory: saveBaseFilterFactory,
|
|
55
|
+
deps: [MAT_DIALOG_DATA]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
provide: AllowedNetsService,
|
|
59
|
+
useFactory: localAllowedNetsFactory,
|
|
60
|
+
deps: [AllowedNetsServiceFactory]
|
|
61
|
+
},
|
|
62
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'search.tooltip.save' | translate}}\n</div>\n<div mat-dialog-content 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\n", styles: [".save-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px;margin:0}.virtual-scroll-list-padding{padding-right:4px}\n"], components: [{ type: i4.TaskListComponent, selector: "nc-task-list" }], directives: [{ type: i5.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: i5.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: i5.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"] }], pipes: { "translate": i6.TranslatePipe } });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SaveFilterDialogComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'nc-save-filter-dialog', providers: [
|
|
66
|
+
TaskViewService,
|
|
67
|
+
SearchService,
|
|
68
|
+
{
|
|
69
|
+
provide: NAE_BASE_FILTER,
|
|
70
|
+
useFactory: saveBaseFilterFactory,
|
|
71
|
+
deps: [MAT_DIALOG_DATA]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
provide: AllowedNetsService,
|
|
75
|
+
useFactory: localAllowedNetsFactory,
|
|
76
|
+
deps: [AllowedNetsServiceFactory]
|
|
77
|
+
},
|
|
78
|
+
], template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'search.tooltip.save' | translate}}\n</div>\n<div mat-dialog-content 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\n", styles: [".save-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px;margin:0}.virtual-scroll-list-padding{padding-right:4px}\n"] }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
80
|
+
type: Inject,
|
|
81
|
+
args: [MAT_DIALOG_DATA]
|
|
82
|
+
}] }, { type: i2.UserFiltersService }, { type: i2.LoggerService }, { type: i2.TaskViewService }, { type: i3.ActivatedRoute }]; } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9zYXZlLWZpbHRlci1kaWFsb2cvc2F2ZS1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9zYXZlLWZpbHRlci1kaWFsb2cvc2F2ZS1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUV6QixlQUFlLEVBRWYsYUFBYSxFQUFFLFlBQVksRUFDM0IsU0FBUyxFQUVULGVBQWUsRUFBRSxtQkFBbUIsR0FFdkMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7QUFFdkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7Ozs7Ozs7O0FBRTdHLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxhQUFzQztJQUN4RSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztLQUNyRjtJQUNELE1BQU0sWUFBWSxHQUFHLGFBQXdDLENBQUM7SUFFOUQsT0FBTztRQUNILE1BQU0sRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQy9CLElBQUksRUFBRSxFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsZUFBZSxFQUFDO1lBQ3hDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyx3QkFBd0I7U0FDN0QsQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDO0FBc0JELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx5QkFBeUI7SUFJcEUsWUFBc0IsVUFBbUQsRUFDMUIsS0FBOEIsRUFDdkQsa0JBQXNDLEVBQ3RDLElBQW1CLEVBQzdCLGVBQWdDLEVBQ2hDLGVBQWdDO1FBQ3hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOdEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBeUI7UUFDdkQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxTQUFJLEdBQUosSUFBSSxDQUFlO1FBSXJDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQWdDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsWUFBbUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUMsQ0FBQyxDQUFDO1NBQzNFO0lBQ0wsQ0FBQzs7dUhBN0JRLHlCQUF5Qiw4Q0FLZCxlQUFlOzJHQUwxQix5QkFBeUIsZ0RBZnZCO1FBQ1AsZUFBZTtRQUNmLGFBQWE7UUFDYjtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO1NBQzFCO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVUsRUFBRSx1QkFBdUI7WUFDbkMsSUFBSSxFQUFFLENBQUMseUJBQXlCLENBQUM7U0FDcEM7S0FDSixpRENsREwsMGlCQVFBOzRGRDRDYSx5QkFBeUI7a0JBbkJyQyxTQUFTOytCQUNJLHVCQUF1QixhQUd0Qjt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2I7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxxQkFBcUI7NEJBQ2pDLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzt5QkFDMUI7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLHVCQUF1Qjs0QkFDbkMsSUFBSSxFQUFFLENBQUMseUJBQXlCLENBQUM7eUJBQ3BDO3FCQUNKOzswQkFPWSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUYXNrVmlld0NvbXBvbmVudCxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSwgQmFzZUZpbHRlcixcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE5BRV9CQVNFX0ZJTFRFUixcbiAgICBTYXZlRmlsdGVySW5qZWN0aW9uRGF0YSxcbiAgICBTZWFyY2hTZXJ2aWNlLCBTaW1wbGVGaWx0ZXIsXG4gICAgVGFza0V2ZW50LFxuICAgIFRhc2tFdmVudE5vdGlmaWNhdGlvbixcbiAgICBUYXNrVmlld1NlcnZpY2UsIFVzZXJGaWx0ZXJDb25zdGFudHMsXG4gICAgVXNlckZpbHRlcnNTZXJ2aWNlLFxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2xvY2FsQWxsb3dlZE5ldHNGYWN0b3J5fSBmcm9tICcuLi8uLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3NhdmUtZmlsdGVyL3NhdmUtZmlsdGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlQmFzZUZpbHRlckZhY3RvcnkoZGlhbG9nQ29udHJvbDogU2F2ZUZpbHRlckluamVjdGlvbkRhdGEpOiBCYXNlRmlsdGVyIHtcbiAgICBpZiAoIWRpYWxvZ0NvbnRyb2wpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZXdGaWx0ZXJDYXNlSWQgd2FzIG5vdCBwcm92aWRlZCBpbiB0aGUgc2lkZW1lbnUgaW5qZWN0aW8gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCBpbmplY3RlZERhdGEgPSBkaWFsb2dDb250cm9sIGFzIFNhdmVGaWx0ZXJJbmplY3Rpb25EYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZmlsdGVyOiBTaW1wbGVGaWx0ZXIuZnJvbVRhc2tRdWVyeSh7XG4gICAgICAgICAgICBjYXNlOiB7aWQ6IGluamVjdGVkRGF0YS5uZXdGaWx0ZXJDYXNlSWR9LFxuICAgICAgICAgICAgdHJhbnNpdGlvbklkOiBVc2VyRmlsdGVyQ29uc3RhbnRzLk5FV19GSUxURVJfVFJBTlNJVElPTl9JRFxuICAgICAgICB9KVxuICAgIH07XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1zYXZlLWZpbHRlci1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYXZlLWZpbHRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NhdmUtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9CQVNFX0ZJTFRFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IHNhdmVCYXNlRmlsdGVyRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfRElBTE9HX0RBVEFdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFsbG93ZWROZXRzU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsQWxsb3dlZE5ldHNGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0FsbG93ZWROZXRzU2VydmljZUZhY3RvcnldXG4gICAgICAgIH0sXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTYXZlRmlsdGVyRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RUYXNrVmlld0NvbXBvbmVudCB7XG5cbiAgICBwcm90ZWN0ZWQgX2luamVjdGVkRGF0YTogU2F2ZUZpbHRlckluamVjdGlvbkRhdGE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNhdmVGaWx0ZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcm90ZWN0ZWQgX2RhdGE6IFNhdmVGaWx0ZXJJbmplY3Rpb25EYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdXNlckZpbHRlclNlcnZpY2U6IFVzZXJGaWx0ZXJzU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICB0YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBfYWN0aXZhdGVkUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICBzdXBlcih0YXNrVmlld1NlcnZpY2UsIF9hY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3RlZERhdGEgPSB0aGlzLl9kYXRhIGFzIFNhdmVGaWx0ZXJJbmplY3Rpb25EYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHByb2Nlc3NUYXNrRXZlbnRzKG5vdGlmaWNhdGlvbjogVGFza0V2ZW50Tm90aWZpY2F0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghbm90aWZpY2F0aW9uLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3RpZmljYXRpb24uZXZlbnQgPT09IFRhc2tFdmVudC5GSU5JU0gpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7b3BlbmVkOiBmYWxzZSwgbWVzc2FnZTogJ0ZpbHRlciBzYXZlZCd9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3RpZmljYXRpb24uZXZlbnQgPT09IFRhc2tFdmVudC5DQU5DRUwpIHtcbiAgICAgICAgICAgIHRoaXMuX3VzZXJGaWx0ZXJTZXJ2aWNlLmRlbGV0ZSh0aGlzLl9pbmplY3RlZERhdGEubmV3RmlsdGVyQ2FzZUlkKTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7b3BlbmVkOiBmYWxzZSwgbWVzc2FnZTogJ0ZpbHRlciBzYXZlIGNhbmNlbGVkJ30pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgbm9uZVwiPlxuICAgIHt7ICdzZWFyY2gudG9vbHRpcC5zYXZlJyB8IHRyYW5zbGF0ZX19XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwic2F2ZS1maWx0ZXItY29udGFpbmVyIHNpZGUtbWVudS1yb290XCI+XG4gICAgPG5jLXRhc2stbGlzdCBbYWxsb3dNdWx0aU9wZW5dPVwiZmFsc2VcIiBbdGFza3MkXT1cInRhc2tzJFwiIFtsb2FkaW5nJF09XCJsb2FkaW5nJFwiIFt0ZXh0RWxsaXBzaXNdPVwidHJ1ZVwiIFtmb3JjZUxvYWREYXRhT25PcGVuXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW3Jlc3BvbnNpdmVCb2R5XT1cInRydWVcIiBbc2VsZWN0ZWRIZWFkZXJzJF09XCJzZWxlY3RlZEhlYWRlcnMkXCIgKHRhc2tFdmVudCk9XCJwcm9jZXNzVGFza0V2ZW50cygkZXZlbnQpXCIgZnhGbGV4IGNsYXNzPVwidmlydHVhbC1zY3JvbGwtbGlzdC1wYWRkaW5nXCI+PC9uYy10YXNrLWxpc3Q+XG48L2Rpdj5cblxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { 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/user-assign/user-assign-list/user-assign-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 UserAssignDialogComponent {
|
|
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
|
+
UserAssignDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UserAssignDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
UserAssignDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UserAssignDialogComponent, selector: "nc-user-assign-dialog", providers: [UserListService], ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.user.assign' | 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-user-assign-list fxFlex class=\"height-100\"\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-raised-button color=\"primary\"\n (click)=\"assign()\">{{ 'tasks.view.assign' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n", styles: [".user-assign-container{padding:16px;position:relative;height:100%}.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.UserAssignListComponent, selector: "nc-user-assign-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 } });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UserAssignDialogComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{ selector: 'nc-user-assign-dialog', providers: [UserListService], template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'side-menu.user.assign' | 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-user-assign-list fxFlex class=\"height-100\"\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-raised-button color=\"primary\"\n (click)=\"assign()\">{{ 'tasks.view.assign' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n", styles: [".user-assign-container{padding:16px;position:relative;height:100%}.user-assign-search{width:100%}.prefix-icon{font-size:18px;color:#64748b}.height-100{height:100%}.height-fix{height:calc(100% - 44px)}\n"] }]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
70
|
+
type: Inject,
|
|
71
|
+
args: [MAT_DIALOG_DATA]
|
|
72
|
+
}] }]; } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hc3NpZ24tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy91c2VyLWFzc2lnbi1kaWFsb2cvdXNlci1hc3NpZ24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy91c2VyLWFzc2lnbi1kaWFsb2cvdXNlci1hc3NpZ24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFbUIsZUFBZSxFQUV4QyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQVF2RSxNQUFNLE9BQU8seUJBQXlCO0lBZ0JsQzs7O09BR0c7SUFDSCxZQUFzQixVQUFtRCxFQUMxQixLQUEyQjtRQURwRCxlQUFVLEdBQVYsVUFBVSxDQUF5QztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQXBCMUU7O1dBRUc7UUFDSSxzQkFBaUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBa0J6QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUE2QixDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxxQkFBcUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsSUFBZTtRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDbEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsT0FBTyxFQUFFLDZCQUE2QjtnQkFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQzFCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7dUhBN0RRLHlCQUF5Qiw4Q0FxQmQsZUFBZTsyR0FyQjFCLHlCQUF5QixnREFGdkIsQ0FBQyxlQUFlLENBQUMsMEJDYmhDLHlzREErQkE7NEZEaEJhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDSSx1QkFBdUIsYUFHdEIsQ0FBQyxlQUFlLENBQUM7OzBCQXVCZixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHJvY2Vzc1JvbGUsXG4gICAgVXNlckxpc3RJbmplY3RlZERhdGEsIFVzZXJMaXN0U2VydmljZSxcbiAgICBVc2VyVmFsdWVcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtdXNlci1hc3NpZ24tZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1hc3NpZ24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLWFzc2lnbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtVc2VyTGlzdFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJBc3NpZ25EaWFsb2dDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEZvcm0gY29udHJvbCBmb3IgdXNlciBzZWFyY2ggdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaFVzZXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICAvKipcbiAgICAgKiBEYXRhIGFib3V0IHByZXNlbGVjdGVkIHVzZXIgc2VuZCBmcm9tIFtVc2VyRmllbGRDb21wb25lbnRde0BsaW5rIEFic3RyYWN0VXNlckZpZWxkQ29tcG9uZW50fS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5qZWN0ZWREYXRhOiBVc2VyTGlzdEluamVjdGVkRGF0YTtcblxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIHVzZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jdXJyZW50VXNlcjogVXNlclZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0IGFuZCBzZXQgZGF0YSBzZW5kIGZyb20gW1VzZXJGaWVsZENvbXBvbmVudF17QGxpbmsgQWJzdHJhY3RVc2VyRmllbGRDb21wb25lbnR9IGlmIHRoZSB1c2VyIGlzIHByZXNlbGVjdGVkLlxuICAgICAqIEBwYXJhbSBfc2lkZU1lbnVDb250cm9sIENvbnRhaW5zIFtSb2xlc117QGxpbmsgUHJvY2Vzc1JvbGV9IGFuZCBbVXNlclZhbHVlXXtAbGluayBVc2VyVmFsdWV9LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXNlckFzc2lnbkRpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByb3RlY3RlZCBfZGF0YTogVXNlckxpc3RJbmplY3RlZERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWREYXRhID0gdGhpcy5fZGF0YSBhcyBVc2VyTGlzdEluamVjdGVkRGF0YTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB1c2VyIHRoYXQgaXMgaW5pdGlhbGx5IHNlbGVjdGVkLCBvciBgdW5kZWZpbmVkYCBpZiBub25lIGlzXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbml0aWFsbHlTZWxlY3RlZFVzZXIoKTogVXNlclZhbHVlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5qZWN0ZWREYXRhID8gdGhpcy5pbmplY3RlZERhdGEudmFsdWUgYXMgVXNlclZhbHVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm9sZXMoKTogQXJyYXk8c3RyaW5nPiB8IEFycmF5PFByb2Nlc3NSb2xlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdGVkRGF0YSA/IHRoaXMuaW5qZWN0ZWREYXRhLnJvbGVzIDogW107XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuZWdhdGl2ZVJvbGVzKCk6IEFycmF5PHN0cmluZz4gfCBBcnJheTxQcm9jZXNzUm9sZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3RlZERhdGEgPyB0aGlzLmluamVjdGVkRGF0YS5uZWdhdGl2ZVJvbGVzIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gc2VsZWN0IHVzZXIgZnJvbSB1c2VycyBhc3NpZ24gbGlzdCBwdWJsaXNoIHNpZGUgbWVudSB3aXRoIHNlbGVjdGVkIHVzZXIgYXMgZGF0YSBhbmQgbWVzc2FnZSBhYm91dCBzZWxlY3Rpb24uXG4gICAgICogQHBhcmFtIHVzZXIgU2VsZWN0IGN1cnJlbnQgdXNlciBhcyBbVXNlclZhbHVlXXtAbGluayBVc2VyVmFsdWV9XG4gICAgICovXG4gICAgcHVibGljIHVzZXJXYXNTZWxlY3RlZCh1c2VyOiBVc2VyVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFVzZXIgPSB1c2VyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGFzc2lnbiBidXR0b24gY2xvc2Ugc2lkZSBtZW51IHdpdGggc2VsZWN0ZWQgdXNlciBhcyBkYXRhIGFuZCBtZXNzYWdlIGFib3V0IGNvbmZpcm0uXG4gICAgICovXG4gICAgcHVibGljIGFzc2lnbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVc2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAgICAgICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2VsZWN0ZWQgdXNlciB3YXMgY29uZmlybWVkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLl9jdXJyZW50VXNlclxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWF0LWRpYWxvZy10aXRsZVwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBub25lXCI+XG4gICAge3sgJ3NpZGUtbWVudS51c2VyLmFzc2lnbicgfCB0cmFuc2xhdGUgIH19XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBzdHJldGNoXCIgY2xhc3M9XCJoZWlnaHQtZml4XCI+XG4gICAgPGRpdiBjbGFzcz1cInVzZXItYXNzaWduLWNvbnRhaW5lciBzaWRlLW1lbnUtcm9vdFwiIGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwibmV0Z3JpZi1pbnB1dCBuZXRncmlmLWlucHV0LWZpeFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwidXNlci1hc3NpZ24tc2VhcmNoXCIgY29sb3I9XCJwcmltYXJ5XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0UHJlZml4IGNsYXNzPVwicHJlZml4LWljb25cIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdzaWRlLW1lbnUudXNlci5jaG9vc2UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFVzZXJDb250cm9sXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCJzZWFyY2hVc2VyQ29udHJvbC52YWx1ZVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2hVc2VyQ29udHJvbC5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuYy11c2VyLWFzc2lnbi1saXN0IGZ4RmxleCBjbGFzcz1cImhlaWdodC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoVXNlckNvbnRyb2xdPVwic2VhcmNoVXNlckNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm9sZXNdPVwicm9sZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmVnYXRpdmVSb2xlc109XCJuZWdhdGl2ZVJvbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luaXRpYWxseVNlbGVjdGVkVXNlcl09XCJpbml0aWFsbHlTZWxlY3RlZFVzZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlclNlbGVjdGVkKT1cInVzZXJXYXNTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbmMtdXNlci1hc3NpZ24tbGlzdD5cblxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFzc2lnbigpXCI+e3sgJ3Rhc2tzLnZpZXcuYXNzaWduJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|