@tetacom/ng-components 1.0.39 → 1.0.40

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 (199) hide show
  1. package/component/file-upload/file-upload-area/file-upload-area.component.d.ts +3 -2
  2. package/component/table/contract/head-dropdown-tab.d.ts +13 -0
  3. package/component/table/contract/public-api.d.ts +1 -0
  4. package/component/table/contract/table-column.d.ts +7 -3
  5. package/component/table/head-cell/head-cell.component.d.ts +7 -3
  6. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +5 -43
  7. package/component/table/table/table.component.d.ts +1 -1
  8. package/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.d.ts +32 -0
  9. package/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.d.ts +41 -0
  10. package/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.d.ts +46 -0
  11. package/component/table/table.module.d.ts +23 -20
  12. package/esm2020/common/service/click.service.mjs +3 -3
  13. package/esm2020/common/service/dynamic-component.service.mjs +3 -3
  14. package/esm2020/common/service/overlay-container.service.mjs +3 -3
  15. package/esm2020/component/accordion/accordion/accordion.component.mjs +3 -3
  16. package/esm2020/component/accordion/accordion-content.directive.mjs +3 -3
  17. package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +3 -3
  18. package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +3 -3
  19. package/esm2020/component/accordion/accordion.module.mjs +4 -4
  20. package/esm2020/component/button/button/button.component.mjs +3 -3
  21. package/esm2020/component/button/button.module.mjs +4 -4
  22. package/esm2020/component/chart-3d/chart-3d.module.mjs +4 -4
  23. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +3 -3
  24. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  25. package/esm2020/component/checkbox/checkbox.module.mjs +4 -4
  26. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +5 -5
  27. package/esm2020/component/date-picker/date-picker.module.mjs +4 -4
  28. package/esm2020/component/date-picker/day-select/day-select.component.mjs +3 -3
  29. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +5 -5
  30. package/esm2020/component/date-picker/month-select/month-select.component.mjs +3 -3
  31. package/esm2020/component/date-picker/service/picker-touch.service.mjs +3 -3
  32. package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +3 -3
  33. package/esm2020/component/date-picker/year-select/year-select.component.mjs +3 -3
  34. package/esm2020/component/delimiter/delimiter/delimiter.component.mjs +3 -3
  35. package/esm2020/component/delimiter/delimiter.module.mjs +4 -4
  36. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +3 -3
  37. package/esm2020/component/dropdown/dropdown-base.mjs +3 -3
  38. package/esm2020/component/dropdown/dropdown-content.directive.mjs +3 -3
  39. package/esm2020/component/dropdown/dropdown-head.directive.mjs +3 -3
  40. package/esm2020/component/dropdown/dropdown.directive.mjs +3 -3
  41. package/esm2020/component/dropdown/dropdown.module.mjs +4 -4
  42. package/esm2020/component/dynamic-component/dynamic-component.module.mjs +4 -4
  43. package/esm2020/component/dynamic-component/popup-content/popup-content.component.mjs +3 -3
  44. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +5 -5
  45. package/esm2020/component/expand-card/expand-card.module.mjs +4 -4
  46. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  47. package/esm2020/component/expand-panel/expand-panel-content.directive.mjs +3 -3
  48. package/esm2020/component/expand-panel/expand-panel-head.directive.mjs +3 -3
  49. package/esm2020/component/expand-panel/expand-panel.module.mjs +4 -4
  50. package/esm2020/component/file-upload/file-item/file-item.component.mjs +3 -3
  51. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +11 -7
  52. package/esm2020/component/file-upload/file-upload.module.mjs +4 -4
  53. package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +3 -3
  54. package/esm2020/component/filter/date-filter/date-filter.component.mjs +3 -3
  55. package/esm2020/component/filter/filter-host/filter-host.component.mjs +3 -3
  56. package/esm2020/component/filter/filter.module.mjs +4 -4
  57. package/esm2020/component/filter/list-filter/list-filter.component.mjs +3 -3
  58. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +3 -3
  59. package/esm2020/component/filter/string-filter/string-filter.component.mjs +3 -3
  60. package/esm2020/component/icon/icon/icon.component.mjs +3 -3
  61. package/esm2020/component/icon/icon-sprite.directive.mjs +3 -3
  62. package/esm2020/component/icon/icon.module.mjs +4 -4
  63. package/esm2020/component/icon/icon.service.mjs +3 -3
  64. package/esm2020/component/input/form-group-title/form-group-title.component.mjs +3 -3
  65. package/esm2020/component/input/input/input.component.mjs +3 -3
  66. package/esm2020/component/input/input.module.mjs +4 -4
  67. package/esm2020/component/input/text-field/text-field.component.mjs +3 -3
  68. package/esm2020/component/message/message/message.component.mjs +3 -3
  69. package/esm2020/component/message/message-host/message-host.component.mjs +3 -3
  70. package/esm2020/component/message/message.module.mjs +4 -4
  71. package/esm2020/component/message/message.service.mjs +3 -3
  72. package/esm2020/component/modal/dialog/dialog.component.mjs +3 -3
  73. package/esm2020/component/modal/dialog.service.mjs +3 -3
  74. package/esm2020/component/modal/modal-container/modal-container.component.mjs +3 -3
  75. package/esm2020/component/modal/modal.module.mjs +4 -4
  76. package/esm2020/component/modal/modal.service.mjs +3 -3
  77. package/esm2020/component/pager/pager/pager.component.mjs +3 -3
  78. package/esm2020/component/pager/pager.module.mjs +4 -4
  79. package/esm2020/component/panel/panel/panel.component.mjs +3 -3
  80. package/esm2020/component/panel/panel.module.mjs +4 -4
  81. package/esm2020/component/progress-bar/progress-bar/progress-bar.component.mjs +3 -3
  82. package/esm2020/component/progress-bar/progress-bar.module.mjs +4 -4
  83. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +3 -3
  84. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +3 -3
  85. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +3 -3
  86. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +3 -3
  87. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +3 -3
  88. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +3 -3
  89. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +3 -3
  90. package/esm2020/component/property-grid/property-grid.module.mjs +4 -4
  91. package/esm2020/component/radio/radio/radio.component.mjs +3 -3
  92. package/esm2020/component/radio/radio-button/radio-button.component.mjs +3 -3
  93. package/esm2020/component/radio/radio.module.mjs +4 -4
  94. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +3 -3
  95. package/esm2020/component/resize-panel/resize-panel.module.mjs +4 -4
  96. package/esm2020/component/select/select/select.component.mjs +3 -3
  97. package/esm2020/component/select/select-option.directive.mjs +3 -3
  98. package/esm2020/component/select/select-value.directive.mjs +3 -3
  99. package/esm2020/component/select/select.module.mjs +4 -4
  100. package/esm2020/component/sidebar/sidebar/sidebar.component.mjs +3 -3
  101. package/esm2020/component/sidebar/sidebar.module.mjs +4 -4
  102. package/esm2020/component/switch/switch/switch.component.mjs +3 -3
  103. package/esm2020/component/switch/switch-button/switch-button.component.mjs +3 -3
  104. package/esm2020/component/switch/switch.module.mjs +4 -4
  105. package/esm2020/component/switch/switch.service.mjs +3 -3
  106. package/esm2020/component/table/base/cell-component-base.mjs +3 -3
  107. package/esm2020/component/table/base/head-cell-component-base.mjs +3 -3
  108. package/esm2020/component/table/cell/cell.component.mjs +3 -3
  109. package/esm2020/component/table/cell-host/cell-host.component.mjs +3 -3
  110. package/esm2020/component/table/contract/head-dropdown-tab.mjs +2 -0
  111. package/esm2020/component/table/contract/public-api.mjs +2 -1
  112. package/esm2020/component/table/contract/table-column.mjs +4 -2
  113. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +3 -3
  114. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +3 -3
  115. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +3 -3
  116. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -5
  117. package/esm2020/component/table/default/group-row/group-row.component.mjs +3 -3
  118. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +3 -3
  119. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +3 -3
  120. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +3 -3
  121. package/esm2020/component/table/head-cell/head-cell.component.mjs +59 -16
  122. package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +17 -180
  123. package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +3 -3
  124. package/esm2020/component/table/selection-cell/selection-cell.component.mjs +5 -5
  125. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +3 -3
  126. package/esm2020/component/table/service/table.service.mjs +14 -5
  127. package/esm2020/component/table/table/table.component.mjs +12 -5
  128. package/esm2020/component/table/table-body/table-body.component.mjs +32 -28
  129. package/esm2020/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +55 -0
  130. package/esm2020/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +81 -0
  131. package/esm2020/component/table/table-head/table-head.component.mjs +22 -22
  132. package/esm2020/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +140 -0
  133. package/esm2020/component/table/table-head-group/table-head-group.component.mjs +3 -3
  134. package/esm2020/component/table/table.module.mjs +15 -6
  135. package/esm2020/component/tabs/tab/tab.component.mjs +3 -3
  136. package/esm2020/component/tabs/tab-content.directive.mjs +3 -3
  137. package/esm2020/component/tabs/tab-title.directive.mjs +3 -3
  138. package/esm2020/component/tabs/tabs/tabs.component.mjs +3 -3
  139. package/esm2020/component/tabs/tabs.module.mjs +4 -4
  140. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  141. package/esm2020/component/theme-switch/theme-switch.module.mjs +4 -4
  142. package/esm2020/component/theme-switch/theme-switch.service.mjs +3 -3
  143. package/esm2020/component/toggle/toggle/toggle.component.mjs +3 -3
  144. package/esm2020/component/toggle/toggle.module.mjs +4 -4
  145. package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +3 -3
  146. package/esm2020/component/toolbar/toolbar.module.mjs +4 -4
  147. package/esm2020/component/tree/tree/tree.component.mjs +3 -3
  148. package/esm2020/component/tree/tree-item/tree-item.component.mjs +3 -3
  149. package/esm2020/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +3 -3
  150. package/esm2020/component/tree/tree.module.mjs +4 -4
  151. package/esm2020/component/tree/tree.service.mjs +3 -3
  152. package/esm2020/directive/click-outside/click-outside.directive.mjs +3 -3
  153. package/esm2020/directive/click-outside/click-outside.module.mjs +4 -4
  154. package/esm2020/directive/context-menu/context-menu.directive.mjs +3 -3
  155. package/esm2020/directive/context-menu/context-menu.module.mjs +4 -4
  156. package/esm2020/directive/disable-control/disable-control.directive.mjs +3 -3
  157. package/esm2020/directive/disable-control/disable-control.module.mjs +4 -4
  158. package/esm2020/directive/drag-drop/drag-container.directive.mjs +3 -3
  159. package/esm2020/directive/drag-drop/drag-drop.module.mjs +4 -4
  160. package/esm2020/directive/drag-drop/drag-drop.service.mjs +3 -3
  161. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +3 -3
  162. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +3 -3
  163. package/esm2020/directive/drag-drop/drag.directive.mjs +3 -3
  164. package/esm2020/directive/drag-sort/drag-sort-container.directive.mjs +3 -3
  165. package/esm2020/directive/drag-sort/drag-sort-item.directive.mjs +3 -3
  166. package/esm2020/directive/drag-sort/drag-sort.module.mjs +4 -4
  167. package/esm2020/directive/dynamic-content-base.directive.mjs +3 -3
  168. package/esm2020/directive/highlight/highlight.directive.mjs +3 -3
  169. package/esm2020/directive/highlight/highlight.module.mjs +4 -4
  170. package/esm2020/directive/hint/hint.directive.mjs +3 -3
  171. package/esm2020/directive/hint/hint.module.mjs +4 -4
  172. package/esm2020/directive/let/let.directive.mjs +3 -3
  173. package/esm2020/directive/let/let.module.mjs +4 -4
  174. package/esm2020/directive/loader/loader.directive.mjs +3 -3
  175. package/esm2020/directive/loader/loader.module.mjs +4 -4
  176. package/esm2020/directive/no-autofill/no-autofill.directive.mjs +3 -3
  177. package/esm2020/directive/no-autofill/no-autofill.module.mjs +4 -4
  178. package/esm2020/directive/only-number/only-number.directive.mjs +3 -3
  179. package/esm2020/directive/only-number/only-number.module.mjs +4 -4
  180. package/esm2020/directive/resize-drag/resize-drag.directive.mjs +3 -3
  181. package/esm2020/directive/resize-drag/resize-drag.module.mjs +4 -4
  182. package/esm2020/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
  183. package/esm2020/directive/scroll-into-view/scroll-into-view.module.mjs +4 -4
  184. package/esm2020/directive/teta-template/teta-template.directive.mjs +3 -3
  185. package/esm2020/directive/teta-template/teta-template.module.mjs +4 -4
  186. package/esm2020/directive/tooltip/tooltip.directive.mjs +3 -3
  187. package/esm2020/directive/tooltip/tooltip.module.mjs +4 -4
  188. package/esm2020/locale/teta-config.service.mjs +3 -3
  189. package/esm2020/pipe/number-pipe/number-pipe.module.mjs +4 -4
  190. package/esm2020/pipe/number-pipe/number.pipe.mjs +3 -3
  191. package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +4 -4
  192. package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +3 -3
  193. package/fesm2015/tetacom-ng-components.mjs +883 -716
  194. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  195. package/fesm2020/tetacom-ng-components.mjs +880 -715
  196. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  197. package/package.json +1 -1
  198. package/style/layout.scss +2 -1
  199. package/style/table.scss +14 -1
@@ -1,196 +1,38 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, } from '@angular/core';
2
- import { FilterState } from '../../filter/contarct/filter-state';
3
- import { StateUtil } from '../util/state-util';
4
- import { map, takeWhile } from 'rxjs/operators';
5
- import { ArrayUtil } from '../../../common/util/array-util';
6
- import { SortEvent } from '../contract/sort-event';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
7
2
  import * as i0 from "@angular/core";
8
3
  import * as i1 from "../service/table.service";
9
4
  import * as i2 from "../../../locale/teta-config.service";
10
5
  import * as i3 from "../../tabs/tabs/tabs.component";
11
6
  import * as i4 from "../../tabs/tab/tab.component";
12
7
  import * as i5 from "../../icon/icon/icon.component";
13
- import * as i6 from "../../filter/filter-host/filter-host.component";
14
- import * as i7 from "../../toolbar/toolbar/toolbar.component";
15
- import * as i8 from "../../button/button/button.component";
16
- import * as i9 from "../../checkbox/checkbox/checkbox.component";
17
- import * as i10 from "../../tree/tree/tree.component";
18
- import * as i11 from "../../tree/tree-item-toggle/tree-item-toggle.component";
19
- import * as i12 from "@angular/common";
20
- import * as i13 from "../../tabs/tab-title.directive";
21
- import * as i14 from "../../tabs/tab-content.directive";
22
- import * as i15 from "@angular/forms";
23
- import * as i16 from "../../../directive/teta-template/teta-template.directive";
8
+ import * as i6 from "@angular/common";
9
+ import * as i7 from "../../tabs/tab-title.directive";
10
+ import * as i8 from "../../tabs/tab-content.directive";
24
11
  export class HeadCellDropdownComponent {
25
12
  constructor(_svc, _config, _cdr) {
26
13
  this._svc = _svc;
27
14
  this._config = _config;
28
15
  this._cdr = _cdr;
29
16
  this.dropDownOpenChange = new EventEmitter();
30
- this.autosize = new EventEmitter();
31
- this.autosizeAll = new EventEmitter();
32
- this._alive = true;
33
- this.compareItems = (item) => item.name;
34
- this.setChildrenVisibility = (column, visible, hiddenColumns) => {
35
- if (visible) {
36
- this.showColumn(column, hiddenColumns);
37
- }
38
- else {
39
- this.hideColumn(column, hiddenColumns);
40
- }
41
- if (column.columns) {
42
- column.columns.forEach((x) => {
43
- this.setChildrenVisibility(x, visible, hiddenColumns);
44
- });
45
- }
17
+ this.closeDropdown = () => {
18
+ console.log('closeDropdown');
19
+ this.dropDownOpen = false;
20
+ this.dropDownOpenChange.emit(false);
46
21
  };
47
- this.setParentsVisibility = (column, visible, hiddenColumns) => {
48
- if (!visible) {
49
- this.hideParents(column, hiddenColumns);
50
- }
51
- else {
52
- this.showParents(column, hiddenColumns);
53
- }
54
- };
55
- this.locale = this._config.locale;
56
- this.filterOptions = this._svc.filterOptions;
57
- this._svc.hiddenColumns
58
- .pipe(takeWhile((_) => this._alive), map((_) => [..._]))
59
- .subscribe((_) => {
60
- this.hiddenColumns = _;
61
- });
62
- }
63
- enter() {
64
- this.applyFilter();
65
- }
66
- get sortParam() {
67
- return StateUtil.getSortState(this.state, this.column);
68
- }
69
- get filtered() {
70
- return StateUtil.isColumnFiltered(this.state, this.column);
71
- }
72
- get openItems() {
73
- if (this._openItems == null) {
74
- this._openItems = this.columns.map((_) => _);
75
- }
76
- return this._openItems;
77
- }
78
- set openItems(openItems) {
79
- this._openItems = openItems;
80
- }
81
- get childMode() {
82
- return this.columns.find((_) => _.columns?.length > 0);
83
- }
84
- clearFilter() {
85
- this._svc.clearFilter(this.column);
86
- this.dropDownOpenChange.emit(false);
87
- this._cdr.markForCheck();
88
- }
89
- applyFilter() {
90
- this._svc.setState(new FilterState(this.state));
91
- this.dropDownOpenChange.emit(false);
92
- this._cdr.markForCheck();
93
- }
94
- pinColumn() {
95
- this._svc.pinColumn(this.column);
96
- }
97
- sortAsc(event) {
98
- this._svc.sortAsc(new SortEvent(this.column, event.shiftKey));
99
- }
100
- sortDesc(event) {
101
- this._svc.sortDesc(new SortEvent(this.column, event.shiftKey));
102
- }
103
- clearSort() {
104
- this._svc.clearSort(this.column);
105
- }
106
- clearAllSort() {
107
- this._svc.clearAllSort();
108
- }
109
- // sortColumn(column: TableColumn, event: MouseEvent): void {
110
- // if (!event.defaultPrevented) {
111
- // this._svc.sort(new SortEvent(this.column, event.shiftKey));
112
- // }
113
- // }
114
- hasFilteredColumns() {
115
- return StateUtil.hasFilteredColumns(this.state);
116
- }
117
- hasSortedColumns() {
118
- return StateUtil.hasSortedColumns(this.state);
119
- }
120
- restoreDefaultColumns() {
121
- this._svc.restoreDefaultColumns();
122
- }
123
- clearAllFilters() {
124
- this._svc.clearAllFilters();
125
- this.dropDownOpen = false;
126
- this._cdr.markForCheck();
127
- }
128
- columnIsHidden(column) {
129
- return this.hiddenColumns.indexOf(column.name) >= 0;
130
- }
131
- allColumnsVisible() {
132
- if (this.hiddenColumns?.length <= 0) {
133
- return true;
134
- }
135
- const columns = ArrayUtil.flatten(this.columns, 'columns');
136
- const notHidden = columns.find((_) => this.hiddenColumns.indexOf(_.name) < 0);
137
- if (!notHidden) {
138
- return false;
139
- }
140
- return null;
141
- }
142
- setAllColumns(value) {
143
- if (value) {
144
- this.hiddenColumns = [];
145
- }
146
- else {
147
- this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map((_) => _.name);
148
- }
149
- }
150
- setColumnsVisibility() {
151
- this._svc.setHiddenColumns(this.hiddenColumns);
152
22
  }
153
23
  ngOnInit() {
154
24
  }
155
25
  ngOnDestroy() {
156
- this._alive = false;
157
- }
158
- setColumnVisibility(item, visible) {
159
- this.setChildrenVisibility(item, visible, this.hiddenColumns);
160
- this.setParentsVisibility(item, visible, this.hiddenColumns);
161
26
  }
162
- showParents(column, hiddenColumns) {
163
- const parent = this.findParentColumn(column, this.columns);
164
- if (parent && this.columnIsHidden(parent)) {
165
- this.showColumn(parent, hiddenColumns);
166
- this.showParents(parent, hiddenColumns);
167
- }
168
- }
169
- hideParents(column, hiddenColumns) {
170
- const parent = this.findParentColumn(column, this.columns);
171
- if (parent &&
172
- !this.columnIsHidden(parent) &&
173
- parent.columns &&
174
- parent.columns.every((_) => this.columnIsHidden(_))) {
175
- this.hideColumn(parent, hiddenColumns);
176
- this.hideParents(parent, hiddenColumns);
177
- }
178
- }
179
- hideColumn(column, hiddenColumns) {
180
- hiddenColumns.push(column.name);
181
- }
182
- showColumn(column, hiddenColumns) {
183
- hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);
184
- }
185
- findParentColumn(column, columns) {
186
- return ArrayUtil.findRecursive(columns, (iterableNode) => iterableNode.columns?.indexOf(column) >= 0, 'columns');
27
+ trackIndex(index) {
28
+ return index;
187
29
  }
188
30
  }
189
- HeadCellDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: i1.TableService }, { token: i2.TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
190
- HeadCellDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange", autosize: "autosize", autosizeAll: "autosizeAll" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "<teta-tabs class=\"column_auto\" *ngIf=\"locale | async as loc\">\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n *ngIf=\"filterOptions | async as options\"\n [filterOptions]=\"options[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{loc.clear}}\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n {{loc.apply}}\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.headDropdownTemplate\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'measurement'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n {{loc.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n {{loc.apply}}\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"], components: [{ type: i3.TabsComponent, selector: "teta-tabs", inputs: ["activeId", "destroyOnHide"], outputs: ["tabChange"] }, { type: i4.TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { type: i5.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i6.FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { type: i7.ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: i8.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: i9.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }, { type: i10.TreeComponent, selector: "teta-tree", inputs: ["data", "class", "padding", "childNodeName", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { type: i11.TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.TabTitleDirective, selector: "[tetaTabTitle]" }, { type: i14.TabContentDirective, selector: "[tetaTabContent]" }, { type: i12.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i16.TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }], pipes: { "async": i12.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
31
+ HeadCellDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: i1.TableService }, { token: i2.TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
32
+ HeadCellDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "<teta-tabs class=\"column_auto\">\n <ng-container *ngFor=\"let tab of tabTemplates; trackBy: trackIndex\">\n <teta-tab *ngIf=\"tab.showTab(column)\">\n <ng-template tetaTabTitle>\n <ng-container *ngIf=\"tab.icon\">\n <teta-icon [name]=\"tab.icon\"></teta-icon>\n </ng-container>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\"></ng-container>\n </ng-template>\n </teta-tab>\n </ng-container>\n<!-- <teta-tab>-->\n\n<!-- </teta-tab>-->\n<!-- <teta-tab *ngIf=\"column.filterable\">-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'filter'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <teta-filter-dropdown-tab [column]=\"column\"-->\n<!-- [state]=\"state\"-->\n<!-- [close]=\"closeDropdown\"-->\n<!-- [data]=\"data\"></teta-filter-dropdown-tab>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n<!-- <teta-tab *ngIf=\"column.headDropdownTemplate\">-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'measurement'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <ng-container-->\n<!-- *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n<!-- <teta-tab>-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'eye'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <teta-visibility-dropdown-tab [column]=\"column\"-->\n<!-- [columns]=\"columns\"-->\n<!-- [state]=\"state\"-->\n<!-- [close]=\"closeDropdown\"-->\n<!-- [data]=\"data\"></teta-visibility-dropdown-tab>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"], components: [{ type: i3.TabsComponent, selector: "teta-tabs", inputs: ["activeId", "destroyOnHide"], outputs: ["tabChange"] }, { type: i4.TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { type: i5.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.TabTitleDirective, selector: "[tetaTabTitle]" }, { type: i8.TabContentDirective, selector: "[tetaTabContent]" }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
192
34
  type: Component,
193
- args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-tabs class=\"column_auto\" *ngIf=\"locale | async as loc\">\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n *ngIf=\"filterOptions | async as options\"\n [filterOptions]=\"options[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{loc.clear}}\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n {{loc.apply}}\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.headDropdownTemplate\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'measurement'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n {{loc.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n {{loc.apply}}\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"] }]
35
+ args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-tabs class=\"column_auto\">\n <ng-container *ngFor=\"let tab of tabTemplates; trackBy: trackIndex\">\n <teta-tab *ngIf=\"tab.showTab(column)\">\n <ng-template tetaTabTitle>\n <ng-container *ngIf=\"tab.icon\">\n <teta-icon [name]=\"tab.icon\"></teta-icon>\n </ng-container>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\"></ng-container>\n </ng-template>\n </teta-tab>\n </ng-container>\n<!-- <teta-tab>-->\n\n<!-- </teta-tab>-->\n<!-- <teta-tab *ngIf=\"column.filterable\">-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'filter'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <teta-filter-dropdown-tab [column]=\"column\"-->\n<!-- [state]=\"state\"-->\n<!-- [close]=\"closeDropdown\"-->\n<!-- [data]=\"data\"></teta-filter-dropdown-tab>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n<!-- <teta-tab *ngIf=\"column.headDropdownTemplate\">-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'measurement'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <ng-container-->\n<!-- *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n<!-- <teta-tab>-->\n<!-- <ng-template tetaTabTitle>-->\n<!-- <teta-icon [name]=\"'eye'\"></teta-icon>-->\n<!-- </ng-template>-->\n<!-- <ng-template tetaTabContent>-->\n<!-- <teta-visibility-dropdown-tab [column]=\"column\"-->\n<!-- [columns]=\"columns\"-->\n<!-- [state]=\"state\"-->\n<!-- [close]=\"closeDropdown\"-->\n<!-- [data]=\"data\"></teta-visibility-dropdown-tab>-->\n<!-- </ng-template>-->\n<!-- </teta-tab>-->\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"] }]
194
36
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i2.TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
195
37
  type: Input
196
38
  }], column: [{
@@ -199,16 +41,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
199
41
  type: Input
200
42
  }], data: [{
201
43
  type: Input
44
+ }], tabTemplates: [{
45
+ type: Input
202
46
  }], dropDownOpen: [{
203
47
  type: Input
204
48
  }], dropDownOpenChange: [{
205
49
  type: Output
206
- }], autosize: [{
207
- type: Output
208
- }], autosizeAll: [{
209
- type: Output
210
- }], enter: [{
211
- type: HostListener,
212
- args: ['keydown.enter']
213
50
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsLWRyb3Bkb3duL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC1kcm9wZG93bi9oZWFkLWNlbGwtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFLN0MsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFHMUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVakQsTUFBTSxPQUFPLHlCQUF5QjtJQThDcEMsWUFBb0IsSUFBcUIsRUFDckIsT0FBMEIsRUFDMUIsSUFBdUI7UUFGdkIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUExQ2pDLHVCQUFrQixHQUMxQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBCLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN4RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBa0M3RCxXQUFNLEdBQUcsSUFB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QkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFNd0IsS0FBSztzQkFBbkMsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtJVHJlZURhdGF9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLXRyZWUtZGF0YSc7XG5pbXBvcnQge0lEaWN0aW9uYXJ5fSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7SUlkTmFtZX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VXaGlsZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBcnJheVV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7VGFibGVSb3d9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLXJvdyc7XG5pbXBvcnQge1NvcnRFdmVudH0gZnJvbSAnLi4vY29udHJhY3Qvc29ydC1ldmVudCc7XG5pbXBvcnQge1RldGFMb2NhbGlzYXRpb259IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQge1RldGFDb25maWdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1jb25maWcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxEcm9wZG93bkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29sdW1uczogSVRyZWVEYXRhW107XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHN0YXRlOiBGaWx0ZXJTdGF0ZTtcbiAgQElucHV0KCkgZGF0YTogVGFibGVSb3c8VD5bXTtcbiAgQElucHV0KCkgZHJvcERvd25PcGVuOiBib29sZWFuO1xuICBAT3V0cHV0KCkgZHJvcERvd25PcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KCkgYXV0b3NpemU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGF1dG9zaXplQWxsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZmlsdGVyT3B0aW9uczogT2JzZXJ2YWJsZTxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+O1xuICBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXTtcbiAgbG9jYWxlOiBPYnNlcnZhYmxlPFRldGFMb2NhbGlzYXRpb24+O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInKSBlbnRlcigpIHtcbiAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XG4gIH1cblxuICBnZXQgc29ydFBhcmFtKCk6IFNvcnRQYXJhbSB7XG4gICAgcmV0dXJuIFN0YXRlVXRpbC5nZXRTb3J0U3RhdGUodGhpcy5zdGF0ZSwgdGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkKCkge1xuICAgIHJldHVybiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZCh0aGlzLnN0YXRlLCB0aGlzLmNvbHVtbik7XG4gIH1cblxuICBnZXQgb3Blbkl0ZW1zKCkge1xuICAgIGlmICh0aGlzLl9vcGVuSXRlbXMgPT0gbnVsbCkge1xuICAgICAgdGhpcy5fb3Blbkl0ZW1zID0gdGhpcy5jb2x1bW5zLm1hcCgoXykgPT4gXyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcGVuSXRlbXM7XG4gIH1cblxuICBzZXQgb3Blbkl0ZW1zKG9wZW5JdGVtczogSVRyZWVEYXRhW10pIHtcbiAgICB0aGlzLl9vcGVuSXRlbXMgPSBvcGVuSXRlbXM7XG4gIH1cblxuICBnZXQgY2hpbGRNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmluZCgoXzogYW55KSA9PiBfLmNvbHVtbnM/Lmxlbmd0aCA+IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3Blbkl0ZW1zOiBJVHJlZURhdGFbXTtcbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF9jb25maWc6IFRldGFDb25maWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLl9jb25maWcubG9jYWxlO1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IHRoaXMuX3N2Yy5maWx0ZXJPcHRpb25zO1xuICAgIHRoaXMuX3N2Yy5oaWRkZW5Db2x1bW5zXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIG1hcCgoXykgPT4gWy4uLl9dKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICB0aGlzLmhpZGRlbkNvbHVtbnMgPSBfO1xuICAgICAgfSk7XG4gIH1cblxuICBjbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLl9zdmMuY2xlYXJGaWx0ZXIodGhpcy5jb2x1bW4pO1xuICAgIHRoaXMuZHJvcERvd25PcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCkge1xuICAgIHRoaXMuX3N2Yy5zZXRTdGF0ZShuZXcgRmlsdGVyU3RhdGUodGhpcy5zdGF0ZSkpO1xuICAgIHRoaXMuZHJvcERvd25PcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHBpbkNvbHVtbigpIHtcbiAgICB0aGlzLl9zdmMucGluQ29sdW1uKHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIHNvcnRBc2MoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9zdmMuc29ydEFzYyhuZXcgU29ydEV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5zaGlmdEtleSkpO1xuICB9XG5cbiAgc29ydERlc2MoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9zdmMuc29ydERlc2MobmV3IFNvcnRFdmVudCh0aGlzLmNvbHVtbiwgZXZlbnQuc2hpZnRLZXkpKTtcbiAgfVxuXG4gIGNsZWFyU29ydCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMuY2xlYXJTb3J0KHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIGNsZWFyQWxsU29ydCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMuY2xlYXJBbGxTb3J0KCk7XG4gIH1cblxuICAvLyBzb3J0Q29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gIC8vICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gIC8vICAgICB0aGlzLl9zdmMuc29ydChuZXcgU29ydEV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5zaGlmdEtleSkpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIGhhc0ZpbHRlcmVkQ29sdW1ucygpIHtcbiAgICByZXR1cm4gU3RhdGVVdGlsLmhhc0ZpbHRlcmVkQ29sdW1ucyh0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIGhhc1NvcnRlZENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIFN0YXRlVXRpbC5oYXNTb3J0ZWRDb2x1bW5zKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgcmVzdG9yZURlZmF1bHRDb2x1bW5zKCkge1xuICAgIHRoaXMuX3N2Yy5yZXN0b3JlRGVmYXVsdENvbHVtbnMoKTtcbiAgfVxuXG4gIGNsZWFyQWxsRmlsdGVycygpIHtcbiAgICB0aGlzLl9zdmMuY2xlYXJBbGxGaWx0ZXJzKCk7XG4gICAgdGhpcy5kcm9wRG93bk9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjb2x1bW5Jc0hpZGRlbihjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIHRoaXMuaGlkZGVuQ29sdW1ucy5pbmRleE9mKGNvbHVtbi5uYW1lKSA+PSAwO1xuICB9XG5cbiAgYWxsQ29sdW1uc1Zpc2libGUoKSB7XG4gICAgaWYgKHRoaXMuaGlkZGVuQ29sdW1ucz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5zID0gQXJyYXlVdGlsLmZsYXR0ZW4odGhpcy5jb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGNvbnN0IG5vdEhpZGRlbiA9IGNvbHVtbnMuZmluZChcbiAgICAgIChfKSA9PiB0aGlzLmhpZGRlbkNvbHVtbnMuaW5kZXhPZihfLm5hbWUpIDwgMFxuICAgICk7XG4gICAgaWYgKCFub3RIaWRkZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzZXRBbGxDb2x1bW5zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmhpZGRlbkNvbHVtbnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRkZW5Db2x1bW5zID0gQXJyYXlVdGlsLmZsYXR0ZW4odGhpcy5jb2x1bW5zLCAnY29sdW1ucycpLm1hcChcbiAgICAgICAgKF8pID0+IF8ubmFtZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZXRDb2x1bW5zVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLl9zdmMuc2V0SGlkZGVuQ29sdW1ucyh0aGlzLmhpZGRlbkNvbHVtbnMpO1xuICB9XG5cbiAgY29tcGFyZUl0ZW1zID0gKGl0ZW06IFRhYmxlQ29sdW1uKSA9PiBpdGVtLm5hbWU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q29sdW1uVmlzaWJpbGl0eShpdGVtOiBUYWJsZUNvbHVtbiwgdmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0Q2hpbGRyZW5WaXNpYmlsaXR5KGl0ZW0sIHZpc2libGUsIHRoaXMuaGlkZGVuQ29sdW1ucyk7XG4gICAgdGhpcy5zZXRQYXJlbnRzVmlzaWJpbGl0eShpdGVtLCB2aXNpYmxlLCB0aGlzLmhpZGRlbkNvbHVtbnMpO1xuICB9XG5cbiAgc2V0Q2hpbGRyZW5WaXNpYmlsaXR5ID0gKFxuICAgIGNvbHVtbjogVGFibGVDb2x1bW4sXG4gICAgdmlzaWJsZTogYm9vbGVhbixcbiAgICBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXVxuICApID0+IHtcbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5zaG93Q29sdW1uKGNvbHVtbiwgaGlkZGVuQ29sdW1ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZUNvbHVtbihjb2x1bW4sIGhpZGRlbkNvbHVtbnMpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmNvbHVtbnMpIHtcbiAgICAgIGNvbHVtbi5jb2x1bW5zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlblZpc2liaWxpdHkoeCwgdmlzaWJsZSwgaGlkZGVuQ29sdW1ucyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgc2V0UGFyZW50c1Zpc2liaWxpdHkgPSAoXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbixcbiAgICB2aXNpYmxlOiBib29sZWFuLFxuICAgIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdXG4gICkgPT4ge1xuICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgdGhpcy5oaWRlUGFyZW50cyhjb2x1bW4sIGhpZGRlbkNvbHVtbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dQYXJlbnRzKGNvbHVtbiwgaGlkZGVuQ29sdW1ucyk7XG4gICAgfVxuICB9O1xuXG4gIHNob3dQYXJlbnRzKGNvbHVtbjogVGFibGVDb2x1bW4sIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50Q29sdW1uKGNvbHVtbiwgdGhpcy5jb2x1bW5zIGFzIFRhYmxlQ29sdW1uW10pO1xuICAgIGlmIChwYXJlbnQgJiYgdGhpcy5jb2x1bW5Jc0hpZGRlbihwYXJlbnQpKSB7XG4gICAgICB0aGlzLnNob3dDb2x1bW4ocGFyZW50LCBoaWRkZW5Db2x1bW5zKTtcbiAgICAgIHRoaXMuc2hvd1BhcmVudHMocGFyZW50LCBoaWRkZW5Db2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICBoaWRlUGFyZW50cyhjb2x1bW46IFRhYmxlQ29sdW1uLCBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudENvbHVtbihjb2x1bW4sIHRoaXMuY29sdW1ucyBhcyBUYWJsZUNvbHVtbltdKTtcbiAgICBpZiAoXG4gICAgICBwYXJlbnQgJiZcbiAgICAgICF0aGlzLmNvbHVtbklzSGlkZGVuKHBhcmVudCkgJiZcbiAgICAgIHBhcmVudC5jb2x1bW5zICYmXG4gICAgICBwYXJlbnQuY29sdW1ucy5ldmVyeSgoXykgPT4gdGhpcy5jb2x1bW5Jc0hpZGRlbihfKSlcbiAgICApIHtcbiAgICAgIHRoaXMuaGlkZUNvbHVtbihwYXJlbnQsIGhpZGRlbkNvbHVtbnMpO1xuICAgICAgdGhpcy5oaWRlUGFyZW50cyhwYXJlbnQsIGhpZGRlbkNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVDb2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgaGlkZGVuQ29sdW1uczogc3RyaW5nW10pIHtcbiAgICBoaWRkZW5Db2x1bW5zLnB1c2goY29sdW1uLm5hbWUpO1xuICB9XG5cbiAgc2hvd0NvbHVtbihjb2x1bW46IFRhYmxlQ29sdW1uLCBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIGhpZGRlbkNvbHVtbnMuc3BsaWNlKGhpZGRlbkNvbHVtbnMuaW5kZXhPZihjb2x1bW4ubmFtZSksIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50Q29sdW1uKFxuICAgIGNvbHVtbjogVGFibGVDb2x1bW4sXG4gICAgY29sdW1uczogVGFibGVDb2x1bW5bXVxuICApOiBUYWJsZUNvbHVtbiB8IG51bGwge1xuICAgIHJldHVybiBBcnJheVV0aWwuZmluZFJlY3Vyc2l2ZShcbiAgICAgIGNvbHVtbnMsXG4gICAgICAoaXRlcmFibGVOb2RlKSA9PiBpdGVyYWJsZU5vZGUuY29sdW1ucz8uaW5kZXhPZihjb2x1bW4pID49IDAsXG4gICAgICAnY29sdW1ucydcbiAgICApO1xuICB9XG59XG4iLCI8dGV0YS10YWJzIGNsYXNzPVwiY29sdW1uX2F1dG9cIiAqbmdJZj1cImxvY2FsZSB8IGFzeW5jIGFzIGxvY1wiPlxuICA8dGV0YS10YWI+XG4gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ21lbnUnXCI+PC90ZXRhLWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgdGV0YVRhYkNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdCBjb2x1bW5fYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiIChjbGljayk9XCJwaW5Db2x1bW4oKVwiPlxuICAgICAgICAgIHt7Y29sdW1uLmxvY2tlZCA/IGxvYy51bnBpbiA6IGxvYy5waW59fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRBc2MoJGV2ZW50KVwiPlxuICAgICAgICAgICAge3tsb2Muc29ydEFzY319XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnREZXNjKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7bG9jLnNvcnREZXNjfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU29ydGVkQ29sdW1ucygpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydFBhcmFtXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU29ydCgpXCI+XG4gICAgICAgICAgICAgIHt7bG9jLmNsZWFyU29ydH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsU29ydCgpXCI+XG4gICAgICAgICAgICAgIHt7bG9jLmNsZWFyQWxsU29ydH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWx0ZXJlZENvbHVtbnMoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyZWRcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cbiAgICAgICAgICAgIHt7bG9jLmNsZWFyRmlsdGVyfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGxGaWx0ZXJzKClcIj5cbiAgICAgICAgICAgIHt7bG9jLmNsZWFyQWxsRmlsdGVyc319XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIiAoY2xpY2spPVwiYXV0b3NpemUuZW1pdCgpXCI+XG4gICAgICAgICAge3tsb2MuYXV0b3NpemVDb2x1bW59fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWl0ZW1faW50ZXJhY3RpdmVcIiAoY2xpY2spPVwiYXV0b3NpemVBbGwuZW1pdCgpXCI+XG4gICAgICAgICAge3tsb2MuYXV0b3NpemVBbGx9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtaXRlbV9pbnRlcmFjdGl2ZVwiIChjbGljayk9XCJyZXN0b3JlRGVmYXVsdENvbHVtbnMoKVwiPlxuICAgICAgICAgIHt7bG9jLnJlc2V0Q29sdW1uc1NpemV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvdGV0YS10YWI+XG4gIDx0ZXRhLXRhYiAqbmdJZj1cImNvbHVtbi5maWx0ZXJhYmxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2ZpbHRlcidcIj48L3RldGEtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSB0ZXRhVGFiQ29udGVudD5cbiAgICAgIDx0ZXRhLWZpbHRlci1ob3N0IFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyT3B0aW9ucyB8IGFzeW5jIGFzIG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlck9wdGlvbnNdPVwib3B0aW9uc1tjb2x1bW4ubmFtZV1cIj48L3RldGEtZmlsdGVyLWhvc3Q+XG4gICAgICA8dGV0YS10b29sYmFyIGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgPGJ1dHRvbiB0ZXRhLWJ1dHRvbiBbcGFsZXR0ZV09XCIndGV4dCdcIiBbdmlld109XCInZ2hvc3QnXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cbiAgICAgICAgICB7e2xvYy5jbGVhcn19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uIFtwYWxldHRlXT1cIidwcmltYXJ5J1wiIChjbGljayk9XCJhcHBseUZpbHRlcigpXCI+XG4gICAgICAgICAgPHRldGEtaWNvbiBbbmFtZV09XCIndGljaydcIj48L3RldGEtaWNvbj5cbiAgICAgICAgICB7e2xvYy5hcHBseX19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZXRhLXRvb2xiYXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC90ZXRhLXRhYj5cbiAgPHRldGEtdGFiICpuZ0lmPVwiY29sdW1uLmhlYWREcm9wZG93blRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ21lYXN1cmVtZW50J1wiPjwvdGV0YS1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJDb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkRHJvcGRvd25UZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLCBjb2x1bW46IGNvbHVtbn1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3RldGEtdGFiPlxuICA8dGV0YS10YWI+XG4gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2V5ZSdcIj48L3RldGEtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSB0ZXRhVGFiQ29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gcGFkZGluZy1sZWZ0LTYgcGFkZGluZy10b3AtMlwiIFtjbGFzcy5wYWRkaW5nLWxlZnQtOV09XCJjaGlsZE1vZGVcIj5cbiAgICAgICAgPHRldGEtY2hlY2tib3ggW2JpbmFyeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93TnVsbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWxsQ29sdW1uc1Zpc2libGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldEFsbENvbHVtbnMoJGV2ZW50KVwiPlxuICAgICAgICAgIHt7bG9jLmFsbH19XG4gICAgICAgIDwvdGV0YS1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBhZGRpbmctdi0yIGNvbHVtbiBjb2x1bW5fYXV0byBzY3JvbGxhYmxlXCI+XG4gICAgICAgIDx0ZXRhLXRyZWUgW2RhdGFdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgW29wZW5JdGVtc109XCJvcGVuSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgIChvcGVuSXRlbXNDaGFuZ2UpPVwib3Blbkl0ZW1zID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICBbY2hpbGROb2RlTmFtZV09XCInY29sdW1ucydcIlxuICAgICAgICAgICAgICAgICAgIFtjb21wYXJlSXRlbXNdPVwiY29tcGFyZUl0ZW1zXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHRldGFUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVlX19pdGVtXCI+XG4gICAgICAgICAgICAgIDx0ZXRhLXRyZWUtaXRlbS10b2dnbGUgW2l0ZW1dPVwiaXRlbVwiICpuZ0lmPVwiaXRlbS5jb2x1bW5zPy5sZW5ndGggPiAwXCI+PC90ZXRhLXRyZWUtaXRlbS10b2dnbGU+XG4gICAgICAgICAgICAgIDx0ZXRhLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiIWNvbHVtbklzSGlkZGVuKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRDb2x1bW5WaXNpYmlsaXR5KGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e2l0ZW0uY2FwdGlvbn19XG4gICAgICAgICAgICAgIDwvdGV0YS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGV0YS10cmVlPlxuICAgICAgPC9kaXY+XG4gICAgICA8dGV0YS10b29sYmFyIGNsYXNzPVwianVzdGlmeS1jb250ZW50LWVuZFwiPlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNWaXNpYmxlKCkgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbcGFsZXR0ZV09XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRDb2x1bW5zVmlzaWJpbGl0eSgpXCI+XG4gICAgICAgICAge3tsb2MuYXBwbHl9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGV0YS10b29sYmFyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvdGV0YS10YWI+XG48L3RldGEtdGFicz5cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsLWRyb3Bkb3duL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC1kcm9wZG93bi9oZWFkLWNlbGwtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFldkIsTUFBTSxPQUFPLHlCQUF5QjtJQVVwQyxZQUFvQixJQUFxQixFQUNyQixPQUEwQixFQUMxQixJQUF1QjtRQUZ2QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUxqQyx1QkFBa0IsR0FDMUIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU85QixrQkFBYSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDO0lBTkYsQ0FBQztJQVFELFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVztJQUNYLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7c0hBN0JVLHlCQUF5QjswR0FBekIseUJBQXlCLGtRQ3hCdEMsd3ZFQXdEQTsyRkRoQ2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTttS0FHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7SVRyZWVEYXRhfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS10cmVlLWRhdGEnO1xuaW1wb3J0IHtUYWJsZVJvd30gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtcm93JztcbmltcG9ydCB7VGV0YUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7SGVhZERyb3Bkb3duVGFifSBmcm9tICcuLi9jb250cmFjdC9oZWFkLWRyb3Bkb3duLXRhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxEcm9wZG93bkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29sdW1uczogSVRyZWVEYXRhW107XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHN0YXRlOiBGaWx0ZXJTdGF0ZTtcbiAgQElucHV0KCkgZGF0YTogVGFibGVSb3c8VD5bXTtcbiAgQElucHV0KCkgdGFiVGVtcGxhdGVzOiBIZWFkRHJvcGRvd25UYWJbXTtcbiAgQElucHV0KCkgZHJvcERvd25PcGVuOiBib29sZWFuO1xuICBAT3V0cHV0KCkgZHJvcERvd25PcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY29uZmlnOiBUZXRhQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgY2xvc2VEcm9wZG93biA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZygnY2xvc2VEcm9wZG93bicpO1xuICAgIHRoaXMuZHJvcERvd25PcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kcm9wRG93bk9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG4gIHRyYWNrSW5kZXgoaW5kZXgpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cbiIsIjx0ZXRhLXRhYnMgY2xhc3M9XCJjb2x1bW5fYXV0b1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiVGVtcGxhdGVzOyB0cmFja0J5OiB0cmFja0luZGV4XCI+XG4gICAgPHRldGEtdGFiICpuZ0lmPVwidGFiLnNob3dUYWIoY29sdW1uKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIHRldGFUYWJUaXRsZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5pY29uXCI+XG4gICAgICAgICAgPHRldGEtaWNvbiBbbmFtZV09XCJ0YWIuaWNvblwiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgdGV0YVRhYkNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYi50ZW1wbGF0ZTsgY29udGV4dDoge1xuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIGNsb3NlOiBjbG9zZURyb3Bkb3duXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3RldGEtdGFiPlxuICA8L25nLWNvbnRhaW5lcj5cbjwhLS0gIDx0ZXRhLXRhYj4tLT5cblxuPCEtLSAgPC90ZXRhLXRhYj4tLT5cbjwhLS0gIDx0ZXRhLXRhYiAqbmdJZj1cImNvbHVtbi5maWx0ZXJhYmxlXCI+LS0+XG48IS0tICAgIDxuZy10ZW1wbGF0ZSB0ZXRhVGFiVGl0bGU+LS0+XG48IS0tICAgICAgPHRldGEtaWNvbiBbbmFtZV09XCInZmlsdGVyJ1wiPjwvdGV0YS1pY29uPi0tPlxuPCEtLSAgICA8L25nLXRlbXBsYXRlPi0tPlxuPCEtLSAgICA8bmctdGVtcGxhdGUgdGV0YVRhYkNvbnRlbnQ+LS0+XG48IS0tICAgICAgPHRldGEtZmlsdGVyLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlRHJvcGRvd25cIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiPjwvdGV0YS1maWx0ZXItZHJvcGRvd24tdGFiPi0tPlxuPCEtLSAgICA8L25nLXRlbXBsYXRlPi0tPlxuPCEtLSAgPC90ZXRhLXRhYj4tLT5cbjwhLS0gIDx0ZXRhLXRhYiAqbmdJZj1cImNvbHVtbi5oZWFkRHJvcGRvd25UZW1wbGF0ZVwiPi0tPlxuPCEtLSAgICA8bmctdGVtcGxhdGUgdGV0YVRhYlRpdGxlPi0tPlxuPCEtLSAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ21lYXN1cmVtZW50J1wiPjwvdGV0YS1pY29uPi0tPlxuPCEtLSAgICA8L25nLXRlbXBsYXRlPi0tPlxuPCEtLSAgICA8bmctdGVtcGxhdGUgdGV0YVRhYkNvbnRlbnQ+LS0+XG48IS0tICAgICAgPG5nLWNvbnRhaW5lci0tPlxuPCEtLSAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZERyb3Bkb3duVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbiwgY29sdW1uOiBjb2x1bW59XCI+PC9uZy1jb250YWluZXI+LS0+XG48IS0tICAgIDwvbmctdGVtcGxhdGU+LS0+XG48IS0tICA8L3RldGEtdGFiPi0tPlxuPCEtLSAgPHRldGEtdGFiPi0tPlxuPCEtLSAgICA8bmctdGVtcGxhdGUgdGV0YVRhYlRpdGxlPi0tPlxuPCEtLSAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2V5ZSdcIj48L3RldGEtaWNvbj4tLT5cbjwhLS0gICAgPC9uZy10ZW1wbGF0ZT4tLT5cbjwhLS0gICAgPG5nLXRlbXBsYXRlIHRldGFUYWJDb250ZW50Pi0tPlxuPCEtLSAgICAgIDx0ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiIFtjb2x1bW5dPVwiY29sdW1uXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbG9zZV09XCJjbG9zZURyb3Bkb3duXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiPi0tPlxuPCEtLSAgICA8L25nLXRlbXBsYXRlPi0tPlxuPCEtLSAgPC90ZXRhLXRhYj4tLT5cbjwvdGV0YS10YWJzPlxuIl19
@@ -35,9 +35,9 @@ export class HeadCellHostComponent {
35
35
  this.init = true;
36
36
  }
37
37
  }
38
- HeadCellHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellHostComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
39
- HeadCellHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: { column: "column", data: "data" }, ngImport: i0, template: '', isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellHostComponent, decorators: [{
38
+ HeadCellHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeadCellHostComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
39
+ HeadCellHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: { column: "column", data: "data" }, ngImport: i0, template: '', isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HeadCellHostComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'teta-head-cell-host', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}\n"] }]
43
43
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
@@ -32,15 +32,15 @@ export class SelectionCellComponent {
32
32
  this._alive = false;
33
33
  }
34
34
  }
35
- SelectionCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SelectionCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
- SelectionCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: { row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i2.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SelectionCellComponent, decorators: [{
35
+ SelectionCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SelectionCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ SelectionCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: { row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i2.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SelectionCellComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
39
+ args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
40
40
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { row: [{
41
41
  type: Input
42
42
  }], tableCellClass: [{
43
43
  type: HostBinding,
44
44
  args: ['class.cell']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9zZWxlY3Rpb24tY2VsbC9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3NlbGVjdGlvbi1jZWxsL3NlbGVjdGlvbi1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVEzQyxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLElBQXFCLEVBQVUsSUFBdUI7UUFBdEQsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUw5QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUNsRSxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFFekIsV0FBTSxHQUFHLElBQUksQ0FBQztJQUV1RCxDQUFDO0lBRTlFLFNBQVMsQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzttSEE3QlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isa0pDbkJuQyw0TUFJQTsyRkRlYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07bUlBR3RDLEdBQUc7c0JBQVgsS0FBSztnQkFFc0MsY0FBYztzQkFBekQsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtcm93JztcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1zZWxlY3Rpb24tY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdGlvbi1jZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25DZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByb3c6IFRhYmxlUm93PFQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2VsbCcpIHByaXZhdGUgcmVhZG9ubHkgdGFibGVDZWxsQ2xhc3MgPSB0cnVlO1xuICBzZWxlY3RlZFJvd3M6IFRhYmxlUm93PFQ+W10gPSBbXTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgc2VsZWN0Um93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zdmMuc2VsZWN0Um93KHRoaXMucm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3ZjLmRlc2VsZWN0Um93KHRoaXMucm93KTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMuc2VsZWN0ZWRSb3dzXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBfO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjx0ZXRhLWNoZWNrYm94IFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbbm9MYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkUm93cz8uaW5kZXhPZihyb3cpID49IDBcIlxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Um93KCRldmVudClcIj48L3RldGEtY2hlY2tib3g+XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9zZWxlY3Rpb24tY2VsbC9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL3NlbGVjdGlvbi1jZWxsL3NlbGVjdGlvbi1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVEzQyxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLElBQXFCLEVBQVUsSUFBdUI7UUFBdEQsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUw5QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUNsRSxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFFekIsV0FBTSxHQUFHLElBQUksQ0FBQztJQUV1RCxDQUFDO0lBRTlFLFNBQVMsQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzttSEE3QlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isa0pDbkJuQyxpUUFLQTsyRkRjYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07bUlBR3RDLEdBQUc7c0JBQVgsS0FBSztnQkFFc0MsY0FBYztzQkFBekQsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi4vY29udHJhY3QvdGFibGUtcm93JztcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1zZWxlY3Rpb24tY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdGlvbi1jZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25DZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByb3c6IFRhYmxlUm93PFQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2VsbCcpIHByaXZhdGUgcmVhZG9ubHkgdGFibGVDZWxsQ2xhc3MgPSB0cnVlO1xuICBzZWxlY3RlZFJvd3M6IFRhYmxlUm93PFQ+W10gPSBbXTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgc2VsZWN0Um93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zdmMuc2VsZWN0Um93KHRoaXMucm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3ZjLmRlc2VsZWN0Um93KHRoaXMucm93KTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdmMuc2VsZWN0ZWRSb3dzXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBfO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjx0ZXRhLWNoZWNrYm94IFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbbm9MYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkUm93cz8uaW5kZXhPZihyb3cpID49IDBcIlxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Um93KCRldmVudClcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPjwvdGV0YS1jaGVja2JveD5cbiJdfQ==
@@ -33,9 +33,9 @@ export class SelectionHeadCellComponent {
33
33
  this._alive = false;
34
34
  }
35
35
  }
36
- SelectionHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SelectionHeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
37
- SelectionHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell", host: { properties: { "class.table-head__group": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i2.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SelectionHeadCellComponent, decorators: [{
36
+ SelectionHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SelectionHeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
37
+ SelectionHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell", host: { properties: { "class.table-head__group": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], components: [{ type: i2.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SelectionHeadCellComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'teta-selection-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
41
41
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tableCellClass: [{