@tetacom/ng-components 1.0.22 → 1.0.26

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 (356) hide show
  1. package/.browserslistrc +16 -0
  2. package/component/chart/core/axis-creator.d.ts +2 -1
  3. package/component/chart/model/enum/scale-type.d.ts +2 -1
  4. package/component/chart/model/series.d.ts +2 -2
  5. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +2 -0
  6. package/component/property-grid/property-grid.module.d.ts +2 -1
  7. package/component/table/contract/table-column.d.ts +9 -2
  8. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +2 -1
  9. package/component/table/service/table.service.d.ts +0 -1
  10. package/component/table/table/table.component.d.ts +1 -2
  11. package/esm2020/common/contract/auto-close-ignore-case.mjs +1 -1
  12. package/esm2020/common/contract/constructor-type.mjs +1 -1
  13. package/esm2020/common/contract/dynamic-data.mjs +1 -1
  14. package/esm2020/common/contract/i-dictionary.mjs +1 -1
  15. package/esm2020/common/contract/i-id-name.mjs +1 -1
  16. package/esm2020/common/contract/i-rect.mjs +1 -1
  17. package/esm2020/common/contract/i-tree-data.mjs +1 -1
  18. package/esm2020/common/contract/public-api.mjs +1 -1
  19. package/esm2020/common/contract/teta-content-ref.mjs +1 -1
  20. package/esm2020/common/enum/align.enum.mjs +1 -1
  21. package/esm2020/common/enum/public-api.mjs +1 -1
  22. package/esm2020/common/enum/teta-size.enum.mjs +1 -1
  23. package/esm2020/common/enum/vertical-align.enum.mjs +1 -1
  24. package/esm2020/common/public-api.mjs +1 -1
  25. package/esm2020/common/service/click.service.mjs +1 -1
  26. package/esm2020/common/service/dynamic-component.service.mjs +1 -1
  27. package/esm2020/common/service/overlay-container.service.mjs +1 -1
  28. package/esm2020/common/service/public-api.mjs +1 -1
  29. package/esm2020/common/util/array-util.mjs +1 -1
  30. package/esm2020/common/util/dom-util.mjs +1 -1
  31. package/esm2020/common/util/position-util.mjs +1 -1
  32. package/esm2020/common/util/public-api.mjs +1 -1
  33. package/esm2020/component/accordion/accordion/accordion.component.mjs +1 -1
  34. package/esm2020/component/accordion/accordion-content.directive.mjs +1 -1
  35. package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +1 -1
  36. package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +1 -1
  37. package/esm2020/component/accordion/accordion.module.mjs +1 -1
  38. package/esm2020/component/accordion/public-api.mjs +1 -1
  39. package/esm2020/component/button/button/button.component.mjs +1 -1
  40. package/esm2020/component/button/button.module.mjs +1 -1
  41. package/esm2020/component/button/public-api.mjs +1 -1
  42. package/esm2020/component/chart/chart/chart.component.mjs +1 -1
  43. package/esm2020/component/chart/chart.module.mjs +1 -1
  44. package/esm2020/component/chart/core/axis-creator.mjs +1 -1
  45. package/esm2020/component/chart/core/chart.mjs +1 -1
  46. package/esm2020/component/chart/core/public-api.mjs +1 -1
  47. package/esm2020/component/chart/drawer/area-drawer.mjs +1 -1
  48. package/esm2020/component/chart/drawer/bar-drawer.mjs +1 -1
  49. package/esm2020/component/chart/drawer/contour-drawer.mjs +1 -1
  50. package/esm2020/component/chart/drawer/default-drawer-mapping.mjs +1 -1
  51. package/esm2020/component/chart/drawer/line-drawer.mjs +1 -1
  52. package/esm2020/component/chart/drawer/pie-drawer.mjs +1 -1
  53. package/esm2020/component/chart/drawer/public-api.mjs +1 -1
  54. package/esm2020/component/chart/drawer/scatter-drawer.mjs +1 -1
  55. package/esm2020/component/chart/drawer/spline-drawer.mjs +1 -1
  56. package/esm2020/component/chart/legend-drawer/default-drawer-legend-mapping.mjs +1 -1
  57. package/esm2020/component/chart/legend-drawer/gradient-drawer.mjs +1 -1
  58. package/esm2020/component/chart/legend-drawer/swatch-drawer.mjs +1 -1
  59. package/esm2020/component/chart/model/annotation.mjs +1 -1
  60. package/esm2020/component/chart/model/axis-options.mjs +1 -1
  61. package/esm2020/component/chart/model/chart-bounds.mjs +1 -1
  62. package/esm2020/component/chart/model/chart-options.mjs +1 -1
  63. package/esm2020/component/chart/model/enum/axis-type.mjs +1 -1
  64. package/esm2020/component/chart/model/enum/dispatch-type.mjs +1 -1
  65. package/esm2020/component/chart/model/enum/drag-point-type.mjs +1 -1
  66. package/esm2020/component/chart/model/enum/legend-type.mjs +1 -1
  67. package/esm2020/component/chart/model/enum/public-api.mjs +1 -1
  68. package/esm2020/component/chart/model/enum/scale-type.mjs +2 -1
  69. package/esm2020/component/chart/model/enum/scale.mjs +1 -1
  70. package/esm2020/component/chart/model/enum/series-type.mjs +1 -1
  71. package/esm2020/component/chart/model/enum/zoom-type.mjs +1 -1
  72. package/esm2020/component/chart/model/i-drag-event.mjs +1 -1
  73. package/esm2020/component/chart/model/i-drawer-legend.mjs +1 -1
  74. package/esm2020/component/chart/model/i-drawer.mjs +1 -1
  75. package/esm2020/component/chart/model/i-zoom-event.mjs +1 -1
  76. package/esm2020/component/chart/model/plot-band.mjs +1 -1
  77. package/esm2020/component/chart/model/plot-line.mjs +1 -1
  78. package/esm2020/component/chart/model/point/bar-point.mjs +1 -1
  79. package/esm2020/component/chart/model/point/base-point.mjs +1 -1
  80. package/esm2020/component/chart/model/point/contour-point.mjs +1 -1
  81. package/esm2020/component/chart/model/point/marker-options.mjs +1 -1
  82. package/esm2020/component/chart/model/point/public-api.mjs +1 -1
  83. package/esm2020/component/chart/model/point/scatter-point.mjs +1 -1
  84. package/esm2020/component/chart/model/public-api.mjs +1 -1
  85. package/esm2020/component/chart/model/series.mjs +1 -1
  86. package/esm2020/component/chart/model/tooltip-options.mjs +1 -1
  87. package/esm2020/component/chart/public-api.mjs +1 -1
  88. package/esm2020/component/chart-3d/chart-3d.module.mjs +1 -1
  89. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +1 -1
  90. package/esm2020/component/chart-3d/model/base-3d-point.mjs +1 -1
  91. package/esm2020/component/chart-3d/model/chart-3d-options.mjs +1 -1
  92. package/esm2020/component/chart-3d/model/public-api.mjs +1 -1
  93. package/esm2020/component/chart-3d/model/series-3d.mjs +1 -1
  94. package/esm2020/component/chart-3d/public-api.mjs +1 -1
  95. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +1 -1
  96. package/esm2020/component/checkbox/checkbox.module.mjs +1 -1
  97. package/esm2020/component/checkbox/public-api.mjs +1 -1
  98. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +1 -1
  99. package/esm2020/component/date-picker/date-picker.module.mjs +1 -1
  100. package/esm2020/component/date-picker/day-select/day-select.component.mjs +1 -1
  101. package/esm2020/component/date-picker/model/date-period.mjs +1 -1
  102. package/esm2020/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
  103. package/esm2020/component/date-picker/model/day-model.mjs +1 -1
  104. package/esm2020/component/date-picker/model/picker-locale-model.mjs +1 -1
  105. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +1 -1
  106. package/esm2020/component/date-picker/month-select/month-select.component.mjs +1 -1
  107. package/esm2020/component/date-picker/public-api.mjs +1 -1
  108. package/esm2020/component/date-picker/service/picker-locale.service.mjs +1 -1
  109. package/esm2020/component/date-picker/service/picker-touch.service.mjs +1 -1
  110. package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +1 -1
  111. package/esm2020/component/date-picker/util/date-picker-util.mjs +1 -1
  112. package/esm2020/component/date-picker/year-select/year-select.component.mjs +1 -1
  113. package/esm2020/component/delimiter/delimiter/delimiter.component.mjs +1 -1
  114. package/esm2020/component/delimiter/delimiter.module.mjs +1 -1
  115. package/esm2020/component/delimiter/public-api.mjs +1 -1
  116. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +1 -1
  117. package/esm2020/component/dropdown/dropdown-base.mjs +1 -1
  118. package/esm2020/component/dropdown/dropdown-content.directive.mjs +1 -1
  119. package/esm2020/component/dropdown/dropdown-head.directive.mjs +1 -1
  120. package/esm2020/component/dropdown/dropdown.directive.mjs +1 -1
  121. package/esm2020/component/dropdown/dropdown.module.mjs +1 -1
  122. package/esm2020/component/dropdown/public-api.mjs +1 -1
  123. package/esm2020/component/dynamic-component/dynamic-component.module.mjs +1 -1
  124. package/esm2020/component/dynamic-component/popup-content/popup-content.component.mjs +1 -1
  125. package/esm2020/component/dynamic-component/public-api.mjs +1 -1
  126. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +1 -1
  127. package/esm2020/component/expand-panel/expand-panel-content.directive.mjs +1 -1
  128. package/esm2020/component/expand-panel/expand-panel-head.directive.mjs +1 -1
  129. package/esm2020/component/expand-panel/expand-panel.module.mjs +1 -1
  130. package/esm2020/component/expand-panel/public-api.mjs +1 -1
  131. package/esm2020/component/file-upload/file-item/file-item.component.mjs +1 -1
  132. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +1 -1
  133. package/esm2020/component/file-upload/file-upload.module.mjs +1 -1
  134. package/esm2020/component/file-upload/public-api.mjs +1 -1
  135. package/esm2020/component/filter/base/filter-base.mjs +1 -1
  136. package/esm2020/component/filter/base/filter-component-base.mjs +1 -1
  137. package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +1 -1
  138. package/esm2020/component/filter/contarct/boolean-filter.mjs +1 -1
  139. package/esm2020/component/filter/contarct/date-filter-value.mjs +1 -1
  140. package/esm2020/component/filter/contarct/date-filter.mjs +1 -1
  141. package/esm2020/component/filter/contarct/filter-component-map.mjs +1 -1
  142. package/esm2020/component/filter/contarct/filter-item.mjs +1 -1
  143. package/esm2020/component/filter/contarct/filter-state.mjs +1 -1
  144. package/esm2020/component/filter/contarct/i-filter.mjs +1 -1
  145. package/esm2020/component/filter/contarct/list-filter.mjs +1 -1
  146. package/esm2020/component/filter/contarct/numeric-filter-value.mjs +1 -1
  147. package/esm2020/component/filter/contarct/numeric-filter.mjs +1 -1
  148. package/esm2020/component/filter/contarct/sort-param.mjs +1 -1
  149. package/esm2020/component/filter/contarct/string-filter.mjs +1 -1
  150. package/esm2020/component/filter/date-filter/date-filter.component.mjs +1 -1
  151. package/esm2020/component/filter/enum/filter-type.enum.mjs +1 -1
  152. package/esm2020/component/filter/enum/list-filter-type.enum.mjs +1 -1
  153. package/esm2020/component/filter/enum/string-filter-type.enum.mjs +1 -1
  154. package/esm2020/component/filter/filter-host/filter-host.component.mjs +1 -1
  155. package/esm2020/component/filter/filter-panel/filter-panel.component.mjs +1 -1
  156. package/esm2020/component/filter/filter.module.mjs +1 -1
  157. package/esm2020/component/filter/list-filter/list-filter.component.mjs +1 -1
  158. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +1 -1
  159. package/esm2020/component/filter/public-api.mjs +1 -1
  160. package/esm2020/component/filter/string-filter/string-filter.component.mjs +1 -1
  161. package/esm2020/component/icon/icon/icon.component.mjs +1 -1
  162. package/esm2020/component/icon/icon-sprite.directive.mjs +1 -1
  163. package/esm2020/component/icon/icon.module.mjs +1 -1
  164. package/esm2020/component/icon/icon.service.mjs +1 -1
  165. package/esm2020/component/icon/public-api.mjs +1 -1
  166. package/esm2020/component/input/form-group-title/form-group-title.component.mjs +1 -1
  167. package/esm2020/component/input/input/input.component.mjs +1 -1
  168. package/esm2020/component/input/input.module.mjs +1 -1
  169. package/esm2020/component/input/public-api.mjs +1 -1
  170. package/esm2020/component/input/text-field/text-field.component.mjs +1 -1
  171. package/esm2020/component/message/message/message.component.mjs +1 -1
  172. package/esm2020/component/message/message-host/message-host.component.mjs +1 -1
  173. package/esm2020/component/message/message.module.mjs +1 -1
  174. package/esm2020/component/message/message.service.mjs +1 -1
  175. package/esm2020/component/message/model/message.mjs +1 -1
  176. package/esm2020/component/message/public-api.mjs +1 -1
  177. package/esm2020/component/modal/dialog/dialog.component.mjs +1 -1
  178. package/esm2020/component/modal/dialog.service.mjs +1 -1
  179. package/esm2020/component/modal/modal-container/modal-container.component.mjs +1 -1
  180. package/esm2020/component/modal/modal.module.mjs +1 -1
  181. package/esm2020/component/modal/modal.service.mjs +1 -1
  182. package/esm2020/component/modal/model/current-modal.mjs +1 -1
  183. package/esm2020/component/modal/model/i-modal-config.mjs +1 -1
  184. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  185. package/esm2020/component/modal/model/modal-close-reason.enum.mjs +1 -1
  186. package/esm2020/component/modal/model/modal-instance.mjs +1 -1
  187. package/esm2020/component/modal/public-api.mjs +1 -1
  188. package/esm2020/component/pager/model/pager-state.mjs +1 -1
  189. package/esm2020/component/pager/pager/pager.component.mjs +1 -1
  190. package/esm2020/component/pager/pager.module.mjs +1 -1
  191. package/esm2020/component/pager/public-api.mjs +1 -1
  192. package/esm2020/component/pager/util/pager-util.mjs +1 -1
  193. package/esm2020/component/panel/panel/panel.component.mjs +1 -1
  194. package/esm2020/component/panel/panel.module.mjs +1 -1
  195. package/esm2020/component/panel/public-api.mjs +1 -1
  196. package/esm2020/component/progress-bar/progress-bar/progress-bar.component.mjs +1 -1
  197. package/esm2020/component/progress-bar/progress-bar.module.mjs +1 -1
  198. package/esm2020/component/progress-bar/public-api.mjs +1 -1
  199. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +1 -1
  200. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +1 -1
  201. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +1 -1
  202. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +1 -1
  203. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +1 -1
  204. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +7 -4
  205. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +1 -1
  206. package/esm2020/component/property-grid/property-grid.module.mjs +6 -2
  207. package/esm2020/component/property-grid/public-api.mjs +1 -1
  208. package/esm2020/component/public-api.mjs +1 -1
  209. package/esm2020/component/radio/public-api.mjs +1 -1
  210. package/esm2020/component/radio/radio/radio.component.mjs +1 -1
  211. package/esm2020/component/radio/radio-button/radio-button.component.mjs +1 -1
  212. package/esm2020/component/radio/radio.module.mjs +1 -1
  213. package/esm2020/component/resize-panel/public-api.mjs +1 -1
  214. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +1 -1
  215. package/esm2020/component/resize-panel/resize-panel.module.mjs +1 -1
  216. package/esm2020/component/select/public-api.mjs +1 -1
  217. package/esm2020/component/select/select/select.component.mjs +1 -1
  218. package/esm2020/component/select/select-option.directive.mjs +1 -1
  219. package/esm2020/component/select/select-value.directive.mjs +1 -1
  220. package/esm2020/component/select/select.module.mjs +1 -1
  221. package/esm2020/component/sidebar/public-api.mjs +1 -1
  222. package/esm2020/component/sidebar/sidebar/sidebar.component.mjs +1 -1
  223. package/esm2020/component/sidebar/sidebar-position.enum.mjs +1 -1
  224. package/esm2020/component/sidebar/sidebar.module.mjs +1 -1
  225. package/esm2020/component/switch/public-api.mjs +1 -1
  226. package/esm2020/component/switch/switch/switch.component.mjs +1 -1
  227. package/esm2020/component/switch/switch-button/switch-button.component.mjs +1 -1
  228. package/esm2020/component/switch/switch.module.mjs +1 -1
  229. package/esm2020/component/switch/switch.service.mjs +1 -1
  230. package/esm2020/component/table/base/cell-component-base.mjs +21 -12
  231. package/esm2020/component/table/base/detail-component-base.mjs +1 -1
  232. package/esm2020/component/table/base/group-row-component-base.mjs +1 -1
  233. package/esm2020/component/table/base/head-cell-component-base.mjs +1 -1
  234. package/esm2020/component/table/cell/cell.component.mjs +1 -1
  235. package/esm2020/component/table/cell-host/cell-host.component.mjs +1 -1
  236. package/esm2020/component/table/contract/cell-components-map.mjs +1 -1
  237. package/esm2020/component/table/contract/column-reorder-event.mjs +1 -1
  238. package/esm2020/component/table/contract/column-resize-event.mjs +1 -1
  239. package/esm2020/component/table/contract/i-cell-coordinates.mjs +1 -1
  240. package/esm2020/component/table/contract/i-cell-event.mjs +1 -1
  241. package/esm2020/component/table/contract/i-cell-value.mjs +1 -1
  242. package/esm2020/component/table/contract/public-api.mjs +1 -1
  243. package/esm2020/component/table/contract/sort-event.mjs +1 -1
  244. package/esm2020/component/table/contract/table-column-store.mjs +1 -1
  245. package/esm2020/component/table/contract/table-column.mjs +2 -1
  246. package/esm2020/component/table/contract/table-context-menu-config.mjs +1 -1
  247. package/esm2020/component/table/contract/table-row.mjs +1 -1
  248. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +1 -1
  249. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +1 -1
  250. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
  251. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +1 -1
  252. package/esm2020/component/table/default/group-row/group-row.component.mjs +1 -1
  253. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +1 -1
  254. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +1 -1
  255. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +1 -1
  256. package/esm2020/component/table/enum/aggregation-type.enum.mjs +1 -1
  257. package/esm2020/component/table/enum/edit-event.enum.mjs +1 -1
  258. package/esm2020/component/table/enum/edit-type.enum.mjs +1 -1
  259. package/esm2020/component/table/enum/public-api.mjs +1 -1
  260. package/esm2020/component/table/enum/select-type.enum.mjs +1 -1
  261. package/esm2020/component/table/head-cell/head-cell.component.mjs +1 -1
  262. package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +3 -3
  263. package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +1 -1
  264. package/esm2020/component/table/public-api.mjs +1 -1
  265. package/esm2020/component/table/selection-cell/selection-cell.component.mjs +1 -1
  266. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  267. package/esm2020/component/table/service/table.service.mjs +9 -4
  268. package/esm2020/component/table/table/table.component.mjs +5 -8
  269. package/esm2020/component/table/table-body/table-body.component.mjs +1 -1
  270. package/esm2020/component/table/table-head/table-head.component.mjs +1 -1
  271. package/esm2020/component/table/table-head-group/table-head-group.component.mjs +1 -1
  272. package/esm2020/component/table/table.module.mjs +1 -1
  273. package/esm2020/component/table/util/public-api.mjs +1 -1
  274. package/esm2020/component/table/util/state-util.mjs +1 -1
  275. package/esm2020/component/table/util/table-util.mjs +1 -1
  276. package/esm2020/component/tabs/public-api.mjs +1 -1
  277. package/esm2020/component/tabs/tab/tab.component.mjs +1 -1
  278. package/esm2020/component/tabs/tab-content.directive.mjs +1 -1
  279. package/esm2020/component/tabs/tab-title.directive.mjs +1 -1
  280. package/esm2020/component/tabs/tabs/tabs.component.mjs +1 -1
  281. package/esm2020/component/tabs/tabs.module.mjs +1 -1
  282. package/esm2020/component/theme-switch/public-api.mjs +1 -1
  283. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +1 -1
  284. package/esm2020/component/theme-switch/theme-switch.module.mjs +1 -1
  285. package/esm2020/component/theme-switch/theme-switch.service.mjs +1 -1
  286. package/esm2020/component/toggle/public-api.mjs +1 -1
  287. package/esm2020/component/toggle/toggle/toggle.component.mjs +1 -1
  288. package/esm2020/component/toggle/toggle.module.mjs +1 -1
  289. package/esm2020/component/toolbar/public-api.mjs +1 -1
  290. package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +1 -1
  291. package/esm2020/component/toolbar/toolbar.module.mjs +1 -1
  292. package/esm2020/component/tree/public-api.mjs +1 -1
  293. package/esm2020/component/tree/tree/tree.component.mjs +1 -1
  294. package/esm2020/component/tree/tree-item/tree-item.component.mjs +1 -1
  295. package/esm2020/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +1 -1
  296. package/esm2020/component/tree/tree.module.mjs +1 -1
  297. package/esm2020/component/tree/tree.service.mjs +1 -1
  298. package/esm2020/directive/click-outside/click-outside.directive.mjs +1 -1
  299. package/esm2020/directive/click-outside/click-outside.module.mjs +1 -1
  300. package/esm2020/directive/click-outside/public-api.mjs +1 -1
  301. package/esm2020/directive/context-menu/context-menu.directive.mjs +1 -1
  302. package/esm2020/directive/context-menu/context-menu.module.mjs +1 -1
  303. package/esm2020/directive/context-menu/public-api.mjs +1 -1
  304. package/esm2020/directive/disable-control/disable-control.directive.mjs +1 -1
  305. package/esm2020/directive/disable-control/disable-control.module.mjs +1 -1
  306. package/esm2020/directive/disable-control/public-api.mjs +1 -1
  307. package/esm2020/directive/drag-sort/drag-sort-container.directive.mjs +1 -1
  308. package/esm2020/directive/drag-sort/drag-sort-event.mjs +1 -1
  309. package/esm2020/directive/drag-sort/drag-sort-item.directive.mjs +1 -1
  310. package/esm2020/directive/drag-sort/drag-sort.module.mjs +1 -1
  311. package/esm2020/directive/drag-sort/public-api.mjs +1 -1
  312. package/esm2020/directive/dynamic-content-base.directive.mjs +1 -1
  313. package/esm2020/directive/highlight/highlight.directive.mjs +1 -1
  314. package/esm2020/directive/highlight/highlight.module.mjs +1 -1
  315. package/esm2020/directive/highlight/public-api.mjs +1 -1
  316. package/esm2020/directive/hint/hint.directive.mjs +1 -1
  317. package/esm2020/directive/hint/hint.module.mjs +1 -1
  318. package/esm2020/directive/hint/public-api.mjs +1 -1
  319. package/esm2020/directive/loader/loader.directive.mjs +1 -1
  320. package/esm2020/directive/loader/loader.module.mjs +1 -1
  321. package/esm2020/directive/loader/public-api.mjs +1 -1
  322. package/esm2020/directive/no-autofill/no-autofill.directive.mjs +1 -1
  323. package/esm2020/directive/no-autofill/no-autofill.module.mjs +1 -1
  324. package/esm2020/directive/no-autofill/public-api.mjs +1 -1
  325. package/esm2020/directive/only-number/only-number.directive.mjs +1 -1
  326. package/esm2020/directive/only-number/only-number.module.mjs +1 -1
  327. package/esm2020/directive/only-number/public-api.mjs +1 -1
  328. package/esm2020/directive/public-api.mjs +1 -1
  329. package/esm2020/directive/resize-drag/public-api.mjs +1 -1
  330. package/esm2020/directive/resize-drag/resize-drag.directive.mjs +1 -1
  331. package/esm2020/directive/resize-drag/resize-drag.module.mjs +1 -1
  332. package/esm2020/directive/teta-template/public-api.mjs +1 -1
  333. package/esm2020/directive/teta-template/teta-template.directive.mjs +1 -1
  334. package/esm2020/directive/teta-template/teta-template.module.mjs +1 -1
  335. package/esm2020/directive/tooltip/public-api.mjs +1 -1
  336. package/esm2020/directive/tooltip/tooltip.directive.mjs +1 -1
  337. package/esm2020/directive/tooltip/tooltip.module.mjs +1 -1
  338. package/esm2020/pipe/number-pipe/number-pipe.module.mjs +1 -1
  339. package/esm2020/pipe/number-pipe/number.pipe.mjs +1 -1
  340. package/esm2020/pipe/number-pipe/public-api.mjs +1 -1
  341. package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +1 -1
  342. package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +1 -1
  343. package/esm2020/pipe/public-api.mjs +1 -1
  344. package/esm2020/pipe/util/number-helper.mjs +1 -1
  345. package/esm2020/public-api.mjs +1 -1
  346. package/esm2020/tetacom-ng-components.mjs +1 -1
  347. package/esm2020/util/date-util.mjs +1 -1
  348. package/esm2020/util/forms-util.mjs +1 -1
  349. package/esm2020/util/public-api.mjs +1 -1
  350. package/esm2020/util/string-util.mjs +1 -1
  351. package/fesm2015/tetacom-ng-components.mjs +226 -208
  352. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  353. package/fesm2020/tetacom-ng-components.mjs +224 -206
  354. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  355. package/package.json +1 -1
  356. package/style/tabs.scss +1 -1
@@ -15,6 +15,7 @@ import * as i1$1 from '@ngneat/transloco';
15
15
  import { TranslocoModule, TRANSLOCO_SCOPE } from '@ngneat/transloco';
16
16
  import { __awaiter } from 'tslib';
17
17
  import * as hash from 'object-hash';
18
+ import hash__default from 'object-hash';
18
19
  import { SizeStrategy, Datasource, UiScrollModule } from 'ngx-ui-scroll';
19
20
  import * as d3 from 'd3';
20
21
  import { zoomIdentity } from 'd3';
@@ -6040,10 +6041,174 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
6040
6041
  args: ['click']
6041
6042
  }] } });
6042
6043
 
6044
+ class DynamicContentBaseDirective {
6045
+ constructor(_document, _elementRef, _service, _injector, _zone, _cdr) {
6046
+ this._document = _document;
6047
+ this._elementRef = _elementRef;
6048
+ this._service = _service;
6049
+ this._injector = _injector;
6050
+ this._zone = _zone;
6051
+ this._cdr = _cdr;
6052
+ this.align = Align.left;
6053
+ this.verticalAlign = VerticalAlign.bottom;
6054
+ this.openChange = new EventEmitter();
6055
+ this._alive = true;
6056
+ this._open = false;
6057
+ this._zone.onStable
6058
+ .pipe(takeWhile((_) => this._alive), filter((_) => this._open))
6059
+ .subscribe((_) => {
6060
+ this.setPosition();
6061
+ });
6062
+ }
6063
+ set open(open) {
6064
+ this._open = open;
6065
+ if (this._open) {
6066
+ this.createContentRef();
6067
+ }
6068
+ else {
6069
+ this.destroyContentRef();
6070
+ }
6071
+ }
6072
+ ngOnDestroy() {
6073
+ this._alive = false;
6074
+ this.destroyContentRef();
6075
+ }
6076
+ ngOnInit() { }
6077
+ createContentRef(className) {
6078
+ if (!this._componentRef) {
6079
+ this._open = true;
6080
+ const injector = this._service.getInjector(this.data, this._injector);
6081
+ const context = this._service.getContext(this._dynamicContent, this.data);
6082
+ this._content = this._service.createContent(this._dynamicContent, this._injector, context);
6083
+ this._componentRef = this._service.createComponent(PopupContentComponent, this._content, injector, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
6084
+ if (className) {
6085
+ this._componentRef.instance.addClass(className);
6086
+ }
6087
+ }
6088
+ return this._componentRef;
6089
+ }
6090
+ destroyContentRef() {
6091
+ if (this._open) {
6092
+ this._open = false;
6093
+ this._service.destroy(this._componentRef, this._content, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
6094
+ this._componentRef = null;
6095
+ }
6096
+ }
6097
+ }
6098
+ DynamicContentBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DynamicContentBaseDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
6099
+ DynamicContentBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DynamicContentBaseDirective, inputs: { data: "data", className: "className", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", open: "open" }, outputs: { openChange: "openChange" }, ngImport: i0 });
6100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DynamicContentBaseDirective, decorators: [{
6101
+ type: Directive
6102
+ }], ctorParameters: function () { return [{ type: undefined }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
6103
+ type: Input
6104
+ }], className: [{
6105
+ type: Input
6106
+ }], align: [{
6107
+ type: Input
6108
+ }], verticalAlign: [{
6109
+ type: Input
6110
+ }], appendToBody: [{
6111
+ type: Input
6112
+ }], open: [{
6113
+ type: Input
6114
+ }], openChange: [{
6115
+ type: Output
6116
+ }] } });
6117
+
6118
+ class HintDirective extends DynamicContentBaseDirective {
6119
+ constructor(_document, _elementRef, _service, _injector, _zone, _cdr) {
6120
+ super(_document, _elementRef, _service, _injector, _zone, _cdr);
6121
+ this._document = _document;
6122
+ this._elementRef = _elementRef;
6123
+ this._service = _service;
6124
+ this._injector = _injector;
6125
+ this._zone = _zone;
6126
+ this._cdr = _cdr;
6127
+ this.align = Align.center;
6128
+ this.verticalAlign = VerticalAlign.top;
6129
+ this.delay = 300;
6130
+ }
6131
+ get _dynamicContent() {
6132
+ return this.tetaHint;
6133
+ }
6134
+ mouseenter() {
6135
+ clearTimeout(this._timeout);
6136
+ this._timeout = setTimeout(() => {
6137
+ this.createHint();
6138
+ }, this.delay);
6139
+ }
6140
+ mouseleave() {
6141
+ clearTimeout(this._timeout);
6142
+ if (this._open && this._componentRef) {
6143
+ this._timeout = setTimeout(() => {
6144
+ this.destroyContentRef();
6145
+ }, this.delay);
6146
+ }
6147
+ }
6148
+ click(event) {
6149
+ if (this._open &&
6150
+ this._componentRef &&
6151
+ DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
6152
+ event.stopPropagation();
6153
+ }
6154
+ }
6155
+ setPosition() {
6156
+ if (this._componentRef && this._open) {
6157
+ if (!this._componentRect) {
6158
+ this._componentRect =
6159
+ this._componentRef.location.nativeElement.getBoundingClientRect();
6160
+ }
6161
+ const position = PositionUtil.getPosition(this._elementRef.nativeElement.getBoundingClientRect(), this._componentRect, this.align, this.verticalAlign, 0, 4);
6162
+ PositionUtil.setElementPosition(this._componentRef.location.nativeElement, position);
6163
+ }
6164
+ }
6165
+ createHint() {
6166
+ if (!this._dynamicContent) {
6167
+ return;
6168
+ }
6169
+ this._componentRef = this.createContentRef();
6170
+ this._componentRef.instance.className = [
6171
+ ...ArrayUtil.asArray(this.className),
6172
+ 'hint',
6173
+ ];
6174
+ }
6175
+ }
6176
+ HintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
6177
+ HintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: HintDirective, selector: "[tetaHint]", inputs: { tetaHint: "tetaHint", align: "align", verticalAlign: "verticalAlign", delay: "delay" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)", "click": "click($event)" } }, usesInheritance: true, ngImport: i0 });
6178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintDirective, decorators: [{
6179
+ type: Directive,
6180
+ args: [{
6181
+ selector: '[tetaHint]',
6182
+ }]
6183
+ }], ctorParameters: function () {
6184
+ return [{ type: undefined, decorators: [{
6185
+ type: Inject,
6186
+ args: [DOCUMENT]
6187
+ }] }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }];
6188
+ }, propDecorators: { tetaHint: [{
6189
+ type: Input
6190
+ }], align: [{
6191
+ type: Input
6192
+ }], verticalAlign: [{
6193
+ type: Input
6194
+ }], delay: [{
6195
+ type: Input
6196
+ }], mouseenter: [{
6197
+ type: HostListener,
6198
+ args: ['mouseenter', ['$event']]
6199
+ }], mouseleave: [{
6200
+ type: HostListener,
6201
+ args: ['mouseleave', ['$event']]
6202
+ }], click: [{
6203
+ type: HostListener,
6204
+ args: ['click', ['$event']]
6205
+ }] } });
6206
+
6043
6207
  class PropertyGridItemComponent {
6044
6208
  constructor(_transloco) {
6045
6209
  this._transloco = _transloco;
6046
6210
  this.controlValueChange = new EventEmitter();
6211
+ this.align = Align;
6047
6212
  this.filterTypeEnum = FilterType;
6048
6213
  this._alive = true;
6049
6214
  }
@@ -6112,10 +6277,10 @@ class PropertyGridItemComponent {
6112
6277
  }
6113
6278
  }
6114
6279
  PropertyGridItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component });
6115
- PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], components: [{ type: InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "showTime", "format"] }, { type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
6280
+ PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], components: [{ type: InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "showTime", "format"] }, { type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
6116
6281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
6117
6282
  type: Component,
6118
- args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""] }]
6283
+ args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""] }]
6119
6284
  }], ctorParameters: function () { return [{ type: i1$1.TranslocoService }]; }, propDecorators: { column: [{
6120
6285
  type: Input
6121
6286
  }], hideNonEditable: [{
@@ -6312,6 +6477,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
6312
6477
  }]
6313
6478
  }] });
6314
6479
 
6480
+ class HintModule {
6481
+ }
6482
+ HintModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6483
+ HintModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, declarations: [HintDirective], imports: [CommonModule,
6484
+ DynamicComponentModule], exports: [HintDirective] });
6485
+ HintModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, imports: [[
6486
+ CommonModule,
6487
+ DynamicComponentModule
6488
+ ]] });
6489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, decorators: [{
6490
+ type: NgModule,
6491
+ args: [{
6492
+ declarations: [HintDirective],
6493
+ exports: [HintDirective],
6494
+ imports: [
6495
+ CommonModule,
6496
+ DynamicComponentModule
6497
+ ]
6498
+ }]
6499
+ }] });
6500
+
6315
6501
  class PropertyGridModule {
6316
6502
  }
6317
6503
  PropertyGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PropertyGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -6330,7 +6516,8 @@ PropertyGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
6330
6516
  InputModule,
6331
6517
  ToggleModule,
6332
6518
  ReactiveFormsModule,
6333
- TranslocoModule], exports: [PropertyGridComponent] });
6519
+ TranslocoModule,
6520
+ HintModule], exports: [PropertyGridComponent] });
6334
6521
  PropertyGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PropertyGridModule, providers: [
6335
6522
  {
6336
6523
  provide: TRANSLOCO_SCOPE,
@@ -6348,6 +6535,7 @@ PropertyGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
6348
6535
  ToggleModule,
6349
6536
  ReactiveFormsModule,
6350
6537
  TranslocoModule,
6538
+ HintModule,
6351
6539
  ]] });
6352
6540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: PropertyGridModule, decorators: [{
6353
6541
  type: NgModule,
@@ -6373,6 +6561,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
6373
6561
  ToggleModule,
6374
6562
  ReactiveFormsModule,
6375
6563
  TranslocoModule,
6564
+ HintModule,
6376
6565
  ],
6377
6566
  providers: [
6378
6567
  {
@@ -6661,6 +6850,7 @@ class TableColumn extends FilterItem {
6661
6850
  this.groupingOrder = (_j = options === null || options === void 0 ? void 0 : options.groupingOrder) !== null && _j !== void 0 ? _j : 0;
6662
6851
  this.groupByFn = options === null || options === void 0 ? void 0 : options.groupByFn;
6663
6852
  this.headCellComponent = options === null || options === void 0 ? void 0 : options.headCellComponent;
6853
+ this.headDropdownTemplate = options === null || options === void 0 ? void 0 : options.headDropdownTemplate;
6664
6854
  this.cellComponent = options === null || options === void 0 ? void 0 : options.cellComponent;
6665
6855
  this.aggregate = options === null || options === void 0 ? void 0 : options.aggregate;
6666
6856
  this.defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;
@@ -6874,6 +7064,7 @@ class TableService {
6874
7064
  this.hiddenColumns = this._hiddenColumns.asObservable();
6875
7065
  this.scrollIndex = this._scrollIndex.asObservable();
6876
7066
  }
7067
+ // cellEditable: boolean | ((row: ICellCoordinates<T>) => boolean);
6877
7068
  get dragSource() {
6878
7069
  return this._dragSource;
6879
7070
  }
@@ -6886,7 +7077,11 @@ class TableService {
6886
7077
  }
6887
7078
  setColumns(columns) {
6888
7079
  this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
6889
- this.initialColumnsHash = hash.sha1(this.initialColumns);
7080
+ this.initialColumnsHash = hash__default(this.initialColumns, {
7081
+ algorithm: 'sha1',
7082
+ ignoreUnknown: true,
7083
+ excludeKeys: key => key === 'headDropdownTemplate',
7084
+ });
6890
7085
  const restored = this.restoreColumns();
6891
7086
  if (restored) {
6892
7087
  this.setDisplayColumns(restored);
@@ -7114,7 +7309,7 @@ class TableService {
7114
7309
  if (this._currentEditCell != null) {
7115
7310
  this._editCellStop.next(this._currentEditCell);
7116
7311
  }
7117
- if (this.boolOrFuncCallback(this.cellEditable)(cellCoordinates)) {
7312
+ if (this.boolOrFuncCallback(cellCoordinates.column.editable)(cellCoordinates)) {
7118
7313
  this._editCellStart.next(cellCoordinates);
7119
7314
  this._currentEditCell = cellCoordinates;
7120
7315
  }
@@ -7496,169 +7691,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
7496
7691
  args: ['class.table-head__cell__component']
7497
7692
  }] } });
7498
7693
 
7499
- class DynamicContentBaseDirective {
7500
- constructor(_document, _elementRef, _service, _injector, _zone, _cdr) {
7501
- this._document = _document;
7502
- this._elementRef = _elementRef;
7503
- this._service = _service;
7504
- this._injector = _injector;
7505
- this._zone = _zone;
7506
- this._cdr = _cdr;
7507
- this.align = Align.left;
7508
- this.verticalAlign = VerticalAlign.bottom;
7509
- this.openChange = new EventEmitter();
7510
- this._alive = true;
7511
- this._open = false;
7512
- this._zone.onStable
7513
- .pipe(takeWhile((_) => this._alive), filter((_) => this._open))
7514
- .subscribe((_) => {
7515
- this.setPosition();
7516
- });
7517
- }
7518
- set open(open) {
7519
- this._open = open;
7520
- if (this._open) {
7521
- this.createContentRef();
7522
- }
7523
- else {
7524
- this.destroyContentRef();
7525
- }
7526
- }
7527
- ngOnDestroy() {
7528
- this._alive = false;
7529
- this.destroyContentRef();
7530
- }
7531
- ngOnInit() { }
7532
- createContentRef(className) {
7533
- if (!this._componentRef) {
7534
- this._open = true;
7535
- const injector = this._service.getInjector(this.data, this._injector);
7536
- const context = this._service.getContext(this._dynamicContent, this.data);
7537
- this._content = this._service.createContent(this._dynamicContent, this._injector, context);
7538
- this._componentRef = this._service.createComponent(PopupContentComponent, this._content, injector, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
7539
- if (className) {
7540
- this._componentRef.instance.addClass(className);
7541
- }
7542
- }
7543
- return this._componentRef;
7544
- }
7545
- destroyContentRef() {
7546
- if (this._open) {
7547
- this._open = false;
7548
- this._service.destroy(this._componentRef, this._content, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
7549
- this._componentRef = null;
7550
- }
7551
- }
7552
- }
7553
- DynamicContentBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DynamicContentBaseDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
7554
- DynamicContentBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: DynamicContentBaseDirective, inputs: { data: "data", className: "className", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", open: "open" }, outputs: { openChange: "openChange" }, ngImport: i0 });
7555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DynamicContentBaseDirective, decorators: [{
7556
- type: Directive
7557
- }], ctorParameters: function () { return [{ type: undefined }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
7558
- type: Input
7559
- }], className: [{
7560
- type: Input
7561
- }], align: [{
7562
- type: Input
7563
- }], verticalAlign: [{
7564
- type: Input
7565
- }], appendToBody: [{
7566
- type: Input
7567
- }], open: [{
7568
- type: Input
7569
- }], openChange: [{
7570
- type: Output
7571
- }] } });
7572
-
7573
- class HintDirective extends DynamicContentBaseDirective {
7574
- constructor(_document, _elementRef, _service, _injector, _zone, _cdr) {
7575
- super(_document, _elementRef, _service, _injector, _zone, _cdr);
7576
- this._document = _document;
7577
- this._elementRef = _elementRef;
7578
- this._service = _service;
7579
- this._injector = _injector;
7580
- this._zone = _zone;
7581
- this._cdr = _cdr;
7582
- this.align = Align.center;
7583
- this.verticalAlign = VerticalAlign.top;
7584
- this.delay = 300;
7585
- }
7586
- get _dynamicContent() {
7587
- return this.tetaHint;
7588
- }
7589
- mouseenter() {
7590
- clearTimeout(this._timeout);
7591
- this._timeout = setTimeout(() => {
7592
- this.createHint();
7593
- }, this.delay);
7594
- }
7595
- mouseleave() {
7596
- clearTimeout(this._timeout);
7597
- if (this._open && this._componentRef) {
7598
- this._timeout = setTimeout(() => {
7599
- this.destroyContentRef();
7600
- }, this.delay);
7601
- }
7602
- }
7603
- click(event) {
7604
- if (this._open &&
7605
- this._componentRef &&
7606
- DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
7607
- event.stopPropagation();
7608
- }
7609
- }
7610
- setPosition() {
7611
- if (this._componentRef && this._open) {
7612
- if (!this._componentRect) {
7613
- this._componentRect =
7614
- this._componentRef.location.nativeElement.getBoundingClientRect();
7615
- }
7616
- const position = PositionUtil.getPosition(this._elementRef.nativeElement.getBoundingClientRect(), this._componentRect, this.align, this.verticalAlign, 0, 4);
7617
- PositionUtil.setElementPosition(this._componentRef.location.nativeElement, position);
7618
- }
7619
- }
7620
- createHint() {
7621
- if (!this._dynamicContent) {
7622
- return;
7623
- }
7624
- this._componentRef = this.createContentRef();
7625
- this._componentRef.instance.className = [
7626
- ...ArrayUtil.asArray(this.className),
7627
- 'hint',
7628
- ];
7629
- }
7630
- }
7631
- HintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
7632
- HintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: HintDirective, selector: "[tetaHint]", inputs: { tetaHint: "tetaHint", align: "align", verticalAlign: "verticalAlign", delay: "delay" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)", "click": "click($event)" } }, usesInheritance: true, ngImport: i0 });
7633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintDirective, decorators: [{
7634
- type: Directive,
7635
- args: [{
7636
- selector: '[tetaHint]',
7637
- }]
7638
- }], ctorParameters: function () {
7639
- return [{ type: undefined, decorators: [{
7640
- type: Inject,
7641
- args: [DOCUMENT]
7642
- }] }, { type: i0.ElementRef }, { type: DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }];
7643
- }, propDecorators: { tetaHint: [{
7644
- type: Input
7645
- }], align: [{
7646
- type: Input
7647
- }], verticalAlign: [{
7648
- type: Input
7649
- }], delay: [{
7650
- type: Input
7651
- }], mouseenter: [{
7652
- type: HostListener,
7653
- args: ['mouseenter', ['$event']]
7654
- }], mouseleave: [{
7655
- type: HostListener,
7656
- args: ['mouseleave', ['$event']]
7657
- }], click: [{
7658
- type: HostListener,
7659
- args: ['click', ['$event']]
7660
- }] } });
7661
-
7662
7694
  class DefaultHeadCellComponent extends HeadCellComponentBase {
7663
7695
  constructor(_cdr) {
7664
7696
  super();
@@ -8215,10 +8247,10 @@ class HeadCellDropdownComponent {
8215
8247
  }
8216
8248
  }
8217
8249
  HeadCellDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
8218
- HeadCellDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange", autosize: "autosize", autosizeAll: "autosizeAll" }, host: { properties: { "class.shadow-2": "this.shadow", "class.bg-background-50": "this.bg" } }, ngImport: i0, template: "<teta-tabs class=\"column_auto\">\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\" [state]=\"state\"\n *ngIf=\"dict | async as d\"\n [filterOptions]=\"d[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"column.locked ? 'unpin' : 'pin'\"\n class=\"margin-right-2\"></teta-icon>\n {{column.locked ? '\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C' : '\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C'}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\" class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSize'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u043A\u043E\u043B\u043E\u043D\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSizeAll'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u0441\u0435\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'undo'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n \u0412\u0441\u0435\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"], components: [{ type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "destroyOnHide"], outputs: ["tabChange"] }, { type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "filterOptions"], outputs: ["filterChanged"] }, { type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }, { type: TreeComponent, selector: "teta-tree", inputs: ["data", "class", "padding", "childNodeName", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TabTitleDirective, selector: "[tetaTabTitle]" }, { type: TabContentDirective, selector: "[tetaTabContent]" }, { 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"] }, { type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8250
+ HeadCellDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange", autosize: "autosize", autosizeAll: "autosizeAll" }, host: { properties: { "class.shadow-2": "this.shadow", "class.bg-background-50": "this.bg" } }, ngImport: i0, template: "<teta-tabs class=\"column_auto\">\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\" [state]=\"state\"\n *ngIf=\"dict | async as d\"\n [filterOptions]=\"d[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.headDropdownTemplate\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'measurement'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"column.locked ? 'unpin' : 'pin'\"\n class=\"margin-right-2\"></teta-icon>\n {{column.locked ? '\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C' : '\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C'}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\" class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSize'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u043A\u043E\u043B\u043E\u043D\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSizeAll'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u0441\u0435\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'undo'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n \u0412\u0441\u0435\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"], components: [{ type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "destroyOnHide"], outputs: ["tabChange"] }, { type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "filterOptions"], outputs: ["filterChanged"] }, { type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "allowNull"] }, { type: TreeComponent, selector: "teta-tree", inputs: ["data", "class", "padding", "childNodeName", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TabTitleDirective, selector: "[tetaTabTitle]" }, { type: TabContentDirective, selector: "[tetaTabContent]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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"] }, { type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8219
8251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
8220
8252
  type: Component,
8221
- args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-tabs class=\"column_auto\">\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\" [state]=\"state\"\n *ngIf=\"dict | async as d\"\n [filterOptions]=\"d[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"column.locked ? 'unpin' : 'pin'\"\n class=\"margin-right-2\"></teta-icon>\n {{column.locked ? '\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C' : '\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C'}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\" class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSize'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u043A\u043E\u043B\u043E\u043D\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSizeAll'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u0441\u0435\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'undo'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n \u0412\u0441\u0435\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"] }]
8253
+ args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-tabs class=\"column_auto\">\n <teta-tab *ngIf=\"column.filterable\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'filter'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <teta-filter-host [column]=\"column\" [state]=\"state\"\n *ngIf=\"dict | async as d\"\n [filterOptions]=\"d[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\n </button>\n <button teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n <teta-tab *ngIf=\"column.headDropdownTemplate\">\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'measurement'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"column.headDropdownTemplate; context: {$implicit: column, column: column}\"></ng-container>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'menu'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list column_auto\">\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"column.locked ? 'unpin' : 'pin'\"\n class=\"margin-right-2\"></teta-icon>\n {{column.locked ? '\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C' : '\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C'}}\n </div>\n <div class=\"list-divider\"></div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\" class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'pin'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosize.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSize'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u043A\u043E\u043B\u043E\u043D\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAll.emit()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'autoSizeAll'\"\n class=\"margin-right-2\"></teta-icon>\n \u0410\u0432\u0442\u043E\u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u0441\u0435\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n <teta-icon [palette]=\"'text'\"\n [name]=\"'undo'\"\n class=\"margin-right-2\"></teta-icon>\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\n </div>\n </div>\n </ng-template>\n </teta-tab>\n <teta-tab>\n <ng-template tetaTabTitle>\n <teta-icon [name]=\"'eye'\"></teta-icon>\n </ng-template>\n <ng-template tetaTabContent>\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n \u0412\u0441\u0435\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"padding-v-2 column column_auto scrollable\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </div>\n <teta-toolbar class=\"justify-content-end\">\n <button teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n </teta-toolbar>\n </ng-template>\n </teta-tab>\n</teta-tabs>\n", styles: [":host{display:flex;flex-grow:1;min-height:0;width:250px}\n"] }]
8222
8254
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
8223
8255
  type: Input
8224
8256
  }], column: [{
@@ -8630,7 +8662,7 @@ class CellComponentBase {
8630
8662
  }
8631
8663
  get edit() {
8632
8664
  return (this._edit &&
8633
- this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8665
+ this.svc.boolOrFuncCallback(this.column.editable)({
8634
8666
  column: this.column,
8635
8667
  row: this.row,
8636
8668
  }));
@@ -8649,14 +8681,16 @@ class CellComponentBase {
8649
8681
  }
8650
8682
  init() {
8651
8683
  this.svc.editRowStart
8652
- .pipe(takeWhile((_) => this._alive), filter((_) => this.column.editable))
8684
+ .pipe(takeWhile((_) => this._alive))
8653
8685
  .subscribe((cell) => {
8654
8686
  if (this.row === (cell === null || cell === void 0 ? void 0 : cell.row) &&
8655
- !this._edit &&
8656
- this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8657
- column: this.column,
8658
- row: this.row,
8659
- })) {
8687
+ !this._edit
8688
+ // &&
8689
+ // this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8690
+ // column: this.column,
8691
+ // row: this.row,
8692
+ // })
8693
+ ) {
8660
8694
  this.start(cell, 'row');
8661
8695
  }
8662
8696
  if (this.row !== (cell === null || cell === void 0 ? void 0 : cell.row) && this._edit) {
@@ -8664,7 +8698,7 @@ class CellComponentBase {
8664
8698
  }
8665
8699
  });
8666
8700
  this.svc.editCellStart
8667
- .pipe(takeWhile((_) => this._alive), filter((_) => this.column.editable))
8701
+ .pipe(takeWhile((_) => this._alive))
8668
8702
  .subscribe((cell) => {
8669
8703
  if (this.row === cell.row &&
8670
8704
  this.column.name === cell.column.name &&
@@ -8679,12 +8713,19 @@ class CellComponentBase {
8679
8713
  this.svc.valueSet
8680
8714
  .pipe(takeWhile((_) => this._alive))
8681
8715
  .subscribe((cellValue) => {
8682
- if (this.row === cellValue.cell.row &&
8683
- this.column.name === cellValue.cell.column.name) {
8716
+ if (this.row === cellValue.cell.row
8717
+ && this.column.name === cellValue.cell.column.name) {
8684
8718
  this.row.data[this.column.name] = cellValue.value;
8685
8719
  this.cdr.detectChanges();
8686
8720
  }
8687
8721
  });
8722
+ this.svc.valueChanged
8723
+ .pipe(takeWhile((_) => this._alive))
8724
+ .subscribe((cellValue) => {
8725
+ if (this.row === cellValue.row) {
8726
+ this.cdr.detectChanges();
8727
+ }
8728
+ });
8688
8729
  }
8689
8730
  start(initiator, type) {
8690
8731
  this._edit = true;
@@ -9437,14 +9478,13 @@ class TableComponent {
9437
9478
  if (changes.hasOwnProperty('rowEditable')) {
9438
9479
  this._svc.rowEditable = this.rowEditable;
9439
9480
  }
9440
- if (changes.hasOwnProperty('cellEditable')) {
9441
- this._svc.cellEditable = this.cellEditable;
9442
- }
9443
9481
  if (changes.hasOwnProperty('cookieName')) {
9444
9482
  this._svc.setCookieName(this.cookieName);
9445
9483
  }
9446
9484
  if (changes.hasOwnProperty('columns')) {
9447
- this._svc.setColumns(this.columns);
9485
+ if (this.columns !== null && this.columns !== undefined) {
9486
+ this._svc.setColumns(this.columns);
9487
+ }
9448
9488
  }
9449
9489
  if (changes.hasOwnProperty('data')) {
9450
9490
  this._svc.setData(this.data);
@@ -9535,7 +9575,7 @@ class TableComponent {
9535
9575
  }
9536
9576
  }
9537
9577
  TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, deps: [{ token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9538
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", state: "state", rowHeight: "rowHeight", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackBy: "trackBy", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", cellEditable: "cellEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", contextMenuConfig: "contextMenuConfig", showHeadCellMenu: "showHeadCellMenu" }, outputs: { stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", cellKeyUp: "cellKeyUp", pasteRows: "pasteRows", addRow: "addRow", deleteRows: "deleteRows", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "window:keyup": "keyup($event)", "mousedown": "mousedown($event)", "contextmenu": "contextMenu($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.paste\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "rowHeight", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ClickOutsideDirective, selector: "[tetaClickOutside]", inputs: ["rightClick", "tetaClickOutside"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9578
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: TableComponent, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", state: "state", rowHeight: "rowHeight", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", grouping: "grouping", groupRowComponent: "groupRowComponent", openLevels: "openLevels", tree: "tree", trackBy: "trackBy", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", contextMenuConfig: "contextMenuConfig", showHeadCellMenu: "showHeadCellMenu" }, outputs: { stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", cellKeyUp: "cellKeyUp", pasteRows: "pasteRows", addRow: "addRow", deleteRows: "deleteRows", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "window:keyup": "keyup($event)", "mousedown": "mousedown($event)", "contextmenu": "contextMenu($event)" }, properties: { "class.table": "this.tableClass" } }, providers: [TableService], viewQueries: [{ propertyName: "menu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.paste\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""], components: [{ type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "rowHeight", "additionalComponent", "tree", "aggregate", "grouping", "groupRowComponent", "openLevels", "selectType", "rowClass"] }, { type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: ClickOutsideDirective, selector: "[tetaClickOutside]", inputs: ["rightClick", "tetaClickOutside"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9539
9579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
9540
9580
  type: Component,
9541
9581
  args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], template: "<div class=\"column column_auto\">\n <teta-table-head [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <teta-table-body\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [additionalComponent]=\"detailComponent\"\n [grouping]=\"grouping\"\n [groupRowComponent]=\"groupRowComponent\"\n [openLevels]=\"openLevels\"\n [selectType]=\"selectType\"\n [rowHeight]=\"rowHeight\"\n [rowClass]=\"rowClass\"\n [tree]=\"tree\"></teta-table-body>\n</div>\n\n<div #contextMenu\n class=\"list shadow-1\"\n style=\"position: fixed; z-index: 2;\"\n [style.visibility]=\"showContextMenu ? 'visible ' : 'hidden'\"\n [tetaClickOutside]=\"showContextMenu\"\n (clickOutside)=\"showContextMenu = false\">\n <ng-container *ngIf=\"contextMenuConfig?.add\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"rowAdd()\">\n <teta-icon [name]=\"'add'\" [palette]=\"'text'\"></teta-icon>\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.copy\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'copySelected'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"copy([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'copy'\" [palette]=\"'text'\"></teta-icon>\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.paste\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pasteData()\">\n <teta-icon [name]=\"'paste'\" [palette]=\"'text'\"></teta-icon>\n \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"contextMenuConfig?.delete\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete(selectedRowsList)\"\n *ngIf=\"selectedRowsList?.length > 0\">\n <teta-icon [name]=\"'deleteSelected'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"delete([contextMenuTarget.row])\"\n *ngIf=\"contextMenuTarget\">\n <teta-icon [name]=\"'delete'\" [palette]=\"'text'\"></teta-icon>\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\n </div>\n </ng-container>\n</div>\n", styles: [""] }]
@@ -9579,8 +9619,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9579
9619
  type: Input
9580
9620
  }], rowEditable: [{
9581
9621
  type: Input
9582
- }], cellEditable: [{
9583
- type: Input
9584
9622
  }], rowClass: [{
9585
9623
  type: Input
9586
9624
  }], scrollToIndex: [{
@@ -9685,27 +9723,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9685
9723
  }]
9686
9724
  }] });
9687
9725
 
9688
- class HintModule {
9689
- }
9690
- HintModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9691
- HintModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, declarations: [HintDirective], imports: [CommonModule,
9692
- DynamicComponentModule], exports: [HintDirective] });
9693
- HintModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, imports: [[
9694
- CommonModule,
9695
- DynamicComponentModule
9696
- ]] });
9697
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HintModule, decorators: [{
9698
- type: NgModule,
9699
- args: [{
9700
- declarations: [HintDirective],
9701
- exports: [HintDirective],
9702
- imports: [
9703
- CommonModule,
9704
- DynamicComponentModule
9705
- ]
9706
- }]
9707
- }] });
9708
-
9709
9726
  class TetaTemplateModule {
9710
9727
  }
9711
9728
  TetaTemplateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TetaTemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -10590,6 +10607,7 @@ var ScaleType;
10590
10607
  ScaleType[ScaleType["log"] = 1] = "log";
10591
10608
  ScaleType[ScaleType["pow"] = 2] = "pow";
10592
10609
  ScaleType[ScaleType["sqrt"] = 3] = "sqrt";
10610
+ ScaleType[ScaleType["time"] = 4] = "time";
10593
10611
  })(ScaleType || (ScaleType = {}));
10594
10612
 
10595
10613
  var ZoomType;