ngx-register-base 1.1.1 → 1.2.1

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 (145) hide show
  1. package/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +24 -15
  2. package/esm2022/lib/components/column-settings/column-settings.component.mjs +249 -0
  3. package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +80 -0
  4. package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +10 -0
  5. package/esm2022/lib/components/column-settings/index.mjs +3 -0
  6. package/esm2022/lib/components/filter-button/filter-button.component.mjs +3 -3
  7. package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +13 -12
  8. package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +18 -13
  9. package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +12 -10
  10. package/esm2022/lib/components/filters/register-table-filter.component.mjs +27 -34
  11. package/esm2022/lib/components/filters/register-table-filter.module.mjs +7 -3
  12. package/esm2022/lib/components/index.mjs +3 -1
  13. package/esm2022/lib/components/inputs/index.mjs +1 -1
  14. package/esm2022/lib/components/inputs/inputs.module.mjs +1 -5
  15. package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +24 -4
  16. package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +3 -3
  17. package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +7 -3
  18. package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +5 -4
  19. package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +6 -4
  20. package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +3 -3
  21. package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +3 -3
  22. package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +10 -55
  23. package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +8 -7
  24. package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +7 -3
  25. package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +7 -4
  26. package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +3 -3
  27. package/esm2022/lib/components/inputs/param-tree/consts/param-tree.consts.mjs +4 -3
  28. package/esm2022/lib/components/inputs/param-tree/index.mjs +3 -1
  29. package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +34 -26
  30. package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +3 -3
  31. package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +11 -13
  32. package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +12 -9
  33. package/esm2022/lib/components/paginator/paginator.component.mjs +34 -9
  34. package/esm2022/lib/components/register-table/directives/header-template.directive.mjs +18 -0
  35. package/esm2022/lib/components/register-table/model/schema.mjs +1 -1
  36. package/esm2022/lib/components/register-table/pipes/class-by-type.pipe.mjs +12 -4
  37. package/esm2022/lib/components/register-table/register-table.component.mjs +164 -82
  38. package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +18 -0
  39. package/esm2022/lib/components/search-input/search-input.component.mjs +28 -0
  40. package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +26 -15
  41. package/esm2022/lib/consts/register-base.consts.mjs +1 -1
  42. package/esm2022/lib/core/form-group-wrapper/errors-consts.mjs +1 -1
  43. package/esm2022/lib/core/input-control/input-control.mjs +3 -1
  44. package/esm2022/lib/core/param/param-base.mjs +6 -2
  45. package/esm2022/lib/core/param/param-select-base.mjs +2 -2
  46. package/esm2022/lib/core/register-base/register-base.mjs +38 -33
  47. package/esm2022/lib/directives/date/date-time.types.mjs +5 -1
  48. package/esm2022/lib/directives/index.mjs +2 -1
  49. package/esm2022/lib/directives/number/number-only.directive.mjs +23 -8
  50. package/esm2022/lib/directives/sticky/sticky.directive.mjs +2 -3
  51. package/esm2022/lib/services/date-time.service.mjs +35 -39
  52. package/esm2022/lib/services/dialog/dialog.service.mjs +53 -0
  53. package/esm2022/lib/services/dialog/dialog.types.mjs +2 -0
  54. package/esm2022/lib/services/dialog/index.mjs +3 -0
  55. package/esm2022/lib/services/filter/filters-transmit.service.mjs +3 -3
  56. package/esm2022/lib/services/index.mjs +5 -3
  57. package/esm2022/lib/services/inputs-state.service.mjs +3 -3
  58. package/esm2022/lib/services/inputs.service.mjs +2 -1
  59. package/esm2022/lib/services/key-pressed.service.mjs +12 -5
  60. package/esm2022/lib/services/resize-window-observer.service.mjs +33 -0
  61. package/esm2022/lib/types/event.types.mjs +2 -0
  62. package/esm2022/lib/types/index.mjs +2 -1
  63. package/esm2022/lib/types/inputs.types.mjs +1 -1
  64. package/esm2022/lib/types/register-base.types.mjs +1 -1
  65. package/esm2022/lib/types/user-profile.types.mjs +1 -1
  66. package/esm2022/lib/utils/select-all-utils.mjs +1 -1
  67. package/fesm2022/ngx-register-base.mjs +1838 -1248
  68. package/fesm2022/ngx-register-base.mjs.map +1 -1
  69. package/icons/16-editor-dots.svg +10 -0
  70. package/icons/calendar-blank.svg +10 -0
  71. package/icons/calendar-custom.svg +4 -0
  72. package/icons/cancel-close.svg +3 -0
  73. package/icons/circle-question-empty.svg +10 -0
  74. package/icons/close.svg +3 -0
  75. package/icons/eraser.svg +10 -0
  76. package/icons/eye-closed.svg +13 -0
  77. package/icons/eye.svg +10 -0
  78. package/icons/lock.svg +3 -0
  79. package/icons/settings.svg +3 -0
  80. package/icons/triangle-down.svg +3 -0
  81. package/lib/components/checkbox-selector/checkbox-selector.component.d.ts +8 -6
  82. package/lib/components/column-settings/column-settings.component.d.ts +80 -0
  83. package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +24 -0
  84. package/lib/components/column-settings/consts/column-settings.consts.d.ts +8 -0
  85. package/lib/components/column-settings/index.d.ts +2 -0
  86. package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +7 -3
  87. package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +9 -4
  88. package/lib/components/filters/components/filter-list/filters-section/filters-section.component.d.ts +4 -4
  89. package/lib/components/filters/register-table-filter.component.d.ts +7 -5
  90. package/lib/components/filters/register-table-filter.module.d.ts +2 -1
  91. package/lib/components/index.d.ts +2 -0
  92. package/lib/components/inputs/index.d.ts +1 -0
  93. package/lib/components/inputs/inputs.module.d.ts +3 -4
  94. package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +5 -0
  95. package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +8 -4
  96. package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +0 -4
  97. package/lib/components/inputs/param-select/param-select.component.d.ts +2 -1
  98. package/lib/components/inputs/param-text/param-text.component.d.ts +5 -1
  99. package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +3 -1
  100. package/lib/components/inputs/param-tree/consts/param-tree.consts.d.ts +2 -1
  101. package/lib/components/inputs/param-tree/index.d.ts +2 -0
  102. package/lib/components/inputs/param-tree/param-tree.component.d.ts +6 -2
  103. package/lib/components/paginator/paginator.component.d.ts +7 -1
  104. package/lib/components/register-table/directives/header-template.directive.d.ts +9 -0
  105. package/lib/components/register-table/model/schema.d.ts +2 -1
  106. package/lib/components/register-table/register-table.component.d.ts +38 -16
  107. package/lib/components/reset-settings-form/reset-settings-form.component.d.ts +9 -0
  108. package/lib/components/search-input/search-input.component.d.ts +11 -0
  109. package/lib/components/sliding-panel/sliding-panel.component.d.ts +7 -9
  110. package/lib/consts/register-base.consts.d.ts +3 -3
  111. package/lib/core/form-group-wrapper/errors-consts.d.ts +1 -1
  112. package/lib/core/input-control/input-control.d.ts +3 -0
  113. package/lib/core/param/param-base.d.ts +1 -0
  114. package/lib/core/register-base/register-base.d.ts +14 -18
  115. package/lib/directives/date/date-time.types.d.ts +6 -2
  116. package/lib/directives/index.d.ts +1 -0
  117. package/lib/directives/number/number-only.directive.d.ts +6 -3
  118. package/lib/services/date-time.service.d.ts +7 -5
  119. package/lib/services/dialog/dialog.service.d.ts +22 -0
  120. package/lib/services/dialog/dialog.types.d.ts +11 -0
  121. package/lib/services/dialog/index.d.ts +2 -0
  122. package/lib/services/index.d.ts +4 -2
  123. package/lib/services/inputs-state.service.d.ts +6 -6
  124. package/lib/services/inputs.service.d.ts +1 -1
  125. package/lib/services/key-pressed.service.d.ts +5 -2
  126. package/lib/services/resize-window-observer.service.d.ts +11 -0
  127. package/lib/types/event.types.d.ts +3 -0
  128. package/lib/types/index.d.ts +1 -0
  129. package/lib/types/inputs.types.d.ts +3 -0
  130. package/lib/types/register-base.types.d.ts +2 -2
  131. package/lib/types/user-profile.types.d.ts +2 -2
  132. package/lib/utils/select-all-utils.d.ts +1 -1
  133. package/package.json +1 -1
  134. package/schematics/ng-update/update-prefix/index.js +7 -1
  135. package/schematics/ng-update/update-prefix/index.js.map +1 -1
  136. package/styles/buttons.less +13 -0
  137. package/styles/classes.less +0 -7
  138. package/styles/common-param.less +130 -0
  139. package/styles/indicator.less +8 -0
  140. package/styles/overrides/tui/tui-input.less +161 -0
  141. package/styles/overrides/tui/tui-styles.less +3 -2
  142. package/styles/register-table.less +38 -22
  143. package/styles/variables.less +9 -0
  144. package/esm2022/lib/components/inputs/sub-components/param-clear-button/param-clear-button.component.mjs +0 -26
  145. package/lib/components/inputs/sub-components/param-clear-button/param-clear-button.component.d.ts +0 -10
@@ -1,16 +1,16 @@
1
- import { ChangeDetectionStrategy, Component, effect, inject, input, output, signal, untracked, } from '@angular/core';
2
- import { TuiButtonLoading, TuiCheckbox } from '@taiga-ui/kit';
3
- import { TuiButton, TuiDropdown, TuiTextfield } from '@taiga-ui/core';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal, untracked, } from '@angular/core';
2
+ import { SelectionTypes } from './checkbox-selector.types';
3
+ import { TuiButtonLoading, TuiCheckbox, TuiInputNumber, TuiTooltip } from '@taiga-ui/kit';
4
+ import { TuiButton, TuiDropdown, TuiIcon, TuiTextfield } from '@taiga-ui/core';
4
5
  import { FormsModule } from '@angular/forms';
5
6
  import { TuiTextfieldControllerModule } from '@taiga-ui/legacy';
6
- import { NumberOnlyDirective } from '../../directives/number/number-only.directive';
7
- import { SelectionTypes } from './checkbox-selector.types';
8
- import { ERegisterObjectState } from '../../types/register-base.types';
9
- import { SelectedObjectsStateService } from '../../services/selected-objects-state.service';
7
+ import { ERegisterObjectState } from '../../types';
8
+ import { SelectedObjectsStateService } from '../../services';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@taiga-ui/core";
12
11
  import * as i2 from "@angular/forms";
13
12
  import * as i3 from "@taiga-ui/legacy";
13
+ import * as i4 from "@taiga-ui/kit";
14
14
  export class CheckboxSelectorComponent {
15
15
  constructor() {
16
16
  this.totalRecords = input();
@@ -18,12 +18,20 @@ export class CheckboxSelectorComponent {
18
18
  this.selected = input(new Set());
19
19
  this.disabled = input(false);
20
20
  this.loading = input(false);
21
+ this.inputMaxValue = input(null);
21
22
  this.onApply = output();
22
23
  this._selectedService = inject(SelectedObjectsStateService, { optional: true });
23
24
  this.ESelectionTypes = SelectionTypes;
24
25
  this.isOpen = signal(false);
25
26
  this.selectedElement = signal(null);
26
- this.inputValue = signal('');
27
+ this.inputValue = signal(null);
28
+ this.inputDescription = computed(() => {
29
+ const max = this.inputMaxValue();
30
+ if (max === null) {
31
+ return '';
32
+ }
33
+ return `Максимум для ввода - ${max}`;
34
+ });
27
35
  this.stateObjects = this._selectedService?.state;
28
36
  this.stateUnfetchedObjects = this._selectedService?.stateUnfetchedObjects;
29
37
  effect(() => {
@@ -48,7 +56,7 @@ export class CheckboxSelectorComponent {
48
56
  return;
49
57
  }
50
58
  if (result === SelectionTypes.COUNT) {
51
- result = Number(this.inputValue());
59
+ result = this.inputValue();
52
60
  }
53
61
  this.onApply.emit(result);
54
62
  this.close();
@@ -95,13 +103,13 @@ export class CheckboxSelectorComponent {
95
103
  this.inputValue.set(value);
96
104
  }
97
105
  dropSelection() {
98
- this.inputValue.set('');
106
+ this.inputValue.set(null);
99
107
  this.selectedElement.set(null);
100
108
  this.onApply.emit(null);
101
109
  this.close();
102
110
  }
103
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxSelectorComponent, isStandalone: true, selector: "sproc-checkbox-selector", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onApply: "onApply" }, ngImport: i0, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiTextfield\n numberOnly\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</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\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"], dependencies: [{ kind: "component", type: TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownManual, selector: "[tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i3.TuiTextfieldAppearanceDirective, selector: "[tuiTextfieldAppearance]", inputs: ["tuiTextfieldAppearance"] }, { kind: "directive", type: i3.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i3.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "directive", type: NumberOnlyDirective, selector: "[numberOnly]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxSelectorComponent, isStandalone: true, selector: "sproc-checkbox-selector", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, inputMaxValue: { classPropertyName: "inputMaxValue", publicName: "inputMaxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onApply: "onApply" }, ngImport: i0, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon\n icon=\"assets/ngx-register-base/icons/circle-question-empty.svg\"\n [tuiTooltip]=\"inputDescription()\"\n />\n }\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</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\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"], dependencies: [{ kind: "component", type: TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownManual, selector: "[tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i3.TuiTextfieldAppearanceDirective, selector: "[tuiTextfieldAppearance]", inputs: ["tuiTextfieldAppearance"] }, { kind: "directive", type: i3.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i3.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "directive", type: i4.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "directive", type: TuiTooltip, selector: "tui-icon[tuiTooltip]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
113
  }
106
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxSelectorComponent, decorators: [{
107
115
  type: Component,
@@ -113,8 +121,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
113
121
  TuiTextfieldControllerModule,
114
122
  TuiButton,
115
123
  TuiButtonLoading,
116
- NumberOnlyDirective,
117
- NumberOnlyDirective,
118
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiTextfield\n numberOnly\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</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\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"] }]
124
+ TuiInputNumber,
125
+ TuiTooltip,
126
+ TuiIcon,
127
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon\n icon=\"assets/ngx-register-base/icons/circle-question-empty.svg\"\n [tuiTooltip]=\"inputDescription()\"\n />\n }\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</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\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"] }]
119
128
  }], ctorParameters: () => [] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LXNlbGVjdG9yL2NoZWNrYm94LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQXVCLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7OztBQW9CNUYsTUFBTSxPQUFPLHlCQUF5QjtJQW9CcEM7UUFuQk8saUJBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztR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UDt3QkFDUCxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixXQUFXO3dCQUNYLDRCQUE0Qjt3QkFDNUIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3FCQUNwQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEcm9wZG93biwgVHVpVGV4dGZpZWxkIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5pbXBvcnQgeyBTY2FsYXJVVUlEIH0gZnJvbSAnaGFzdXJhJztcbmltcG9ydCB7IE51bWJlck9ubHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL251bWJlci9udW1iZXItb25seS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwbHlTZWxlY3Rpb25UeXBlcywgU2VsZWN0aW9uVHlwZXMgfSBmcm9tICcuL2NoZWNrYm94LXNlbGVjdG9yLnR5cGVzJztcbmltcG9ydCB7IEVSZWdpc3Rlck9iamVjdFN0YXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmVnaXN0ZXItYmFzZS50eXBlcyc7XG5pbXBvcnQgeyBTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3RlZC1vYmplY3RzLXN0YXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHJvYy1jaGVja2JveC1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LXNlbGVjdG9yLmNvbXBvbmVudC5sZXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUdWlDaGVja2JveCxcbiAgICBUdWlEcm9wZG93bixcbiAgICBUdWlUZXh0ZmllbGQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICBUdWlCdXR0b24sXG4gICAgVHVpQnV0dG9uTG9hZGluZyxcbiAgICBOdW1iZXJPbmx5RGlyZWN0aXZlLFxuICAgIE51bWJlck9ubHlEaXJlY3RpdmUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveFNlbGVjdG9yQ29tcG9uZW50IHtcbiAgcHVibGljIHRvdGFsUmVjb3JkcyA9IGlucHV0PG51bWJlcj4oKTtcbiAgLyoqIEBkZXByZWNhdGVkINC40YHQv9C+0LvRjNC30YPQudGC0LUgc3RhdGVPYmplY3RzICovXG4gIHB1YmxpYyBzZWxlY3RlZCA9IGlucHV0KG5ldyBTZXQ8U2NhbGFyVVVJRD4oKSk7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcHVibGljIGxvYWRpbmcgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4oZmFsc2UpO1xuXG4gIHB1YmxpYyBvbkFwcGx5ID0gb3V0cHV0PEFwcGx5U2VsZWN0aW9uVHlwZXM+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRTZXJ2aWNlID0gaW5qZWN0KFNlbGVjdGVkT2JqZWN0c1N0YXRlU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVNlbGVjdGlvblR5cGVzID0gU2VsZWN0aW9uVHlwZXM7XG5cbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEVsZW1lbnQgPSBzaWduYWw8U2VsZWN0aW9uVHlwZXMgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGlucHV0VmFsdWUgPSBzaWduYWwoJycpO1xuXG4gIHByb3RlY3RlZCBzdGF0ZU9iamVjdHMgPSB0aGlzLl9zZWxlY3RlZFNlcnZpY2U/LnN0YXRlO1xuICBwcm90ZWN0ZWQgc3RhdGVVbmZldGNoZWRPYmplY3RzID0gdGhpcy5fc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLmxvYWRpbmcoKTtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMubG9hZGluZygpO1xuXG4gICAgICBpZiAobG9hZGluZyA9PT0gZmFsc2UgJiYgaXNPcGVuKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RFbGVtZW50KG5ld0VsZW1lbnQ6IFNlbGVjdGlvblR5cGVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQudXBkYXRlKChjdXJyZW50RWxlbWVudCkgPT5cbiAgICAgIGN1cnJlbnRFbGVtZW50ID09PSBuZXdFbGVtZW50ID8gbnVsbCA6IG5ld0VsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGxldCByZXN1bHQ6IFNlbGVjdGlvblR5cGVzIHwgbnVtYmVyIHwgbnVsbCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50KCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IFNlbGVjdGlvblR5cGVzLkNPVU5UKSB7XG4gICAgICByZXN1bHQgPSBOdW1iZXIodGhpcy5pbnB1dFZhbHVlKCkpO1xuICAgIH1cblxuICAgIHRoaXMub25BcHBseS5lbWl0KHJlc3VsdCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgdGhpcy5pc09wZW4udXBkYXRlKChpc09wZW4pID0+ICFpc09wZW4pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjSW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVPYmplY3RzPy4oKTtcblxuICAgIGlmIChzdGF0ZSkge1xuICAgICAgY29uc3QgZmV0Y2hlZE9iamVjdHMgPSBbLi4uc3RhdGUudmFsdWVzKCldO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRPYmplY3RzID0gZmV0Y2hlZE9iamVjdHMuZmlsdGVyKFxuICAgICAgICAob2JqKSA9PiBvYmouc3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEXG4gICAgICApO1xuXG4gICAgICBjb25zdCBzb21lRmV0Y2hlZElzTm90U2VsZWN0ZWQgPSBmZXRjaGVkT2JqZWN0cy5sZW5ndGggIT09IHNlbGVjdGVkT2JqZWN0cy5sZW5ndGg7XG4gICAgICBjb25zdCBmZXRjaGVkSXNBbGwgPSBmZXRjaGVkT2JqZWN0cy5sZW5ndGggPT09IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gICAgICBjb25zdCB1bmZldGNoZWRBcmVTZWxlY3RlZCA9IHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzISgpID09PSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRDtcblxuICAgICAgaWYgKHNlbGVjdGVkT2JqZWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBzb21lRmV0Y2hlZElzTm90U2VsZWN0ZWQgfHwgIShmZXRjaGVkSXNBbGwgfHwgdW5mZXRjaGVkQXJlU2VsZWN0ZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIWZldGNoZWRJc0FsbCAmJiB1bmZldGNoZWRBcmVTZWxlY3RlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCgpLnNpemUgPiAwICYmIHRoaXMuc2VsZWN0ZWQoKS5zaXplICE9PSB0aGlzLnRvdGFsUmVjb3JkcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZU9iamVjdHM/LigpO1xuXG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICBjb25zdCBmZXRjaGVkT2JqZWN0cyA9IFsuLi5zdGF0ZS52YWx1ZXMoKV07XG4gICAgICBjb25zdCBzZWxlY3RlZE9iamVjdHMgPSBmZXRjaGVkT2JqZWN0cy5maWx0ZXIoXG4gICAgICAgIChvYmopID0+IG9iai5zdGF0ZSA9PT0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURURcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZldGNoZWRBcmVTZWxlY3RlZCA9IGZldGNoZWRPYmplY3RzLmxlbmd0aCA9PT0gc2VsZWN0ZWRPYmplY3RzLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXNBbGwgPSBzZWxlY3RlZE9iamVjdHMubGVuZ3RoID09PSB0aGlzLnRvdGFsUmVjb3JkcygpO1xuICAgICAgY29uc3QgdW5mZXRjaGVkQXJlU2VsZWN0ZWQgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyEoKSA9PT0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQ7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHNlbGVjdGVkT2JqZWN0cy5sZW5ndGggPiAwICYmIGZldGNoZWRBcmVTZWxlY3RlZCAmJiAoc2VsZWN0ZWRJc0FsbCB8fCB1bmZldGNoZWRBcmVTZWxlY3RlZClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKS5zaXplID4gMCAmJiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSA9PT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5wdXRWYWx1ZUNoYW5nZXModmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldChTZWxlY3Rpb25UeXBlcy5DT1VOVCk7XG4gICAgdGhpcy5pbnB1dFZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tib3hfX2NvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGUoKTsgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCI+XG4gIEBsZXQgaW5kZXRlcm1pbmF0ZSA9IGNhbGNJbmRldGVybWluYXRlKCk7XG4gIEBsZXQgY2hlY2tlZCA9IGNhbGNDaGVja2VkKCk7XG5cbiAgPGlucHV0XG4gICAgdHVpQ2hlY2tib3hcbiAgICBzaXplPVwic1wiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJpc09wZW4oKVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIC8+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJkcm9wZG93bl9fY29udGVudFwiIGlkPVwiY2hlY2tib3hfX2Ryb3Bkb3duX19jb250ZW50XCI+XG4gICAgQGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudCgpO1xuXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuQUxMXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RFbGVtZW50KEVTZWxlY3Rpb25UeXBlcy5BTEwpXCJcbiAgICA+XG4gICAgICDQktGL0LHRgNCw0YLRjCDQstGB0LVcbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuVklTSUJMRVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0RWxlbWVudChFU2VsZWN0aW9uVHlwZXMuVklTSUJMRSlcIlxuICAgID5cbiAgICAgINCS0YvQsdGA0LDRgtGMINCy0LjQtNC40LzQvtC1XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImRyb3Bkb3duX19lbGVtZW50XCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLklOVkVSU0VcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEVsZW1lbnQoRVNlbGVjdGlvblR5cGVzLklOVkVSU0UpXCJcbiAgICA+XG4gICAgICDQmtGA0L7QvNC1INCy0YvQtNC10LvQtdC90L3QvtCz0L5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkcm9wZG93bl9fc2VsZWN0LXZhbHVlXCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLkNPVU5UXCJcbiAgICA+XG4gICAgICA8c3Bhbj7QktGL0LHRgNCw0YLRjDwvc3Bhbj5cbiAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cInRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImZsZXgtMVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgIG51bWJlck9ubHlcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cItCS0LLQtdC00LjRgtC1INGH0LjRgdC70L5cIlxuICAgICAgICAgIFtuZ01vZGVsXT1cImlucHV0VmFsdWUoKVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZXMoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzaW4pPVwib25JbnB1dEZvY3VzKClcIlxuICAgICAgICAvPlxuICAgICAgPC90dWktdGV4dGZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bl9fZm9vdGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duX19idXR0b24gZHJvcGRvd25fX2J1dHRvbl9fYXBwbHlcIlxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZygpXCJcbiAgICAgICAgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIlxuICAgICAgPlxuICAgICAgICDQn9GA0LjQvNC10L3QuNGC0YxcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bl9fYnV0dG9uIGRyb3Bkb3duX19idXR0b25fX2NhbmNlbFwiXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmUtZ3JheXNjYWxlXCJcbiAgICAgICAgKGNsaWNrKT1cImRyb3BTZWxlY3Rpb24oKVwiXG4gICAgICA+XG4gICAgICAgINCe0YLQvNC10L3QsFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LXNlbGVjdG9yL2NoZWNrYm94LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQXFCN0QsTUFBTSxPQUFPLHlCQUF5QjtJQStCcEM7UUE5Qk8saUJBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN0Qywy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QUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzsrR0F2SVUseUJBQXlCO21HQUF6Qix5QkFBeUIsNnhCQ3ZDdEMsNDhGQTJGQSxrb0dEakVJLFdBQVcseXJCQUdYLFdBQVcsOG1CQUNYLDRCQUE0QixxYUFDNUIsU0FBUyxvSUFDVCxnQkFBZ0IsZ1FBRWhCLFVBQVUsbUZBQ1YsT0FBTzs7NEZBSUUseUJBQXlCO2tCQW5CckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsNEJBQTRCO3dCQUM1QixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLE9BQU87cUJBQ1IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvblR5cGVzLCBBcHBseVNlbGVjdGlvblR5cGVzIH0gZnJvbSAnLi9jaGVja2JveC1zZWxlY3Rvci50eXBlcyc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCwgVHVpSW5wdXROdW1iZXIsIFR1aVRvb2x0aXAgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRHJvcGRvd24sIFR1aUljb24sIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuaW1wb3J0IHsgU2NhbGFyVVVJRCB9IGZyb20gJ2hhc3VyYSc7XG5pbXBvcnQgeyBFUmVnaXN0ZXJPYmplY3RTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlbGVjdGVkT2JqZWN0c1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtY2hlY2tib3gtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQubGVzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVHVpQ2hlY2tib3gsXG4gICAgVHVpRHJvcGRvd24sXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgVHVpQnV0dG9uLFxuICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgVHVpSW5wdXROdW1iZXIsXG4gICAgVHVpVG9vbHRpcCxcbiAgICBUdWlJY29uLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hTZWxlY3RvckNvbXBvbmVudCB7XG4gIHB1YmxpYyB0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KCk7XG4gIC8qKiBAZGVwcmVjYXRlZCDQuNGB0L/QvtC70YzQt9GD0LnRgtC1IHN0YXRlT2JqZWN0cyAqL1xuICBwdWJsaWMgc2VsZWN0ZWQgPSBpbnB1dChuZXcgU2V0PFNjYWxhclVVSUQ+KCkpO1xuICBwdWJsaWMgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiB8IG51bGw+KGZhbHNlKTtcbiAgcHVibGljIGlucHV0TWF4VmFsdWUgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgb25BcHBseSA9IG91dHB1dDxBcHBseVNlbGVjdGlvblR5cGVzPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkU2VydmljZSA9IGluamVjdChTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEVTZWxlY3Rpb25UeXBlcyA9IFNlbGVjdGlvblR5cGVzO1xuXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRFbGVtZW50ID0gc2lnbmFsPFNlbGVjdGlvblR5cGVzIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpbnB1dFZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dERlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMuaW5wdXRNYXhWYWx1ZSgpO1xuXG4gICAgaWYgKG1heCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBg0JzQsNC60YHQuNC80YPQvCDQtNC70Y8g0LLQstC+0LTQsCAtICR7bWF4fWA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBzdGF0ZU9iamVjdHMgPSB0aGlzLl9zZWxlY3RlZFNlcnZpY2U/LnN0YXRlO1xuICBwcm90ZWN0ZWQgc3RhdGVVbmZldGNoZWRPYmplY3RzID0gdGhpcy5fc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLmxvYWRpbmcoKTtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMubG9hZGluZygpO1xuXG4gICAgICBpZiAobG9hZGluZyA9PT0gZmFsc2UgJiYgaXNPcGVuKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RFbGVtZW50KG5ld0VsZW1lbnQ6IFNlbGVjdGlvblR5cGVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQudXBkYXRlKChjdXJyZW50RWxlbWVudCkgPT5cbiAgICAgIGN1cnJlbnRFbGVtZW50ID09PSBuZXdFbGVtZW50ID8gbnVsbCA6IG5ld0VsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGxldCByZXN1bHQ6IFNlbGVjdGlvblR5cGVzIHwgbnVtYmVyIHwgbnVsbCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50KCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IFNlbGVjdGlvblR5cGVzLkNPVU5UKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmlucHV0VmFsdWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQXBwbHkuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnVwZGF0ZSgoaXNPcGVuKSA9PiAhaXNPcGVuKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY0luZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlT2JqZWN0cz8uKCk7XG5cbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZldGNoZWRPYmplY3RzID0gWy4uLnN0YXRlLnZhbHVlcygpXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT2JqZWN0cyA9IGZldGNoZWRPYmplY3RzLmZpbHRlcihcbiAgICAgICAgKG9iaikgPT4gb2JqLnN0YXRlID09PSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc29tZUZldGNoZWRJc05vdFNlbGVjdGVkID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoICE9PSBzZWxlY3RlZE9iamVjdHMubGVuZ3RoO1xuICAgICAgY29uc3QgZmV0Y2hlZElzQWxsID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoID09PSB0aGlzLnRvdGFsUmVjb3JkcygpO1xuICAgICAgY29uc3QgdW5mZXRjaGVkQXJlU2VsZWN0ZWQgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyEoKSA9PT0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQ7XG5cbiAgICAgIGlmIChzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gc29tZUZldGNoZWRJc05vdFNlbGVjdGVkIHx8ICEoZmV0Y2hlZElzQWxsIHx8IHVuZmV0Y2hlZEFyZVNlbGVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICFmZXRjaGVkSXNBbGwgJiYgdW5mZXRjaGVkQXJlU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKS5zaXplID4gMCAmJiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSAhPT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVPYmplY3RzPy4oKTtcblxuICAgIGlmIChzdGF0ZSkge1xuICAgICAgY29uc3QgZmV0Y2hlZE9iamVjdHMgPSBbLi4uc3RhdGUudmFsdWVzKCldO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRPYmplY3RzID0gZmV0Y2hlZE9iamVjdHMuZmlsdGVyKFxuICAgICAgICAob2JqKSA9PiBvYmouc3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEXG4gICAgICApO1xuXG4gICAgICBjb25zdCBmZXRjaGVkQXJlU2VsZWN0ZWQgPSBmZXRjaGVkT2JqZWN0cy5sZW5ndGggPT09IHNlbGVjdGVkT2JqZWN0cy5sZW5ndGg7XG4gICAgICBjb25zdCBzZWxlY3RlZElzQWxsID0gc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA9PT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgICAgIGNvbnN0IHVuZmV0Y2hlZEFyZVNlbGVjdGVkID0gdGhpcy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHMhKCkgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCAmJiBmZXRjaGVkQXJlU2VsZWN0ZWQgJiYgKHNlbGVjdGVkSXNBbGwgfHwgdW5mZXRjaGVkQXJlU2VsZWN0ZWQpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSA+IDAgJiYgdGhpcy5zZWxlY3RlZCgpLnNpemUgPT09IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlucHV0VmFsdWVDaGFuZ2VzKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tib3hfX2NvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGUoKTsgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCI+XG4gIEBsZXQgaW5kZXRlcm1pbmF0ZSA9IGNhbGNJbmRldGVybWluYXRlKCk7XG4gIEBsZXQgY2hlY2tlZCA9IGNhbGNDaGVja2VkKCk7XG5cbiAgPGlucHV0XG4gICAgdHVpQ2hlY2tib3hcbiAgICBzaXplPVwic1wiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJpc09wZW4oKVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIC8+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJkcm9wZG93bl9fY29udGVudFwiIGlkPVwiY2hlY2tib3hfX2Ryb3Bkb3duX19jb250ZW50XCI+XG4gICAgQGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudCgpO1xuXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuQUxMXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RFbGVtZW50KEVTZWxlY3Rpb25UeXBlcy5BTEwpXCJcbiAgICA+XG4gICAgICDQktGL0LHRgNCw0YLRjCDQstGB0LVcbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuVklTSUJMRVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0RWxlbWVudChFU2VsZWN0aW9uVHlwZXMuVklTSUJMRSlcIlxuICAgID5cbiAgICAgINCS0YvQsdGA0LDRgtGMINCy0LjQtNC40LzQvtC1XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImRyb3Bkb3duX19lbGVtZW50XCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLklOVkVSU0VcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEVsZW1lbnQoRVNlbGVjdGlvblR5cGVzLklOVkVSU0UpXCJcbiAgICA+XG4gICAgICDQmtGA0L7QvNC1INCy0YvQtNC10LvQtdC90L3QvtCz0L5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkcm9wZG93bl9fc2VsZWN0LXZhbHVlXCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLkNPVU5UXCJcbiAgICA+XG4gICAgICA8c3Bhbj7QktGL0LHRgNCw0YLRjDwvc3Bhbj5cbiAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cInRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImZsZXgtMVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR1aUlucHV0TnVtYmVyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+XCJcbiAgICAgICAgICBbbWF4XT1cImlucHV0TWF4VmFsdWUoKVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlcygkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXNpbik9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChpbnB1dERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgIGljb249XCJhc3NldHMvbmd4LXJlZ2lzdGVyLWJhc2UvaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLWVtcHR5LnN2Z1wiXG4gICAgICAgICAgICBbdHVpVG9vbHRpcF09XCJpbnB1dERlc2NyaXB0aW9uKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fX2Zvb3RlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bl9fYnV0dG9uIGRyb3Bkb3duX19idXR0b25fX2FwcGx5XCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmcoKVwiXG4gICAgICAgIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAg0J/RgNC40LzQtdC90LjRgtGMXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2J1dHRvbiBkcm9wZG93bl9fYnV0dG9uX19jYW5jZWxcIlxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lLWdyYXlzY2FsZVwiXG4gICAgICAgIChjbGljayk9XCJkcm9wU2VsZWN0aW9uKClcIlxuICAgICAgPlxuICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuIl19