@netgrif/components-core 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/assets/i18n/de.json +1 -0
- package/esm2020/assets/i18n/en.json +1 -0
- package/esm2020/assets/i18n/sk.json +1 -0
- package/esm2020/lib/data-fields/base-component/abstract-base-data-field.component.mjs +51 -0
- package/esm2020/lib/data-fields/boolean-field/abstract-boolean-field.component.mjs +7 -26
- package/esm2020/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.mjs +46 -0
- package/esm2020/lib/data-fields/boolean-field/models/boolean-field.mjs +9 -1
- package/esm2020/lib/data-fields/button-field/abstract-button-field.component.mjs +7 -39
- package/esm2020/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.mjs +58 -0
- package/esm2020/lib/data-fields/button-field/models/button-field.mjs +5 -1
- package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +67 -0
- package/esm2020/lib/data-fields/case-ref-field/model/case-ref-field.mjs +11 -0
- package/esm2020/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.mjs +4 -0
- package/esm2020/lib/data-fields/data-field-template/abstract-data-field-template.component.mjs +51 -6
- package/esm2020/lib/data-fields/date-field/abstract-date-field.component.mjs +10 -12
- package/esm2020/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.mjs +29 -0
- package/esm2020/lib/data-fields/date-field/models/date-field.mjs +5 -1
- package/esm2020/lib/data-fields/date-time-field/abstract-date-time-field.component.mjs +10 -12
- package/esm2020/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.mjs +29 -0
- package/esm2020/lib/data-fields/date-time-field/models/date-time-field.mjs +5 -1
- package/esm2020/lib/data-fields/enumeration-field/abstract-enumeration-field.component.mjs +4 -1
- package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.mjs +23 -20
- package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.mjs +20 -21
- package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.mjs +26 -19
- package/esm2020/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.mjs +16 -12
- package/esm2020/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.mjs +16 -12
- package/esm2020/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.mjs +26 -21
- package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +9 -1
- package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +11 -420
- package/esm2020/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.mjs +456 -0
- package/esm2020/lib/data-fields/file-field/models/file-field-constants.mjs +5 -0
- package/esm2020/lib/data-fields/file-field/models/file-field.mjs +6 -1
- package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +11 -278
- package/esm2020/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.mjs +304 -0
- package/esm2020/lib/data-fields/file-list-field/models/file-list-field.mjs +6 -1
- package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.mjs +4 -4
- package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.mjs +4 -4
- package/esm2020/lib/data-fields/filter-field/abstract-filter-field.component.mjs +8 -20
- package/esm2020/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.mjs +38 -0
- package/esm2020/lib/data-fields/filter-field/models/filter-field.mjs +5 -1
- package/esm2020/lib/data-fields/i18n-field/abstract-i18n-errors.component.mjs +18 -16
- package/esm2020/lib/data-fields/i18n-field/abstract-i18n-field.component.mjs +4 -1
- package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +24 -20
- package/esm2020/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.mjs +35 -32
- package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +6 -2
- package/esm2020/lib/data-fields/models/abstract-data-field-component.mjs +4 -1
- package/esm2020/lib/data-fields/models/abstract-data-field.mjs +14 -2
- package/esm2020/lib/data-fields/models/component.mjs +21 -2
- package/esm2020/lib/data-fields/models/data-field-portal-data-injection-token.mjs +3 -0
- package/esm2020/lib/data-fields/models/update-strategy.mjs +7 -0
- package/esm2020/lib/data-fields/multichoice-field/abstract-multichoice-field.component.mjs +4 -1
- package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +9 -1
- package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +30 -30
- package/esm2020/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.mjs +16 -12
- package/esm2020/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.mjs +16 -12
- package/esm2020/lib/data-fields/number-field/abstract-number-errors.component.mjs +17 -15
- package/esm2020/lib/data-fields/number-field/abstract-number-field.component.mjs +4 -1
- package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +21 -15
- package/esm2020/lib/data-fields/number-field/models/number-field.mjs +5 -1
- package/esm2020/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/public-api.mjs +17 -2
- package/esm2020/lib/data-fields/task-ref-field/abstract-task-ref-field.component.mjs +10 -116
- package/esm2020/lib/data-fields/task-ref-field/model/task-ref-field.mjs +5 -1
- package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.mjs +130 -0
- package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.mjs +54 -0
- package/esm2020/lib/data-fields/text-field/abstract-dashboard-text-field.component.mjs +14 -14
- package/esm2020/lib/data-fields/text-field/abstract-text-errors.component.mjs +23 -3
- package/esm2020/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.mjs +12 -6
- package/esm2020/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.mjs +16 -16
- package/esm2020/lib/data-fields/text-field/models/text-field.mjs +8 -4
- package/esm2020/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.mjs +14 -14
- package/esm2020/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.mjs +14 -14
- package/esm2020/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.mjs +14 -14
- package/esm2020/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.mjs +17 -17
- package/esm2020/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.mjs +12 -12
- package/esm2020/lib/data-fields/user-field/abstract-user-field.component.mjs +7 -39
- package/esm2020/lib/data-fields/user-field/models/user-field.mjs +5 -1
- package/esm2020/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.mjs +70 -0
- package/esm2020/lib/data-fields/user-list-field/abstract-user-list-field.component.mjs +7 -45
- package/esm2020/lib/data-fields/user-list-field/models/user-list-field.mjs +5 -1
- package/esm2020/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.mjs +60 -0
- package/esm2020/lib/dialog/injection-tokens.mjs +10 -0
- package/esm2020/lib/dialog/public-api.mjs +2 -1
- package/esm2020/lib/filter/models/task-search-request-body.mjs +1 -1
- package/esm2020/lib/filter/user-filters.service.mjs +22 -15
- package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +24 -17
- package/esm2020/lib/panel/workflow-panel/abstract-workflow-panel.component.mjs +6 -2
- package/esm2020/lib/registry/component-registry.service.mjs +38 -0
- package/esm2020/lib/registry/public-api.mjs +2 -0
- package/esm2020/lib/side-menu/content-components/public-api.mjs +2 -1
- package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +24 -5
- package/esm2020/lib/task-content/model/field-type-resource.mjs +2 -1
- package/esm2020/lib/task-content/services/field-converter.service.mjs +4 -1
- package/esm2020/lib/task-content/task-content/abstract-task-content.component.mjs +20 -7
- package/esm2020/lib/view/case-view/service/case-view-service.mjs +20 -15
- package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +12 -7
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/netgrif-components-core.mjs +1771 -961
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +1675 -957
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/lib/data-fields/base-component/abstract-base-data-field.component.d.ts +18 -0
- package/lib/data-fields/boolean-field/abstract-boolean-field.component.d.ts +5 -7
- package/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.d.ts +14 -0
- package/lib/data-fields/boolean-field/models/boolean-field.d.ts +3 -0
- package/lib/data-fields/button-field/abstract-button-field.component.d.ts +5 -16
- package/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.d.ts +23 -0
- package/lib/data-fields/button-field/models/button-field.d.ts +1 -0
- package/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.d.ts +16 -0
- package/lib/data-fields/case-ref-field/model/case-ref-field.d.ts +9 -0
- package/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.d.ts +3 -0
- package/lib/data-fields/data-field-template/abstract-data-field-template.component.d.ts +22 -3
- package/lib/data-fields/date-field/abstract-date-field.component.d.ts +7 -7
- package/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.d.ts +12 -0
- package/lib/data-fields/date-field/models/date-field.d.ts +1 -0
- package/lib/data-fields/date-time-field/abstract-date-time-field.component.d.ts +7 -7
- package/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.d.ts +12 -0
- package/lib/data-fields/date-time-field/models/date-time-field.d.ts +1 -0
- package/lib/data-fields/enumeration-field/abstract-enumeration-field.component.d.ts +3 -0
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.d.ts +8 -10
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +6 -10
- package/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.d.ts +9 -9
- package/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.d.ts +6 -8
- package/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.d.ts +6 -8
- package/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.d.ts +8 -9
- package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +3 -0
- package/lib/data-fields/file-field/abstract-file-field.component.d.ts +9 -147
- package/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.d.ts +151 -0
- package/lib/data-fields/file-field/models/file-field-constants.d.ts +4 -0
- package/lib/data-fields/file-field/models/file-field.d.ts +1 -0
- package/lib/data-fields/file-list-field/abstract-file-list-field.component.d.ts +8 -71
- package/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.d.ts +76 -0
- package/lib/data-fields/file-list-field/models/file-list-field.d.ts +1 -0
- package/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.d.ts +3 -3
- package/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.d.ts +3 -3
- package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +6 -11
- package/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.d.ts +18 -0
- package/lib/data-fields/filter-field/models/filter-field.d.ts +1 -0
- package/lib/data-fields/i18n-field/abstract-i18n-errors.component.d.ts +6 -9
- package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +3 -0
- package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +6 -8
- package/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.d.ts +5 -8
- package/lib/data-fields/i18n-field/models/i18n-field.d.ts +1 -0
- package/lib/data-fields/models/abstract-data-field-component.d.ts +1 -0
- package/lib/data-fields/models/abstract-data-field.d.ts +9 -0
- package/lib/data-fields/models/component.d.ts +19 -0
- package/lib/data-fields/models/data-field-portal-data-injection-token.d.ts +13 -0
- package/lib/data-fields/models/update-strategy.d.ts +6 -0
- package/lib/data-fields/multichoice-field/abstract-multichoice-field.component.d.ts +3 -0
- package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +3 -0
- package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +6 -9
- package/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.d.ts +6 -7
- package/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.d.ts +6 -8
- package/lib/data-fields/number-field/abstract-number-errors.component.d.ts +6 -9
- package/lib/data-fields/number-field/abstract-number-field.component.d.ts +3 -0
- package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +4 -2
- package/lib/data-fields/number-field/models/number-field.d.ts +1 -0
- package/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.d.ts +4 -2
- package/lib/data-fields/public-api.d.ts +16 -1
- package/lib/data-fields/task-ref-field/abstract-task-ref-field.component.d.ts +6 -13
- package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +1 -0
- package/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.d.ts +20 -0
- package/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.d.ts +16 -0
- package/lib/data-fields/text-field/abstract-dashboard-text-field.component.d.ts +5 -9
- package/lib/data-fields/text-field/abstract-text-errors.component.d.ts +7 -2
- package/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.d.ts +4 -2
- package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +5 -9
- package/lib/data-fields/text-field/models/text-field.d.ts +3 -2
- package/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.d.ts +5 -9
- package/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.d.ts +5 -9
- package/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.d.ts +5 -9
- package/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.d.ts +6 -9
- package/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.d.ts +6 -5
- package/lib/data-fields/user-field/abstract-user-field.component.d.ts +5 -27
- package/lib/data-fields/user-field/models/user-field.d.ts +1 -0
- package/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.d.ts +34 -0
- package/lib/data-fields/user-list-field/abstract-user-list-field.component.d.ts +5 -25
- package/lib/data-fields/user-list-field/models/user-list-field.d.ts +1 -0
- package/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.d.ts +24 -0
- package/lib/dialog/injection-tokens.d.ts +10 -0
- package/lib/dialog/public-api.d.ts +1 -0
- package/lib/filter/models/task-search-request-body.d.ts +6 -0
- package/lib/filter/user-filters.service.d.ts +4 -2
- package/lib/impersonation/services/impersonation-user-select.service.d.ts +3 -3
- package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +3 -1
- package/lib/{data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.d.ts → registry/component-registry.service.d.ts} +6 -5
- package/lib/registry/public-api.d.ts +1 -0
- package/lib/side-menu/content-components/public-api.d.ts +1 -0
- package/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.d.ts +7 -3
- package/lib/task-content/model/field-type-resource.d.ts +1 -0
- package/lib/task-content/task-content/abstract-task-content.component.d.ts +5 -1
- package/lib/view/case-view/service/case-view-service.d.ts +3 -3
- package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +3 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/i18n/de.json +1 -0
- package/src/assets/i18n/en.json +1 -0
- package/src/assets/i18n/sk.json +1 -0
- package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.mjs +0 -35
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { Component, Inject, Input, Optional, ViewChild } from "@angular/core";
|
|
2
|
+
import { DATA_FIELD_PORTAL_DATA } from "../../models/data-field-portal-data-injection-token";
|
|
3
|
+
import { FileListFieldValidation } from "../models/file-list-field";
|
|
4
|
+
import { ProgressType } from "../../../resources/resource-provider.service";
|
|
5
|
+
import { HttpParams } from "@angular/common/http";
|
|
6
|
+
import { take } from "rxjs/operators";
|
|
7
|
+
import { AbstractBaseDataFieldComponent } from "../../base-component/abstract-base-data-field.component";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../resources/engine-endpoint/task-resource.service";
|
|
10
|
+
import * as i2 from "../../../logger/services/logger.service";
|
|
11
|
+
import * as i3 from "../../../snack-bar/services/snack-bar.service";
|
|
12
|
+
import * as i4 from "@ngx-translate/core";
|
|
13
|
+
import * as i5 from "../../../event/services/event.service";
|
|
14
|
+
export class AbstractFileListDefaultFieldComponent extends AbstractBaseDataFieldComponent {
|
|
15
|
+
constructor(_taskResourceService, _log, _snackbar, _translate, _eventService, dataFieldPortalData) {
|
|
16
|
+
super(dataFieldPortalData);
|
|
17
|
+
this._taskResourceService = _taskResourceService;
|
|
18
|
+
this._log = _log;
|
|
19
|
+
this._snackbar = _snackbar;
|
|
20
|
+
this._translate = _translate;
|
|
21
|
+
this._eventService = _eventService;
|
|
22
|
+
this.state = this.defaultState;
|
|
23
|
+
this.uploadedFiles = new Array();
|
|
24
|
+
this.maxFilesNumber = Number.POSITIVE_INFINITY;
|
|
25
|
+
this.taskId = dataFieldPortalData.additionalFieldProperties.taskId;
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.valueChange$ = this.dataField.valueChanges().subscribe(() => {
|
|
29
|
+
this.parseResponse();
|
|
30
|
+
});
|
|
31
|
+
if (this.dataField.validations && this.dataField.validations.length !== 0) {
|
|
32
|
+
const val = this.dataField.validations.find(validation => validation.validationRule.includes(FileListFieldValidation.MAX_FILES));
|
|
33
|
+
if (val && val.validationRule.split(' ').length === 2 && !isNaN(parseInt(val.validationRule.split(' ')[1], 10))) {
|
|
34
|
+
this.maxFilesNumber = parseInt(val.validationRule.split(' ')[1], 10);
|
|
35
|
+
this.maxFilesMessage = val.validationMessage && val.validationMessage !== '' ? val.validationMessage : null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Set file picker and image elements to [FileFieldService]{@link FileFieldService}.
|
|
41
|
+
*
|
|
42
|
+
* Initialize file image.
|
|
43
|
+
*/
|
|
44
|
+
ngAfterViewInit() {
|
|
45
|
+
if (this.fileUploadEl) {
|
|
46
|
+
this.fileUploadEl.nativeElement.onchange = () => {
|
|
47
|
+
this.upload();
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
ngOnDestroy() {
|
|
52
|
+
super.ngOnDestroy();
|
|
53
|
+
this.valueChange$.unsubscribe();
|
|
54
|
+
}
|
|
55
|
+
chooseFile() {
|
|
56
|
+
if (this.state.uploading || this.formControlRef.disabled) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.fileUploadEl.nativeElement.click();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Call after click on file field.
|
|
63
|
+
*
|
|
64
|
+
* If file field has no file uploaded
|
|
65
|
+
* [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens.
|
|
66
|
+
*
|
|
67
|
+
* Otherwise opens a file picker from which the user can select files.
|
|
68
|
+
*/
|
|
69
|
+
upload() {
|
|
70
|
+
if (!this.fileUploadEl.nativeElement.files || this.fileUploadEl.nativeElement.files.length === 0) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!this.taskId) {
|
|
74
|
+
this._log.error('File cannot be uploaded. No task is set to the field.');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (this.fileUploadEl.nativeElement.files.length + this.uploadedFiles.length > this.maxFilesNumber) {
|
|
78
|
+
this._snackbar.openErrorSnackBar(this.maxFilesMessage ? this.maxFilesMessage :
|
|
79
|
+
this._translate.instant('dataField.snackBar.maxFilesExceeded') + this.maxFilesNumber);
|
|
80
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let filesToUpload = Array.from(this.fileUploadEl.nativeElement.files);
|
|
84
|
+
let sum = 0;
|
|
85
|
+
filesToUpload.forEach(item => sum += item.size);
|
|
86
|
+
if (this.dataField.maxUploadSizeInBytes &&
|
|
87
|
+
this.dataField.maxUploadSizeInBytes < sum) {
|
|
88
|
+
this._log.error('Files cannot be uploaded. Maximum size of files exceeded.');
|
|
89
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.maxFilesSizeExceeded') + this.dataField.maxUploadSizeInBytes);
|
|
90
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (this.dataField.value && this.dataField.value.namesPaths && this.dataField.value.namesPaths.length !== 0) {
|
|
94
|
+
this.dataField.value.namesPaths.forEach(namePath => {
|
|
95
|
+
filesToUpload = filesToUpload.filter(fileToUpload => fileToUpload.name !== namePath.name);
|
|
96
|
+
});
|
|
97
|
+
if (filesToUpload.length === 0) {
|
|
98
|
+
this._log.error('User chose the same files that are already uploaded. Uploading skipped');
|
|
99
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.wontUploadSameFiles'));
|
|
100
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
this.state = this.defaultState;
|
|
105
|
+
this.state.uploading = true;
|
|
106
|
+
const fileFormData = new FormData();
|
|
107
|
+
filesToUpload.forEach(fileToUpload => {
|
|
108
|
+
fileFormData.append('files', fileToUpload);
|
|
109
|
+
});
|
|
110
|
+
const data = {};
|
|
111
|
+
data[this.resolveParentTaskId()] = this.dataField.stringId;
|
|
112
|
+
fileFormData.append('data', new Blob([JSON.stringify(data)], { type: 'application/json' }));
|
|
113
|
+
this._taskResourceService.uploadFile(this.taskId, this.dataField.stringId, fileFormData, true)
|
|
114
|
+
.subscribe((response) => {
|
|
115
|
+
if (response.type && response.type === ProgressType.UPLOAD) {
|
|
116
|
+
this.state.progress = response.progress;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.state.completed = true;
|
|
120
|
+
this.state.uploading = false;
|
|
121
|
+
this.state.progress = 0;
|
|
122
|
+
this._log.debug(`Files [${this.dataField.stringId}] were successfully uploaded`);
|
|
123
|
+
if (response.error) {
|
|
124
|
+
this.state.error = true;
|
|
125
|
+
this._log.error(`File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, response.error);
|
|
126
|
+
if (response.error) {
|
|
127
|
+
this._snackbar.openErrorSnackBar(this._translate.instant(response.error));
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);
|
|
135
|
+
this.dataField.emitChangedFields(changedFieldsMap);
|
|
136
|
+
this.state.error = false;
|
|
137
|
+
filesToUpload.forEach(fileToUpload => {
|
|
138
|
+
this.uploadedFiles.push(fileToUpload.name);
|
|
139
|
+
this.dataField.value.namesPaths.push({ name: fileToUpload.name });
|
|
140
|
+
this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {
|
|
141
|
+
return namePath['name'];
|
|
142
|
+
}).join('/'));
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
this.dataField.touch = true;
|
|
146
|
+
this.dataField.update();
|
|
147
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
148
|
+
}
|
|
149
|
+
}, error => {
|
|
150
|
+
this.state.completed = true;
|
|
151
|
+
this.state.error = true;
|
|
152
|
+
this.state.uploading = false;
|
|
153
|
+
this.state.progress = 0;
|
|
154
|
+
if (error?.error?.message) {
|
|
155
|
+
this._snackbar.openErrorSnackBar(this._translate.instant(error.error.message));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));
|
|
159
|
+
}
|
|
160
|
+
this._log.error(`File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, error);
|
|
161
|
+
this.dataField.touch = true;
|
|
162
|
+
this.dataField.update();
|
|
163
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
download(fileName) {
|
|
167
|
+
if (!this.dataField.value || !this.dataField.value.namesPaths ||
|
|
168
|
+
!this.dataField.value.namesPaths.find(namePath => namePath.name === fileName)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (!this.taskId) {
|
|
172
|
+
this._log.error('File cannot be downloaded. No task is set to the field.');
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.state = this.defaultState;
|
|
176
|
+
this.state.downloading = true;
|
|
177
|
+
this._taskResourceService.downloadFile(this.resolveParentTaskId(), this.dataField.stringId, fileName).subscribe(response => {
|
|
178
|
+
if (response.type && response.type === ProgressType.DOWNLOAD) {
|
|
179
|
+
this.state.progress = response.progress;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully downloaded`);
|
|
183
|
+
this.downloadViaAnchor(response, fileName);
|
|
184
|
+
this.state.downloading = false;
|
|
185
|
+
this.state.progress = 0;
|
|
186
|
+
this.dataField.downloaded.push(fileName);
|
|
187
|
+
}
|
|
188
|
+
}, error => {
|
|
189
|
+
this._log.error(`Downloading file [${this.dataField.stringId}] ${fileName} has failed!`, error);
|
|
190
|
+
this._snackbar.openErrorSnackBar(fileName + ' ' + this._translate.instant('dataField.snackBar.downloadFail'));
|
|
191
|
+
this.state.downloading = false;
|
|
192
|
+
this.state.progress = 0;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
downloadViaAnchor(blob, fileName) {
|
|
196
|
+
const a = document.createElement('a');
|
|
197
|
+
document.body.appendChild(a);
|
|
198
|
+
a.setAttribute('style', 'display: none');
|
|
199
|
+
blob = new Blob([blob], { type: 'application/octet-stream' });
|
|
200
|
+
const url = window.URL.createObjectURL(blob);
|
|
201
|
+
a.href = url;
|
|
202
|
+
a.download = fileName;
|
|
203
|
+
a.click();
|
|
204
|
+
window.URL.revokeObjectURL(url);
|
|
205
|
+
document.body.removeChild(a);
|
|
206
|
+
}
|
|
207
|
+
deleteFile(fileName) {
|
|
208
|
+
if (!this.dataField.value || !this.dataField.value.namesPaths ||
|
|
209
|
+
!this.dataField.value.namesPaths.find(namePath => namePath.name === fileName)) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (!this.taskId) {
|
|
213
|
+
this._log.error('File cannot be deleted. No task is set to the field.');
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
let param = new HttpParams();
|
|
217
|
+
param = param.set("parentTaskId", this.resolveParentTaskId());
|
|
218
|
+
this._taskResourceService.deleteFile(this.taskId, this.dataField.stringId, fileName, param).pipe(take(1)).subscribe((response) => {
|
|
219
|
+
if (response.success) {
|
|
220
|
+
const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);
|
|
221
|
+
this.dataField.emitChangedFields(changedFieldsMap);
|
|
222
|
+
this.fileUploadEl.nativeElement.value = '';
|
|
223
|
+
this.uploadedFiles = this.uploadedFiles.filter(uploadedFile => uploadedFile !== fileName);
|
|
224
|
+
if (this.dataField.value.namesPaths) {
|
|
225
|
+
this.dataField.value.namesPaths = this.dataField.value.namesPaths.filter(namePath => namePath.name !== fileName);
|
|
226
|
+
this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {
|
|
227
|
+
return namePath['name'];
|
|
228
|
+
}).join('/'));
|
|
229
|
+
this.dataField.update();
|
|
230
|
+
}
|
|
231
|
+
this.dataField.downloaded = this.dataField.downloaded.filter(one => one !== fileName);
|
|
232
|
+
this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully deleted`);
|
|
233
|
+
this.formControlRef.markAsTouched();
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
this._log.error(`Deleting file [${this.dataField.stringId}] ${fileName} has failed!`, response.error);
|
|
237
|
+
this._snackbar.openErrorSnackBar(fileName + ' ' + this._translate.instant('dataField.snackBar.fileDeleteFailed'));
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
get defaultState() {
|
|
242
|
+
return {
|
|
243
|
+
progress: 0,
|
|
244
|
+
completed: false,
|
|
245
|
+
error: false,
|
|
246
|
+
uploading: false,
|
|
247
|
+
downloading: false
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Construct display name.
|
|
252
|
+
*/
|
|
253
|
+
constructDisplayName() {
|
|
254
|
+
if (!!this.dataField && !!this.dataField.placeholder) {
|
|
255
|
+
return this.dataField.placeholder;
|
|
256
|
+
}
|
|
257
|
+
return this._translate.instant('dataField.file.noFile');
|
|
258
|
+
}
|
|
259
|
+
parseResponse() {
|
|
260
|
+
if (this.dataField.value) {
|
|
261
|
+
if (!!this.dataField.value.namesPaths && this.dataField.value.namesPaths.length !== 0) {
|
|
262
|
+
this.uploadedFiles = new Array();
|
|
263
|
+
this.dataField.value.namesPaths.forEach(namePath => {
|
|
264
|
+
this.uploadedFiles.push(namePath.name);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
this.dataField.value.namesPaths = new Array();
|
|
269
|
+
}
|
|
270
|
+
this.uploadedFiles = this.dataField.value.namesPaths.map(namePath => namePath.name);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
resolveParentTaskId() {
|
|
274
|
+
return !!this.dataField.parentTaskId ? this.dataField.parentTaskId : this.taskId;
|
|
275
|
+
}
|
|
276
|
+
getCutProperty(i18nLabel) {
|
|
277
|
+
if (this.labelWidth !== i18nLabel.offsetWidth) {
|
|
278
|
+
this.labelWidth = i18nLabel.offsetWidth;
|
|
279
|
+
const calculatedWidth = 'calc(0.5em + ' + i18nLabel.offsetWidth / 4 * 3 + 'px)';
|
|
280
|
+
this.cutProperty = `polygon(0 0, 0 100%, 100% 100%, 100% 0%, ${calculatedWidth} 0, ${calculatedWidth} 3px, 0.5em 3px, 0.5em 0)`;
|
|
281
|
+
}
|
|
282
|
+
return this.cutProperty;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
AbstractFileListDefaultFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFileListDefaultFieldComponent, deps: [{ token: i1.TaskResourceService }, { token: i2.LoggerService }, { token: i3.SnackBarService }, { token: i4.TranslateService }, { token: i5.EventService }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
286
|
+
AbstractFileListDefaultFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFileListDefaultFieldComponent, selector: "ncc-abstract-file-list-default-field", inputs: { taskId: "taskId" }, viewQueries: [{ propertyName: "fileUploadEl", first: true, predicate: ["fileUploadInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFileListDefaultFieldComponent, decorators: [{
|
|
288
|
+
type: Component,
|
|
289
|
+
args: [{
|
|
290
|
+
selector: 'ncc-abstract-file-list-default-field',
|
|
291
|
+
template: ''
|
|
292
|
+
}]
|
|
293
|
+
}], ctorParameters: function () { return [{ type: i1.TaskResourceService }, { type: i2.LoggerService }, { type: i3.SnackBarService }, { type: i4.TranslateService }, { type: i5.EventService }, { type: undefined, decorators: [{
|
|
294
|
+
type: Optional
|
|
295
|
+
}, {
|
|
296
|
+
type: Inject,
|
|
297
|
+
args: [DATA_FIELD_PORTAL_DATA]
|
|
298
|
+
}] }]; }, propDecorators: { taskId: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], fileUploadEl: [{
|
|
301
|
+
type: ViewChild,
|
|
302
|
+
args: ['fileUploadInput']
|
|
303
|
+
}] } });
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS1saXN0LWRlZmF1bHQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvZmlsZS1saXN0LWRlZmF1bHQtZmllbGQvYWJzdHJhY3QtZmlsZS1saXN0LWRlZmF1bHQtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxxREFBcUQsQ0FBQztBQUNoSCxPQUFPLEVBQWdCLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFTakYsT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUU1RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBZXZHLE1BQU0sT0FBZ0IscUNBQXNDLFNBQVEsOEJBQTZDO0lBMEI3RyxZQUFnQyxvQkFBeUMsRUFDekMsSUFBbUIsRUFDbkIsU0FBMEIsRUFDMUIsVUFBNEIsRUFDNUIsYUFBMkIsRUFDTyxtQkFBdUQ7UUFDckgsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFOQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIs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RUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFnQzBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzRDQVpoRCxNQUFNO3NCQUFyQixLQUFLO2dCQUsrQixZQUFZO3NCQUFoRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7REFUQV9GSUVMRF9QT1JUQUxfREFUQSwgRGF0YUZpZWxkUG9ydGFsRGF0YX0gZnJvbSBcIi4uLy4uL21vZGVscy9kYXRhLWZpZWxkLXBvcnRhbC1kYXRhLWluamVjdGlvbi10b2tlblwiO1xuaW1wb3J0IHtGaWxlTGlzdEZpZWxkLCBGaWxlTGlzdEZpZWxkVmFsaWRhdGlvbn0gZnJvbSBcIi4uL21vZGVscy9maWxlLWxpc3QtZmllbGRcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC90YXNrLXJlc291cmNlLnNlcnZpY2VcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZXZlbnQvc2VydmljZXMvZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHtGaWxlRmllbGRJZEJvZHl9IGZyb20gXCIuLi8uLi9tb2RlbHMvZmlsZS1maWVsZC1pZC1ib2R5XCI7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZX0gZnJvbSBcIi4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZVwiO1xuaW1wb3J0IHtQcm9ncmVzc1R5cGUsIFByb3ZpZGVyUHJvZ3Jlc3N9IGZyb20gXCIuLi8uLi8uLi9yZXNvdXJjZXMvcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZVwiO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tIFwiLi4vLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXBcIjtcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge3Rha2V9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtGaWxlRmllbGRWYWx1ZX0gZnJvbSBcIi4uLy4uL2ZpbGUtZmllbGQvbW9kZWxzL2ZpbGUtZmllbGQtdmFsdWVcIjtcbmltcG9ydCB7QWJzdHJhY3RCYXNlRGF0YUZpZWxkQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQvYWJzdHJhY3QtYmFzZS1kYXRhLWZpZWxkLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVzU3RhdGUge1xuICAgIHByb2dyZXNzOiBudW1iZXI7XG4gICAgdXBsb2FkaW5nOiBib29sZWFuO1xuICAgIGRvd25sb2FkaW5nOiBib29sZWFuO1xuICAgIGNvbXBsZXRlZDogYm9vbGVhbjtcbiAgICBlcnJvcjogYm9vbGVhbjtcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWxlLWxpc3QtZGVmYXVsdC1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZUxpc3REZWZhdWx0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEJhc2VEYXRhRmllbGRDb21wb25lbnQ8RmlsZUxpc3RGaWVsZD4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIGxhYmVsV2lkdGg6IG51bWJlcjtcbiAgICBwdWJsaWMgY3V0UHJvcGVydHk6IHN0cmluZztcbiAgICBwdWJsaWMgdXBsb2FkZWRGaWxlczogQXJyYXk8c3RyaW5nPjtcbiAgICBwdWJsaWMgc3RhdGU6IEZpbGVzU3RhdGU7XG4gICAgcHJpdmF0ZSB2YWx1ZUNoYW5nZSQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFZhbHVlcyBmcm9tIGZpbGUgbGlzdCBmaWVsZCB2YWxpZGF0aW9uIChlZy4gbWF4RmlsZXMgNSlcbiAgICAgKiBtYXhGaWxlc051bWJlciAtIG1heGltdW0gdXBsb2FkYWJsZSBmaWxlc1xuICAgICAqIG1heEZpbGVzTWVzc2FnZSAtIGVycm9yIG1lc3NhZ2UgaWYgbnVtYmVyIG9mIGZpbGVzIGlzIGV4Y2VlZGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1heEZpbGVzTnVtYmVyOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIG1heEZpbGVzTWVzc2FnZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGFzayBtb25nbyBzdHJpbmcgaWQgaXMgYmluZGluZyBwcm9wZXJ0eSBmcm9tIHBhcmVudCBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBwaWNrZXIgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBjb21wb25lbnQgdGVtcGxhdGUgdGhhdCBpcyBpbml0aWFsaXplZCBhZnRlciB2aWV3IGluaXQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZmlsZVVwbG9hZElucHV0JykgcHVibGljIGZpbGVVcGxvYWRFbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tSZXNvdXJjZVNlcnZpY2U6IFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2V2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIGRhdGFGaWVsZFBvcnRhbERhdGE6IERhdGFGaWVsZFBvcnRhbERhdGE8RmlsZUxpc3RGaWVsZD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YUZpZWxkUG9ydGFsRGF0YSk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmRlZmF1bHRTdGF0ZTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICAgICAgdGhpcy5tYXhGaWxlc051bWJlciA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgICAgdGhpcy50YXNrSWQgPSBkYXRhRmllbGRQb3J0YWxEYXRhLmFkZGl0aW9uYWxGaWVsZFByb3BlcnRpZXMudGFza0lkIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSQgPSB0aGlzLmRhdGFGaWVsZC52YWx1ZUNoYW5nZXMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVJlc3BvbnNlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5kYXRhRmllbGQudmFsaWRhdGlvbnMgJiYgdGhpcy5kYXRhRmllbGQudmFsaWRhdGlvbnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmRhdGFGaWVsZC52YWxpZGF0aW9ucy5maW5kKHZhbGlkYXRpb24gPT5cbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uLk1BWF9GSUxFUylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodmFsICYmIHZhbC52YWxpZGF0aW9uUnVsZS5zcGxpdCgnICcpLmxlbmd0aCA9PT0gMiAmJiAhaXNOYU4ocGFyc2VJbnQodmFsLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJylbMV0sIDEwKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heEZpbGVzTnVtYmVyID0gcGFyc2VJbnQodmFsLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJylbMV0sIDEwKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1heEZpbGVzTWVzc2FnZSA9IHZhbC52YWxpZGF0aW9uTWVzc2FnZSAmJiB2YWwudmFsaWRhdGlvbk1lc3NhZ2UgIT09ICcnID8gdmFsLnZhbGlkYXRpb25NZXNzYWdlIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBmaWxlIHBpY2tlciBhbmQgaW1hZ2UgZWxlbWVudHMgdG8gW0ZpbGVGaWVsZFNlcnZpY2Vde0BsaW5rIEZpbGVGaWVsZFNlcnZpY2V9LlxuICAgICAqXG4gICAgICogSW5pdGlhbGl6ZSBmaWxlIGltYWdlLlxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVVwbG9hZEVsKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50Lm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNob29zZUZpbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnVwbG9hZGluZyB8fCB0aGlzLmZvcm1Db250cm9sUmVmLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGwgYWZ0ZXIgY2xpY2sgb24gZmlsZSBmaWVsZC5cbiAgICAgKlxuICAgICAqIElmIGZpbGUgZmllbGQgaGFzIG5vIGZpbGUgdXBsb2FkZWRcbiAgICAgKiBbRmlsZXNVcGxvYWRDb21wb25lbnRde0BsaW5rIEFic3RyYWN0RmlsZXNVcGxvYWRDb21wb25lbnR9IHZpYSBbU2lkZU1lbnVde0BsaW5rIFNpZGVNZW51U2VydmljZX0gb3BlbnMuXG4gICAgICpcbiAgICAgKiBPdGhlcndpc2Ugb3BlbnMgYSBmaWxlIHBpY2tlciBmcm9tIHdoaWNoIHRoZSB1c2VyIGNhbiBzZWxlY3QgZmlsZXMuXG4gICAgICovXG4gICAgcHVibGljIHVwbG9hZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzIHx8IHRoaXMuZmlsZVVwbG9hZEVsLm5hdGl2ZUVsZW1lbnQuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlIGNhbm5vdCBiZSB1cGxvYWRlZC4gTm8gdGFzayBpcyBzZXQgdG8gdGhlIGZpZWxkLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiB0aGlzLm1heEZpbGVzTnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLm1heEZpbGVzTWVzc2FnZSA/IHRoaXMubWF4RmlsZXNNZXNzYWdlIDpcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnNuYWNrQmFyLm1heEZpbGVzRXhjZWVkZWQnKSArIHRoaXMubWF4RmlsZXNOdW1iZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmlsZXNUb1VwbG9hZCA9IEFycmF5LmZyb20odGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5maWxlcyk7XG4gICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICBmaWxlc1RvVXBsb2FkLmZvckVhY2goaXRlbSA9PiBzdW0gKz0gaXRlbS5zaXplKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLm1heFVwbG9hZFNpemVJbkJ5dGVzICYmXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5tYXhVcGxvYWRTaXplSW5CeXRlcyA8IHN1bSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlcyBjYW5ub3QgYmUgdXBsb2FkZWQuIE1heGltdW0gc2l6ZSBvZiBmaWxlcyBleGNlZWRlZC4nKTtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIubWF4RmlsZXNTaXplRXhjZWVkZWQnKSArIHRoaXMuZGF0YUZpZWxkLm1heFVwbG9hZFNpemVJbkJ5dGVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLnZhbHVlICYmIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgJiYgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMuZm9yRWFjaChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgZmlsZXNUb1VwbG9hZCA9IGZpbGVzVG9VcGxvYWQuZmlsdGVyKGZpbGVUb1VwbG9hZCA9PiBmaWxlVG9VcGxvYWQubmFtZSAhPT0gbmFtZVBhdGgubmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmaWxlc1RvVXBsb2FkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignVXNlciBjaG9zZSB0aGUgc2FtZSBmaWxlcyB0aGF0IGFyZSBhbHJlYWR5IHVwbG9hZGVkLiBVcGxvYWRpbmcgc2tpcHBlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIud29udFVwbG9hZFNhbWVGaWxlcycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuZGVmYXVsdFN0YXRlO1xuICAgICAgICB0aGlzLnN0YXRlLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZpbGVGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgIGZpbGVzVG9VcGxvYWQuZm9yRWFjaChmaWxlVG9VcGxvYWQgPT4ge1xuICAgICAgICAgICAgZmlsZUZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlVG9VcGxvYWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZGF0YTogRmlsZUZpZWxkSWRCb2R5ID0ge307XG4gICAgICAgIGRhdGFbdGhpcy5yZXNvbHZlUGFyZW50VGFza0lkKCldID0gdGhpcy5kYXRhRmllbGQuc3RyaW5nSWQ7XG4gICAgICAgIGZpbGVGb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZGF0YSldLCB7dHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nfSkpO1xuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLnVwbG9hZEZpbGUodGhpcy50YXNrSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZCwgZmlsZUZvcm1EYXRhLCB0cnVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSAmJiAocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSA9PT0gUHJvZ3Jlc3NUeXBlLlVQTE9BRCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnByb2dyZXNzID0gKHJlc3BvbnNlIGFzIFByb3ZpZGVyUHJvZ3Jlc3MpLnByb2dyZXNzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlcyBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkYFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHt0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzLml0ZW0oMCl9IHVwbG9hZGluZyBoYXMgZmFpbGVkIWAsIHJlc3BvbnNlLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQocmVzcG9uc2UuZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RhdGFGaWVsZC5zbmFja0Jhci5maWxlVXBsb2FkRmFpbGVkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkc01hcDogQ2hhbmdlZEZpZWxkc01hcCA9IHRoaXMuX2V2ZW50U2VydmljZS5wYXJzZUNoYW5nZWRGaWVsZHNGcm9tT3V0Y29tZVRyZWUocmVzcG9uc2Uub3V0Y29tZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5lbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2VkRmllbGRzTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVG9VcGxvYWQuZm9yRWFjaChmaWxlVG9VcGxvYWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKGZpbGVUb1VwbG9hZC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLnB1c2goe25hbWU6IGZpbGVUb1VwbG9hZC5uYW1lfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5zZXRWYWx1ZSh0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGF0aFsnbmFtZSddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oJy8nKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC50b3VjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoZXJyb3IuZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIuZmlsZVVwbG9hZEZhaWxlZCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7dGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5maWxlcy5pdGVtKDApfSB1cGxvYWRpbmcgaGFzIGZhaWxlZCFgLCBlcnJvclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudG91Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb3dubG9hZChmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhRmllbGQudmFsdWUgfHwgIXRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgfHxcbiAgICAgICAgICAgICF0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLmZpbmQobmFtZVBhdGggPT4gbmFtZVBhdGgubmFtZSA9PT0gZmlsZU5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlIGNhbm5vdCBiZSBkb3dubG9hZGVkLiBObyB0YXNrIGlzIHNldCB0byB0aGUgZmllbGQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5kZWZhdWx0U3RhdGU7XG4gICAgICAgIHRoaXMuc3RhdGUuZG93bmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLmRvd25sb2FkRmlsZSh0aGlzLnJlc29sdmVQYXJlbnRUYXNrSWQoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnN0cmluZ0lkLCBmaWxlTmFtZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIGlmICgocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSAmJiAocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSA9PT0gUHJvZ3Jlc3NUeXBlLkRPV05MT0FEKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IChyZXNwb25zZSBhcyBQcm92aWRlclByb2dyZXNzKS5wcm9ncmVzcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHtmaWxlTmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSBkb3dubG9hZGVkYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFZpYUFuY2hvcihyZXNwb25zZSBhcyBCbG9iLCBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5kb3dubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLmRvd25sb2FkZWQucHVzaChmaWxlTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcihgRG93bmxvYWRpbmcgZmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7ZmlsZU5hbWV9IGhhcyBmYWlsZWQhYCwgZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIoZmlsZU5hbWUgKyAnICcgKyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnNuYWNrQmFyLmRvd25sb2FkRmFpbCcpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuZG93bmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZG93bmxvYWRWaWFBbmNob3IoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgICAgICBibG9iID0gbmV3IEJsb2IoW2Jsb2JdLCB7dHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSd9KTtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZUZpbGUoZmlsZU5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YUZpZWxkLnZhbHVlIHx8ICF0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzIHx8XG4gICAgICAgICAgICAhdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5maW5kKG5hbWVQYXRoID0+IG5hbWVQYXRoLm5hbWUgPT09IGZpbGVOYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignRmlsZSBjYW5ub3QgYmUgZGVsZXRlZC4gTm8gdGFzayBpcyBzZXQgdG8gdGhlIGZpZWxkLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbSA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2V0KFwicGFyZW50VGFza0lkXCIsIHRoaXMucmVzb2x2ZVBhcmVudFRhc2tJZCgpKTtcblxuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLmRlbGV0ZUZpbGUodGhpcy50YXNrSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZCwgZmlsZU5hbWUsIHBhcmFtKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzTWFwOiBDaGFuZ2VkRmllbGRzTWFwID0gdGhpcy5fZXZlbnRTZXJ2aWNlLnBhcnNlQ2hhbmdlZEZpZWxkc0Zyb21PdXRjb21lVHJlZShyZXNwb25zZS5vdXRjb21lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5lbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2VkRmllbGRzTWFwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcih1cGxvYWRlZEZpbGUgPT4gdXBsb2FkZWRGaWxlICE9PSBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocyA9IHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMuZmlsdGVyKG5hbWVQYXRoID0+IG5hbWVQYXRoLm5hbWUgIT09IGZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5zZXRWYWx1ZSh0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZVBhdGhbJ25hbWUnXTtcbiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignLycpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLmRvd25sb2FkZWQgPSB0aGlzLmRhdGFGaWVsZC5kb3dubG9hZGVkLmZpbHRlcihvbmUgPT4gb25lICE9PSBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHtmaWxlTmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSBkZWxldGVkYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcihgRGVsZXRpbmcgZmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7ZmlsZU5hbWV9IGhhcyBmYWlsZWQhYCwgcmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSArICcgJyArIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIuZmlsZURlbGV0ZUZhaWxlZCcpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBkZWZhdWx0U3RhdGUoKTogRmlsZXNTdGF0ZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9ncmVzczogMCxcbiAgICAgICAgICAgIGNvbXBsZXRlZDogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICB1cGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0IGRpc3BsYXkgbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0RGlzcGxheU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCEhdGhpcy5kYXRhRmllbGQgJiYgISF0aGlzLmRhdGFGaWVsZC5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YUZpZWxkLnBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLmZpbGUubm9GaWxlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlUmVzcG9uc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFGaWVsZC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKCEhdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocyAmJiB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5mb3JFYWNoKG5hbWVQYXRoID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gobmFtZVBhdGgubmFtZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgPSBuZXcgQXJyYXk8RmlsZUZpZWxkVmFsdWU+KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiBuYW1lUGF0aC5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZVBhcmVudFRhc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRhdGFGaWVsZC5wYXJlbnRUYXNrSWQgPyB0aGlzLmRhdGFGaWVsZC5wYXJlbnRUYXNrSWQgOiB0aGlzLnRhc2tJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3V0UHJvcGVydHkoaTE4bkxhYmVsKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxXaWR0aCAhPT0gaTE4bkxhYmVsLm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsV2lkdGggPSBpMThuTGFiZWwub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkV2lkdGggPSAnY2FsYygwLjVlbSArICcgKyBpMThuTGFiZWwub2Zmc2V0V2lkdGggLyA0ICogMyArICdweCknO1xuICAgICAgICAgICAgdGhpcy5jdXRQcm9wZXJ0eSA9IGBwb2x5Z29uKDAgMCwgMCAxMDAlLCAxMDAlIDEwMCUsIDEwMCUgMCUsICR7Y2FsY3VsYXRlZFdpZHRofSAwLCAke2NhbGN1bGF0ZWRXaWR0aH0gM3B4LCAwLjVlbSAzcHgsIDAuNWVtIDApYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXRQcm9wZXJ0eTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Subject } from 'rxjs';
|
|
2
2
|
import { DataField } from '../../models/abstract-data-field';
|
|
3
|
+
import { ComponentPrefixes } from '../../models/component';
|
|
3
4
|
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
5
|
export var FileListFieldValidation;
|
|
5
6
|
(function (FileListFieldValidation) {
|
|
@@ -30,6 +31,9 @@ export class FileListField extends DataField {
|
|
|
30
31
|
get value() {
|
|
31
32
|
return this._value.getValue();
|
|
32
33
|
}
|
|
34
|
+
getTypedComponentType() {
|
|
35
|
+
return ComponentPrefixes.FILE_LIST + this.getComponentType();
|
|
36
|
+
}
|
|
33
37
|
valueWithoutChange(value) {
|
|
34
38
|
this.changed = false;
|
|
35
39
|
this._value.next(value ?? { namesPaths: [] });
|
|
@@ -62,6 +66,7 @@ export class FileListField extends DataField {
|
|
|
62
66
|
throw new Error('Data field can be initialized only once!'
|
|
63
67
|
+ ' Disconnect the previous form control before initializing the data field again!');
|
|
64
68
|
}
|
|
69
|
+
this.formControlRef = formControl;
|
|
65
70
|
formControl.setValidators(this.resolveFormControlValidators());
|
|
66
71
|
this._myValueSubscription = this._value.pipe(distinctUntilChanged(this.valueEquality)).subscribe(newValue => {
|
|
67
72
|
this.valid = this._determineFormControlValidity(formControl);
|
|
@@ -80,4 +85,4 @@ export class FileListField extends DataField {
|
|
|
80
85
|
this.update();
|
|
81
86
|
}
|
|
82
87
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvbW9kZWxzL2ZpbGUtbGlzdC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQU0zRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLENBQU4sSUFBWSx1QkFFWDtBQUZELFdBQVksdUJBQXVCO0lBQy9CLGlEQUFzQixDQUFBO0FBQzFCLENBQUMsRUFGVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBRWxDO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUE2QjtJQTBCNUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBa0IsRUFBRSxLQUEwQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFDM0gsTUFBZSxFQUFFLFdBQStCLEVBQVUscUJBQThCLEVBQ2hGLFdBQXFFLEVBQzdFLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDlDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUNoRixnQkFBVyxHQUFYLFdBQVcsQ0FBMEQ7UUFHckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7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IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4uLy4uL21vZGVscy9iZWhhdmlvcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQge0ZpbGVVcGxvYWRNSU1FVHlwZX0gZnJvbSAnLi4vLi4vZmlsZS1maWVsZC9tb2RlbHMvZmlsZS1maWVsZCc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtGaWxlTGlzdEZpZWxkVmFsdWV9IGZyb20gJy4vZmlsZS1saXN0LWZpZWxkLXZhbHVlJztcbmltcG9ydCB7VmFsaWRhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uIHtcbiAgICBNQVhfRklMRVMgPSAnbWF4RmlsZXMnXG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTGlzdEZpZWxkIGV4dGVuZHMgRGF0YUZpZWxkPEZpbGVMaXN0RmllbGRWYWx1ZT4ge1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZm9yd2FyZCB0aGUgcmVzdWx0IG9mIHRoZSB1cGxvYWQgZmlsZSBiYWNrZW5kIGNhbGwgdG8gdGhlIHRhc2sgY29udGVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWRGaWVsZHMkOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+O1xuICAgIHB1YmxpYyBkb3dubG9hZGVkOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlRXF1YWxpdHkodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSwgdmFsdWUpICYmICF0aGlzLnJldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMud2FpdGluZ0ZvclJlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZSA/PyB7bmFtZXNQYXRoczogW119KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlID8/IHtuYW1lc1BhdGhzOiBbXX0pO1xuICAgICAgICB0aGlzLnJldmVydGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBGaWxlTGlzdEZpZWxkVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVXaXRob3V0Q2hhbmdlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUgPz8ge25hbWVzUGF0aHM6IFtdfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBmb3IgZmlsZSBmaWVsZCB3aXRoIGFsbCBoaXMgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIFBsYWNlaG9sZGVyIGlzIGEgc3Vic3RpdHV0ZSBmb3IgdGhlIHZhbHVlIG5hbWUgaWYgbm90IHNldCB2YWx1ZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBiZWhhdmlvcjogQmVoYXZpb3IsIHZhbHVlPzogRmlsZUxpc3RGaWVsZFZhbHVlLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbGF5b3V0PzogTGF5b3V0LCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LCBwcml2YXRlIF9tYXhVcGxvYWRTaXplSW5CeXRlcz86IG51bWJlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hbGxvd1R5cGVzPzogc3RyaW5nIHwgRmlsZVVwbG9hZE1JTUVUeXBlIHwgQXJyYXk8RmlsZVVwbG9hZE1JTUVUeXBlPixcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsIHBhcmVudFRhc2tJZD86IHN0cmluZykge1xuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBjb21wb25lbnQsIHBhcmVudFRhc2tJZCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRGaWVsZHMkID0gbmV3IFN1YmplY3Q8Q2hhbmdlZEZpZWxkc01hcD4oKTtcbiAgICAgICAgdGhpcy5kb3dubG9hZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VXBsb2FkU2l6ZUluQnl0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFVwbG9hZFNpemVJbkJ5dGVzO1xuICAgIH1cblxuICAgIGdldCBhbGxvd1R5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd1R5cGVzIGluc3RhbmNlb2YgQXJyYXkgPyB0aGlzLl9hbGxvd1R5cGVzLnRvU3RyaW5nKCkgOiB0aGlzLl9hbGxvd1R5cGVzO1xuICAgIH1cblxuICAgIGdldCBjaGFuZ2VkRmllbGRzJCgpOiBPYnNlcnZhYmxlPENoYW5nZWRGaWVsZHNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRGaWVsZHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2U6IENoYW5nZWRGaWVsZHNNYXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGFzc3VtZSB0aGF0IGZpbGVzIGFyZSBhbHdheXMgZ2l2ZW4gaW4gdGhlIHNhbWUgb3JkZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogRmlsZUxpc3RGaWVsZFZhbHVlLCBiOiBGaWxlTGlzdEZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFycmF5ID0gKEpTT04uc3RyaW5naWZ5KGEpID09PSAne30nIHx8ICFhLm5hbWVzUGF0aHMgfHwgYS5uYW1lc1BhdGhzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICAgIChKU09OLnN0cmluZ2lmeShiKSA9PT0gJ3t9JyB8fCAhYi5uYW1lc1BhdGhzIHx8IGIubmFtZXNQYXRocy5sZW5ndGggPT09IDApO1xuICAgICAgICBpZiAoYSAmJiBhLm5hbWVzUGF0aHMgJiYgYS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCAmJiBiICYmIGIubmFtZXNQYXRocyAmJiBiLm5hbWVzUGF0aHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBhcnJheSA9IGEubmFtZXNQYXRocy5ldmVyeSgoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQubmFtZSA9PT0gYi5uYW1lc1BhdGhzW2luZGV4XS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCFhICYmICFiKSB8fCAoISFhICYmICEhYiAmJiBhcnJheSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRm9ybUNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZmllbGQgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSEnXG4gICAgICAgICAgICAgICAgKyAnIERpc2Nvbm5lY3QgdGhlIHByZXZpb3VzIGZvcm0gY29udHJvbCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBkYXRhIGZpZWxkIGFnYWluIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG5cbiAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3ZhbHVlLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnZhbHVlRXF1YWxpdHkpXG4gICAgICAgICkuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKCFuZXdWYWx1ZSB8fCAhbmV3VmFsdWUubmFtZXNQYXRocyA/ICcnIDogbmV3VmFsdWUubmFtZXNQYXRocy5tYXAobmFtZVBhdGggPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGF0aC5uYW1lO1xuICAgICAgICAgICAgfSkuam9pbignLycpKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy53YWl0aW5nRm9yUmVzcG9uc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0lubmVyU3ViamVjdHMoZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvbW9kZWxzL2ZpbGUtbGlzdC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUczRCxPQUFPLEVBQVksaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLENBQU4sSUFBWSx1QkFFWDtBQUZELFdBQVksdUJBQXVCO0lBQy9CLGlEQUFzQixDQUFBO0FBQzFCLENBQUMsRUFGVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBRWxDO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUE2QjtJQThCNUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBa0IsRUFBRSxLQUEwQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFDM0gsTUFBZSxFQUFFLFdBQStCLEVBQVUscUJBQThCLEVBQ2hGLFdBQXFFLEVBQzdFLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDlDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUNoRixnQkFBVyxHQUFYLFdBQVcsQ0FBMEQ7UUFHckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztR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QUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRVMsc0JBQXNCLENBQUMsV0FBd0I7UUFDckQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi4vLi4vbW9kZWxzL2JlaGF2aW9yJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuLi8uLi9tb2RlbHMvbGF5b3V0JztcbmltcG9ydCB7RmlsZVVwbG9hZE1JTUVUeXBlfSBmcm9tICcuLi8uLi9maWxlLWZpZWxkL21vZGVscy9maWxlLWZpZWxkJztcbmltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0ZpbGVMaXN0RmllbGRWYWx1ZX0gZnJvbSAnLi9maWxlLWxpc3QtZmllbGQtdmFsdWUnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UHJlZml4ZXN9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uIHtcbiAgICBNQVhfRklMRVMgPSAnbWF4RmlsZXMnXG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTGlzdEZpZWxkIGV4dGVuZHMgRGF0YUZpZWxkPEZpbGVMaXN0RmllbGRWYWx1ZT4ge1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZm9yd2FyZCB0aGUgcmVzdWx0IG9mIHRoZSB1cGxvYWQgZmlsZSBiYWNrZW5kIGNhbGwgdG8gdGhlIHRhc2sgY29udGVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWRGaWVsZHMkOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+O1xuICAgIHB1YmxpYyBkb3dubG9hZGVkOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlRXF1YWxpdHkodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSwgdmFsdWUpICYmICF0aGlzLnJldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMud2FpdGluZ0ZvclJlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZSA/PyB7bmFtZXNQYXRoczogW119KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlID8/IHtuYW1lc1BhdGhzOiBbXX0pO1xuICAgICAgICB0aGlzLnJldmVydGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBGaWxlTGlzdEZpZWxkVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VHlwZWRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnRQcmVmaXhlcy5GSUxFX0xJU1QgKyB0aGlzLmdldENvbXBvbmVudFR5cGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVXaXRob3V0Q2hhbmdlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUgPz8ge25hbWVzUGF0aHM6IFtdfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBmb3IgZmlsZSBmaWVsZCB3aXRoIGFsbCBoaXMgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIFBsYWNlaG9sZGVyIGlzIGEgc3Vic3RpdHV0ZSBmb3IgdGhlIHZhbHVlIG5hbWUgaWYgbm90IHNldCB2YWx1ZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBiZWhhdmlvcjogQmVoYXZpb3IsIHZhbHVlPzogRmlsZUxpc3RGaWVsZFZhbHVlLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbGF5b3V0PzogTGF5b3V0LCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LCBwcml2YXRlIF9tYXhVcGxvYWRTaXplSW5CeXRlcz86IG51bWJlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hbGxvd1R5cGVzPzogc3RyaW5nIHwgRmlsZVVwbG9hZE1JTUVUeXBlIHwgQXJyYXk8RmlsZVVwbG9hZE1JTUVUeXBlPixcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsIHBhcmVudFRhc2tJZD86IHN0cmluZykge1xuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBjb21wb25lbnQsIHBhcmVudFRhc2tJZCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRGaWVsZHMkID0gbmV3IFN1YmplY3Q8Q2hhbmdlZEZpZWxkc01hcD4oKTtcbiAgICAgICAgdGhpcy5kb3dubG9hZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VXBsb2FkU2l6ZUluQnl0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFVwbG9hZFNpemVJbkJ5dGVzO1xuICAgIH1cblxuICAgIGdldCBhbGxvd1R5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd1R5cGVzIGluc3RhbmNlb2YgQXJyYXkgPyB0aGlzLl9hbGxvd1R5cGVzLnRvU3RyaW5nKCkgOiB0aGlzLl9hbGxvd1R5cGVzO1xuICAgIH1cblxuICAgIGdldCBjaGFuZ2VkRmllbGRzJCgpOiBPYnNlcnZhYmxlPENoYW5nZWRGaWVsZHNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRGaWVsZHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2U6IENoYW5nZWRGaWVsZHNNYXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGFzc3VtZSB0aGF0IGZpbGVzIGFyZSBhbHdheXMgZ2l2ZW4gaW4gdGhlIHNhbWUgb3JkZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogRmlsZUxpc3RGaWVsZFZhbHVlLCBiOiBGaWxlTGlzdEZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFycmF5ID0gKEpTT04uc3RyaW5naWZ5KGEpID09PSAne30nIHx8ICFhLm5hbWVzUGF0aHMgfHwgYS5uYW1lc1BhdGhzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICAgIChKU09OLnN0cmluZ2lmeShiKSA9PT0gJ3t9JyB8fCAhYi5uYW1lc1BhdGhzIHx8IGIubmFtZXNQYXRocy5sZW5ndGggPT09IDApO1xuICAgICAgICBpZiAoYSAmJiBhLm5hbWVzUGF0aHMgJiYgYS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCAmJiBiICYmIGIubmFtZXNQYXRocyAmJiBiLm5hbWVzUGF0aHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBhcnJheSA9IGEubmFtZXNQYXRocy5ldmVyeSgoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQubmFtZSA9PT0gYi5uYW1lc1BhdGhzW2luZGV4XS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCFhICYmICFiKSB8fCAoISFhICYmICEhYiAmJiBhcnJheSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRm9ybUNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZmllbGQgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSEnXG4gICAgICAgICAgICAgICAgKyAnIERpc2Nvbm5lY3QgdGhlIHByZXZpb3VzIGZvcm0gY29udHJvbCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBkYXRhIGZpZWxkIGFnYWluIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZiA9IGZvcm1Db250cm9sO1xuICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMucmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpKTtcblxuICAgICAgICB0aGlzLl9teVZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWUucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoIW5ld1ZhbHVlIHx8ICFuZXdWYWx1ZS5uYW1lc1BhdGhzID8gJycgOiBuZXdWYWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYXRoLm5hbWU7XG4gICAgICAgICAgICB9KS5qb2luKCcvJykpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKGZvcm1Db250cm9sKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLndhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtQ29udHJvbFN0YXRlKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxufVxuIl19
|
package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-v
|
|
|
8
8
|
import { NAE_FILTER_FIELD } from './models/filter-field-injection-token';
|
|
9
9
|
import { AbstractFilterFieldContentComponent } from './abstract-filter-field-content.component';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
11
|
+
import * as i1 from "../../registry/component-registry.service";
|
|
12
12
|
import * as i2 from "../../search/search-service/search.service";
|
|
13
13
|
import * as i3 from "./models/filter-field";
|
|
14
14
|
export class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFieldContentComponent {
|
|
@@ -45,7 +45,7 @@ export class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFi
|
|
|
45
45
|
this.componentPortal = this.registry.get(Dashboard.FILTER_TAB_VIEW_ID, portalInjector);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
AbstractFilterFieldTabViewContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, deps: [{ token: i1.
|
|
48
|
+
AbstractFilterFieldTabViewContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i0.Injector }, { token: NAE_FILTER_FIELD }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
49
|
AbstractFilterFieldTabViewContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFilterFieldTabViewContentComponent, selector: "ncc-abstract-filter-field-tab-view-content", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
50
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, decorators: [{
|
|
51
51
|
type: Component,
|
|
@@ -53,8 +53,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
53
53
|
selector: 'ncc-abstract-filter-field-tab-view-content',
|
|
54
54
|
template: ''
|
|
55
55
|
}]
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i0.Injector }, { type: i3.FilterField, decorators: [{
|
|
57
57
|
type: Inject,
|
|
58
58
|
args: [NAE_FILTER_FIELD]
|
|
59
59
|
}] }, { type: i2.SearchService }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUUvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFPaEcsTUFBTSxPQUFnQiwwQ0FBMkMsU0FBUSxtQ0FBbUM7SUFJeEcsWUFBZ0MsUUFBa0MsRUFDbEMsUUFBa0IsRUFDRixXQUF3QixFQUNsRCxhQUE0QjtRQUM5QyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBSkwsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUlsRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQzlCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxlQUFlO29CQUN4QixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBZ0I7aUJBQ2xIO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxtQkFBbUI7b0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtpQkFDckg7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7YUFBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7d0lBckNpQiwwQ0FBMEMsa0ZBTTlCLGdCQUFnQjs0SEFONUIsMENBQTBDLHlHQUZsRCxFQUFFOzRGQUVNLDBDQUEwQztrQkFKL0QsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBTzBCLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHsgTkFFX0JBU0VfRklMVEVSIH0gZnJvbSAnLi4vLi4vc2VhcmNoL21vZGVscy9iYXNlLWZpbHRlci1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgU2ltcGxlRmlsdGVyIH0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9zaW1wbGUtZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlci10eXBlJztcbmltcG9ydCB7IE5BRV9WSUVXX0lEX1NFR01FTlQgfSBmcm9tICcuLi8uLi91c2VyL21vZGVscy92aWV3LWlkLWluamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgVmlld0lkU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZCB9IGZyb20gJy4uL3RleHQtZmllbGQvZGFzaGJvYXJkLXBvcnRhbC10ZXh0LWZpZWxkL2Rhc2hib2FyZC12aWV3LWNvbnN0YW50cyc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyIH0gZnJvbSAnLi4vLi4vc2VhcmNoL21vZGVscy9iYXNlLWZpbHRlcic7XG5pbXBvcnQgeyBOQUVfRklMVEVSX0ZJRUxEIH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyLWZpZWxkLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmlsdGVyRmllbGRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1maWx0ZXItZmllbGQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21wb25lbnRSZWdpc3RyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWx0ZXItZmllbGQtdGFiLXZpZXctY29udGVudCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsdGVyRmllbGRUYWJWaWV3Q29udGVudENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsdGVyRmllbGRDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb21wb25lbnRQb3J0YWw6IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWdpc3RyeTogQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBASW5qZWN0KE5BRV9GSUxURVJfRklFTEQpIGZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgICAgICBzdXBlcihmaWx0ZXJGaWVsZCwgc2VhcmNoU2VydmljZSlcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyKCk7XG4gICAgICAgIHRoaXMuX2ZpbHRlckZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUZpbHRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVGaWx0ZXIoKSB7XG4gICAgICAgIGNvbnN0IHBvcnRhbEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTkFFX0ZJTFRFUl9GSUVMRCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuX2ZpbHRlckZpZWxkXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9CQVNFX0ZJTFRFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHsgZmlsdGVyOiBTaW1wbGVGaWx0ZXIuZnJvbVF1ZXJ5KHsgcXVlcnk6IHRoaXMuX2ZpbHRlckZpZWxkLnZhbHVlIH0sIEZpbHRlclR5cGUuQ0FTRSkgfSBhcyBCYXNlRmlsdGVyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9WSUVXX0lEX1NFR01FTlQsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLl9maWx0ZXJGaWVsZC5wYXJlbnRDYXNlSWQgKyAnXycgKyB0aGlzLl9maWx0ZXJGaWVsZC5wYXJlbnRUYXNrSWQgKyAnXycgKyB0aGlzLl9maWx0ZXJGaWVsZC5zdHJpbmdJZFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBWaWV3SWRTZXJ2aWNlLCB1c2VDbGFzczogVmlld0lkU2VydmljZSB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSB0aGlzLnJlZ2lzdHJ5LmdldChEYXNoYm9hcmQuRklMVEVSX1RBQl9WSUVXX0lELCBwb3J0YWxJbmplY3Rvcik7XG4gICAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-view-constants';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
4
|
+
import * as i1 from "../../registry/component-registry.service";
|
|
5
5
|
import * as i2 from "./models/filter-field";
|
|
6
6
|
export class AbstractFilterFieldTabViewComponent {
|
|
7
7
|
constructor(_registry, _filterField, _tabContentComponent, _tabViewComponent) {
|
|
@@ -41,7 +41,7 @@ export class AbstractFilterFieldTabViewComponent {
|
|
|
41
41
|
}
|
|
42
42
|
;
|
|
43
43
|
}
|
|
44
|
-
AbstractFilterFieldTabViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, deps: [{ token: i1.
|
|
44
|
+
AbstractFilterFieldTabViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i2.FilterField }, { token: i0.Type }, { token: i0.Type }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
45
|
AbstractFilterFieldTabViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFilterFieldTabViewComponent, selector: "ncc-abstract-filter-field-tab-view", ngImport: i0, template: '', isInline: true });
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
@@ -49,5 +49,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
49
49
|
selector: 'ncc-abstract-filter-field-tab-view',
|
|
50
50
|
template: ''
|
|
51
51
|
}]
|
|
52
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i2.FilterField }, { type: i0.Type }, { type: i0.Type }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvZmlsdGVyLWZpZWxkL2Fic3RyYWN0LWZpbHRlci1maWVsZC10YWItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7Ozs7QUFRL0YsTUFBTSxPQUFnQixtQ0FBbUM7SUFJckQsWUFBc0IsU0FBbUMsRUFDbkMsWUFBeUIsRUFDekIsb0JBQWdDLEVBQ2hDLGlCQUE2QjtRQUg3QixjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVk7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBRS9DLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDUjtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSztvQkFDdEcsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLE1BQU07aUJBQ3ZGO2dCQUNELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQy9DLGNBQWMsRUFBRTtvQkFDWixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3pDLFlBQVksRUFBRSxDQUFDO2lCQUNsQjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsSUFBSSxtQkFBbUIsR0FBYyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFL0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDekQsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUE7U0FDOUU7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUssZ0JBQWdCO1FBQ25CLElBQUksZ0JBQWdCLEdBQWMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRXpELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3pELGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBQUEsQ0FBQzs7aUlBekNnQixtQ0FBbUM7cUhBQW5DLG1DQUFtQywwRUFGM0MsRUFBRTs0RkFFTSxtQ0FBbUM7a0JBSnhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYkNvbnRlbnQgfSBmcm9tICcuLi8uLi90YWJzL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBEYXNoYm9hcmQgfSBmcm9tICcuLi90ZXh0LWZpZWxkL2Rhc2hib2FyZC1wb3J0YWwtdGV4dC1maWVsZC9kYXNoYm9hcmQtdmlldy1jb25zdGFudHMnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHtDb21wb25lbnRSZWdpc3RyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWx0ZXItZmllbGQtdGFiLXZpZXcnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbHRlckZpZWxkVGFiVmlld0NvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgdGFiczogQXJyYXk8VGFiQ29udGVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maWx0ZXJGaWVsZDogRmlsdGVyRmllbGQsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YWJDb250ZW50Q29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFiVmlld0NvbXBvbmVudD86IFR5cGU8YW55Pikge1xuXG4gICAgICAgIHRoaXMudGFicyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9maWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YVtEYXNoYm9hcmQuRklMVEVSX1RBQl9WSUVXX1RJVExFX0tFWV0gPz8gdGhpcy5fZmlsdGVyRmllbGQudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGljb246IHRoaXMuX2ZpbHRlckZpZWxkLmZpbHRlck1ldGFkYXRhW0Rhc2hib2FyZC5GSUxURVJfVEFCX1ZJRVdfSUNPTl9LRVldID8/ICdob21lJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IHRoaXMudGFiQ29udGVudENvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQ6IHRoaXMudGFiVmlld0NvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgICAgICB0YWJWaWV3T3JkZXI6IDAsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWJDb250ZW50Q29tcG9uZW50KCk6IFR5cGU8YW55PiB7XG4gICAgICAgIGxldCB0YWJDb250ZW50Q29tcG9uZW50OiBUeXBlPGFueT4gPSB0aGlzLl90YWJDb250ZW50Q29tcG9uZW50O1xuXG4gICAgICAgIGlmICghIXRoaXMuX3JlZ2lzdHJ5LmdldFR5cGUoRGFzaGJvYXJkLkZJTFRFUl9DQVNFX1ZJRVdfSUQpKSB7XG4gICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50ID0gdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX0NBU0VfVklFV19JRClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFiQ29udGVudENvbXBvbmVudDtcbiAgICB9O1xuXG4gICAgcHVibGljIHRhYlZpZXdDb21wb25lbnQoKTogVHlwZTxhbnk+IHtcbiAgICAgICAgbGV0IHRhYlZpZXdDb21wb25lbnQ6IFR5cGU8YW55PiA9IHRoaXMuX3RhYlZpZXdDb21wb25lbnQ7XG5cbiAgICAgICAgaWYgKCEhdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX1RBU0tfVklFV19JRCkpIHtcbiAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQgPSB0aGlzLl9yZWdpc3RyeS5nZXRUeXBlKERhc2hib2FyZC5GSUxURVJfVEFTS19WSUVXX0lEKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YWJWaWV3Q29tcG9uZW50O1xuICAgIH07XG59XG4iXX0=
|