@tetacom/ng-components 1.1.10 → 1.1.11

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 (253) hide show
  1. package/.eslintrc.json +37 -0
  2. package/common/service/dynamic-component.service.d.ts +4 -4
  3. package/common/service/overlay-container.service.d.ts +2 -2
  4. package/common/util/array-util.d.ts +2 -2
  5. package/common/util/dom-util.d.ts +1 -1
  6. package/component/accordion/accordion/accordion.component.d.ts +1 -4
  7. package/component/accordion/accordion-item/accordion-item.component.d.ts +5 -6
  8. package/component/date-picker/base-calendar.d.ts +7 -7
  9. package/component/date-picker/base-picker.d.ts +3 -3
  10. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +3 -3
  11. package/component/date-picker/date-range/date-range.component.d.ts +5 -5
  12. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +3 -3
  13. package/component/dropdown/dropdown-base.d.ts +2 -2
  14. package/component/file-upload/file-upload-area/file-upload-area.component.d.ts +8 -10
  15. package/component/filter/contarct/filter-item.d.ts +17 -16
  16. package/component/input/input/input.component.d.ts +5 -8
  17. package/component/property-grid/property-grid/property-grid.component.d.ts +3 -3
  18. package/component/select/select/select.component.d.ts +8 -9
  19. package/component/table/base/cell-component-base.d.ts +23 -13
  20. package/component/table/cell/cell.component.d.ts +5 -11
  21. package/component/table/cell-host/cell-host.component.d.ts +6 -6
  22. package/component/table/contract/i-cell-instance.d.ts +2 -1
  23. package/component/table/contract/public-api.d.ts +1 -0
  24. package/component/table/contract/table-column.d.ts +48 -39
  25. package/component/table/contract/table-row.d.ts +8 -0
  26. package/component/table/default/boolean-cell/boolean-cell.component.d.ts +1 -2
  27. package/component/table/default/date-cell/date-cell.component.d.ts +2 -3
  28. package/component/table/default/date-time-cell/date-time-cell.component.d.ts +2 -3
  29. package/component/table/default/list-cell/list-cell.component.d.ts +5 -7
  30. package/component/table/default/numeric-cell/numeric-cell.component.d.ts +1 -3
  31. package/component/table/default/string-cell/string-cell.component.d.ts +2 -3
  32. package/component/table/service/table.service.d.ts +32 -31
  33. package/component/table/table/table.component.d.ts +11 -10
  34. package/component/table/table-body/table-body.component.d.ts +13 -11
  35. package/component/table/table-head/table-head.component.d.ts +2 -2
  36. package/component/table/table.module.d.ts +1 -1
  37. package/directive/context-menu/context-menu.directive.d.ts +4 -5
  38. package/directive/drag-drop/drag.directive.d.ts +4 -4
  39. package/directive/drag-sort/drag-sort-container.directive.d.ts +2 -3
  40. package/directive/dynamic-content-base.directive.d.ts +8 -9
  41. package/directive/hint/hint.directive.d.ts +5 -5
  42. package/directive/tooltip/tooltip.directive.d.ts +3 -3
  43. package/esm2022/common/service/click.service.mjs +3 -3
  44. package/esm2022/common/service/dynamic-component.service.mjs +6 -6
  45. package/esm2022/common/service/overlay-container.service.mjs +6 -6
  46. package/esm2022/common/util/array-util.mjs +6 -5
  47. package/esm2022/common/util/dom-util.mjs +4 -3
  48. package/esm2022/common/util/position-util.mjs +10 -5
  49. package/esm2022/component/accordion/accordion/accordion.component.mjs +6 -10
  50. package/esm2022/component/accordion/accordion-content.directive.mjs +3 -3
  51. package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +3 -3
  52. package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +7 -9
  53. package/esm2022/component/accordion/accordion.module.mjs +4 -4
  54. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +3 -3
  55. package/esm2022/component/autocomplete/autocomplete.module.mjs +4 -4
  56. package/esm2022/component/avatar/avatar/avatar.component.mjs +3 -3
  57. package/esm2022/component/avatar/avatar.module.mjs +4 -4
  58. package/esm2022/component/button/button/button.component.mjs +3 -3
  59. package/esm2022/component/button/button.module.mjs +4 -4
  60. package/esm2022/component/chart-3d/chart-3d.module.mjs +4 -4
  61. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +3 -3
  62. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +5 -5
  63. package/esm2022/component/checkbox/checkbox.module.mjs +4 -4
  64. package/esm2022/component/date-picker/base-calendar.mjs +55 -21
  65. package/esm2022/component/date-picker/base-picker.mjs +4 -4
  66. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +11 -9
  67. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +3 -3
  68. package/esm2022/component/date-picker/date-picker.module.mjs +4 -4
  69. package/esm2022/component/date-picker/date-range/date-range.component.mjs +11 -11
  70. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +14 -12
  71. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +3 -3
  72. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +3 -3
  73. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +3 -3
  74. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
  75. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +3 -3
  76. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +3 -3
  77. package/esm2022/component/delimiter/delimiter.module.mjs +4 -4
  78. package/esm2022/component/divider/divider/divider.component.mjs +3 -3
  79. package/esm2022/component/divider/divider.module.mjs +4 -4
  80. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +3 -3
  81. package/esm2022/component/dropdown/dropdown-base.mjs +20 -16
  82. package/esm2022/component/dropdown/dropdown-content.directive.mjs +3 -3
  83. package/esm2022/component/dropdown/dropdown-head.directive.mjs +3 -3
  84. package/esm2022/component/dropdown/dropdown.directive.mjs +3 -3
  85. package/esm2022/component/dropdown/dropdown.module.mjs +4 -4
  86. package/esm2022/component/dynamic-component/dynamic-component.module.mjs +4 -4
  87. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +3 -3
  88. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +3 -3
  89. package/esm2022/component/expand-card/expand-card.module.mjs +4 -4
  90. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +3 -3
  91. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  92. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +3 -3
  93. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +3 -3
  94. package/esm2022/component/expand-panel/expand-panel.module.mjs +4 -4
  95. package/esm2022/component/file-upload/file-item/file-item.component.mjs +3 -3
  96. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +12 -12
  97. package/esm2022/component/file-upload/file-upload.module.mjs +4 -4
  98. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +3 -3
  99. package/esm2022/component/filter/contarct/filter-item.mjs +1 -1
  100. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -3
  101. package/esm2022/component/filter/filter-host/filter-host.component.mjs +3 -3
  102. package/esm2022/component/filter/filter.module.mjs +4 -4
  103. package/esm2022/component/filter/list-filter/list-filter.component.mjs +3 -3
  104. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -3
  105. package/esm2022/component/filter/string-filter/string-filter.component.mjs +3 -3
  106. package/esm2022/component/icon/icon/icon.component.mjs +3 -3
  107. package/esm2022/component/icon/icon-file/icon-file.component.mjs +3 -3
  108. package/esm2022/component/icon/icon-file/icon-file.module.mjs +4 -4
  109. package/esm2022/component/icon/icon-sprite.directive.mjs +3 -3
  110. package/esm2022/component/icon/icon.module.mjs +4 -4
  111. package/esm2022/component/icon/icon.service.mjs +3 -3
  112. package/esm2022/component/input/color-input/color-input.component.mjs +7 -9
  113. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +3 -3
  114. package/esm2022/component/input/input/input.component.mjs +7 -9
  115. package/esm2022/component/input/input.module.mjs +4 -4
  116. package/esm2022/component/input/text-field/text-field.component.mjs +3 -3
  117. package/esm2022/component/message/message/message.component.mjs +3 -3
  118. package/esm2022/component/message/message-host/message-host.component.mjs +3 -3
  119. package/esm2022/component/message/message.module.mjs +4 -4
  120. package/esm2022/component/message/message.service.mjs +3 -3
  121. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -3
  122. package/esm2022/component/modal/dialog.service.mjs +3 -3
  123. package/esm2022/component/modal/modal-container/modal-container.component.mjs +3 -3
  124. package/esm2022/component/modal/modal.module.mjs +4 -4
  125. package/esm2022/component/modal/modal.service.mjs +3 -3
  126. package/esm2022/component/pager/pager/pager.component.mjs +3 -3
  127. package/esm2022/component/pager/pager.module.mjs +4 -4
  128. package/esm2022/component/panel/panel/panel.component.mjs +3 -3
  129. package/esm2022/component/panel/panel.module.mjs +4 -4
  130. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +3 -3
  131. package/esm2022/component/progress-bar/progress-bar.module.mjs +4 -4
  132. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +3 -3
  133. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +3 -3
  134. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +3 -3
  135. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +12 -15
  136. package/esm2022/component/property-grid/property-grid.module.mjs +4 -4
  137. package/esm2022/component/radio/radio/radio.component.mjs +3 -3
  138. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  139. package/esm2022/component/radio/radio.module.mjs +4 -4
  140. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +3 -3
  141. package/esm2022/component/resize-panel/resize-panel.module.mjs +4 -4
  142. package/esm2022/component/select/select/select.component.mjs +18 -20
  143. package/esm2022/component/select/select-option.directive.mjs +3 -3
  144. package/esm2022/component/select/select-value.directive.mjs +3 -3
  145. package/esm2022/component/select/select.module.mjs +4 -4
  146. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +3 -3
  147. package/esm2022/component/sidebar/sidebar.module.mjs +4 -4
  148. package/esm2022/component/switch/switch/switch.component.mjs +3 -3
  149. package/esm2022/component/switch/switch-button/switch-button.component.mjs +3 -3
  150. package/esm2022/component/switch/switch.module.mjs +4 -4
  151. package/esm2022/component/switch/switch.service.mjs +3 -3
  152. package/esm2022/component/table/base/cell-component-base.mjs +97 -40
  153. package/esm2022/component/table/base/head-cell-component-base.mjs +3 -3
  154. package/esm2022/component/table/cell/cell.component.mjs +6 -16
  155. package/esm2022/component/table/cell-host/cell-host.component.mjs +11 -11
  156. package/esm2022/component/table/contract/i-cell-coordinates.mjs +1 -1
  157. package/esm2022/component/table/contract/i-cell-event.mjs +1 -1
  158. package/esm2022/component/table/contract/i-cell-instance.mjs +1 -1
  159. package/esm2022/component/table/contract/i-cell-value.mjs +1 -1
  160. package/esm2022/component/table/contract/public-api.mjs +2 -1
  161. package/esm2022/component/table/contract/table-column.mjs +8 -5
  162. package/esm2022/component/table/contract/table-row.mjs +9 -0
  163. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +8 -8
  164. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +10 -10
  165. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +5 -9
  166. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +3 -3
  167. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +9 -16
  168. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +6 -18
  169. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +6 -17
  170. package/esm2022/component/table/head-cell/head-cell.component.mjs +3 -3
  171. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +3 -3
  172. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -3
  173. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +3 -3
  174. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +3 -3
  175. package/esm2022/component/table/service/table.service.mjs +106 -77
  176. package/esm2022/component/table/table/table.component.mjs +48 -44
  177. package/esm2022/component/table/table-body/table-body.component.mjs +36 -44
  178. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +3 -3
  179. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +3 -3
  180. package/esm2022/component/table/table-head/table-head.component.mjs +13 -14
  181. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +3 -3
  182. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +3 -3
  183. package/esm2022/component/table/table.module.mjs +11 -8
  184. package/esm2022/component/tabs/tab/tab.component.mjs +3 -3
  185. package/esm2022/component/tabs/tab-content.directive.mjs +3 -3
  186. package/esm2022/component/tabs/tab-title.directive.mjs +3 -3
  187. package/esm2022/component/tabs/tabs/tabs.component.mjs +3 -3
  188. package/esm2022/component/tabs/tabs.module.mjs +4 -4
  189. package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  190. package/esm2022/component/theme-switch/theme-switch.module.mjs +4 -4
  191. package/esm2022/component/theme-switch/theme-switch.service.mjs +3 -3
  192. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  193. package/esm2022/component/toggle/toggle.module.mjs +4 -4
  194. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +3 -3
  195. package/esm2022/component/toolbar/toolbar.module.mjs +4 -4
  196. package/esm2022/component/tree/tree/tree.component.mjs +3 -3
  197. package/esm2022/component/tree/tree-item/tree-item.component.mjs +3 -3
  198. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +3 -3
  199. package/esm2022/component/tree/tree.module.mjs +4 -4
  200. package/esm2022/component/tree/tree.service.mjs +3 -3
  201. package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
  202. package/esm2022/directive/auto-position/auto-position.module.mjs +4 -4
  203. package/esm2022/directive/click-outside/click-outside.directive.mjs +3 -3
  204. package/esm2022/directive/click-outside/click-outside.module.mjs +4 -4
  205. package/esm2022/directive/context-menu/context-menu.directive.mjs +10 -10
  206. package/esm2022/directive/context-menu/context-menu.module.mjs +4 -4
  207. package/esm2022/directive/disable-control/disable-control.directive.mjs +3 -3
  208. package/esm2022/directive/disable-control/disable-control.module.mjs +4 -4
  209. package/esm2022/directive/drag-drop/drag-container.directive.mjs +3 -3
  210. package/esm2022/directive/drag-drop/drag-drop.module.mjs +4 -4
  211. package/esm2022/directive/drag-drop/drag-drop.service.mjs +3 -3
  212. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +3 -3
  213. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +3 -3
  214. package/esm2022/directive/drag-drop/drag.directive.mjs +20 -16
  215. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +6 -10
  216. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -4
  217. package/esm2022/directive/drag-sort/drag-sort.module.mjs +4 -4
  218. package/esm2022/directive/dynamic-content-base.directive.mjs +8 -10
  219. package/esm2022/directive/highlight/highlight.directive.mjs +3 -3
  220. package/esm2022/directive/highlight/highlight.module.mjs +4 -4
  221. package/esm2022/directive/hint/hint.directive.mjs +13 -10
  222. package/esm2022/directive/hint/hint.module.mjs +4 -4
  223. package/esm2022/directive/let/let.directive.mjs +3 -3
  224. package/esm2022/directive/let/let.module.mjs +4 -4
  225. package/esm2022/directive/loader/loader.directive.mjs +8 -10
  226. package/esm2022/directive/loader/loader.module.mjs +4 -4
  227. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +3 -3
  228. package/esm2022/directive/no-autofill/no-autofill.module.mjs +4 -4
  229. package/esm2022/directive/only-number/only-number.directive.mjs +4 -8
  230. package/esm2022/directive/only-number/only-number.module.mjs +4 -4
  231. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +3 -3
  232. package/esm2022/directive/resize-drag/resize-drag.module.mjs +4 -4
  233. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
  234. package/esm2022/directive/scroll-into-view/scroll-into-view.module.mjs +4 -4
  235. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +3 -3
  236. package/esm2022/directive/scrollable/scrollable.directive.mjs +3 -3
  237. package/esm2022/directive/scrollable/scrollable.module.mjs +4 -4
  238. package/esm2022/directive/teta-template/teta-template.directive.mjs +3 -3
  239. package/esm2022/directive/teta-template/teta-template.module.mjs +4 -4
  240. package/esm2022/directive/tooltip/tooltip.directive.mjs +12 -13
  241. package/esm2022/directive/tooltip/tooltip.module.mjs +4 -4
  242. package/esm2022/locale/teta-config.service.mjs +3 -3
  243. package/esm2022/pipe/date-pipe/teta-date-pipe.module.mjs +4 -4
  244. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +3 -3
  245. package/esm2022/pipe/number-pipe/number-pipe.module.mjs +4 -4
  246. package/esm2022/pipe/number-pipe/number.pipe.mjs +3 -3
  247. package/esm2022/util/forms-util.mjs +11 -5
  248. package/fesm2022/tetacom-ng-components.mjs +1496 -1415
  249. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  250. package/package.json +6 -6
  251. package/style/dropdown.scss +3 -3
  252. package/style/table.scss +4 -0
  253. package/util/forms-util.d.ts +1 -1
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { ScrollIntoViewDirective } from './scroll-into-view.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ScrollIntoViewModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollIntoViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: ScrollIntoViewModule, declarations: [ScrollIntoViewDirective], imports: [CommonModule], exports: [ScrollIntoViewDirective] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollIntoViewModule, imports: [CommonModule] });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollIntoViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: ScrollIntoViewModule, declarations: [ScrollIntoViewDirective], imports: [CommonModule], exports: [ScrollIntoViewDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollIntoViewModule, imports: [CommonModule] });
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollIntoViewModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollIntoViewModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -64,10 +64,10 @@ export class ScrollableComponent {
64
64
  ngOnDestroy() {
65
65
  this._alive = false;
66
66
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i0.NgZone }, { token: ANIMATION_FRAME }], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as size\">\n <div #scrollbarVertical\n [class.display-none]=\"size?.scrollHeight <= size?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"size?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"size?.scrollWidth <= size?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"size?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i0.NgZone }, { token: ANIMATION_FRAME }], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ScrollableComponent, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as size\">\n <div #scrollbarVertical\n [class.display-none]=\"size?.scrollHeight <= size?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"size?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"size?.scrollWidth <= size?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"size?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as size\">\n <div #scrollbarVertical\n [class.display-none]=\"size?.scrollHeight <= size?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"size?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"size?.scrollWidth <= size?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"size?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- &lt;!&ndash; <div class=\"scroll-content\">&ndash;&gt;-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
73
73
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i0.NgZone }, { type: i3.Observable, decorators: [{
@@ -2,10 +2,10 @@ import { Directive, HostBinding } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class ScrollableDirective {
4
4
  hideScrollClass = true;
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: ScrollableDirective, selector: "[tetaScrollable]", host: { properties: { "class.scrollable_hide_scroll": "this.hideScrollClass" } }, ngImport: i0 });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ScrollableDirective, selector: "[tetaScrollable]", host: { properties: { "class.scrollable_hide_scroll": "this.hideScrollClass" } }, ngImport: i0 });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableDirective, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[tetaScrollable]',
@@ -5,15 +5,15 @@ import { ScrollableComponent } from './scrollable/scrollable.component';
5
5
  import { LetModule } from "../let/let.module";
6
6
  import * as i0 from "@angular/core";
7
7
  export class ScrollableModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: ScrollableModule, declarations: [ScrollableDirective,
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: ScrollableModule, declarations: [ScrollableDirective,
10
10
  ScrollableComponent], imports: [CommonModule,
11
11
  LetModule], exports: [ScrollableDirective,
12
12
  ScrollableComponent] });
13
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableModule, imports: [CommonModule,
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableModule, imports: [CommonModule,
14
14
  LetModule] });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ScrollableModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ScrollableModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  declarations: [
@@ -9,10 +9,10 @@ export class TetaTemplateDirective {
9
9
  getId() {
10
10
  return this.id;
11
11
  }
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
13
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: { id: ["tetaTemplate", "id"] }, ngImport: i0 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: { id: ["tetaTemplate", "id"] }, ngImport: i0 });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[tetaTemplate]'
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { TetaTemplateDirective } from './teta-template.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TetaTemplateModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateModule, declarations: [TetaTemplateDirective], imports: [CommonModule], exports: [TetaTemplateDirective] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateModule, imports: [CommonModule] });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateModule, declarations: [TetaTemplateDirective], imports: [CommonModule], exports: [TetaTemplateDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateModule, imports: [CommonModule] });
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaTemplateModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaTemplateModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -1,12 +1,12 @@
1
- import { Directive, HostListener, Inject, Input, } from '@angular/core';
2
- import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
3
1
  import { DOCUMENT } from '@angular/common';
4
- import { DomUtil } from '../../common/util/dom-util';
5
- import { PositionUtil } from '../../common/util/position-util';
6
- import { Align } from '../../common/enum/align.enum';
7
- import { VerticalAlign } from '../../common/enum/vertical-align.enum';
2
+ import { Directive, HostListener, Inject, Input, } from '@angular/core';
8
3
  import { merge } from 'rxjs';
9
4
  import { filter, takeWhile, tap } from 'rxjs/operators';
5
+ import { Align } from '../../common/enum/align.enum';
6
+ import { VerticalAlign } from '../../common/enum/vertical-align.enum';
7
+ import { DomUtil } from '../../common/util/dom-util';
8
+ import { PositionUtil } from '../../common/util/position-util';
9
+ import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../common/service/dynamic-component.service";
12
12
  import * as i2 from "../../common/service/click.service";
@@ -21,7 +21,7 @@ export class TooltipDirective extends DynamicContentBaseDirective {
21
21
  /**
22
22
  * Строка, шаблон или компонент для создания контекстного меню
23
23
  */
24
- tetaTooltip;
24
+ tetaTooltip = null;
25
25
  align = Align.center;
26
26
  verticalAlign = VerticalAlign.top;
27
27
  _componentRect;
@@ -43,9 +43,8 @@ export class TooltipDirective extends DynamicContentBaseDirective {
43
43
  this.createTooltip();
44
44
  }
45
45
  ngOnInit() {
46
- super.ngOnInit();
47
46
  merge(this._click.click, this._click.contextMenu)
48
- .pipe(takeWhile(() => this._alive), filter(() => this._open), filter(() => this._componentRef != null), filter((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter((event) => !DomUtil.clickedInside(this._componentRef.location.nativeElement, event)), tap((_) => this.destroyContentRef()))
47
+ .pipe(takeWhile(() => this._alive), filter(() => this._open), filter(() => this._componentRef != null), filter((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter((event) => !DomUtil.clickedInside(this._componentRef?.location.nativeElement, event)), tap(_ => this.destroyContentRef()))
49
48
  .subscribe();
50
49
  }
51
50
  setPosition() {
@@ -64,10 +63,10 @@ export class TooltipDirective extends DynamicContentBaseDirective {
64
63
  createTooltip() {
65
64
  this._componentRef = this.createContentRef('tooltip');
66
65
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i1.DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i2.ClickService }], target: i0.ɵɵFactoryTarget.Directive });
68
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: TooltipDirective, selector: "[tetaTooltip]", inputs: { tetaTooltip: "tetaTooltip", align: "align", verticalAlign: "verticalAlign" }, host: { listeners: { "click": "showContent($event)" } }, usesInheritance: true, ngImport: i0 });
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i1.DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i2.ClickService }], target: i0.ɵɵFactoryTarget.Directive });
67
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TooltipDirective, selector: "[tetaTooltip]", inputs: { tetaTooltip: "tetaTooltip", align: "align", verticalAlign: "verticalAlign" }, host: { listeners: { "click": "showContent($event)" } }, usesInheritance: true, ngImport: i0 });
69
68
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipDirective, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
71
70
  type: Directive,
72
71
  args: [{
73
72
  selector: '[tetaTooltip]',
@@ -85,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
85
84
  type: HostListener,
86
85
  args: ['click', ['$event']]
87
86
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssR0FNTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNeEQsTUFBTSxPQUFPLGdCQUNYLFNBQVEsMkJBQTJCO0lBaUJkO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNYO0lBcEJWOztPQUVHO0lBQ00sV0FBVyxDQUF3QztJQUMxQyxLQUFLLEdBQVUsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixhQUFhLEdBQWtCLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFDM0QsY0FBYyxDQUFNO0lBRTVCLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBRXFCLFNBQWMsRUFDZCxXQUF1QixFQUN2QixRQUFpQyxFQUNqQyxTQUFtQixFQUNuQixLQUFhLEVBQ2Is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QlAsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7MEJBa0JJLE1BQU07MkJBQUMsUUFBUTtrTkFWVCxXQUFXO3NCQUFuQixLQUFLO2dCQUNZLEtBQUs7c0JBQXRCLEtBQUs7Z0JBQ1ksYUFBYTtzQkFBOUIsS0FBSztnQkFxQk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNDb250ZW50QmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2R5bmFtaWMtY29udGVudC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tVXRpbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2RvbS11dGlsJztcbmltcG9ydCB7IFBvc2l0aW9uVXRpbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3Bvc2l0aW9uLXV0aWwnO1xuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IFZlcnRpY2FsQWxpZ24gfSBmcm9tICcuLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VXaGlsZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2UvY2xpY2suc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhVG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlXG4gIGV4dGVuZHMgRHluYW1pY0NvbnRlbnRCYXNlRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXRcbntcbiAgLyoqXG4gICAqINCh0YLRgNC+0LrQsCwg0YjQsNCx0LvQvtC9INC40LvQuCDQutC+0LzQv9C+0L3QtdC90YIg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LrQvtC90YLQtdC60YHRgtC90L7Qs9C+INC80LXQvdGOXG4gICAqL1xuICBASW5wdXQoKSB0ZXRhVG9vbHRpcDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcbiAgQElucHV0KCkgb3ZlcnJpZGUgYWxpZ246IEFsaWduID0gQWxpZ24uY2VudGVyO1xuICBASW5wdXQoKSBvdmVycmlkZSB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi50b3A7XG4gIHByaXZhdGUgX2NvbXBvbmVudFJlY3Q6IGFueTtcblxuICBnZXQgX2R5bmFtaWNDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRldGFUb29sdGlwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVClcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2RvY3VtZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfc2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF96b25lOiBOZ1pvbmUsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2NsaWNrOiBDbGlja1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoX2RvY3VtZW50LCBfZWxlbWVudFJlZiwgX3NlcnZpY2UsIF9pbmplY3RvciwgX3pvbmUsIF9jZHIpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBzaG93Q29udGVudChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIG1lcmdlKHRoaXMuX2NsaWNrLmNsaWNrLCB0aGlzLl9jbGljay5jb250ZXh0TWVudSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fb3BlbiksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9jb21wb25lbnRSZWYgIT0gbnVsbCksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+XG4gICAgICAgICAgICAhRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnQpXG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+XG4gICAgICAgICAgICAhRG9tVXRpbC5jbGlja2VkSW5zaWRlKFxuICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKChfKSA9PiB0aGlzLmRlc3Ryb3lDb250ZW50UmVmKCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZiAmJiB0aGlzLl9vcGVuKSB7XG4gICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVjdCA9XG4gICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB9XG4gICAgICBjb25zdCBjb250YWluZXJQb3NpdGlvbiA9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gUG9zaXRpb25VdGlsLmdldFBvc2l0aW9uKFxuICAgICAgICBjb250YWluZXJQb3NpdGlvbixcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVjdCxcbiAgICAgICAgdGhpcy5hbGlnbixcbiAgICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduLFxuICAgICAgICAwLFxuICAgICAgICAxMlxuICAgICAgKTtcbiAgICAgIFBvc2l0aW9uVXRpbC5zZXRFbGVtZW50UG9zaXRpb24oXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBwb3NpdGlvblxuICAgICAgKTtcbiAgICAgIGNvbnN0IHZlcnRpY2FsQ2xhc3MgPVxuICAgICAgICBjb250YWluZXJQb3NpdGlvbi50b3AgPCBwb3NpdGlvbi50b3AgPyAndG9vbHRpcF9ib3R0b20nIDogJ3Rvb2x0aXBfdG9wJztcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5hZGRDbGFzcyh2ZXJ0aWNhbENsYXNzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5jcmVhdGVDb250ZW50UmVmKCd0b29sdGlwJyk7XG4gIH1cbn1cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEdBTU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFLaEYsTUFBTSxPQUFPLGdCQUNYLFNBQVEsMkJBQTJCO0lBc0JkO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNYO0lBekJWOztPQUVHO0lBQ00sV0FBVyxHQUtKLElBQUksQ0FBQztJQUNILEtBQUssR0FBVSxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzVCLGFBQWEsR0FBa0IsYUFBYSxDQUFDLEdBQUcsQ0FBQztJQUMzRCxjQUFjLENBQU07SUFFNUIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFFcUIsU0FBYyxFQUNkLFdBQXVCLEVBQ3ZCLFFBQWlDLEVBQ2pDLFNBQW1CLEVBQ25CLEtBQWEsRUFDYixJQUF1QixFQUNsQyxNQUFvQjtRQUU1QixLQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQVI3QyxjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUc5QixDQUFDO0lBR0QsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDOUMsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxFQUN4QyxNQUFNLENBQ0osQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FDcEIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUNoRSxFQUNELE1BQU0sQ0FDSixDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUNwQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFDMUMsS0FBSyxDQUNOLENBQ0osRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUNuQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN4QixJQUFJLENBQUMsY0FBYztvQkFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDckU7WUFDRCxNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3pELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQ3ZDLGlCQUFpQixFQUNqQixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxhQUFhLEVBQ2xCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztZQUNGLFlBQVksQ0FBQyxrQkFBa0IsQ0FDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUN6QyxRQUFRLENBQ1QsQ0FBQztZQUNGLE1BQU0sYUFBYSxHQUNqQixpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUMxRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDO3VHQTFGVSxnQkFBZ0Isa0JBc0JqQixRQUFROzJGQXRCUCxnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOzswQkF1QkksTUFBTTsyQkFBQyxRQUFRO2tOQWZULFdBQVc7c0JBQW5CLEtBQUs7Z0JBTVksS0FBSztzQkFBdEIsS0FBSztnQkFDWSxhQUFhO3NCQUE5QixLQUFLO2dCQXFCTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVdoaWxlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFsaWduIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWduIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBDbGlja1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZS9jbGljay5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2UvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEb21VdGlsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZG9tLXV0aWwnO1xuaW1wb3J0IHsgUG9zaXRpb25VdGlsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvcG9zaXRpb24tdXRpbCc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9keW5hbWljLWNvbnRlbnQtYmFzZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YVRvb2x0aXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZVxuICBleHRlbmRzIER5bmFtaWNDb250ZW50QmFzZURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIC8qKlxuICAgKiDQodGC0YDQvtC60LAsINGI0LDQsdC70L7QvSDQuNC70Lgg0LrQvtC80L/QvtC90LXQvdGCINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC60L7QvdGC0LXQutGB0YLQvdC+0LPQviDQvNC10L3RjlxuICAgKi9cbiAgQElucHV0KCkgdGV0YVRvb2x0aXA/OlxuICAgIHwgc3RyaW5nXG4gICAgfCBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgfCBUeXBlPGFueT5cbiAgICB8IG51bGxcbiAgICB8IHVuZGVmaW5lZCA9IG51bGw7XG4gIEBJbnB1dCgpIG92ZXJyaWRlIGFsaWduOiBBbGlnbiA9IEFsaWduLmNlbnRlcjtcbiAgQElucHV0KCkgb3ZlcnJpZGUgdmVydGljYWxBbGlnbjogVmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24udG9wO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWN0OiBhbnk7XG5cbiAgZ2V0IF9keW5hbWljQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXRhVG9vbHRpcDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9kb2N1bWVudDogYW55LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3NlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfem9uZTogTmdab25lLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9jbGljazogQ2xpY2tTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKF9kb2N1bWVudCwgX2VsZW1lbnRSZWYsIF9zZXJ2aWNlLCBfaW5qZWN0b3IsIF96b25lLCBfY2RyKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgc2hvd0NvbnRlbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgbWVyZ2UodGhpcy5fY2xpY2suY2xpY2ssIHRoaXMuX2NsaWNrLmNvbnRleHRNZW51KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9vcGVuKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2NvbXBvbmVudFJlZiAhPSBudWxsKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogTW91c2VFdmVudCkgPT5cbiAgICAgICAgICAgICFEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBldmVudClcbiAgICAgICAgKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogTW91c2VFdmVudCkgPT5cbiAgICAgICAgICAgICFEb21VdGlsLmNsaWNrZWRJbnNpZGUoXG4gICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKF8gPT4gdGhpcy5kZXN0cm95Q29udGVudFJlZigpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYgJiYgdGhpcy5fb3Blbikge1xuICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWN0KSB7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlY3QgPVxuICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udGFpbmVyUG9zaXRpb24gPVxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IFBvc2l0aW9uVXRpbC5nZXRQb3NpdGlvbihcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24sXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlY3QsXG4gICAgICAgIHRoaXMuYWxpZ24sXG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbixcbiAgICAgICAgMCxcbiAgICAgICAgMTJcbiAgICAgICk7XG4gICAgICBQb3NpdGlvblV0aWwuc2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgcG9zaXRpb25cbiAgICAgICk7XG4gICAgICBjb25zdCB2ZXJ0aWNhbENsYXNzID1cbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24udG9wIDwgcG9zaXRpb24udG9wID8gJ3Rvb2x0aXBfYm90dG9tJyA6ICd0b29sdGlwX3RvcCc7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuYWRkQ2xhc3ModmVydGljYWxDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuY3JlYXRlQ29udGVudFJlZigndG9vbHRpcCcpO1xuICB9XG59XG4iXX0=
@@ -5,11 +5,11 @@ import { DynamicComponentModule } from '../../component/dynamic-component/dynami
5
5
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
6
  import * as i0 from "@angular/core";
7
7
  export class TooltipModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective], imports: [CommonModule, DynamicComponentModule, BrowserAnimationsModule], exports: [TooltipDirective] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, imports: [CommonModule, DynamicComponentModule, BrowserAnimationsModule] });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective], imports: [CommonModule, DynamicComponentModule, BrowserAnimationsModule], exports: [TooltipDirective] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, imports: [CommonModule, DynamicComponentModule, BrowserAnimationsModule] });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TooltipModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [TooltipDirective],
@@ -16,10 +16,10 @@ export class TetaConfigService {
16
16
  this.locale$.next(this.defaultLocale);
17
17
  }
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaConfigService, providedIn: 'root' });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaConfigService, providedIn: 'root' });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaConfigService, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaConfigService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{
25
25
  providedIn: 'root'
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { TetaDatePipe } from './teta-date.pipe';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TetaDatePipeModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipeModule, declarations: [TetaDatePipe], imports: [CommonModule], exports: [TetaDatePipe] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipeModule, imports: [CommonModule] });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipeModule, declarations: [TetaDatePipe], imports: [CommonModule], exports: [TetaDatePipe] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipeModule, imports: [CommonModule] });
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipeModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipeModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [TetaDatePipe],
@@ -23,10 +23,10 @@ export class TetaDatePipe {
23
23
  ? luxonDate.toFormat(format, params)
24
24
  : luxonDate.toLocaleString(format || DateTime.DATETIME_MED_WITH_SECONDS, params);
25
25
  }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipe, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Pipe });
27
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipe, name: "tetaDate" });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipe, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Pipe });
27
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipe, name: "tetaDate" });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: TetaDatePipe, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TetaDatePipe, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  name: 'tetaDate',
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { NumberPipe } from './number.pipe';
4
4
  import * as i0 from "@angular/core";
5
5
  export class NumberPipeModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NumberPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: NumberPipeModule, declarations: [NumberPipe], imports: [CommonModule], exports: [NumberPipe] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NumberPipeModule, imports: [CommonModule] });
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: NumberPipeModule, declarations: [NumberPipe], imports: [CommonModule], exports: [NumberPipe] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberPipeModule, imports: [CommonModule] });
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NumberPipeModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberPipeModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [NumberPipe],
@@ -15,10 +15,10 @@ export class NumberPipe {
15
15
  value = Number(value);
16
16
  return formatNumber(value, decimalLength, chunkDelimiter, decimalDelimiter, chunkLength);
17
17
  }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
19
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: NumberPipe, name: "tetaNumber" });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
19
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: NumberPipe, name: "tetaNumber" });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NumberPipe, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberPipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{
24
24
  name: 'tetaNumber'
@@ -1,11 +1,11 @@
1
+ import { Optional } from '@angular/core';
1
2
  import { ControlContainer, NgForm, NgModelGroup, UntypedFormControl, UntypedFormGroup, Validators, } from '@angular/forms';
2
3
  import { ArrayUtil } from '../common/util/array-util';
3
- import { FilterType } from "../component/filter/enum/filter-type.enum";
4
- import { Optional } from "@angular/core";
4
+ import { FilterType } from '../component/filter/enum/filter-type.enum';
5
5
  export class FormsUtil {
6
6
  static validateAllFormFields(formGroup) {
7
7
  formGroup.updateValueAndValidity();
8
- Object.keys(formGroup.controls).forEach((field) => {
8
+ Object.keys(formGroup.controls).forEach(field => {
9
9
  const control = formGroup.get(field);
10
10
  if (control instanceof UntypedFormControl) {
11
11
  control.markAsTouched({ onlySelf: true });
@@ -56,7 +56,10 @@ export class FormsUtil {
56
56
  disabled: !column.editable,
57
57
  }, {
58
58
  validators: FormsUtil.getValidators(column),
59
- updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change'
59
+ updateOn: column.filterType === FilterType.number ||
60
+ column.filterType === FilterType.string
61
+ ? 'blur'
62
+ : 'change',
60
63
  });
61
64
  }
62
65
  static getValidators(column) {
@@ -71,6 +74,9 @@ export class FormsUtil {
71
74
  if (column.maxValue != null) {
72
75
  validators.push(Validators.max(column.maxValue));
73
76
  }
77
+ if (column.validators?.length > 0) {
78
+ validators.push(...column.validators);
79
+ }
74
80
  return validators;
75
81
  }
76
82
  static validatorNotEmpty(control) {
@@ -91,4 +97,4 @@ export class FormsUtil {
91
97
  return ngModelGroup || ngForm || null;
92
98
  }
93
99
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQ3RDLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFFaEIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsUUFBUSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBRWpELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFO2dCQUN6QyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUN2QztpQkFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQTJCLEVBQUUsV0FBbUI7UUFDdEUs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QyxRQUFRLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBd0I7UUFDL0MsSUFBSSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQTtTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLEdBQWE7UUFDOUIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDakMsSUFBSSxFQUFFO1lBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQztZQUN4QixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDO1NBQy9CO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLFlBQTBCO1FBQzNELE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBOZ01vZGVsR3JvdXAsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0FycmF5VXRpbH0gZnJvbSAnLi4vY29tbW9uL3V0aWwvYXJyYXktdXRpbCc7XG5pbXBvcnQge0ZpbHRlclR5cGV9IGZyb20gXCIuLi9jb21wb25lbnQvZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtPcHRpb25hbCwgUHJvdmlkZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHtvbmx5U2VsZjogdHJ1ZX0pO1xuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHtvbmx5U2VsZjogdHJ1ZX0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5pbnZhbGlkICYmXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29udHJvbEVycm9ycyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgaWYgKEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cCwgY29udHJvbE5hbWUpKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uZXJyb3JzKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgc3RhdGljIG1hdGNoVmFsdWVzVmFsaWRhdG9yKFxuICAgIG1hdGNoVG86IHN0cmluZ1xuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSA9PT0gY29udHJvbC5wYXJlbnQuY29udHJvbHNbbWF0Y2hUb10udmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge2lzTWF0Y2hpbmc6IGZhbHNlfTtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZElmKFxuICAgIHZhbHVlOiBib29sZWFuXG4gICk6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmXG4gICAgICAhIWNvbnRyb2wucGFyZW50LnZhbHVlICYmXG4gICAgICBjb250cm9sLnZhbHVlICE9IG51bGwgJiZcbiAgICAgIHZhbHVlXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtpc01hdGNoaW5nOiBmYWxzZX07XG4gIH1cblxuICBzdGF0aWMgaW5pdEZvcm1Gcm9tQ29sdW1ucyhjb2x1bW5zOiBUYWJsZUNvbHVtbltdLCBkYXRhSXRlbTogYW55KSB7XG4gICAgY29uc3QgZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICBjb25zdCBmbGF0ID0gQXJyYXlVdGlsLmZsYXR0ZW4oY29sdW1ucywgJ2NvbHVtbnMnKTtcbiAgICBmbGF0LmZvckVhY2goKGNvbHVtbjogVGFibGVDb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBGb3Jtc1V0aWwuaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbiwgZGF0YUl0ZW0pO1xuICAgICAgZm9ybS5yZWdpc3RlckNvbnRyb2woY29sdW1uLm5hbWUsIGNvbnRyb2wpO1xuICAgIH0pO1xuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgc3RhdGljIGluaXRDb250cm9sRnJvbUNvbHVtbihjb2x1bW46IFRhYmxlQ29sdW1uLCBkYXRhSXRlbTogYW55KSB7XG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBkYXRhSXRlbSA/IGRhdGFJdGVtW2NvbHVtbi5uYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzYWJsZWQ6ICFjb2x1bW4uZWRpdGFibGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWxpZGF0b3JzOiBGb3Jtc1V0aWwuZ2V0VmFsaWRhdG9ycyhjb2x1bW4pLFxuICAgICAgICB1cGRhdGVPbjogY29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUubnVtYmVyIHx8IGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLnN0cmluZyA/ICdibHVyJyA6ICdjaGFuZ2UnXG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRWYWxpZGF0b3JzKGNvbHVtbjogVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG4gICAgaWYgKGNvbHVtbi5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKEZvcm1zVXRpbC52YWxpZGF0b3JOb3RFbXB0eSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWluVmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGNvbHVtbi5taW5WYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heFZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChjb2x1bW4ubWF4VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdG9yTm90RW1wdHkoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIHtyZXF1aXJlZDogdHJ1ZX1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgZm9ybVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgIHVzZUZhY3Rvcnk6IEZvcm1zVXRpbC5mb3JtRmFjdG9yeSxcbiAgICBkZXBzOiBbXG4gICAgICBbbmV3IE9wdGlvbmFsKCksIE5nRm9ybV0sXG4gICAgICBbbmV3IE9wdGlvbmFsKCksIE5nTW9kZWxHcm91cF0sXG4gICAgXSxcbiAgfTtcblxuICBzdGF0aWMgZm9ybUZhY3RvcnkobmdGb3JtOiBOZ0Zvcm0sIG5nTW9kZWxHcm91cDogTmdNb2RlbEdyb3VwKSB7XG4gICAgcmV0dXJuIG5nTW9kZWxHcm91cCB8fCBuZ0Zvcm0gfHwgbnVsbDtcbiAgfVxufVxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxrQkFBa0IsRUFBRTtnQkFDekMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUEyQixFQUFFLFdBQW1CO1FBQ3RFLE9BQU8s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QUFZLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWwsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xDb250YWluZXIsXG4gIE5nRm9ybSxcbiAgTmdNb2RlbEdyb3VwLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnLi4vY29tbW9uL3V0aWwvYXJyYXktdXRpbCc7XG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50L2ZpbHRlci9lbnVtL2ZpbHRlci10eXBlLmVudW0nO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcblxuZXhwb3J0IGNsYXNzIEZvcm1zVXRpbCB7XG4gIHN0YXRpYyB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgZm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29udHJvbElzSW52YWxpZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJlxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uZGlydHlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldENvbnRyb2xFcnJvcnMoXG4gICAgZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmIChGb3Jtc1V0aWwuY29udHJvbElzSW52YWxpZChmb3JtR3JvdXAsIGNvbnRyb2xOYW1lKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmVycm9ycyk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHN0YXRpYyBtYXRjaFZhbHVlc1ZhbGlkYXRvcihcbiAgICBtYXRjaFRvOiBzdHJpbmdcbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgPT09IGNvbnRyb2wucGFyZW50LmNvbnRyb2xzW21hdGNoVG9dLnZhbHVlXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZElmKFxuICAgIHZhbHVlOiBib29sZWFuXG4gICk6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmXG4gICAgICAhIWNvbnRyb2wucGFyZW50LnZhbHVlICYmXG4gICAgICBjb250cm9sLnZhbHVlICE9IG51bGwgJiZcbiAgICAgIHZhbHVlXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Rm9ybUZyb21Db2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGZsYXQuZm9yRWFjaCgoY29sdW1uOiBUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uLCBkYXRhSXRlbSk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRhdGFJdGVtID8gZGF0YUl0ZW1bY29sdW1uLm5hbWVdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWNvbHVtbi5lZGl0YWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbiksXG4gICAgICAgIHVwZGF0ZU9uOlxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLm51bWJlciB8fFxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLnN0cmluZ1xuICAgICAgICAgICAgPyAnYmx1cidcbiAgICAgICAgICAgIDogJ2NoYW5nZScsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRWYWxpZGF0b3JzKGNvbHVtbjogVGFibGVDb2x1bW4pIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG4gICAgaWYgKGNvbHVtbi5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKEZvcm1zVXRpbC52YWxpZGF0b3JOb3RFbXB0eSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWluVmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGNvbHVtbi5taW5WYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heFZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChjb2x1bW4ubWF4VmFsdWUpKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi52YWxpZGF0b3JzPy5sZW5ndGggPiAwKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goLi4uY29sdW1uLnZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIHN0YXRpYyB2YWxpZGF0b3JOb3RFbXB0eShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgdXNlRmFjdG9yeTogRm9ybXNVdGlsLmZvcm1GYWN0b3J5LFxuICAgIGRlcHM6IFtcbiAgICAgIFtuZXcgT3B0aW9uYWwoKSwgTmdGb3JtXSxcbiAgICAgIFtuZXcgT3B0aW9uYWwoKSwgTmdNb2RlbEdyb3VwXSxcbiAgICBdLFxuICB9O1xuXG4gIHN0YXRpYyBmb3JtRmFjdG9yeShuZ0Zvcm06IE5nRm9ybSwgbmdNb2RlbEdyb3VwOiBOZ01vZGVsR3JvdXApIHtcbiAgICByZXR1cm4gbmdNb2RlbEdyb3VwIHx8IG5nRm9ybSB8fCBudWxsO1xuICB9XG59XG4iXX0=