myrta-ui 17.0.0-beta.9 → 17.0.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 (140) hide show
  1. package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +4 -3
  2. package/esm2022/lib/components/breadcrumbs/breadcrumbs.enum.mjs +1 -1
  3. package/esm2022/lib/components/breadcrumbs/breadcrumbs.module.mjs +10 -4
  4. package/esm2022/lib/components/dropdown/dropdown.component.mjs +2 -2
  5. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +5 -12
  6. package/esm2022/lib/components/form/checkbox/checkbox.enum.mjs +2 -5
  7. package/esm2022/lib/components/form/checkbox-group/checkbox-group.component.mjs +82 -44
  8. package/esm2022/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.mjs +4 -4
  9. package/esm2022/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +51 -43
  10. package/esm2022/lib/components/form/checkbox-group/helpers/change-group-value.mjs +7 -8
  11. package/esm2022/lib/components/form/checkbox-group/helpers/change-item-value.mjs +2 -2
  12. package/esm2022/lib/components/form/checkbox-group/helpers/filter-search-group.mjs +5 -5
  13. package/esm2022/lib/components/form/checkbox-group/helpers/get-checked-items.mjs +2 -2
  14. package/esm2022/lib/components/form/checkbox-group/helpers/get-inner-list.helper.mjs +46 -0
  15. package/esm2022/lib/components/form/checkbox-group/helpers/get-item-by-id.mjs +4 -4
  16. package/esm2022/lib/components/form/checkbox-group/helpers/get-sorted-list.mjs +2 -2
  17. package/esm2022/lib/components/form/checkbox-group/helpers/inner-list-to-list.helper.mjs +13 -0
  18. package/esm2022/lib/components/form/checkbox-group/models/checkbox-group.model.mjs +1 -1
  19. package/esm2022/lib/components/form/editor/editor.component.mjs +9 -6
  20. package/esm2022/lib/components/form/input-file/input-file.component.mjs +3 -5
  21. package/esm2022/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +1 -3
  22. package/esm2022/lib/components/form/input-file-image/input-file-image.component.mjs +100 -106
  23. package/esm2022/lib/components/form/input-opt/components/input-opt/input-opt.component.mjs +2 -2
  24. package/esm2022/lib/components/form/input-password/input-password.component.mjs +2 -2
  25. package/esm2022/lib/components/form/input-phone/input-phone.component.mjs +2 -2
  26. package/esm2022/lib/components/form/input-search/input-search.component.mjs +2 -2
  27. package/esm2022/lib/components/form/input-select/input-select.component.mjs +4 -4
  28. package/esm2022/lib/components/form/input-tel/input-tel.component.mjs +2 -2
  29. package/esm2022/lib/components/form/input-text/input-text.component.mjs +2 -2
  30. package/esm2022/lib/components/form/input-textarea/input-textarea.component.mjs +2 -2
  31. package/esm2022/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.mjs +7 -4
  32. package/esm2022/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +9 -3
  33. package/esm2022/lib/components/form/radio-group/models/radio-group.model.mjs +1 -1
  34. package/esm2022/lib/components/form/radio-group/radio-group.component.mjs +32 -23
  35. package/esm2022/lib/components/form/radio-group/radio-group.module.mjs +25 -4
  36. package/esm2022/lib/components/form/rating/rating.component.mjs +2 -2
  37. package/esm2022/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +1 -3
  38. package/esm2022/lib/components/icon-button/icon-button.component.mjs +9 -3
  39. package/esm2022/lib/components/icon-button/icon-button.enum.mjs +2 -1
  40. package/esm2022/lib/components/label/label.component.mjs +2 -2
  41. package/esm2022/lib/components/link/link.component.mjs +22 -9
  42. package/esm2022/lib/components/link/link.module.mjs +5 -4
  43. package/esm2022/lib/components/paginator/paginator.component.mjs +5 -5
  44. package/esm2022/lib/components/paginator/paginator.module.mjs +8 -8
  45. package/esm2022/lib/components/pdf-viewer/pdf-viewer.component.mjs +268 -0
  46. package/esm2022/lib/components/pdf-viewer/pdf-viewer.module.mjs +59 -0
  47. package/esm2022/lib/components/save-state/components/save-state-editor/save-state-editor.component.mjs +2 -2
  48. package/esm2022/lib/components/save-state/save-state.component.mjs +3 -3
  49. package/esm2022/lib/components/save-state/save-state.enum.mjs +1 -1
  50. package/esm2022/lib/components/table/table.component.mjs +3 -3
  51. package/esm2022/lib/components/truncate-text/truncate-text.component.mjs +1 -1
  52. package/esm2022/lib/services/file-upload/file-upload.service.mjs +2 -3
  53. package/esm2022/lib/services/index.mjs +5 -1
  54. package/esm2022/lib/services/modal-service/components/alert-modal/alert-modal.component.mjs +1 -3
  55. package/esm2022/lib/services/modal-service/components/confirm-modal/confirm-modal.component.mjs +1 -3
  56. package/esm2022/lib/services/modal-service/helpers/modal.component.mjs +1 -2
  57. package/esm2022/lib/services/modal-service/modal-service.service.mjs +1 -1
  58. package/esm2022/lib/services/mrx-form-validator/constants/invalid-messages.mjs +10 -0
  59. package/esm2022/lib/services/mrx-form-validator/helpers/get-error-message.helper.mjs +10 -0
  60. package/esm2022/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.mjs +29 -0
  61. package/esm2022/lib/services/mrx-form-validator/models/index.mjs +4 -0
  62. package/esm2022/lib/services/mrx-form-validator/models/validations-options.model.mjs +2 -0
  63. package/esm2022/lib/services/mrx-form-validator/models/validations-settings.model.mjs +2 -0
  64. package/esm2022/lib/services/mrx-form-validator/models/validations-types.model.mjs +22 -0
  65. package/esm2022/lib/services/mrx-form-validator/mrx-form-validator.mjs +97 -183
  66. package/esm2022/lib/services/mrx-form-validator/validations/callback.validation.mjs +15 -0
  67. package/esm2022/lib/services/mrx-form-validator/validations/email.validation.mjs +11 -0
  68. package/esm2022/lib/services/mrx-form-validator/validations/max-length.validation.mjs +14 -0
  69. package/esm2022/lib/services/mrx-form-validator/validations/max-value.validation.mjs +10 -0
  70. package/esm2022/lib/services/mrx-form-validator/validations/min-length.validation.mjs +15 -0
  71. package/esm2022/lib/services/mrx-form-validator/validations/min-value.validation.mjs +10 -0
  72. package/esm2022/lib/services/mrx-form-validator/validations/pattern.validation.mjs +11 -0
  73. package/esm2022/lib/services/mrx-form-validator/validations/required.validation.mjs +22 -0
  74. package/esm2022/lib/services/toaster-service/components/toaster/toaster.component.mjs +29 -0
  75. package/esm2022/lib/services/toaster-service/models/toaster.model.mjs +15 -0
  76. package/esm2022/lib/services/toaster-service/toaster-service.module.mjs +52 -0
  77. package/esm2022/lib/services/toaster-service/toaster-service.service.mjs +53 -0
  78. package/esm2022/public-api.mjs +5 -1
  79. package/fesm2022/myrta-ui.mjs +1624 -980
  80. package/fesm2022/myrta-ui.mjs.map +1 -1
  81. package/lib/components/breadcrumbs/breadcrumbs.enum.d.ts +5 -0
  82. package/lib/components/breadcrumbs/breadcrumbs.module.d.ts +2 -1
  83. package/lib/components/form/checkbox/checkbox.component.d.ts +2 -4
  84. package/lib/components/form/checkbox/checkbox.enum.d.ts +0 -4
  85. package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +27 -18
  86. package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +16 -9
  87. package/lib/components/form/checkbox-group/helpers/change-group-value.d.ts +3 -3
  88. package/lib/components/form/checkbox-group/helpers/change-item-value.d.ts +3 -3
  89. package/lib/components/form/checkbox-group/helpers/filter-search-group.d.ts +2 -2
  90. package/lib/components/form/checkbox-group/helpers/get-checked-items.d.ts +2 -2
  91. package/lib/components/form/checkbox-group/helpers/get-inner-list.helper.d.ts +2 -0
  92. package/lib/components/form/checkbox-group/helpers/get-item-by-id.d.ts +2 -2
  93. package/lib/components/form/checkbox-group/helpers/get-sorted-list.d.ts +2 -2
  94. package/lib/components/form/checkbox-group/helpers/inner-list-to-list.helper.d.ts +2 -0
  95. package/lib/components/form/checkbox-group/models/checkbox-group.model.d.ts +13 -2
  96. package/lib/components/form/editor/editor.component.d.ts +1 -1
  97. package/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.d.ts +0 -1
  98. package/lib/components/form/input-file-image/input-file-image.component.d.ts +1 -1
  99. package/lib/components/form/input-select/input-select.component.d.ts +16 -5
  100. package/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.d.ts +3 -1
  101. package/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.d.ts +3 -1
  102. package/lib/components/form/radio-group/models/radio-group.model.d.ts +4 -0
  103. package/lib/components/form/radio-group/radio-group.component.d.ts +10 -7
  104. package/lib/components/form/radio-group/radio-group.module.d.ts +2 -1
  105. package/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.d.ts +0 -1
  106. package/lib/components/icon-button/icon-button.component.d.ts +4 -1
  107. package/lib/components/icon-button/icon-button.enum.d.ts +2 -1
  108. package/lib/components/link/link.component.d.ts +10 -3
  109. package/lib/components/link/link.module.d.ts +2 -1
  110. package/lib/components/paginator/paginator.module.d.ts +3 -3
  111. package/lib/components/pdf-viewer/pdf-viewer.component.d.ts +70 -0
  112. package/lib/components/pdf-viewer/pdf-viewer.module.d.ts +16 -0
  113. package/lib/components/save-state/save-state.enum.d.ts +1 -1
  114. package/lib/services/file-upload/file-upload.service.d.ts +2 -2
  115. package/lib/services/index.d.ts +4 -0
  116. package/lib/services/modal-service/components/alert-modal/alert-modal.component.d.ts +0 -1
  117. package/lib/services/modal-service/components/confirm-modal/confirm-modal.component.d.ts +0 -1
  118. package/lib/services/modal-service/helpers/modal.component.d.ts +0 -1
  119. package/lib/services/mrx-form-validator/constants/invalid-messages.d.ts +9 -0
  120. package/lib/services/mrx-form-validator/helpers/get-error-message.helper.d.ts +3 -0
  121. package/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.d.ts +2 -0
  122. package/lib/services/mrx-form-validator/models/index.d.ts +3 -0
  123. package/lib/services/mrx-form-validator/models/validations-options.model.d.ts +31 -0
  124. package/lib/services/mrx-form-validator/models/validations-settings.model.d.ts +7 -0
  125. package/lib/services/mrx-form-validator/models/validations-types.model.d.ts +19 -0
  126. package/lib/services/mrx-form-validator/mrx-form-validator.d.ts +6 -33
  127. package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +5 -0
  128. package/lib/services/mrx-form-validator/validations/email.validation.d.ts +5 -0
  129. package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +5 -0
  130. package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +5 -0
  131. package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +5 -0
  132. package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +5 -0
  133. package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +5 -0
  134. package/lib/services/mrx-form-validator/validations/required.validation.d.ts +5 -0
  135. package/lib/services/toaster-service/components/toaster/toaster.component.d.ts +12 -0
  136. package/lib/services/toaster-service/models/toaster.model.d.ts +12 -0
  137. package/lib/services/toaster-service/toaster-service.module.d.ts +10 -0
  138. package/lib/services/toaster-service/toaster-service.service.d.ts +15 -0
  139. package/package.json +5 -1
  140. package/public-api.d.ts +4 -0
@@ -3,31 +3,36 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { cloneDeep } from 'lodash-es';
4
4
  import { getSortedList } from './helpers/get-sorted-list';
5
5
  import { filterSearchGroup } from './helpers/filter-search-group';
6
- import { getItemById } from './helpers/get-item-by-id';
6
+ import { getItemInnerById } from './helpers/get-item-by-id';
7
7
  import { changeItemValue, changeListValue } from './helpers/change-item-value';
8
8
  import { changeGroupValue } from './helpers/change-group-value';
9
9
  import { getCheckedItems } from './helpers/get-checked-items';
10
10
  import { v4 as uuid } from 'uuid';
11
+ import { getInnerList } from './helpers/get-inner-list.helper';
12
+ import { innerListToList } from './helpers/inner-list-to-list.helper';
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "@angular/common";
13
15
  import * as i2 from "../../save-state/save-state.component";
14
- import * as i3 from "./components/checkbox-group-item/checkbox-group-item.component";
15
- import * as i4 from "./components/checkbox-group-header/checkbox-group-header.component";
16
+ import * as i3 from "../../error-message/error-message.component";
17
+ import * as i4 from "./components/checkbox-group-item/checkbox-group-item.component";
18
+ import * as i5 from "./components/checkbox-group-header/checkbox-group-header.component";
16
19
  export class CheckboxGroupComponent {
17
- _isInit = false;
20
+ _detector;
18
21
  _groupItemsWrapperHeight = 0;
19
22
  _searchValue = '';
20
23
  list = [];
21
- filteredList = [];
24
+ innerList = [];
22
25
  checkedList = [];
26
+ filteredList = [];
23
27
  // SAVE STATE
24
28
  uuid = uuid();
25
29
  fields = [];
26
- items = [];
27
30
  scrollMaxHeight = 200;
28
31
  searchable = false;
29
32
  scrollable = false;
30
33
  sortable = false;
34
+ disabled = false;
35
+ readonly = false;
31
36
  enableMessage = 'Ничего не найдено';
32
37
  searchPlaceholder = '';
33
38
  customClasses = '';
@@ -36,18 +41,36 @@ export class CheckboxGroupComponent {
36
41
  // LABEL
37
42
  labelText = '';
38
43
  linkText = '';
44
+ // VALIDATE
45
+ invalid = false;
46
+ invalidMessage = '';
47
+ set items(list) {
48
+ this.list = list;
49
+ this._updateModifiedList();
50
+ }
51
+ get items() {
52
+ return this.filteredList;
53
+ }
39
54
  groupItemsWrapper;
40
55
  changed = new EventEmitter();
41
- changeChecked = new EventEmitter();
42
56
  modelChange = new EventEmitter();
43
- modelCheckedChange = new EventEmitter();
57
+ changedInner = new EventEmitter();
58
+ modelChangeInner = new EventEmitter();
44
59
  modelItemChange = new EventEmitter();
45
- constructor() { }
60
+ constructor(_detector) {
61
+ this._detector = _detector;
62
+ }
46
63
  get isSearchValue() {
47
64
  return this._searchValue;
48
65
  }
49
66
  get displaced() {
50
- return this.list.some((item) => item.array.length);
67
+ return this.list.some((item) => item.items?.length);
68
+ }
69
+ get getInvalid() {
70
+ return this.invalid;
71
+ }
72
+ get getInvalidMessage() {
73
+ return this.invalidMessage;
51
74
  }
52
75
  get getClasses() {
53
76
  return `${this.customClasses}`;
@@ -58,40 +81,30 @@ export class CheckboxGroupComponent {
58
81
  trackByFn(index, item) {
59
82
  return item.id;
60
83
  }
61
- onChange = (value) => { };
62
- onTouched = () => { };
63
- writeValue(list) {
64
- if (list) {
65
- this.list = list;
66
- this.filteredList = getSortedList(list, this.sortable);
67
- this.checkedList = getCheckedItems(list);
68
- this._isInit = true;
84
+ onChange = (value) => {
85
+ };
86
+ onTouched = () => {
87
+ };
88
+ writeValue(selectedValue) {
89
+ if (selectedValue !== null) {
90
+ this.checkedList = getInnerList(selectedValue, this.checkedList);
91
+ this._updateModifiedList();
69
92
  }
70
93
  }
71
- registerOnChange(fn) {
72
- this.onChange = fn;
73
- }
74
- registerOnTouched(fn) {
75
- this.onTouched = fn;
76
- }
77
- updateValue(list, checkedList) {
78
- this.changed.emit(list);
79
- this.changeChecked.emit();
80
- this.modelChange.emit({ value: list, id: this.uuid });
81
- this.modelCheckedChange.emit({ value: checkedList, id: this.uuid });
82
- this.onChange(list);
83
- this.onTouched();
94
+ _updateModifiedList() {
95
+ this.innerList = getInnerList(this.list, this.checkedList);
96
+ this.filteredList = getSortedList(this.innerList, this.sortable);
84
97
  }
85
98
  checkHeightGroupWrapper() {
86
99
  this._groupItemsWrapperHeight = this.groupItemsWrapper.nativeElement.scrollHeight;
87
100
  }
88
101
  updateCheckboxGroupSearchValue(searchValue) {
89
102
  this._searchValue = searchValue;
90
- this.filteredList = filterSearchGroup(this.list, this._searchValue);
103
+ this.filteredList = filterSearchGroup(this.innerList, this._searchValue);
91
104
  }
92
105
  checkboxChanged({ value, item }) {
93
106
  const cloneList = cloneDeep(this.filteredList);
94
- const findItem = getItemById(cloneList, item.id);
107
+ const findItem = getItemInnerById(cloneList, item.id);
95
108
  let changedItem = null;
96
109
  if (findItem) {
97
110
  changedItem = changeItemValue(findItem, value);
@@ -104,6 +117,7 @@ export class CheckboxGroupComponent {
104
117
  if (changedItem) {
105
118
  this.modelItemChange.emit(changedItem);
106
119
  }
120
+ this._detector.detectChanges();
107
121
  }
108
122
  clearFilters() {
109
123
  const cloneList = cloneDeep(this.filteredList);
@@ -113,14 +127,30 @@ export class CheckboxGroupComponent {
113
127
  this.checkedList = getCheckedItems(cloneList);
114
128
  this.updateValue(this.filteredList, this.checkedList);
115
129
  }
116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
117
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields", items: "items", scrollMaxHeight: "scrollMaxHeight", searchable: "searchable", scrollable: "scrollable", sortable: "sortable", enableMessage: "enableMessage", searchPlaceholder: "searchPlaceholder", customClasses: "customClasses", tooltip: "tooltip", labelText: "labelText", linkText: "linkText" }, outputs: { changed: "changed", changeChecked: "changeChecked", modelChange: "modelChange", modelCheckedChange: "modelCheckedChange", modelItemChange: "modelItemChange" }, providers: [
130
+ registerOnChange(fn) {
131
+ this.onChange = fn;
132
+ }
133
+ registerOnTouched(fn) {
134
+ this.onTouched = fn;
135
+ }
136
+ updateValue(list, checkedList) {
137
+ const clearedList = innerListToList(checkedList);
138
+ const clearedInnerList = innerListToList(this.innerList);
139
+ this.changed.emit(clearedList);
140
+ this.modelChange.emit({ value: clearedList, full: clearedInnerList, id: this.uuid });
141
+ this.changedInner.emit(checkedList);
142
+ this.modelChangeInner.emit({ value: checkedList, full: this.innerList, id: this.uuid });
143
+ this.onChange(checkedList);
144
+ this.onTouched();
145
+ }
146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields", scrollMaxHeight: "scrollMaxHeight", searchable: "searchable", scrollable: "scrollable", sortable: "sortable", disabled: "disabled", readonly: "readonly", enableMessage: "enableMessage", searchPlaceholder: "searchPlaceholder", customClasses: "customClasses", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", invalid: "invalid", invalidMessage: "invalidMessage", items: "items" }, outputs: { changed: "changed", modelChange: "modelChange", changedInner: "changedInner", modelChangeInner: "modelChangeInner", modelItemChange: "modelItemChange" }, providers: [
118
148
  {
119
149
  provide: NG_VALUE_ACCESSOR,
120
150
  useExisting: forwardRef(() => CheckboxGroupComponent),
121
151
  multi: true,
122
152
  },
123
- ], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\">\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "component", type: i3.CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["item", "displaced", "level", "animationTrigger", "isLast"], outputs: ["animationEnd", "checkboxChanged"] }, { kind: "component", type: i4.CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
+ ], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [customClasses]=\"'mt-2'\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "component", type: i3.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { kind: "component", type: i4.CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["displaced", "level", "animationTrigger", "isLast", "disabled", "readonly", "invalid", "item"], outputs: ["animationEnd", "checkboxChanged"] }, { kind: "component", type: i5.CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
154
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupComponent, providedIn: CheckboxGroupComponent });
125
155
  }
126
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
@@ -136,10 +166,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
136
166
  useExisting: forwardRef(() => CheckboxGroupComponent),
137
167
  multi: true,
138
168
  },
139
- ], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\">\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
140
- }], ctorParameters: () => [], propDecorators: { fields: [{
141
- type: Input
142
- }], items: [{
169
+ ], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [customClasses]=\"'mt-2'\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
170
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { fields: [{
143
171
  type: Input
144
172
  }], scrollMaxHeight: [{
145
173
  type: Input
@@ -149,6 +177,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
149
177
  type: Input
150
178
  }], sortable: [{
151
179
  type: Input
180
+ }], disabled: [{
181
+ type: Input
182
+ }], readonly: [{
183
+ type: Input
152
184
  }], enableMessage: [{
153
185
  type: Input
154
186
  }], searchPlaceholder: [{
@@ -161,18 +193,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
161
193
  type: Input
162
194
  }], linkText: [{
163
195
  type: Input
196
+ }], invalid: [{
197
+ type: Input
198
+ }], invalidMessage: [{
199
+ type: Input
200
+ }], items: [{
201
+ type: Input
164
202
  }], groupItemsWrapper: [{
165
203
  type: ViewChild,
166
204
  args: ['groupItemsWrapper']
167
205
  }], changed: [{
168
206
  type: Output
169
- }], changeChecked: [{
170
- type: Output
171
207
  }], modelChange: [{
172
208
  type: Output
173
- }], modelCheckedChange: [{
209
+ }], changedInner: [{
210
+ type: Output
211
+ }], modelChangeInner: [{
174
212
  type: Output
175
213
  }], modelItemChange: [{
176
214
  type: Output
177
215
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQW1CbEMsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixPQUFPLEdBQUcsS0FBSyxDQUFBO0lB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OzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBYWUsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUUwQixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUViLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLGtCQUFrQjtzQkFBbEMsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZiwgSW5qZWN0YWJsZSxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hlY2tib3hHcm91cEl0ZW0sIENoZWNrYm94R3JvdXBWYWx1ZVdpdGhJZCB9IGZyb20gJy4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgZ2V0U29ydGVkTGlzdCB9IGZyb20gJy4vaGVscGVycy9nZXQtc29ydGVkLWxpc3QnO1xyXG5pbXBvcnQgeyBmaWx0ZXJTZWFyY2hHcm91cCB9IGZyb20gJy4vaGVscGVycy9maWx0ZXItc2VhcmNoLWdyb3VwJztcclxuaW1wb3J0IHsgZ2V0SXRlbUJ5SWQgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWl0ZW0tYnktaWQnO1xyXG5pbXBvcnQgeyBjaGFuZ2VJdGVtVmFsdWUsIGNoYW5nZUxpc3RWYWx1ZSB9IGZyb20gJy4vaGVscGVycy9jaGFuZ2UtaXRlbS12YWx1ZSc7XHJcbmltcG9ydCB7IGNoYW5nZUdyb3VwVmFsdWUgfSBmcm9tICcuL2hlbHBlcnMvY2hhbmdlLWdyb3VwLXZhbHVlJztcclxuaW1wb3J0IHsgZ2V0Q2hlY2tlZEl0ZW1zIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1jaGVja2VkLWl0ZW1zJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21yeC1hdXRvc2F2ZS9tcngtYXV0b3NhdmUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogQ2hlY2tib3hHcm91cENvbXBvbmVudFxyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1jaGVja2JveC1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1ncm91cC5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tib3hHcm91cENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIF9pc0luaXQgPSBmYWxzZVxyXG4gIHByaXZhdGUgX2dyb3VwSXRlbXNXcmFwcGVySGVpZ2h0ID0gMFxyXG4gIHByaXZhdGUgX3NlYXJjaFZhbHVlID0gJydcclxuXHJcbiAgcHVibGljIGxpc3Q6IENoZWNrYm94R3JvdXBJdGVtW10gPSBbXVxyXG4gIHB1YmxpYyBmaWx0ZXJlZExpc3Q6IENoZWNrYm94R3JvdXBJdGVtW10gPSBbXVxyXG4gIHB1YmxpYyBjaGVja2VkTGlzdDogQ2hlY2tib3hHcm91cEl0ZW1bXSA9IFtdXHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZCgpXHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaXRlbXM6IENoZWNrYm94R3JvdXBJdGVtW10gPSBbXVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JvbGxNYXhIZWlnaHQgPSAyMDBcclxuICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoYWJsZSA9IGZhbHNlXHJcbiAgQElucHV0KCkgcHVibGljIHNjcm9sbGFibGUgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0YWJsZSA9IGZhbHNlXHJcbiAgQElucHV0KCkgcHVibGljIGVuYWJsZU1lc3NhZ2UgPSAn0J3QuNGH0LXQs9C+INC90LUg0L3QsNC50LTQtdC90L4nXHJcbiAgQElucHV0KCkgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyID0gJydcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG5cclxuICAvLyBUT09MVElQXHJcbiAgQElucHV0KCkgdG9vbHRpcCA9ICcnXHJcblxyXG4gIC8vIExBQkVMXHJcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJydcclxuICBASW5wdXQoKSBsaW5rVGV4dCA9ICcnXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2dyb3VwSXRlbXNXcmFwcGVyJykgZ3JvdXBJdGVtc1dyYXBwZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwSXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cEl0ZW1bXT4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZUNoZWNrZWQ6IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwSXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cEl0ZW1bXT4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cFZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cFZhbHVlV2l0aElkPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cFZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cFZhbHVlV2l0aElkPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxJdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwSXRlbT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzU2VhcmNoVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hWYWx1ZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkaXNwbGFjZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0LnNvbWUoKGl0ZW06IENoZWNrYm94R3JvdXBJdGVtKSA9PiBpdGVtLmFycmF5Lmxlbmd0aClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAkeyB0aGlzLmN1c3RvbUNsYXNzZXMgfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFNob3dTY3JvbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ3JvdXBJdGVtc1dyYXBwZXJIZWlnaHQgPiB0aGlzLnNjcm9sbE1heEhlaWdodFxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBDaGVja2JveEdyb3VwSXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBDaGVja2JveEdyb3VwSXRlbVtdKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShsaXN0OiBDaGVja2JveEdyb3VwSXRlbVtdKTogdm9pZCB7XHJcbiAgICBpZiAobGlzdCkge1xyXG4gICAgICB0aGlzLmxpc3QgPSBsaXN0XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gZ2V0U29ydGVkTGlzdChsaXN0LCB0aGlzLnNvcnRhYmxlKVxyXG4gICAgICB0aGlzLmNoZWNrZWRMaXN0ID0gZ2V0Q2hlY2tlZEl0ZW1zKGxpc3QpXHJcblxyXG4gICAgICB0aGlzLl9pc0luaXQgPSB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShsaXN0OiBDaGVja2JveEdyb3VwSXRlbVtdLCBjaGVja2VkTGlzdDogQ2hlY2tib3hHcm91cEl0ZW1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQobGlzdCk7XHJcbiAgICB0aGlzLmNoYW5nZUNoZWNrZWQuZW1pdCgpXHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBsaXN0LCBpZDogdGhpcy51dWlkfSlcclxuICAgIHRoaXMubW9kZWxDaGVja2VkQ2hhbmdlLmVtaXQoe3ZhbHVlOiBjaGVja2VkTGlzdCwgaWQ6IHRoaXMudXVpZH0pXHJcbiAgICB0aGlzLm9uQ2hhbmdlKGxpc3QpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0hlaWdodEdyb3VwV3JhcHBlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dyb3VwSXRlbXNXcmFwcGVySGVpZ2h0ID0gdGhpcy5ncm91cEl0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodFxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUNoZWNrYm94R3JvdXBTZWFyY2hWYWx1ZShzZWFyY2hWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlXHJcbiAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IGZpbHRlclNlYXJjaEdyb3VwKHRoaXMubGlzdCwgdGhpcy5fc2VhcmNoVmFsdWUpXHJcbiAgfVxyXG5cclxuICBjaGVja2JveENoYW5nZWQoeyB2YWx1ZSwgaXRlbSB9OiB7IHZhbHVlOiBib29sZWFuIHwgbnVsbDsgaXRlbTogQ2hlY2tib3hHcm91cEl0ZW0gfSkge1xyXG4gICAgY29uc3QgY2xvbmVMaXN0OiBDaGVja2JveEdyb3VwSXRlbVtdID0gY2xvbmVEZWVwKHRoaXMuZmlsdGVyZWRMaXN0KVxyXG4gICAgY29uc3QgZmluZEl0ZW06IENoZWNrYm94R3JvdXBJdGVtIHwgbnVsbCA9IGdldEl0ZW1CeUlkKGNsb25lTGlzdCwgaXRlbS5pZClcclxuICAgIGxldCBjaGFuZ2VkSXRlbTogQ2hlY2tib3hHcm91cEl0ZW0gfCBudWxsID0gbnVsbFxyXG5cclxuICAgIGlmIChmaW5kSXRlbSkge1xyXG4gICAgICBjaGFuZ2VkSXRlbSA9IGNoYW5nZUl0ZW1WYWx1ZShmaW5kSXRlbSwgdmFsdWUpXHJcbiAgICAgIGNoYW5nZUdyb3VwVmFsdWUoY2xvbmVMaXN0LCBpdGVtLnBhcmVudElkLCB2YWx1ZSlcclxuICAgICAgZ2V0U29ydGVkTGlzdChjbG9uZUxpc3QsIHRoaXMuc29ydGFibGUpXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZExpc3QgPSBjbG9uZUxpc3RcclxuICAgIHRoaXMuY2hlY2tlZExpc3QgPSBnZXRDaGVja2VkSXRlbXMoY2xvbmVMaXN0KVxyXG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmZpbHRlcmVkTGlzdCwgdGhpcy5jaGVja2VkTGlzdClcclxuXHJcbiAgICBpZiAoY2hhbmdlZEl0ZW0pIHtcclxuICAgICAgdGhpcy5tb2RlbEl0ZW1DaGFuZ2UuZW1pdChjaGFuZ2VkSXRlbSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIGNvbnN0IGNsb25lTGlzdDogQ2hlY2tib3hHcm91cEl0ZW1bXSA9IGNsb25lRGVlcCh0aGlzLmZpbHRlcmVkTGlzdClcclxuXHJcbiAgICBjaGFuZ2VMaXN0VmFsdWUoY2xvbmVMaXN0LCBmYWxzZSlcclxuICAgIGdldFNvcnRlZExpc3QoY2xvbmVMaXN0LCB0aGlzLnNvcnRhYmxlKVxyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gY2xvbmVMaXN0XHJcbiAgICB0aGlzLmNoZWNrZWRMaXN0ID0gZ2V0Q2hlY2tlZEl0ZW1zKGNsb25lTGlzdClcclxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5maWx0ZXJlZExpc3QsIHRoaXMuY2hlY2tlZExpc3QpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtcngtY2hlY2tib3gtZ3JvdXBcIiBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiPlxyXG4gIDxtcngtc2F2ZS1zdGF0ZSBbaWRdPVwidXVpZFwiIFtmaWVsZHNdPVwiZmllbGRzXCIgdHlwZT1cImNoZWNrYm94R3JvdXBcIj48L21yeC1zYXZlLXN0YXRlPlxyXG5cclxuICA8bXJ4LWNoZWNrYm94LWdyb3VwLWhlYWRlclxyXG4gICAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXHJcbiAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXHJcbiAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXHJcbiAgICBbbGlua1RleHRdPVwibGlua1RleHRcIlxyXG4gICAgW2NoZWNrZWRJdGVtc0NvdW50XT1cImNoZWNrZWRMaXN0Lmxlbmd0aFwiXHJcbiAgICAodXBkYXRlQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlKT1cInVwZGF0ZUNoZWNrYm94R3JvdXBTZWFyY2hWYWx1ZSgkZXZlbnQpXCJcclxuICAgIChjbGVhckZpbHRlcnMpPVwiY2xlYXJGaWx0ZXJzKClcIlxyXG4gID48L21yeC1jaGVja2JveC1ncm91cC1oZWFkZXI+XHJcblxyXG4gIDxkaXZcclxuICAgICAgI2dyb3VwSXRlbXNXcmFwcGVyXHJcbiAgICAgICpuZ0lmPVwiZmlsdGVyZWRMaXN0Py5sZW5ndGg7IGVsc2UgZW5hYmxlTWVzc2FnZVRlbXBsYXRlXCJcclxuICAgICAgY2xhc3M9XCJtcngtY2hlY2tib3gtZ3JvdXAtd3JhcHBlclwiXHJcbiAgICAgIFtjbGFzcy5tcngtY2hlY2tib3gtZ3JvdXAtd3JhcHBlci0tc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlXCJcclxuICAgICAgW2NsYXNzLi0tYWN0aXZlXT1cImdldFNob3dTY3JvbGxcIlxyXG4gICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJzY3JvbGxhYmxlID8gc2Nyb2xsTWF4SGVpZ2h0ICsgJ3B4JyA6ICdhdXRvJ1wiPlxyXG4gICAgPG1yeC1jaGVja2JveC1ncm91cC1pdGVtXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRMaXN0OyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgIFtkaXNwbGFjZWRdPVwiZGlzcGxhY2VkIHx8IGZhbHNlXCJcclxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICBbaXNMYXN0XT1cImxhc3RcIlxyXG4gICAgICAgIFthbmltYXRpb25UcmlnZ2VyXT1cIiEhaXNTZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgKGFuaW1hdGlvbkVuZCk9XCJjaGVja0hlaWdodEdyb3VwV3JhcHBlcigpXCJcclxuICAgICAgICAoY2hlY2tib3hDaGFuZ2VkKT1cImNoZWNrYm94Q2hhbmdlZCgkZXZlbnQpXCJcclxuICAgID48L21yeC1jaGVja2JveC1ncm91cC1pdGVtPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2VuYWJsZU1lc3NhZ2VUZW1wbGF0ZT5cclxuICAgIDxwIGNsYXNzPVwibXJ4LWNoZWNrYm94LWdyb3VwX19lbXB0eS1tZXNzYWdlXCI+e3sgZW5hYmxlTWVzc2FnZSB9fTwvcD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU96RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxF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Q0Y7c0ZBY2UsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBUzBCLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRWIsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUVVLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsZ0JBQWdCO3NCQUFoQyxNQUFNO2dCQUVVLGVBQWU7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZiwgSW5qZWN0YWJsZSxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDaGVja2JveEdyb3VwSW5uZXJJdGVtLFxyXG4gIENoZWNrYm94R3JvdXBJdGVtLFxyXG4gIENoZWNrYm94R3JvdXBWYWx1ZUlubmVyV2l0aElkLFxyXG4gIENoZWNrYm94R3JvdXBWYWx1ZVdpdGhJZFxyXG59IGZyb20gJy4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgZ2V0U29ydGVkTGlzdCB9IGZyb20gJy4vaGVscGVycy9nZXQtc29ydGVkLWxpc3QnO1xyXG5pbXBvcnQgeyBmaWx0ZXJTZWFyY2hHcm91cCB9IGZyb20gJy4vaGVscGVycy9maWx0ZXItc2VhcmNoLWdyb3VwJztcclxuaW1wb3J0IHsgZ2V0SXRlbUlubmVyQnlJZCB9IGZyb20gJy4vaGVscGVycy9nZXQtaXRlbS1ieS1pZCc7XHJcbmltcG9ydCB7IGNoYW5nZUl0ZW1WYWx1ZSwgY2hhbmdlTGlzdFZhbHVlIH0gZnJvbSAnLi9oZWxwZXJzL2NoYW5nZS1pdGVtLXZhbHVlJztcclxuaW1wb3J0IHsgY2hhbmdlR3JvdXBWYWx1ZSB9IGZyb20gJy4vaGVscGVycy9jaGFuZ2UtZ3JvdXAtdmFsdWUnO1xyXG5pbXBvcnQgeyBnZXRDaGVja2VkSXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWNoZWNrZWQtaXRlbXMnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBnZXRJbm5lckxpc3QgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLWxpc3QuaGVscGVyJztcclxuaW1wb3J0IHsgaW5uZXJMaXN0VG9MaXN0IH0gZnJvbSAnLi9oZWxwZXJzL2lubmVyLWxpc3QtdG8tbGlzdC5oZWxwZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IENoZWNrYm94R3JvdXBDb21wb25lbnRcclxufSlcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtY2hlY2tib3gtZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94R3JvdXBDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSBfZ3JvdXBJdGVtc1dyYXBwZXJIZWlnaHQgPSAwO1xyXG4gIHByaXZhdGUgX3NlYXJjaFZhbHVlID0gJyc7XHJcblxyXG4gIHB1YmxpYyBsaXN0OiBDaGVja2JveEdyb3VwSXRlbVtdID0gW107XHJcbiAgcHVibGljIGlubmVyTGlzdDogQ2hlY2tib3hHcm91cElubmVySXRlbVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjaGVja2VkTGlzdDogQ2hlY2tib3hHcm91cElubmVySXRlbVtdID0gW107XHJcbiAgcHVibGljIGZpbHRlcmVkTGlzdDogQ2hlY2tib3hHcm91cElubmVySXRlbVtdID0gW107XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNjcm9sbE1heEhlaWdodCA9IDIwMDtcclxuICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoYWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JvbGxhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHNvcnRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGVuYWJsZU1lc3NhZ2UgPSAn0J3QuNGH0LXQs9C+INC90LUg0L3QsNC50LTQtdC90L4nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcblxyXG4gIC8vIFRPT0xUSVBcclxuICBASW5wdXQoKSB0b29sdGlwID0gJyc7XHJcblxyXG4gIC8vIExBQkVMXHJcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgbGlua1RleHQgPSAnJztcclxuXHJcbiAgLy8gVkFMSURBVEVcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGxpc3Q6IENoZWNrYm94R3JvdXBJdGVtW10pIHtcclxuICAgIHRoaXMubGlzdCA9IGxpc3Q7XHJcbiAgICB0aGlzLl91cGRhdGVNb2RpZmllZExpc3QoKTtcclxuICB9XHJcblxyXG4gIGdldCBpdGVtcygpOiBDaGVja2JveEdyb3VwSW5uZXJJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRMaXN0O1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnZ3JvdXBJdGVtc1dyYXBwZXInKSBncm91cEl0ZW1zV3JhcHBlciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPENoZWNrYm94R3JvdXBJdGVtW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwSXRlbVtdPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveEdyb3VwVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZElubmVyOiBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cElubmVySXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cElubmVySXRlbVtdPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGFuZ2VJbm5lcjogRXZlbnRFbWl0dGVyPENoZWNrYm94R3JvdXBWYWx1ZUlubmVyV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cFZhbHVlSW5uZXJXaXRoSWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxJdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2hlY2tib3hHcm91cElubmVySXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPENoZWNrYm94R3JvdXBJbm5lckl0ZW0+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1NlYXJjaFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRpc3BsYWNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3Quc29tZSgoaXRlbTogQ2hlY2tib3hHcm91cEl0ZW0pID0+IGl0ZW0uaXRlbXM/Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkTWVzc2FnZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkTWVzc2FnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRTaG93U2Nyb2xsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwSXRlbXNXcmFwcGVySGVpZ2h0ID4gdGhpcy5zY3JvbGxNYXhIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IENoZWNrYm94R3JvdXBJbm5lckl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogQ2hlY2tib3hHcm91cEl0ZW1bXSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUoc2VsZWN0ZWRWYWx1ZTogQ2hlY2tib3hHcm91cEl0ZW1bXSk6IHZvaWQge1xyXG4gICAgaWYgKHNlbGVjdGVkVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jaGVja2VkTGlzdCA9IGdldElubmVyTGlzdChzZWxlY3RlZFZhbHVlLCB0aGlzLmNoZWNrZWRMaXN0KTtcclxuICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWRMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNb2RpZmllZExpc3QoKSB7XHJcbiAgICB0aGlzLmlubmVyTGlzdCA9IGdldElubmVyTGlzdCh0aGlzLmxpc3QsIHRoaXMuY2hlY2tlZExpc3QpO1xyXG4gICAgdGhpcy5maWx0ZXJlZExpc3QgPSBnZXRTb3J0ZWRMaXN0KHRoaXMuaW5uZXJMaXN0LCB0aGlzLnNvcnRhYmxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0hlaWdodEdyb3VwV3JhcHBlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dyb3VwSXRlbXNXcmFwcGVySGVpZ2h0ID0gdGhpcy5ncm91cEl0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVDaGVja2JveEdyb3VwU2VhcmNoVmFsdWUoc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gZmlsdGVyU2VhcmNoR3JvdXAodGhpcy5pbm5lckxpc3QsIHRoaXMuX3NlYXJjaFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja2JveENoYW5nZWQoe3ZhbHVlLCBpdGVtfTogeyB2YWx1ZTogYm9vbGVhbiB8IG51bGw7IGl0ZW06IENoZWNrYm94R3JvdXBJbm5lckl0ZW0gfSkge1xyXG4gICAgY29uc3QgY2xvbmVMaXN0OiBDaGVja2JveEdyb3VwSW5uZXJJdGVtW10gPSBjbG9uZURlZXAodGhpcy5maWx0ZXJlZExpc3QpO1xyXG4gICAgY29uc3QgZmluZEl0ZW06IENoZWNrYm94R3JvdXBJbm5lckl0ZW0gfCBudWxsID0gZ2V0SXRlbUlubmVyQnlJZChjbG9uZUxpc3QsIGl0ZW0uaWQpO1xyXG4gICAgbGV0IGNoYW5nZWRJdGVtOiBDaGVja2JveEdyb3VwSW5uZXJJdGVtIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKGZpbmRJdGVtKSB7XHJcbiAgICAgIGNoYW5nZWRJdGVtID0gY2hhbmdlSXRlbVZhbHVlKGZpbmRJdGVtLCB2YWx1ZSk7XHJcbiAgICAgIGNoYW5nZUdyb3VwVmFsdWUoY2xvbmVMaXN0LCBpdGVtLnBhcmVudElkLCB2YWx1ZSk7XHJcbiAgICAgIGdldFNvcnRlZExpc3QoY2xvbmVMaXN0LCB0aGlzLnNvcnRhYmxlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IGNsb25lTGlzdDtcclxuICAgIHRoaXMuY2hlY2tlZExpc3QgPSBnZXRDaGVja2VkSXRlbXMoY2xvbmVMaXN0KTtcclxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5maWx0ZXJlZExpc3QsIHRoaXMuY2hlY2tlZExpc3QpO1xyXG5cclxuICAgIGlmIChjaGFuZ2VkSXRlbSkge1xyXG4gICAgICB0aGlzLm1vZGVsSXRlbUNoYW5nZS5lbWl0KGNoYW5nZWRJdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgY29uc3QgY2xvbmVMaXN0OiBDaGVja2JveEdyb3VwSW5uZXJJdGVtW10gPSBjbG9uZURlZXAodGhpcy5maWx0ZXJlZExpc3QpO1xyXG5cclxuICAgIGNoYW5nZUxpc3RWYWx1ZShjbG9uZUxpc3QsIGZhbHNlKTtcclxuICAgIGdldFNvcnRlZExpc3QoY2xvbmVMaXN0LCB0aGlzLnNvcnRhYmxlKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IGNsb25lTGlzdDtcclxuICAgIHRoaXMuY2hlY2tlZExpc3QgPSBnZXRDaGVja2VkSXRlbXMoY2xvbmVMaXN0KTtcclxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5maWx0ZXJlZExpc3QsIHRoaXMuY2hlY2tlZExpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUobGlzdDogQ2hlY2tib3hHcm91cEl0ZW1bXSwgY2hlY2tlZExpc3Q6IENoZWNrYm94R3JvdXBJbm5lckl0ZW1bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xlYXJlZExpc3QgPSBpbm5lckxpc3RUb0xpc3QoY2hlY2tlZExpc3QpXHJcbiAgICBjb25zdCBjbGVhcmVkSW5uZXJMaXN0ID0gaW5uZXJMaXN0VG9MaXN0KHRoaXMuaW5uZXJMaXN0KVxyXG5cclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGNsZWFyZWRMaXN0KTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGNsZWFyZWRMaXN0LCBmdWxsOiBjbGVhcmVkSW5uZXJMaXN0LCBpZDogdGhpcy51dWlkfSk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkSW5uZXIuZW1pdChjaGVja2VkTGlzdCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlSW5uZXIuZW1pdCh7dmFsdWU6IGNoZWNrZWRMaXN0LCBmdWxsOiB0aGlzLmlubmVyTGlzdCwgaWQ6IHRoaXMudXVpZH0pO1xyXG5cclxuICAgIHRoaXMub25DaGFuZ2UoY2hlY2tlZExpc3QpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC1jaGVja2JveC1ncm91cFwiIFtjbGFzc109XCJnZXRDbGFzc2VzXCI+XHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIiB0eXBlPVwiY2hlY2tib3hHcm91cFwiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcblxyXG4gIDxtcngtY2hlY2tib3gtZ3JvdXAtaGVhZGVyXHJcbiAgICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcclxuICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICBbdG9vbHRpcF09XCJ0b29sdGlwXCJcclxuICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcclxuICAgIFtsaW5rVGV4dF09XCJsaW5rVGV4dFwiXHJcbiAgICBbY2hlY2tlZEl0ZW1zQ291bnRdPVwiY2hlY2tlZExpc3QubGVuZ3RoXCJcclxuICAgICh1cGRhdGVDaGVja2JveEdyb3VwU2VhcmNoVmFsdWUpPVwidXBkYXRlQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlKCRldmVudClcIlxyXG4gICAgKGNsZWFyRmlsdGVycyk9XCJjbGVhckZpbHRlcnMoKVwiXHJcbiAgPjwvbXJ4LWNoZWNrYm94LWdyb3VwLWhlYWRlcj5cclxuXHJcbiAgPGRpdlxyXG4gICAgICAjZ3JvdXBJdGVtc1dyYXBwZXJcclxuICAgICAgKm5nSWY9XCJmaWx0ZXJlZExpc3Q/Lmxlbmd0aDsgZWxzZSBlbmFibGVNZXNzYWdlVGVtcGxhdGVcIlxyXG4gICAgICBjbGFzcz1cIm1yeC1jaGVja2JveC1ncm91cC13cmFwcGVyXCJcclxuICAgICAgW2NsYXNzLm1yeC1jaGVja2JveC1ncm91cC13cmFwcGVyLS1zY3JvbGxhYmxlXT1cInNjcm9sbGFibGVcIlxyXG4gICAgICBbY2xhc3MuLS1hY3RpdmVdPVwiZ2V0U2hvd1Njcm9sbFwiXHJcbiAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cInNjcm9sbGFibGUgPyBzY3JvbGxNYXhIZWlnaHQgKyAncHgnIDogJ2F1dG8nXCJcclxuICA+XHJcbiAgICA8bXJ4LWNoZWNrYm94LWdyb3VwLWl0ZW1cclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZExpc3Q7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGV0IGxhc3QgPSBsYXN0XCJcclxuICAgICAgICBbZGlzcGxhY2VkXT1cImRpc3BsYWNlZCB8fCBmYWxzZVwiXHJcbiAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcclxuICAgICAgICBbYW5pbWF0aW9uVHJpZ2dlcl09XCIhIWlzU2VhcmNoVmFsdWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICAgICAgICAoYW5pbWF0aW9uRW5kKT1cImNoZWNrSGVpZ2h0R3JvdXBXcmFwcGVyKClcIlxyXG4gICAgICAgIChjaGVja2JveENoYW5nZWQpPVwiY2hlY2tib3hDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPjwvbXJ4LWNoZWNrYm94LWdyb3VwLWl0ZW0+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZW5hYmxlTWVzc2FnZVRlbXBsYXRlPlxyXG4gICAgPHAgY2xhc3M9XCJtcngtY2hlY2tib3gtZ3JvdXBfX2VtcHR5LW1lc3NhZ2VcIj57eyBlbmFibGVNZXNzYWdlIH19PC9wPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgKm5nSWY9XCJnZXRJbnZhbGlkICYmIGdldEludmFsaWRNZXNzYWdlXCJcclxuICAgIFtpbnZhbGlkTWVzc2FnZV09XCJnZXRJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICBbY3VzdG9tQ2xhc3Nlc109XCInbXQtMidcIlxyXG4gID48L21yeC1lcnJvci1tZXNzYWdlPlxyXG48L2Rpdj5cclxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/forms";
@@ -23,11 +23,11 @@ export class CheckboxGroupHeaderComponent {
23
23
  this.clearFilters.emit();
24
24
  }
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: { searchable: "searchable", searchPlaceholder: "searchPlaceholder", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", checkedItemsCount: "checkedItemsCount" }, outputs: { updateCheckboxGroupSearchValue: "updateCheckboxGroupSearchValue", clearFilters: "clearFilters" }, ngImport: i0, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i3.InputSearchComponent, selector: "mrx-input-search", inputs: ["disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "invalid", "invalidMessage", "checkInvalid", "customClasses", "mask", "size"], outputs: ["changed", "cleared", "searched"] }, { kind: "component", type: i4.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }] });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: { searchable: "searchable", searchPlaceholder: "searchPlaceholder", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", checkedItemsCount: "checkedItemsCount" }, outputs: { updateCheckboxGroupSearchValue: "updateCheckboxGroupSearchValue", clearFilters: "clearFilters" }, ngImport: i0, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i3.InputSearchComponent, selector: "mrx-input-search", inputs: ["disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "invalid", "invalidMessage", "checkInvalid", "customClasses", "mask", "size"], outputs: ["changed", "cleared", "searched"] }, { kind: "component", type: i4.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CheckboxGroupHeaderComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'mrx-checkbox-group-header', template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"] }]
30
+ args: [{ selector: 'mrx-checkbox-group-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"] }]
31
31
  }], ctorParameters: () => [], propDecorators: { searchable: [{
32
32
  type: Input
33
33
  }], searchPlaceholder: [{
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
45
45
  }], clearFilters: [{
46
46
  type: Output
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NoZWNrYm94LWdyb3VwL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAtaGVhZGVyL2NoZWNrYm94LWdyb3VwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC1ncm91cC9jb21wb25lbnRzL2NoZWNrYm94LWdyb3VwLWhlYWRlci9jaGVja2JveC1ncm91cC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUVkLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsaUJBQWlCLEdBQUcsRUFBRSxDQUFBO0lBRS9CLFFBQVE7SUFDQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ1osU0FBUyxHQUFHLEVBQUUsQ0FBQTtJQUNkLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDYixpQkFBaUIsR0FBRyxDQUFDLENBQUE7SUFFYiw4QkFBOEIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNsRixZQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFN0UsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxXQUFxQztRQUM1RCxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUIsQ0FBQzt3R0F2QlUsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsc1dDVHpDLGlmQWdCQTs7NEZEUGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjt3REFPNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRVcsOEJBQThCO3NCQUE5QyxNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGVja2JveEdyb3VwU2VhcmNoVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hlY2tib3gtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9tcngtYXV0b3NhdmUvbXJ4LWF1dG9zYXZlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWNoZWNrYm94LWdyb3VwLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94R3JvdXBIZWFkZXJDb21wb25lbnQge1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZSA9ICcnXHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSBmYWxzZVxyXG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyID0gJydcclxuXHJcbiAgLy8gTEFCRUxcclxuICBASW5wdXQoKSB0b29sdGlwID0gJydcclxuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnJ1xyXG4gIEBJbnB1dCgpIGxpbmtUZXh0ID0gJydcclxuICBASW5wdXQoKSBjaGVja2VkSXRlbXNDb3VudCA9IDBcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB1cGRhdGVDaGVja2JveEdyb3VwU2VhcmNoVmFsdWU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjbGVhckZpbHRlcnM6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNlYXJjaFZhbHVlKHNlYXJjaFZhbHVlOiBDaGVja2JveEdyb3VwU2VhcmNoVmFsdWUpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlLmVtaXQoc2VhcmNoVmFsdWUpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGVhckZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyRmlsdGVycy5lbWl0KClcclxuICB9XHJcbn1cclxuIiwiPG1yeC1sYWJlbFxyXG4gICpuZ0lmPVwibGFiZWxUZXh0XCJcclxuICBbY291bnRlcl09XCJjaGVja2VkSXRlbXNDb3VudFwiXHJcbiAgW2xpbmtUZXh0XT1cImxpbmtUZXh0XCJcclxuICBbdG9vbHRpcF09XCJ0b29sdGlwXCJcclxuICAoY2xpY2tlZExpbmspPVwib25DbGVhckZpbHRlcnMoKVwiXHJcbj57eyBsYWJlbFRleHQgfX08L21yeC1sYWJlbD5cclxuXHJcbjxkaXYgY2xhc3M9XCJtcngtY2hlY2tib3gtZ3JvdXAtaGVhZC0tc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hhYmxlXCI+XHJcbiAgPG1yeC1pbnB1dC1zZWFyY2hcclxuICAgIFtuZ01vZGVsXT1cInNlYXJjaFZhbHVlXCJcclxuICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VTZWFyY2hWYWx1ZSgkZXZlbnQpXCJcclxuICA+PC9tcngtaW5wdXQtc2VhcmNoPlxyXG48L2Rpdj5cclxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NoZWNrYm94LWdyb3VwL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAtaGVhZGVyL2NoZWNrYm94LWdyb3VwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC1ncm91cC9jb21wb25lbnRzL2NoZWNrYm94LWdyb3VwLWhlYWRlci9jaGVja2JveC1ncm91cC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU2hHLE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUVkLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsaUJBQWlCLEdBQUcsRUFBRSxDQUFBO0lBRS9CLFFBQVE7SUFDQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ1osU0FBUyxHQUFHLEVBQUUsQ0FBQTtJQUNkLFFBQVEsR0FBRyxFQUFFLENBQUE7SUFDYixpQkFBaUIsR0FBRyxDQUFDLENBQUE7SUFFYiw4QkFBOEIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNsRixZQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFN0UsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxXQUFxQztRQUM1RCxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUIsQ0FBQzt3R0F2QlUsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsc1dDVHpDLGlmQWdCQTs7NEZEUGEsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTt3REFLdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRVcsOEJBQThCO3NCQUE5QyxNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWNoZWNrYm94LWdyb3VwLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtZ3JvdXAtaGVhZGVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveEdyb3VwSGVhZGVyQ29tcG9uZW50IHtcclxuICBwdWJsaWMgc2VhcmNoVmFsdWUgPSAnJ1xyXG5cclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gZmFsc2VcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlciA9ICcnXHJcblxyXG4gIC8vIExBQkVMXHJcbiAgQElucHV0KCkgdG9vbHRpcCA9ICcnXHJcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJydcclxuICBASW5wdXQoKSBsaW5rVGV4dCA9ICcnXHJcbiAgQElucHV0KCkgY2hlY2tlZEl0ZW1zQ291bnQgPSAwXHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdXBkYXRlQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJGaWx0ZXJzOiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bGw+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VTZWFyY2hWYWx1ZShzZWFyY2hWYWx1ZTogQ2hlY2tib3hHcm91cFNlYXJjaFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUNoZWNrYm94R3JvdXBTZWFyY2hWYWx1ZS5lbWl0KHNlYXJjaFZhbHVlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXJGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckZpbHRlcnMuZW1pdCgpXHJcbiAgfVxyXG59XHJcbiIsIjxtcngtbGFiZWxcclxuICAqbmdJZj1cImxhYmVsVGV4dFwiXHJcbiAgW2NvdW50ZXJdPVwiY2hlY2tlZEl0ZW1zQ291bnRcIlxyXG4gIFtsaW5rVGV4dF09XCJsaW5rVGV4dFwiXHJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXHJcbiAgKGNsaWNrZWRMaW5rKT1cIm9uQ2xlYXJGaWx0ZXJzKClcIlxyXG4+e3sgbGFiZWxUZXh0IH19PC9tcngtbGFiZWw+XHJcblxyXG48ZGl2IGNsYXNzPVwibXJ4LWNoZWNrYm94LWdyb3VwLWhlYWQtLXNlYXJjaFwiICpuZ0lmPVwic2VhcmNoYWJsZVwiPlxyXG4gIDxtcngtaW5wdXQtc2VhcmNoXHJcbiAgICBbbmdNb2RlbF09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlU2VhcmNoVmFsdWUoJGV2ZW50KVwiXHJcbiAgPjwvbXJ4LWlucHV0LXNlYXJjaD5cclxuPC9kaXY+XHJcbiJdfQ==