ngx-register-base 1.3.2 → 2.0.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 (160) hide show
  1. package/README.md +10 -0
  2. package/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +3 -3
  3. package/esm2022/lib/components/column-settings/column-settings.component.mjs +30 -25
  4. package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +4 -12
  5. package/esm2022/lib/components/column-settings/components/reset-settings-form/reset-settings-form.component.mjs +13 -0
  6. package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +9 -9
  7. package/esm2022/lib/components/filter-button/filter-button.component.mjs +4 -5
  8. package/esm2022/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.mjs +22 -22
  9. package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +9 -6
  10. package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +13 -8
  11. package/esm2022/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.mjs +4 -4
  12. package/esm2022/lib/components/filters/components/filter-list/filter-list.service.mjs +16 -13
  13. package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +4 -4
  14. package/esm2022/lib/components/filters/components/filter-list.module.mjs +33 -7
  15. package/esm2022/lib/components/filters/register-table-filter.component.mjs +5 -4
  16. package/esm2022/lib/components/filters/register-table-filter.module.mjs +5 -5
  17. package/esm2022/lib/components/index.mjs +2 -2
  18. package/esm2022/lib/components/inputs/index.mjs +4 -4
  19. package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +37 -30
  20. package/esm2022/lib/components/inputs/param-custom/param-custom.component.mjs +3 -3
  21. package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +27 -15
  22. package/esm2022/lib/components/inputs/param-date-range/index.mjs +2 -0
  23. package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +80 -18
  24. package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +65 -30
  25. package/esm2022/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.component.mjs +406 -0
  26. package/esm2022/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.consts.mjs +13 -0
  27. package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +31 -34
  28. package/esm2022/lib/components/inputs/param-dropbox/param-dropbox.component.mjs +126 -0
  29. package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +40 -9
  30. package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +29 -8
  31. package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +97 -113
  32. package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +40 -36
  33. package/esm2022/lib/components/inputs/param-switcher/index.mjs +2 -0
  34. package/esm2022/lib/components/inputs/param-switcher/param-switcher.component.mjs +61 -11
  35. package/esm2022/lib/components/inputs/param-switcher/param-switcher.types.mjs +2 -0
  36. package/esm2022/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.mjs +7 -25
  37. package/esm2022/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.mjs +21 -20
  38. package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +11 -6
  39. package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +5 -3
  40. package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +24 -7
  41. package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +3 -3
  42. package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +9 -2
  43. package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +13 -6
  44. package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +9 -4
  45. package/esm2022/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.mjs +9 -5
  46. package/esm2022/lib/components/inputs/sub-components/param-label-hint-icon/param-label-hint-icon.component.mjs +12 -0
  47. package/esm2022/lib/components/paginator/paginator.component.mjs +10 -12
  48. package/esm2022/lib/components/register-table/register-table.component.mjs +31 -12
  49. package/esm2022/lib/components/search-input/search-input.component.mjs +5 -7
  50. package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +23 -35
  51. package/esm2022/lib/components/template-modal/index.mjs +3 -0
  52. package/esm2022/lib/components/template-modal/template-modal.base.mjs +16 -0
  53. package/esm2022/lib/components/template-modal/template-modal.component.mjs +16 -0
  54. package/esm2022/lib/core/param/index.mjs +1 -1
  55. package/esm2022/lib/core/param/param-base.mjs +28 -3
  56. package/esm2022/lib/core/param/param-date-base.mjs +20 -11
  57. package/esm2022/lib/core/param/param-select-base.mjs +14 -6
  58. package/esm2022/lib/core/register-base/register-base.store.mjs +1 -1
  59. package/esm2022/lib/directives/date/date-time.types.mjs +1 -1
  60. package/esm2022/lib/providers/index.mjs +2 -0
  61. package/esm2022/lib/providers/provide-icons.mjs +23 -0
  62. package/esm2022/lib/services/date-time.service.mjs +1 -38
  63. package/esm2022/lib/services/dialog/dialog.service.mjs +1 -13
  64. package/esm2022/lib/services/dialog/dialog.types.mjs +2 -2
  65. package/esm2022/lib/services/message.service.mjs +48 -0
  66. package/esm2022/lib/services/validation-message.service.mjs +52 -0
  67. package/esm2022/lib/store/fast-query-store.service.mjs +16 -1
  68. package/esm2022/lib/utils/index.mjs +2 -1
  69. package/esm2022/lib/utils/utils.mjs +17 -0
  70. package/esm2022/public-api.mjs +2 -1
  71. package/fesm2022/ngx-register-base.mjs +1463 -1017
  72. package/fesm2022/ngx-register-base.mjs.map +1 -1
  73. package/icons/arrow-turn-up-left.svg +3 -0
  74. package/icons/check.svg +3 -0
  75. package/icons/floppy.svg +3 -0
  76. package/icons/star-empty.svg +10 -0
  77. package/icons/star-fill.svg +3 -0
  78. package/icons/trash.svg +3 -0
  79. package/icons/xmark.svg +3 -0
  80. package/lib/components/column-settings/column-settings.component.d.ts +9 -9
  81. package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +5 -5
  82. package/lib/components/{reset-settings-form → column-settings/components/reset-settings-form}/reset-settings-form.component.d.ts +2 -5
  83. package/lib/components/column-settings/consts/column-settings.consts.d.ts +8 -8
  84. package/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.d.ts +5 -8
  85. package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +2 -1
  86. package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +2 -1
  87. package/lib/components/filters/components/filter-list/filter-list.service.d.ts +2 -3
  88. package/lib/components/filters/components/filter-list.module.d.ts +7 -7
  89. package/lib/components/filters/register-table-filter.component.d.ts +2 -1
  90. package/lib/components/filters/register-table-filter.module.d.ts +2 -2
  91. package/lib/components/index.d.ts +1 -1
  92. package/lib/components/inputs/index.d.ts +3 -4
  93. package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +2 -8
  94. package/lib/components/inputs/param-custom/param-custom.component.d.ts +1 -1
  95. package/lib/components/inputs/param-date/param-date.component.d.ts +7 -10
  96. package/lib/components/inputs/param-date-range/index.d.ts +1 -0
  97. package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +13 -16
  98. package/lib/components/inputs/param-date-time/param-date-time.component.d.ts +8 -13
  99. package/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.component.d.ts +96 -0
  100. package/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.consts.d.ts +12 -0
  101. package/lib/components/inputs/param-date-time-range/param-date-time-range.component.d.ts +17 -16
  102. package/lib/components/inputs/param-dropbox/param-dropbox.component.d.ts +31 -0
  103. package/lib/components/inputs/param-month/param-month.component.d.ts +10 -8
  104. package/lib/components/inputs/param-month-range/param-month-range.component.d.ts +10 -8
  105. package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +9 -11
  106. package/lib/components/inputs/param-select/param-select.component.d.ts +9 -12
  107. package/lib/components/inputs/param-switcher/index.d.ts +2 -0
  108. package/lib/components/inputs/param-switcher/param-switcher.component.d.ts +21 -5
  109. package/lib/components/inputs/param-switcher/param-switcher.types.d.ts +7 -0
  110. package/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.d.ts +3 -2
  111. package/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.d.ts +5 -4
  112. package/lib/components/inputs/param-text/param-text.component.d.ts +6 -4
  113. package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +2 -1
  114. package/lib/components/inputs/param-toggle/param-toggle.component.d.ts +3 -2
  115. package/lib/components/inputs/param-tree/services/param-tree.service.d.ts +1 -1
  116. package/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.d.ts +2 -1
  117. package/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.d.ts +2 -1
  118. package/lib/components/inputs/sub-components/param-label-hint-icon/param-label-hint-icon.component.d.ts +5 -0
  119. package/lib/components/paginator/paginator.component.d.ts +3 -4
  120. package/lib/components/register-table/register-table.component.d.ts +5 -3
  121. package/lib/components/sliding-panel/sliding-panel.component.d.ts +8 -8
  122. package/lib/components/template-modal/index.d.ts +2 -0
  123. package/lib/components/template-modal/template-modal.base.d.ts +9 -0
  124. package/lib/components/template-modal/template-modal.component.d.ts +6 -0
  125. package/lib/core/param/index.d.ts +1 -0
  126. package/lib/core/param/param-base.d.ts +18 -2
  127. package/lib/core/param/param-date-base.d.ts +15 -9
  128. package/lib/core/param/param-select-base.d.ts +12 -7
  129. package/lib/core/register-base/register-base.store.d.ts +2 -3
  130. package/lib/directives/date/date-time.types.d.ts +0 -2
  131. package/lib/providers/index.d.ts +1 -0
  132. package/lib/providers/provide-icons.d.ts +3 -0
  133. package/lib/services/date-time.service.d.ts +0 -13
  134. package/lib/services/dialog/dialog.service.d.ts +1 -3
  135. package/lib/services/dialog/dialog.types.d.ts +0 -3
  136. package/lib/services/message.service.d.ts +20 -0
  137. package/lib/services/validation-message.service.d.ts +14 -0
  138. package/lib/store/fast-query-store.service.d.ts +1 -0
  139. package/lib/utils/index.d.ts +1 -0
  140. package/lib/utils/utils.d.ts +3 -0
  141. package/package.json +5 -12
  142. package/public-api.d.ts +1 -0
  143. package/styles/common-param.less +15 -0
  144. package/styles/flex.less +5 -1
  145. package/styles/icons.less +8 -0
  146. package/styles/modals.less +54 -0
  147. package/styles/overrides/tui/tui-input.less +94 -121
  148. package/styles/styles.less +2 -0
  149. package/esm2022/lib/components/inputs/inputs.module.mjs +0 -166
  150. package/esm2022/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.mjs +0 -15
  151. package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +0 -18
  152. package/esm2022/lib/components/sliding-panel/sliding-panel.module.mjs +0 -19
  153. package/esm2022/lib/utils/prizm.shared.module.mjs +0 -284
  154. package/icons/calendar-blank.svg +0 -10
  155. package/lib/components/inputs/inputs.module.d.ts +0 -31
  156. package/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.d.ts +0 -6
  157. package/lib/components/sliding-panel/sliding-panel.module.d.ts +0 -9
  158. package/lib/utils/prizm.shared.module.d.ts +0 -14
  159. /package/icons/{calendar-icon.svg → calendar-date-time.svg} +0 -0
  160. /package/icons/{calendar-custom.svg → calendar-date.svg} +0 -0
@@ -6,10 +6,12 @@ import { TuiChevron, TuiComboBox, TuiDataListWrapper, TuiFilterByInputPipe, TuiS
6
6
  import { TuiTextfieldControllerModule } from '@taiga-ui/legacy';
7
7
  import { ReactiveFormsModule } from '@angular/forms';
8
8
  import { NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
9
- import { ParamInvalidIconComponent } from '../sub-components/param-invalid-icon/param-invalid-icon.component';
10
9
  import { FastQueryStore } from '../../../store/fast-query-store.service';
11
10
  import { ParamSelectBase } from '../../../core/param/param-select-base';
12
11
  import { PARAM_SEARCH_INPUT_DEBOUNCE_TIME_MLS } from '../../../consts/params.consts';
12
+ import { ValidationMessageService } from '../../../services/validation-message.service';
13
+ import { ParamLabelHintIconComponent } from '../sub-components/param-label-hint-icon/param-label-hint-icon.component';
14
+ import { ParamInvalidIconComponent } from '../sub-components/param-invalid-icon/param-invalid-icon.component';
13
15
  import * as i0 from "@angular/core";
14
16
  import * as i1 from "@taiga-ui/core";
15
17
  import * as i2 from "@taiga-ui/legacy";
@@ -29,7 +31,18 @@ export class ParamSelectComponent extends ParamSelectBase {
29
31
  .toLowerCase()
30
32
  .includes(String(query).toLowerCase());
31
33
  });
32
- this.buildShowedValue = input((value) => value?.name ?? '-');
34
+ this.buildShowedValue = input((value) => {
35
+ const metaValue = this.meta?.table?.valueField;
36
+ let showedValue;
37
+ if (metaValue) {
38
+ const firstWord = metaValue.split(' ')[0];
39
+ showedValue = value?.[firstWord] ?? '-';
40
+ }
41
+ else {
42
+ showedValue = value?.name ?? '-';
43
+ }
44
+ return showedValue;
45
+ });
33
46
  this.strict = input(true);
34
47
  this.onSelect = new EventEmitter();
35
48
  this.search$ = new BehaviorSubject(undefined);
@@ -52,41 +65,25 @@ export class ParamSelectComponent extends ParamSelectBase {
52
65
  });
53
66
  }
54
67
  _observeFetchItems() {
55
- this._observeValueFill();
56
- this._observeEmptyValue();
57
- this._observeValueFetch();
58
- }
59
- _observeValueFill() {
60
68
  this.control.valueChanges
61
69
  .pipe(filter(Boolean), filter((value) => !value.name), takeUntilDestroyed(this.dr))
62
70
  .subscribe((value) => {
63
- const id = this._getIdFromValue(value);
64
- const filledValue = this.items.find((item) => item.id === id);
71
+ const valueId = typeof value === 'object' && value
72
+ ? value.id
73
+ : value;
74
+ const filledValue = this.items.find((item) => item.id === valueId);
65
75
  if (filledValue) {
66
76
  this.control.setValue(filledValue, { emitEvent: false });
67
77
  }
68
78
  });
69
- }
70
- _observeEmptyValue() {
71
- this.control.valueChanges
72
- .pipe(filter((value) => value === null), takeUntilDestroyed(this.dr))
73
- .subscribe(() => {
74
- this.search$.next('');
75
- this.fetchItems();
76
- });
77
- }
78
- _observeValueFetch() {
79
79
  combineLatest([
80
80
  this.control.valueChanges.pipe(map((value) => value?.id ?? null), distinctUntilChanged(), filter((id) => !this.items.some((item) => item.id === id))),
81
81
  this.meta$,
82
82
  ])
83
83
  .pipe(takeUntilDestroyed(this.dr))
84
- .subscribe(() => this.fetchItems());
85
- }
86
- _getIdFromValue(value) {
87
- return typeof value === 'object' && value !== null
88
- ? (value.id ?? null)
89
- : value;
84
+ .subscribe(() => {
85
+ this.fetchItems();
86
+ });
90
87
  }
91
88
  _subscribeOnMetaChanges() {
92
89
  this.meta$.pipe(takeUntilDestroyed(this.dr)).subscribe(() => {
@@ -123,15 +120,16 @@ export class ParamSelectComponent extends ParamSelectBase {
123
120
  _getSelectedItemIDs(searchValue) {
124
121
  if (this.value && (!searchValue || searchValue === '')) {
125
122
  const idField = this.meta?.table.idField ?? 'id';
126
- return [this.value[idField]];
123
+ /** TODO костыль */
124
+ return this.value[idField] ? [this.value[idField]] : undefined;
127
125
  }
128
- return undefined;
126
+ return;
129
127
  }
130
128
  _buildSelectedItemIdsWhere(where, selectedItemIDs, idField) {
131
- if (where && selectedItemIDs && selectedItemIDs.length > 0 && selectedItemIDs[0]) {
129
+ if (where && selectedItemIDs && selectedItemIDs.length > 0) {
132
130
  return { _and: [{ [idField]: { _in: selectedItemIDs } }, where] };
133
131
  }
134
- return undefined;
132
+ return;
135
133
  }
136
134
  _handleResults(data, idField, valueField, selectedItemIDs) {
137
135
  this.items = data.data.map((item) => ({
@@ -164,7 +162,10 @@ export class ParamSelectComponent extends ParamSelectBase {
164
162
  id: item[idField] ?? '',
165
163
  name: this._getNameFromField(item, valueField),
166
164
  })) ?? [];
167
- if (selectedItemIDs && selectedItemIDs.length > 0 && availableItems.length > 0) {
165
+ if (this.autoFill && data.data.length === 1 && this.required) {
166
+ this.control?.setValue(data.data.at(0));
167
+ }
168
+ else if (selectedItemIDs && selectedItemIDs.length > 0 && availableItems.length > 0) {
168
169
  const [item] = availableItems;
169
170
  this.control?.setValue(item);
170
171
  }
@@ -184,11 +185,12 @@ export class ParamSelectComponent extends ParamSelectBase {
184
185
  disabledItemHandler: signal(() => false),
185
186
  }),
186
187
  },
187
- ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n <span>{{ showedValue }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon></sproc-param-invalid-icon>\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"], dependencies: [{ kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i1.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "directive", type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "pipe", type: TuiFilterByInputPipe, name: "tuiFilterByInput" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: TuiComboBox, selector: "input[tuiComboBox]", inputs: ["strict", "matcher"] }, { kind: "component", type: ParamInvalidIconComponent, selector: "sproc-param-invalid-icon" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TuiSelectDirective, selector: "input[tuiSelect]" }, { kind: "directive", type: i1.TuiDropdownOptionsDirective, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: ["tuiDropdownAlign", "tuiDropdownAppearance", "tuiDropdownDirection", "tuiDropdownLimitWidth", "tuiDropdownMinHeight", "tuiDropdownMaxHeight", "tuiDropdownOffset"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
188
+ ValidationMessageService,
189
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n\n @let currentTooltip = readmode ? tooltip() : editTooltip();\n\n @if (currentTooltip) {\n <sproc-param-label-hint-icon [tuiHint]=\"currentTooltip\" />\n }\n\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n\n @let currentTooltip = readmode ? tooltip() : editTooltip();\n\n @if (currentTooltip) {\n <sproc-param-label-hint-icon [tuiHint]=\"currentTooltip\" />\n }\n\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n @if (templateReadValue()) {\n <ng-container\n [ngTemplateOutlet]=\"templateReadValue()\"\n [ngTemplateOutletContext]=\"{ $implicit: value }\"\n />\n } @else {\n <span>{{ showedValue }}</span>\n }\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiAppearance=\"sproc-input-appearance\"\n [tuiTextfieldSize]=\"size()\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownLimitWidth]=\"dropdownLimitWidth()\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMinHeight]=\"minDropdownHeight()\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight()\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n [tuiTextfieldSize]=\"size()\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMinHeight]=\"minDropdownHeight()\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight()\"\n [tuiDropdownLimitWidth]=\"dropdownLimitWidth()\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\" />\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon [hint]=\"validationErrorHint()\" />\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-card[sproc-param-style=card] input,.edit-style-card[sproc-param-style=card] textarea,.edit-style-card[sproc-param-style=card] sproc-custom-date-time-range,.edit-style-card[sproc-param-style=card] tui-multi-select{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px;border:1px solid var(--stroke1)}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column;border-bottom:1px solid var(--stroke1)}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter] input,.edit-style-filter[sproc-param-style=filter] textarea{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=card] input,:host .container--edit[sproc-param-style=card] textarea,:host .container--edit[sproc-param-style=card] sproc-custom-date-time-range,:host .container--edit[sproc-param-style=card] tui-multi-select{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px;border:1px solid var(--stroke1)}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column;border-bottom:1px solid var(--stroke1)}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter] input,:host .container--edit[sproc-param-style=filter] textarea{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"], dependencies: [{ kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i1.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "directive", type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "pipe", type: TuiFilterByInputPipe, name: "tuiFilterByInput" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: TuiComboBox, selector: "input[tuiComboBox]", inputs: ["strict", "matcher"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TuiSelectDirective, selector: "input[tuiSelect]" }, { kind: "directive", type: i1.TuiDropdownOptionsDirective, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: ["tuiDropdownAlign", "tuiDropdownAppearance", "tuiDropdownDirection", "tuiDropdownLimitWidth", "tuiDropdownMinHeight", "tuiDropdownMaxHeight", "tuiDropdownOffset"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "component", type: ParamLabelHintIconComponent, selector: "sproc-param-label-hint-icon" }, { kind: "component", type: ParamInvalidIconComponent, selector: "sproc-param-invalid-icon", inputs: ["hint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
188
190
  }
189
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamSelectComponent, decorators: [{
190
192
  type: Component,
191
- args: [{ selector: 'sproc-param-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
193
+ args: [{ selector: 'sproc-param-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
192
194
  FastQueryStore,
193
195
  {
194
196
  provide: TUI_ITEMS_HANDLERS,
@@ -199,7 +201,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
199
201
  disabledItemHandler: signal(() => false),
200
202
  }),
201
203
  },
202
- ], standalone: true, imports: [
204
+ ValidationMessageService,
205
+ ], imports: [
203
206
  TuiTextfield,
204
207
  TuiAppearance,
205
208
  TuiTextfieldControllerModule,
@@ -211,15 +214,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
211
214
  NgSwitchCase,
212
215
  NgSwitchDefault,
213
216
  TuiComboBox,
214
- ParamInvalidIconComponent,
215
217
  NgIf,
216
218
  TuiSelect,
217
219
  TuiDropdown,
218
220
  TuiLoader,
219
221
  TuiChevron,
220
222
  TuiHint,
221
- ], template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n <span>{{ showedValue }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n tuiTextfieldSize=\"m\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon></sproc-param-invalid-icon>\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"] }]
223
+ ParamLabelHintIconComponent,
224
+ ParamInvalidIconComponent,
225
+ ], template: "<ng-container [ngTemplateOutlet]=\"readmode ? readTemplate : editTemplate\">\n <ng-template #readTemplate>\n <div class=\"container container--read\" [attr.sproc-param-style]=\"paramStyle\">\n @if (label) {\n <ng-container [ngSwitch]=\"paramStyle\">\n <ng-template ngSwitchCase=\"filter\">\n <div class=\"label-wrapper\">\n <span class=\"label\">{{ label }}</span>\n\n @let currentTooltip = readmode ? tooltip() : editTooltip();\n\n @if (currentTooltip) {\n <sproc-param-label-hint-icon [tuiHint]=\"currentTooltip\" />\n }\n\n <div class=\"dashed-row\"></div>\n </div>\n </ng-template>\n <ng-template ngSwitchDefault>\n <span class=\"label\">{{ label }}</span>\n\n @let currentTooltip = readmode ? tooltip() : editTooltip();\n\n @if (currentTooltip) {\n <sproc-param-label-hint-icon [tuiHint]=\"currentTooltip\" />\n }\n\n <div class=\"dashed-row\"></div>\n </ng-template>\n </ng-container>\n }\n <div [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\" class=\"value\">\n @if (templateReadValue()) {\n <ng-container\n [ngTemplateOutlet]=\"templateReadValue()\"\n [ngTemplateOutletContext]=\"{ $implicit: value }\"\n />\n } @else {\n <span>{{ showedValue }}</span>\n }\n </div>\n </div>\n </ng-template>\n <ng-template #editTemplate>\n <div class=\"container container--edit\" [attr.sproc-param-style]=\"paramStyle\">\n <div *ngIf=\"label\" class=\"label-wrapper\" [class.applied]=\"applied()\">\n <span class=\"label\" [class.required]=\"required\">\n {{ label }}\n </span>\n </div>\n\n @if (searchable) {\n <tui-textfield\n tuiAppearance=\"sproc-input-appearance\"\n [tuiTextfieldSize]=\"size()\"\n tuiChevron\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownLimitWidth]=\"dropdownLimitWidth()\"\n >\n <input\n (input)=\"search$.next($any($event.target).value)\"\n tuiComboBox\n [strict]=\"strict()\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\"\n />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items | tuiFilterByInput: matcher()\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n [tuiDropdownMinHeight]=\"minDropdownHeight()\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight()\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\"></ng-container>\n </tui-textfield>\n } @else {\n <tui-textfield\n [tuiTextfieldSize]=\"size()\"\n tuiAppearance=\"sproc-input-appearance\"\n tuiChevron\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiHint]=\"value && showedValue !== '-' ? hintContent : undefined\"\n tuiHintDirection=\"top\"\n [content]=\"valueTemplate\"\n [tuiDropdownMinHeight]=\"minDropdownHeight()\"\n [tuiDropdownMaxHeight]=\"maxDropdownHeight()\"\n [tuiDropdownLimitWidth]=\"dropdownLimitWidth()\"\n >\n <input tuiSelect [placeholder]=\"placeholder()\" [formControl]=\"control\" />\n\n <tui-loader [showLoader]=\"loading\" [overlay]=\"true\">\n <tui-data-list-wrapper\n new\n *tuiTextfieldDropdown\n [items]=\"items\"\n [itemContent]=\"listItemTemplate ?? dropdownOptionContent\"\n (itemClick)=\"onSelect.emit($event)\"\n />\n </tui-loader>\n\n <ng-container *ngTemplateOutlet=\"textfieldIcons\" />\n </tui-textfield>\n }\n <ng-template #dropdownOptionContent let-data>\n <div>\n {{ stringify()(data) }}\n </div>\n </ng-template>\n\n <ng-template #textfieldIcons>\n <div class=\"textfield-icons-container\">\n @if (isInvalidAndNotPristine) {\n <sproc-param-invalid-icon [hint]=\"validationErrorHint()\" />\n }\n </div>\n </ng-template>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #hintContent> {{ showedValue }} </ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.textfield-icons-container{display:flex;margin-inline-end:.5rem;margin-inline-start:.5rem;flex-direction:row;align-items:center;gap:8px}.textfield-icons-container .invalid-icon{color:var(--deleted-color);height:16px;width:16px}.textfield-icons-container .cleaner-icon{color:var(--gray-icon);height:16px;width:16px;pointer-events:auto}.textfield-icons-container .cleaner-icon:hover{color:var(--main-black);cursor:pointer}.textfield-icons-container .chevron{color:var(--gray-icon);height:16px;width:16px;pointer-events:none}.clickable:hover{cursor:pointer}.read-style-card[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}.read-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.read-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-card[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-card[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}.read-style-filter[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}.read-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.read-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.read-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.read-style-filter[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}.read-style-filter[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}.edit-style-card[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}.edit-style-card[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}.edit-style-card[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-card[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-card[sproc-param-style=card] input,.edit-style-card[sproc-param-style=card] textarea,.edit-style-card[sproc-param-style=card] sproc-custom-date-time-range,.edit-style-card[sproc-param-style=card] tui-multi-select{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px;border:1px solid var(--stroke1)}.edit-style-filter[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column;border-bottom:1px solid var(--stroke1)}.edit-style-filter[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}.edit-style-filter[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.edit-style-filter[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.edit-style-filter[sproc-param-style=filter] input,.edit-style-filter[sproc-param-style=filter] textarea{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.default-label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px}.default-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}.default-label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}.default-dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card]{display:flex;align-items:flex-start;gap:4px;padding:8px 0}:host .container--read[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--read[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=card] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=card] .value{font-family:Inter,serif!important;font-size:14px!important;font-weight:400!important;line-height:16px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px;color:var(--main-black)!important}:host .container--read[sproc-param-style=filter]{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px}:host .container--read[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--read[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--read[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--read[sproc-param-style=filter] .dashed-row{display:flex;height:16px;align-items:center;flex:1 0 0;border-bottom:1px dashed var(--table-stroke);min-width:20px}:host .container--read[sproc-param-style=filter] .value{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px;color:var(--text-main)}:host .container--edit[sproc-param-style=card]{height:auto;width:100%;display:flex;flex-direction:column;padding-bottom:8px}:host .container--edit[sproc-param-style=card] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:100%}:host .container--edit[sproc-param-style=card] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=card] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=card] input,:host .container--edit[sproc-param-style=card] textarea,:host .container--edit[sproc-param-style=card] sproc-custom-date-time-range,:host .container--edit[sproc-param-style=card] tui-multi-select{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px;border:1px solid var(--stroke1)}:host .container--edit[sproc-param-style=filter]{width:100%;display:flex;flex-direction:column;border-bottom:1px solid var(--stroke1)}:host .container--edit[sproc-param-style=filter] .label-wrapper{display:flex;padding-bottom:1.5px;align-items:center;height:16px;gap:4px;width:fit-content}:host .container--edit[sproc-param-style=filter] .label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px;color:var(--main-black)}:host .container--edit[sproc-param-style=filter] .label.required:after{content:\"*\";color:var(--brand-danger);margin-left:2px}:host .container--edit[sproc-param-style=filter] input,:host .container--edit[sproc-param-style=filter] textarea{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}:host .container--edit ._chevron-rotated .textfield-icons-container{transition:all .4ms}:host .container--edit ._chevron-rotated .textfield-icons-container .chevron{transform:rotate(-180deg)}\n"] }]
222
226
  }], propDecorators: { onSelect: [{
223
227
  type: Output
224
228
  }] } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvcGFyYW0tc2VsZWN0L3BhcmFtLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXNlbGVjdC9wYXJhbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFF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a0JBdkNoQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULGNBQWM7d0JBQ2Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDOzRCQUM5QyxVQUFVLEVBQUUsQ0FBQyxTQUErQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNoRCxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7Z0NBQzlCLGVBQWUsRUFBRSxTQUFTLENBQUMsZUFBZTtnQ0FDMUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs2QkFDekMsQ0FBQzt5QkFDSDtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gseUJBQXlCO3dCQUN6QixJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsT0FBTztxQkFDUjs4QkE0QlMsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgVHVpQXBwZWFyYW5jZSxcbiAgVHVpRHJvcGRvd24sXG4gIFR1aUhpbnQsXG4gIFR1aUxvYWRlcixcbiAgVHVpVGV4dGZpZWxkLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICBUdWlDaGV2cm9uLFxuICBUdWlDb21ib0JveCxcbiAgVHVpRGF0YUxpc3RXcmFwcGVyLFxuICBUdWlGaWx0ZXJCeUlucHV0UGlwZSxcbiAgVHVpU2VsZWN0LFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHVpU3RyaW5nTWF0Y2hlciB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgUGFyYW1JbnZhbGlkSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Yi1jb21wb25lbnRzL3BhcmFtLWludmFsaWQtaWNvbi9wYXJhbS1pbnZhbGlkLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZhc3RRdWVyeVN0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZmFzdC1xdWVyeS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBhcmFtU2VsZWN0QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcGFyYW0vcGFyYW0tc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHsgSUZpbHRlclNlbGVjdFZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcGFyYW1zLnR5cGVzJztcbmltcG9ydCB7IFBBUkFNX1NFQVJDSF9JTlBVVF9ERUJPVU5DRV9USU1FX01MUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9wYXJhbXMuY29uc3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtcGFyYW0tc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFtLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtLXNlbGVjdC5jb21wb25lbnQubGVzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRmFzdFF1ZXJ5U3RvcmUsXG4gICAge1xuICAgICAgcHJvdmlkZTogVFVJX0lURU1TX0hBTkRMRVJTLFxuICAgICAgZGVwczogW2ZvcndhcmRSZWYoKCkgPT4gUGFyYW1TZWxlY3RDb21wb25lbnQpXSxcbiAgICAgIHVzZUZhY3Rvcnk6IChjb21wb25lbnQ6IFBhcmFtU2VsZWN0Q29tcG9uZW50KSA9PiAoe1xuICAgICAgICBzdHJpbmdpZnk6IGNvbXBvbmVudC5zdHJpbmdpZnksXG4gICAgICAgIGlkZW50aXR5TWF0Y2hlcjogY29tcG9uZW50LmlkZW50aXR5TWF0Y2hlcixcbiAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogc2lnbmFsKCgpID0+IGZhbHNlKSxcbiAgICAgIH0pLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUdWlUZXh0ZmllbGQsXG4gICAgVHVpQXBwZWFyYW5jZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgIFR1aUZpbHRlckJ5SW5wdXRQaXBlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBUdWlDb21ib0JveCxcbiAgICBQYXJhbUludmFsaWRJY29uQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgVHVpU2VsZWN0LFxuICAgIFR1aURyb3Bkb3duLFxuICAgIFR1aUxvYWRlcixcbiAgICBUdWlDaGV2cm9uLFxuICAgIFR1aUhpbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhcmFtU2VsZWN0Q29tcG9uZW50XG4gIGV4dGVuZHMgUGFyYW1TZWxlY3RCYXNlPElGaWx0ZXJTZWxlY3RWYWx1ZSB8IG51bGwsIElGaWx0ZXJTZWxlY3RWYWx1ZSB8IG51bGw+XG4gIGltcGxlbWVudHMgT25EZXN0cm95XG57XG4gIG92ZXJyaWRlIHBsYWNlaG9sZGVyID0gaW5wdXQoJ9CS0YvQsdC10YDQuNGC0LUg0LfQvdCw0YfQtdC90LjQtScpO1xuICByZWFkb25seSBzdHJpbmdpZnkgPSBpbnB1dDwoaXRlbTogSUZpbHRlclNlbGVjdFZhbHVlKSA9PiBzdHJpbmc+KChpdGVtKSA9PlxuICAgIFN0cmluZyhpdGVtLm5hbWUgPz8gJycpXG4gICk7XG4gIHJlYWRvbmx5IGlkZW50aXR5TWF0Y2hlciA9IGlucHV0PChhOiBJRmlsdGVyU2VsZWN0VmFsdWUsIGI6IElGaWx0ZXJTZWxlY3RWYWx1ZSkgPT4gYm9vbGVhbj4oXG4gICAgKGEsIGIpID0+IGEuaWQgPT09IGIuaWRcbiAgKTtcbiAgcmVhZG9ubHkgbWF0Y2hlciA9IGlucHV0PFR1aVN0cmluZ01hdGNoZXI8SUZpbHRlclNlbGVjdFZhbHVlPj4oXG4gICAgKGl0ZW06IElGaWx0ZXJTZWxlY3RWYWx1ZSwgcXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFxdWVyeSB8fCBTdHJpbmcocXVlcnkpLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0/Lm5hbWUgPz8gJycpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5pbmNsdWRlcyhTdHJpbmcocXVlcnkpLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgKTtcbiAgb3ZlcnJpZGUgYnVpbGRTaG93ZWRWYWx1ZSA9IGlucHV0KFxuICAgICh2YWx1ZTogSUZpbHRlclNlbGVjdFZhbHVlIHwgbnVsbCk6IHN0cmluZyA9PiB2YWx1ZT8ubmFtZSA/PyAnLSdcbiAgKTtcbiAgcHVibGljIHN0cmljdCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8SUZpbHRlclNlbGVjdFZhbHVlPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGFmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZUZldGNoSXRlbXMoKTtcbiAgICBpZiAodGhpcy5tZXRhKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpYmVPbk1ldGFDaGFuZ2VzKCk7XG4gICAgICB0aGlzLl9zdWJzY3JpYmVPblNlYXJjaCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoJFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKFBBUkFNX1NFQVJDSF9JTlBVVF9ERUJPVU5DRV9USU1FX01MUyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgdGhpcy5mZXRjaEl0ZW1zKHNlYXJjaFZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZUZldGNoSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZVZhbHVlRmlsbCgpO1xuICAgIHRoaXMuX29ic2VydmVFbXB0eVZhbHVlKCk7XG4gICAgdGhpcy5fb2JzZXJ2ZVZhbHVlRmV0Y2goKTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVWYWx1ZUZpbGwoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gIXZhbHVlLm5hbWUpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5fZ2V0SWRGcm9tVmFsdWUodmFsdWUpO1xuICAgICAgICBjb25zdCBmaWxsZWRWYWx1ZSA9IHRoaXMuaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpO1xuXG4gICAgICAgIGlmIChmaWxsZWRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmaWxsZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVFbXB0eVZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gbnVsbCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgICAgICAgdGhpcy5mZXRjaEl0ZW1zKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVWYWx1ZUZldGNoKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBtYXAoKHZhbHVlKSA9PiB2YWx1ZT8uaWQgPz8gbnVsbCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigoaWQpID0+ICF0aGlzLml0ZW1zLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSlcbiAgICAgICksXG4gICAgICB0aGlzLm1ldGEkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmV0Y2hJdGVtcygpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElkRnJvbVZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGxcbiAgICAgID8gKCh2YWx1ZSBhcyB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIH0pLmlkID8/IG51bGwpXG4gICAgICA6ICh2YWx1ZSBhcyBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uTWV0YUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZXRhJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2hJdGVtcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoSXRlbXMoc2VhcmNoVmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlkRmllbGQsIHZhbHVlRmllbGQgfSA9IHRoaXMubWV0YUZpZWxkcztcblxuICAgIGlmICghdGhpcy5tZXRhPy50YWJsZT8ubmFtZSB8fCBpZEZpZWxkID09PSBudWxsIHx8IHZhbHVlRmllbGQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1JRHMgPSB0aGlzLl9nZXRTZWxlY3RlZEl0ZW1JRHMoc2VhcmNoVmFsdWUpO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCB3aGVyZSA9IHRoaXMuYnVpbGRXaGVyZShzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtSWRzV2hlcmUgPSB0aGlzLl9idWlsZFNlbGVjdGVkSXRlbUlkc1doZXJlKHdoZXJlLCBzZWxlY3RlZEl0ZW1JRHMsIGlkRmllbGQpO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmdldFJlc3VsdHMoXG4gICAgICAgIHtcbiAgICAgICAgICB0YWJsZTogdGhpcy5tZXRhLnRhYmxlLFxuICAgICAgICAgIHdoZXJlLFxuICAgICAgICAgIG9yZGVyX2J5OiB0aGlzLm1ldGEub3JkZXJfYnksXG4gICAgICAgICAgb2Zmc2V0OiB0aGlzLm1ldGEub2Zmc2V0LFxuICAgICAgICAgIGRpc3RpbmN0X29uOiB0aGlzLm1ldGEuZGlzdGluY3Rfb24sXG4gICAgICAgICAgc3VicXVlcnk6IHRoaXMubWV0YS5zdWJxdWVyeSxcbiAgICAgICAgICBsaW1pdDogdGhpcy5tZXRhLmxpbWl0ID8/IHRoaXMubGltaXQsXG4gICAgICAgIH0sXG4gICAgICAgIHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbUlkc1doZXJlXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlUmVzdWx0cyhkYXRhLCBpZEZpZWxkLCB2YWx1ZUZpZWxkLCBzZWxlY3RlZEl0ZW1JRHMpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0ZWRJdGVtSURzKHNlYXJjaFZhbHVlPzogc3RyaW5nKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLnZhbHVlICYmICghc2VhcmNoVmFsdWUgfHwgc2VhcmNoVmFsdWUgPT09ICcnKSkge1xuICAgICAgY29uc3QgaWRGaWVsZCA9IHRoaXMubWV0YT8udGFibGUuaWRGaWVsZCA/PyAnaWQnO1xuICAgICAgcmV0dXJuIFt0aGlzLnZhbHVlW2lkRmllbGRdXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRTZWxlY3RlZEl0ZW1JZHNXaGVyZShcbiAgICB3aGVyZTogYW55LFxuICAgIHNlbGVjdGVkSXRlbUlEczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgaWRGaWVsZDogc3RyaW5nXG4gICk6IG9iamVjdCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHdoZXJlICYmIHNlbGVjdGVkSXRlbUlEcyAmJiBzZWxlY3RlZEl0ZW1JRHMubGVuZ3RoID4gMCAmJiBzZWxlY3RlZEl0ZW1JRHNbMF0pIHtcbiAgICAgIHJldHVybiB7IF9hbmQ6IFt7IFtpZEZpZWxkXTogeyBfaW46IHNlbGVjdGVkSXRlbUlEcyB9IH0sIHdoZXJlXSB9O1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVSZXN1bHRzKFxuICAgIGRhdGE6IGFueSxcbiAgICBpZEZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIHNlbGVjdGVkSXRlbUlEczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IGRhdGEuZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBpZDogaXRlbVtpZEZpZWxkXSA/PyAnJyxcbiAgICAgIG5hbWU6IHRoaXMuX2dldE5hbWVGcm9tRmllbGQoaXRlbSwgdmFsdWVGaWVsZCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbHVlcyhkYXRhLCBpZEZpZWxkLCB2YWx1ZUZpZWxkLCBzZWxlY3RlZEl0ZW1JRHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmFtZUZyb21GaWVsZChpdGVtOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChmaWVsZC5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0TmFtZUZyb21EZWVwRmllbGQoaXRlbSwgZmllbGQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdFNob3dlZFZhbHVlKGl0ZW0sIGZpZWxkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hbWVGcm9tRGVlcEZpZWxkKGl0ZW06IGFueSwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVlcEZpZWxkcyA9IGZpZWxkLnNwbGl0KCcuJyk7XG4gICAgbGV0IHRlbXBPYmplY3QgPSB7IC4uLml0ZW0gfTtcblxuICAgIGZvciAoY29uc3QgZGVlcEZpZWxkIG9mIGRlZXBGaWVsZHMpIHtcbiAgICAgIHRlbXBPYmplY3QgPSB0ZW1wT2JqZWN0W2RlZXBGaWVsZF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbXBPYmplY3Q7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDb250cm9sVmFsdWVzKFxuICAgIGRhdGE6IGFueSxcbiAgICBpZEZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIHNlbGVjdGVkSXRlbUlEczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgaWRTZWxlY3RlZFZhbHVlID0gdGhpcy52YWx1ZT8uW2lkRmllbGRdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUl0ZW1zID1cbiAgICAgIGRhdGEuc2VsZWN0ZWRJZHNRdWVyeVxuICAgICAgICA/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpZFNlbGVjdGVkVmFsdWUgPT09IGl0ZW1baWRGaWVsZF0pXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIGlkOiBpdGVtW2lkRmllbGRdID8/ICcnLFxuICAgICAgICAgIG5hbWU6IHRoaXMuX2dldE5hbWVGcm9tRmllbGQoaXRlbSwgdmFsdWVGaWVsZCksXG4gICAgICAgIH0pKSA/PyBbXTtcblxuICAgIGlmIChzZWxlY3RlZEl0ZW1JRHMgJiYgc2VsZWN0ZWRJdGVtSURzLmxlbmd0aCA+IDAgJiYgYXZhaWxhYmxlSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgW2l0ZW1dID0gYXZhaWxhYmxlSXRlbXM7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKGl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zVGhhdERvbnRFeGlzdCA9IGF2YWlsYWJsZUl0ZW1zLmZpbHRlcihcbiAgICAgIChuZXdfaXRlbTogYW55KSA9PiAhdGhpcy5pdGVtcy5zb21lKCh2YWx1ZTogYW55KSA9PiB2YWx1ZS5pZCA9PT0gbmV3X2l0ZW0uaWQpXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbXMucHVzaCguLi5pdGVtc1RoYXREb250RXhpc3QpO1xuICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWFkbW9kZSA/IHJlYWRUZW1wbGF0ZSA6IGVkaXRUZW1wbGF0ZVwiPlxuICA8bmctdGVtcGxhdGUgI3JlYWRUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci0tcmVhZFwiIFthdHRyLnNwcm9jLXBhcmFtLXN0eWxlXT1cInBhcmFtU3R5bGVcIj5cbiAgICAgIEBpZiAobGFiZWwpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFyYW1TdHlsZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1N3aXRjaENhc2U9XCJmaWx0ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hlZC1yb3dcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoZWQtcm93XCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgICA8ZGl2IFt0dWlIaW50XT1cInZhbHVlICYmIHNob3dlZFZhbHVlICE9PSAnLScgPyBoaW50Q29udGVudCA6IHVuZGVmaW5lZFwiIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPHNwYW4+e3sgc2hvd2VkVmFsdWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItLWVkaXRcIiBbYXR0ci5zcHJvYy1wYXJhbS1zdHlsZV09XCJwYXJhbVN0eWxlXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImxhYmVsLXdyYXBwZXJcIiBbY2xhc3MuYXBwbGllZF09XCJhcHBsaWVkKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHNlYXJjaGFibGUpIHtcbiAgICAgICAgPHR1aS10ZXh0ZmllbGRcbiAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgdHVpQXBwZWFyYW5jZT1cInNwcm9jLWlucHV0LWFwcGVhcmFuY2VcIlxuICAgICAgICAgIHR1aUNoZXZyb25cbiAgICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCJcbiAgICAgICAgICBbdHVpSGludF09XCJ2YWx1ZSAmJiBzaG93ZWRWYWx1ZSAhPT0gJy0nID8gaGludENvbnRlbnQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgIFtjb250ZW50XT1cInZhbHVlVGVtcGxhdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAoaW5wdXQpPVwic2VhcmNoJC5uZXh0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAgIHR1aUNvbWJvQm94XG4gICAgICAgICAgICBbc3RyaWN0XT1cInN0cmljdCgpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgPHR1aS1sb2FkZXIgW3Nob3dMb2FkZXJdPVwibG9hZGluZ1wiIFtvdmVybGF5XT1cInRydWVcIj5cbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXMgfCB0dWlGaWx0ZXJCeUlucHV0OiBtYXRjaGVyKClcIlxuICAgICAgICAgICAgICBbaXRlbUNvbnRlbnRdPVwibGlzdEl0ZW1UZW1wbGF0ZSA/PyBkcm9wZG93bk9wdGlvbkNvbnRlbnRcIlxuICAgICAgICAgICAgICBbdHVpRHJvcGRvd25NYXhIZWlnaHRdPVwibWF4RHJvcGRvd25IZWlnaHRcIlxuICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvdHVpLWxvYWRlcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0ZmllbGRJY29uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3R1aS10ZXh0ZmllbGQ+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHR1aS10ZXh0ZmllbGRcbiAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgdHVpQXBwZWFyYW5jZT1cInNwcm9jLWlucHV0LWFwcGVhcmFuY2VcIlxuICAgICAgICAgIHR1aUNoZXZyb25cbiAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICAgIFt0dWlIaW50XT1cInZhbHVlICYmIHNob3dlZFZhbHVlICE9PSAnLScgPyBoaW50Q29udGVudCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NvbnRlbnRdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgICAgICAgW3R1aURyb3Bkb3duTWF4SGVpZ2h0XT1cIm1heERyb3Bkb3duSGVpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dCB0dWlTZWxlY3QgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIC8+XG5cbiAgICAgICAgICA8dHVpLWxvYWRlciBbc2hvd0xvYWRlcl09XCJsb2FkaW5nXCIgW292ZXJsYXldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICBuZXdcbiAgICAgICAgICAgICAgKnR1aVRleHRmaWVsZERyb3Bkb3duXG4gICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICAgIFtpdGVtQ29udGVudF09XCJsaXN0SXRlbVRlbXBsYXRlID8/IGRyb3Bkb3duT3B0aW9uQ29udGVudFwiXG4gICAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25TZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC90dWktbG9hZGVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHRmaWVsZEljb25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25PcHRpb25Db250ZW50IGxldC1kYXRhPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7IHN0cmluZ2lmeSgpKGRhdGEpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0ZmllbGRJY29ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRmaWVsZC1pY29ucy1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGlzSW52YWxpZEFuZE5vdFByaXN0aW5lKSB7XG4gICAgICAgICAgICA8c3Byb2MtcGFyYW0taW52YWxpZC1pY29uPjwvc3Byb2MtcGFyYW0taW52YWxpZC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjaGludENvbnRlbnQ+IHt7IHNob3dlZFZhbHVlIH19IDwvbmctdGVtcGxhdGU+XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dHMvcGFyYW0tc2VsZWN0L3BhcmFtLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXNlbGVjdC9wYXJhbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFF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b0pBQ2hCLFFBQVEsNkVBQ1IsWUFBWSxxRkFDWixlQUFlLDhEQUNmLFdBQVcsOEZBQ1gsSUFBSSx3a0JBR0osU0FBUyxpSUFDVCxVQUFVLHlQQUVWLDJCQUEyQix3RUFDM0IseUJBQXlCOzs0RkFHaEIsb0JBQW9CO2tCQXpDaEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULGNBQWM7d0JBQ2Q7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDOzRCQUM5QyxVQUFVLEVBQUUsQ0FBQyxTQUErQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNoRCxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7Z0NBQzlCLGVBQWUsRUFBRSxTQUFTLENBQUMsZUFBZTtnQ0FDMUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs2QkFDekMsQ0FBQzt5QkFDSDt3QkFDRCx3QkFBd0I7cUJBQ3pCLFdBQ1E7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLDRCQUE0Qjt3QkFDNUIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLElBQUk7d0JBQ0osU0FBUzt3QkFDVCxXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixPQUFPO3dCQUNQLDJCQUEyQjt3QkFDM0IseUJBQXlCO3FCQUMxQjs4QkFtQ1MsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgVHVpQXBwZWFyYW5jZSxcbiAgVHVpRHJvcGRvd24sXG4gIFR1aUhpbnQsXG4gIFR1aUxvYWRlcixcbiAgVHVpVGV4dGZpZWxkLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1xuICBUdWlDaGV2cm9uLFxuICBUdWlDb21ib0JveCxcbiAgVHVpRGF0YUxpc3RXcmFwcGVyLFxuICBUdWlGaWx0ZXJCeUlucHV0UGlwZSxcbiAgVHVpU2VsZWN0LFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHVpU3RyaW5nTWF0Y2hlciB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgRmFzdFF1ZXJ5U3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9mYXN0LXF1ZXJ5LXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1TZWxlY3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9wYXJhbS9wYXJhbS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQgeyBJRmlsdGVyU2VsZWN0VmFsdWUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9wYXJhbXMudHlwZXMnO1xuaW1wb3J0IHsgUEFSQU1fU0VBUkNIX0lOUFVUX0RFQk9VTkNFX1RJTUVfTUxTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL3BhcmFtcy5jb25zdHMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1MYWJlbEhpbnRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3ViLWNvbXBvbmVudHMvcGFyYW0tbGFiZWwtaGludC1pY29uL3BhcmFtLWxhYmVsLWhpbnQtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mZXJBcnJheVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBQYXJhbUludmFsaWRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3ViLWNvbXBvbmVudHMvcGFyYW0taW52YWxpZC1pY29uL3BhcmFtLWludmFsaWQtaWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHJvYy1wYXJhbS1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFyYW0tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFyYW0tc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBGYXN0UXVlcnlTdG9yZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUVUlfSVRFTVNfSEFORExFUlMsXG4gICAgICBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBQYXJhbVNlbGVjdENvbXBvbmVudCldLFxuICAgICAgdXNlRmFjdG9yeTogKGNvbXBvbmVudDogUGFyYW1TZWxlY3RDb21wb25lbnQpID0+ICh7XG4gICAgICAgIHN0cmluZ2lmeTogY29tcG9uZW50LnN0cmluZ2lmeSxcbiAgICAgICAgaWRlbnRpdHlNYXRjaGVyOiBjb21wb25lbnQuaWRlbnRpdHlNYXRjaGVyLFxuICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBzaWduYWwoKCkgPT4gZmFsc2UpLFxuICAgICAgfSksXG4gICAgfSxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBUdWlUZXh0ZmllbGQsXG4gICAgVHVpQXBwZWFyYW5jZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgIFR1aUZpbHRlckJ5SW5wdXRQaXBlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBUdWlDb21ib0JveCxcbiAgICBOZ0lmLFxuICAgIFR1aVNlbGVjdCxcbiAgICBUdWlEcm9wZG93bixcbiAgICBUdWlMb2FkZXIsXG4gICAgVHVpQ2hldnJvbixcbiAgICBUdWlIaW50LFxuICAgIFBhcmFtTGFiZWxIaW50SWNvbkNvbXBvbmVudCxcbiAgICBQYXJhbUludmFsaWRJY29uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJhbVNlbGVjdENvbXBvbmVudDxUIGV4dGVuZHMgSUZpbHRlclNlbGVjdFZhbHVlIHwgbnVsbCA9IElGaWx0ZXJTZWxlY3RWYWx1ZSB8IG51bGw+XG4gIGV4dGVuZHMgUGFyYW1TZWxlY3RCYXNlPFQsIFQ+XG4gIGltcGxlbWVudHMgT25EZXN0cm95XG57XG4gIG92ZXJyaWRlIHBsYWNlaG9sZGVyID0gaW5wdXQoJ9CS0YvQsdC10YDQuNGC0LUg0LfQvdCw0YfQtdC90LjQtScpO1xuICByZWFkb25seSBzdHJpbmdpZnkgPSBpbnB1dDwoaXRlbTogTm9uTnVsbGFibGU8VD4pID0+IHN0cmluZz4oKGl0ZW0pID0+IFN0cmluZyhpdGVtLm5hbWUgPz8gJycpKTtcbiAgcmVhZG9ubHkgaWRlbnRpdHlNYXRjaGVyID0gaW5wdXQ8KGE6IE5vbk51bGxhYmxlPFQ+LCBiOiBOb25OdWxsYWJsZTxUPikgPT4gYm9vbGVhbj4oXG4gICAgKGEsIGIpID0+IGEuaWQgPT09IGIuaWRcbiAgKTtcbiAgcmVhZG9ubHkgbWF0Y2hlciA9IGlucHV0PFR1aVN0cmluZ01hdGNoZXI8Tm9uTnVsbGFibGU8SW5mZXJBcnJheVR5cGU8VD4+Pj4oKGl0ZW0sIHF1ZXJ5KSA9PiB7XG4gICAgaWYgKCFxdWVyeSB8fCBTdHJpbmcocXVlcnkpLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcoaXRlbT8ubmFtZSA/PyAnJylcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAuaW5jbHVkZXMoU3RyaW5nKHF1ZXJ5KS50b0xvd2VyQ2FzZSgpKTtcbiAgfSk7XG4gIHB1YmxpYyBvdmVycmlkZSBidWlsZFNob3dlZFZhbHVlID0gaW5wdXQoKHZhbHVlOiBUKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBtZXRhVmFsdWUgPSB0aGlzLm1ldGE/LnRhYmxlPy52YWx1ZUZpZWxkO1xuICAgIGxldCBzaG93ZWRWYWx1ZTtcblxuICAgIGlmIChtZXRhVmFsdWUpIHtcbiAgICAgIGNvbnN0IGZpcnN0V29yZCA9IG1ldGFWYWx1ZS5zcGxpdCgnICcpWzBdO1xuICAgICAgc2hvd2VkVmFsdWUgPSB2YWx1ZT8uW2ZpcnN0V29yZF0gPz8gJy0nO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaG93ZWRWYWx1ZSA9IHZhbHVlPy5uYW1lID8/ICctJztcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvd2VkVmFsdWU7XG4gIH0pO1xuICBwdWJsaWMgc3RyaWN0ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgQE91dHB1dCgpIG9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxOb25OdWxsYWJsZTxUPj4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VhcmNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBhZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVGZXRjaEl0ZW1zKCk7XG4gICAgaWYgKHRoaXMubWV0YSkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlT25NZXRhQ2hhbmdlcygpO1xuICAgICAgdGhpcy5fc3Vic2NyaWJlT25TZWFyY2goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2gkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVPblNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZShQQVJBTV9TRUFSQ0hfSU5QVVRfREVCT1VOQ0VfVElNRV9NTFMpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpXG4gICAgICAuc3Vic2NyaWJlKChzZWFyY2hWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIHRoaXMuZmV0Y2hJdGVtcyhzZWFyY2hWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVGZXRjaEl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5uYW1lKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZHIpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZUlkID1cbiAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlXG4gICAgICAgICAgICA/ICh2YWx1ZSBhcyBhbnkpLmlkXG4gICAgICAgICAgICA6ICh2YWx1ZSBhcyB1bmtub3duIGFzIHN0cmluZyB8IG51bWJlciB8IG51bGwpO1xuXG4gICAgICAgIGNvbnN0IGZpbGxlZFZhbHVlID0gdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSB2YWx1ZUlkKTtcblxuICAgICAgICBpZiAoZmlsbGVkVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZmlsbGVkVmFsdWUgYXMgVCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBtYXAoKHZhbHVlKSA9PiB2YWx1ZT8uaWQgPz8gbnVsbCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigoaWQpID0+ICF0aGlzLml0ZW1zLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSlcbiAgICAgICksXG4gICAgICB0aGlzLm1ldGEkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5mZXRjaEl0ZW1zKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uTWV0YUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZXRhJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2hJdGVtcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoSXRlbXMoc2VhcmNoVmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlkRmllbGQsIHZhbHVlRmllbGQgfSA9IHRoaXMubWV0YUZpZWxkcztcblxuICAgIGlmICghdGhpcy5tZXRhPy50YWJsZT8ubmFtZSB8fCBpZEZpZWxkID09PSBudWxsIHx8IHZhbHVlRmllbGQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1JRHMgPSB0aGlzLl9nZXRTZWxlY3RlZEl0ZW1JRHMoc2VhcmNoVmFsdWUpO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCB3aGVyZSA9IHRoaXMuYnVpbGRXaGVyZShzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtSWRzV2hlcmUgPSB0aGlzLl9idWlsZFNlbGVjdGVkSXRlbUlkc1doZXJlKHdoZXJlLCBzZWxlY3RlZEl0ZW1JRHMsIGlkRmllbGQpO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmdldFJlc3VsdHMoXG4gICAgICAgIHtcbiAgICAgICAgICB0YWJsZTogdGhpcy5tZXRhLnRhYmxlLFxuICAgICAgICAgIHdoZXJlLFxuICAgICAgICAgIG9yZGVyX2J5OiB0aGlzLm1ldGEub3JkZXJfYnksXG4gICAgICAgICAgb2Zmc2V0OiB0aGlzLm1ldGEub2Zmc2V0LFxuICAgICAgICAgIGRpc3RpbmN0X29uOiB0aGlzLm1ldGEuZGlzdGluY3Rfb24sXG4gICAgICAgICAgc3VicXVlcnk6IHRoaXMubWV0YS5zdWJxdWVyeSxcbiAgICAgICAgICBsaW1pdDogdGhpcy5tZXRhLmxpbWl0ID8/IHRoaXMubGltaXQsXG4gICAgICAgIH0sXG4gICAgICAgIHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbUlkc1doZXJlXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlUmVzdWx0cyhkYXRhLCBpZEZpZWxkLCB2YWx1ZUZpZWxkLCBzZWxlY3RlZEl0ZW1JRHMpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0ZWRJdGVtSURzKHNlYXJjaFZhbHVlPzogc3RyaW5nKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLnZhbHVlICYmICghc2VhcmNoVmFsdWUgfHwgc2VhcmNoVmFsdWUgPT09ICcnKSkge1xuICAgICAgY29uc3QgaWRGaWVsZCA9IHRoaXMubWV0YT8udGFibGUuaWRGaWVsZCA/PyAnaWQnO1xuICAgICAgLyoqIFRPRE8g0LrQvtGB0YLRi9C70YwgKi9cbiAgICAgIHJldHVybiB0aGlzLnZhbHVlW2lkRmllbGRdID8gW3RoaXMudmFsdWVbaWRGaWVsZF1dIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkU2VsZWN0ZWRJdGVtSWRzV2hlcmUoXG4gICAgd2hlcmU6IGFueSxcbiAgICBzZWxlY3RlZEl0ZW1JRHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGlkRmllbGQ6IHN0cmluZ1xuICApOiBvYmplY3QgfCB1bmRlZmluZWQge1xuICAgIGlmICh3aGVyZSAmJiBzZWxlY3RlZEl0ZW1JRHMgJiYgc2VsZWN0ZWRJdGVtSURzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7IF9hbmQ6IFt7IFtpZEZpZWxkXTogeyBfaW46IHNlbGVjdGVkSXRlbUlEcyB9IH0sIHdoZXJlXSB9O1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVSZXN1bHRzKFxuICAgIGRhdGE6IGFueSxcbiAgICBpZEZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIHNlbGVjdGVkSXRlbUlEczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IGRhdGEuZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBpZDogaXRlbVtpZEZpZWxkXSA/PyAnJyxcbiAgICAgIG5hbWU6IHRoaXMuX2dldE5hbWVGcm9tRmllbGQoaXRlbSwgdmFsdWVGaWVsZCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbHVlcyhkYXRhLCBpZEZpZWxkLCB2YWx1ZUZpZWxkLCBzZWxlY3RlZEl0ZW1JRHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmFtZUZyb21GaWVsZChpdGVtOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChmaWVsZC5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0TmFtZUZyb21EZWVwRmllbGQoaXRlbSwgZmllbGQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdFNob3dlZFZhbHVlKGl0ZW0sIGZpZWxkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hbWVGcm9tRGVlcEZpZWxkKGl0ZW06IGFueSwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVlcEZpZWxkcyA9IGZpZWxkLnNwbGl0KCcuJyk7XG4gICAgbGV0IHRlbXBPYmplY3QgPSB7IC4uLml0ZW0gfTtcblxuICAgIGZvciAoY29uc3QgZGVlcEZpZWxkIG9mIGRlZXBGaWVsZHMpIHtcbiAgICAgIHRlbXBPYmplY3QgPSB0ZW1wT2JqZWN0W2RlZXBGaWVsZF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbXBPYmplY3Q7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDb250cm9sVmFsdWVzKFxuICAgIGRhdGE6IGFueSxcbiAgICBpZEZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIHNlbGVjdGVkSXRlbUlEczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgaWRTZWxlY3RlZFZhbHVlID0gdGhpcy52YWx1ZT8uW2lkRmllbGRdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUl0ZW1zID1cbiAgICAgIGRhdGEuc2VsZWN0ZWRJZHNRdWVyeVxuICAgICAgICA/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpZFNlbGVjdGVkVmFsdWUgPT09IGl0ZW1baWRGaWVsZF0pXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIGlkOiBpdGVtW2lkRmllbGRdID8/ICcnLFxuICAgICAgICAgIG5hbWU6IHRoaXMuX2dldE5hbWVGcm9tRmllbGQoaXRlbSwgdmFsdWVGaWVsZCksXG4gICAgICAgIH0pKSA/PyBbXTtcblxuICAgIGlmICh0aGlzLmF1dG9GaWxsICYmIGRhdGEuZGF0YS5sZW5ndGggPT09IDEgJiYgdGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShkYXRhLmRhdGEuYXQoMCkpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRJdGVtSURzICYmIHNlbGVjdGVkSXRlbUlEcy5sZW5ndGggPiAwICYmIGF2YWlsYWJsZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IFtpdGVtXSA9IGF2YWlsYWJsZUl0ZW1zO1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShpdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtc1RoYXREb250RXhpc3QgPSBhdmFpbGFibGVJdGVtcy5maWx0ZXIoXG4gICAgICAobmV3X2l0ZW06IGFueSkgPT4gIXRoaXMuaXRlbXMuc29tZSgodmFsdWU6IGFueSkgPT4gdmFsdWUuaWQgPT09IG5ld19pdGVtLmlkKVxuICAgICk7XG5cbiAgICB0aGlzLml0ZW1zLnB1c2goLi4uaXRlbXNUaGF0RG9udEV4aXN0KTtcbiAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVhZG1vZGUgPyByZWFkVGVtcGxhdGUgOiBlZGl0VGVtcGxhdGVcIj5cbiAgPG5nLXRlbXBsYXRlICNyZWFkVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItLXJlYWRcIiBbYXR0ci5zcHJvYy1wYXJhbS1zdHlsZV09XCJwYXJhbVN0eWxlXCI+XG4gICAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInBhcmFtU3R5bGVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiZmlsdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgQGxldCBjdXJyZW50VG9vbHRpcCA9IHJlYWRtb2RlID8gdG9vbHRpcCgpIDogZWRpdFRvb2x0aXAoKTtcblxuICAgICAgICAgICAgICBAaWYgKGN1cnJlbnRUb29sdGlwKSB7XG4gICAgICAgICAgICAgICAgPHNwcm9jLXBhcmFtLWxhYmVsLWhpbnQtaWNvbiBbdHVpSGludF09XCJjdXJyZW50VG9vbHRpcFwiIC8+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGVkLXJvd1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgICAgICBAbGV0IGN1cnJlbnRUb29sdGlwID0gcmVhZG1vZGUgPyB0b29sdGlwKCkgOiBlZGl0VG9vbHRpcCgpO1xuXG4gICAgICAgICAgICBAaWYgKGN1cnJlbnRUb29sdGlwKSB7XG4gICAgICAgICAgICAgIDxzcHJvYy1wYXJhbS1sYWJlbC1oaW50LWljb24gW3R1aUhpbnRdPVwiY3VycmVudFRvb2x0aXBcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGVkLXJvd1wiPjwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgICAgPGRpdiBbdHVpSGludF09XCJ2YWx1ZSAmJiBzaG93ZWRWYWx1ZSAhPT0gJy0nID8gaGludENvbnRlbnQgOiB1bmRlZmluZWRcIiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIEBpZiAodGVtcGxhdGVSZWFkVmFsdWUoKSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlUmVhZFZhbHVlKClcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3Bhbj57eyBzaG93ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLS1lZGl0XCIgW2F0dHIuc3Byb2MtcGFyYW0tc3R5bGVdPVwicGFyYW1TdHlsZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCIgW2NsYXNzLmFwcGxpZWRdPVwiYXBwbGllZCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cbiAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzZWFyY2hhYmxlKSB7XG4gICAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgICAgdHVpQXBwZWFyYW5jZT1cInNwcm9jLWlucHV0LWFwcGVhcmFuY2VcIlxuICAgICAgICAgIFt0dWlUZXh0ZmllbGRTaXplXT1cInNpemUoKVwiXG4gICAgICAgICAgdHVpQ2hldnJvblxuICAgICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICAgIFt0dWlIaW50XT1cInZhbHVlICYmIHNob3dlZFZhbHVlICE9PSAnLScgPyBoaW50Q29udGVudCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NvbnRlbnRdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgICAgICAgW3R1aURyb3Bkb3duTGltaXRXaWR0aF09XCJkcm9wZG93bkxpbWl0V2lkdGgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIChpbnB1dCk9XCJzZWFyY2gkLm5leHQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgICAgdHVpQ29tYm9Cb3hcbiAgICAgICAgICAgIFtzdHJpY3RdPVwic3RyaWN0KClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICA8dHVpLWxvYWRlciBbc2hvd0xvYWRlcl09XCJsb2FkaW5nXCIgW292ZXJsYXldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICBuZXdcbiAgICAgICAgICAgICAgKnR1aVRleHRmaWVsZERyb3Bkb3duXG4gICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtcyB8IHR1aUZpbHRlckJ5SW5wdXQ6IG1hdGNoZXIoKVwiXG4gICAgICAgICAgICAgIFtpdGVtQ29udGVudF09XCJsaXN0SXRlbVRlbXBsYXRlID8/IGRyb3Bkb3duT3B0aW9uQ29udGVudFwiXG4gICAgICAgICAgICAgIFt0dWlEcm9wZG93bk1pbkhlaWdodF09XCJtaW5Ecm9wZG93bkhlaWdodCgpXCJcbiAgICAgICAgICAgICAgW3R1aURyb3Bkb3duTWF4SGVpZ2h0XT1cIm1heERyb3Bkb3duSGVpZ2h0KClcIlxuICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvdHVpLWxvYWRlcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0ZmllbGRJY29uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3R1aS10ZXh0ZmllbGQ+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHR1aS10ZXh0ZmllbGRcbiAgICAgICAgICBbdHVpVGV4dGZpZWxkU2l6ZV09XCJzaXplKClcIlxuICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJzcHJvYy1pbnB1dC1hcHBlYXJhbmNlXCJcbiAgICAgICAgICB0dWlDaGV2cm9uXG4gICAgICAgICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCJcbiAgICAgICAgICBbdHVpSGludF09XCJ2YWx1ZSAmJiBzaG93ZWRWYWx1ZSAhPT0gJy0nID8gaGludENvbnRlbnQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgIFtjb250ZW50XT1cInZhbHVlVGVtcGxhdGVcIlxuICAgICAgICAgIFt0dWlEcm9wZG93bk1pbkhlaWdodF09XCJtaW5Ecm9wZG93bkhlaWdodCgpXCJcbiAgICAgICAgICBbdHVpRHJvcGRvd25NYXhIZWlnaHRdPVwibWF4RHJvcGRvd25IZWlnaHQoKVwiXG4gICAgICAgICAgW3R1aURyb3Bkb3duTGltaXRXaWR0aF09XCJkcm9wZG93bkxpbWl0V2lkdGgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXQgdHVpU2VsZWN0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiAvPlxuXG4gICAgICAgICAgPHR1aS1sb2FkZXIgW3Nob3dMb2FkZXJdPVwibG9hZGluZ1wiIFtvdmVybGF5XT1cInRydWVcIj5cbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgICBbaXRlbUNvbnRlbnRdPVwibGlzdEl0ZW1UZW1wbGF0ZSA/PyBkcm9wZG93bk9wdGlvbkNvbnRlbnRcIlxuICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvdHVpLWxvYWRlcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0ZmllbGRJY29uc1wiIC8+XG4gICAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25PcHRpb25Db250ZW50IGxldC1kYXRhPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7IHN0cmluZ2lmeSgpKGRhdGEpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0ZmllbGRJY29ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRmaWVsZC1pY29ucy1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGlzSW52YWxpZEFuZE5vdFByaXN0aW5lKSB7XG4gICAgICAgICAgICA8c3Byb2MtcGFyYW0taW52YWxpZC1pY29uIFtoaW50XT1cInZhbGlkYXRpb25FcnJvckhpbnQoKVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNoaW50Q29udGVudD4ge3sgc2hvd2VkVmFsdWUgfX0gPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { ParamSwitcherComponent } from './param-switcher.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL3BhcmFtLXN3aXRjaGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUGFyYW1Td2l0Y2hlckNvbXBvbmVudCB9IGZyb20gJy4vcGFyYW0tc3dpdGNoZXIuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHsgSVN3aXRjaGVySXRlbSB9IGZyb20gJy4vcGFyYW0tc3dpdGNoZXIudHlwZXMnO1xuIl19