@tetacom/ng-components 1.0.23 → 1.0.27

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 (355) 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/table/contract/table-column.d.ts +9 -2
  6. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +2 -1
  7. package/component/table/service/table.service.d.ts +0 -1
  8. package/component/table/table/table.component.d.ts +1 -2
  9. package/directive/click-outside/click-outside.directive.d.ts +3 -2
  10. package/esm2020/common/contract/auto-close-ignore-case.mjs +1 -1
  11. package/esm2020/common/contract/constructor-type.mjs +1 -1
  12. package/esm2020/common/contract/dynamic-data.mjs +1 -1
  13. package/esm2020/common/contract/i-dictionary.mjs +1 -1
  14. package/esm2020/common/contract/i-id-name.mjs +1 -1
  15. package/esm2020/common/contract/i-rect.mjs +1 -1
  16. package/esm2020/common/contract/i-tree-data.mjs +1 -1
  17. package/esm2020/common/contract/public-api.mjs +1 -1
  18. package/esm2020/common/contract/teta-content-ref.mjs +1 -1
  19. package/esm2020/common/enum/align.enum.mjs +1 -1
  20. package/esm2020/common/enum/public-api.mjs +1 -1
  21. package/esm2020/common/enum/teta-size.enum.mjs +1 -1
  22. package/esm2020/common/enum/vertical-align.enum.mjs +1 -1
  23. package/esm2020/common/public-api.mjs +1 -1
  24. package/esm2020/common/service/click.service.mjs +1 -1
  25. package/esm2020/common/service/dynamic-component.service.mjs +1 -1
  26. package/esm2020/common/service/overlay-container.service.mjs +1 -1
  27. package/esm2020/common/service/public-api.mjs +1 -1
  28. package/esm2020/common/util/array-util.mjs +1 -1
  29. package/esm2020/common/util/dom-util.mjs +1 -1
  30. package/esm2020/common/util/position-util.mjs +1 -1
  31. package/esm2020/common/util/public-api.mjs +1 -1
  32. package/esm2020/component/accordion/accordion/accordion.component.mjs +1 -1
  33. package/esm2020/component/accordion/accordion-content.directive.mjs +1 -1
  34. package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +1 -1
  35. package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +1 -1
  36. package/esm2020/component/accordion/accordion.module.mjs +1 -1
  37. package/esm2020/component/accordion/public-api.mjs +1 -1
  38. package/esm2020/component/button/button/button.component.mjs +1 -1
  39. package/esm2020/component/button/button.module.mjs +1 -1
  40. package/esm2020/component/button/public-api.mjs +1 -1
  41. package/esm2020/component/chart/chart/chart.component.mjs +1 -1
  42. package/esm2020/component/chart/chart.module.mjs +1 -1
  43. package/esm2020/component/chart/core/axis-creator.mjs +1 -1
  44. package/esm2020/component/chart/core/chart.mjs +1 -1
  45. package/esm2020/component/chart/core/public-api.mjs +1 -1
  46. package/esm2020/component/chart/drawer/area-drawer.mjs +1 -1
  47. package/esm2020/component/chart/drawer/bar-drawer.mjs +1 -1
  48. package/esm2020/component/chart/drawer/contour-drawer.mjs +1 -1
  49. package/esm2020/component/chart/drawer/default-drawer-mapping.mjs +1 -1
  50. package/esm2020/component/chart/drawer/line-drawer.mjs +1 -1
  51. package/esm2020/component/chart/drawer/pie-drawer.mjs +1 -1
  52. package/esm2020/component/chart/drawer/public-api.mjs +1 -1
  53. package/esm2020/component/chart/drawer/scatter-drawer.mjs +1 -1
  54. package/esm2020/component/chart/drawer/spline-drawer.mjs +1 -1
  55. package/esm2020/component/chart/legend-drawer/default-drawer-legend-mapping.mjs +1 -1
  56. package/esm2020/component/chart/legend-drawer/gradient-drawer.mjs +1 -1
  57. package/esm2020/component/chart/legend-drawer/swatch-drawer.mjs +1 -1
  58. package/esm2020/component/chart/model/annotation.mjs +1 -1
  59. package/esm2020/component/chart/model/axis-options.mjs +1 -1
  60. package/esm2020/component/chart/model/chart-bounds.mjs +1 -1
  61. package/esm2020/component/chart/model/chart-options.mjs +1 -1
  62. package/esm2020/component/chart/model/enum/axis-type.mjs +1 -1
  63. package/esm2020/component/chart/model/enum/dispatch-type.mjs +1 -1
  64. package/esm2020/component/chart/model/enum/drag-point-type.mjs +1 -1
  65. package/esm2020/component/chart/model/enum/legend-type.mjs +1 -1
  66. package/esm2020/component/chart/model/enum/public-api.mjs +1 -1
  67. package/esm2020/component/chart/model/enum/scale-type.mjs +2 -1
  68. package/esm2020/component/chart/model/enum/scale.mjs +1 -1
  69. package/esm2020/component/chart/model/enum/series-type.mjs +1 -1
  70. package/esm2020/component/chart/model/enum/zoom-type.mjs +1 -1
  71. package/esm2020/component/chart/model/i-drag-event.mjs +1 -1
  72. package/esm2020/component/chart/model/i-drawer-legend.mjs +1 -1
  73. package/esm2020/component/chart/model/i-drawer.mjs +1 -1
  74. package/esm2020/component/chart/model/i-zoom-event.mjs +1 -1
  75. package/esm2020/component/chart/model/plot-band.mjs +1 -1
  76. package/esm2020/component/chart/model/plot-line.mjs +1 -1
  77. package/esm2020/component/chart/model/point/bar-point.mjs +1 -1
  78. package/esm2020/component/chart/model/point/base-point.mjs +1 -1
  79. package/esm2020/component/chart/model/point/contour-point.mjs +1 -1
  80. package/esm2020/component/chart/model/point/marker-options.mjs +1 -1
  81. package/esm2020/component/chart/model/point/public-api.mjs +1 -1
  82. package/esm2020/component/chart/model/point/scatter-point.mjs +1 -1
  83. package/esm2020/component/chart/model/public-api.mjs +1 -1
  84. package/esm2020/component/chart/model/series.mjs +1 -1
  85. package/esm2020/component/chart/model/tooltip-options.mjs +1 -1
  86. package/esm2020/component/chart/public-api.mjs +1 -1
  87. package/esm2020/component/chart-3d/chart-3d.module.mjs +1 -1
  88. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +4 -4
  89. package/esm2020/component/chart-3d/model/base-3d-point.mjs +1 -1
  90. package/esm2020/component/chart-3d/model/chart-3d-options.mjs +1 -1
  91. package/esm2020/component/chart-3d/model/public-api.mjs +1 -1
  92. package/esm2020/component/chart-3d/model/series-3d.mjs +1 -1
  93. package/esm2020/component/chart-3d/public-api.mjs +1 -1
  94. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +1 -1
  95. package/esm2020/component/checkbox/checkbox.module.mjs +1 -1
  96. package/esm2020/component/checkbox/public-api.mjs +1 -1
  97. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +1 -1
  98. package/esm2020/component/date-picker/date-picker.module.mjs +1 -1
  99. package/esm2020/component/date-picker/day-select/day-select.component.mjs +1 -1
  100. package/esm2020/component/date-picker/model/date-period.mjs +1 -1
  101. package/esm2020/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
  102. package/esm2020/component/date-picker/model/day-model.mjs +1 -1
  103. package/esm2020/component/date-picker/model/picker-locale-model.mjs +1 -1
  104. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +1 -1
  105. package/esm2020/component/date-picker/month-select/month-select.component.mjs +1 -1
  106. package/esm2020/component/date-picker/public-api.mjs +1 -1
  107. package/esm2020/component/date-picker/service/picker-locale.service.mjs +1 -1
  108. package/esm2020/component/date-picker/service/picker-touch.service.mjs +1 -1
  109. package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +1 -1
  110. package/esm2020/component/date-picker/util/date-picker-util.mjs +1 -1
  111. package/esm2020/component/date-picker/year-select/year-select.component.mjs +1 -1
  112. package/esm2020/component/delimiter/delimiter/delimiter.component.mjs +1 -1
  113. package/esm2020/component/delimiter/delimiter.module.mjs +1 -1
  114. package/esm2020/component/delimiter/public-api.mjs +1 -1
  115. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +1 -1
  116. package/esm2020/component/dropdown/dropdown-base.mjs +1 -1
  117. package/esm2020/component/dropdown/dropdown-content.directive.mjs +1 -1
  118. package/esm2020/component/dropdown/dropdown-head.directive.mjs +1 -1
  119. package/esm2020/component/dropdown/dropdown.directive.mjs +1 -1
  120. package/esm2020/component/dropdown/dropdown.module.mjs +1 -1
  121. package/esm2020/component/dropdown/public-api.mjs +1 -1
  122. package/esm2020/component/dynamic-component/dynamic-component.module.mjs +1 -1
  123. package/esm2020/component/dynamic-component/popup-content/popup-content.component.mjs +1 -1
  124. package/esm2020/component/dynamic-component/public-api.mjs +1 -1
  125. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +1 -1
  126. package/esm2020/component/expand-panel/expand-panel-content.directive.mjs +1 -1
  127. package/esm2020/component/expand-panel/expand-panel-head.directive.mjs +1 -1
  128. package/esm2020/component/expand-panel/expand-panel.module.mjs +1 -1
  129. package/esm2020/component/expand-panel/public-api.mjs +1 -1
  130. package/esm2020/component/file-upload/file-item/file-item.component.mjs +4 -4
  131. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +1 -1
  132. package/esm2020/component/file-upload/file-upload.module.mjs +1 -1
  133. package/esm2020/component/file-upload/public-api.mjs +1 -1
  134. package/esm2020/component/filter/base/filter-base.mjs +1 -1
  135. package/esm2020/component/filter/base/filter-component-base.mjs +1 -1
  136. package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +1 -1
  137. package/esm2020/component/filter/contarct/boolean-filter.mjs +1 -1
  138. package/esm2020/component/filter/contarct/date-filter-value.mjs +1 -1
  139. package/esm2020/component/filter/contarct/date-filter.mjs +1 -1
  140. package/esm2020/component/filter/contarct/filter-component-map.mjs +1 -1
  141. package/esm2020/component/filter/contarct/filter-item.mjs +1 -1
  142. package/esm2020/component/filter/contarct/filter-state.mjs +1 -1
  143. package/esm2020/component/filter/contarct/i-filter.mjs +1 -1
  144. package/esm2020/component/filter/contarct/list-filter.mjs +1 -1
  145. package/esm2020/component/filter/contarct/numeric-filter-value.mjs +1 -1
  146. package/esm2020/component/filter/contarct/numeric-filter.mjs +1 -1
  147. package/esm2020/component/filter/contarct/sort-param.mjs +1 -1
  148. package/esm2020/component/filter/contarct/string-filter.mjs +1 -1
  149. package/esm2020/component/filter/date-filter/date-filter.component.mjs +1 -1
  150. package/esm2020/component/filter/enum/filter-type.enum.mjs +1 -1
  151. package/esm2020/component/filter/enum/list-filter-type.enum.mjs +1 -1
  152. package/esm2020/component/filter/enum/string-filter-type.enum.mjs +1 -1
  153. package/esm2020/component/filter/filter-host/filter-host.component.mjs +1 -1
  154. package/esm2020/component/filter/filter-panel/filter-panel.component.mjs +1 -1
  155. package/esm2020/component/filter/filter.module.mjs +1 -1
  156. package/esm2020/component/filter/list-filter/list-filter.component.mjs +1 -1
  157. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +1 -1
  158. package/esm2020/component/filter/public-api.mjs +1 -1
  159. package/esm2020/component/filter/string-filter/string-filter.component.mjs +1 -1
  160. package/esm2020/component/icon/icon/icon.component.mjs +1 -1
  161. package/esm2020/component/icon/icon-sprite.directive.mjs +1 -1
  162. package/esm2020/component/icon/icon.module.mjs +1 -1
  163. package/esm2020/component/icon/icon.service.mjs +1 -1
  164. package/esm2020/component/icon/public-api.mjs +1 -1
  165. package/esm2020/component/input/form-group-title/form-group-title.component.mjs +1 -1
  166. package/esm2020/component/input/input/input.component.mjs +1 -1
  167. package/esm2020/component/input/input.module.mjs +1 -1
  168. package/esm2020/component/input/public-api.mjs +1 -1
  169. package/esm2020/component/input/text-field/text-field.component.mjs +1 -1
  170. package/esm2020/component/message/message/message.component.mjs +1 -1
  171. package/esm2020/component/message/message-host/message-host.component.mjs +1 -1
  172. package/esm2020/component/message/message.module.mjs +1 -1
  173. package/esm2020/component/message/message.service.mjs +1 -1
  174. package/esm2020/component/message/model/message.mjs +1 -1
  175. package/esm2020/component/message/public-api.mjs +1 -1
  176. package/esm2020/component/modal/dialog/dialog.component.mjs +1 -1
  177. package/esm2020/component/modal/dialog.service.mjs +1 -1
  178. package/esm2020/component/modal/modal-container/modal-container.component.mjs +1 -1
  179. package/esm2020/component/modal/modal.module.mjs +1 -1
  180. package/esm2020/component/modal/modal.service.mjs +1 -1
  181. package/esm2020/component/modal/model/current-modal.mjs +1 -1
  182. package/esm2020/component/modal/model/i-modal-config.mjs +1 -1
  183. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  184. package/esm2020/component/modal/model/modal-close-reason.enum.mjs +1 -1
  185. package/esm2020/component/modal/model/modal-instance.mjs +1 -1
  186. package/esm2020/component/modal/public-api.mjs +1 -1
  187. package/esm2020/component/pager/model/pager-state.mjs +1 -1
  188. package/esm2020/component/pager/pager/pager.component.mjs +1 -1
  189. package/esm2020/component/pager/pager.module.mjs +1 -1
  190. package/esm2020/component/pager/public-api.mjs +1 -1
  191. package/esm2020/component/pager/util/pager-util.mjs +1 -1
  192. package/esm2020/component/panel/panel/panel.component.mjs +1 -1
  193. package/esm2020/component/panel/panel.module.mjs +1 -1
  194. package/esm2020/component/panel/public-api.mjs +1 -1
  195. package/esm2020/component/progress-bar/progress-bar/progress-bar.component.mjs +1 -1
  196. package/esm2020/component/progress-bar/progress-bar.module.mjs +1 -1
  197. package/esm2020/component/progress-bar/public-api.mjs +1 -1
  198. package/esm2020/component/property-grid/default/date-item-default/date-item-default.component.mjs +1 -1
  199. package/esm2020/component/property-grid/default/list-item-default/list-item-default.component.mjs +1 -1
  200. package/esm2020/component/property-grid/default/numeric-item-default/numeric-item-default.component.mjs +1 -1
  201. package/esm2020/component/property-grid/default/string-item-default/string-item-default.component.mjs +1 -1
  202. package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +1 -1
  203. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +1 -1
  204. package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +1 -1
  205. package/esm2020/component/property-grid/property-grid.module.mjs +1 -1
  206. package/esm2020/component/property-grid/public-api.mjs +1 -1
  207. package/esm2020/component/public-api.mjs +1 -1
  208. package/esm2020/component/radio/public-api.mjs +1 -1
  209. package/esm2020/component/radio/radio/radio.component.mjs +1 -1
  210. package/esm2020/component/radio/radio-button/radio-button.component.mjs +1 -1
  211. package/esm2020/component/radio/radio.module.mjs +1 -1
  212. package/esm2020/component/resize-panel/public-api.mjs +1 -1
  213. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +1 -1
  214. package/esm2020/component/resize-panel/resize-panel.module.mjs +1 -1
  215. package/esm2020/component/select/public-api.mjs +1 -1
  216. package/esm2020/component/select/select/select.component.mjs +1 -1
  217. package/esm2020/component/select/select-option.directive.mjs +1 -1
  218. package/esm2020/component/select/select-value.directive.mjs +1 -1
  219. package/esm2020/component/select/select.module.mjs +1 -1
  220. package/esm2020/component/sidebar/public-api.mjs +1 -1
  221. package/esm2020/component/sidebar/sidebar/sidebar.component.mjs +1 -1
  222. package/esm2020/component/sidebar/sidebar-position.enum.mjs +1 -1
  223. package/esm2020/component/sidebar/sidebar.module.mjs +1 -1
  224. package/esm2020/component/switch/public-api.mjs +1 -1
  225. package/esm2020/component/switch/switch/switch.component.mjs +1 -1
  226. package/esm2020/component/switch/switch-button/switch-button.component.mjs +1 -1
  227. package/esm2020/component/switch/switch.module.mjs +1 -1
  228. package/esm2020/component/switch/switch.service.mjs +1 -1
  229. package/esm2020/component/table/base/cell-component-base.mjs +21 -12
  230. package/esm2020/component/table/base/detail-component-base.mjs +1 -1
  231. package/esm2020/component/table/base/group-row-component-base.mjs +1 -1
  232. package/esm2020/component/table/base/head-cell-component-base.mjs +1 -1
  233. package/esm2020/component/table/cell/cell.component.mjs +1 -1
  234. package/esm2020/component/table/cell-host/cell-host.component.mjs +1 -1
  235. package/esm2020/component/table/contract/cell-components-map.mjs +1 -1
  236. package/esm2020/component/table/contract/column-reorder-event.mjs +1 -1
  237. package/esm2020/component/table/contract/column-resize-event.mjs +1 -1
  238. package/esm2020/component/table/contract/i-cell-coordinates.mjs +1 -1
  239. package/esm2020/component/table/contract/i-cell-event.mjs +1 -1
  240. package/esm2020/component/table/contract/i-cell-value.mjs +1 -1
  241. package/esm2020/component/table/contract/public-api.mjs +1 -1
  242. package/esm2020/component/table/contract/sort-event.mjs +1 -1
  243. package/esm2020/component/table/contract/table-column-store.mjs +1 -1
  244. package/esm2020/component/table/contract/table-column.mjs +2 -1
  245. package/esm2020/component/table/contract/table-context-menu-config.mjs +1 -1
  246. package/esm2020/component/table/contract/table-row.mjs +1 -1
  247. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +1 -1
  248. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +1 -1
  249. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
  250. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +1 -1
  251. package/esm2020/component/table/default/group-row/group-row.component.mjs +1 -1
  252. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +1 -1
  253. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +2 -1
  254. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +3 -2
  255. package/esm2020/component/table/enum/aggregation-type.enum.mjs +1 -1
  256. package/esm2020/component/table/enum/edit-event.enum.mjs +1 -1
  257. package/esm2020/component/table/enum/edit-type.enum.mjs +1 -1
  258. package/esm2020/component/table/enum/public-api.mjs +1 -1
  259. package/esm2020/component/table/enum/select-type.enum.mjs +1 -1
  260. package/esm2020/component/table/head-cell/head-cell.component.mjs +1 -1
  261. package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +3 -3
  262. package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +1 -1
  263. package/esm2020/component/table/public-api.mjs +1 -1
  264. package/esm2020/component/table/selection-cell/selection-cell.component.mjs +1 -1
  265. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  266. package/esm2020/component/table/service/table.service.mjs +9 -4
  267. package/esm2020/component/table/table/table.component.mjs +5 -8
  268. package/esm2020/component/table/table-body/table-body.component.mjs +1 -1
  269. package/esm2020/component/table/table-head/table-head.component.mjs +1 -1
  270. package/esm2020/component/table/table-head-group/table-head-group.component.mjs +1 -1
  271. package/esm2020/component/table/table.module.mjs +1 -1
  272. package/esm2020/component/table/util/public-api.mjs +1 -1
  273. package/esm2020/component/table/util/state-util.mjs +1 -1
  274. package/esm2020/component/table/util/table-util.mjs +1 -1
  275. package/esm2020/component/tabs/public-api.mjs +1 -1
  276. package/esm2020/component/tabs/tab/tab.component.mjs +1 -1
  277. package/esm2020/component/tabs/tab-content.directive.mjs +1 -1
  278. package/esm2020/component/tabs/tab-title.directive.mjs +1 -1
  279. package/esm2020/component/tabs/tabs/tabs.component.mjs +1 -1
  280. package/esm2020/component/tabs/tabs.module.mjs +1 -1
  281. package/esm2020/component/theme-switch/public-api.mjs +1 -1
  282. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +1 -1
  283. package/esm2020/component/theme-switch/theme-switch.module.mjs +1 -1
  284. package/esm2020/component/theme-switch/theme-switch.service.mjs +1 -1
  285. package/esm2020/component/toggle/public-api.mjs +1 -1
  286. package/esm2020/component/toggle/toggle/toggle.component.mjs +1 -1
  287. package/esm2020/component/toggle/toggle.module.mjs +1 -1
  288. package/esm2020/component/toolbar/public-api.mjs +1 -1
  289. package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +1 -1
  290. package/esm2020/component/toolbar/toolbar.module.mjs +1 -1
  291. package/esm2020/component/tree/public-api.mjs +1 -1
  292. package/esm2020/component/tree/tree/tree.component.mjs +1 -1
  293. package/esm2020/component/tree/tree-item/tree-item.component.mjs +1 -1
  294. package/esm2020/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +1 -1
  295. package/esm2020/component/tree/tree.module.mjs +1 -1
  296. package/esm2020/component/tree/tree.service.mjs +1 -1
  297. package/esm2020/directive/click-outside/click-outside.directive.mjs +12 -5
  298. package/esm2020/directive/click-outside/click-outside.module.mjs +1 -1
  299. package/esm2020/directive/click-outside/public-api.mjs +1 -1
  300. package/esm2020/directive/context-menu/context-menu.directive.mjs +1 -1
  301. package/esm2020/directive/context-menu/context-menu.module.mjs +1 -1
  302. package/esm2020/directive/context-menu/public-api.mjs +1 -1
  303. package/esm2020/directive/disable-control/disable-control.directive.mjs +1 -1
  304. package/esm2020/directive/disable-control/disable-control.module.mjs +1 -1
  305. package/esm2020/directive/disable-control/public-api.mjs +1 -1
  306. package/esm2020/directive/drag-sort/drag-sort-container.directive.mjs +1 -1
  307. package/esm2020/directive/drag-sort/drag-sort-event.mjs +1 -1
  308. package/esm2020/directive/drag-sort/drag-sort-item.directive.mjs +1 -1
  309. package/esm2020/directive/drag-sort/drag-sort.module.mjs +1 -1
  310. package/esm2020/directive/drag-sort/public-api.mjs +1 -1
  311. package/esm2020/directive/dynamic-content-base.directive.mjs +1 -1
  312. package/esm2020/directive/highlight/highlight.directive.mjs +1 -1
  313. package/esm2020/directive/highlight/highlight.module.mjs +1 -1
  314. package/esm2020/directive/highlight/public-api.mjs +1 -1
  315. package/esm2020/directive/hint/hint.directive.mjs +1 -1
  316. package/esm2020/directive/hint/hint.module.mjs +1 -1
  317. package/esm2020/directive/hint/public-api.mjs +1 -1
  318. package/esm2020/directive/loader/loader.directive.mjs +1 -1
  319. package/esm2020/directive/loader/loader.module.mjs +1 -1
  320. package/esm2020/directive/loader/public-api.mjs +1 -1
  321. package/esm2020/directive/no-autofill/no-autofill.directive.mjs +1 -1
  322. package/esm2020/directive/no-autofill/no-autofill.module.mjs +1 -1
  323. package/esm2020/directive/no-autofill/public-api.mjs +1 -1
  324. package/esm2020/directive/only-number/only-number.directive.mjs +1 -1
  325. package/esm2020/directive/only-number/only-number.module.mjs +1 -1
  326. package/esm2020/directive/only-number/public-api.mjs +1 -1
  327. package/esm2020/directive/public-api.mjs +1 -1
  328. package/esm2020/directive/resize-drag/public-api.mjs +1 -1
  329. package/esm2020/directive/resize-drag/resize-drag.directive.mjs +1 -1
  330. package/esm2020/directive/resize-drag/resize-drag.module.mjs +1 -1
  331. package/esm2020/directive/teta-template/public-api.mjs +1 -1
  332. package/esm2020/directive/teta-template/teta-template.directive.mjs +1 -1
  333. package/esm2020/directive/teta-template/teta-template.module.mjs +1 -1
  334. package/esm2020/directive/tooltip/public-api.mjs +1 -1
  335. package/esm2020/directive/tooltip/tooltip.directive.mjs +1 -1
  336. package/esm2020/directive/tooltip/tooltip.module.mjs +1 -1
  337. package/esm2020/pipe/number-pipe/number-pipe.module.mjs +1 -1
  338. package/esm2020/pipe/number-pipe/number.pipe.mjs +1 -1
  339. package/esm2020/pipe/number-pipe/public-api.mjs +1 -1
  340. package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +1 -1
  341. package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +1 -1
  342. package/esm2020/pipe/public-api.mjs +1 -1
  343. package/esm2020/pipe/util/number-helper.mjs +1 -1
  344. package/esm2020/public-api.mjs +1 -1
  345. package/esm2020/tetacom-ng-components.mjs +1 -1
  346. package/esm2020/util/date-util.mjs +1 -1
  347. package/esm2020/util/forms-util.mjs +1 -1
  348. package/esm2020/util/public-api.mjs +1 -1
  349. package/esm2020/util/string-util.mjs +1 -1
  350. package/fesm2015/tetacom-ng-components.mjs +55 -31
  351. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  352. package/fesm2020/tetacom-ng-components.mjs +53 -30
  353. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  354. package/package.json +1 -1
  355. 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';
@@ -2497,8 +2498,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
2497
2498
  }] });
2498
2499
 
2499
2500
  class ClickOutsideDirective {
2500
- constructor(_elementRef) {
2501
+ constructor(_elementRef, _ngZone) {
2501
2502
  this._elementRef = _elementRef;
2503
+ this._ngZone = _ngZone;
2502
2504
  this.clickOutside = new EventEmitter();
2503
2505
  this.rightClick = false;
2504
2506
  this._handleEvents = false;
@@ -2508,6 +2510,7 @@ class ClickOutsideDirective {
2508
2510
  }
2509
2511
  const clickedInside = DomUtil.clickedInside(this._elementRef.nativeElement, click);
2510
2512
  if (!clickedInside) {
2513
+ console.log('clickedInside', clickedInside);
2511
2514
  this.clickOutside.emit(click);
2512
2515
  }
2513
2516
  };
@@ -2515,7 +2518,11 @@ class ClickOutsideDirective {
2515
2518
  set tetaClickOutside(val) {
2516
2519
  this._handleEvents = val;
2517
2520
  if (this._handleEvents) {
2518
- this.addListener(this.rightClick);
2521
+ this._ngZone.runOutsideAngular(() => {
2522
+ setTimeout(() => {
2523
+ this.addListener(this.rightClick);
2524
+ });
2525
+ });
2519
2526
  }
2520
2527
  else {
2521
2528
  this.removeListener();
@@ -2529,6 +2536,7 @@ class ClickOutsideDirective {
2529
2536
  }
2530
2537
  addListener(handleRightClick) {
2531
2538
  window.addEventListener('click', this.listener);
2539
+ console.log('handleRightClick', handleRightClick);
2532
2540
  if (handleRightClick) {
2533
2541
  window.addEventListener('contextmenu', this.listener);
2534
2542
  }
@@ -2538,14 +2546,14 @@ class ClickOutsideDirective {
2538
2546
  window.removeEventListener('contextmenu', this.listener);
2539
2547
  }
2540
2548
  }
2541
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2549
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
2542
2550
  ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: ClickOutsideDirective, selector: "[tetaClickOutside]", inputs: { rightClick: "rightClick", tetaClickOutside: "tetaClickOutside" }, outputs: { clickOutside: "clickOutside" }, ngImport: i0 });
2543
2551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ClickOutsideDirective, decorators: [{
2544
2552
  type: Directive,
2545
2553
  args: [{
2546
2554
  selector: '[tetaClickOutside]',
2547
2555
  }]
2548
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
2556
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { clickOutside: [{
2549
2557
  type: Output
2550
2558
  }], rightClick: [{
2551
2559
  type: Input
@@ -3351,10 +3359,10 @@ class FileItemComponent {
3351
3359
  ngOnInit() { }
3352
3360
  }
3353
3361
  FileItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3354
- FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: FileItemComponent, selector: "teta-file-item", ngImport: i0, template: "<p>file-item works!</p>\n", styles: [""] });
3362
+ FileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: FileItemComponent, selector: "teta-file-item", ngImport: i0, template: "<p>file-item works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3355
3363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FileItemComponent, decorators: [{
3356
3364
  type: Component,
3357
- args: [{ selector: 'teta-file-item', template: "<p>file-item works!</p>\n", styles: [""] }]
3365
+ args: [{ selector: 'teta-file-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>file-item works!</p>\n", styles: [""] }]
3358
3366
  }], ctorParameters: function () { return []; } });
3359
3367
 
3360
3368
  class FileUploadModule {
@@ -6849,6 +6857,7 @@ class TableColumn extends FilterItem {
6849
6857
  this.groupingOrder = (_j = options === null || options === void 0 ? void 0 : options.groupingOrder) !== null && _j !== void 0 ? _j : 0;
6850
6858
  this.groupByFn = options === null || options === void 0 ? void 0 : options.groupByFn;
6851
6859
  this.headCellComponent = options === null || options === void 0 ? void 0 : options.headCellComponent;
6860
+ this.headDropdownTemplate = options === null || options === void 0 ? void 0 : options.headDropdownTemplate;
6852
6861
  this.cellComponent = options === null || options === void 0 ? void 0 : options.cellComponent;
6853
6862
  this.aggregate = options === null || options === void 0 ? void 0 : options.aggregate;
6854
6863
  this.defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;
@@ -7062,6 +7071,7 @@ class TableService {
7062
7071
  this.hiddenColumns = this._hiddenColumns.asObservable();
7063
7072
  this.scrollIndex = this._scrollIndex.asObservable();
7064
7073
  }
7074
+ // cellEditable: boolean | ((row: ICellCoordinates<T>) => boolean);
7065
7075
  get dragSource() {
7066
7076
  return this._dragSource;
7067
7077
  }
@@ -7074,7 +7084,11 @@ class TableService {
7074
7084
  }
7075
7085
  setColumns(columns) {
7076
7086
  this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
7077
- this.initialColumnsHash = hash.sha1(this.initialColumns);
7087
+ this.initialColumnsHash = hash__default(this.initialColumns, {
7088
+ algorithm: 'sha1',
7089
+ ignoreUnknown: true,
7090
+ excludeKeys: key => key === 'headDropdownTemplate',
7091
+ });
7078
7092
  const restored = this.restoreColumns();
7079
7093
  if (restored) {
7080
7094
  this.setDisplayColumns(restored);
@@ -7302,7 +7316,7 @@ class TableService {
7302
7316
  if (this._currentEditCell != null) {
7303
7317
  this._editCellStop.next(this._currentEditCell);
7304
7318
  }
7305
- if (this.boolOrFuncCallback(this.cellEditable)(cellCoordinates)) {
7319
+ if (this.boolOrFuncCallback(cellCoordinates.column.editable)(cellCoordinates)) {
7306
7320
  this._editCellStart.next(cellCoordinates);
7307
7321
  this._currentEditCell = cellCoordinates;
7308
7322
  }
@@ -8240,10 +8254,10 @@ class HeadCellDropdownComponent {
8240
8254
  }
8241
8255
  }
8242
8256
  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 });
8243
- 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 });
8257
+ 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 });
8244
8258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
8245
8259
  type: Component,
8246
- 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"] }]
8260
+ 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"] }]
8247
8261
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
8248
8262
  type: Input
8249
8263
  }], column: [{
@@ -8655,7 +8669,7 @@ class CellComponentBase {
8655
8669
  }
8656
8670
  get edit() {
8657
8671
  return (this._edit &&
8658
- this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8672
+ this.svc.boolOrFuncCallback(this.column.editable)({
8659
8673
  column: this.column,
8660
8674
  row: this.row,
8661
8675
  }));
@@ -8674,14 +8688,16 @@ class CellComponentBase {
8674
8688
  }
8675
8689
  init() {
8676
8690
  this.svc.editRowStart
8677
- .pipe(takeWhile((_) => this._alive), filter((_) => this.column.editable))
8691
+ .pipe(takeWhile((_) => this._alive))
8678
8692
  .subscribe((cell) => {
8679
8693
  if (this.row === (cell === null || cell === void 0 ? void 0 : cell.row) &&
8680
- !this._edit &&
8681
- this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8682
- column: this.column,
8683
- row: this.row,
8684
- })) {
8694
+ !this._edit
8695
+ // &&
8696
+ // this.svc.boolOrFuncCallback(this.svc.cellEditable)({
8697
+ // column: this.column,
8698
+ // row: this.row,
8699
+ // })
8700
+ ) {
8685
8701
  this.start(cell, 'row');
8686
8702
  }
8687
8703
  if (this.row !== (cell === null || cell === void 0 ? void 0 : cell.row) && this._edit) {
@@ -8689,7 +8705,7 @@ class CellComponentBase {
8689
8705
  }
8690
8706
  });
8691
8707
  this.svc.editCellStart
8692
- .pipe(takeWhile((_) => this._alive), filter((_) => this.column.editable))
8708
+ .pipe(takeWhile((_) => this._alive))
8693
8709
  .subscribe((cell) => {
8694
8710
  if (this.row === cell.row &&
8695
8711
  this.column.name === cell.column.name &&
@@ -8704,12 +8720,19 @@ class CellComponentBase {
8704
8720
  this.svc.valueSet
8705
8721
  .pipe(takeWhile((_) => this._alive))
8706
8722
  .subscribe((cellValue) => {
8707
- if (this.row === cellValue.cell.row &&
8708
- this.column.name === cellValue.cell.column.name) {
8723
+ if (this.row === cellValue.cell.row
8724
+ && this.column.name === cellValue.cell.column.name) {
8709
8725
  this.row.data[this.column.name] = cellValue.value;
8710
8726
  this.cdr.detectChanges();
8711
8727
  }
8712
8728
  });
8729
+ this.svc.valueChanged
8730
+ .pipe(takeWhile((_) => this._alive))
8731
+ .subscribe((cellValue) => {
8732
+ if (this.row === cellValue.row) {
8733
+ this.cdr.detectChanges();
8734
+ }
8735
+ });
8713
8736
  }
8714
8737
  start(initiator, type) {
8715
8738
  this._edit = true;
@@ -8749,8 +8772,9 @@ class NumericCellComponent extends CellComponentBase {
8749
8772
  startEdit(initiator, type) {
8750
8773
  if ((initiator === null || initiator === void 0 ? void 0 : initiator.column.name) === this.column.name) {
8751
8774
  setTimeout(() => {
8752
- var _a;
8775
+ var _a, _b;
8753
8776
  (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
8777
+ (_b = this.input) === null || _b === void 0 ? void 0 : _b.nativeElement.select();
8754
8778
  this.cdr.markForCheck();
8755
8779
  }, 0);
8756
8780
  }
@@ -8889,7 +8913,9 @@ class StringCellComponent extends CellComponentBase {
8889
8913
  if ((initiator === null || initiator === void 0 ? void 0 : initiator.column.name) === this.column.name) {
8890
8914
  this.cdr.markForCheck();
8891
8915
  setTimeout(() => {
8892
- this.input.nativeElement.focus();
8916
+ var _a, _b;
8917
+ (_a = this.input.nativeElement) === null || _a === void 0 ? void 0 : _a.focus();
8918
+ (_b = this.input.nativeElement) === null || _b === void 0 ? void 0 : _b.select();
8893
8919
  }, 0);
8894
8920
  }
8895
8921
  }
@@ -9462,14 +9488,13 @@ class TableComponent {
9462
9488
  if (changes.hasOwnProperty('rowEditable')) {
9463
9489
  this._svc.rowEditable = this.rowEditable;
9464
9490
  }
9465
- if (changes.hasOwnProperty('cellEditable')) {
9466
- this._svc.cellEditable = this.cellEditable;
9467
- }
9468
9491
  if (changes.hasOwnProperty('cookieName')) {
9469
9492
  this._svc.setCookieName(this.cookieName);
9470
9493
  }
9471
9494
  if (changes.hasOwnProperty('columns')) {
9472
- this._svc.setColumns(this.columns);
9495
+ if (this.columns !== null && this.columns !== undefined) {
9496
+ this._svc.setColumns(this.columns);
9497
+ }
9473
9498
  }
9474
9499
  if (changes.hasOwnProperty('data')) {
9475
9500
  this._svc.setData(this.data);
@@ -9560,7 +9585,7 @@ class TableComponent {
9560
9585
  }
9561
9586
  }
9562
9587
  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 });
9563
- 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 });
9588
+ 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 });
9564
9589
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: TableComponent, decorators: [{
9565
9590
  type: Component,
9566
9591
  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: [""] }]
@@ -9604,8 +9629,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
9604
9629
  type: Input
9605
9630
  }], rowEditable: [{
9606
9631
  type: Input
9607
- }], cellEditable: [{
9608
- type: Input
9609
9632
  }], rowClass: [{
9610
9633
  type: Input
9611
9634
  }], scrollToIndex: [{
@@ -10594,6 +10617,7 @@ var ScaleType;
10594
10617
  ScaleType[ScaleType["log"] = 1] = "log";
10595
10618
  ScaleType[ScaleType["pow"] = 2] = "pow";
10596
10619
  ScaleType[ScaleType["sqrt"] = 3] = "sqrt";
10620
+ ScaleType[ScaleType["time"] = 4] = "time";
10597
10621
  })(ScaleType || (ScaleType = {}));
10598
10622
 
10599
10623
  var ZoomType;
@@ -12500,10 +12524,10 @@ class Chart3dComponent {
12500
12524
  }
12501
12525
  }
12502
12526
  Chart3dComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Chart3dComponent, deps: [{ token: i0.ElementRef }, { token: ThemeSwitchService }], target: i0.ɵɵFactoryTarget.Component });
12503
- Chart3dComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: Chart3dComponent, selector: "teta-chart3d", inputs: { config: "config" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<canvas #canvas></canvas>\n", styles: [":host{display:flex;width:100%;height:100%}\n"] });
12527
+ Chart3dComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: Chart3dComponent, selector: "teta-chart3d", inputs: { config: "config" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<canvas #canvas></canvas>\n", styles: [":host{display:flex;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12504
12528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: Chart3dComponent, decorators: [{
12505
12529
  type: Component,
12506
- args: [{ selector: 'teta-chart3d', template: "<canvas #canvas></canvas>\n", styles: [":host{display:flex;width:100%;height:100%}\n"] }]
12530
+ args: [{ selector: 'teta-chart3d', changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas #canvas></canvas>\n", styles: [":host{display:flex;width:100%;height:100%}\n"] }]
12507
12531
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ThemeSwitchService }]; }, propDecorators: { canvasRef: [{
12508
12532
  type: ViewChild,
12509
12533
  args: ['canvas']