@valtimo/dashboard 12.5.1 → 12.7.0

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.
Files changed (69) hide show
  1. package/esm2022/lib/components/widget-dashboard-content/widget-dashboard-content.component.mjs +18 -10
  2. package/esm2022/lib/dashboard.module.mjs +7 -3
  3. package/esm2022/lib/data-sources/case-count/case-count.specification.mjs +5 -4
  4. package/esm2022/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +8 -6
  5. package/esm2022/lib/data-sources/case-counts/case-counts.specification.mjs +5 -4
  6. package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.mjs +12 -8
  7. package/esm2022/lib/data-sources/case-group-by/case-group-by.module.mjs +7 -4
  8. package/esm2022/lib/data-sources/case-group-by/case-group-by.specification.mjs +5 -4
  9. package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.mjs +11 -8
  10. package/esm2022/lib/data-sources/data-sources.module.mjs +29 -0
  11. package/esm2022/lib/data-sources/index.mjs +2 -1
  12. package/esm2022/lib/data-sources/shared/conditions.mjs +22 -0
  13. package/esm2022/lib/data-sources/shared/index.mjs +17 -0
  14. package/esm2022/lib/data-sources/task-count/components/index.mjs +17 -0
  15. package/esm2022/lib/data-sources/task-count/components/task-count-configuration/index.mjs +17 -0
  16. package/esm2022/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.mjs +122 -0
  17. package/esm2022/lib/data-sources/task-count/index.mjs +20 -0
  18. package/esm2022/lib/data-sources/task-count/models/index.mjs +17 -0
  19. package/esm2022/lib/data-sources/task-count/models/task-count.model.mjs +17 -0
  20. package/esm2022/lib/data-sources/task-count/task-count.module.mjs +57 -0
  21. package/esm2022/lib/data-sources/task-count/task-count.specification.mjs +69 -0
  22. package/esm2022/lib/models/dashboard.model.mjs +1 -1
  23. package/esm2022/public_api.mjs +2 -1
  24. package/fesm2022/valtimo-dashboard.mjs +555 -171
  25. package/fesm2022/valtimo-dashboard.mjs.map +1 -1
  26. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts +4 -1
  27. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts.map +1 -1
  28. package/lib/dashboard.module.d.ts +2 -1
  29. package/lib/dashboard.module.d.ts.map +1 -1
  30. package/lib/data-sources/case-count/case-count.specification.d.ts.map +1 -1
  31. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts +3 -2
  32. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts.map +1 -1
  33. package/lib/data-sources/case-counts/case-counts.specification.d.ts.map +1 -1
  34. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts +4 -3
  35. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts.map +1 -1
  36. package/lib/data-sources/case-group-by/case-group-by.module.d.ts +1 -1
  37. package/lib/data-sources/case-group-by/case-group-by.module.d.ts.map +1 -1
  38. package/lib/data-sources/case-group-by/case-group-by.specification.d.ts.map +1 -1
  39. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts +4 -3
  40. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts.map +1 -1
  41. package/lib/data-sources/data-sources.module.d.ts +11 -0
  42. package/lib/data-sources/data-sources.module.d.ts.map +1 -0
  43. package/lib/data-sources/index.d.ts +1 -0
  44. package/lib/data-sources/index.d.ts.map +1 -1
  45. package/lib/data-sources/shared/conditions.d.ts +7 -0
  46. package/lib/data-sources/shared/conditions.d.ts.map +1 -0
  47. package/lib/data-sources/shared/index.d.ts +2 -0
  48. package/lib/data-sources/shared/index.d.ts.map +1 -0
  49. package/lib/data-sources/task-count/components/index.d.ts +2 -0
  50. package/lib/data-sources/task-count/components/index.d.ts.map +1 -0
  51. package/lib/data-sources/task-count/components/task-count-configuration/index.d.ts +2 -0
  52. package/lib/data-sources/task-count/components/task-count-configuration/index.d.ts.map +1 -0
  53. package/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.d.ts +36 -0
  54. package/lib/data-sources/task-count/components/task-count-configuration/task-count-configuration.component.d.ts.map +1 -0
  55. package/lib/data-sources/task-count/index.d.ts +5 -0
  56. package/lib/data-sources/task-count/index.d.ts.map +1 -0
  57. package/lib/data-sources/task-count/models/index.d.ts +2 -0
  58. package/lib/data-sources/task-count/models/index.d.ts.map +1 -0
  59. package/lib/data-sources/task-count/models/task-count.model.d.ts +6 -0
  60. package/lib/data-sources/task-count/models/task-count.model.d.ts.map +1 -0
  61. package/lib/data-sources/task-count/task-count.module.d.ts +13 -0
  62. package/lib/data-sources/task-count/task-count.module.d.ts.map +1 -0
  63. package/lib/data-sources/task-count/task-count.specification.d.ts +3 -0
  64. package/lib/data-sources/task-count/task-count.specification.d.ts.map +1 -0
  65. package/lib/models/dashboard.model.d.ts +1 -0
  66. package/lib/models/dashboard.model.d.ts.map +1 -1
  67. package/package.json +1 -1
  68. package/public_api.d.ts +1 -0
  69. package/public_api.d.ts.map +1 -1
@@ -17,6 +17,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
17
17
  import { Operator, } from '../../../../models';
18
18
  import { BehaviorSubject, combineLatest, map, startWith, Subscription } from 'rxjs';
19
19
  import { Validators, } from '@angular/forms';
20
+ import { ValuePathSelectorPrefix } from '@valtimo/components';
20
21
  import { isEqual } from 'lodash';
21
22
  import * as i0 from "@angular/core";
22
23
  import * as i1 from "@angular/forms";
@@ -77,10 +78,10 @@ export class CaseGroupByConfigurationComponent {
77
78
  queryConditions: this.fb.control([], [this.queryConditionsValidator()]),
78
79
  enum: this.fb.control([], [this.enumValidator()]),
79
80
  });
80
- this._selectedDocumentDefinition$ = new BehaviorSubject('');
81
+ this.selectedDocumentDefinition$ = new BehaviorSubject('');
81
82
  this.documentItems$ = combineLatest([
82
83
  this.documentService.getAllDefinitions(),
83
- this._selectedDocumentDefinition$,
84
+ this.selectedDocumentDefinition$,
84
85
  ]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
85
86
  content: definition.id.name,
86
87
  selected: definition.id.name === selectedDocumentDefintion,
@@ -101,6 +102,7 @@ export class CaseGroupByConfigurationComponent {
101
102
  selected: false,
102
103
  }))));
103
104
  this.configurationEvent = new EventEmitter();
105
+ this.ValuePathSelectorPrefix = ValuePathSelectorPrefix;
104
106
  this._subscriptions = new Subscription();
105
107
  }
106
108
  ngOnInit() {
@@ -110,11 +112,12 @@ export class CaseGroupByConfigurationComponent {
110
112
  this._subscriptions.unsubscribe();
111
113
  }
112
114
  documentDefinitionSelected(documentDefinitionItem) {
113
- if (!documentDefinitionItem) {
115
+ const documentDefinitionName = documentDefinitionItem?.item?.content;
116
+ if (!documentDefinitionName) {
114
117
  return;
115
118
  }
116
- this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
117
- this.documentDefinition.setValue(documentDefinitionItem?.item?.content);
119
+ this.selectedDocumentDefinition$.next(documentDefinitionName);
120
+ this.documentDefinition.setValue(documentDefinitionName);
118
121
  }
119
122
  conditionsValueChange(values) {
120
123
  if (!values)
@@ -189,11 +192,11 @@ export class CaseGroupByConfigurationComponent {
189
192
  }));
190
193
  }
191
194
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseGroupByConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DocumentService }, { token: i3.TranslateService }, { token: i4.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseGroupByConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n formValue: formValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"path.dirty && path.invalid\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <input cdsText formControlName=\"path\" [invalid]=\"path.dirty && path.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i6.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseGroupByConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n formValue: formValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"full-width\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <valtimo-value-path-selector\n formControlName=\"path\"\n [documentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n ></valtimo-value-path-selector>\n </cds-label>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}::ng-deep .case-count-configuration-form .full-width,::ng-deep .case-count-configuration-form .full-width .cds--label{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i7.ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue"], outputs: ["valueChangeEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
193
196
  }
194
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseGroupByConfigurationComponent, decorators: [{
195
198
  type: Component,
196
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n formValue: formValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"path.dirty && path.invalid\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <input cdsText formControlName=\"path\" [invalid]=\"path.dirty && path.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
199
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n formValue: formValue$ | async,\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"full-width\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <valtimo-value-path-selector\n formControlName=\"path\"\n [documentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n ></valtimo-value-path-selector>\n </cds-label>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n type=\"valuePathSelectorDropdownValue\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n valuePathSelectorNotation=\"dots\"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC, ValuePathSelectorPrefix.CASE]\"\n [valuePathSelectorShowDocumentDefinitionSelector]=\"false\"\n [valuePathSelectorDocumentDefinitionName]=\"obs.selectedDocumentDefinition\"\n [keyColumnFlex]=\"2\"\n [dropdownColumnFlex]=\"1\"\n [valueColumnFlex]=\"1\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}::ng-deep .case-count-configuration-form .full-width,::ng-deep .case-count-configuration-form .full-width .cds--label{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
197
200
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DocumentService }, { type: i3.TranslateService }, { type: i4.WidgetTranslationService }], propDecorators: { dataSourceKey: [{
198
201
  type: Input
199
202
  }], disabled: [{
@@ -203,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
203
206
  }], configurationEvent: [{
204
207
  type: Output
205
208
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtZ3JvdXAtYnkvY29tcG9uZW50cy9jYXNlLWdyb3VwLWJ5LWNvbmZpZ3VyYXRpb24vY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtZ3JvdXAtYnkvY29tcG9uZW50cy9jYXNlLWdyb3VwLWJ5LWNvbmZpZ3VyYXRpb24vY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFFBQVEsR0FFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFLTCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQVd4QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7O0FBTy9CLE1BQU0sT0FBTyxpQ0FBaUM7SUFZNUMsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFX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QUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztZQUN4QixhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDakMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1NBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0F2TlUsaUNBQWlDO21HQUFqQyxpQ0FBaUMsMk5DeEQ5QyxxdEhBMkZBOzs0RkRuQ2EsaUNBQWlDO2tCQUw3QyxTQUFTO3NDQUVTLHVCQUF1QixDQUFDLE1BQU07b0xBTS9CLGFBQWE7c0JBQTVCLEtBQUs7Z0JBaUNjLFFBQVE7c0JBQTNCLEtBQUs7Z0JBMkNPLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFnQlcsa0JBQWtCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uT3V0cHV0LFxuICBEYXRhU291cmNlQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgT3BlcmF0b3IsXG4gIFF1ZXJ5Q29uZGl0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENhc2VHcm91cEJ5Q29uZmlndXJhdGlvbixcbiAgQ2FzZUdyb3VwQnlDb25maWd1cmF0aW9uRm9ybVZhbHVlLFxuICBDYXNlR3JvdXBCeUVudW0sXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0xpc3RJdGVtV2l0aElkLCBNdWx0aUlucHV0VmFsdWVzfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1dpZGdldFRyYW5zbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZ3JvdXAtYnktY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLWdyb3VwLWJ5LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUdyb3VwQnlDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhU291cmNlS2V5OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkb2N1bWVudERlZmluaXRpb246IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHBhdGg6IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5mYi5jb250cm9sKFtdLCBbdGhpcy5xdWVyeUNvbmRpdGlvbnNWYWxpZGF0b3IoKV0pLFxuICAgIGVudW06IHRoaXMuZmIuY29udHJvbChbXSwgW3RoaXMuZW51bVZhbGlkYXRvcigpXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgZG9jdW1lbnREZWZpbml0aW9uKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZG9jdW1lbnREZWZpbml0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhdGgoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdwYXRoJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5Q29uZGl0aW9ucygpOiBBYnN0cmFjdENvbnRyb2w8TXVsdGlJbnB1dFZhbHVlcz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUNvbmRpdGlvbnMnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW51bSgpOiBBYnN0cmFjdENvbnRyb2w8TXVsdGlJbnB1dFZhbHVlcz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdlbnVtJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtVmFsdWUkKCk6IE9ic2VydmFibGU8UGFydGlhbDxDYXNlR3JvdXBCeUNvbmZpZ3VyYXRpb25Gb3JtVmFsdWU+PiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlKSk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25zLCBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uXSkgPT5cbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBkZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBkZWZpbml0aW9uLmlkLm5hbWUgPT09IHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb24sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfT1BFUkFUT1JTOiBBcnJheTxPcGVyYXRvcj4gPSBbXG4gICAgT3BlcmF0b3IuTk9UX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkVRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTixcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgIC5zdHJlYW0oJ2tleScpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKCkgPT5cbiAgICAgICAgdGhpcy5fT1BFUkFUT1JTLm1hcChvcGVyYXRvciA9PiAoe1xuICAgICAgICAgIGlkOiBvcGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KG9wZXJhdG9yLCB0aGlzLmRhdGFTb3VyY2VLZXkpLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICBASW5wdXQoKSBzZXQgcHJlZmlsbENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvblZhbHVlOiBDYXNlR3JvdXBCeUNvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25WYWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCh7XG4gICAgICBpdGVtOiB7XG4gICAgICAgIGNvbnRlbnQ6IGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24sXG4gICAgICB9LFxuICAgIH0gYXMgYW55KTtcblxuICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnBhdGNoVmFsdWUoXG4gICAgICB0aGlzLnF1ZXJ5Q29uZGl0aW9uc1RvTXVsdGlJbnB1dFZhbHVlcyhjb25maWd1cmF0aW9uVmFsdWUucXVlcnlDb25kaXRpb25zKVxuICAgICk7XG4gICAgdGhpcy5lbnVtLnBhdGNoVmFsdWUodGhpcy5lbnVtVG9NdWx0aUlucHV0VmFsdWVzKGNvbmZpZ3VyYXRpb25WYWx1ZS5lbnVtKSk7XG4gICAgdGhpcy5wYXRoLnBhdGNoVmFsdWUoY29uZmlndXJhdGlvblZhbHVlLnBhdGgpO1xuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb25maWd1cmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIENvbmZpZ3VyYXRpb25PdXRwdXQ8Q2FzZUdyb3VwQnlDb25maWd1cmF0aW9uPlxuICA+KCk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFRyYW5zbGF0aW9uU2VydmljZTogV2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRm9ybVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb2N1bWVudERlZmluaXRpb25TZWxlY3RlZChkb2N1bWVudERlZmluaXRpb25JdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIGlmICghZG9jdW1lbnREZWZpbml0aW9uSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJC5uZXh0KGRvY3VtZW50RGVmaW5pdGlvbkl0ZW0/Lml0ZW0/LmNvbnRlbnQpO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uLnNldFZhbHVlKGRvY3VtZW50RGVmaW5pdGlvbkl0ZW0/Lml0ZW0/LmNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIGNvbmRpdGlvbnNWYWx1ZUNoYW5nZSh2YWx1ZXM6IE11bHRpSW5wdXRWYWx1ZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlcykgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5xdWVyeUNvbmRpdGlvbnMudmFsdWU7XG5cbiAgICBpZiAoaXNFcXVhbCh2YWx1ZXMsIGN1cnJlbnRWYWx1ZSkpIHJldHVybjtcblxuICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnBhdGNoVmFsdWUodmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbnVtVmFsdWVDaGFuZ2UodmFsdWVzOiBNdWx0aUlucHV0VmFsdWVzKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZXMpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZW51bS52YWx1ZTtcblxuICAgIGlmIChpc0VxdWFsKHZhbHVlcywgY3VycmVudFZhbHVlKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5lbnVtLnBhdGNoVmFsdWUodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25FdmVudC5lbWl0KHtcbiAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICAgICAgICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5tdWx0aUlucHV0VmFsdWVzVG9RdWVyeUNvbmRpdGlvbnMoZm9ybVZhbHVlLnF1ZXJ5Q29uZGl0aW9ucyksXG4gICAgICAgICAgICBlbnVtOiB0aGlzLm11bHRpSW5wdXRWYWx1ZXNUb0VudW0oZm9ybVZhbHVlLmVudW0pLFxuICAgICAgICAgIH0gYXMgQ2FzZUdyb3VwQnlDb25maWd1cmF0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcXVlcnlDb25kaXRpb25zVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxNdWx0aUlucHV0VmFsdWVzPik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5Q29uZGl0aW9ucyA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBjb25zdCB2YWxpZENvbmRpdGlvbnMgPSBxdWVyeUNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgICBjb25kaXRpb24gPT4gISFjb25kaXRpb24udmFsdWUgJiYgISFjb25kaXRpb24ua2V5ICYmICEhY29uZGl0aW9uLmRyb3Bkb3duXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdmFsaWRDb25kaXRpb25zLmxlbmd0aCA9PT0gcXVlcnlDb25kaXRpb25zLmxlbmd0aFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpbnZhbGlkUXVlcnlJdGVtczogJ2ludmFsaWQnLFxuICAgICAgICAgIH07XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZW51bVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8TXVsdGlJbnB1dFZhbHVlcz4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBlbnVtZXJhdGlvbiA9IGNvbnRyb2wudmFsdWUgfHwgW107XG4gICAgICBjb25zdCBlbnVtTGVuZ3RoID0gZW51bWVyYXRpb24ubGVuZ3RoO1xuICAgICAgY29uc3QgdmFsaWRFbnVtS2V5c0xlbmd0aCA9IGVudW1lcmF0aW9uLmZpbHRlcihlbnRyeSA9PiAhIWVudHJ5LmtleSkubGVuZ3RoO1xuICAgICAgY29uc3QgdmFsaWRFbnVtVmFsdWVzTGVuZ3RoID0gZW51bWVyYXRpb24uZmlsdGVyKGVudHJ5ID0+ICEhZW50cnkudmFsdWUpLmxlbmd0aDtcblxuICAgICAgcmV0dXJuIGVudW1MZW5ndGggPT09IHZhbGlkRW51bUtleXNMZW5ndGggJiYgZW51bUxlbmd0aCA9PT0gdmFsaWRFbnVtVmFsdWVzTGVuZ3RoXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGludmFsaWRFbnVtOiAnaW52YWxpZCcsXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlbnVtVG9NdWx0aUlucHV0VmFsdWVzKGVudW1lcmF0aW9uPzogQ2FzZUdyb3VwQnlFbnVtKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1lcmF0aW9uIHx8IHt9KS5yZWR1Y2UoXG4gICAgICAoYWNjLCBrZXkpID0+IFsuLi5hY2MsIHtrZXksIHZhbHVlOiBlbnVtZXJhdGlvbltrZXldfV0sXG4gICAgICBbXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpSW5wdXRWYWx1ZXNUb0VudW0odmFsdWVzPzogTXVsdGlJbnB1dFZhbHVlcyk6IENhc2VHcm91cEJ5RW51bSB7XG4gICAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiAoey4uLmFjYywgW2N1cnIua2V5XTogY3Vyci52YWx1ZX0pLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5Q29uZGl0aW9uc1RvTXVsdGlJbnB1dFZhbHVlcyhxdWVyeUNvbmRpdGlvbnM/OiBRdWVyeUNvbmRpdGlvbltdKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgcmV0dXJuIChxdWVyeUNvbmRpdGlvbnMgfHwgW10pLm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgIGRyb3Bkb3duOiBjb25kaXRpb24ucXVlcnlPcGVyYXRvcixcbiAgICAgIHZhbHVlOiBjb25kaXRpb24ucXVlcnlWYWx1ZSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpSW5wdXRWYWx1ZXNUb1F1ZXJ5Q29uZGl0aW9ucyh2YWx1ZXM/OiBNdWx0aUlucHV0VmFsdWVzKTogUXVlcnlDb25kaXRpb25bXSB7XG4gICAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIHF1ZXJ5UGF0aDogY29uZGl0aW9uLmtleSxcbiAgICAgIHF1ZXJ5T3BlcmF0b3I6IGNvbmRpdGlvbi5kcm9wZG93bixcbiAgICAgIHF1ZXJ5VmFsdWU6IGNvbmRpdGlvbi52YWx1ZSxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGZvcm1cbiAgY2xhc3M9XCJjYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24tZm9ybVwiXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50SXRlbXM6IGRvY3VtZW50SXRlbXMkIHwgYXN5bmMsXG4gICAgb3BlcmF0b3JJdGVtczogb3BlcmF0b3JJdGVtcyQsXG4gICAgZm9ybVZhbHVlOiBmb3JtVmFsdWUkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtpbnZhbGlkVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZF09XCJkb2N1bWVudERlZmluaXRpb24uZGlydHkgJiYgZG9jdW1lbnREZWZpbml0aW9uLmludmFsaWRcIlxuICAgICAgW2xhYmVsXT1cIidkb2N1bWVudERlZmluaXRpb24nIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdGVkKT1cImRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzPy5kb2N1bWVudEl0ZW1zIHx8IFtdXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1kcm9wZG93bj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICA8Y2RzLWxhYmVsXG4gICAgICBbaGVscGVyVGV4dF09XCIncGF0aEhlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2ludmFsaWRUZXh0XT1cIidwYXRoSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZF09XCJwYXRoLmRpcnR5ICYmIHBhdGguaW52YWxpZFwiXG4gICAgPlxuICAgICAge3sgJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmMgfX1cblxuICAgICAgPGlucHV0IGNkc1RleHQgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIFtpbnZhbGlkXT1cInBhdGguZGlydHkgJiYgcGF0aC5pbnZhbGlkXCIgLz5cbiAgICA8L2Nkcy1sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnQgY29uZGl0aW9ucy1tdWx0aS1pbnB1dFwiPlxuICAgIDxjZHMtbGFiZWxcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidjb25kaXRpb25zSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBjbGFzcz1cImNvbmRpdGlvbnMtbGFiZWxcIlxuICAgICAgPnt7ICdjb25kaXRpb25zJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jIH19PC9jZHMtbGFiZWxcbiAgICA+XG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICBbYWRkUm93VGV4dF09XCInYWRkQ29uZGl0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtkZWZhdWx0VmFsdWVzXT1cIm9icy5mb3JtVmFsdWU/LnF1ZXJ5Q29uZGl0aW9uc1wiXG4gICAgICBbZHJvcGRvd25Db2x1bW5UaXRsZV09XCInb3BlcmF0b3InIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2Ryb3Bkb3duSXRlbXNdPVwib3BlcmF0b3JJdGVtcyQgfCBhc3luY1wiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2luaXRpYWxBbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCIndmFsdWUnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgdHlwZT1cImtleURyb3Bkb3duVmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImNvbmRpdGlvbnNWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnQgY29uZGl0aW9ucy1tdWx0aS1pbnB1dFwiPlxuICAgIDxjZHMtbGFiZWxcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidlbnVtSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBjbGFzcz1cImNvbmRpdGlvbnMtbGFiZWxcIlxuICAgICAgPnt7ICdlbnVtJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jIH19PC9jZHMtbGFiZWxcbiAgICA+XG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICBbYWRkUm93VGV4dF09XCInYWRkRGlzcGxheScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMuZm9ybVZhbHVlPy5lbnVtXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFtrZXlDb2x1bW5UaXRsZV09XCIndmFsdWUnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCInZGlzcGxheVZhbHVlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIHR5cGU9XCJrZXlWYWx1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZW51bVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtZ3JvdXAtYnkvY29tcG9uZW50cy9jYXNlLWdyb3VwLWJ5LWNvbmZpZ3VyYXRpb24vY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtZ3JvdXAtYnkvY29tcG9uZW50cy9jYXNlLWdyb3VwLWJ5LWNvbmZpZ3VyYXRpb24vY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFFBQVEsR0FFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFLTCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQVF4QixPQUFPLEVBQW1DLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHOUYsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7OztBQU8vQixNQUFNLE9BQU8saUNBQWlDO0lBWTVDLElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxH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S0FBSyxFQUFFLFNBQVMsQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGlDQUFpQyxDQUFDLE1BQXlCO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QyxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7WUFDeEIsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSztTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7K0dBM05VLGlDQUFpQzttR0FBakMsaUNBQWlDLDJOQ3hEOUMsazBJQXVHQTs7NEZEL0NhLGlDQUFpQztrQkFMN0MsU0FBUztzQ0FFUyx1QkFBdUIsQ0FBQyxNQUFNO29MQU0vQixhQUFhO3NCQUE1QixLQUFLO2dCQWlDYyxRQUFRO3NCQUEzQixLQUFLO2dCQTJDTyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBZ0JXLGtCQUFrQjtzQkFBbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbk91dHB1dCxcbiAgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gIE9wZXJhdG9yLFxuICBRdWVyeUNvbmRpdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDYXNlR3JvdXBCeUNvbmZpZ3VyYXRpb24sXG4gIENhc2VHcm91cEJ5Q29uZmlndXJhdGlvbkZvcm1WYWx1ZSxcbiAgQ2FzZUdyb3VwQnlFbnVtLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtMaXN0SXRlbVdpdGhJZCwgTXVsdGlJbnB1dFZhbHVlcywgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXh9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1ncm91cC1ieS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZ3JvdXAtYnktY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlR3JvdXBCeUNvbmZpZ3VyYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnRcbntcbiAgQElucHV0KCkgcHVibGljIGRhdGFTb3VyY2VLZXk6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIGRvY3VtZW50RGVmaW5pdGlvbjogdGhpcy5mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgcGF0aDogdGhpcy5mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgcXVlcnlDb25kaXRpb25zOiB0aGlzLmZiLmNvbnRyb2woW10sIFt0aGlzLnF1ZXJ5Q29uZGl0aW9uc1ZhbGlkYXRvcigpXSksXG4gICAgZW51bTogdGhpcy5mYi5jb250cm9sKFtdLCBbdGhpcy5lbnVtVmFsaWRhdG9yKCldKSxcbiAgfSk7XG5cbiAgcHVibGljIGdldCBkb2N1bWVudERlZmluaXRpb24oKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkb2N1bWVudERlZmluaXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF0aCgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3BhdGgnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlDb25kaXRpb25zKCk6IEFic3RyYWN0Q29udHJvbDxNdWx0aUlucHV0VmFsdWVzPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3F1ZXJ5Q29uZGl0aW9ucycpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnVtKCk6IEFic3RyYWN0Q29udHJvbDxNdWx0aUlucHV0VmFsdWVzPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2VudW0nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1WYWx1ZSQoKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPENhc2VHcm91cEJ5Q29uZmlndXJhdGlvbkZvcm1WYWx1ZT4+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzYWJsZWRWYWx1ZTogYm9vbGVhbikge1xuICAgIGlmIChkaXNhYmxlZFZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2RvY3VtZW50RGVmaW5pdGlvbnMsIHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb25dKSA9PlxuICAgICAgZG9jdW1lbnREZWZpbml0aW9ucy5jb250ZW50Lm1hcChkZWZpbml0aW9uID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGRlZmluaXRpb24uaWQubmFtZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGRlZmluaXRpb24uaWQubmFtZSA9PT0gc2VsZWN0ZWREb2N1bWVudERlZmludGlvbixcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9PUEVSQVRPUlM6IEFycmF5PE9wZXJhdG9yPiA9IFtcbiAgICBPcGVyYXRvci5OT1RfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuR1JFQVRFUl9USEFOLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UTyxcbiAgICBPcGVyYXRvci5MRVNTX1RIQU4sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOX09SX0VRVUFMX1RPLFxuICBdO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcGVyYXRvckl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbVdpdGhJZD4+ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgLnN0cmVhbSgna2V5JylcbiAgICAucGlwZShcbiAgICAgIG1hcCgoKSA9PlxuICAgICAgICB0aGlzLl9PUEVSQVRPUlMubWFwKG9wZXJhdG9yID0+ICh7XG4gICAgICAgICAgaWQ6IG9wZXJhdG9yLFxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMud2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQob3BlcmF0b3IsIHRoaXMuZGF0YVNvdXJjZUtleSksXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gIEBJbnB1dCgpIHNldCBwcmVmaWxsQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uVmFsdWU6IENhc2VHcm91cEJ5Q29uZmlndXJhdGlvbikge1xuICAgIGlmICghY29uZmlndXJhdGlvblZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKHtcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgY29udGVudDogY29uZmlndXJhdGlvblZhbHVlLmRvY3VtZW50RGVmaW5pdGlvbixcbiAgICAgIH0sXG4gICAgfSBhcyBhbnkpO1xuXG4gICAgdGhpcy5xdWVyeUNvbmRpdGlvbnMucGF0Y2hWYWx1ZShcbiAgICAgIHRoaXMucXVlcnlDb25kaXRpb25zVG9NdWx0aUlucHV0VmFsdWVzKGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUNvbmRpdGlvbnMpXG4gICAgKTtcbiAgICB0aGlzLmVudW0ucGF0Y2hWYWx1ZSh0aGlzLmVudW1Ub011bHRpSW5wdXRWYWx1ZXMoY29uZmlndXJhdGlvblZhbHVlLmVudW0pKTtcbiAgICB0aGlzLnBhdGgucGF0Y2hWYWx1ZShjb25maWd1cmF0aW9uVmFsdWUucGF0aCk7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIGNvbmZpZ3VyYXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQ29uZmlndXJhdGlvbk91dHB1dDxDYXNlR3JvdXBCeUNvbmZpZ3VyYXRpb24+XG4gID4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXggPSBWYWx1ZVBhdGhTZWxlY3RvclByZWZpeDtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlOiBXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKGRvY3VtZW50RGVmaW5pdGlvbkl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9IGRvY3VtZW50RGVmaW5pdGlvbkl0ZW0/Lml0ZW0/LmNvbnRlbnQ7XG5cbiAgICBpZiAoIWRvY3VtZW50RGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJC5uZXh0KGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpO1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uLnNldFZhbHVlKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpO1xuICB9XG5cbiAgcHVibGljIGNvbmRpdGlvbnNWYWx1ZUNoYW5nZSh2YWx1ZXM6IE11bHRpSW5wdXRWYWx1ZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlcykgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5xdWVyeUNvbmRpdGlvbnMudmFsdWU7XG5cbiAgICBpZiAoaXNFcXVhbCh2YWx1ZXMsIGN1cnJlbnRWYWx1ZSkpIHJldHVybjtcblxuICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnBhdGNoVmFsdWUodmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbnVtVmFsdWVDaGFuZ2UodmFsdWVzOiBNdWx0aUlucHV0VmFsdWVzKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZXMpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZW51bS52YWx1ZTtcblxuICAgIGlmIChpc0VxdWFsKHZhbHVlcywgY3VycmVudFZhbHVlKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5lbnVtLnBhdGNoVmFsdWUodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25FdmVudC5lbWl0KHtcbiAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICAgICAgICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5tdWx0aUlucHV0VmFsdWVzVG9RdWVyeUNvbmRpdGlvbnMoZm9ybVZhbHVlLnF1ZXJ5Q29uZGl0aW9ucyksXG4gICAgICAgICAgICBlbnVtOiB0aGlzLm11bHRpSW5wdXRWYWx1ZXNUb0VudW0oZm9ybVZhbHVlLmVudW0pLFxuICAgICAgICAgIH0gYXMgQ2FzZUdyb3VwQnlDb25maWd1cmF0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcXVlcnlDb25kaXRpb25zVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxNdWx0aUlucHV0VmFsdWVzPik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5Q29uZGl0aW9ucyA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBjb25zdCB2YWxpZENvbmRpdGlvbnMgPSBxdWVyeUNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgICBjb25kaXRpb24gPT4gISFjb25kaXRpb24udmFsdWUgJiYgISFjb25kaXRpb24ua2V5ICYmICEhY29uZGl0aW9uLmRyb3Bkb3duXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdmFsaWRDb25kaXRpb25zLmxlbmd0aCA9PT0gcXVlcnlDb25kaXRpb25zLmxlbmd0aFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpbnZhbGlkUXVlcnlJdGVtczogJ2ludmFsaWQnLFxuICAgICAgICAgIH07XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZW51bVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8TXVsdGlJbnB1dFZhbHVlcz4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBlbnVtZXJhdGlvbiA9IGNvbnRyb2wudmFsdWUgfHwgW107XG4gICAgICBjb25zdCBlbnVtTGVuZ3RoID0gZW51bWVyYXRpb24ubGVuZ3RoO1xuICAgICAgY29uc3QgdmFsaWRFbnVtS2V5c0xlbmd0aCA9IGVudW1lcmF0aW9uLmZpbHRlcihlbnRyeSA9PiAhIWVudHJ5LmtleSkubGVuZ3RoO1xuICAgICAgY29uc3QgdmFsaWRFbnVtVmFsdWVzTGVuZ3RoID0gZW51bWVyYXRpb24uZmlsdGVyKGVudHJ5ID0+ICEhZW50cnkudmFsdWUpLmxlbmd0aDtcblxuICAgICAgcmV0dXJuIGVudW1MZW5ndGggPT09IHZhbGlkRW51bUtleXNMZW5ndGggJiYgZW51bUxlbmd0aCA9PT0gdmFsaWRFbnVtVmFsdWVzTGVuZ3RoXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGludmFsaWRFbnVtOiAnaW52YWxpZCcsXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlbnVtVG9NdWx0aUlucHV0VmFsdWVzKGVudW1lcmF0aW9uPzogQ2FzZUdyb3VwQnlFbnVtKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1lcmF0aW9uIHx8IHt9KS5yZWR1Y2UoXG4gICAgICAoYWNjLCBrZXkpID0+IFsuLi5hY2MsIHtrZXksIHZhbHVlOiBlbnVtZXJhdGlvbltrZXldfV0sXG4gICAgICBbXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpSW5wdXRWYWx1ZXNUb0VudW0odmFsdWVzPzogTXVsdGlJbnB1dFZhbHVlcyk6IENhc2VHcm91cEJ5RW51bSB7XG4gICAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiAoey4uLmFjYywgW2N1cnIua2V5XTogY3Vyci52YWx1ZX0pLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5Q29uZGl0aW9uc1RvTXVsdGlJbnB1dFZhbHVlcyhxdWVyeUNvbmRpdGlvbnM/OiBRdWVyeUNvbmRpdGlvbltdKTogTXVsdGlJbnB1dFZhbHVlcyB7XG4gICAgcmV0dXJuIChxdWVyeUNvbmRpdGlvbnMgfHwgW10pLm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgIGRyb3Bkb3duOiBjb25kaXRpb24ucXVlcnlPcGVyYXRvcixcbiAgICAgIHZhbHVlOiBjb25kaXRpb24ucXVlcnlWYWx1ZSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpSW5wdXRWYWx1ZXNUb1F1ZXJ5Q29uZGl0aW9ucyh2YWx1ZXM/OiBNdWx0aUlucHV0VmFsdWVzKTogUXVlcnlDb25kaXRpb25bXSB7XG4gICAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIHF1ZXJ5UGF0aDogY29uZGl0aW9uLmtleSxcbiAgICAgIHF1ZXJ5T3BlcmF0b3I6IGNvbmRpdGlvbi5kcm9wZG93bixcbiAgICAgIHF1ZXJ5VmFsdWU6IGNvbmRpdGlvbi52YWx1ZSxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGZvcm1cbiAgY2xhc3M9XCJjYXNlLWNvdW50LWNvbmZpZ3VyYXRpb24tZm9ybVwiXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50SXRlbXM6IGRvY3VtZW50SXRlbXMkIHwgYXN5bmMsXG4gICAgb3BlcmF0b3JJdGVtczogb3BlcmF0b3JJdGVtcyQsXG4gICAgc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb246IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIGZvcm1WYWx1ZTogZm9ybVZhbHVlJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgW2FwcGVuZElubGluZV09XCJ0cnVlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50RGVmaW5pdGlvblwiXG4gICAgICBbaGVscGVyVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZFRleHRdPVwiJ2RvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2ludmFsaWRdPVwiZG9jdW1lbnREZWZpbml0aW9uLmRpcnR5ICYmIGRvY3VtZW50RGVmaW5pdGlvbi5pbnZhbGlkXCJcbiAgICAgIFtsYWJlbF09XCInZG9jdW1lbnREZWZpbml0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RlZCk9XCJkb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icz8uZG9jdW1lbnRJdGVtcyB8fCBbXVwiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgPGNkcy1sYWJlbFxuICAgICAgW2hlbHBlclRleHRdPVwiJ3BhdGhIZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtpbnZhbGlkVGV4dF09XCIncGF0aEhlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoXCJcbiAgICA+XG4gICAgICB7eyAncGF0aCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luYyB9fVxuXG4gICAgICA8dmFsdGltby12YWx1ZS1wYXRoLXNlbGVjdG9yXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhdGhcIlxuICAgICAgICBbZG9jdW1lbnREZWZpbml0aW9uTmFtZV09XCJvYnMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25cIlxuICAgICAgICBbcHJlZml4ZXNdPVwiW1ZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LkRPQywgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXguQ0FTRV1cIlxuICAgICAgPjwvdmFsdGltby12YWx1ZS1wYXRoLXNlbGVjdG9yPlxuICAgIDwvY2RzLWxhYmVsPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybV9fZWxlbWVudCBjb25kaXRpb25zLW11bHRpLWlucHV0XCI+XG4gICAgPGNkcy1sYWJlbFxuICAgICAgW2hlbHBlclRleHRdPVwiJ2NvbmRpdGlvbnNIZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIGNsYXNzPVwiY29uZGl0aW9ucy1sYWJlbFwiXG4gICAgICA+e3sgJ2NvbmRpdGlvbnMnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmMgfX08L2Nkcy1sYWJlbFxuICAgID5cbiAgICA8dmFsdGltby1jYXJib24tbXVsdGktaW5wdXRcbiAgICAgIHR5cGU9XCJ2YWx1ZVBhdGhTZWxlY3RvckRyb3Bkb3duVmFsdWVcIlxuICAgICAgW2FkZFJvd1RleHRdPVwiJ2FkZENvbmRpdGlvbicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMuZm9ybVZhbHVlPy5xdWVyeUNvbmRpdGlvbnNcIlxuICAgICAgW2Ryb3Bkb3duQ29sdW1uVGl0bGVdPVwiJ29wZXJhdG9yJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFtkcm9wZG93bkl0ZW1zXT1cIm9wZXJhdG9ySXRlbXMkIHwgYXN5bmNcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgIFtpbml0aWFsQW1vdW50T2ZSb3dzXT1cIjBcIlxuICAgICAgW2tleUNvbHVtblRpdGxlXT1cIidwYXRoJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjBcIlxuICAgICAgW3ZhbHVlQ29sdW1uVGl0bGVdPVwiJ3ZhbHVlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIHZhbHVlUGF0aFNlbGVjdG9yTm90YXRpb249XCJkb3RzXCJcbiAgICAgIFt2YWx1ZVBhdGhTZWxlY3RvclByZWZpeGVzXT1cIltWYWx1ZVBhdGhTZWxlY3RvclByZWZpeC5ET0MsIFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LkNBU0VdXCJcbiAgICAgIFt2YWx1ZVBhdGhTZWxlY3RvclNob3dEb2N1bWVudERlZmluaXRpb25TZWxlY3Rvcl09XCJmYWxzZVwiXG4gICAgICBbdmFsdWVQYXRoU2VsZWN0b3JEb2N1bWVudERlZmluaXRpb25OYW1lXT1cIm9icy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvblwiXG4gICAgICBba2V5Q29sdW1uRmxleF09XCIyXCJcbiAgICAgIFtkcm9wZG93bkNvbHVtbkZsZXhdPVwiMVwiXG4gICAgICBbdmFsdWVDb2x1bW5GbGV4XT1cIjFcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImNvbmRpdGlvbnNWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnQgY29uZGl0aW9ucy1tdWx0aS1pbnB1dFwiPlxuICAgIDxjZHMtbGFiZWxcbiAgICAgIFtoZWxwZXJUZXh0XT1cIidlbnVtSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBjbGFzcz1cImNvbmRpdGlvbnMtbGFiZWxcIlxuICAgICAgPnt7ICdlbnVtJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jIH19PC9jZHMtbGFiZWxcbiAgICA+XG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICBbYWRkUm93VGV4dF09XCInYWRkRGlzcGxheScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMuZm9ybVZhbHVlPy5lbnVtXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFtrZXlDb2x1bW5UaXRsZV09XCIndmFsdWUnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCInZGlzcGxheVZhbHVlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIHR5cGU9XCJrZXlWYWx1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZW51bVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CaseCountDataSourceModule } from './case-count';
3
+ import { CaseCountsDataSourceModule } from './case-counts';
4
+ import { CaseGroupByDataSourceModule } from './case-group-by';
5
+ import { TaskCountDataSourceModule } from './task-count';
6
+ import * as i0 from "@angular/core";
7
+ export class DataSourcesModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataSourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DataSourcesModule, imports: [CaseCountDataSourceModule,
10
+ CaseCountsDataSourceModule,
11
+ CaseGroupByDataSourceModule,
12
+ TaskCountDataSourceModule] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataSourcesModule, imports: [CaseCountDataSourceModule,
14
+ CaseCountsDataSourceModule,
15
+ CaseGroupByDataSourceModule,
16
+ TaskCountDataSourceModule] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataSourcesModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [
22
+ CaseCountDataSourceModule,
23
+ CaseCountsDataSourceModule,
24
+ CaseGroupByDataSourceModule,
25
+ TaskCountDataSourceModule,
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2RhdGEtc291cmNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFVdkQsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsWUFOMUIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IseUJBQXlCO2dIQUdoQixpQkFBaUIsWUFOMUIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IseUJBQXlCOzs0RkFHaEIsaUJBQWlCO2tCQVI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Nhc2VDb3VudERhdGFTb3VyY2VNb2R1bGV9IGZyb20gJy4vY2FzZS1jb3VudCc7XG5pbXBvcnQge0Nhc2VDb3VudHNEYXRhU291cmNlTW9kdWxlfSBmcm9tICcuL2Nhc2UtY291bnRzJztcbmltcG9ydCB7Q2FzZUdyb3VwQnlEYXRhU291cmNlTW9kdWxlfSBmcm9tICcuL2Nhc2UtZ3JvdXAtYnknO1xuaW1wb3J0IHtUYXNrQ291bnREYXRhU291cmNlTW9kdWxlfSBmcm9tICcuL3Rhc2stY291bnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ2FzZUNvdW50RGF0YVNvdXJjZU1vZHVsZSxcbiAgICBDYXNlQ291bnRzRGF0YVNvdXJjZU1vZHVsZSxcbiAgICBDYXNlR3JvdXBCeURhdGFTb3VyY2VNb2R1bGUsXG4gICAgVGFza0NvdW50RGF0YVNvdXJjZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZXNNb2R1bGUge31cbiJdfQ==
@@ -16,4 +16,5 @@
16
16
  export * from './case-count';
17
17
  export * from './case-counts';
18
18
  export * from './case-group-by';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtY291bnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWNvdW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZ3JvdXAtYnknO1xuIl19
19
+ export * from './task-count';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtY291bnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWNvdW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZ3JvdXAtYnknO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWNvdW50JztcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ const CONDITIONS_HELPER_TEXTS = {
17
+ DE: (example = 'case:createdBy') => `Zum Beispiel: ‘${example}’, ‘Not equal to’, ‘test@test.com’. Um mit leeren Werten zu vergleichen, kann ‘\${null}’ als Wert verwendet werden. Um mit dem aktuellen Datum zu vergleichen, kann ‘\${localDateTimeNow}’ als Wert verwendet werden. Zusätzlich wird Logik wie ‘\${localDateTimeNow.minusWeeks(2)}’ unterstützt. Die Platzhalter ‘\${currentUserId}’, ‘\${currentUserEmail}’ und ‘\${currentUserIdentifier}’ ermöglichen die Anzeige personalisierter Informationen für den aktuellen Dashboard-Benutzer.`,
18
+ NL: (example = 'case:createdBy') => `Bijvoorbeeld: ‘${example}’, ‘Not equal to’, ‘test@test.com’. Om te vergelijken met lege waarden, kun je ‘\${null}’ gebruiken als waarde. Om te vergelijken met de huidige datum, gebruik je ‘\${localDateTimeNow}’ als waarde. Hier wordt logica zoals ‘\${localDateTimeNow.minusWeeks(2)}’ ondersteund. De placeholders ‘\${currentUserId}’, ‘\${currentUserEmail}’ en ‘\${currentUserIdentifier}’ maken het mogelijk om gepersonaliseerde informatie weer te geven voor de huidige dashboardgebruiker.`,
19
+ EN: (example = 'case:createdBy') => `For example: '${example}', 'Not equal to', 'test@test.com'. To compare against empty values, you can use '\${null}' as a value. To compare with the current date, use '\${localDateTimeNow}' as a value. Additionally, logic such as '\${localDateTimeNow.minusWeeks(2)}' is supported. The placeholders '\${currentUserId}', '\${currentUserEmail}', and '\${currentUserIdentifier}' enable the display of personalized information for the current dashboard user.`,
20
+ };
21
+ export { CONDITIONS_HELPER_TEXTS };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL3NoYXJlZC9jb25kaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxDQUNqQyxrQkFBa0IsT0FBTyw0ZEFBNGQ7SUFDdmYsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLGdCQUFnQixFQUFFLEVBQUUsQ0FDakMsa0JBQWtCLE9BQU8saWRBQWlkO0lBQzVlLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQ2pDLGlCQUFpQixPQUFPLDhhQUE4YTtDQUN6YyxDQUFDO0FBRUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5jb25zdCBDT05ESVRJT05TX0hFTFBFUl9URVhUUyA9IHtcbiAgREU6IChleGFtcGxlID0gJ2Nhc2U6Y3JlYXRlZEJ5JykgPT5cbiAgICBgWnVtIEJlaXNwaWVsOiDigJgke2V4YW1wbGV94oCZLCDigJhOb3QgZXF1YWwgdG/igJksIOKAmHRlc3RAdGVzdC5jb23igJkuIFVtIG1pdCBsZWVyZW4gV2VydGVuIHp1IHZlcmdsZWljaGVuLCBrYW5uIOKAmFxcJHtudWxsfeKAmSBhbHMgV2VydCB2ZXJ3ZW5kZXQgd2VyZGVuLiBVbSBtaXQgZGVtIGFrdHVlbGxlbiBEYXR1bSB6dSB2ZXJnbGVpY2hlbiwga2FubiDigJhcXCR7bG9jYWxEYXRlVGltZU5vd33igJkgYWxzIFdlcnQgdmVyd2VuZGV0IHdlcmRlbi4gWnVzw6R0emxpY2ggd2lyZCBMb2dpayB3aWUg4oCYXFwke2xvY2FsRGF0ZVRpbWVOb3cubWludXNXZWVrcygyKX3igJkgdW50ZXJzdMO8dHp0LiBEaWUgUGxhdHpoYWx0ZXIg4oCYXFwke2N1cnJlbnRVc2VySWR94oCZLCDigJhcXCR7Y3VycmVudFVzZXJFbWFpbH3igJkgdW5kIOKAmFxcJHtjdXJyZW50VXNlcklkZW50aWZpZXJ94oCZIGVybcO2Z2xpY2hlbiBkaWUgQW56ZWlnZSBwZXJzb25hbGlzaWVydGVyIEluZm9ybWF0aW9uZW4gZsO8ciBkZW4gYWt0dWVsbGVuIERhc2hib2FyZC1CZW51dHplci5gLFxuICBOTDogKGV4YW1wbGUgPSAnY2FzZTpjcmVhdGVkQnknKSA9PlxuICAgIGBCaWp2b29yYmVlbGQ6IOKAmCR7ZXhhbXBsZX3igJksIOKAmE5vdCBlcXVhbCB0b+KAmSwg4oCYdGVzdEB0ZXN0LmNvbeKAmS4gT20gdGUgdmVyZ2VsaWprZW4gbWV0IGxlZ2Ugd2FhcmRlbiwga3VuIGplIOKAmFxcJHtudWxsfeKAmSBnZWJydWlrZW4gYWxzIHdhYXJkZS4gT20gdGUgdmVyZ2VsaWprZW4gbWV0IGRlIGh1aWRpZ2UgZGF0dW0sIGdlYnJ1aWsgamUg4oCYXFwke2xvY2FsRGF0ZVRpbWVOb3d94oCZIGFscyB3YWFyZGUuIEhpZXIgd29yZHQgbG9naWNhIHpvYWxzIOKAmFxcJHtsb2NhbERhdGVUaW1lTm93Lm1pbnVzV2Vla3MoMil94oCZIG9uZGVyc3RldW5kLiBEZSBwbGFjZWhvbGRlcnMg4oCYXFwke2N1cnJlbnRVc2VySWR94oCZLCDigJhcXCR7Y3VycmVudFVzZXJFbWFpbH3igJkgZW4g4oCYXFwke2N1cnJlbnRVc2VySWRlbnRpZmllcn3igJkgbWFrZW4gaGV0IG1vZ2VsaWprIG9tIGdlcGVyc29uYWxpc2VlcmRlIGluZm9ybWF0aWUgd2VlciB0ZSBnZXZlbiB2b29yIGRlIGh1aWRpZ2UgZGFzaGJvYXJkZ2VicnVpa2VyLmAsXG4gIEVOOiAoZXhhbXBsZSA9ICdjYXNlOmNyZWF0ZWRCeScpID0+XG4gICAgYEZvciBleGFtcGxlOiAnJHtleGFtcGxlfScsICdOb3QgZXF1YWwgdG8nLCAndGVzdEB0ZXN0LmNvbScuIFRvIGNvbXBhcmUgYWdhaW5zdCBlbXB0eSB2YWx1ZXMsIHlvdSBjYW4gdXNlICdcXCR7bnVsbH0nIGFzIGEgdmFsdWUuIFRvIGNvbXBhcmUgd2l0aCB0aGUgY3VycmVudCBkYXRlLCB1c2UgJ1xcJHtsb2NhbERhdGVUaW1lTm93fScgYXMgYSB2YWx1ZS4gQWRkaXRpb25hbGx5LCBsb2dpYyBzdWNoIGFzICdcXCR7bG9jYWxEYXRlVGltZU5vdy5taW51c1dlZWtzKDIpfScgaXMgc3VwcG9ydGVkLiBUaGUgcGxhY2Vob2xkZXJzICdcXCR7Y3VycmVudFVzZXJJZH0nLCAnXFwke2N1cnJlbnRVc2VyRW1haWx9JywgYW5kICdcXCR7Y3VycmVudFVzZXJJZGVudGlmaWVyfScgZW5hYmxlIHRoZSBkaXNwbGF5IG9mIHBlcnNvbmFsaXplZCBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQgZGFzaGJvYXJkIHVzZXIuYCxcbn07XG5cbmV4cG9ydCB7Q09ORElUSU9OU19IRUxQRVJfVEVYVFN9O1xuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './conditions';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uZGl0aW9ucyc7XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './task-count-configuration';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy90YXNrLWNvdW50L2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90YXNrLWNvdW50LWNvbmZpZ3VyYXRpb24nO1xuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './task-count-configuration.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy90YXNrLWNvdW50L2NvbXBvbmVudHMvdGFzay1jb3VudC1jb25maWd1cmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdGFzay1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,122 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
17
+ import { Operator, } from '../../../../models';
18
+ import { BehaviorSubject, combineLatest, map, startWith, Subscription } from 'rxjs';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "@angular/forms";
21
+ import * as i2 from "@ngx-translate/core";
22
+ import * as i3 from "../../../../services";
23
+ import * as i4 from "@angular/common";
24
+ import * as i5 from "carbon-components-angular";
25
+ import * as i6 from "@valtimo/components";
26
+ import * as i7 from "../../../../pipes/widget-translate/widget-translate.pipe";
27
+ export class TaskCountConfigurationComponent {
28
+ set disabled(disabledValue) {
29
+ if (disabledValue) {
30
+ this.form.disable();
31
+ }
32
+ else {
33
+ this.form.enable();
34
+ }
35
+ }
36
+ get queryConditions() {
37
+ return this.form.get('queryConditions');
38
+ }
39
+ set prefillConfiguration(configurationValue) {
40
+ if (configurationValue) {
41
+ this.defaultConditionValues$.next(configurationValue.queryConditions.map(condition => ({
42
+ key: condition.queryPath,
43
+ dropdown: condition.queryOperator,
44
+ value: condition.queryValue,
45
+ })));
46
+ }
47
+ }
48
+ constructor(fb, translateService, widgetTranslationService) {
49
+ this.fb = fb;
50
+ this.translateService = translateService;
51
+ this.widgetTranslationService = widgetTranslationService;
52
+ this.form = this.fb.group({
53
+ queryConditions: this.fb.control(null),
54
+ });
55
+ this._OPERATORS = [
56
+ Operator.NOT_EQUAL_TO,
57
+ Operator.EQUAL_TO,
58
+ Operator.GREATER_THAN,
59
+ Operator.GREATER_THAN_OR_EQUAL_TO,
60
+ Operator.LESS_THAN,
61
+ Operator.LESS_THAN_OR_EQUAL_TO,
62
+ ];
63
+ this.operatorItems$ = this.translateService
64
+ .stream('key')
65
+ .pipe(map(() => this._OPERATORS.map(operator => ({
66
+ id: operator,
67
+ content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
68
+ selected: false,
69
+ }))));
70
+ this.defaultConditionValues$ = new BehaviorSubject(null);
71
+ this.allConditionsValid$ = new BehaviorSubject(true);
72
+ this.configurationEvent = new EventEmitter();
73
+ this._subscriptions = new Subscription();
74
+ }
75
+ ngOnInit() {
76
+ this.openFormSubscription();
77
+ }
78
+ ngOnDestroy() {
79
+ this._subscriptions.unsubscribe();
80
+ }
81
+ conditionsValueChange(values) {
82
+ if (values.length === 0) {
83
+ this.queryConditions.setValue(null);
84
+ }
85
+ else {
86
+ this.queryConditions.setValue(values.map(value => ({
87
+ queryPath: value.key,
88
+ queryOperator: value.dropdown,
89
+ queryValue: value.value,
90
+ })));
91
+ }
92
+ }
93
+ onAllConditionsValid(allConditionsValid) {
94
+ this.allConditionsValid$.next(allConditionsValid);
95
+ }
96
+ openFormSubscription() {
97
+ this._subscriptions.add(combineLatest([
98
+ this.form.valueChanges.pipe(startWith(this.form.value)),
99
+ this.allConditionsValid$,
100
+ ]).subscribe(([formValue, allConditionsValid]) => {
101
+ this.configurationEvent.emit({
102
+ valid: this.form.valid && allConditionsValid,
103
+ data: formValue,
104
+ });
105
+ }));
106
+ }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskCountConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskCountConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"task-count-configuration-form\"\n *ngIf=\"{operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .task-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .task-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskCountConfigurationComponent, decorators: [{
111
+ type: Component,
112
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"task-count-configuration-form\"\n *ngIf=\"{operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .task-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .task-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
113
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.WidgetTranslationService }], propDecorators: { dataSourceKey: [{
114
+ type: Input
115
+ }], disabled: [{
116
+ type: Input
117
+ }], prefillConfiguration: [{
118
+ type: Input
119
+ }], configurationEvent: [{
120
+ type: Output
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL3Rhc2stY291bnQvY29tcG9uZW50cy90YXNrLWNvdW50LWNvbmZpZ3VyYXRpb24vdGFzay1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL3Rhc2stY291bnQvY29tcG9uZW50cy90YXNrLWNvdW50LWNvbmZpZ3VyYXRpb24vdGFzay1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFFBQVEsR0FFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFZOUYsTUFBTSxPQUFPLCtCQUErQjtJQVMxQyxJQUFvQixRQUFRLENBQUMsYUFBc0I7UUFDakQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQTBCRCxJQUFXLGVBQWU7UUFDeEIsT0FB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QyxDQUFDO0lBQ3BELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsbUJBQW1CO1NBQ3pCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLGtCQUFrQjtnQkFDNUMsSUFBSSxFQUFFLFNBQW1DO2FBQzFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQTNHVSwrQkFBK0I7bUdBQS9CLCtCQUErQiwyTkMzQzVDLHd5REEyQ0E7OzRGREFhLCtCQUErQjtrQkFMM0MsU0FBUztzQ0FFUyx1QkFBdUIsQ0FBQyxNQUFNO3NKQU0vQixhQUFhO3NCQUE1QixLQUFLO2dCQU1jLFFBQVE7c0JBQTNCLEtBQUs7Z0JBb0NPLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFZVyxrQkFBa0I7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25PdXRwdXQsXG4gIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICBPcGVyYXRvcixcbiAgUXVlcnlDb25kaXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VGFza0NvdW50Q29uZmlndXJhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TGlzdEl0ZW1XaXRoSWQsIE11bHRpSW5wdXRLZXlWYWx1ZSwgTXVsdGlJbnB1dFZhbHVlc30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWNvdW50LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzay1jb3VudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDb3VudENvbmZpZ3VyYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnRcbntcbiAgQElucHV0KCkgcHVibGljIGRhdGFTb3VyY2VLZXk6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHF1ZXJ5Q29uZGl0aW9uczogdGhpcy5mYi5jb250cm9sKG51bGwpLFxuICB9KTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX09QRVJBVE9SUzogQXJyYXk8T3BlcmF0b3I+ID0gW1xuICAgIE9wZXJhdG9yLk5PVF9FUVVBTF9UTyxcbiAgICBPcGVyYXRvci5FUVVBTF9UTyxcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU4sXG4gICAgT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTixcbiAgICBPcGVyYXRvci5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sXG4gIF07XG5cbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdG9ySXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtV2l0aElkPj4gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAuc3RyZWFtKCdrZXknKVxuICAgIC5waXBlKFxuICAgICAgbWFwKCgpID0+XG4gICAgICAgIHRoaXMuX09QRVJBVE9SUy5tYXAob3BlcmF0b3IgPT4gKHtcbiAgICAgICAgICBpZDogb3BlcmF0b3IsXG4gICAgICAgICAgY29udGVudDogdGhpcy53aWRnZXRUcmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChvcGVyYXRvciwgdGhpcy5kYXRhU291cmNlS2V5KSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDb25kaXRpb25WYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNdWx0aUlucHV0VmFsdWVzIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBhbGxDb25kaXRpb25zVmFsaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBwdWJsaWMgZ2V0IHF1ZXJ5Q29uZGl0aW9ucygpOiBBYnN0cmFjdENvbnRyb2w8UXVlcnlDb25kaXRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUNvbmRpdGlvbnMnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBwcmVmaWxsQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uVmFsdWU6IFRhc2tDb3VudENvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoY29uZmlndXJhdGlvblZhbHVlKSB7XG4gICAgICB0aGlzLmRlZmF1bHRDb25kaXRpb25WYWx1ZXMkLm5leHQoXG4gICAgICAgIGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgICAgICBkcm9wZG93bjogY29uZGl0aW9uLnF1ZXJ5T3BlcmF0b3IsXG4gICAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi5xdWVyeVZhbHVlLFxuICAgICAgICB9KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjb25maWd1cmF0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIENvbmZpZ3VyYXRpb25PdXRwdXQ8VGFza0NvdW50Q29uZmlndXJhdGlvbj5cbiAgPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlOiBXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGNvbmRpdGlvbnNWYWx1ZUNoYW5nZSh2YWx1ZXM6IEFycmF5PE11bHRpSW5wdXRLZXlWYWx1ZT4pOiB2b2lkIHtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5xdWVyeUNvbmRpdGlvbnMuc2V0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlDb25kaXRpb25zLnNldFZhbHVlKFxuICAgICAgICB2YWx1ZXMubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgcXVlcnlQYXRoOiB2YWx1ZS5rZXksXG4gICAgICAgICAgcXVlcnlPcGVyYXRvcjogdmFsdWUuZHJvcGRvd24sXG4gICAgICAgICAgcXVlcnlWYWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BbGxDb25kaXRpb25zVmFsaWQoYWxsQ29uZGl0aW9uc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hbGxDb25kaXRpb25zVmFsaWQkLm5leHQoYWxsQ29uZGl0aW9uc1ZhbGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUpKSxcbiAgICAgICAgdGhpcy5hbGxDb25kaXRpb25zVmFsaWQkLFxuICAgICAgXSkuc3Vic2NyaWJlKChbZm9ybVZhbHVlLCBhbGxDb25kaXRpb25zVmFsaWRdKSA9PiB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkV2ZW50LmVtaXQoe1xuICAgICAgICAgIHZhbGlkOiB0aGlzLmZvcm0udmFsaWQgJiYgYWxsQ29uZGl0aW9uc1ZhbGlkLFxuICAgICAgICAgIGRhdGE6IGZvcm1WYWx1ZSBhcyBUYXNrQ291bnRDb25maWd1cmF0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cInRhc2stY291bnQtY29uZmlndXJhdGlvbi1mb3JtXCJcbiAgKm5nSWY9XCJ7b3BlcmF0b3JJdGVtczogb3BlcmF0b3JJdGVtcyR9IGFzIG9ic1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50IGNvbmRpdGlvbnMtbXVsdGktaW5wdXRcIj5cbiAgICA8Y2RzLWxhYmVsXG4gICAgICBbaGVscGVyVGV4dF09XCInY29uZGl0aW9uc0hlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJjb25kaXRpb25zLWxhYmVsXCJcbiAgICAgID57eyAnY29uZGl0aW9ucycgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luYyB9fTwvY2RzLWxhYmVsXG4gICAgPlxuICAgIDx2YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dFxuICAgICAgW2FkZFJvd1RleHRdPVwiJ2FkZENvbmRpdGlvbicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJkZWZhdWx0Q29uZGl0aW9uVmFsdWVzJCB8IGFzeW5jXCJcbiAgICAgIFtkcm9wZG93bkNvbHVtblRpdGxlXT1cIidvcGVyYXRvcicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbZHJvcGRvd25JdGVtc109XCJvcGVyYXRvckl0ZW1zJCB8IGFzeW5jXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFtrZXlDb2x1bW5UaXRsZV09XCIncGF0aCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbbWluaW11bUFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid2YWx1ZScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICB0eXBlPVwia2V5RHJvcGRvd25WYWx1ZVwiXG4gICAgICAoYWxsVmFsdWVzVmFsaWRFdmVudCk9XCJvbkFsbENvbmRpdGlvbnNWYWxpZCgkZXZlbnQpXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb25kaXRpb25zVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvdmFsdGltby1jYXJib24tbXVsdGktaW5wdXQ+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './components';
17
+ export * from './models';
18
+ export * from './task-count.module';
19
+ export * from './task-count.specification';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy90YXNrLWNvdW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1jb3VudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWNvdW50LnNwZWNpZmljYXRpb24nO1xuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './task-count.model';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy90YXNrLWNvdW50L21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2stY291bnQubW9kZWwnO1xuIl19