@tetacom/ng-components 1.1.9 → 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 +5 -5
  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 +4 -20
  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 +1495 -1430
  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
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
+ import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
2
3
  import { CellComponentBase } from '../../base/cell-component-base';
3
- import { TableService } from '../../service/table.service';
4
4
  import { ICellCoordinates } from '../../contract/i-cell-coordinates';
5
- import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
5
+ import { TableService } from '../../service/table.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class DateCellComponent<T> extends CellComponentBase<T> implements OnInit {
8
8
  protected svc: TableService<T>;
@@ -10,7 +10,6 @@ export declare class DateCellComponent<T> extends CellComponentBase<T> implement
10
10
  input: DatePickerComponent;
11
11
  constructor(svc: TableService<T>, cdr: ChangeDetectorRef);
12
12
  ngOnInit(): void;
13
- setValue(value: Date): void;
14
13
  startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void;
15
14
  stopEdit(): void;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DateCellComponent<any>, never>;
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
+ import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
2
3
  import { CellComponentBase } from '../../base/cell-component-base';
3
- import { TableService } from '../../service/table.service';
4
4
  import { ICellCoordinates } from '../../contract/i-cell-coordinates';
5
- import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
5
+ import { TableService } from '../../service/table.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class DateTimeCellComponent<T> extends CellComponentBase<T> implements OnInit {
8
8
  protected svc: TableService<T>;
@@ -10,7 +10,6 @@ export declare class DateTimeCellComponent<T> extends CellComponentBase<T> imple
10
10
  input: DatePickerComponent;
11
11
  constructor(svc: TableService<T>, cdr: ChangeDetectorRef);
12
12
  ngOnInit(): void;
13
- setValue(value: Date): void;
14
13
  startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void;
15
14
  stopEdit(): void;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DateTimeCellComponent<any>, never>;
@@ -1,24 +1,22 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
- import { TableService } from '../../service/table.service';
3
- import { CellComponentBase } from '../../base/cell-component-base';
4
- import { SelectComponent } from '../../../select/select/select.component';
5
2
  import { IIdName } from '../../../../common/contract/i-id-name';
6
- import { ICellCoordinates } from '../../contract/i-cell-coordinates';
7
3
  import { VerticalAlign } from '../../../../common/enum/vertical-align.enum';
4
+ import { SelectComponent } from '../../../select/select/select.component';
5
+ import { CellComponentBase } from '../../base/cell-component-base';
6
+ import { ICellCoordinates } from '../../contract/i-cell-coordinates';
7
+ import { TableService } from '../../service/table.service';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class ListCellComponent<T> extends CellComponentBase<T> implements OnInit {
10
10
  protected svc: TableService<T>;
11
11
  protected cdr: ChangeDetectorRef;
12
- get value(): string;
13
12
  get displayFilterOptions(): IIdName<any>[];
14
13
  input: SelectComponent;
15
14
  verticalAlign: typeof VerticalAlign;
16
15
  constructor(svc: TableService<T>, cdr: ChangeDetectorRef);
17
- setValue(value: any): void;
18
16
  startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void;
19
17
  stopEdit(): void;
20
18
  ngOnInit(): void;
21
- private getValue;
19
+ protected getValue(value: any): string;
22
20
  static ɵfac: i0.ɵɵFactoryDeclaration<ListCellComponent<any>, never>;
23
21
  static ɵcmp: i0.ɵɵComponentDeclaration<ListCellComponent<any>, "teta-list-cell", never, {}, {}, never, never, false, never>;
24
22
  }
@@ -1,15 +1,13 @@
1
1
  import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
2
2
  import { CellComponentBase } from '../../base/cell-component-base';
3
- import { TableService } from '../../service/table.service';
4
3
  import { ICellCoordinates } from '../../contract/i-cell-coordinates';
4
+ import { TableService } from '../../service/table.service';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NumericCellComponent<T> extends CellComponentBase<T> implements OnInit {
7
7
  protected svc: TableService<T>;
8
8
  protected cdr: ChangeDetectorRef;
9
9
  input: ElementRef;
10
10
  constructor(svc: TableService<T>, cdr: ChangeDetectorRef);
11
- applyValue(value: any): void;
12
- setValue(): void;
13
11
  ngOnInit(): void;
14
12
  startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void;
15
13
  stopEdit(): void;
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
2
+ import { Align } from '../../../../common/enum/align.enum';
2
3
  import { CellComponentBase } from '../../base/cell-component-base';
3
- import { TableService } from '../../service/table.service';
4
4
  import { ICellCoordinates } from '../../contract/i-cell-coordinates';
5
- import { Align } from '../../../../common/enum/align.enum';
5
+ import { TableService } from '../../service/table.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class StringCellComponent<T> extends CellComponentBase<T> implements OnInit {
8
8
  svc: TableService<T>;
@@ -10,7 +10,6 @@ export declare class StringCellComponent<T> extends CellComponentBase<T> impleme
10
10
  align: typeof Align;
11
11
  input: ElementRef;
12
12
  constructor(svc: TableService<T>, cdr: ChangeDetectorRef);
13
- setValue(): void;
14
13
  ngOnInit(): void;
15
14
  startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void;
16
15
  stopEdit(): void;
@@ -1,41 +1,42 @@
1
- import { ICellCoordinates } from '../contract/i-cell-coordinates';
2
- import { TableColumn } from '../contract/table-column';
3
- import { FilterState } from '../../filter/contarct/filter-state';
4
1
  import { Observable } from 'rxjs';
5
- import { ColumnResizeEvent } from '../contract/column-resize-event';
6
- import { SortEvent } from '../contract/sort-event';
7
- import { SelectType } from '../enum/select-type.enum';
8
- import { EditType } from '../enum/edit-type.enum';
9
- import { EditEvent } from '../enum/edit-event.enum';
10
2
  import { IDictionary } from '../../../common/contract/i-dictionary';
11
3
  import { IIdName } from '../../../common/contract/i-id-name';
12
- import { TableColumnStore } from '../contract/table-column-store';
13
- import { ICellValue } from '../contract/i-cell-value';
4
+ import { FilterState } from '../../filter/contarct/filter-state';
5
+ import { ColumnResizeEvent } from '../contract/column-resize-event';
6
+ import { ICellCoordinates } from '../contract/i-cell-coordinates';
14
7
  import { ICellEvent } from '../contract/i-cell-event';
15
8
  import { ICellInstance, ICellInstanceValue } from '../contract/i-cell-instance';
9
+ import { ICellValue } from '../contract/i-cell-value';
10
+ import { SortEvent } from '../contract/sort-event';
11
+ import { TableColumn } from '../contract/table-column';
12
+ import { TableColumnStore } from '../contract/table-column-store';
13
+ import { TableRow } from '../contract/table-row';
14
+ import { EditEvent } from '../enum/edit-event.enum';
15
+ import { EditType } from '../enum/edit-type.enum';
16
+ import { SelectType } from '../enum/select-type.enum';
16
17
  import * as i0 from "@angular/core";
17
18
  export declare class TableService<T> {
18
19
  columns: Observable<TableColumn[]>;
19
- displayData: Observable<T[]>;
20
+ displayData: Observable<TableRow<T>[]>;
20
21
  dict: Observable<IDictionary<IIdName<any>[]>>;
21
22
  filterOptions: Observable<IDictionary<IIdName<any>[]>>;
22
23
  state: Observable<FilterState>;
23
24
  selectType: SelectType;
24
- editRowStart: Observable<ICellEvent>;
25
- editRowStop: Observable<ICellCoordinates>;
26
- editCellStart: Observable<ICellEvent>;
27
- editCellStop: Observable<ICellCoordinates>;
28
- valueChanged: Observable<ICellCoordinates>;
25
+ editRowStart: Observable<ICellEvent | null>;
26
+ editRowStop: Observable<ICellCoordinates | null>;
27
+ editCellStart: Observable<ICellEvent | null>;
28
+ editCellStop: Observable<ICellCoordinates | null>;
29
+ valueChanged: Observable<ICellCoordinates | null>;
29
30
  valueSet: Observable<ICellValue>;
30
31
  stateChanged: Observable<FilterState>;
31
32
  filterClear: Observable<TableColumn>;
32
33
  selectedRows: Observable<T[]>;
33
- activeRow: Observable<T>;
34
+ activeRow: Observable<T | null>;
34
35
  hiddenColumns: Observable<string[]>;
35
36
  scrollIndex: Observable<number>;
36
37
  editType: EditType;
37
38
  editEvent: EditEvent;
38
- rowEditable: boolean | ((row: T) => boolean);
39
+ rowEditable?: boolean | ((row: T) => boolean);
39
40
  trackRow: (index: number, row: T) => any;
40
41
  get dragSource(): TableColumn;
41
42
  private initialColumnsHash;
@@ -47,9 +48,9 @@ export declare class TableService<T> {
47
48
  private _dict;
48
49
  private _filterOptions;
49
50
  private _state;
50
- private _cookieName;
51
- private _hiddenCookieName;
52
- private _columnsCookieName;
51
+ private _cookieName?;
52
+ private _hiddenCookieName?;
53
+ private _columnsCookieName?;
53
54
  private _editRowStart;
54
55
  private _editRowStop;
55
56
  private _editCellStart;
@@ -58,11 +59,11 @@ export declare class TableService<T> {
58
59
  private _valueSet;
59
60
  private _stateChanged;
60
61
  private _filterClear;
61
- private _dragSource;
62
+ private _dragSource?;
62
63
  private _selectedRows;
63
64
  private _activeRow;
64
65
  private _scrollIndex;
65
- private _currentEditCell;
66
+ private _currentEditCell?;
66
67
  get currentEditCell(): ICellCoordinates;
67
68
  constructor();
68
69
  setData(data: T[]): void;
@@ -111,24 +112,24 @@ export declare class TableService<T> {
111
112
  changeValue(coordinates: ICellCoordinates): void;
112
113
  setValue(cellValue: ICellValue): void;
113
114
  setValue(cellValue: ICellInstanceValue<T>): void;
114
- getRowByIndex(rowIndex: number): T;
115
+ getRowByIndex(rowIndex?: number): TableRow<T> | undefined;
115
116
  getRowIndex(row: T): number;
116
117
  getEventCell(event: Event): HTMLElement | null;
117
118
  getEventRow(event: Event): HTMLElement | null;
118
- getNextEditableCell(coords: ICellCoordinates): ICellCoordinates;
119
- getPreviousEditableCell(coords: ICellCoordinates): ICellCoordinates;
120
- getNextCell(coords: ICellCoordinates): ICellCoordinates;
121
- getPreviousCell(coords: ICellCoordinates): ICellCoordinates;
122
- getNextRowCell(coords: ICellCoordinates): ICellCoordinates;
119
+ getNextEditableCell(coords: ICellCoordinates): ICellCoordinates | null;
120
+ getPreviousEditableCell(coords: ICellCoordinates): ICellCoordinates | null;
121
+ getNextCell(coords: ICellCoordinates): ICellCoordinates | null;
122
+ getPreviousCell(coords: ICellCoordinates): ICellCoordinates | null;
123
+ getNextRowCell(coords: ICellCoordinates): ICellCoordinates | null;
123
124
  getPreviousRowCell(coords: ICellCoordinates): {
124
125
  column: any;
125
126
  row: number;
126
127
  };
127
128
  getColumnByName(columnName: string): any;
128
129
  scrollToIndex(index: number): void;
129
- boolOrFuncCallback<M>(variable: boolean | ((row: M) => boolean)): (args: M) => boolean;
130
+ boolOrFuncCallback<M>(variable: boolean | ((row: M | undefined) => boolean)): (args: M) => boolean;
130
131
  getVisibleColumns(): any[];
131
- getCellInstance(coords: ICellCoordinates): ICellInstance<T>;
132
+ getCellInstance(coords: ICellCoordinates): ICellInstance<T> | null;
132
133
  private getFlatColumns;
133
134
  private findParent;
134
135
  private findParentColumn;
@@ -1,16 +1,17 @@
1
1
  import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, Type } from '@angular/core';
2
- import { TableService } from '../service/table.service';
3
- import { TableColumn } from '../contract/table-column';
2
+ import { IDictionary } from '../../../common/contract/i-dictionary';
3
+ import { IIdName } from '../../../common/contract/i-id-name';
4
+ import { Align } from '../../../common/enum/align.enum';
5
+ import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
4
6
  import { FilterState } from '../../filter/contarct/filter-state';
5
7
  import { DetailComponentBase } from '../base/detail-component-base';
6
- import { EditType } from '../enum/edit-type.enum';
8
+ import { ICellInstance, ICellInstanceEvent } from '../contract/i-cell-instance';
9
+ import { TableColumn } from '../contract/table-column';
10
+ import { TableRow } from '../contract/table-row';
7
11
  import { EditEvent } from '../enum/edit-event.enum';
12
+ import { EditType } from '../enum/edit-type.enum';
8
13
  import { SelectType } from '../enum/select-type.enum';
9
- import { IIdName } from '../../../common/contract/i-id-name';
10
- import { IDictionary } from '../../../common/contract/i-dictionary';
11
- import { ICellInstance, ICellInstanceEvent } from '../contract/i-cell-instance';
12
- import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
13
- import { Align } from '../../../common/enum/align.enum';
14
+ import { TableService } from '../service/table.service';
14
15
  import * as i0 from "@angular/core";
15
16
  export declare class TableComponent<T> implements OnInit, OnDestroy, AfterViewInit, OnChanges {
16
17
  private _svc;
@@ -48,7 +49,7 @@ export declare class TableComponent<T> implements OnInit, OnDestroy, AfterViewIn
48
49
  cellKeyDown: EventEmitter<ICellInstanceEvent<T>>;
49
50
  rowLeft: EventEmitter<T>;
50
51
  rowEditStart: EventEmitter<ICellInstance<T>>;
51
- rowEditEnd: EventEmitter<T>;
52
+ rowEditEnd: EventEmitter<TableRow<T>>;
52
53
  cellEditStart: EventEmitter<ICellInstance<T>>;
53
54
  cellEditEnd: EventEmitter<ICellInstance<T>>;
54
55
  valueChange: EventEmitter<ICellInstance<T>>;
@@ -64,7 +65,7 @@ export declare class TableComponent<T> implements OnInit, OnDestroy, AfterViewIn
64
65
  private _state;
65
66
  constructor(_svc: TableService<T>, _elementRef: ElementRef);
66
67
  handleClickOutsideAnyRow(event: MouseEvent): void;
67
- focusIn(event: any): void;
68
+ focusIn(event: FocusEvent): void;
68
69
  dblclick(event: MouseEvent): void;
69
70
  keydown(event: KeyboardEvent): void;
70
71
  mousedown(event: MouseEvent): void;
@@ -1,15 +1,16 @@
1
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
1
2
  import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, Type } from '@angular/core';
2
- import { TableColumn } from '../contract/table-column';
3
- import { TableService } from '../service/table.service';
4
- import { DetailComponentBase } from '../base/detail-component-base';
5
- import { SelectType } from '../enum/select-type.enum';
6
3
  import { Observable } from 'rxjs';
7
4
  import { IDictionary } from '../../../common/contract/i-dictionary';
8
5
  import { IIdName } from '../../../common/contract/i-id-name';
9
- import { AggregationType } from '../enum/aggregation-type.enum';
10
- import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
11
- import { TetaLocalisation } from '../../../locale/teta-localisation';
12
6
  import { TetaConfigService } from '../../../locale/teta-config.service';
7
+ import { TetaLocalisation } from '../../../locale/teta-localisation';
8
+ import { DetailComponentBase } from '../base/detail-component-base';
9
+ import { TableColumn } from '../contract/table-column';
10
+ import { TableRow } from '../contract/table-row';
11
+ import { AggregationType } from '../enum/aggregation-type.enum';
12
+ import { SelectType } from '../enum/select-type.enum';
13
+ import { TableService } from '../service/table.service';
13
14
  import * as i0 from "@angular/core";
14
15
  export declare class TableBodyComponent<T> implements OnInit, OnDestroy {
15
16
  private _svc;
@@ -27,9 +28,9 @@ export declare class TableBodyComponent<T> implements OnInit, OnDestroy {
27
28
  trackColumns: (index: number, column: TableColumn) => any;
28
29
  viewport: CdkVirtualScrollViewport;
29
30
  private readonly tableBodyClass;
30
- scroll: EventEmitter<Event>;
31
- set data(data: T[]);
32
- get data(): T[];
31
+ scrollChange: EventEmitter<Event>;
32
+ set data(data: TableRow<T>[]);
33
+ get data(): TableRow<T>[];
33
34
  dict: IDictionary<IIdName<any>[]>;
34
35
  locked: TableColumn[];
35
36
  unlocked: TableColumn[];
@@ -54,11 +55,12 @@ export declare class TableBodyComponent<T> implements OnInit, OnDestroy {
54
55
  getAggregateValue(column: TableColumn): number;
55
56
  getAggregateText(column: TableColumn): string;
56
57
  emitScroll(event: any): void;
58
+ trackTableRow: (index: number, row: TableRow<T>) => any;
57
59
  private addResizeObserver;
58
60
  private removeResizeObserver;
59
61
  private getSum;
60
62
  private getMin;
61
63
  private getMax;
62
64
  static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent<any>, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "teta-table-body", never, { "virtual": { "alias": "virtual"; "required": false; }; "activeRow": { "alias": "activeRow"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "additionalComponent": { "alias": "additionalComponent"; "required": false; }; "aggregate": { "alias": "aggregate"; "required": false; }; "selectType": { "alias": "selectType"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "trackRow": { "alias": "trackRow"; "required": false; }; "trackColumns": { "alias": "trackColumns"; "required": false; }; }, { "scroll": "scroll"; }, never, ["*"], false, never>;
65
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "teta-table-body", never, { "virtual": { "alias": "virtual"; "required": false; }; "activeRow": { "alias": "activeRow"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "additionalComponent": { "alias": "additionalComponent"; "required": false; }; "aggregate": { "alias": "aggregate"; "required": false; }; "selectType": { "alias": "selectType"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "trackRow": { "alias": "trackRow"; "required": false; }; "trackColumns": { "alias": "trackColumns"; "required": false; }; }, { "scrollChange": "scrollChange"; }, never, ["*"], false, never>;
64
66
  }
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
- import { TableColumn } from '../contract/table-column';
3
2
  import { FilterState } from '../../filter/contarct/filter-state';
4
- import { TableService } from '../service/table.service';
3
+ import { TableColumn } from '../contract/table-column';
5
4
  import { SelectType } from '../enum/select-type.enum';
5
+ import { TableService } from '../service/table.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class TableHeadComponent<T> implements OnInit, OnDestroy {
8
8
  private _svc;
@@ -42,6 +42,6 @@ import * as i40 from "../../directive/context-menu/context-menu.module";
42
42
  import * as i41 from "../../directive/scrollable/scrollable.module";
43
43
  export declare class TableModule {
44
44
  static ɵfac: i0.ɵɵFactoryDeclaration<TableModule, never>;
45
- static ɵmod: i0.ɵɵNgModuleDeclaration<TableModule, [typeof i1.TableComponent, typeof i2.NumericCellComponent, typeof i3.ListCellComponent, typeof i4.DateCellComponent, typeof i5.StringCellComponent, typeof i6.HeadCellHostComponent, typeof i7.TableHeadComponent, typeof i8.TableBodyComponent, typeof i9.CellComponent, typeof i10.CellHostComponent, typeof i11.TableHeadGroupComponent, typeof i12.HeadCellComponent, typeof i13.DefaultHeadCellComponent, typeof i14.SelectionCellComponent, typeof i15.SelectionHeadCellComponent, typeof i16.HeadCellDropdownComponent, typeof i17.DateTimeCellComponent, typeof i18.BooleanCellComponent, typeof i19.MainDropdownTabComponent, typeof i20.FilterDropdownTabComponent, typeof i21.VisibilityDropdownTabComponent], [typeof i22.CommonModule, typeof i23.FilterModule, typeof i24.FormsModule, typeof i25.CheckboxModule, typeof i26.IconModule, typeof i27.DropdownModule, typeof i28.TabsModule, typeof i29.SelectModule, typeof i30.NumberPipeModule, typeof i31.DatePickerModule, typeof i32.ButtonModule, typeof i33.HintModule, typeof i34.TreeModule, typeof i35.OnlyNumberModule, typeof i36.ToolbarModule, typeof i37.ClickOutsideModule, typeof i38.ResizeDragModule, typeof i39.ScrollingModule, typeof i40.ContextMenuModule, typeof i41.ScrollableModule], [typeof i1.TableComponent, typeof i2.NumericCellComponent, typeof i3.ListCellComponent, typeof i4.DateCellComponent, typeof i5.StringCellComponent, typeof i6.HeadCellHostComponent, typeof i7.TableHeadComponent, typeof i8.TableBodyComponent, typeof i9.CellComponent, typeof i10.CellHostComponent, typeof i17.DateTimeCellComponent, typeof i18.BooleanCellComponent]>;
45
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TableModule, [typeof i1.TableComponent, typeof i2.NumericCellComponent, typeof i3.ListCellComponent, typeof i4.DateCellComponent, typeof i5.StringCellComponent, typeof i6.HeadCellHostComponent, typeof i7.TableHeadComponent, typeof i8.TableBodyComponent, typeof i9.CellComponent, typeof i10.CellHostComponent, typeof i11.TableHeadGroupComponent, typeof i12.HeadCellComponent, typeof i13.DefaultHeadCellComponent, typeof i14.SelectionCellComponent, typeof i15.SelectionHeadCellComponent, typeof i16.HeadCellDropdownComponent, typeof i17.DateTimeCellComponent, typeof i18.BooleanCellComponent, typeof i19.MainDropdownTabComponent, typeof i20.FilterDropdownTabComponent, typeof i21.VisibilityDropdownTabComponent], [typeof i22.CommonModule, typeof i23.FilterModule, typeof i24.FormsModule, typeof i25.CheckboxModule, typeof i26.IconModule, typeof i27.DropdownModule, typeof i28.TabsModule, typeof i29.SelectModule, typeof i30.NumberPipeModule, typeof i31.DatePickerModule, typeof i32.ButtonModule, typeof i33.HintModule, typeof i34.TreeModule, typeof i35.OnlyNumberModule, typeof i36.ToolbarModule, typeof i37.ClickOutsideModule, typeof i38.ResizeDragModule, typeof i39.ScrollingModule, typeof i40.ContextMenuModule, typeof i41.ScrollableModule, typeof i24.ReactiveFormsModule], [typeof i1.TableComponent, typeof i2.NumericCellComponent, typeof i3.ListCellComponent, typeof i4.DateCellComponent, typeof i5.StringCellComponent, typeof i6.HeadCellHostComponent, typeof i7.TableHeadComponent, typeof i8.TableBodyComponent, typeof i9.CellComponent, typeof i10.CellHostComponent, typeof i17.DateTimeCellComponent, typeof i18.BooleanCellComponent]>;
46
46
  static ɵinj: i0.ɵɵInjectorDeclaration<TableModule>;
47
47
  }
@@ -1,10 +1,10 @@
1
- import { ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, OnInit, TemplateRef, Type } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, TemplateRef, Type } from '@angular/core';
2
+ import { AutoCloseIgnoreCase } from '../../common/contract/auto-close-ignore-case';
3
+ import { ClickService } from '../../common/service/click.service';
2
4
  import { DynamicComponentService } from '../../common/service/dynamic-component.service';
3
5
  import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
4
- import { ClickService } from '../../common/service/click.service';
5
- import { AutoCloseIgnoreCase } from '../../common/contract/auto-close-ignore-case';
6
6
  import * as i0 from "@angular/core";
7
- export declare class ContextMenuDirective extends DynamicContentBaseDirective implements OnDestroy, OnInit {
7
+ export declare class ContextMenuDirective extends DynamicContentBaseDirective implements OnDestroy {
8
8
  protected _document: any;
9
9
  protected _elementRef: ElementRef;
10
10
  protected _service: DynamicComponentService;
@@ -26,7 +26,6 @@ export declare class ContextMenuDirective extends DynamicContentBaseDirective im
26
26
  protected addScrollListener(): void;
27
27
  protected removeScrollListener(): void;
28
28
  private scrollListener;
29
- ngOnInit(): void;
30
29
  ngOnDestroy(): void;
31
30
  protected setPosition(): void;
32
31
  private createMenu;
@@ -1,10 +1,10 @@
1
1
  import { ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
2
- import { DragInstance } from './model/drag-instance';
3
2
  import { DragContainerDirective } from './drag-container.directive';
4
3
  import { DragDropService } from './drag-drop.service';
5
- import { DropTarget } from './model/drop-target';
6
- import { DropEvent } from './model/drop-event';
4
+ import { DragInstance } from './model/drag-instance';
7
5
  import { DragSelection } from './model/drag-selection';
6
+ import { DropEvent } from './model/drop-event';
7
+ import { DropTarget } from './model/drop-target';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class DragDirective<T> implements OnInit, OnDestroy {
10
10
  private _container;
@@ -22,7 +22,7 @@ export declare class DragDirective<T> implements OnInit, OnDestroy {
22
22
  get selection(): boolean;
23
23
  get isDropTarget(): boolean;
24
24
  private _alive;
25
- mousedown(event: any): void;
25
+ mousedown(event: MouseEvent): void;
26
26
  mouseenter(event: MouseEvent): void;
27
27
  mouseleave(event: any): void;
28
28
  constructor(_container: DragContainerDirective<T>, _dragService: DragDropService<T>, _zone: NgZone, _cdr: ChangeDetectorRef);
@@ -5,10 +5,9 @@ export declare class DragSortContainerDirective<T> {
5
5
  dragSortList: T[];
6
6
  dragSorted: EventEmitter<DragSortEvent<T>>;
7
7
  private _dragItem;
8
- constructor();
9
8
  drop(event: DragEvent): void;
10
- setDragItem(item: T): void;
11
- getDragItem(): T;
9
+ setDragItem(item: T | null): void;
10
+ getDragItem(): T | null;
12
11
  getList(): T[];
13
12
  setList(list: T[]): void;
14
13
  updateSortOrder(source: T, target: T, insertBefore: boolean): void;
@@ -1,10 +1,10 @@
1
- import { ChangeDetectorRef, ComponentRef, ElementRef, EventEmitter, Injector, NgZone, OnDestroy, OnInit, TemplateRef, Type } from '@angular/core';
2
- import { DynamicComponentService } from '../common/service/dynamic-component.service';
1
+ import { ChangeDetectorRef, ComponentRef, ElementRef, EventEmitter, Injector, NgZone, OnDestroy, TemplateRef, Type } from '@angular/core';
2
+ import { TetaContentRef } from '../common/contract/teta-content-ref';
3
3
  import { Align } from '../common/enum/align.enum';
4
4
  import { VerticalAlign } from '../common/enum/vertical-align.enum';
5
- import { TetaContentRef } from '../common/contract/teta-content-ref';
5
+ import { DynamicComponentService } from '../common/service/dynamic-component.service';
6
6
  import * as i0 from "@angular/core";
7
- export declare abstract class DynamicContentBaseDirective implements OnInit, OnDestroy {
7
+ export declare abstract class DynamicContentBaseDirective implements OnDestroy {
8
8
  protected _document: any;
9
9
  protected _elementRef: ElementRef;
10
10
  protected _service: DynamicComponentService;
@@ -12,20 +12,19 @@ export declare abstract class DynamicContentBaseDirective implements OnInit, OnD
12
12
  protected _zone: NgZone;
13
13
  protected _cdr: ChangeDetectorRef;
14
14
  data: any;
15
- className: string | string[];
15
+ className?: string | string[];
16
16
  align: Align;
17
17
  verticalAlign: VerticalAlign;
18
18
  appendToBody: boolean;
19
19
  set open(open: boolean);
20
20
  openChange: EventEmitter<boolean>;
21
21
  protected _alive: boolean;
22
- protected _componentRef: ComponentRef<any>;
23
- protected _content: TetaContentRef;
22
+ protected _componentRef?: ComponentRef<any> | null;
23
+ protected _content?: TetaContentRef;
24
24
  protected _open: boolean;
25
- protected abstract get _dynamicContent(): string | TemplateRef<any> | Type<any>;
25
+ protected abstract get _dynamicContent(): string | TemplateRef<any> | Type<any> | null | undefined;
26
26
  protected constructor(_document: any, _elementRef: ElementRef, _service: DynamicComponentService, _injector: Injector, _zone: NgZone, _cdr: ChangeDetectorRef);
27
27
  ngOnDestroy(): void;
28
- ngOnInit(): void;
29
28
  protected createContentRef<T>(className?: string | string[]): ComponentRef<T>;
30
29
  protected destroyContentRef(): void;
31
30
  protected abstract setPosition(): void;
@@ -1,9 +1,9 @@
1
1
  import { ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, TemplateRef, Type } from '@angular/core';
2
- import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
3
- import { DynamicComponentService } from '../../common/service/dynamic-component.service';
4
2
  import { Align } from '../../common/enum/align.enum';
5
3
  import { VerticalAlign } from '../../common/enum/vertical-align.enum';
6
- import { viewType } from "../../common/model/view-type.model";
4
+ import { viewType } from '../../common/model/view-type.model';
5
+ import { DynamicComponentService } from '../../common/service/dynamic-component.service';
6
+ import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class HintDirective extends DynamicContentBaseDirective implements OnDestroy {
9
9
  protected _document: any;
@@ -15,14 +15,14 @@ export declare class HintDirective extends DynamicContentBaseDirective implement
15
15
  /**
16
16
  * Строка, шаблон или компонент для создания контекстного меню
17
17
  */
18
- tetaHint: string | TemplateRef<any> | Type<any>;
18
+ tetaHint?: string | TemplateRef<any> | Type<any>;
19
19
  align: Align;
20
20
  verticalAlign: VerticalAlign;
21
21
  delay: number;
22
22
  viewType: viewType;
23
23
  overflownOnly: boolean;
24
24
  get _dynamicContent(): string | Type<any> | TemplateRef<any>;
25
- private _timeout;
25
+ private _timeout?;
26
26
  private _componentRect;
27
27
  constructor(_document: any, _elementRef: ElementRef, _service: DynamicComponentService, _injector: Injector, _zone: NgZone, _cdr: ChangeDetectorRef);
28
28
  mouseenter(): void;
@@ -1,9 +1,9 @@
1
1
  import { ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, OnInit, TemplateRef, Type } from '@angular/core';
2
- import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
3
- import { DynamicComponentService } from '../../common/service/dynamic-component.service';
4
2
  import { Align } from '../../common/enum/align.enum';
5
3
  import { VerticalAlign } from '../../common/enum/vertical-align.enum';
6
4
  import { ClickService } from '../../common/service/click.service';
5
+ import { DynamicComponentService } from '../../common/service/dynamic-component.service';
6
+ import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class TooltipDirective extends DynamicContentBaseDirective implements OnDestroy, OnInit {
9
9
  protected _document: any;
@@ -16,7 +16,7 @@ export declare class TooltipDirective extends DynamicContentBaseDirective implem
16
16
  /**
17
17
  * Строка, шаблон или компонент для создания контекстного меню
18
18
  */
19
- tetaTooltip: string | TemplateRef<any> | Type<any>;
19
+ tetaTooltip?: string | TemplateRef<any> | Type<any> | null | undefined;
20
20
  align: Align;
21
21
  verticalAlign: VerticalAlign;
22
22
  private _componentRect;
@@ -11,10 +11,10 @@ export class ClickService {
11
11
  this.click = fromEvent(this._document, 'click');
12
12
  this.contextMenu = fromEvent(this._document, 'contextmenu');
13
13
  }
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ClickService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
15
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ClickService, providedIn: 'root' });
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
15
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickService, providedIn: 'root' });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ClickService, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickService, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root',
@@ -1,6 +1,6 @@
1
1
  import { Injectable, Injector, TemplateRef, } from '@angular/core';
2
- import { TetaContentRef } from '../contract/teta-content-ref';
3
2
  import { DynamicData } from '../contract/dynamic-data';
3
+ import { TetaContentRef } from '../contract/teta-content-ref';
4
4
  import * as i0 from "@angular/core";
5
5
  export class DynamicComponentService {
6
6
  _componentFactoryResolver;
@@ -77,7 +77,7 @@ export class DynamicComponentService {
77
77
  const componentFactory = this._componentFactoryResolver.resolveComponentFactory(content);
78
78
  const componentRef = componentFactory.create(injector);
79
79
  for (const key in context) {
80
- if (context.hasOwnProperty(key)) {
80
+ if (Object.prototype.hasOwnProperty.call(context, key)) {
81
81
  componentRef.instance[key] = context[key];
82
82
  }
83
83
  }
@@ -85,13 +85,13 @@ export class DynamicComponentService {
85
85
  this._appRef.attachView(componentRef.hostView);
86
86
  return new TetaContentRef([[componentNativeEl]], componentRef.hostView, componentRef);
87
87
  }
88
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.RendererFactory2 }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
89
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DynamicComponentService, providedIn: 'root' });
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.RendererFactory2 }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DynamicComponentService, providedIn: 'root' });
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DynamicComponentService, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DynamicComponentService, decorators: [{
92
92
  type: Injectable,
93
93
  args: [{
94
94
  providedIn: 'root',
95
95
  }]
96
96
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vc2VydmljZS9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxVQUFVLEVBQ1YsUUFBUSxFQUdSLFdBQVcsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt2RCxNQUFNLE9BQU8sdUJBQXVCO0lBSXhCO0lBQ0E7SUFDQTtJQUxGLFNBQVMsQ0FBWTtJQUU3QixZQUNVLHlCQUFtRCxFQUNuRCxnQkFBa0MsRUFDbEMsT0FBdUI7UUFGdkIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGVBQWUsQ0FDYixTQUFrQixFQUNsQixVQUEwQixFQUMxQixRQUFrQixFQUNsQixTQUFjO1FBRWQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHlCQUF5QjthQUNoRCx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7YUFDbEMsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxPQUFPLFlB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SUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3JCLFlBQVksQ0FBQyxRQUFRLEVBQ3JCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQzt1R0FuSFUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV0YUNvbnRlbnRSZWYgfSBmcm9tICcuLi9jb250cmFjdC90ZXRhLWNvbnRlbnQtcmVmJztcbmltcG9ydCB7IER5bmFtaWNEYXRhIH0gZnJvbSAnLi4vY29udHJhY3QvZHluYW1pYy1kYXRhJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9yZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZlxuICApIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IHRoaXMuX3JlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgfVxuXG4gIGNyZWF0ZUNvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgY29udGVudFJlZjogVGV0YUNvbnRlbnRSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGNvbnRhaW5lcjogYW55XG4gICk6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KVxuICAgICAgLmNyZWF0ZShpbmplY3RvciwgY29udGVudFJlZi5ub2Rlcyk7XG4gICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICBjcmVhdGVDb250ZW50KFxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGNvbnRleHQ/OiBhbnlcbiAgKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIGlmIChjb250ZW50ID09PSBudWxsIHx8IGNvbnRlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb250ZW50IGlzIHVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tU3RyaW5nKGNvbnRlbnQpO1xuICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tVGVtcGxhdGUoY29udGVudCwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmZyb21Db21wb25lbnQoY29udGVudCwgaW5qZWN0b3IsIGNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3k8VD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8VD4sXG4gICAgY29udGVudDogVGV0YUNvbnRlbnRSZWYsXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudFxuICApOiB2b2lkIHtcbiAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICB0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyhjb21wb25lbnQuaG9zdFZpZXcpO1xuICAgICAgY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICB9XG4gICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC52aWV3UmVmKSB7XG4gICAgICBjb250ZW50LnZpZXdSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgICBjb250ZW50ID0gbnVsbDtcbiAgfVxuXG4gIGdldENvbnRleHQoXG4gICAgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PixcbiAgICBjb250ZXh0OiBhbnlcbiAgKTogYW55IHtcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaW1wbGljaXQ6IGNvbnRleHQsXG4gICAgICAgIGRhdGE6IGNvbnRleHQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxuXG4gIGdldEluamVjdG9yKGRhdGE6IER5bmFtaWNEYXRhLCBwYXJlbnQ6IEluamVjdG9yKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEeW5hbWljRGF0YSxcbiAgICAgICAgICB1c2VWYWx1ZTogZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwYXJlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZyb21TdHJpbmcoY29udGVudDogc3RyaW5nKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIHJldHVybiBuZXcgVGV0YUNvbnRlbnRSZWYoW1t0aGlzLl9yZW5kZXJlci5jcmVhdGVUZXh0KGAke2NvbnRlbnR9YCldXSk7XG4gIH1cblxuICBwcml2YXRlIGZyb21UZW1wbGF0ZShcbiAgICBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNvbnRleHQ6IGFueVxuICApOiBUZXRhQ29udGVudFJlZiB7XG4gICAgY29uc3Qgdmlld1JlZiA9IGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnRleHQpO1xuICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KHZpZXdSZWYpO1xuICAgIHJldHVybiBuZXcgVGV0YUNvbnRlbnRSZWYoW3ZpZXdSZWYucm9vdE5vZGVzXSwgdmlld1JlZik7XG4gIH1cblxuICBwcml2YXRlIGZyb21Db21wb25lbnQoXG4gICAgY29udGVudDogYW55LFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBjb250ZXh0OiBhbnlcbiAgKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPVxuICAgICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PGFueT4oY29udGVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRleHQpIHtcbiAgICAgIGlmIChjb250ZXh0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlW2tleV0gPSBjb250ZXh0W2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudE5hdGl2ZUVsID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICByZXR1cm4gbmV3IFRldGFDb250ZW50UmVmKFxuICAgICAgW1tjb21wb25lbnROYXRpdmVFbF1dLFxuICAgICAgY29tcG9uZW50UmVmLmhvc3RWaWV3LFxuICAgICAgY29tcG9uZW50UmVmXG4gICAgKTtcbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vc2VydmljZS9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxVQUFVLEVBQ1YsUUFBUSxFQUdSLFdBQVcsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUs5RCxNQUFNLE9BQU8sdUJBQXVCO0lBSXhCO0lBQ0E7SUFDQTtJQUxGLFNBQVMsQ0FBWTtJQUU3QixZQUNVLHlCQUFtRCxFQUNuRCxnQkFBa0MsRUFDbEMsT0FBdUI7UUFGdkIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGVBQWUsQ0FDYixTQUFrQixFQUNsQixVQUEwQixFQUMxQixRQUFrQixFQUNsQixTQUFjO1FBRWQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHlCQUF5QjthQUNoRCx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7YUFDbEMsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxPQUFPLFlB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QUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3JCLFlBQVksQ0FBQyxRQUFRLEVBQ3JCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQzt1R0FuSFUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEeW5hbWljRGF0YSB9IGZyb20gJy4uL2NvbnRyYWN0L2R5bmFtaWMtZGF0YSc7XG5pbXBvcnQgeyBUZXRhQ29udGVudFJlZiB9IGZyb20gJy4uL2NvbnRyYWN0L3RldGEtY29udGVudC1yZWYnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFNlcnZpY2Uge1xuICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmXG4gICkge1xuICAgIHRoaXMuX3JlbmRlcmVyID0gdGhpcy5fcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICB9XG5cbiAgY3JlYXRlQ29tcG9uZW50PFQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUPixcbiAgICBjb250ZW50UmVmOiBUZXRhQ29udGVudFJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgY29udGFpbmVyOiBhbnlcbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXG4gICAgICAuY3JlYXRlKGluamVjdG9yLCBjb250ZW50UmVmLm5vZGVzKTtcbiAgICB0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIGNyZWF0ZUNvbnRlbnQoXG4gICAgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PiB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIGNvbnRleHQ/OiBhbnlcbiAgKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIGlmIChjb250ZW50ID09PSBudWxsIHx8IGNvbnRlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb250ZW50IGlzIHVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tU3RyaW5nKGNvbnRlbnQpO1xuICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tVGVtcGxhdGUoY29udGVudCwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmZyb21Db21wb25lbnQoY29udGVudCwgaW5qZWN0b3IsIGNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3k8VD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8VD4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGNvbnRlbnQ6IFRldGFDb250ZW50UmVmIHwgbnVsbCxcbiAgICBjb250YWluZXI6IEhUTUxFbGVtZW50XG4gICk6IHZvaWQge1xuICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgIHRoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudC5ob3N0Vmlldyk7XG4gICAgICBjb21wb25lbnQuZGVzdHJveSgpO1xuICAgIH1cbiAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnZpZXdSZWYpIHtcbiAgICAgIGNvbnRlbnQudmlld1JlZi5kZXN0cm95KCk7XG4gICAgfVxuICAgIGNvbnRlbnQgPSBudWxsO1xuICB9XG5cbiAgZ2V0Q29udGV4dChcbiAgICBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBjb250ZXh0OiBhbnlcbiAgKTogYW55IHtcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaW1wbGljaXQ6IGNvbnRleHQsXG4gICAgICAgIGRhdGE6IGNvbnRleHQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxuXG4gIGdldEluamVjdG9yKGRhdGE6IER5bmFtaWNEYXRhLCBwYXJlbnQ6IEluamVjdG9yKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEeW5hbWljRGF0YSxcbiAgICAgICAgICB1c2VWYWx1ZTogZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwYXJlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZyb21TdHJpbmcoY29udGVudDogc3RyaW5nKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIHJldHVybiBuZXcgVGV0YUNvbnRlbnRSZWYoW1t0aGlzLl9yZW5kZXJlci5jcmVhdGVUZXh0KGAke2NvbnRlbnR9YCldXSk7XG4gIH1cblxuICBwcml2YXRlIGZyb21UZW1wbGF0ZShcbiAgICBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNvbnRleHQ6IGFueVxuICApOiBUZXRhQ29udGVudFJlZiB7XG4gICAgY29uc3Qgdmlld1JlZiA9IGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnRleHQpO1xuICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KHZpZXdSZWYpO1xuICAgIHJldHVybiBuZXcgVGV0YUNvbnRlbnRSZWYoW3ZpZXdSZWYucm9vdE5vZGVzXSwgdmlld1JlZik7XG4gIH1cblxuICBwcml2YXRlIGZyb21Db21wb25lbnQoXG4gICAgY29udGVudDogYW55LFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBjb250ZXh0OiBhbnlcbiAgKTogVGV0YUNvbnRlbnRSZWYge1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPVxuICAgICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PGFueT4oY29udGVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRleHQpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29udGV4dCwga2V5KSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGNvbnRleHRba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50TmF0aXZlRWwgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIHJldHVybiBuZXcgVGV0YUNvbnRlbnRSZWYoXG4gICAgICBbW2NvbXBvbmVudE5hdGl2ZUVsXV0sXG4gICAgICBjb21wb25lbnRSZWYuaG9zdFZpZXcsXG4gICAgICBjb21wb25lbnRSZWZcbiAgICApO1xuICB9XG59XG4iXX0=