@tetacom/ng-components 1.0.38 → 1.0.41

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 (317) hide show
  1. package/component/accordion/accordion/accordion.component.d.ts +1 -1
  2. package/component/accordion/accordion-content.directive.d.ts +1 -1
  3. package/component/accordion/accordion-head/accordion-head.component.d.ts +1 -1
  4. package/component/accordion/accordion-item/accordion-item.component.d.ts +1 -1
  5. package/component/button/button/button.component.d.ts +1 -1
  6. package/component/chart-3d/chart3d/chart3d.component.d.ts +1 -1
  7. package/component/checkbox/checkbox/checkbox.component.d.ts +1 -1
  8. package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
  9. package/component/date-picker/day-select/day-select.component.d.ts +1 -1
  10. package/component/date-picker/month-picker/month-picker.component.d.ts +1 -1
  11. package/component/date-picker/month-select/month-select.component.d.ts +1 -1
  12. package/component/date-picker/time-part-control/time-part-control.component.d.ts +1 -1
  13. package/component/date-picker/year-select/year-select.component.d.ts +1 -1
  14. package/component/delimiter/delimiter/delimiter.component.d.ts +1 -1
  15. package/component/dropdown/dropdown/dropdown.component.d.ts +1 -1
  16. package/component/dropdown/dropdown-base.d.ts +1 -1
  17. package/component/dropdown/dropdown-content.directive.d.ts +1 -1
  18. package/component/dropdown/dropdown-head.directive.d.ts +1 -1
  19. package/component/dropdown/dropdown.directive.d.ts +1 -1
  20. package/component/dynamic-component/popup-content/popup-content.component.d.ts +1 -1
  21. package/component/expand-card/expand-card/expand-card.component.d.ts +1 -1
  22. package/component/expand-panel/expand-panel/expand-panel.component.d.ts +1 -1
  23. package/component/expand-panel/expand-panel-content.directive.d.ts +1 -1
  24. package/component/expand-panel/expand-panel-head.directive.d.ts +1 -1
  25. package/component/file-upload/file-item/file-item.component.d.ts +1 -1
  26. package/component/file-upload/file-upload-area/file-upload-area.component.d.ts +3 -2
  27. package/component/filter/boolean-filter/boolean-filter.component.d.ts +1 -1
  28. package/component/filter/date-filter/date-filter.component.d.ts +1 -1
  29. package/component/filter/filter-host/filter-host.component.d.ts +1 -1
  30. package/component/filter/list-filter/list-filter.component.d.ts +1 -1
  31. package/component/filter/numeric-filter/numeric-filter.component.d.ts +1 -1
  32. package/component/filter/string-filter/string-filter.component.d.ts +1 -1
  33. package/component/icon/icon/icon.component.d.ts +1 -1
  34. package/component/icon/icon-sprite.directive.d.ts +1 -1
  35. package/component/input/form-group-title/form-group-title.component.d.ts +1 -1
  36. package/component/input/input/input.component.d.ts +1 -1
  37. package/component/input/text-field/text-field.component.d.ts +1 -1
  38. package/component/message/message/message.component.d.ts +1 -1
  39. package/component/message/message-host/message-host.component.d.ts +1 -1
  40. package/component/modal/dialog/dialog.component.d.ts +1 -1
  41. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  42. package/component/pager/pager/pager.component.d.ts +1 -1
  43. package/component/panel/panel/panel.component.d.ts +1 -1
  44. package/component/progress-bar/progress-bar/progress-bar.component.d.ts +1 -1
  45. package/component/property-grid/default/date-item-default/date-item-default.component.d.ts +1 -1
  46. package/component/property-grid/default/list-item-default/list-item-default.component.d.ts +1 -1
  47. package/component/property-grid/default/numeric-item-default/numeric-item-default.component.d.ts +1 -1
  48. package/component/property-grid/default/string-item-default/string-item-default.component.d.ts +1 -1
  49. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +3 -3
  50. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +4 -4
  51. package/component/property-grid/property-grid/property-grid.component.d.ts +3 -3
  52. package/component/radio/radio/radio.component.d.ts +1 -1
  53. package/component/radio/radio-button/radio-button.component.d.ts +1 -1
  54. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -1
  55. package/component/select/select/select.component.d.ts +1 -1
  56. package/component/select/select-option.directive.d.ts +1 -1
  57. package/component/select/select-value.directive.d.ts +1 -1
  58. package/component/sidebar/sidebar/sidebar.component.d.ts +1 -1
  59. package/component/switch/switch/switch.component.d.ts +1 -1
  60. package/component/switch/switch-button/switch-button.component.d.ts +1 -1
  61. package/component/table/base/cell-component-base.d.ts +1 -1
  62. package/component/table/base/head-cell-component-base.d.ts +1 -1
  63. package/component/table/cell/cell.component.d.ts +1 -1
  64. package/component/table/cell-host/cell-host.component.d.ts +1 -1
  65. package/component/table/contract/head-dropdown-tab.d.ts +13 -0
  66. package/component/table/contract/public-api.d.ts +1 -0
  67. package/component/table/contract/table-column.d.ts +7 -3
  68. package/component/table/default/boolean-cell/boolean-cell.component.d.ts +1 -1
  69. package/component/table/default/date-cell/date-cell.component.d.ts +1 -1
  70. package/component/table/default/date-time-cell/date-time-cell.component.d.ts +1 -1
  71. package/component/table/default/default-head-cell/default-head-cell.component.d.ts +1 -1
  72. package/component/table/default/group-row/group-row.component.d.ts +1 -1
  73. package/component/table/default/list-cell/list-cell.component.d.ts +1 -1
  74. package/component/table/default/numeric-cell/numeric-cell.component.d.ts +1 -1
  75. package/component/table/default/string-cell/string-cell.component.d.ts +1 -1
  76. package/component/table/head-cell/head-cell.component.d.ts +8 -4
  77. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +5 -43
  78. package/component/table/head-cell-host/head-cell-host.component.d.ts +1 -1
  79. package/component/table/selection-cell/selection-cell.component.d.ts +1 -1
  80. package/component/table/selection-head-cell/selection-head-cell.component.d.ts +1 -1
  81. package/component/table/table/table.component.d.ts +1 -1
  82. package/component/table/table-body/table-body.component.d.ts +1 -1
  83. package/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.d.ts +32 -0
  84. package/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.d.ts +41 -0
  85. package/component/table/table-head/table-head.component.d.ts +1 -1
  86. package/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.d.ts +46 -0
  87. package/component/table/table-head-group/table-head-group.component.d.ts +1 -1
  88. package/component/table/table.module.d.ts +23 -20
  89. package/component/tabs/tab/tab.component.d.ts +1 -1
  90. package/component/tabs/tab-content.directive.d.ts +1 -1
  91. package/component/tabs/tab-title.directive.d.ts +1 -1
  92. package/component/tabs/tabs/tabs.component.d.ts +1 -1
  93. package/component/theme-switch/theme-switch/theme-switch.component.d.ts +1 -1
  94. package/component/toggle/toggle/toggle.component.d.ts +1 -1
  95. package/component/toolbar/toolbar/toolbar.component.d.ts +1 -1
  96. package/component/tree/tree/tree.component.d.ts +1 -1
  97. package/component/tree/tree-item/tree-item.component.d.ts +1 -1
  98. package/component/tree/tree-item-toggle/tree-item-toggle.component.d.ts +1 -1
  99. package/directive/click-outside/click-outside.directive.d.ts +1 -1
  100. package/directive/context-menu/context-menu.directive.d.ts +1 -1
  101. package/directive/disable-control/disable-control.directive.d.ts +1 -1
  102. package/directive/drag-drop/drag-container.directive.d.ts +1 -1
  103. package/directive/drag-drop/drag-placeholder.directive.d.ts +1 -1
  104. package/directive/drag-drop/drag-preview.directive.d.ts +1 -1
  105. package/directive/drag-drop/drag.directive.d.ts +1 -1
  106. package/directive/drag-sort/drag-sort-container.directive.d.ts +1 -1
  107. package/directive/drag-sort/drag-sort-item.directive.d.ts +1 -1
  108. package/directive/dynamic-content-base.directive.d.ts +1 -1
  109. package/directive/highlight/highlight.directive.d.ts +1 -1
  110. package/directive/hint/hint.directive.d.ts +1 -1
  111. package/directive/let/let.directive.d.ts +1 -1
  112. package/directive/loader/loader.directive.d.ts +1 -1
  113. package/directive/no-autofill/no-autofill.directive.d.ts +1 -1
  114. package/directive/only-number/only-number.directive.d.ts +1 -1
  115. package/directive/public-api.d.ts +1 -0
  116. package/directive/resize-drag/resize-drag.directive.d.ts +1 -1
  117. package/directive/scroll-into-view/public-api.d.ts +2 -0
  118. package/directive/scroll-into-view/scroll-into-view.directive.d.ts +13 -0
  119. package/directive/scroll-into-view/scroll-into-view.module.d.ts +8 -0
  120. package/directive/teta-template/teta-template.directive.d.ts +1 -1
  121. package/directive/tooltip/tooltip.directive.d.ts +1 -1
  122. package/esm2020/common/service/click.service.mjs +3 -3
  123. package/esm2020/common/service/dynamic-component.service.mjs +3 -3
  124. package/esm2020/common/service/overlay-container.service.mjs +3 -3
  125. package/esm2020/component/accordion/accordion/accordion.component.mjs +4 -4
  126. package/esm2020/component/accordion/accordion-content.directive.mjs +3 -3
  127. package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +6 -6
  128. package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +4 -4
  129. package/esm2020/component/accordion/accordion.module.mjs +6 -8
  130. package/esm2020/component/button/button/button.component.mjs +4 -4
  131. package/esm2020/component/button/button.module.mjs +5 -7
  132. package/esm2020/component/chart-3d/chart-3d.module.mjs +5 -5
  133. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +3 -3
  134. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +6 -6
  135. package/esm2020/component/checkbox/checkbox.module.mjs +6 -8
  136. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +16 -16
  137. package/esm2020/component/date-picker/date-picker.module.mjs +12 -14
  138. package/esm2020/component/date-picker/day-select/day-select.component.mjs +4 -4
  139. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +13 -13
  140. package/esm2020/component/date-picker/month-select/month-select.component.mjs +3 -3
  141. package/esm2020/component/date-picker/service/picker-touch.service.mjs +3 -3
  142. package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +5 -5
  143. package/esm2020/component/date-picker/year-select/year-select.component.mjs +3 -3
  144. package/esm2020/component/delimiter/delimiter/delimiter.component.mjs +3 -3
  145. package/esm2020/component/delimiter/delimiter.module.mjs +5 -7
  146. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +5 -5
  147. package/esm2020/component/dropdown/dropdown-base.mjs +3 -3
  148. package/esm2020/component/dropdown/dropdown-content.directive.mjs +3 -3
  149. package/esm2020/component/dropdown/dropdown-head.directive.mjs +3 -3
  150. package/esm2020/component/dropdown/dropdown.directive.mjs +3 -3
  151. package/esm2020/component/dropdown/dropdown.module.mjs +5 -7
  152. package/esm2020/component/dynamic-component/dynamic-component.module.mjs +5 -7
  153. package/esm2020/component/dynamic-component/popup-content/popup-content.component.mjs +4 -4
  154. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +10 -10
  155. package/esm2020/component/expand-card/expand-card.module.mjs +9 -11
  156. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +7 -7
  157. package/esm2020/component/expand-panel/expand-panel-content.directive.mjs +3 -3
  158. package/esm2020/component/expand-panel/expand-panel-head.directive.mjs +3 -3
  159. package/esm2020/component/expand-panel/expand-panel.module.mjs +9 -11
  160. package/esm2020/component/file-upload/file-item/file-item.component.mjs +4 -4
  161. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +13 -9
  162. package/esm2020/component/file-upload/file-upload.module.mjs +5 -5
  163. package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +7 -7
  164. package/esm2020/component/filter/date-filter/date-filter.component.mjs +8 -8
  165. package/esm2020/component/filter/filter-host/filter-host.component.mjs +5 -10
  166. package/esm2020/component/filter/filter.module.mjs +12 -14
  167. package/esm2020/component/filter/list-filter/list-filter.component.mjs +7 -7
  168. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +7 -7
  169. package/esm2020/component/filter/string-filter/string-filter.component.mjs +6 -6
  170. package/esm2020/component/icon/icon/icon.component.mjs +4 -4
  171. package/esm2020/component/icon/icon-sprite.directive.mjs +3 -3
  172. package/esm2020/component/icon/icon.module.mjs +6 -8
  173. package/esm2020/component/icon/icon.service.mjs +3 -3
  174. package/esm2020/component/input/form-group-title/form-group-title.component.mjs +4 -4
  175. package/esm2020/component/input/input/input.component.mjs +3 -3
  176. package/esm2020/component/input/input.module.mjs +5 -5
  177. package/esm2020/component/input/text-field/text-field.component.mjs +7 -7
  178. package/esm2020/component/message/message/message.component.mjs +6 -6
  179. package/esm2020/component/message/message-host/message-host.component.mjs +6 -6
  180. package/esm2020/component/message/message.module.mjs +7 -9
  181. package/esm2020/component/message/message.service.mjs +3 -3
  182. package/esm2020/component/modal/dialog/dialog.component.mjs +7 -7
  183. package/esm2020/component/modal/dialog.service.mjs +3 -3
  184. package/esm2020/component/modal/modal-container/modal-container.component.mjs +4 -4
  185. package/esm2020/component/modal/modal.module.mjs +10 -12
  186. package/esm2020/component/modal/modal.service.mjs +3 -3
  187. package/esm2020/component/pager/pager/pager.component.mjs +4 -4
  188. package/esm2020/component/pager/pager.module.mjs +6 -8
  189. package/esm2020/component/panel/panel/panel.component.mjs +4 -4
  190. package/esm2020/component/panel/panel.module.mjs +5 -7
  191. package/esm2020/component/progress-bar/progress-bar/progress-bar.component.mjs +4 -4
  192. package/esm2020/component/progress-bar/progress-bar.module.mjs +5 -7
  193. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +4 -4
  194. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +4 -4
  195. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +4 -4
  196. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +4 -4
  197. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +8 -8
  198. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +12 -12
  199. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +8 -8
  200. package/esm2020/component/property-grid/property-grid.module.mjs +16 -18
  201. package/esm2020/component/radio/radio/radio.component.mjs +4 -4
  202. package/esm2020/component/radio/radio-button/radio-button.component.mjs +4 -4
  203. package/esm2020/component/radio/radio.module.mjs +5 -5
  204. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +7 -7
  205. package/esm2020/component/resize-panel/resize-panel.module.mjs +5 -5
  206. package/esm2020/component/select/select/select.component.mjs +13 -13
  207. package/esm2020/component/select/select-option.directive.mjs +3 -3
  208. package/esm2020/component/select/select-value.directive.mjs +3 -3
  209. package/esm2020/component/select/select.module.mjs +11 -13
  210. package/esm2020/component/sidebar/sidebar/sidebar.component.mjs +5 -5
  211. package/esm2020/component/sidebar/sidebar.module.mjs +7 -9
  212. package/esm2020/component/switch/switch/switch.component.mjs +4 -4
  213. package/esm2020/component/switch/switch-button/switch-button.component.mjs +4 -4
  214. package/esm2020/component/switch/switch.module.mjs +5 -7
  215. package/esm2020/component/switch/switch.service.mjs +3 -3
  216. package/esm2020/component/table/base/cell-component-base.mjs +3 -3
  217. package/esm2020/component/table/base/head-cell-component-base.mjs +3 -3
  218. package/esm2020/component/table/cell/cell.component.mjs +4 -4
  219. package/esm2020/component/table/cell-host/cell-host.component.mjs +4 -4
  220. package/esm2020/component/table/contract/head-dropdown-tab.mjs +2 -0
  221. package/esm2020/component/table/contract/public-api.mjs +2 -1
  222. package/esm2020/component/table/contract/table-column.mjs +4 -2
  223. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +7 -7
  224. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +7 -7
  225. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +7 -7
  226. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +7 -7
  227. package/esm2020/component/table/default/group-row/group-row.component.mjs +4 -4
  228. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +7 -7
  229. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -4
  230. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +4 -4
  231. package/esm2020/component/table/head-cell/head-cell.component.mjs +63 -20
  232. package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +20 -183
  233. package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +3 -3
  234. package/esm2020/component/table/selection-cell/selection-cell.component.mjs +7 -7
  235. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -5
  236. package/esm2020/component/table/service/table.service.mjs +14 -5
  237. package/esm2020/component/table/table/table.component.mjs +15 -8
  238. package/esm2020/component/table/table-body/table-body.component.mjs +38 -34
  239. package/esm2020/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +55 -0
  240. package/esm2020/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +81 -0
  241. package/esm2020/component/table/table-head/table-head.component.mjs +25 -25
  242. package/esm2020/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +140 -0
  243. package/esm2020/component/table/table-head-group/table-head-group.component.mjs +7 -7
  244. package/esm2020/component/table/table.module.mjs +33 -26
  245. package/esm2020/component/tabs/tab/tab.component.mjs +4 -4
  246. package/esm2020/component/tabs/tab-content.directive.mjs +3 -3
  247. package/esm2020/component/tabs/tab-title.directive.mjs +3 -3
  248. package/esm2020/component/tabs/tabs/tabs.component.mjs +4 -4
  249. package/esm2020/component/tabs/tabs.module.mjs +5 -7
  250. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  251. package/esm2020/component/theme-switch/theme-switch.module.mjs +7 -9
  252. package/esm2020/component/theme-switch/theme-switch.service.mjs +3 -3
  253. package/esm2020/component/toggle/toggle/toggle.component.mjs +4 -4
  254. package/esm2020/component/toggle/toggle.module.mjs +5 -5
  255. package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +4 -4
  256. package/esm2020/component/toolbar/toolbar.module.mjs +5 -7
  257. package/esm2020/component/tree/tree/tree.component.mjs +6 -6
  258. package/esm2020/component/tree/tree-item/tree-item.component.mjs +5 -5
  259. package/esm2020/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +3 -3
  260. package/esm2020/component/tree/tree.module.mjs +5 -5
  261. package/esm2020/component/tree/tree.service.mjs +3 -3
  262. package/esm2020/directive/click-outside/click-outside.directive.mjs +3 -3
  263. package/esm2020/directive/click-outside/click-outside.module.mjs +5 -7
  264. package/esm2020/directive/context-menu/context-menu.directive.mjs +3 -3
  265. package/esm2020/directive/context-menu/context-menu.module.mjs +6 -8
  266. package/esm2020/directive/disable-control/disable-control.directive.mjs +3 -3
  267. package/esm2020/directive/disable-control/disable-control.module.mjs +5 -7
  268. package/esm2020/directive/drag-drop/drag-container.directive.mjs +3 -3
  269. package/esm2020/directive/drag-drop/drag-drop.module.mjs +5 -7
  270. package/esm2020/directive/drag-drop/drag-drop.service.mjs +3 -3
  271. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +3 -3
  272. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +3 -3
  273. package/esm2020/directive/drag-drop/drag.directive.mjs +3 -3
  274. package/esm2020/directive/drag-sort/drag-sort-container.directive.mjs +3 -3
  275. package/esm2020/directive/drag-sort/drag-sort-item.directive.mjs +3 -3
  276. package/esm2020/directive/drag-sort/drag-sort.module.mjs +5 -5
  277. package/esm2020/directive/dynamic-content-base.directive.mjs +3 -3
  278. package/esm2020/directive/highlight/highlight.directive.mjs +3 -3
  279. package/esm2020/directive/highlight/highlight.module.mjs +5 -7
  280. package/esm2020/directive/hint/hint.directive.mjs +3 -3
  281. package/esm2020/directive/hint/hint.module.mjs +6 -8
  282. package/esm2020/directive/let/let.directive.mjs +3 -3
  283. package/esm2020/directive/let/let.module.mjs +5 -7
  284. package/esm2020/directive/loader/loader.directive.mjs +3 -3
  285. package/esm2020/directive/loader/loader.module.mjs +5 -7
  286. package/esm2020/directive/no-autofill/no-autofill.directive.mjs +3 -3
  287. package/esm2020/directive/no-autofill/no-autofill.module.mjs +5 -5
  288. package/esm2020/directive/only-number/only-number.directive.mjs +3 -3
  289. package/esm2020/directive/only-number/only-number.module.mjs +5 -5
  290. package/esm2020/directive/public-api.mjs +2 -1
  291. package/esm2020/directive/resize-drag/resize-drag.directive.mjs +3 -3
  292. package/esm2020/directive/resize-drag/resize-drag.module.mjs +5 -5
  293. package/esm2020/directive/scroll-into-view/public-api.mjs +3 -0
  294. package/esm2020/directive/scroll-into-view/scroll-into-view.directive.mjs +40 -0
  295. package/esm2020/directive/scroll-into-view/scroll-into-view.module.mjs +23 -0
  296. package/esm2020/directive/teta-template/teta-template.directive.mjs +3 -3
  297. package/esm2020/directive/teta-template/teta-template.module.mjs +5 -7
  298. package/esm2020/directive/tooltip/tooltip.directive.mjs +3 -3
  299. package/esm2020/directive/tooltip/tooltip.module.mjs +5 -5
  300. package/esm2020/locale/teta-config.service.mjs +3 -3
  301. package/esm2020/pipe/number-pipe/number-pipe.module.mjs +5 -7
  302. package/esm2020/pipe/number-pipe/number.pipe.mjs +3 -3
  303. package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +5 -5
  304. package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +3 -3
  305. package/esm2020/util/forms-util.mjs +6 -6
  306. package/fesm2015/tetacom-ng-components.mjs +1534 -1382
  307. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  308. package/fesm2020/tetacom-ng-components.mjs +1531 -1383
  309. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  310. package/{tetacom-ng-components.d.ts → index.d.ts} +0 -0
  311. package/package.json +3 -3
  312. package/pipe/number-pipe/number.pipe.d.ts +1 -1
  313. package/pipe/prepend-zero/prepend-zero.pipe.d.ts +1 -1
  314. package/style/layout.scss +2 -1
  315. package/style/presets/color-presets.scss +58 -52
  316. package/style/table.scss +14 -1
  317. package/util/forms-util.d.ts +5 -5
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/
2
2
  import { CellComponentBase } from '../../base/cell-component-base';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../service/table.service";
5
- import * as i2 from "../../../checkbox/checkbox/checkbox.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../../../checkbox/checkbox/checkbox.component";
8
8
  export class BooleanCellComponent extends CellComponentBase {
9
9
  constructor(svc, cdr) {
10
10
  super(svc, cdr);
@@ -29,11 +29,11 @@ export class BooleanCellComponent extends CellComponentBase {
29
29
  this.cdr.markForCheck();
30
30
  }
31
31
  }
32
- BooleanCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BooleanCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
33
- BooleanCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: BooleanCellComponent, selector: "teta-boolean-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ row.data[column.name] }}\n</span>\n<teta-checkbox\n #input\n *ngIf=\"edit\"\n [binary]=\"true\"\n [(ngModel)]=\"row.data[column.name]\"\n (blur)=\"setValue()\"\n></teta-checkbox>\n", styles: [""], components: [{ type: i2.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BooleanCellComponent, decorators: [{
32
+ BooleanCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BooleanCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
33
+ BooleanCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: BooleanCellComponent, selector: "teta-boolean-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ row.data[column.name] }}\n</span>\n<teta-checkbox\n #input\n *ngIf=\"edit\"\n [binary]=\"true\"\n [(ngModel)]=\"row.data[column.name]\"\n (blur)=\"setValue()\"\n></teta-checkbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BooleanCellComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ row.data[column.name] }}\n</span>\n<teta-checkbox\n #input\n *ngIf=\"edit\"\n [binary]=\"true\"\n [(ngModel)]=\"row.data[column.name]\"\n (blur)=\"setValue()\"\n></teta-checkbox>\n", styles: [""] }]
36
+ args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ row.data[column.name] }}\n</span>\n<teta-checkbox\n #input\n *ngIf=\"edit\"\n [binary]=\"true\"\n [(ngModel)]=\"row.data[column.name]\"\n (blur)=\"setValue()\"\n></teta-checkbox>\n" }]
37
37
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
38
38
  type: Input
39
39
  }], row: [{
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/
2
2
  import { CellComponentBase } from '../../base/cell-component-base';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../service/table.service";
5
- import * as i2 from "../../../date-picker/date-picker/date-picker.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../../../date-picker/date-picker/date-picker.component";
8
8
  export class DateCellComponent extends CellComponentBase {
9
9
  constructor(svc, cdr) {
10
10
  super(svc, cdr);
@@ -31,11 +31,11 @@ export class DateCellComponent extends CellComponentBase {
31
31
  this.cdr.markForCheck();
32
32
  }
33
33
  }
34
- DateCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DateCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
- DateCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DateCellComponent, selector: "teta-date-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy'}}\n</span>\n<teta-date-picker class=\"datepicker-table\"\n #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""], components: [{ type: i2.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i3.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DateCellComponent, decorators: [{
34
+ DateCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DateCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
+ DateCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DateCellComponent, selector: "teta-date-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy'}}\n</span>\n<teta-date-picker class=\"datepicker-table\"\n #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DateCellComponent, decorators: [{
37
37
  type: Component,
38
- args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy'}}\n</span>\n<teta-date-picker class=\"datepicker-table\"\n #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""] }]
38
+ args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy'}}\n</span>\n<teta-date-picker class=\"datepicker-table\"\n #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n" }]
39
39
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
40
40
  type: Input
41
41
  }], row: [{
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/
2
2
  import { CellComponentBase } from '../../base/cell-component-base';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../service/table.service";
5
- import * as i2 from "../../../date-picker/date-picker/date-picker.component";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../../../date-picker/date-picker/date-picker.component";
8
8
  export class DateTimeCellComponent extends CellComponentBase {
9
9
  constructor(svc, cdr) {
10
10
  super(svc, cdr);
@@ -30,11 +30,11 @@ export class DateTimeCellComponent extends CellComponentBase {
30
30
  this.cdr.markForCheck();
31
31
  }
32
32
  }
33
- DateTimeCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DateTimeCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
34
- DateTimeCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DateTimeCellComponent, selector: "teta-date-time-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n<teta-date-picker class=\"datepicker-table\" #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""], components: [{ type: i2.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i3.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DateTimeCellComponent, decorators: [{
33
+ DateTimeCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DateTimeCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
34
+ DateTimeCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DateTimeCellComponent, selector: "teta-date-time-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n<teta-date-picker class=\"datepicker-table\" #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DateTimeCellComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n<teta-date-picker class=\"datepicker-table\" #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n", styles: [""] }]
37
+ args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n<teta-date-picker class=\"datepicker-table\" #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n" }]
38
38
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
39
39
  type: Input
40
40
  }], row: [{
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
2
  import { HeadCellComponentBase } from '../../base/head-cell-component-base';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../../../../directive/hint/hint.directive";
5
- import * as i2 from "@angular/common";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../../../directive/hint/hint.directive";
6
6
  export class DefaultHeadCellComponent extends HeadCellComponentBase {
7
7
  constructor(_cdr) {
8
8
  super();
@@ -25,14 +25,14 @@ export class DefaultHeadCellComponent extends HeadCellComponentBase {
25
25
  ngOnInit() {
26
26
  }
27
27
  }
28
- DefaultHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
29
- DefaultHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DefaultHeadCellComponent, selector: "teta-default-head-cell", inputs: { column: "column", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"], directives: [{ type: i1.HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
28
+ DefaultHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
29
+ DefaultHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DefaultHeadCellComponent, selector: "teta-default-head-cell", inputs: { column: "column", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text font-caption\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"] }]
32
+ args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text font-caption\" style=\"overflow: visible;\">\n [{{column.unit}}]\n </div>\n</div>\n", styles: [":host{align-items:center;justify-content:center;display:flex;min-width:0;padding:6px 8px}\n"] }]
33
33
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
34
34
  type: Input
35
35
  }], data: [{
36
36
  type: Input
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9kZWZhdWx0L2RlZmF1bHQtaGVhZC1jZWxsL2RlZmF1bHQtaGVhZC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvZGVmYXVsdC9kZWZhdWx0LWhlYWQtY2VsbC9kZWZhdWx0LWhlYWQtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFVMUUsTUFBTSxPQUFPLHdCQUNYLFNBQVEscUJBQXdCO0lBeUJoQyxZQUFvQixJQUF1QjtRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQW1CO0lBRTNDLENBQUM7SUF0QkQsSUFDSSxNQUFNLENBQUMsR0FBZ0I7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxJQUFtQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQU1ELFFBQVE7SUFDUixDQUFDOztxSEEvQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUlDakJyQyxxU0FRQTsyRkRTYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNO3dHQVMzQyxNQUFNO3NCQURULEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIZWFkQ2VsbENvbXBvbmVudEJhc2V9IGZyb20gJy4uLy4uL2Jhc2UvaGVhZC1jZWxsLWNvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1RhYmxlUm93fSBmcm9tICcuLi8uLi9jb250cmFjdC90YWJsZS1yb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRlZmF1bHQtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtaGVhZC1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRIZWFkQ2VsbENvbXBvbmVudDxUPlxuICBleHRlbmRzIEhlYWRDZWxsQ29tcG9uZW50QmFzZTxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2NvbHVtbjogVGFibGVDb2x1bW47XG4gIHByaXZhdGUgX2RhdGE6IFRhYmxlUm93PFQ+W107XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbHVtbih2YWw6IFRhYmxlQ29sdW1uKSB7XG4gICAgdGhpcy5fY29sdW1uID0gdmFsO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgY29sdW1uKCk6IFRhYmxlQ29sdW1uIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGEoZGF0YTogVGFibGVSb3c8VD5bXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgZGF0YSgpOiBUYWJsZVJvdzxUPltdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG9cIiBbdGV0YUhpbnRdPVwiY29sdW1uLmhpbnQgfHwgY29sdW1uLmNhcHRpb25cIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3RleHRcIj5cbiAgICB7e2NvbHVtbi5jYXB0aW9ufX1cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjb2x1bW4udW5pdFwiIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fdGV4dFwiIHN0eWxlPVwib3ZlcmZsb3c6IHZpc2libGU7XCI+XG4gICAgW3t7Y29sdW1uLnVuaXR9fV1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC90YWJsZS9kZWZhdWx0L2RlZmF1bHQtaGVhZC1jZWxsL2RlZmF1bHQtaGVhZC1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvZGVmYXVsdC9kZWZhdWx0LWhlYWQtY2VsbC9kZWZhdWx0LWhlYWQtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFVMUUsTUFBTSxPQUFPLHdCQUNYLFNBQVEscUJBQXdCO0lBeUJoQyxZQUFvQixJQUF1QjtRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQW1CO0lBRTNDLENBQUM7SUF0QkQsSUFDSSxNQUFNLENBQUMsR0FBZ0I7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxJQUFtQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQU1ELFFBQVE7SUFDUixDQUFDOztxSEEvQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUlDakJyQyxrVEFRQTsyRkRTYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNO3dHQVMzQyxNQUFNO3NCQURULEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIZWFkQ2VsbENvbXBvbmVudEJhc2V9IGZyb20gJy4uLy4uL2Jhc2UvaGVhZC1jZWxsLWNvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1RhYmxlUm93fSBmcm9tICcuLi8uLi9jb250cmFjdC90YWJsZS1yb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRlZmF1bHQtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtaGVhZC1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRIZWFkQ2VsbENvbXBvbmVudDxUPlxuICBleHRlbmRzIEhlYWRDZWxsQ29tcG9uZW50QmFzZTxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2NvbHVtbjogVGFibGVDb2x1bW47XG4gIHByaXZhdGUgX2RhdGE6IFRhYmxlUm93PFQ+W107XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbHVtbih2YWw6IFRhYmxlQ29sdW1uKSB7XG4gICAgdGhpcy5fY29sdW1uID0gdmFsO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgY29sdW1uKCk6IFRhYmxlQ29sdW1uIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGEoZGF0YTogVGFibGVSb3c8VD5bXSkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgZGF0YSgpOiBUYWJsZVJvdzxUPltdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG9cIiBbdGV0YUhpbnRdPVwiY29sdW1uLmhpbnQgfHwgY29sdW1uLmNhcHRpb25cIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3RleHRcIj5cbiAgICB7e2NvbHVtbi5jYXB0aW9ufX1cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjb2x1bW4udW5pdFwiIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fdGV4dCBmb250LWNhcHRpb25cIiBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlO1wiPlxuICAgIFt7e2NvbHVtbi51bml0fX1dXG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -7,11 +7,11 @@ export class GroupRowComponent extends GroupRowComponentBase {
7
7
  }
8
8
  ngOnInit() { }
9
9
  }
10
- GroupRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GroupRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- GroupRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: GroupRowComponent, selector: "teta-group-row", inputs: { row: "row", columns: "columns" }, usesInheritance: true, ngImport: i0, template: "<span>{{row.groupValue[row.level]}} ()</span>\n<!--<span>{{row.groupValue[row.level]}} ({{row.children.length}})</span>-->\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GroupRowComponent, decorators: [{
10
+ GroupRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: GroupRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ GroupRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: GroupRowComponent, selector: "teta-group-row", inputs: { row: "row", columns: "columns" }, usesInheritance: true, ngImport: i0, template: "<span>{{row.groupValue[row.level]}} ()</span>\n<!--<span>{{row.groupValue[row.level]}} ({{row.children.length}})</span>-->\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: GroupRowComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'teta-group-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span>{{row.groupValue[row.level]}} ()</span>\n<!--<span>{{row.groupValue[row.level]}} ({{row.children.length}})</span>-->\n", styles: [""] }]
14
+ args: [{ selector: 'teta-group-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span>{{row.groupValue[row.level]}} ()</span>\n<!--<span>{{row.groupValue[row.level]}} ({{row.children.length}})</span>-->\n" }]
15
15
  }], ctorParameters: function () { return []; }, propDecorators: { row: [{
16
16
  type: Input
17
17
  }], columns: [{
@@ -3,9 +3,9 @@ import { CellComponentBase } from '../../base/cell-component-base';
3
3
  import { VerticalAlign } from '../../../../common/enum/vertical-align.enum';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../service/table.service";
6
- import * as i2 from "../../../select/select/select.component";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "../../../select/select/select.component";
9
9
  export class ListCellComponent extends CellComponentBase {
10
10
  constructor(svc, cdr) {
11
11
  super(svc, cdr);
@@ -58,11 +58,11 @@ export class ListCellComponent extends CellComponentBase {
58
58
  return item.name;
59
59
  }
60
60
  }
61
- ListCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ListCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
- ListCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: ListCellComponent, selector: "teta-list-cell", inputs: { column: "column", row: "row", filterOptions: "filterOptions" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{value}}\n</span>\n<teta-select #input\n class=\"row_auto select-table\"\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\">\n</teta-select>\n", styles: [""], components: [{ type: i2.SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ListCellComponent, decorators: [{
61
+ ListCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
+ ListCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListCellComponent, selector: "teta-list-cell", inputs: { column: "column", row: "row", filterOptions: "filterOptions" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{value}}\n</span>\n<teta-select #input\n class=\"row_auto select-table\"\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\">\n</teta-select>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListCellComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{value}}\n</span>\n<teta-select #input\n class=\"row_auto select-table\"\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\">\n</teta-select>\n", styles: [""] }]
65
+ args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{value}}\n</span>\n<teta-select #input\n class=\"row_auto select-table\"\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"setValue($event)\">\n</teta-select>\n" }]
66
66
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
67
67
  type: Input
68
68
  }], row: [{
@@ -35,11 +35,11 @@ export class NumericCellComponent extends CellComponentBase {
35
35
  this.cdr.markForCheck();
36
36
  }
37
37
  }
38
- NumericCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NumericCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
- NumericCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: NumericCellComponent, selector: "teta-numeric-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | tetaNumber : 2}}\n</span>\n<input #input\n *ngIf=\"edit\"\n tetaOnlyNumber\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event;\"/>\n", styles: [""], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "tetaNumber": i5.NumberPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: NumericCellComponent, decorators: [{
38
+ NumericCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NumericCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
+ NumericCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NumericCellComponent, selector: "teta-numeric-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | tetaNumber : 2}}\n</span>\n<input #input\n *ngIf=\"edit\"\n tetaOnlyNumber\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event;\"/>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator"] }, { kind: "pipe", type: i5.NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NumericCellComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | tetaNumber : 2}}\n</span>\n<input #input\n *ngIf=\"edit\"\n tetaOnlyNumber\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event;\"/>\n", styles: [""] }]
42
+ args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name] | tetaNumber : 2}}\n</span>\n<input #input\n *ngIf=\"edit\"\n tetaOnlyNumber\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event;\"/>\n" }]
43
43
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
44
44
  type: Input
45
45
  }], row: [{
@@ -35,11 +35,11 @@ export class StringCellComponent extends CellComponentBase {
35
35
  this.cdr.detectChanges();
36
36
  }
37
37
  }
38
- StringCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: StringCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
- StringCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: StringCellComponent, selector: "teta-string-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name]}}\n</span>\n<input #input\n *ngIf=\"edit\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event\"/>\n\n", styles: [""], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: StringCellComponent, decorators: [{
38
+ StringCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StringCellComponent, deps: [{ token: i1.TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
39
+ StringCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: StringCellComponent, selector: "teta-string-cell", inputs: { column: "column", row: "row" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name]}}\n</span>\n<input #input\n *ngIf=\"edit\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event\"/>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StringCellComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name]}}\n</span>\n<input #input\n *ngIf=\"edit\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event\"/>\n\n", styles: [""] }]
42
+ args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row.data[column.name]}}\n</span>\n<input #input\n *ngIf=\"edit\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row.data[column.name]\"\n (ngModelChange)=\"row.data[column.name]=$event\"/>\n\n" }]
43
43
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { column: [{
44
44
  type: Input
45
45
  }], row: [{
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, ViewChild, } from '@angular/core';
2
2
  import { ColumnResizeEvent } from '../contract/column-resize-event';
3
3
  import { map } from 'rxjs/operators';
4
4
  import { StateUtil } from '../util/state-util';
@@ -7,14 +7,17 @@ import { Align } from '../../../common/enum/align.enum';
7
7
  import { combineLatest } from 'rxjs';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../service/table.service";
10
- import * as i2 from "../../dropdown/dropdown/dropdown.component";
11
- import * as i3 from "../head-cell-host/head-cell-host.component";
12
- import * as i4 from "../../icon/icon/icon.component";
13
- import * as i5 from "../head-cell-dropdown/head-cell-dropdown.component";
14
- import * as i6 from "../../dropdown/dropdown-head.directive";
15
- import * as i7 from "@angular/common";
16
- import * as i8 from "../../dropdown/dropdown-content.directive";
17
- import * as i9 from "../../../directive/resize-drag/resize-drag.directive";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "../../icon/icon/icon.component";
12
+ import * as i4 from "../../dropdown/dropdown/dropdown.component";
13
+ import * as i5 from "../../dropdown/dropdown-head.directive";
14
+ import * as i6 from "../../dropdown/dropdown-content.directive";
15
+ import * as i7 from "../../../directive/resize-drag/resize-drag.directive";
16
+ import * as i8 from "../head-cell-host/head-cell-host.component";
17
+ import * as i9 from "../head-cell-dropdown/head-cell-dropdown.component";
18
+ import * as i10 from "../table-head/main-dropdown-tab/main-dropdown-tab.component";
19
+ import * as i11 from "../table-head/filter-dropdown-tab/filter-dropdown-tab.component";
20
+ import * as i12 from "../table-head/visibility-dropdown-tab/visibility-dropdown-tab.component";
18
21
  export class HeadCellComponent {
19
22
  constructor(_svc, _app, _elementRef) {
20
23
  this._svc = _svc;
@@ -25,6 +28,36 @@ export class HeadCellComponent {
25
28
  this.showDrag = null;
26
29
  this._alive = true;
27
30
  }
31
+ get defaultTemplates() {
32
+ return [
33
+ {
34
+ icon: 'menu',
35
+ template: this.mainTemplate,
36
+ order: 10,
37
+ showTab: () => true,
38
+ }, {
39
+ icon: 'filter',
40
+ template: this.filterTemplate,
41
+ order: 20,
42
+ showTab: (column) => column.filterable,
43
+ }, {
44
+ icon: 'eye',
45
+ template: this.columnsTemplate,
46
+ order: 30,
47
+ showTab: () => true,
48
+ }
49
+ ];
50
+ }
51
+ get tabTemplates() {
52
+ if (this.column?.headDropdownConfig && this.column.headDropdownConfig.tabs?.length > 0) {
53
+ if (this.column.headDropdownConfig.strategy === 'replace') {
54
+ return this.column.headDropdownConfig.tabs;
55
+ }
56
+ return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs]
57
+ .sort((a, b) => a.order - b.order);
58
+ }
59
+ return this.defaultTemplates;
60
+ }
28
61
  dragstart(event) {
29
62
  if (event && event.dataTransfer) {
30
63
  event.dataTransfer.setData('text', 'move');
@@ -77,12 +110,13 @@ export class HeadCellComponent {
77
110
  ngOnDestroy() {
78
111
  this._alive = false;
79
112
  }
80
- autosizeColumn() {
81
- this._svc.autosizeColumn(this.column, this._elementRef.nativeElement);
82
- }
83
- autosizeAllColumns() {
84
- this._svc.autosizeAllColumns(this._elementRef.nativeElement);
85
- }
113
+ // autosizeColumn() {
114
+ // this._svc.autosizeColumn(this.column, this._elementRef.nativeElement);
115
+ // }
116
+ //
117
+ // autosizeAllColumns() {
118
+ // this._svc.autosizeAllColumns(this._elementRef.nativeElement);
119
+ // }
86
120
  resizeStart(event) {
87
121
  const rect = this._elementRef.nativeElement.getBoundingClientRect();
88
122
  this._startPosition = rect.x;
@@ -100,11 +134,11 @@ export class HeadCellComponent {
100
134
  this._startPosition = null;
101
135
  }
102
136
  }
103
- HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
104
- HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n (autosize)=\"autosizeColumn()\"\n (autosizeAll)=\"autosizeAllColumns()\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"></div>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], components: [{ type: i2.DropdownComponent, selector: "teta-dropdown" }, { type: i3.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "data"] }, { type: i4.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i5.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "dropDownOpen"], outputs: ["dropDownOpenChange", "autosize", "autosizeAll"] }], directives: [{ type: i6.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i9.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellComponent, decorators: [{
137
+ HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
138
+ HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i5.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i6.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i7.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: i8.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "data"] }, { kind: "component", type: i9.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: i10.MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i11.FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i12.VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: HeadCellComponent, decorators: [{
106
140
  type: Component,
107
- args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n (autosize)=\"autosizeColumn()\"\n (autosizeAll)=\"autosizeAllColumns()\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"></div>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
141
+ args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
108
142
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }]; }, propDecorators: { column: [{
109
143
  type: Input
110
144
  }], showHeadCellMenu: [{
@@ -114,6 +148,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
114
148
  }], dropDownOpen: [{
115
149
  type: HostBinding,
116
150
  args: ['class.table-head__cell_active']
151
+ }], mainTemplate: [{
152
+ type: ViewChild,
153
+ args: ['mainTemplate', { static: true }]
154
+ }], filterTemplate: [{
155
+ type: ViewChild,
156
+ args: ['filterTemplate', { static: true }]
157
+ }], columnsTemplate: [{
158
+ type: ViewChild,
159
+ args: ['columnsTemplate', { static: true }]
117
160
  }], dragstart: [{
118
161
  type: HostListener,
119
162
  args: ['dragstart', ['$event']]
@@ -133,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
133
176
  type: HostListener,
134
177
  args: ['drop', ['$event']]
135
178
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBb0I1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBbEJqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQVF0QixDQUFDO0lBRXNDLFNBQVMsQ0FBQyxLQUFnQjtRQUMvRCxJQUFJLEtBQUssSUFBSSxLQUFL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RUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7OzhHQXhIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixvYUM1QjlCLHc3REF3Q0E7MkZEWmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNO3lKQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQWVMLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9FLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlDLFNBQVM7c0JBQTlDLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFHLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtBLE9BQU87c0JBQTNDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlELElBQUk7c0JBQXJDLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVFdmVudH0gZnJvbSAnLi4vY29udHJhY3QvY29sdW1uLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7VGFibGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydFBhcmFtfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQge1N0YXRlVXRpbH0gZnJvbSAnLi4vdXRpbC9zdGF0ZS11dGlsJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RhYmxlUm93fSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1yb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRDZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBzaG93SGVhZENlbGxNZW51OiBib29sZWFuO1xuICBASW5wdXQoKSBkYXRhOiBUYWJsZVJvdzxUPltdO1xuXG4gIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduO1xuICBhbGlnbiA9IEFsaWduO1xuICBzdGF0ZTogT2JzZXJ2YWJsZTxGaWx0ZXJTdGF0ZT47XG4gIGNvbHVtbnM6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT47XG4gIGZpbHRlcmVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzb3J0UGFyYW06IE9ic2VydmFibGU8U29ydFBhcmFtPjtcbiAgaWNvbk5hbWU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWJsZS1oZWFkX19jZWxsX2FjdGl2ZScpXG4gIGRyb3BEb3duT3BlbjogYm9vbGVhbjtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBfYXBwOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSkgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIGF1dG9zaXplQ29sdW1uKCkge1xuICAgIHRoaXMuX3N2Yy5hdXRvc2l6ZUNvbHVtbih0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIGF1dG9zaXplQWxsQ29sdW1ucygpIHtcbiAgICB0aGlzLl9zdmMuYXV0b3NpemVBbGxDb2x1bW5zKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHRoaXMuX3N0YXJ0UG9zaXRpb24pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2FwcC50aWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNpemVFbmQoKSB7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgZHJhZ2dhYmxlPVwidHJ1ZVwiIGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlciddXCJcbiAgICAgICAgICAgICAgICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5ib3R0b21cIlxuICAgICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbKG9wZW4pXT1cImRyb3BEb3duT3BlblwiXG4gICAgICAgICAgICAgICAgIFthbGlnbl09XCJhbGlnbi5sZWZ0XCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnRhYmxlLWhlYWRfX2NlbGxfX21lbnVfb3Blbl09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBjb2x1bW5fYXV0byBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fd3JhcHBlclwiXG4gICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgPHRldGEtaWNvbiAqbmdJZj1cImljb25OYW1lIHwgYXN5bmMgYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIj48L3RldGEtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWFkQ2VsbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXV0b3NpemUpPVwiYXV0b3NpemVDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhdXRvc2l6ZUFsbCk9XCJhdXRvc2l6ZUFsbENvbHVtbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICAgICAqbmdJZj1cInNob3dEcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVcIlxuICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgIChkcmFnc3RhcnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoJGV2ZW50KVwiXG4gICAgIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIj48L2Rpdj5cbiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVUvQyxNQUFNLE9BQU8saUJBQWlCO0lBeUQ1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBdkRqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQTZDdEIsQ0FBQztJQXRDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lB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Qzs7OEdBN0pVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG93QkM3QjlCLDZnR0E0REE7MkZEL0JhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTt5SkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBVU4sWUFBWTtzQkFEWCxXQUFXO3VCQUFDLCtCQUErQjtnQkFRRCxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0ksY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0csZUFBZTtzQkFBNUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBMENMLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9FLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlDLFNBQVM7c0JBQTlDLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFHLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtBLE9BQU87c0JBQTNDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlELElBQUk7c0JBQXJDLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVFdmVudH0gZnJvbSAnLi4vY29udHJhY3QvY29sdW1uLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7VGFibGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydFBhcmFtfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQge1N0YXRlVXRpbH0gZnJvbSAnLi4vdXRpbC9zdGF0ZS11dGlsJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RhYmxlUm93fSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1yb3cnO1xuaW1wb3J0IHtIZWFkRHJvcGRvd25UYWIsIEhlYWREcm9wZG93blRhYkNvbmZpZ30gZnJvbSAnLi4vY29udHJhY3QvaGVhZC1kcm9wZG93bi10YWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRDZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBzaG93SGVhZENlbGxNZW51OiBib29sZWFuO1xuICBASW5wdXQoKSBkYXRhOiBUYWJsZVJvdzxUPltdO1xuXG4gIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduO1xuICBhbGlnbiA9IEFsaWduO1xuICBzdGF0ZTogT2JzZXJ2YWJsZTxGaWx0ZXJTdGF0ZT47XG4gIGNvbHVtbnM6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT47XG4gIGZpbHRlcmVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzb3J0UGFyYW06IE9ic2VydmFibGU8U29ydFBhcmFtPjtcbiAgaWNvbk5hbWU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWJsZS1oZWFkX19jZWxsX2FjdGl2ZScpXG4gIGRyb3BEb3duT3BlbjogYm9vbGVhbjtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnbWFpblRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRlZmF1bHRUZW1wbGF0ZXMoKTogSGVhZERyb3Bkb3duVGFiW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICdtZW51JyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMubWFpblRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2V5ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbnNUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDMwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXQgdGFiVGVtcGxhdGVzKCkge1xuICAgIGlmICh0aGlzLmNvbHVtbj8uaGVhZERyb3Bkb3duQ29uZmlnICYmIHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy50YWJzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnN0cmF0ZWd5ID09PSAncmVwbGFjZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy50YWJzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi50aGlzLmRlZmF1bHRUZW1wbGF0ZXMsIC4uLnRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy50YWJzXVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlZmF1bHRUZW1wbGF0ZXM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICBwcml2YXRlIF9hcHA6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKSBkcmFnc3RhcnQoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCAmJiBldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgJ21vdmUnKTtcbiAgICB9XG4gICAgdGhpcy5fc3ZjLmRyYWdTdGFydCh0aGlzLmNvbHVtbik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKSBkcmFnZW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSkgYWxsb3dEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLnJlY3QgJiYgdGhpcy5fc3ZjLmRyYWdTb3VyY2UpIHtcbiAgICAgIHRoaXMuc2hvd0RyYWcgPVxuICAgICAgICBldmVudC5jbGllbnRYID49IHRoaXMucmVjdC54ICsgdGhpcy5yZWN0LndpZHRoIC8gMiA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSkgZHJhZ2xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pIGRyYWdlbmQoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIGRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG1vdmUgPSBldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKTtcbiAgICBpZiAobW92ZSA9PT0gJ21vdmUnKSB7XG4gICAgICB0aGlzLl9zdmMucmVvcmRlckNvbHVtbih0aGlzLmNvbHVtbiwgdGhpcy5zaG93RHJhZyA9PT0gJ2xlZnQnKTtcbiAgICB9XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLl9zdmMuY29sdW1ucztcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5fc3ZjLnN0YXRlO1xuICAgIHRoaXMuc29ydFBhcmFtID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuZ2V0U29ydFN0YXRlKF8sIHRoaXMuY29sdW1uKSlcbiAgICApO1xuICAgIHRoaXMuZmlsdGVyZWQgPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IFN0YXRlVXRpbC5pc0NvbHVtbkZpbHRlcmVkKF8sIHRoaXMuY29sdW1uKSlcbiAgICApO1xuICAgIHRoaXMuaWNvbk5hbWUgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNvcnRQYXJhbSwgdGhpcy5maWx0ZXJlZF0pLnBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtTb3J0UGFyYW0sIGJvb2xlYW5dKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzb3J0UGFyYW0sIGZpbHRlcmVkXSA9IGRhdGE7XG4gICAgICAgIGlmIChzb3J0UGFyYW0gJiYgZmlsdGVyZWQpIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdmaWx0ZXJTb3J0VXBDb2xvcicgOiAnZmlsdGVyU29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvcnRQYXJhbSkge1xuICAgICAgICAgIHJldHVybiBzb3J0UGFyYW0uYXNjID8gJ3NvcnRVcENvbG9yJyA6ICdzb3J0RG93bkNvbG9yJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyZWQpIHtcbiAgICAgICAgICByZXR1cm4gJ2ZpbHRlckNvbG9yJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgLy8gYXV0b3NpemVDb2x1bW4oKSB7XG4gIC8vICAgdGhpcy5fc3ZjLmF1dG9zaXplQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAvLyB9XG4gIC8vXG4gIC8vIGF1dG9zaXplQWxsQ29sdW1ucygpIHtcbiAgLy8gICB0aGlzLl9zdmMuYXV0b3NpemVBbGxDb2x1bW5zKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIC8vIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHRoaXMuX3N0YXJ0UG9zaXRpb24pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2FwcC50aWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNpemVFbmQoKSB7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgZHJhZ2dhYmxlPVwidHJ1ZVwiIGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ24uYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgIFsob3BlbildPVwiZHJvcERvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgW2FsaWduXT1cImFsaWduLmxlZnRcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgICBbY2xhc3MudGFibGUtaGVhZF9fY2VsbF9fbWVudV9vcGVuXT1cImRyb3BEb3duT3BlblwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uIGNvbHVtbl9hdXRvIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8ZGl2IHRldGFEcm9wZG93bkhlYWQgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX193cmFwcGVyXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5oZWFkQ2VsbENsYXNzXCI+XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtaG9zdCBbY29sdW1uXT1cImNvbHVtblwiIFtkYXRhXT1cImRhdGFcIj48L3RldGEtaGVhZC1jZWxsLWhvc3Q+XG4gICAgICA8dGV0YS1pY29uICpuZ0lmPVwiaWNvbk5hbWUgfCBhc3luYyBhcyBpY29uXCJcbiAgICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgW25hbWVdPVwiaWNvblwiPjwvdGV0YS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDx0ZXRhLWhlYWQtY2VsbC1kcm9wZG93biB0ZXRhRHJvcGRvd25Db250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0hlYWRDZWxsTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJUZW1wbGF0ZXNdPVwidGFiVGVtcGxhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGRyb3BEb3duT3BlbildPVwiZHJvcERvd25PcGVuXCI+PC90ZXRhLWhlYWQtY2VsbC1kcm9wZG93bj5cbiAgPC90ZXRhLWRyb3Bkb3duPlxuICA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhXCJcbiAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgW2NsYXNzLmRyb3AtYXJlYV9sZWZ0XT1cInNob3dEcmFnID09PSAnbGVmdCdcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfcmlnaHRdPVwic2hvd0RyYWcgPT09ICdyaWdodCdcIlxuICAgICAgICpuZ0lmPVwic2hvd0RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZVwiXG4gICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgKGRyYWdzdGFydCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAoZHJhZyk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICBbdGV0YVJlc2l6ZURyYWddPVwiJ3ZlcnRpY2FsJ1wiXG4gICAgIChyZXNpemVTdGFydCk9XCJyZXNpemVTdGFydCgkZXZlbnQpXCJcbiAgICAgKHJlc2l6ZVByb2Nlc3MpPVwicmVzaXplUHJvY2VzcygkZXZlbnQpXCJcbiAgICAgKHJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplX2RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNtYWluVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS1tYWluLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiIFtzdGF0ZV09XCJzdGF0ZVwiIFtjbG9zZV09XCJjbG9zZVwiPjwvdGV0YS1tYWluLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtZmlsdGVyLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIj48L3RldGEtZmlsdGVyLWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbHVtbnNUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbG9zZV09XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIj48L3RldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuIl19