@tetacom/ng-components 1.4.4 → 1.4.5

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 (320) hide show
  1. package/assets/icons.svg +54 -0
  2. package/component/avatar/avatar/avatar.component.d.ts +1 -1
  3. package/component/button/button/button.component.d.ts +1 -1
  4. package/component/date-picker/base-calendar.d.ts +1 -1
  5. package/component/date-picker/base-picker.d.ts +1 -1
  6. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
  7. package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
  8. package/component/date-picker/date-range/date-range.component.d.ts +1 -1
  9. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +1 -1
  10. package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
  11. package/component/date-picker/day-picker/day-picker.component.d.ts +4 -4
  12. package/component/date-picker/month-picker/month-picker.component.d.ts +2 -2
  13. package/component/date-picker/public-api.d.ts +2 -2
  14. package/component/date-picker/year-picker/year-picker.component.d.ts +3 -3
  15. package/component/filter/boolean-filter/boolean-filter.component.d.ts +3 -3
  16. package/component/message/model/message.d.ts +1 -1
  17. package/component/switch/switch/switch.component.d.ts +1 -1
  18. package/component/table/table-row/table-row.component.d.ts +2 -2
  19. package/component/tree/tree/tree.component.d.ts +1 -1
  20. package/docs/avatarDocs.mdx +78 -72
  21. package/docs/datePickerDocs.mdx +3 -3
  22. package/docs/dateRangeDocs.mdx +3 -3
  23. package/docs/delimiterDocs.mdx +78 -78
  24. package/docs/dropdownDocs.mdx +143 -123
  25. package/docs/expandCardlDocs.mdx +49 -45
  26. package/docs/expandPanelDocs.mdx +104 -92
  27. package/docs/fileAreaDocs.mdx +64 -59
  28. package/docs/inputDocs.mdx +70 -67
  29. package/docs/listDocs.mdx +14 -8
  30. package/docs/messageDocs.mdx +47 -34
  31. package/docs/progressBarDocs.mdx +65 -51
  32. package/docs/propertyGridDocs.mdx +173 -115
  33. package/docs/radioDocs.mdx +92 -80
  34. package/docs/resizePanelDocs.mdx +79 -67
  35. package/docs/selectDocs.mdx +262 -220
  36. package/docs/switchDocs.mdx +86 -73
  37. package/docs/tagDocs.mdx +17 -11
  38. package/docs/toggleDocs.mdx +42 -36
  39. package/docs/toolbarDocs.mdx +14 -8
  40. package/docs/treeDocs.mdx +108 -89
  41. package/esm2022/common/contract/teta-content-ref.mjs +1 -1
  42. package/esm2022/common/enum/align.enum.mjs +1 -1
  43. package/esm2022/common/enum/vertical-align.enum.mjs +1 -1
  44. package/esm2022/common/service/dynamic-component.service.mjs +1 -1
  45. package/esm2022/common/util/array-util.mjs +5 -7
  46. package/esm2022/common/util/dom-util.mjs +2 -3
  47. package/esm2022/common/util/position-util.mjs +6 -14
  48. package/esm2022/component/accordion/accordion-content.directive.mjs +2 -2
  49. package/esm2022/component/accordion/public-api.mjs +1 -1
  50. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +2 -3
  51. package/esm2022/component/autocomplete/public-api.mjs +1 -1
  52. package/esm2022/component/avatar/avatar/avatar.component.mjs +4 -5
  53. package/esm2022/component/avatar/model/avatar-color.enum.mjs +1 -1
  54. package/esm2022/component/avatar/public-api.mjs +1 -1
  55. package/esm2022/component/button/button/button.component.mjs +2 -2
  56. package/esm2022/component/button/public-api.mjs +1 -1
  57. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -24
  58. package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -1
  59. package/esm2022/component/chart-3d/public-api.mjs +1 -1
  60. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  61. package/esm2022/component/checkbox/public-api.mjs +1 -1
  62. package/esm2022/component/date-picker/base-calendar.mjs +7 -14
  63. package/esm2022/component/date-picker/base-picker.mjs +3 -2
  64. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +4 -11
  65. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +5 -6
  66. package/esm2022/component/date-picker/date-range/date-range.component.mjs +6 -14
  67. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +4 -4
  68. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +5 -6
  69. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -9
  70. package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
  71. package/esm2022/component/date-picker/model/from-to.model.mjs +1 -1
  72. package/esm2022/component/date-picker/model/min-max-date.model.mjs +1 -1
  73. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -4
  74. package/esm2022/component/date-picker/public-api.mjs +3 -3
  75. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
  76. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -7
  77. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +2 -2
  78. package/esm2022/component/delimiter/public-api.mjs +1 -1
  79. package/esm2022/component/divider/divider/divider.component.mjs +4 -4
  80. package/esm2022/component/divider/public-api.mjs +1 -1
  81. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +2 -3
  82. package/esm2022/component/dropdown/dropdown-base.mjs +11 -22
  83. package/esm2022/component/dropdown/dropdown-content.directive.mjs +2 -2
  84. package/esm2022/component/dropdown/dropdown-head.directive.mjs +2 -2
  85. package/esm2022/component/dropdown/dropdown.directive.mjs +4 -5
  86. package/esm2022/component/dropdown/public-api.mjs +1 -1
  87. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +4 -10
  88. package/esm2022/component/dynamic-component/public-api.mjs +1 -1
  89. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +4 -5
  90. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +4 -4
  91. package/esm2022/component/expand-card/public-api.mjs +1 -1
  92. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +4 -9
  93. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +1 -1
  94. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +1 -1
  95. package/esm2022/component/expand-panel/public-api.mjs +1 -1
  96. package/esm2022/component/file-upload/file-item/file-item.component.mjs +1 -1
  97. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +3 -8
  98. package/esm2022/component/file-upload/public-api.mjs +1 -1
  99. package/esm2022/component/filter/base/filter-base.mjs +1 -1
  100. package/esm2022/component/filter/base/filter-component-base.mjs +1 -1
  101. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +5 -11
  102. package/esm2022/component/filter/contarct/boolean-filter.mjs +1 -1
  103. package/esm2022/component/filter/contarct/date-filter-value.mjs +3 -3
  104. package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
  105. package/esm2022/component/filter/contarct/filter-component-map.mjs +2 -4
  106. package/esm2022/component/filter/contarct/filter-item.mjs +2 -2
  107. package/esm2022/component/filter/contarct/filter-state.mjs +1 -1
  108. package/esm2022/component/filter/contarct/list-filter.mjs +1 -1
  109. package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -1
  110. package/esm2022/component/filter/contarct/sort-param.mjs +1 -1
  111. package/esm2022/component/filter/contarct/string-filter.mjs +1 -1
  112. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -8
  113. package/esm2022/component/filter/enum/list-filter-type.enum.mjs +1 -1
  114. package/esm2022/component/filter/filter-host/filter-host.component.mjs +2 -3
  115. package/esm2022/component/filter/list-filter/list-filter.component.mjs +5 -14
  116. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -8
  117. package/esm2022/component/filter/public-api.mjs +1 -1
  118. package/esm2022/component/filter/string-filter/string-filter.component.mjs +4 -9
  119. package/esm2022/component/icon/icon/icon.component.mjs +3 -3
  120. package/esm2022/component/icon/icon-file/icon-file.component.mjs +2 -3
  121. package/esm2022/component/icon/icon-sprite.directive.mjs +2 -2
  122. package/esm2022/component/icon/icon.service.mjs +5 -6
  123. package/esm2022/component/icon/public-api.mjs +1 -1
  124. package/esm2022/component/input/color-input/color-input.component.mjs +3 -3
  125. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +2 -2
  126. package/esm2022/component/input/input/input.component.mjs +4 -4
  127. package/esm2022/component/input/public-api.mjs +1 -1
  128. package/esm2022/component/input/text-field/text-field.component.mjs +3 -9
  129. package/esm2022/component/message/message/message.component.mjs +3 -7
  130. package/esm2022/component/message/message-host/message-host.component.mjs +5 -9
  131. package/esm2022/component/message/message.service.mjs +2 -2
  132. package/esm2022/component/message/model/message.mjs +2 -2
  133. package/esm2022/component/message/public-api.mjs +1 -1
  134. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -8
  135. package/esm2022/component/modal/dialog.service.mjs +1 -1
  136. package/esm2022/component/modal/modal-container/modal-container.component.mjs +4 -11
  137. package/esm2022/component/modal/modal.module.mjs +4 -12
  138. package/esm2022/component/modal/modal.service.mjs +1 -1
  139. package/esm2022/component/modal/model/current-modal.mjs +1 -1
  140. package/esm2022/component/modal/model/i-modal-result.mjs +1 -1
  141. package/esm2022/component/modal/model/modal-instance.mjs +1 -1
  142. package/esm2022/component/pager/model/pager-state.mjs +3 -2
  143. package/esm2022/component/pager/pager/pager.component.mjs +1 -1
  144. package/esm2022/component/pager/public-api.mjs +1 -1
  145. package/esm2022/component/pager/util/pager-util.mjs +1 -1
  146. package/esm2022/component/panel/panel/panel.component.mjs +4 -10
  147. package/esm2022/component/panel/public-api.mjs +1 -1
  148. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +5 -6
  149. package/esm2022/component/progress-bar/public-api.mjs +1 -1
  150. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +4 -4
  151. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +7 -8
  152. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +2 -2
  153. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +6 -11
  154. package/esm2022/component/property-grid/property-grid.module.mjs +1 -1
  155. package/esm2022/component/radio/public-api.mjs +1 -1
  156. package/esm2022/component/radio/radio/radio.component.mjs +7 -11
  157. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  158. package/esm2022/component/resize-panel/public-api.mjs +1 -1
  159. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +5 -10
  160. package/esm2022/component/select/public-api.mjs +1 -1
  161. package/esm2022/component/select/select/select.component.mjs +10 -18
  162. package/esm2022/component/select/select-option.directive.mjs +2 -2
  163. package/esm2022/component/select/select-value.directive.mjs +2 -2
  164. package/esm2022/component/sidebar/public-api.mjs +1 -1
  165. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +6 -12
  166. package/esm2022/component/sidebar/sidebar-position.enum.mjs +1 -1
  167. package/esm2022/component/switch/public-api.mjs +1 -1
  168. package/esm2022/component/switch/switch/switch.component.mjs +4 -7
  169. package/esm2022/component/switch/switch-button/switch-button.component.mjs +2 -3
  170. package/esm2022/component/switch/switch.service.mjs +2 -2
  171. package/esm2022/component/table/base/cell-component-base.mjs +10 -22
  172. package/esm2022/component/table/base/detail-component-base.mjs +1 -1
  173. package/esm2022/component/table/base/head-cell-component-base.mjs +2 -2
  174. package/esm2022/component/table/cell/cell.component.mjs +4 -4
  175. package/esm2022/component/table/cell-host/cell-host.component.mjs +1 -1
  176. package/esm2022/component/table/contract/cell-components-map.mjs +2 -4
  177. package/esm2022/component/table/contract/column-reorder-event.mjs +1 -1
  178. package/esm2022/component/table/contract/sort-event.mjs +1 -1
  179. package/esm2022/component/table/contract/table-column.mjs +3 -3
  180. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -8
  181. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +4 -9
  182. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +4 -9
  183. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -6
  184. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +7 -13
  185. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -9
  186. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +4 -8
  187. package/esm2022/component/table/enum/edit-event.enum.mjs +1 -1
  188. package/esm2022/component/table/enum/edit-type.enum.mjs +1 -1
  189. package/esm2022/component/table/enum/select-type.enum.mjs +1 -1
  190. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +4 -11
  191. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -4
  192. package/esm2022/component/table/public-api.mjs +1 -1
  193. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +4 -6
  194. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -7
  195. package/esm2022/component/table/service/table.service.mjs +35 -52
  196. package/esm2022/component/table/table/table.component.mjs +12 -24
  197. package/esm2022/component/table/table-body/table-body.component.mjs +15 -21
  198. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +5 -6
  199. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +4 -5
  200. package/esm2022/component/table/table-head/table-head.component.mjs +10 -10
  201. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +12 -12
  202. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +7 -12
  203. package/esm2022/component/table/table-row/table-row.component.mjs +3 -3
  204. package/esm2022/component/table/util/state-util.mjs +13 -25
  205. package/esm2022/component/table/util/table-util.mjs +15 -9
  206. package/esm2022/component/tabs/public-api.mjs +1 -1
  207. package/esm2022/component/tabs/tab-content.directive.mjs +2 -2
  208. package/esm2022/component/tabs/tab-title.directive.mjs +2 -2
  209. package/esm2022/component/theme-switch/public-api.mjs +1 -1
  210. package/esm2022/component/toggle/public-api.mjs +1 -1
  211. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  212. package/esm2022/component/toolbar/public-api.mjs +1 -1
  213. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +2 -2
  214. package/esm2022/component/tree/public-api.mjs +1 -1
  215. package/esm2022/component/tree/tree/tree.component.mjs +6 -6
  216. package/esm2022/component/tree/tree-item/tree-item.component.mjs +9 -20
  217. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +5 -6
  218. package/esm2022/component/tree/tree.service.mjs +1 -1
  219. package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
  220. package/esm2022/directive/auto-position/public-api.mjs +1 -1
  221. package/esm2022/directive/click-outside/click-outside.directive.mjs +2 -2
  222. package/esm2022/directive/click-outside/public-api.mjs +1 -1
  223. package/esm2022/directive/context-menu/context-menu.directive.mjs +4 -8
  224. package/esm2022/directive/context-menu/public-api.mjs +1 -1
  225. package/esm2022/directive/disable-control/disable-control.directive.mjs +1 -1
  226. package/esm2022/directive/disable-control/public-api.mjs +1 -1
  227. package/esm2022/directive/drag-drop/drag-container.directive.mjs +8 -10
  228. package/esm2022/directive/drag-drop/drag-drop.service.mjs +14 -11
  229. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +2 -2
  230. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +2 -2
  231. package/esm2022/directive/drag-drop/drag.directive.mjs +4 -7
  232. package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -1
  233. package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -1
  234. package/esm2022/directive/drag-drop/model/drag-process.mjs +1 -1
  235. package/esm2022/directive/drag-drop/model/drag-selection.mjs +1 -1
  236. package/esm2022/directive/drag-drop/model/drop-event.mjs +1 -1
  237. package/esm2022/directive/drag-drop/model/drop-target.mjs +1 -1
  238. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +2 -3
  239. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -10
  240. package/esm2022/directive/drag-sort/public-api.mjs +1 -1
  241. package/esm2022/directive/dynamic-content-base.directive.mjs +3 -3
  242. package/esm2022/directive/highlight/highlight.directive.mjs +4 -5
  243. package/esm2022/directive/highlight/public-api.mjs +1 -1
  244. package/esm2022/directive/hint/hint.directive.mjs +5 -14
  245. package/esm2022/directive/hint/public-api.mjs +1 -1
  246. package/esm2022/directive/let/let.directive.mjs +2 -2
  247. package/esm2022/directive/let/public-api.mjs +1 -1
  248. package/esm2022/directive/loader/loader.directive.mjs +3 -3
  249. package/esm2022/directive/loader/public-api.mjs +1 -1
  250. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
  251. package/esm2022/directive/no-autofill/public-api.mjs +1 -1
  252. package/esm2022/directive/only-number/public-api.mjs +1 -1
  253. package/esm2022/directive/resize-drag/public-api.mjs +1 -1
  254. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +2 -2
  255. package/esm2022/directive/scroll-into-view/public-api.mjs +1 -1
  256. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
  257. package/esm2022/directive/scrollable/public-api.mjs +1 -1
  258. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +6 -13
  259. package/esm2022/directive/scrollable/scrollable.directive.mjs +2 -2
  260. package/esm2022/directive/teta-template/public-api.mjs +1 -1
  261. package/esm2022/directive/teta-template/teta-template.directive.mjs +2 -2
  262. package/esm2022/directive/tooltip/public-api.mjs +1 -1
  263. package/esm2022/directive/tooltip/tooltip.directive.mjs +3 -4
  264. package/esm2022/index.mjs +1 -1
  265. package/esm2022/locale/en.mjs +2 -10
  266. package/esm2022/locale/ru.mjs +2 -10
  267. package/esm2022/locale/teta-config.service.mjs +2 -2
  268. package/esm2022/locale/teta-localisation.mjs +1 -1
  269. package/esm2022/observable/public-api.mjs +1 -1
  270. package/esm2022/observable/zone-observable.mjs +4 -4
  271. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +2 -2
  272. package/esm2022/pipe/number-pipe/number.pipe.mjs +2 -2
  273. package/esm2022/pipe/number-pipe/public-api.mjs +1 -1
  274. package/esm2022/pipe/util/number-helper.mjs +1 -1
  275. package/esm2022/util/bool-or-func.mjs +1 -1
  276. package/esm2022/util/date-util.mjs +2 -4
  277. package/esm2022/util/export-dom-image.mjs +1 -1
  278. package/esm2022/util/forms-util.mjs +6 -17
  279. package/esm2022/util/string-util.mjs +1 -3
  280. package/fesm2022/tetacom-ng-components.mjs +438 -801
  281. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  282. package/locale/teta-localisation.d.ts +1 -14
  283. package/package.json +1 -1
  284. package/style/assembly-library.scss +41 -41
  285. package/style/assembly-presets.scss +4 -4
  286. package/style/assembly.scss +3 -3
  287. package/style/border.scss +2 -2
  288. package/style/color.scss +2 -3
  289. package/style/datepicker.scss +9 -10
  290. package/style/divider.scss +2 -1
  291. package/style/drag.scss +1 -1
  292. package/style/dropdown.scss +4 -5
  293. package/style/font.scss +2 -2
  294. package/style/hint.scss +3 -3
  295. package/style/input.scss +14 -9
  296. package/style/layout.scss +8 -8
  297. package/style/list.scss +2 -2
  298. package/style/loader.scss +1 -1
  299. package/style/message.scss +3 -3
  300. package/style/navigation.scss +6 -6
  301. package/style/presets/color-presets.scss +2 -2
  302. package/style/presets/view-types.scss +1 -1
  303. package/style/progress.scss +3 -2
  304. package/style/radio.scss +2 -4
  305. package/style/reset.scss +3 -1
  306. package/style/resize-panel.scss +12 -6
  307. package/style/scroll.scss +1 -1
  308. package/style/select.scss +5 -4
  309. package/style/shadow.scss +3 -3
  310. package/style/sidebar.scss +2 -2
  311. package/style/sizing.scss +1 -1
  312. package/style/skeleton.scss +3 -4
  313. package/style/spacing.scss +1 -1
  314. package/style/switch.scss +2 -3
  315. package/style/tag.scss +8 -8
  316. package/style/toggle.scss +3 -6
  317. package/style/toolbar.scss +3 -3
  318. package/style/tooltip.scss +5 -4
  319. package/style/tree.scss +2 -2
  320. package/style/util/font-util.scss +1 -1
@@ -52,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[tetaAccordionContent]',
55
- standalone: true
55
+ standalone: true,
56
56
  }]
57
57
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
58
58
 
@@ -134,8 +134,8 @@ class IconService {
134
134
  addSprite(url, bypassInterceptors = true) {
135
135
  if (IconService._loaded.indexOf(url) < 0 && IconService._pending.indexOf(url) < 0) {
136
136
  IconService._pending.push(url);
137
- this.getSVG(url, bypassInterceptors).subscribe(svg => {
138
- IconService._pending = IconService._pending.filter(_ => _ !== url);
137
+ this.getSVG(url, bypassInterceptors).subscribe((svg) => {
138
+ IconService._pending = IconService._pending.filter((_) => _ !== url);
139
139
  IconService._loaded.push(url);
140
140
  this._renderer.insertBefore(this._document.body, svg, this._document.body.firstChild);
141
141
  });
@@ -143,8 +143,7 @@ class IconService {
143
143
  }
144
144
  getSVG(url, bypassInterceptors = true) {
145
145
  const http = bypassInterceptors ? new HttpClient(this._httpBackend) : this._http;
146
- return http.get(url, { responseType: 'text' })
147
- .pipe(map((svgText) => {
146
+ return http.get(url, { responseType: 'text' }).pipe(map((svgText) => {
148
147
  const svgEl = this.svgElementFromString(svgText);
149
148
  return this.cloneSVG(svgEl);
150
149
  }));
@@ -167,7 +166,7 @@ class IconService {
167
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconService, decorators: [{
168
167
  type: Injectable,
169
168
  args: [{
170
- providedIn: 'root'
169
+ providedIn: 'root',
171
170
  }]
172
171
  }], ctorParameters: () => [{ type: undefined, decorators: [{
173
172
  type: Inject,
@@ -196,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
196
195
  type: Directive,
197
196
  args: [{
198
197
  selector: '[tetaIconSprite]',
199
- standalone: true
198
+ standalone: true,
200
199
  }]
201
200
  }], ctorParameters: () => [{ type: IconService }], propDecorators: { tetaIconSprite: [{
202
201
  type: Input
@@ -236,11 +235,11 @@ class IconComponent {
236
235
  return `#${this.name}`;
237
236
  }
238
237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
239
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: IconComponent, isStandalone: true, selector: "teta-icon", inputs: { name: "name", size: "size", palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<svg class=\"icon__image\" style=\"width: 100%;height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: IconComponent, isStandalone: true, selector: "teta-icon", inputs: { name: "name", size: "size", palette: "palette", class: "class" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "<svg class=\"icon__image\" style=\"width: 100%; height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
240
239
  }
241
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: IconComponent, decorators: [{
242
241
  type: Component,
243
- args: [{ selector: 'teta-icon', imports: [IconSpriteDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<svg class=\"icon__image\" style=\"width: 100%;height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n" }]
242
+ args: [{ selector: 'teta-icon', imports: [IconSpriteDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<svg class=\"icon__image\" style=\"width: 100%; height: 100%\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n" }]
244
243
  }], propDecorators: { name: [{
245
244
  type: Input
246
245
  }], size: [{
@@ -351,14 +350,13 @@ class AvatarComponent {
351
350
  .set(AvatarColorEnum.lime, '#80C026')
352
351
  .set(AvatarColorEnum.greyish, '#7F8697');
353
352
  }
354
- ngOnInit() {
355
- }
353
+ ngOnInit() { }
356
354
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
357
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\"/>\n } @else {\n <div [class]=\"'avatar_' + this.viewType\" [style.background-color]=\"colorMap.get(id%17)||colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\">\n @if (name) {\n <p>{{name}}</p>\n } @else {\n <teta-icon class=\"width-10 height-10\" style=\"fill: white;width:{{size}}px; height:{{size}}px\"\n name=\"photoCamera\"></teta-icon>\n }\n <div [class]=\"'avatar_' + this.viewType\" class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"></div>\n </div>\n }\n\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
355
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: AvatarComponent, isStandalone: true, selector: "teta-avatar", inputs: { photo: "photo", name: "name", id: "id", viewType: "viewType", size: "size" }, host: { properties: { "class": "this.avatar" } }, ngImport: i0, template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
358
356
  }
359
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AvatarComponent, decorators: [{
360
358
  type: Component,
361
- args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\"/>\n } @else {\n <div [class]=\"'avatar_' + this.viewType\" [style.background-color]=\"colorMap.get(id%17)||colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\">\n @if (name) {\n <p>{{name}}</p>\n } @else {\n <teta-icon class=\"width-10 height-10\" style=\"fill: white;width:{{size}}px; height:{{size}}px\"\n name=\"photoCamera\"></teta-icon>\n }\n <div [class]=\"'avatar_' + this.viewType\" class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"></div>\n </div>\n }\n\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"] }]
359
+ args: [{ selector: 'teta-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent], template: "<div [class]=\"avatar\">\n @if (photo) {\n <img [class]=\"'avatar_' + this.viewType\" [src]=\"photo\" alt=\"\" />\n } @else {\n <div\n [class]=\"'avatar_' + this.viewType\"\n [style.background-color]=\"colorMap.get(id % 17) || colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\"\n >\n @if (name) {\n <p>{{ name }}</p>\n } @else {\n <teta-icon\n class=\"width-10 height-10\"\n style=\"fill: white;width:{{ size }}px; height:{{ size }}px\"\n name=\"photoCamera\"\n ></teta-icon>\n }\n <div\n [class]=\"'avatar_' + this.viewType\"\n class=\"position-absolute\"\n style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"\n ></div>\n </div>\n }\n</div>\n", styles: [".avatar{font-style:normal;font-weight:600;line-height:16px}.avatar_brick{border-radius:var(--radius-base-brick)}.avatar_circle{border-radius:var(--radius-base-circle)}.avatar_rounded{border-radius:var(--radius-base-round)}.avatar-size-24{height:24px;width:24px;font-size:11px}.avatar-size-24 img,.avatar-size-24 div{height:24px;width:24px}.avatar-size-28{height:28px;width:28px;font-size:11px}.avatar-size-28 img,.avatar-size-28 div{height:28px;width:28px}.avatar-size-32{height:32px;width:32px;font-size:11px}.avatar-size-32 img,.avatar-size-32 div{height:32px;width:32px}.avatar-size-44{height:44px;width:44px;font-size:14px}.avatar-size-44 img,.avatar-size-44 div{height:44px;width:44px}.avatar-size-64{height:64px;width:64px;font-size:16px}.avatar-size-64 img,.avatar-size-64 div{height:64px;width:64px}.avatar-size-128{height:128px;width:128px;font-size:28px}.avatar-size-128 img,.avatar-size-128 div{height:128px;width:128px}.avatar-size-200{height:200px;width:200px;font-size:35px}.avatar-size-200 img,.avatar-size-200 div{height:200px;width:200px}\n"] }]
362
360
  }], ctorParameters: () => [], propDecorators: { photo: [{
363
361
  type: Input
364
362
  }], name: [{
@@ -376,8 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
376
374
 
377
375
  class AutocompleteComponent {
378
376
  constructor() { }
379
- ngOnInit() {
380
- }
377
+ ngOnInit() { }
381
378
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
382
379
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: AutocompleteComponent, isStandalone: true, selector: "teta-autocomplete", ngImport: i0, template: "<p>autocomplete works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
383
380
  }
@@ -509,7 +506,7 @@ class Chart3dComponent {
509
506
  }
510
507
  ngOnInit() {
511
508
  this._themeService.theme
512
- .pipe(takeWhile(_ => this._alive), tap(_ => {
509
+ .pipe(takeWhile((_) => this._alive), tap((_) => {
513
510
  this.gridColor = _ ? '#5d6a73' : '#bdbdc6';
514
511
  this.axesColor = _ ? '#8e8f9d' : '#7d8f9a';
515
512
  this.init();
@@ -538,7 +535,7 @@ class Chart3dComponent {
538
535
  if (!data.points?.length) {
539
536
  return;
540
537
  }
541
- const points = data.points.map(_ => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));
538
+ const points = data.points.map((_) => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));
542
539
  const color = d3.scaleOrdinal(d3.schemeTableau10);
543
540
  const material = new THREE.LineBasicMaterial({
544
541
  color: data?.color ?? color(idx.toString()),
@@ -557,15 +554,13 @@ class Chart3dComponent {
557
554
  const geometryLines = new THREE.BufferGeometry().setFromPoints(pointsLines);
558
555
  const line = new THREE.Line(geometryLines, material);
559
556
  this._scene.add(line);
560
- circles.forEach(r => {
557
+ circles.forEach((r) => {
561
558
  const material = new THREE.LineDashedMaterial({
562
559
  color: this.gridColor,
563
560
  dashSize: 1,
564
561
  gapSize: 3,
565
562
  });
566
- const circleGeometry = new THREE.BufferGeometry().setFromPoints(new THREE.Path()
567
- .absarc(0, 0, x(r), 0, Math.PI * 2, false)
568
- .getSpacedPoints(100));
563
+ const circleGeometry = new THREE.BufferGeometry().setFromPoints(new THREE.Path().absarc(0, 0, x(r), 0, Math.PI * 2, false).getSpacedPoints(100));
569
564
  const circle = new THREE.LineSegments(circleGeometry, material);
570
565
  circle.geometry.rotateX(-Math.PI / 2);
571
566
  this._scene.add(circle);
@@ -585,8 +580,7 @@ class Chart3dComponent {
585
580
  }
586
581
  createScene() {
587
582
  this._scene = new THREE.Scene();
588
- const aspectRatio = this._elementRef.nativeElement.clientWidth /
589
- this._elementRef.nativeElement.clientHeight;
583
+ const aspectRatio = this._elementRef.nativeElement.clientWidth / this._elementRef.nativeElement.clientHeight;
590
584
  const fieldOfView = 10;
591
585
  const nearClippingPane = 1;
592
586
  const farClippingPane = 10000;
@@ -617,7 +611,7 @@ class Chart3dComponent {
617
611
  animate();
618
612
  }
619
613
  addResizeObserver() {
620
- this._obs = new ResizeObserver(_ => {
614
+ this._obs = new ResizeObserver((_) => {
621
615
  this.setSize(_[0]?.contentRect.width, _[0]?.contentRect.height);
622
616
  });
623
617
  this._obs.observe(this._elementRef.nativeElement);
@@ -683,7 +677,7 @@ class Chart3dComponent {
683
677
  this._scene.add(ticks);
684
678
  }
685
679
  getScales(series) {
686
- const extrems = series.map(_ => ({
680
+ const extrems = series.map((_) => ({
687
681
  x: d3.extent(_.points, (p) => p.x),
688
682
  y: d3.extent(_.points, (p) => p.y),
689
683
  z: d3.extent(_.points, (p) => p.z),
@@ -696,12 +690,7 @@ class Chart3dComponent {
696
690
  }, { x: [], y: [], z: [] });
697
691
  const x = d3
698
692
  .scaleLinear()
699
- .domain([
700
- 0,
701
- this._config?.axes?.max == null
702
- ? parseInt(d3.max(flattenExtrems.x))
703
- : this._config.axes.max,
704
- ])
693
+ .domain([0, this._config?.axes?.max == null ? parseInt(d3.max(flattenExtrems.x)) : this._config.axes.max])
705
694
  .range([0, this.SIDE_SIZE])
706
695
  .nice();
707
696
  const y = d3
@@ -710,12 +699,7 @@ class Chart3dComponent {
710
699
  .range([this.SIDE_SIZE, 0]);
711
700
  const z = d3
712
701
  .scaleLinear()
713
- .domain([
714
- 0,
715
- this._config?.axes?.max == null
716
- ? parseInt(d3.max(flattenExtrems.z))
717
- : this._config.axes.max,
718
- ])
702
+ .domain([0, this._config?.axes?.max == null ? parseInt(d3.max(flattenExtrems.z)) : this._config.axes.max])
719
703
  .range([0, this.SIDE_SIZE])
720
704
  .nice();
721
705
  return { x, y, z };
@@ -830,11 +814,11 @@ class CheckboxComponent {
830
814
  this.cdr.detectChanges();
831
815
  }
832
816
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
833
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition==='right') {\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n}\n@if (labelPosition==='left') {\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CheckboxComponent, isStandalone: true, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
834
818
  }
835
819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CheckboxComponent, decorators: [{
836
820
  type: Component,
837
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition==='right') {\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n}\n@if (labelPosition==='left') {\n @if (!noLabel) {\n <span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n }\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
821
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, NgTemplateOutlet], template: "@if (labelPosition==='right') {\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n@if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n} } @if (labelPosition==='left') { @if (!noLabel) {\n<span class=\"font-body-3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
838
822
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
839
823
  type: HostBinding,
840
824
  args: ['attr.tabindex']
@@ -978,7 +962,8 @@ class BasePicker {
978
962
  return new Date(date).toLocaleString(['ru'], {
979
963
  year: 'numeric',
980
964
  month: '2-digit',
981
- day: '2-digit', hour12: false,
965
+ day: '2-digit',
966
+ hour12: false,
982
967
  hour: this.showTime ? '2-digit' : undefined,
983
968
  minute: this.showTime ? '2-digit' : undefined,
984
969
  });
@@ -1042,15 +1027,7 @@ const enLocale = {
1042
1027
  'November',
1043
1028
  'December',
1044
1029
  ],
1045
- days: [
1046
- 'Sunday',
1047
- 'Monday',
1048
- 'Tuesday',
1049
- 'Wednesday',
1050
- 'Thursday',
1051
- 'Friday',
1052
- 'Saturday',
1053
- ],
1030
+ days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
1054
1031
  daysShort: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
1055
1032
  };
1056
1033
 
@@ -1074,7 +1051,7 @@ class TetaConfigService {
1074
1051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TetaConfigService, decorators: [{
1075
1052
  type: Injectable,
1076
1053
  args: [{
1077
- providedIn: 'root'
1054
+ providedIn: 'root',
1078
1055
  }]
1079
1056
  }], ctorParameters: () => [] });
1080
1057
 
@@ -1113,37 +1090,30 @@ class BaseCalendar {
1113
1090
  };
1114
1091
  }
1115
1092
  generateCalendar(selectedDate, year, month, minMax) {
1116
- const calendarStartDay = selectedDate
1117
- .set('year', year)
1118
- .set('month', month)
1119
- .set('date', 1)
1120
- .startOf('week');
1093
+ const calendarStartDay = selectedDate.set('year', year).set('month', month).set('date', 1).startOf('week');
1121
1094
  const calendar = new Array(42).fill(1).map((v, i) => {
1122
1095
  return calendarStartDay.add(i, 'day');
1123
1096
  });
1124
- return calendar.map(d => {
1097
+ return calendar.map((d) => {
1125
1098
  return new DayModel({
1126
1099
  date: new Date(d.toDate()),
1127
1100
  isCurrentMonth: month === d.month(),
1128
- disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) ||
1129
- !this.isSuitableMaxDate(d.toDate(), minMax.max),
1101
+ disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) || !this.isSuitableMaxDate(d.toDate(), minMax.max),
1130
1102
  selected: this.isSelected(d.toDate(), selectedDate.toDate()),
1131
1103
  });
1132
1104
  });
1133
1105
  }
1134
1106
  isSuitableMinDate(d, minDate) {
1135
- return (dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) ||
1136
- !minDate);
1107
+ return dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) || !minDate;
1137
1108
  }
1138
1109
  isSuitableMaxDate(d, maxDate) {
1139
- return (new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() ||
1140
- !maxDate);
1110
+ return new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() || !maxDate;
1141
1111
  }
1142
1112
  isSelected(date, selectedDate) {
1143
1113
  const isSelectedDate = date.getDate() === selectedDate?.getDate();
1144
1114
  const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear();
1145
1115
  const isSelectedMonth = date.getMonth() === selectedDate?.getMonth();
1146
- return (isSelectedDate && isSelectedMonth && isSelectedYear && !this.isDateNull);
1116
+ return isSelectedDate && isSelectedMonth && isSelectedYear && !this.isDateNull;
1147
1117
  }
1148
1118
  ngOnDestroy() {
1149
1119
  this.alive = false;
@@ -1223,7 +1193,7 @@ class ScrollToSelectedYearDirective {
1223
1193
  this.alive = false;
1224
1194
  }
1225
1195
  ngAfterViewInit() {
1226
- this.el.nativeElement.scrollIntoView({ inline: "center", block: "center" });
1196
+ this.el.nativeElement.scrollIntoView({ inline: 'center', block: 'center' });
1227
1197
  }
1228
1198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollToSelectedYearDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1229
1199
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: ScrollToSelectedYearDirective, isStandalone: true, selector: "[tetaScrollToSelectedYear]", ngImport: i0 }); }
@@ -1232,7 +1202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
1232
1202
  type: Directive,
1233
1203
  args: [{
1234
1204
  selector: '[tetaScrollToSelectedYear]',
1235
- standalone: true
1205
+ standalone: true,
1236
1206
  }]
1237
1207
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
1238
1208
  type: Inject,
@@ -1256,18 +1226,20 @@ class YearPickerComponent {
1256
1226
  }
1257
1227
  isDisabled(year) {
1258
1228
  if (this.minMax) {
1259
- const isSuitableMax = dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) && this.minMax.max !== null;
1260
- const isSuitableMin = dayjs(new Date().setFullYear(year)).endOf('year').isBefore(new Date(this.minMax.min)) && this.minMax.min !== null;
1229
+ const isSuitableMax = dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) &&
1230
+ this.minMax.max !== null;
1231
+ const isSuitableMin = dayjs(new Date().setFullYear(year)).endOf('year').isBefore(new Date(this.minMax.min)) &&
1232
+ this.minMax.min !== null;
1261
1233
  return isSuitableMax || isSuitableMin;
1262
1234
  }
1263
1235
  return false;
1264
1236
  }
1265
1237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1266
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{locale.selectYear}}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id,y.disabled)\">\n <div [ngClass]=\"{'datepicker-year_item_active':y.isSelected,'datepicker-year_item_disabled':y.disabled}\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_'+viewType\">\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{y.id}}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{y.id}} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1267
1239
  }
1268
1240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, decorators: [{
1269
1241
  type: Component,
1270
- args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{locale.selectYear}}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id,y.disabled)\">\n <div [ngClass]=\"{'datepicker-year_item_active':y.isSelected,'datepicker-year_item_disabled':y.disabled}\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_'+viewType\">\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{y.id}}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{y.id}} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n\n" }]
1242
+ args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if ( y.isSelected===true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n } @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1271
1243
  }], ctorParameters: () => [], propDecorators: { selectedYear: [{
1272
1244
  type: Input
1273
1245
  }], viewType: [{
@@ -1298,16 +1270,16 @@ class MonthPickerComponent {
1298
1270
  return {
1299
1271
  id: i,
1300
1272
  name: m,
1301
- isSelected: this.selectedMonth === i
1273
+ isSelected: this.selectedMonth === i,
1302
1274
  };
1303
1275
  });
1304
1276
  }
1305
1277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1306
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"pickYear(currentYear-1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{currentYear}}</p>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"pickYear(currentYear+1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\"\n style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div [ngClass]=\"{'datepicker-month_item_active':month['isSelected']}\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_'+viewType\">\n <p>\n {{month.name}}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1307
1279
  }
1308
1280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
1309
1281
  type: Component,
1310
- args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"pickYear(currentYear-1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{currentYear}}</p>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"pickYear(currentYear+1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\"\n style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div [ngClass]=\"{'datepicker-month_item_active':month['isSelected']}\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_'+viewType\">\n <p>\n {{month.name}}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n\n\n" }]
1282
+ args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
1311
1283
  }], ctorParameters: () => [], propDecorators: { selectedMonth: [{
1312
1284
  type: Input
1313
1285
  }], viewType: [{
@@ -1323,14 +1295,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
1323
1295
  }] } });
1324
1296
 
1325
1297
  class DayItemComponent {
1326
- ngOnInit() {
1327
- }
1298
+ ngOnInit() { }
1328
1299
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1329
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: DayItemComponent, isStandalone: true, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{day.date.getDate()}}</p>\n\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: DayItemComponent, isStandalone: true, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{ day.date.getDate() }}</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1330
1301
  }
1331
1302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, decorators: [{
1332
1303
  type: Component,
1333
- args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>{{day.date.getDate()}}</p>\n\n" }]
1304
+ args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>{{ day.date.getDate() }}</p>\n" }]
1334
1305
  }], propDecorators: { day: [{
1335
1306
  type: Input
1336
1307
  }] } });
@@ -1348,7 +1319,7 @@ class DayPickerComponent {
1348
1319
  }
1349
1320
  isHoveredRange(day) {
1350
1321
  if (!this.range?.to && this.range?.from) {
1351
- return this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from);
1322
+ return (this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from));
1352
1323
  }
1353
1324
  return false;
1354
1325
  }
@@ -1386,9 +1357,9 @@ class DayPickerComponent {
1386
1357
  }
1387
1358
  }
1388
1359
  getClassStaticItem(d) {
1389
- const from = dayjs(new Date(this.range.from)).startOf("day").toDate();
1390
- const to = dayjs(new Date(this.range.to)).startOf("day").toDate();
1391
- const itemDate = dayjs(new Date(d.date)).startOf("day").toDate();
1360
+ const from = dayjs(new Date(this.range.from)).startOf('day').toDate();
1361
+ const to = dayjs(new Date(this.range.to)).startOf('day').toDate();
1362
+ const itemDate = dayjs(new Date(d.date)).startOf('day').toDate();
1392
1363
  if (from.getTime() === itemDate.getTime()) {
1393
1364
  return 'datepicker-date_active-first';
1394
1365
  }
@@ -1421,11 +1392,11 @@ class DayPickerComponent {
1421
1392
  this.dayOrder = arr;
1422
1393
  }
1423
1394
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1424
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{day}}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div [class]=\"getRangeActiveClass(day)+' datepicker-date font-body-3 datepicker_'+viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{'datepicker-date_active':day.selected||(day.date===hoveredDate&&range&&!range.to),'datepicker-date-range_hover':range&&isHoveredRange(day),\n 'datepicker-date_disabled':day.disabled,'color-text-30':day.disabled||(!range&&!day.isCurrentMonth),'datepicker-date-range_disabled':!day.isCurrentMonth&&range,'datepicker-date-range_active':isActiveRange(day)}\">\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1395
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1425
1396
  }
1426
1397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
1427
1398
  type: Component,
1428
- args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{day}}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div [class]=\"getRangeActiveClass(day)+' datepicker-date font-body-3 datepicker_'+viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{'datepicker-date_active':day.selected||(day.date===hoveredDate&&range&&!range.to),'datepicker-date-range_hover':range&&isHoveredRange(day),\n 'datepicker-date_disabled':day.disabled,'color-text-30':day.disabled||(!range&&!day.isCurrentMonth),'datepicker-date-range_disabled':!day.isCurrentMonth&&range,'datepicker-date-range_active':isActiveRange(day)}\">\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n\n" }]
1399
+ args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
1429
1400
  }], ctorParameters: () => [], propDecorators: { date: [{
1430
1401
  type: Input
1431
1402
  }], calendar: [{
@@ -1459,23 +1430,16 @@ class DateCalendarComponent extends BaseCalendar {
1459
1430
  .pipe(takeWhile$1(() => this.alive), filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null), map$1(([year, month, minMax]) => {
1460
1431
  return this.generateCalendar(dayjs(new Date(this.selectedDate)).locale('ru', { weekStart: 1 }), year, month, minMax);
1461
1432
  }))
1462
- .subscribe(_ => {
1433
+ .subscribe((_) => {
1463
1434
  this.calendar = _;
1464
1435
  });
1465
1436
  }
1466
1437
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1467
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n <div\n class=\"datepicker-content overflow-y-auto\"\n >\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event,data.currentMonth,data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n }\n @if (data.selectedPicker==='month') {\n <teta-month-picker [localeMoths]=\"locale.months\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n }\n @if (data.selectedPicker==='year') {\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n }\n </div>\n}\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCalendarComponent, isStandalone: true, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", open: "open", locale: "locale", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1468
1439
  }
1469
1440
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCalendarComponent, decorators: [{
1470
1441
  type: Component,
1471
- args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1472
- ButtonComponent,
1473
- IconComponent,
1474
- DayPickerComponent,
1475
- MonthPickerComponent,
1476
- YearPickerComponent,
1477
- AsyncPipe,
1478
- ], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n <div\n class=\"datepicker-content overflow-y-auto\"\n >\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event,data.currentMonth,data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n }\n @if (data.selectedPicker==='month') {\n <teta-month-picker [localeMoths]=\"locale.months\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n }\n @if (data.selectedPicker==='year') {\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n }\n </div>\n}\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
1442
+ args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent, AsyncPipe], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async}; as data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"padding-h-3 padding-v-2\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2\">\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('month')\"\n >\n {{ getMothName(data.currentMonth) }}\n </button>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar\"\n ></teta-day-picker>\n </div>\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
1479
1443
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selectedDate: [{
1480
1444
  type: Input
1481
1445
  }], open: [{
@@ -1506,7 +1470,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
1506
1470
  type: Directive,
1507
1471
  args: [{
1508
1472
  selector: '[tetaDropdownContent]',
1509
- standalone: true
1473
+ standalone: true,
1510
1474
  }]
1511
1475
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
1512
1476
 
@@ -1629,7 +1593,7 @@ class ArrayUtil {
1629
1593
  }
1630
1594
  static flatten(data, children, onlyLeafs) {
1631
1595
  const result = [];
1632
- data.forEach(child => {
1596
+ data.forEach((child) => {
1633
1597
  let childItems = [];
1634
1598
  if (children) {
1635
1599
  if (typeof children === 'string') {
@@ -1642,9 +1606,7 @@ class ArrayUtil {
1642
1606
  else {
1643
1607
  childItems = child.children;
1644
1608
  }
1645
- if (childItems !== null &&
1646
- childItems !== undefined &&
1647
- childItems.length > 0) {
1609
+ if (childItems !== null && childItems !== undefined && childItems.length > 0) {
1648
1610
  if (!onlyLeafs) {
1649
1611
  result.push(child);
1650
1612
  }
@@ -1657,7 +1619,7 @@ class ArrayUtil {
1657
1619
  return result;
1658
1620
  }
1659
1621
  static findRecursive(tree, comparer, children = 'children') {
1660
- const found = tree.find(x => comparer(x));
1622
+ const found = tree.find((x) => comparer(x));
1661
1623
  if (found !== null && found !== undefined) {
1662
1624
  return found;
1663
1625
  }
@@ -1703,7 +1665,7 @@ class ArrayUtil {
1703
1665
  const result = [];
1704
1666
  if (array && array.length) {
1705
1667
  for (const item of array) {
1706
- const found = result.find(_ => comparator(_) === comparator(item));
1668
+ const found = result.find((_) => comparator(_) === comparator(item));
1707
1669
  if (!found) {
1708
1670
  result.push(item);
1709
1671
  }
@@ -1755,8 +1717,7 @@ class DomUtil {
1755
1717
  return null;
1756
1718
  }
1757
1719
  static isOverflown(element) {
1758
- return (element.scrollHeight > element.clientHeight ||
1759
- element.scrollWidth > element.clientWidth);
1720
+ return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
1760
1721
  }
1761
1722
  }
1762
1723
 
@@ -1785,9 +1746,7 @@ class PositionUtil {
1785
1746
  rect.left = containerPosition.right - elementWidth - margin;
1786
1747
  }
1787
1748
  if (align === Align.center) {
1788
- rect.left =
1789
- (containerPosition.left + containerPosition.right) / 2 -
1790
- elementWidth / 2;
1749
+ rect.left = (containerPosition.left + containerPosition.right) / 2 - elementWidth / 2;
1791
1750
  }
1792
1751
  if (align === Align.outerAuto) {
1793
1752
  align = Align.outerRight;
@@ -1840,9 +1799,7 @@ class PositionUtil {
1840
1799
  rect.top = containerPosition.top + verticalMargin;
1841
1800
  }
1842
1801
  if (verticalAlign === VerticalAlign.center) {
1843
- rect.top =
1844
- (containerPosition.top + containerPosition.bottom) / 2 -
1845
- elementHeight / 2;
1802
+ rect.top = (containerPosition.top + containerPosition.bottom) / 2 - elementHeight / 2;
1846
1803
  }
1847
1804
  if (rect.left + elementWidth > window.innerWidth) {
1848
1805
  rect.left = window.innerWidth - elementWidth;
@@ -1861,8 +1818,7 @@ class PositionUtil {
1861
1818
  verticalAlign === VerticalAlign.innerBottom) {
1862
1819
  rect.maxHeight = window.innerHeight - rect.top;
1863
1820
  }
1864
- if (verticalAlign === VerticalAlign.top ||
1865
- verticalAlign === VerticalAlign.innerTop) {
1821
+ if (verticalAlign === VerticalAlign.top || verticalAlign === VerticalAlign.innerTop) {
1866
1822
  rect.maxHeight = containerPosition.top;
1867
1823
  }
1868
1824
  if (!isNaN(rect.left)) {
@@ -1875,9 +1831,7 @@ class PositionUtil {
1875
1831
  rect.top = rect.top - transformedParentRect.top;
1876
1832
  }
1877
1833
  if (!isNaN(rect.bottom)) {
1878
- rect.bottom = rect.bottom
1879
- ? rect.bottom - transformedParentRect.bottom
1880
- : rect.bottom;
1834
+ rect.bottom = rect.bottom ? rect.bottom - transformedParentRect.bottom : rect.bottom;
1881
1835
  }
1882
1836
  return rect;
1883
1837
  }
@@ -1886,8 +1840,7 @@ class PositionUtil {
1886
1840
  element.style.right = rect.right != null ? `${rect.right}px` : '';
1887
1841
  element.style.top = rect.top != null ? `${rect.top}px` : '';
1888
1842
  element.style.bottom = rect.bottom != null ? `${rect.bottom}px` : '';
1889
- element.style.maxHeight =
1890
- rect.maxHeight != null ? `${rect.maxHeight}px` : '';
1843
+ element.style.maxHeight = rect.maxHeight != null ? `${rect.maxHeight}px` : '';
1891
1844
  element.style.minWidth = rect.minWidth != null ? `${rect.minWidth}px` : '';
1892
1845
  }
1893
1846
  static getMaxHeight(position) {
@@ -1928,10 +1881,7 @@ class PopupContentComponent {
1928
1881
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PopupContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1929
1882
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: PopupContentComponent, isStandalone: true, selector: "teta-popup-content", inputs: { className: "className" }, host: { properties: { "@dialog": "this.dialog", "class": "this.getClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], animations: [
1930
1883
  trigger('dialog', [
1931
- transition('void => *', [
1932
- style({ opacity: '0' }),
1933
- animate(200, style({ opacity: '1' })),
1934
- ]),
1884
+ transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
1935
1885
  transition('* => void', [animate(200, style({ opacity: '0' }))]),
1936
1886
  ]),
1937
1887
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -1940,10 +1890,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
1940
1890
  type: Component,
1941
1891
  args: [{ selector: 'teta-popup-content', animations: [
1942
1892
  trigger('dialog', [
1943
- transition('void => *', [
1944
- style({ opacity: '0' }),
1945
- animate(200, style({ opacity: '1' })),
1946
- ]),
1893
+ transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
1947
1894
  transition('* => void', [animate(200, style({ opacity: '0' }))]),
1948
1895
  ]),
1949
1896
  ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>\n" }]
@@ -1981,8 +1928,8 @@ class DynamicContentBaseDirective {
1981
1928
  this._alive = true;
1982
1929
  this._open = false;
1983
1930
  this._zone.onStable
1984
- .pipe(takeWhile(_ => this._alive), filter$1(_ => this._open))
1985
- .subscribe(_ => {
1931
+ .pipe(takeWhile((_) => this._alive), filter$1((_) => this._open))
1932
+ .subscribe((_) => {
1986
1933
  this.setPosition();
1987
1934
  });
1988
1935
  }
@@ -2062,34 +2009,25 @@ class HintDirective extends DynamicContentBaseDirective {
2062
2009
  }
2063
2010
  }
2064
2011
  click(event) {
2065
- if (this._open &&
2066
- this._componentRef &&
2067
- DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
2012
+ if (this._open && this._componentRef && DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
2068
2013
  event.stopPropagation();
2069
2014
  }
2070
2015
  }
2071
2016
  setPosition() {
2072
2017
  if (this._componentRef && this._open) {
2073
2018
  if (!this._componentRect) {
2074
- this._componentRect =
2075
- this._componentRef.location.nativeElement.getBoundingClientRect();
2019
+ this._componentRect = this._componentRef.location.nativeElement.getBoundingClientRect();
2076
2020
  }
2077
2021
  const position = PositionUtil.getPosition(this._elementRef.nativeElement.getBoundingClientRect(), this._componentRect, this.align, this.verticalAlign, 0, 4);
2078
2022
  PositionUtil.setElementPosition(this._componentRef.location.nativeElement, position);
2079
2023
  }
2080
2024
  }
2081
2025
  createHint() {
2082
- if (!this._dynamicContent ||
2083
- (this.overflownOnly &&
2084
- !DomUtil.isOverflown(this._elementRef.nativeElement))) {
2026
+ if (!this._dynamicContent || (this.overflownOnly && !DomUtil.isOverflown(this._elementRef.nativeElement))) {
2085
2027
  return;
2086
2028
  }
2087
2029
  this._componentRef = this.createContentRef();
2088
- this._componentRef.instance.className = [
2089
- ...ArrayUtil.asArray(this.className),
2090
- 'hint ',
2091
- 'hint_' + this.viewType,
2092
- ];
2030
+ this._componentRef.instance.className = [...ArrayUtil.asArray(this.className), 'hint ', 'hint_' + this.viewType];
2093
2031
  }
2094
2032
  ngOnDestroy() {
2095
2033
  super.ngOnDestroy();
@@ -2140,11 +2078,11 @@ class InputComponent {
2140
2078
  return !this.horizontal;
2141
2079
  }
2142
2080
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n <div class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n >\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\">\n {{label}}\n </span>\n </div>\n}\n<div [class]=\"'input-container input_'+viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2081
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: InputComponent, isStandalone: true, selector: "teta-input", inputs: { label: "label", hint: "hint", viewType: "viewType", horizontal: "horizontal", required: "required" }, host: { properties: { "class.row": "this.horizontal", "class.column": "this.column" } }, ngImport: i0, template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2144
2082
  }
2145
2083
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: InputComponent, decorators: [{
2146
2084
  type: Component,
2147
- args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n <div class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n >\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\">\n {{label}}\n </span>\n </div>\n}\n<div [class]=\"'input-container input_'+viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
2085
+ args: [{ selector: 'teta-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "@if (label?.length > 0) {\n<div\n class=\"font-caption color-text-70 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n>\n <span\n class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\"\n >\n {{ label }}\n </span>\n</div>\n}\n<div [class]=\"'input-container input_' + viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n", styles: [":host{display:flex;grid-gap:4px;flex-grow:1;flex-basis:10px}\n"] }]
2148
2086
  }], propDecorators: { label: [{
2149
2087
  type: Input
2150
2088
  }], hint: [{
@@ -2174,7 +2112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2174
2112
  type: Directive,
2175
2113
  args: [{
2176
2114
  selector: '[tetaDropdownHead]',
2177
- standalone: true
2115
+ standalone: true,
2178
2116
  }]
2179
2117
  }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
2180
2118
  type: Optional
@@ -2195,9 +2133,7 @@ class DropdownBase {
2195
2133
  return this._open;
2196
2134
  }
2197
2135
  get container() {
2198
- return this.appendToBody
2199
- ? this._document.body
2200
- : this._elementRef.nativeElement;
2136
+ return this.appendToBody ? this._document.body : this._elementRef.nativeElement;
2201
2137
  }
2202
2138
  constructor(_cdr, _document, _elementRef, _zone, _renderer) {
2203
2139
  this._cdr = _cdr;
@@ -2216,16 +2152,14 @@ class DropdownBase {
2216
2152
  this._backdrop = null;
2217
2153
  this._open = false;
2218
2154
  this._alive = true;
2219
- this.scrollListener = event => {
2220
- if (this.open &&
2221
- !this._body.contains(event.target) &&
2222
- this._body !== event.target) {
2155
+ this.scrollListener = (event) => {
2156
+ if (this.open && !this._body.contains(event.target) && this._body !== event.target) {
2223
2157
  this.closeDropdown();
2224
2158
  }
2225
2159
  };
2226
2160
  this._zone.onStable
2227
- .pipe(takeWhile(_ => this._alive), throttleTime(10, undefined, { trailing: true }))
2228
- .subscribe(_ => {
2161
+ .pipe(takeWhile((_) => this._alive), throttleTime(10, undefined, { trailing: true }))
2162
+ .subscribe((_) => {
2229
2163
  if (this._head?.nativeElement && this._body) {
2230
2164
  setTimeout(() => {
2231
2165
  if (this._head?.nativeElement && this._body) {
@@ -2238,8 +2172,7 @@ class DropdownBase {
2238
2172
  }
2239
2173
  click(event) {
2240
2174
  if (this.open) {
2241
- if (!DomUtil.clickedInside(this._body, event) ||
2242
- this.autoCloseIgnore.indexOf('inside') < 0) {
2175
+ if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
2243
2176
  this.closeDropdown();
2244
2177
  }
2245
2178
  }
@@ -2250,10 +2183,7 @@ class DropdownBase {
2250
2183
  }
2251
2184
  }
2252
2185
  documentClick(event) {
2253
- if (!this.open ||
2254
- !this.autoClose ||
2255
- event.detail === 0 ||
2256
- DomUtil.clickedInside(this._head.nativeElement, event)) {
2186
+ if (!this.open || !this.autoClose || event.detail === 0 || DomUtil.clickedInside(this._head.nativeElement, event)) {
2257
2187
  return;
2258
2188
  }
2259
2189
  if (DomUtil.clickedInside(this._body, event)) {
@@ -2269,9 +2199,7 @@ class DropdownBase {
2269
2199
  }
2270
2200
  keyUp(event) {
2271
2201
  const key = ['esc', 'enter'];
2272
- if (!this.open ||
2273
- !this.autoClose ||
2274
- key.every((_) => this.autoCloseIgnore.indexOf(_) >= 0)) {
2202
+ if (!this.open || !this.autoClose || key.every((_) => this.autoCloseIgnore.indexOf(_) >= 0)) {
2275
2203
  return;
2276
2204
  }
2277
2205
  if ((event.code === 'Escape' && this.autoCloseIgnore.indexOf('esc') < 0) ||
@@ -2305,8 +2233,7 @@ class DropdownBase {
2305
2233
  this.openChange.emit(this.open);
2306
2234
  const renderer = this._renderer;
2307
2235
  const content = this._content.nativeElement;
2308
- const container = (this._body =
2309
- this._body || renderer.createElement('div'));
2236
+ const container = (this._body = this._body || renderer.createElement('div'));
2310
2237
  renderer.addClass(container, 'dropdown');
2311
2238
  renderer.addClass(container, 'dropdown_' + this.viewType);
2312
2239
  if (this.backdrop) {
@@ -2316,7 +2243,7 @@ class DropdownBase {
2316
2243
  }
2317
2244
  if (this.className != null) {
2318
2245
  if (this.className instanceof Array && this.className.length > 0) {
2319
- this.className.forEach(_ => {
2246
+ this.className.forEach((_) => {
2320
2247
  renderer.addClass(container, _);
2321
2248
  });
2322
2249
  }
@@ -2415,8 +2342,7 @@ class DropdownComponent extends DropdownBase {
2415
2342
  this._zone = _zone;
2416
2343
  this._renderer = _renderer;
2417
2344
  }
2418
- ngOnInit() {
2419
- }
2345
+ ngOnInit() { }
2420
2346
  ngOnDestroy() {
2421
2347
  this.closeDropdown();
2422
2348
  this.removeScrollListener();
@@ -2543,8 +2469,7 @@ class DatePickerComponent extends BasePicker {
2543
2469
  this.selectedDate.next(date);
2544
2470
  }
2545
2471
  }
2546
- onChange(date) {
2547
- }
2472
+ onChange(date) { }
2548
2473
  registerOnChange(fn) {
2549
2474
  this.onChange = fn;
2550
2475
  }
@@ -2569,7 +2494,7 @@ class DatePickerComponent extends BasePicker {
2569
2494
  this.prepareInput(false);
2570
2495
  }
2571
2496
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
2572
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({\n selectedDate:selectedDate | async\n }; as data) {\n <teta-dropdown\n class='row row_auto'\n [appendToBody]='appendToBody'\n [backdrop]='backdrop'\n [open]='open'\n (openChange)='openChange($event)'\n [viewType]='viewType'\n [disabled]='disabled'\n [verticalAlign]='verticalAlign'\n [align]='align'\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class='row row_auto flex'>\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class='row row_auto position-relative font-body-3 align-center'>\n <input [ngClass]=\"{'color-text-90':!disabled}\"\n [disabled]='disabled' #input style='z-index: 1'\n class='row_auto border-0'\n (keydown)='checkEnter($event)'\n [(ngModel)]='inputText'\n (ngModelChange)='changeInput($event)'\n [maskito]='maskitoOptions'>\n @if (data.selectedDate||allowNull) {\n <div (click)='input.focus()' class='position-absolute color-text-10'\n style='cursor: text;user-select: none'>{{placeholder}}</div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent\n (click)='$event.preventDefault()'>\n <teta-date-calendar [isDateNull]='date===null'\n [open]='open'\n [max]='maxDate'\n [min]='minDate'\n (setDate)='changeSelectedDate($event)'\n [selectedDate]='data.selectedDate'\n [viewType]='viewType' [locale]='locale|async'></teta-date-calendar>\n </div>\n </teta-dropdown>\n }\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: ["selectedDate", "open", "locale", "viewType", "min", "isDateNull", "max"], outputs: ["setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DatePickerComponent, isStandalone: true, selector: "teta-date-picker", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minYearDate: "minYearDate", maxYearDate: "maxYearDate" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.datepicker": "this.classDatepicker", "class.datepicker-time": "this.dateTimeClass", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: ["selectedDate", "open", "locale", "viewType", "min", "isDateNull", "max"], outputs: ["setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2573
2498
  }
2574
2499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DatePickerComponent, decorators: [{
2575
2500
  type: Component,
@@ -2584,7 +2509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2584
2509
  DropdownContentDirective,
2585
2510
  DateCalendarComponent,
2586
2511
  AsyncPipe,
2587
- ], template: "@if ({\n selectedDate:selectedDate | async\n }; as data) {\n <teta-dropdown\n class='row row_auto'\n [appendToBody]='appendToBody'\n [backdrop]='backdrop'\n [open]='open'\n (openChange)='openChange($event)'\n [viewType]='viewType'\n [disabled]='disabled'\n [verticalAlign]='verticalAlign'\n [align]='align'\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class='row row_auto flex'>\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class='row row_auto position-relative font-body-3 align-center'>\n <input [ngClass]=\"{'color-text-90':!disabled}\"\n [disabled]='disabled' #input style='z-index: 1'\n class='row_auto border-0'\n (keydown)='checkEnter($event)'\n [(ngModel)]='inputText'\n (ngModelChange)='changeInput($event)'\n [maskito]='maskitoOptions'>\n @if (data.selectedDate||allowNull) {\n <div (click)='input.focus()' class='position-absolute color-text-10'\n style='cursor: text;user-select: none'>{{placeholder}}</div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent\n (click)='$event.preventDefault()'>\n <teta-date-calendar [isDateNull]='date===null'\n [open]='open'\n [max]='maxDate'\n [min]='minDate'\n (setDate)='changeSelectedDate($event)'\n [selectedDate]='data.selectedDate'\n [viewType]='viewType' [locale]='locale|async'></teta-date-calendar>\n </div>\n </teta-dropdown>\n }\n" }]
2512
+ ], template: "@if ({ selectedDate:selectedDate | async }; as data) {\n<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"row_auto border-0\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent (click)=\"$event.preventDefault()\">\n <teta-date-calendar\n [isDateNull]=\"date === null\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-date-calendar>\n </div>\n</teta-dropdown>\n}\n" }]
2588
2513
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
2589
2514
  type: Input
2590
2515
  }], showTime: [{
@@ -2660,7 +2585,7 @@ class RangeCalendarComponent extends BaseCalendar {
2660
2585
  nextMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale('ru', { weekStart: 1 }), availableYear, availableMonth, minMax),
2661
2586
  };
2662
2587
  }))
2663
- .subscribe(_ => {
2588
+ .subscribe((_) => {
2664
2589
  this.calendar = _;
2665
2590
  });
2666
2591
  }
@@ -2707,7 +2632,7 @@ class RangeCalendarComponent extends BaseCalendar {
2707
2632
  }
2708
2633
  }
2709
2634
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2710
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async}; as data) {\n <div\n class=\"datepicker-content overflow-y-auto\"\n >\n @if (data.selectedPicker==='day') {\n <div class=\"row \" (wheel)=\"scrollMonth($event,data.currentMonth,data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{'datepicker-arrow_hidden':!isLastDaySuitable(data.currentMonth-1,data.currentYear,min)}\"\n [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p> {{getMothName(data.currentMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\"\n >\n <div class=\"row align-center justify-content-between\">\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{getMothName(availableMonthYear.availableMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{availableMonthYear.availableYear}}</button>\n </div>\n <teta-button [square]=\"true\"\n [ngClass]=\"{'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth+2,data.currentYear,max)}\"\n [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker==='month') {\n <teta-month-picker [localeMoths]=\"locale.months\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n }\n @if (data.selectedPicker==='year') {\n <teta-year-picker [minMax]=\"data.minMax\" [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n }\n </div>\n}\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2711
2636
  }
2712
2637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, decorators: [{
2713
2638
  type: Component,
@@ -2719,7 +2644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2719
2644
  MonthPickerComponent,
2720
2645
  YearPickerComponent,
2721
2646
  AsyncPipe,
2722
- ], template: "@if ({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async}; as data) {\n <div\n class=\"datepicker-content overflow-y-auto\"\n >\n @if (data.selectedPicker==='day') {\n <div class=\"row \" (wheel)=\"scrollMonth($event,data.currentMonth,data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{'datepicker-arrow_hidden':!isLastDaySuitable(data.currentMonth-1,data.currentYear,min)}\"\n [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p> {{getMothName(data.currentMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\"\n >\n <div class=\"row align-center justify-content-between\">\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{getMothName(availableMonthYear.availableMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{availableMonthYear.availableYear}}</button>\n </div>\n <teta-button [square]=\"true\"\n [ngClass]=\"{'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth+2,data.currentYear,max)}\"\n [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker==='month') {\n <teta-month-picker [localeMoths]=\"locale.months\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n }\n @if (data.selectedPicker==='year') {\n <teta-year-picker [minMax]=\"data.minMax\" [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n }\n </div>\n}\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
2647
+ ], template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
2723
2648
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { locale: [{
2724
2649
  type: Input
2725
2650
  }], open: [{
@@ -2790,21 +2715,13 @@ class DateRangeComponent extends BasePicker {
2790
2715
  if (this.allowNull) {
2791
2716
  return null;
2792
2717
  }
2793
- return (this.datePipe.transform(new Date(), 'dd.MM.yyyy') +
2794
- ' - ' +
2795
- this.datePipe.transform(new Date(), 'dd.MM.yyyy'));
2718
+ return (this.datePipe.transform(new Date(), 'dd.MM.yyyy') + ' - ' + this.datePipe.transform(new Date(), 'dd.MM.yyyy'));
2796
2719
  }
2797
2720
  async prepareInput() {
2798
2721
  const config = await lastValueFrom(this.localeService.locale.pipe(take(1)));
2799
- let str = this.getLocaleString(this.date.from) +
2800
- ' - ' +
2801
- this.getLocaleString(this.date.to);
2722
+ let str = this.getLocaleString(this.date.from) + ' - ' + this.getLocaleString(this.date.to);
2802
2723
  if (!this.date?.from) {
2803
- str = this.allowNull
2804
- ? ''
2805
- : this.getLocaleString(new Date()) +
2806
- ' - ' +
2807
- this.getLocaleString(new Date());
2724
+ str = this.allowNull ? '' : this.getLocaleString(new Date()) + ' - ' + this.getLocaleString(new Date());
2808
2725
  }
2809
2726
  const option = {
2810
2727
  mode: 'dd/mm/yyyy',
@@ -2913,7 +2830,7 @@ class DateRangeComponent extends BasePicker {
2913
2830
  }
2914
2831
  onChange(date) { }
2915
2832
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$1.DatePipe }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
2916
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n <teta-dropdown [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n class='row row_auto'\n [(open)]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\"\n class=\"border-0 color-text-90\" (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\"\n style=\"cursor: text;user-select: none\">{{placeholder}}</div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar [isDateNull]=\"date===null||(date?.from===null&&date?.to===null)\" [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event,data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\" [locale]=\"locale|async\"></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n }\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2833
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2917
2834
  }
2918
2835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, decorators: [{
2919
2836
  type: Component,
@@ -2928,7 +2845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
2928
2845
  DropdownContentDirective,
2929
2846
  RangeCalendarComponent,
2930
2847
  AsyncPipe,
2931
- ], template: "@if ({selectedDate:selectedDate|async};as data) {\n <teta-dropdown [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n class='row row_auto'\n [(open)]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\"\n class=\"border-0 color-text-90\" (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\"\n style=\"cursor: text;user-select: none\">{{placeholder}}</div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar [isDateNull]=\"date===null||(date?.from===null&&date?.to===null)\" [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event,data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\" [locale]=\"locale|async\"></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n }\n" }]
2848
+ ], template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n" }]
2932
2849
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$1.DatePipe }, { type: TetaConfigService }], propDecorators: { date: [{
2933
2850
  type: Input
2934
2851
  }], showTime: [{
@@ -3047,8 +2964,7 @@ class DropdownDirective extends DropdownBase {
3047
2964
  this._zone = _zone;
3048
2965
  this._renderer = _renderer;
3049
2966
  }
3050
- ngOnInit() {
3051
- }
2967
+ ngOnInit() { }
3052
2968
  ngOnDestroy() {
3053
2969
  this.closeDropdown();
3054
2970
  this.removeScrollListener();
@@ -3066,7 +2982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
3066
2982
  type: Directive,
3067
2983
  args: [{
3068
2984
  selector: '[tetaDropdown]',
3069
- standalone: true
2985
+ standalone: true,
3070
2986
  }]
3071
2987
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
3072
2988
  type: Inject,
@@ -3104,18 +3020,17 @@ class ExpandCardComponent {
3104
3020
  this.showCross = true;
3105
3021
  this.crossClick = new EventEmitter();
3106
3022
  }
3107
- ngOnInit() {
3108
- }
3023
+ ngOnInit() { }
3109
3024
  setOpen() {
3110
3025
  this.open = !this.open;
3111
3026
  this.openChange.emit(this.open);
3112
3027
  }
3113
3028
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class='height-4'></teta-delimiter>\n <button type=\"button\" teta-button (click)=\"crossClick.emit($event)\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandCardComponent, isStandalone: true, selector: "teta-expand-card", inputs: { open: "open", showCross: "showCross" }, outputs: { openChange: "openChange", crossClick: "crossClick" }, exportAs: ["expand-card"], ngImport: i0, template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DelimiterComponent, selector: "teta-delimiter", inputs: ["direction", "palette", "height", "verticalMargin", "horizontalMargin", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3115
3030
  }
3116
3031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandCardComponent, decorators: [{
3117
3032
  type: Component,
3118
- args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class='height-4'></teta-delimiter>\n <button type=\"button\" teta-button (click)=\"crossClick.emit($event)\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3033
+ args: [{ selector: 'teta-expand-card', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-card', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, DelimiterComponent], template: "<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n @if (showCross) {\n <teta-delimiter [palette]=\"'text'\" class=\"height-4\"></teta-delimiter>\n <button\n type=\"button\"\n teta-button\n (click)=\"crossClick.emit($event)\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n [square]=\"true\"\n >\n <teta-icon [name]=\"'closeBig'\" [palette]=\"'text'\"></teta-icon>\n </button>\n }\n </div>\n</teta-toolbar>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{border:solid 1px var(--color-text-5);border-radius:4px;animation:append-animate .5s linear;transition:order 5s ease-in}.content{padding:0 12px 12px;animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3119
3034
  }], ctorParameters: () => [], propDecorators: { open: [{
3120
3035
  type: Input
3121
3036
  }], openChange: [{
@@ -3136,11 +3051,11 @@ class ExpandItemComponent {
3136
3051
  this.openChange.emit(this.open);
3137
3052
  }
3138
3053
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3054
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandItemComponent, isStandalone: true, selector: "teta-expand-item", inputs: { open: "open" }, outputs: { openChange: "openChange" }, exportAs: ["expand-item"], ngImport: i0, template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3140
3055
  }
3141
3056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandItemComponent, decorators: [{
3142
3057
  type: Component,
3143
- args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3058
+ args: [{ selector: 'teta-expand-item', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'expand-item', standalone: true, imports: [ButtonComponent, IconComponent], template: "<div class=\"row align-center gap color-text-90 height-6\">\n <div class=\"row row_auto align-center font-title-2\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\" [palette]=\"'text'\"></teta-icon>\n </button>\n</div>\n@if (open) {\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n}\n", styles: [":host{animation:append-animate .5s linear;transition:order 5s ease-in;display:flex;flex-direction:column;gap:12px}.content{animation:append-animate .5s linear}@keyframes append-animate{0%{opacity:0}to{opacity:1}}\n"] }]
3144
3059
  }], propDecorators: { open: [{
3145
3060
  type: Input
3146
3061
  }], openChange: [{
@@ -3211,16 +3126,11 @@ class ExpandPanelComponent {
3211
3126
  this.openChange.emit(this.open);
3212
3127
  }
3213
3128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3214
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n <teta-toolbar\n style='display: flex'\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]='true'\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='closePanel()'\n >\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class='font-title-2' style='display: contents'>\n <ng-container *ngTemplateOutlet='head?.template'></ng-container>\n </span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet='content?.template'></ng-container>\n}\n@if (!open) {\n <div class='width-10 overflow-hidden' style='height: 100%;'>\n <button\n teta-button\n style='\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 6px;\n '\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='openPanel()'\n >\n <div class='font-button-2 nowrap'>{{ placeholder }}</div>\n <teta-icon style='transform-origin: 0 0;transform: rotate(-90deg) translateX(-100%);'\n [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ExpandPanelComponent, isStandalone: true, selector: "teta-expand-panel", inputs: { placeholder: "placeholder", open: "open", cookieName: "cookieName", direction: "direction" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "content", first: true, predicate: ExpandPanelContentDirective, descendants: true }, { propertyName: "head", first: true, predicate: ExpandPanelHeadDirective, descendants: true }], ngImport: i0, template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3215
3130
  }
3216
3131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ExpandPanelComponent, decorators: [{
3217
3132
  type: Component,
3218
- args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
3219
- ToolbarComponent,
3220
- ButtonComponent,
3221
- IconComponent,
3222
- NgTemplateOutlet,
3223
- ], template: "@if (open) {\n <teta-toolbar\n style='display: flex'\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]='true'\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='closePanel()'\n >\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class='font-title-2' style='display: contents'>\n <ng-container *ngTemplateOutlet='head?.template'></ng-container>\n </span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet='content?.template'></ng-container>\n}\n@if (!open) {\n <div class='width-10 overflow-hidden' style='height: 100%;'>\n <button\n teta-button\n style='\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 6px;\n '\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)='openPanel()'\n >\n <div class='font-button-2 nowrap'>{{ placeholder }}</div>\n <teta-icon style='transform-origin: 0 0;transform: rotate(-90deg) translateX(-100%);'\n [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3133
+ args: [{ selector: 'teta-expand-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, NgTemplateOutlet], template: "@if (open) {\n<teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\"\n>\n <button teta-button [square]=\"true\" [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"closePanel()\">\n <teta-icon [palette]=\"'text'\" [name]=\"direction === 'right' ? 'start' : 'end'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\">\n <ng-container *ngTemplateOutlet=\"head?.template\"></ng-container>\n </span>\n</teta-toolbar>\n<ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n} @if (!open) {\n<div class=\"width-10 overflow-hidden\" style=\"height: 100%\">\n <button\n teta-button\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%); margin: 6px\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon\n style=\"transform-origin: 0 0; transform: rotate(-90deg) translateX(-100%)\"\n [palette]=\"'text'\"\n [name]=\"direction === 'right' ? 'start' : 'end'\"\n ></teta-icon>\n </button>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;min-width:0;min-height:0;height:100%}\n"] }]
3224
3134
  }], ctorParameters: () => [], propDecorators: { content: [{
3225
3135
  type: ContentChild,
3226
3136
  args: [ExpandPanelContentDirective, { static: false }]
@@ -3280,16 +3190,11 @@ class FileUploadAreaComponent {
3280
3190
  event.stopPropagation();
3281
3191
  }
3282
3192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FileUploadAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: FileUploadAreaComponent, isStandalone: true, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, queries: [{ propertyName: "buttonTemplate", first: true, predicate: ["buttonTemplate"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"\n ></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: FileUploadAreaComponent, isStandalone: true, selector: "teta-file-upload-area", inputs: { multiple: "multiple", disabled: "disabled", accept: "accept" }, outputs: { upload: "upload" }, host: { listeners: { "dragenter": "dragEnter($event)", "dragover": "dragOver($event)", "dragleave": "dragLeave($event)", "drop": "drop($event)" }, properties: { "class.file-upload": "this.fileUpload", "class.file-upload_active": "this.fileUploadActive" } }, queries: [{ propertyName: "buttonTemplate", first: true, predicate: ["buttonTemplate"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input\n #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"\n />\n <ng-container [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{ 'common.browse' | transloco }}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3284
3194
  }
3285
3195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FileUploadAreaComponent, decorators: [{
3286
3196
  type: Component,
3287
- args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
3288
- NgTemplateOutlet,
3289
- ButtonComponent,
3290
- IconComponent,
3291
- TranslocoModule,
3292
- ], template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"\n ></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"] }]
3197
+ args: [{ selector: 'teta-file-upload-area', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, ButtonComponent, IconComponent, TranslocoModule], template: "<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input\n #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"\n />\n <ng-container [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\" [palette]=\"'white'\"></teta-icon>\n {{ 'common.browse' | transloco }}\n </teta-button>\n</ng-template>\n", styles: [":host{display:flex}\n"] }]
3293
3198
  }], propDecorators: { fileUpload: [{
3294
3199
  type: HostBinding,
3295
3200
  args: ['class.file-upload']
@@ -3338,8 +3243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
3338
3243
  class DateFilterValue {
3339
3244
  constructor(options) {
3340
3245
  if (options) {
3341
- this.lessThan = (typeof options.lessThan === 'string') ? new Date(options.lessThan) : options.lessThan;
3342
- this.greaterThan = (typeof options.greaterThan === 'string') ? new Date(options.greaterThan) : options.greaterThan;
3246
+ this.lessThan = typeof options.lessThan === 'string' ? new Date(options.lessThan) : options.lessThan;
3247
+ this.greaterThan = typeof options.greaterThan === 'string' ? new Date(options.greaterThan) : options.greaterThan;
3343
3248
  }
3344
3249
  }
3345
3250
  }
@@ -3348,11 +3253,9 @@ class StringUtil {
3348
3253
  static firstLetterToLower(input) {
3349
3254
  return input.charAt(0).toLocaleLowerCase() + input.slice(1);
3350
3255
  }
3351
- ;
3352
3256
  static firstLetterToUpper(input) {
3353
3257
  return input.charAt(0).toLocaleUpperCase() + input.slice(1);
3354
3258
  }
3355
- ;
3356
3259
  }
3357
3260
 
3358
3261
  class FilterBase {
@@ -3623,7 +3526,7 @@ class FilterItem {
3623
3526
  this.listFilterType = options?.listFilterType ?? ListFilterType.None;
3624
3527
  this.strict = options?.strict ?? false;
3625
3528
  this.filterComponent = options?.filterComponent;
3626
- this.columns = options?.columns?.map(_ => new FilterItem(_)) ?? [];
3529
+ this.columns = options?.columns?.map((_) => new FilterItem(_)) ?? [];
3627
3530
  }
3628
3531
  }
3629
3532
 
@@ -3660,16 +3563,11 @@ class DateFilterComponent extends FilterComponentBase {
3660
3563
  return filter;
3661
3564
  }
3662
3565
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
3663
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan=$event\"></teta-date-picker>\n </teta-input>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3566
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateFilterComponent, isStandalone: true, selector: "teta-date-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3664
3567
  }
3665
3568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateFilterComponent, decorators: [{
3666
3569
  type: Component,
3667
- args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
3668
- InputComponent,
3669
- DatePickerComponent,
3670
- FormsModule,
3671
- AsyncPipe,
3672
- ], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan=$event\"></teta-date-picker>\n </teta-input>\n </div>\n}\n" }]
3570
+ args: [{ selector: 'teta-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, DatePickerComponent, FormsModule, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n ></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker\n style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n ></teta-date-picker>\n </teta-input>\n</div>\n}\n" }]
3673
3571
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
3674
3572
  type: Input
3675
3573
  }], data: [{
@@ -3714,7 +3612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
3714
3612
  type: Directive,
3715
3613
  args: [{
3716
3614
  selector: '[tetaLet]',
3717
- standalone: true
3615
+ standalone: true,
3718
3616
  }]
3719
3617
  }], ctorParameters: () => [{ type: i0.ViewContainerRef, decorators: [{
3720
3618
  type: Inject,
@@ -3773,10 +3671,8 @@ class ScrollableComponent {
3773
3671
  }
3774
3672
  fromEvent(this._container.nativeElement, 'scroll')
3775
3673
  .pipe(takeWhile(() => this._alive), tap$1((event) => {
3776
- this._scrollbarHorizontal.nativeElement.scrollLeft =
3777
- event.target.scrollLeft;
3778
- this._scrollbarVertical.nativeElement.scrollTop =
3779
- event.target.scrollTop;
3674
+ this._scrollbarHorizontal.nativeElement.scrollLeft = event.target.scrollLeft;
3675
+ this._scrollbarVertical.nativeElement.scrollTop = event.target.scrollTop;
3780
3676
  this.scroll.emit(event);
3781
3677
  }))
3782
3678
  .subscribe();
@@ -3791,16 +3687,11 @@ class ScrollableComponent {
3791
3687
  this._observe();
3792
3688
  }
3793
3689
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3794
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ScrollableComponent, isStandalone: true, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3690
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ScrollableComponent, isStandalone: true, selector: "teta-scrollable", inputs: { direction: "direction", showScrollbars: "showScrollbars", contentClass: "contentClass" }, outputs: { scroll: "scroll" }, host: { properties: { "class.show-scrollbars": "this.showScrollbars" } }, queries: [{ propertyName: "_scrollDirective", first: true, predicate: ScrollableDirective, descendants: true, read: ElementRef, static: true }], viewQueries: [{ propertyName: "_scrollableWrapper", first: true, predicate: ["scrollableWrapper"], descendants: true, static: true }, { propertyName: "_scrollbarVertical", first: true, predicate: ["scrollbarVertical"], descendants: true, static: true }, { propertyName: "_scrollbarHorizontal", first: true, predicate: ["scrollbarHorizontal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as scrollSize\">\n <div\n #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\"\n >\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px\"></div>\n </div>\n <div\n #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\"\n >\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\" [ngClass]=\"contentClass\" [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[tetaLet]", inputs: ["tetaLet"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3795
3691
  }
3796
3692
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollableComponent, decorators: [{
3797
3693
  type: Component,
3798
- args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
3799
- LetDirective,
3800
- NgClass,
3801
- AsyncPipe,
3802
- ScrollableDirective
3803
- ], template: "<div class=\"scroll-controls\" *tetaLet='scrollSize | async as scrollSize'>\n <div #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
3694
+ args: [{ selector: 'teta-scrollable', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [LetDirective, NgClass, AsyncPipe, ScrollableDirective], template: "<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as scrollSize\">\n <div\n #scrollbarVertical\n [class.display-none]=\"scrollSize?.scrollHeight <= scrollSize?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\"\n >\n <div [style.height.px]=\"scrollSize?.scrollHeight\" style=\"width: 1px\"></div>\n </div>\n <div\n #scrollbarHorizontal\n [class.display-none]=\"scrollSize?.scrollWidth <= scrollSize?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\"\n >\n <div [style.width.px]=\"scrollSize?.scrollWidth\" style=\"height: 1px\"></div>\n </div>\n</div>\n\n<div #scrollableWrapper class=\"scroll-content-wrapper\" [ngClass]=\"contentClass\" [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{overflow:hidden;position:relative;z-index:0;display:flex}:host:hover .scroll-controls{opacity:1}:host.show-scrollbars .scroll-controls{opacity:1}:host::-webkit-scrollbar{width:0;height:0}.scroll-content-wrapper{display:flex;overflow:auto;flex-grow:1}.scroll-content-wrapper::-webkit-scrollbar{width:0;height:0}.scroll-content{position:relative;z-index:0;flex:1;display:flex;height:auto;min-width:0}.scroll-controls{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s linear}.scroll-scrollbar{position:absolute;overflow:auto;pointer-events:auto}.scroll-scrollbar-vertical{right:0;top:0;bottom:12px;width:12px}.scroll-scrollbar-horizontal{right:12px;left:0;bottom:0;height:12px}\n"] }]
3804
3695
  }], ctorParameters: () => [], propDecorators: { _scrollDirective: [{
3805
3696
  type: ContentChild,
3806
3697
  args: [ScrollableDirective, {
@@ -3881,7 +3772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
3881
3772
  type: Pipe,
3882
3773
  args: [{
3883
3774
  name: 'tetaNumber',
3884
- standalone: true
3775
+ standalone: true,
3885
3776
  }]
3886
3777
  }] });
3887
3778
 
@@ -4111,7 +4002,7 @@ class TextFieldComponent {
4111
4002
  useExisting: forwardRef(() => TextFieldComponent),
4112
4003
  multi: true,
4113
4004
  },
4114
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n <teta-icon [name]='leftIconName' [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]='value | tetaNumber : !onlyNumber ? null : inputFocused ? 1000 : decimalPart'\n [tetaOnlyNumber]='onlyNumber'\n (ngModelChange)='value = $event; onChange($event);'\n [placeholder]='placeholder'\n [disabled]='disabled'\n [ngClass]=\"{'color-text-40':disabled}\"\n (focus)='inputFocused = true'\n (blur)='inputFocused = false;emitBlur()'\n (keydown)='keyPress($event)'\n type='text'\n />\n @if (value && !disabled) {\n <teta-icon\n class='close-icon'\n [name]=\"'closeCircle'\"\n [palette]=\"'text'\"\n (click)=\"value = ''; onChange('');\"\n ></teta-icon>\n }\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4005
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4115
4006
  }
4116
4007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TextFieldComponent, decorators: [{
4117
4008
  type: Component,
@@ -4121,13 +4012,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
4121
4012
  useExisting: forwardRef(() => TextFieldComponent),
4122
4013
  multi: true,
4123
4014
  },
4124
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4125
- IconComponent,
4126
- FormsModule,
4127
- OnlyNumberDirective,
4128
- NgClass,
4129
- NumberPipe,
4130
- ], template: "@if (leftIconName) {\n <teta-icon [name]='leftIconName' [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]='value | tetaNumber : !onlyNumber ? null : inputFocused ? 1000 : decimalPart'\n [tetaOnlyNumber]='onlyNumber'\n (ngModelChange)='value = $event; onChange($event);'\n [placeholder]='placeholder'\n [disabled]='disabled'\n [ngClass]=\"{'color-text-40':disabled}\"\n (focus)='inputFocused = true'\n (blur)='inputFocused = false;emitBlur()'\n (keydown)='keyPress($event)'\n type='text'\n />\n @if (value && !disabled) {\n <teta-icon\n class='close-icon'\n [name]=\"'closeCircle'\"\n [palette]=\"'text'\"\n (click)=\"value = ''; onChange('');\"\n ></teta-icon>\n }\n" }]
4015
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, FormsModule, OnlyNumberDirective, NgClass, NumberPipe], template: "@if (leftIconName) {\n<teta-icon [name]=\"leftIconName\" [palette]=\"'text'\"></teta-icon>\n}\n<input\n #input\n [ngModel]=\"value | tetaNumber : (!onlyNumber ? null : inputFocused ? 1000 : decimalPart)\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{ 'color-text-40': disabled }\"\n (focus)=\"inputFocused = true\"\n (blur)=\"inputFocused = false; emitBlur()\"\n (keydown)=\"keyPress($event)\"\n type=\"text\"\n/>\n@if (value && !disabled) {\n<teta-icon class=\"close-icon\" [name]=\"'closeCircle'\" [palette]=\"'text'\" (click)=\"value = ''; onChange('')\"></teta-icon>\n}\n" }]
4131
4016
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
4132
4017
  type: Input
4133
4018
  }], leftIconName: [{
@@ -4180,8 +4065,7 @@ class ListFilterComponent extends FilterComponentBase {
4180
4065
  this.search = '';
4181
4066
  this.locale = this._config.locale;
4182
4067
  }
4183
- ngOnInit() {
4184
- }
4068
+ ngOnInit() { }
4185
4069
  all() {
4186
4070
  if (!this.filter?.value || this.filter?.value?.length === 0) {
4187
4071
  return false;
@@ -4202,9 +4086,7 @@ class ListFilterComponent extends FilterComponentBase {
4202
4086
  }
4203
4087
  setType() {
4204
4088
  this.excluded = !this.excluded;
4205
- this.filter.type = this.excluded
4206
- ? ListFilterType.Excluded
4207
- : ListFilterType.None;
4089
+ this.filter.type = this.excluded ? ListFilterType.Excluded : ListFilterType.None;
4208
4090
  }
4209
4091
  setFilter(value) {
4210
4092
  this.filter.value = value;
@@ -4224,17 +4106,11 @@ class ListFilterComponent extends FilterComponentBase {
4224
4106
  return filter;
4225
4107
  }
4226
4108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"all()\"\n (ngModelChange)=\"setAll($event)\">\n {{(locale | async)?.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [value]=\"option.id\"\n [binary]=\"false\">\n {{option.name}}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListFilterComponent, isStandalone: true, selector: "teta-list-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4228
4110
  }
4229
4111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListFilterComponent, decorators: [{
4230
4112
  type: Component,
4231
- args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4232
- TextFieldComponent,
4233
- FormsModule,
4234
- ScrollableComponent,
4235
- CheckboxComponent,
4236
- AsyncPipe,
4237
- ], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"all()\"\n (ngModelChange)=\"setAll($event)\">\n {{(locale | async)?.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [value]=\"option.id\"\n [binary]=\"false\">\n {{option.name}}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
4113
+ args: [{ selector: 'teta-list-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TextFieldComponent, FormsModule, ScrollableComponent, CheckboxComponent, AsyncPipe], template: "<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\" [allowNull]=\"true\" [ngModel]=\"all()\" (ngModelChange)=\"setAll($event)\">\n {{ (locale | async)?.all }}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n @for (option of visibleOptions; track option) {\n <div class=\"list-item\">\n <teta-checkbox [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter($event)\" [value]=\"option.id\" [binary]=\"false\">\n {{ option.name }}\n </teta-checkbox>\n </div>\n }\n</teta-scrollable>\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0;min-width:0}\n"] }]
4238
4114
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4239
4115
  type: Input
4240
4116
  }], data: [{
@@ -4280,16 +4156,11 @@ class NumericFilterComponent extends FilterComponentBase {
4280
4156
  return filter;
4281
4157
  }
4282
4158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"/>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan=$event\"/>\n </teta-input>\n </div>\n }\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericFilterComponent, isStandalone: true, selector: "teta-numeric-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4284
4160
  }
4285
4161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericFilterComponent, decorators: [{
4286
4162
  type: Component,
4287
- args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4288
- InputComponent,
4289
- FormsModule,
4290
- OnlyNumberDirective,
4291
- AsyncPipe,
4292
- ], template: "@if (locale | async; as loc) {\n <div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"/>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan=$event\"/>\n </teta-input>\n </div>\n }\n" }]
4163
+ args: [{ selector: 'teta-numeric-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, OnlyNumberDirective, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"form-row padding-3\">\n <teta-input [label]=\"loc.from\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan = $event\"\n />\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input\n class=\"input\"\n type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan = $event\"\n />\n </teta-input>\n</div>\n}\n" }]
4293
4164
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4294
4165
  type: Input
4295
4166
  }], data: [{
@@ -4319,8 +4190,7 @@ class StringFilterComponent extends FilterComponentBase {
4319
4190
  this.filterChanged = new EventEmitter();
4320
4191
  this.locale = this._config.locale;
4321
4192
  }
4322
- ngOnInit() {
4323
- }
4193
+ ngOnInit() { }
4324
4194
  setFilter() {
4325
4195
  this.filterChanged.emit(this.filter);
4326
4196
  }
@@ -4338,15 +4208,11 @@ class StringFilterComponent extends FilterComponentBase {
4338
4208
  return filter;
4339
4209
  }
4340
4210
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4341
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: StringFilterComponent, isStandalone: true, selector: "teta-string-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: StringFilterComponent, isStandalone: true, selector: "teta-string-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4342
4212
  }
4343
4213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringFilterComponent, decorators: [{
4344
4214
  type: Component,
4345
- args: [{ selector: 'teta-string-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4346
- InputComponent,
4347
- FormsModule,
4348
- AsyncPipe,
4349
- ], template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n\n" }]
4215
+ args: [{ selector: 'teta-string-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [InputComponent, FormsModule, AsyncPipe], template: "<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n" }]
4350
4216
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4351
4217
  type: Input
4352
4218
  }], data: [{
@@ -4362,7 +4228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
4362
4228
  class RadioComponent {
4363
4229
  set disabled(val) {
4364
4230
  this.disabled$ = val;
4365
- this.buttons$.forEach(b => (b.disabled = this.disabled));
4231
+ this.buttons$.forEach((b) => (b.disabled = this.disabled));
4366
4232
  }
4367
4233
  get disabled() {
4368
4234
  return this.disabled$;
@@ -4473,7 +4339,7 @@ class RadioComponent {
4473
4339
  if (this.checkedButton$) {
4474
4340
  this.checkedButton$.checked = false;
4475
4341
  }
4476
- this.checkedButton$ = this.buttons$.find(b => b.value === obj);
4342
+ this.checkedButton$ = this.buttons$.find((b) => b.value === obj);
4477
4343
  if (this.checkedButton$) {
4478
4344
  this.checkedButton$.checked = true;
4479
4345
  }
@@ -4508,9 +4374,7 @@ class RadioComponent {
4508
4374
  return;
4509
4375
  }
4510
4376
  const length = this.buttons$.length;
4511
- let newIndex = this.selectedButton$
4512
- ? this.buttons$.indexOf(this.selectedButton$)
4513
- : 0;
4377
+ let newIndex = this.selectedButton$ ? this.buttons$.indexOf(this.selectedButton$) : 0;
4514
4378
  let firstCycle = true;
4515
4379
  do {
4516
4380
  newIndex++;
@@ -4529,9 +4393,7 @@ class RadioComponent {
4529
4393
  if (this.selectFirst()) {
4530
4394
  return;
4531
4395
  }
4532
- let newIndex = this.selectedButton$
4533
- ? this.buttons$.indexOf(this.selectedButton$)
4534
- : 0;
4396
+ let newIndex = this.selectedButton$ ? this.buttons$.indexOf(this.selectedButton$) : 0;
4535
4397
  let firstCycle = true;
4536
4398
  do {
4537
4399
  newIndex--;
@@ -4561,7 +4423,7 @@ class RadioComponent {
4561
4423
  useExisting: forwardRef(() => RadioComponent),
4562
4424
  multi: true,
4563
4425
  },
4564
- ], ngImport: i0, template: "<ng-content></ng-content>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4426
+ ], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4565
4427
  }
4566
4428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioComponent, decorators: [{
4567
4429
  type: Component,
@@ -4571,7 +4433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
4571
4433
  useExisting: forwardRef(() => RadioComponent),
4572
4434
  multi: true,
4573
4435
  },
4574
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>" }]
4436
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>\n" }]
4575
4437
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
4576
4438
  type: HostBinding,
4577
4439
  args: ['tabindex']
@@ -4629,11 +4491,11 @@ class RadioButtonComponent {
4629
4491
  this.radio._removeButton(this);
4630
4492
  }
4631
4493
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ViewContainerRef }, { token: RadioComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
4632
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
4494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RadioButtonComponent, isStandalone: true, selector: "teta-radio-button", inputs: { checked: "checked", disabled: "disabled", value: "value" }, host: { listeners: { "click": "hostClick()" }, properties: { "class.radio-button": "this.radioButton", "class.radio-button-selected": "this.selected", "class.radio-button-checked": "this.checked", "class.radio-button_disabled": "this.disabled" } }, ngImport: i0, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
4633
4495
  }
4634
4496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RadioButtonComponent, decorators: [{
4635
4497
  type: Component,
4636
- args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n" }]
4498
+ args: [{ selector: 'teta-radio-button', encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"radio-button-icon\">\n @if (checked) {\n <div class=\"radio-button-small-icon\"></div>\n }\n</div>\n<ng-content></ng-content>\n" }]
4637
4499
  }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: RadioComponent, decorators: [{
4638
4500
  type: Host
4639
4501
  }] }], propDecorators: { radioButton: [{
@@ -4676,8 +4538,7 @@ class BooleanFilterComponent extends FilterComponentBase {
4676
4538
  this.filterChanged = new EventEmitter();
4677
4539
  this.locale = this._config.locale;
4678
4540
  }
4679
- ngOnInit() {
4680
- }
4541
+ ngOnInit() { }
4681
4542
  setFilter() {
4682
4543
  this.filterChanged.emit(this.filter);
4683
4544
  }
@@ -4693,16 +4554,11 @@ class BooleanFilterComponent extends FilterComponentBase {
4693
4554
  return filter;
4694
4555
  }
4695
4556
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
4696
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{loc?.notSelected}}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{loc?.yes}}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{loc?.no}}</teta-radio-button>\n </teta-radio>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: RadioComponent, selector: "teta-radio", inputs: ["inline", "checkChangeSelected", "disabled", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "teta-radio-button", inputs: ["checked", "disabled", "value"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4557
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanFilterComponent, isStandalone: true, selector: "teta-boolean-filter", inputs: { column: "column", data: "data", filterOptions: "filterOptions", state: "state" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: RadioComponent, selector: "teta-radio", inputs: ["inline", "checkChangeSelected", "disabled", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "teta-radio-button", inputs: ["checked", "disabled", "value"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4697
4558
  }
4698
4559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanFilterComponent, decorators: [{
4699
4560
  type: Component,
4700
- args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
4701
- RadioComponent,
4702
- FormsModule,
4703
- RadioButtonComponent,
4704
- AsyncPipe,
4705
- ], template: "@if (locale | async; as loc) {\n <div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{loc?.notSelected}}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{loc?.yes}}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{loc?.no}}</teta-radio-button>\n </teta-radio>\n </div>\n}\n" }]
4561
+ args: [{ selector: 'teta-boolean-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RadioComponent, FormsModule, RadioButtonComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"padding-3\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{ loc?.notSelected }}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{ loc?.yes }}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{ loc?.no }}</teta-radio-button>\n </teta-radio>\n</div>\n}\n" }]
4706
4562
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TetaConfigService }], propDecorators: { column: [{
4707
4563
  type: Input
4708
4564
  }], data: [{
@@ -4732,9 +4588,7 @@ const filterComponentsMap = new Map()
4732
4588
  .set(FilterType.string, StringFilterComponent)
4733
4589
  .set(FilterType.boolean, BooleanFilterComponent)
4734
4590
  .set(FilterType.custom, StringFilterComponent);
4735
- const getFilterComponent = (item) => filterComponentsMap.has(item.filterType)
4736
- ? filterComponentsMap.get(item.filterType)
4737
- : StringFilterComponent;
4591
+ const getFilterComponent = (item) => filterComponentsMap.has(item.filterType) ? filterComponentsMap.get(item.filterType) : StringFilterComponent;
4738
4592
 
4739
4593
  class FilterHostComponent {
4740
4594
  set column(val) {
@@ -4774,8 +4628,7 @@ class FilterHostComponent {
4774
4628
  if (!FilterComponentBase.isPrototypeOf(this._column.filterComponent)) {
4775
4629
  this._column.filterComponent = getFilterComponent(this._column);
4776
4630
  }
4777
- this._componentRef =
4778
- this.viewContainerRef.createComponent(this._column.filterComponent);
4631
+ this._componentRef = this.viewContainerRef.createComponent(this._column.filterComponent);
4779
4632
  this._componentRef.instance.column = this._column;
4780
4633
  this._componentRef.instance.state = this._state;
4781
4634
  this._componentRef.instance.data = this._data;
@@ -4815,8 +4668,7 @@ class IconFileComponent {
4815
4668
  return result.join(' ');
4816
4669
  }
4817
4670
  constructor() { }
4818
- ngOnInit() {
4819
- }
4671
+ ngOnInit() { }
4820
4672
  getName() {
4821
4673
  return `#${this.name}`;
4822
4674
  }
@@ -4881,7 +4733,7 @@ class ColorInputComponent {
4881
4733
  useExisting: forwardRef(() => ColorInputComponent),
4882
4734
  multi: true,
4883
4735
  },
4884
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input type='color'\n #input\n [disabled]='disabled'\n (blur)='emitBlur();'\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event;onChange($event)\"\n [ngModelOptions]='{updateOn: \"blur\"}'/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4736
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n type=\"color\"\n #input\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [ngModelOptions]=\"{ updateOn: 'blur' }\"\n/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4885
4737
  }
4886
4738
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ColorInputComponent, decorators: [{
4887
4739
  type: Component,
@@ -4891,7 +4743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
4891
4743
  useExisting: forwardRef(() => ColorInputComponent),
4892
4744
  multi: true,
4893
4745
  },
4894
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<input type='color'\n #input\n [disabled]='disabled'\n (blur)='emitBlur();'\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event;onChange($event)\"\n [ngModelOptions]='{updateOn: \"blur\"}'/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"] }]
4746
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<input\n type=\"color\"\n #input\n [disabled]=\"disabled\"\n (blur)=\"emitBlur()\"\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event; onChange($event)\"\n [ngModelOptions]=\"{ updateOn: 'blur' }\"\n/>\n", styles: [":host{display:inline-flex;align-items:center}input[type=color]{height:12px;width:12px;padding:0;border:0}input[type=color]::-webkit-color-swatch,input[type=color]::-webkit-color-swatch-wrapper{border:0;padding:0}\n"] }]
4895
4747
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
4896
4748
  type: Input
4897
4749
  }], input: [{
@@ -4946,13 +4798,13 @@ class MessageService {
4946
4798
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageService, decorators: [{
4947
4799
  type: Injectable,
4948
4800
  args: [{
4949
- providedIn: 'root'
4801
+ providedIn: 'root',
4950
4802
  }]
4951
4803
  }], ctorParameters: () => [] });
4952
4804
 
4953
4805
  class Message {
4954
4806
  constructor(options) {
4955
- this.viewType = "rounded";
4807
+ this.viewType = 'rounded';
4956
4808
  this.duration = 10000;
4957
4809
  this.palette = 'primary';
4958
4810
  if (options) {
@@ -5019,15 +4871,11 @@ class MessageComponent {
5019
4871
  this.reset();
5020
4872
  }
5021
4873
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5022
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{message.title}}\n </div>\n <button teta-button\n type=\"button\"\n [square]=\"true\"\n [view]=\"'ghost'\"\n (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n <div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{message.text}}\n </div>\n}\n@if (message.template) {\n <ng-container *ngTemplateOutlet=\"message.template; context: {$implicit: message}\"></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4874
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageComponent, isStandalone: true, selector: "teta-message", inputs: { message: "message", index: "index", class: "class" }, outputs: { closed: "closed" }, host: { listeners: { "mouseleave": "init()", "mouseenter": "reset()" }, properties: { "class": "this.getClass" } }, ngImport: i0, template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5023
4875
  }
5024
4876
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageComponent, decorators: [{
5025
4877
  type: Component,
5026
- args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
5027
- ButtonComponent,
5028
- IconComponent,
5029
- NgTemplateOutlet,
5030
- ], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{message.title}}\n </div>\n <button teta-button\n type=\"button\"\n [square]=\"true\"\n [view]=\"'ghost'\"\n (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n <div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{message.text}}\n </div>\n}\n@if (message.template) {\n <ng-container *ngTemplateOutlet=\"message.template; context: {$implicit: message}\"></ng-container>\n}\n" }]
4878
+ args: [{ selector: 'teta-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgTemplateOutlet], template: "<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{ message.title }}\n </div>\n <button teta-button type=\"button\" [square]=\"true\" [view]=\"'ghost'\" (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n@if (!message.template && message.text) {\n<div class=\"font-body-3 padding-v-2 padding-left-4\">\n {{ message.text }}\n</div>\n} @if (message.template) {\n<ng-container *ngTemplateOutlet=\"message.template; context: { $implicit: message }\"></ng-container>\n}\n" }]
5031
4879
  }], ctorParameters: () => [], propDecorators: { message: [{
5032
4880
  type: Input
5033
4881
  }], index: [{
@@ -5076,9 +4924,7 @@ class MessageHostComponent {
5076
4924
  this._alive = true;
5077
4925
  }
5078
4926
  ngOnInit() {
5079
- this._svc.message
5080
- .pipe(takeWhile((_) => this._alive))
5081
- .subscribe((messages) => {
4927
+ this._svc.message.pipe(takeWhile((_) => this._alive)).subscribe((messages) => {
5082
4928
  if (messages) {
5083
4929
  if (!this.messages) {
5084
4930
  this.messages = [];
@@ -5087,9 +4933,7 @@ class MessageHostComponent {
5087
4933
  }
5088
4934
  this._cdr.markForCheck();
5089
4935
  });
5090
- this._svc.clear
5091
- .pipe(takeWhile((_) => this._alive))
5092
- .subscribe((x) => {
4936
+ this._svc.clear.pipe(takeWhile((_) => this._alive)).subscribe((x) => {
5093
4937
  if (!x) {
5094
4938
  this.messages = [];
5095
4939
  }
@@ -5109,11 +4953,11 @@ class MessageHostComponent {
5109
4953
  this._alive = false;
5110
4954
  }
5111
4955
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, deps: [{ token: MessageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
5112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n <teta-message\n (closed)=\"closedItem($event)\"\n [message]=\"message\"\n [index]=\"i\">\n </teta-message>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MessageComponent, selector: "teta-message", inputs: ["message", "index", "class"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4956
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MessageHostComponent, isStandalone: true, selector: "teta-message-host", inputs: { class: "class", align: "align", verticalAlign: "verticalAlign" }, outputs: { itemClose: "itemClose" }, host: { properties: { "class": "this.getClass" } }, ngImport: i0, template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MessageComponent, selector: "teta-message", inputs: ["message", "index", "class"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5113
4957
  }
5114
4958
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MessageHostComponent, decorators: [{
5115
4959
  type: Component,
5116
- args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n <teta-message\n (closed)=\"closedItem($event)\"\n [message]=\"message\"\n [index]=\"i\">\n </teta-message>\n}\n" }]
4960
+ args: [{ selector: 'teta-message-host', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MessageComponent], template: "@for (message of messages; track message; let i = $index) {\n<teta-message (closed)=\"closedItem($event)\" [message]=\"message\" [index]=\"i\"> </teta-message>\n}\n" }]
5117
4961
  }], ctorParameters: () => [{ type: MessageService }, { type: i0.ChangeDetectorRef }], propDecorators: { class: [{
5118
4962
  type: Input
5119
4963
  }], align: [{
@@ -5165,8 +5009,7 @@ class ModalContainerComponent {
5165
5009
  }
5166
5010
  }
5167
5011
  click(event) {
5168
- if (this.config.closeOnBackdropClick === true &&
5169
- this.elRef$.nativeElement === event.target) {
5012
+ if (this.config.closeOnBackdropClick === true && this.elRef$.nativeElement === event.target) {
5170
5013
  this.closeEvent.emit({
5171
5014
  reason: ModalCloseReason.backdrop,
5172
5015
  });
@@ -5175,10 +5018,7 @@ class ModalContainerComponent {
5175
5018
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
5176
5019
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ModalContainerComponent, isStandalone: true, selector: "teta-modal-container", inputs: { config: "config" }, outputs: { closeEvent: "closeEvent" }, host: { listeners: { "keyup": "keyup($event)", "click": "click($event)" }, properties: { "attr.tabindex": "this.tabindex", "@dialog": "this.dialog", "class": "this.classList" } }, ngImport: i0, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n", styles: [""], animations: [
5177
5020
  trigger('dialog', [
5178
- transition('void => *', [
5179
- style({ top: '-100%' }),
5180
- animate('150ms ease-in', style({ top: '0' })),
5181
- ]),
5021
+ transition('void => *', [style({ top: '-100%' }), animate('150ms ease-in', style({ top: '0' }))]),
5182
5022
  transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5183
5023
  ]),
5184
5024
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -5187,10 +5027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5187
5027
  type: Component,
5188
5028
  args: [{ selector: 'teta-modal-container', animations: [
5189
5029
  trigger('dialog', [
5190
- transition('void => *', [
5191
- style({ top: '-100%' }),
5192
- animate('150ms ease-in', style({ top: '0' })),
5193
- ]),
5030
+ transition('void => *', [style({ top: '-100%' }), animate('150ms ease-in', style({ top: '0' }))]),
5194
5031
  transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),
5195
5032
  ]),
5196
5033
  ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n" }]
@@ -5235,16 +5072,11 @@ class DialogComponent {
5235
5072
  }
5236
5073
  ngOnInit() { }
5237
5074
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, deps: [{ token: CurrentModal }, { token: DynamicData }], target: i0.ɵɵFactoryTarget.Component }); }
5238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{message | transloco}}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button\n (click)=\"cancel()\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\">\n {{'common.cancel' | transloco}}\n </button>\n }\n\n <button teta-button\n (click)=\"ok()\"\n [square]=\"!buttonText?.length\"\n [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n }\n @if (buttonText?.length > 0) {\n {{buttonText | transloco}}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }] }); }
5075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DialogComponent, isStandalone: true, selector: "teta-dialog", inputs: { message: "message", buttonText: "buttonText", buttonIcon: "buttonIcon", buttonPalette: "buttonPalette", showCancelButton: "showCancelButton" }, ngImport: i0, template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1$2.TranslocoPipe, name: "transloco" }] }); }
5239
5076
  }
5240
5077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DialogComponent, decorators: [{
5241
5078
  type: Component,
5242
- args: [{ selector: 'teta-dialog', standalone: true, imports: [
5243
- ToolbarComponent,
5244
- ButtonComponent,
5245
- IconComponent,
5246
- TranslocoModule,
5247
- ], template: "<div class=\"padding-2 font-body-2\">\n {{message | transloco}}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button\n (click)=\"cancel()\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\">\n {{'common.cancel' | transloco}}\n </button>\n }\n\n <button teta-button\n (click)=\"ok()\"\n [square]=\"!buttonText?.length\"\n [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n }\n @if (buttonText?.length > 0) {\n {{buttonText | transloco}}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
5079
+ args: [{ selector: 'teta-dialog', standalone: true, imports: [ToolbarComponent, ButtonComponent, IconComponent, TranslocoModule], template: "<div class=\"padding-2 font-body-2\">\n {{ message | transloco }}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n @if (showCancelButton) {\n <button teta-button (click)=\"cancel()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n {{ 'common.cancel' | transloco }}\n </button>\n }\n\n <button teta-button (click)=\"ok()\" [square]=\"!buttonText?.length\" [palette]=\"buttonPalette\">\n @if (buttonIcon) {\n <teta-icon [name]=\"buttonIcon\"></teta-icon>\n } @if (buttonText?.length > 0) {\n {{ buttonText | transloco }}\n }\n </button>\n</teta-toolbar>\n", styles: [":host{display:flex;flex-direction:column;width:300px}\n"] }]
5248
5080
  }], ctorParameters: () => [{ type: CurrentModal }, { type: DynamicData }], propDecorators: { message: [{
5249
5081
  type: Input
5250
5082
  }], buttonText: [{
@@ -5259,28 +5091,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5259
5091
 
5260
5092
  class ModalModule {
5261
5093
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5262
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, imports: [CommonModule,
5263
- TranslocoModule,
5264
- ModalContainerComponent, DialogComponent], exports: [ModalContainerComponent, DialogComponent] }); }
5094
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, imports: [CommonModule, TranslocoModule, ModalContainerComponent, DialogComponent], exports: [ModalContainerComponent, DialogComponent] }); }
5265
5095
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, providers: [
5266
5096
  {
5267
5097
  provide: TRANSLOCO_SCOPE,
5268
5098
  useValue: { scope: 'common', alias: 'common' },
5269
5099
  multi: true,
5270
5100
  },
5271
- ], imports: [CommonModule,
5272
- TranslocoModule,
5273
- DialogComponent] }); }
5101
+ ], imports: [CommonModule, TranslocoModule, DialogComponent] }); }
5274
5102
  }
5275
5103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ModalModule, decorators: [{
5276
5104
  type: NgModule,
5277
5105
  args: [{
5278
5106
  exports: [ModalContainerComponent, DialogComponent],
5279
- imports: [
5280
- CommonModule,
5281
- TranslocoModule,
5282
- ModalContainerComponent, DialogComponent,
5283
- ],
5107
+ imports: [CommonModule, TranslocoModule, ModalContainerComponent, DialogComponent],
5284
5108
  providers: [
5285
5109
  {
5286
5110
  provide: TRANSLOCO_SCOPE,
@@ -5495,7 +5319,8 @@ class PagerState {
5495
5319
  if (options) {
5496
5320
  this.pageSize = options.pageSize || 30;
5497
5321
  this.count = options.count !== null && options.count !== undefined ? options.count : this.count;
5498
- this.totalCount = options.totalCount !== null && options.totalCount !== undefined ? options.totalCount : this.totalCount;
5322
+ this.totalCount =
5323
+ options.totalCount !== null && options.totalCount !== undefined ? options.totalCount : this.totalCount;
5499
5324
  this.page = options.page !== null && options.page !== undefined ? options.page : 0;
5500
5325
  this.createPages();
5501
5326
  }
@@ -5551,10 +5376,7 @@ class PanelComponent {
5551
5376
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5552
5377
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: PanelComponent, isStandalone: true, selector: "teta-panel", inputs: { width: "width" }, host: { properties: { "@panel": "this.panel", "class.column": "this.column", "class.column_fixed": "this.auto" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], animations: [
5553
5378
  trigger('panel', [
5554
- transition('void => *', [
5555
- style({ opacity: '0' }),
5556
- animate(300, style({ opacity: '1' })),
5557
- ]),
5379
+ transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
5558
5380
  transition('* => void', [animate(150, style({ opacity: '0' }))]),
5559
5381
  ]),
5560
5382
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -5563,10 +5385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5563
5385
  type: Component,
5564
5386
  args: [{ selector: 'teta-panel', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
5565
5387
  trigger('panel', [
5566
- transition('void => *', [
5567
- style({ opacity: '0' }),
5568
- animate(300, style({ opacity: '1' })),
5569
- ]),
5388
+ transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
5570
5389
  transition('* => void', [animate(150, style({ opacity: '0' }))]),
5571
5390
  ]),
5572
5391
  ], standalone: true, template: "<ng-content></ng-content>\n" }]
@@ -5624,8 +5443,7 @@ class ProgressBarComponent {
5624
5443
  };
5625
5444
  this.getMousePositionInPercents = (event) => {
5626
5445
  const position = event.clientX - this.containerPosition.min;
5627
- let percent = (100 / (this.containerPosition.max - this.containerPosition.min)) *
5628
- position;
5446
+ let percent = (100 / (this.containerPosition.max - this.containerPosition.min)) * position;
5629
5447
  percent = percent <= 0 ? 0 : percent > 100 ? 100 : percent;
5630
5448
  this.setValue(this.getValueFromPercent(percent));
5631
5449
  };
@@ -5669,7 +5487,7 @@ class ProgressBarComponent {
5669
5487
  if (!this.step || this.step <= 0 || isNaN(this.step)) {
5670
5488
  return exactValue;
5671
5489
  }
5672
- return (Math.round((exactValue - this.min) / this.step) * this.step + this.min);
5490
+ return Math.round((exactValue - this.min) / this.step) * this.step + this.min;
5673
5491
  }
5674
5492
  addListener() {
5675
5493
  this._document.addEventListener('mousemove', this.mousemove);
@@ -5682,11 +5500,11 @@ class ProgressBarComponent {
5682
5500
  return (100 / range) * (this.value - this.min);
5683
5501
  }
5684
5502
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProgressBarComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
5685
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProgressBarComponent, isStandalone: true, selector: "teta-progress-bar", inputs: { min: "min", max: "max", step: "step" }, host: { listeners: { "document:mouseup": "mouseup($event)", "click": "click($event)" }, properties: { "class.progress": "this.progressBar" } }, providers: [SLIDER_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "slider", first: true, predicate: ["progressSlider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"></div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5503
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProgressBarComponent, isStandalone: true, selector: "teta-progress-bar", inputs: { min: "min", max: "max", step: "step" }, host: { listeners: { "document:mouseup": "mouseup($event)", "click": "click($event)" }, properties: { "class.progress": "this.progressBar" } }, providers: [SLIDER_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "slider", first: true, predicate: ["progressSlider"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div\n class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"\n></div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5686
5504
  }
5687
5505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProgressBarComponent, decorators: [{
5688
5506
  type: Component,
5689
- args: [{ selector: 'teta-progress-bar', providers: [SLIDER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"></div>\n" }]
5507
+ args: [{ selector: 'teta-progress-bar', providers: [SLIDER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div\n class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"\n></div>\n" }]
5690
5508
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
5691
5509
  type: Inject,
5692
5510
  args: [DOCUMENT]
@@ -5729,7 +5547,7 @@ function boolOrFuncCallback(variable) {
5729
5547
  class FormsUtil {
5730
5548
  static validateAllFormFields(formGroup) {
5731
5549
  formGroup.updateValueAndValidity();
5732
- Object.keys(formGroup.controls).forEach(field => {
5550
+ Object.keys(formGroup.controls).forEach((field) => {
5733
5551
  const control = formGroup.get(field);
5734
5552
  if (control instanceof UntypedFormControl) {
5735
5553
  control.markAsTouched({ onlySelf: true });
@@ -5741,8 +5559,7 @@ class FormsUtil {
5741
5559
  });
5742
5560
  }
5743
5561
  static controlIsInvalid(formGroup, controlName) {
5744
- return (formGroup.controls[controlName]?.invalid &&
5745
- formGroup.controls[controlName]?.dirty);
5562
+ return formGroup.controls[controlName]?.invalid && formGroup.controls[controlName]?.dirty;
5746
5563
  }
5747
5564
  static getControlErrors(formGroup, controlName) {
5748
5565
  if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
@@ -5751,19 +5568,12 @@ class FormsUtil {
5751
5568
  return [];
5752
5569
  }
5753
5570
  static matchValuesValidator(matchTo) {
5754
- return (control) => !!control.parent &&
5755
- !!control.parent.value &&
5756
- control.value === control.parent.controls[matchTo].value
5571
+ return (control) => !!control.parent && !!control.parent.value && control.value === control.parent.controls[matchTo].value
5757
5572
  ? null
5758
5573
  : { isMatching: false };
5759
5574
  }
5760
5575
  static requiredIf(value) {
5761
- return (control) => !!control.parent &&
5762
- !!control.parent.value &&
5763
- control.value != null &&
5764
- value
5765
- ? null
5766
- : { isMatching: false };
5576
+ return (control) => !!control.parent && !!control.parent.value && control.value != null && value ? null : { isMatching: false };
5767
5577
  }
5768
5578
  static initFormFromColumns(columns, dataItem) {
5769
5579
  const form = new UntypedFormGroup({});
@@ -5780,10 +5590,7 @@ class FormsUtil {
5780
5590
  disabled: !column.editable,
5781
5591
  }, {
5782
5592
  validators: FormsUtil.getValidators(column),
5783
- updateOn: column.filterType === FilterType.number ||
5784
- column.filterType === FilterType.string
5785
- ? 'blur'
5786
- : 'change',
5593
+ updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change',
5787
5594
  });
5788
5595
  }
5789
5596
  static getValidators(column) {
@@ -5836,7 +5643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5836
5643
  type: Directive,
5837
5644
  args: [{
5838
5645
  selector: '[tetaPropertyGridItemDescription]',
5839
- standalone: true
5646
+ standalone: true,
5840
5647
  }]
5841
5648
  }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
5842
5649
  type: Input,
@@ -5881,7 +5688,7 @@ class TableColumn extends FilterItem {
5881
5688
  this.minValue = options?.minValue;
5882
5689
  this.maxLength = options?.maxLength;
5883
5690
  this.required = options?.required;
5884
- this.columns = options?.columns?.map(x => new TableColumn(x)) ?? [];
5691
+ this.columns = options?.columns?.map((x) => new TableColumn(x)) ?? [];
5885
5692
  this.validators = options?.validators;
5886
5693
  }
5887
5694
  }
@@ -5936,11 +5743,11 @@ class ToggleComponent {
5936
5743
  this.cdr.markForCheck();
5937
5744
  }
5938
5745
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
5939
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n <span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n </span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5746
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ToggleComponent, isStandalone: true, selector: "teta-toggle", inputs: { palette: "palette", noLabel: "noLabel", disabled: "disabled" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class.toggle": "this.toggleClass", "class.toggle_disabled": "this.disabled" } }, providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5940
5747
  }
5941
5748
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToggleComponent, decorators: [{
5942
5749
  type: Component,
5943
- args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n <span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n </span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n" }]
5750
+ args: [{ selector: 'teta-toggle', providers: [TOGGLE_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "@if (!noLabel) {\n<span class=\"font-body-3 row_auto\">\n <ng-content></ng-content>\n</span>\n}\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n" }]
5944
5751
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tabindex: [{
5945
5752
  type: HostBinding,
5946
5753
  args: ['attr.tabindex']
@@ -5972,7 +5779,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5972
5779
  type: Directive,
5973
5780
  args: [{
5974
5781
  selector: '[tetaSelectOption]',
5975
- standalone: true
5782
+ standalone: true,
5976
5783
  }]
5977
5784
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
5978
5785
 
@@ -5987,7 +5794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
5987
5794
  type: Directive,
5988
5795
  args: [{
5989
5796
  selector: '[tetaSelectValue]',
5990
- standalone: true
5797
+ standalone: true,
5991
5798
  }]
5992
5799
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
5993
5800
 
@@ -6005,7 +5812,7 @@ class HighlightDirective {
6005
5812
  .toLowerCase()
6006
5813
  .replace(pattern, '\\$&')
6007
5814
  .split(' ')
6008
- .filter(t => t.length > 0)
5815
+ .filter((t) => t.length > 0)
6009
5816
  .join('|');
6010
5817
  this._initialElement = this.elementRef.nativeElement.innerHTML;
6011
5818
  this.recursiveReplaceNode(this.elementRef.nativeElement.childNodes, searchWithOutRegExp);
@@ -6021,7 +5828,7 @@ class HighlightDirective {
6021
5828
  nodes.forEach((node) => {
6022
5829
  cacheNodes.push(node);
6023
5830
  });
6024
- cacheNodes.forEach(node => {
5831
+ cacheNodes.forEach((node) => {
6025
5832
  if (node.nodeType === 3) {
6026
5833
  if (node.nodeValue && node.nodeValue.search(new RegExp(searchWithOutRegExp, 'i')) > -1) {
6027
5834
  match = true;
@@ -6039,8 +5846,7 @@ class HighlightDirective {
6039
5846
  return;
6040
5847
  }
6041
5848
  const tempDiv = document.createElement('div');
6042
- tempDiv.innerHTML = textNode.nodeValue
6043
- .replace(new RegExp(searchWithOutRegExp, 'gi'), match => `<mark>${match}</mark>`);
5849
+ tempDiv.innerHTML = textNode.nodeValue.replace(new RegExp(searchWithOutRegExp, 'gi'), (match) => `<mark>${match}</mark>`);
6044
5850
  const parentNode = textNode.parentNode;
6045
5851
  if (parentNode) {
6046
5852
  while (tempDiv.firstChild) {
@@ -6065,9 +5871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6065
5871
  class SelectComponent {
6066
5872
  set options(options) {
6067
5873
  this._options = options;
6068
- if (this._internalValue !== null &&
6069
- this._internalValue !== undefined &&
6070
- this.options) {
5874
+ if (this._internalValue !== null && this._internalValue !== undefined && this.options) {
6071
5875
  this.getSelectedValue(this._internalValue);
6072
5876
  }
6073
5877
  }
@@ -6084,9 +5888,7 @@ class SelectComponent {
6084
5888
  if (!this.searchText) {
6085
5889
  return this.options;
6086
5890
  }
6087
- return this.options?.filter(option => this.getSearchString(option)
6088
- .toLowerCase()
6089
- .indexOf(this.searchText.toLowerCase()) >= 0);
5891
+ return this.options?.filter((option) => this.getSearchString(option).toLowerCase().indexOf(this.searchText.toLowerCase()) >= 0);
6090
5892
  }
6091
5893
  constructor(_cdr, _elementRef, _config) {
6092
5894
  this._cdr = _cdr;
@@ -6130,7 +5932,7 @@ class SelectComponent {
6130
5932
  else {
6131
5933
  this.value = [...this.value, option];
6132
5934
  }
6133
- this._internalValue = this.value.map(_ => this.getValue(_));
5935
+ this._internalValue = this.value.map((_) => this.getValue(_));
6134
5936
  this.onChange(this._internalValue);
6135
5937
  }
6136
5938
  else {
@@ -6153,11 +5955,11 @@ class SelectComponent {
6153
5955
  removeItemClick(option, event) {
6154
5956
  event.stopPropagation();
6155
5957
  this.removeItem(option);
6156
- this._internalValue = this.value.map(_ => this.getValue(_));
5958
+ this._internalValue = this.value.map((_) => this.getValue(_));
6157
5959
  this.onChange(this._internalValue);
6158
5960
  }
6159
5961
  removeItem(option) {
6160
- this.value = this.value.filter(_ => _ !== option);
5962
+ this.value = this.value.filter((_) => _ !== option);
6161
5963
  }
6162
5964
  search(text) {
6163
5965
  this.searchText = text;
@@ -6216,14 +6018,10 @@ class SelectComponent {
6216
6018
  getSelectedValue(value) {
6217
6019
  if (this.multiple) {
6218
6020
  this.value =
6219
- value && this.options
6220
- ? this.options.filter(option => value.indexOf(this.getValue(option)) > -1)
6221
- : [];
6021
+ value && this.options ? this.options.filter((option) => value.indexOf(this.getValue(option)) > -1) : [];
6222
6022
  }
6223
6023
  else {
6224
- this.value =
6225
- this.options &&
6226
- this.options?.find(option => this.getValue(option) === value);
6024
+ this.value = this.options && this.options?.find((option) => this.getValue(option) === value);
6227
6025
  }
6228
6026
  }
6229
6027
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -6233,7 +6031,7 @@ class SelectComponent {
6233
6031
  useExisting: forwardRef(() => SelectComponent),
6234
6032
  multi: true,
6235
6033
  },
6236
- ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale|async; as loc){\n <teta-dropdown [align]='align'\n [verticalAlign]='verticalAlign'\n [autoClose]='autoClose'\n [autoCloseIgnore]='autoCloseIgnore'\n [(open)]='open'\n [appendToBody]='appendToBody'\n [disabled]='disabled'\n [viewType]='viewType'\n class='row row_auto'>\n <div tetaDropdownHead\n [class]=\"'row row_auto select-head select_'+viewType\"\n [class.select-head_invalid]='invalid'>\n <div class='row_auto flex align-center'>\n @if (icon) {\n <teta-icon [name]='icon' [palette]=\"'text'\" class='margin-right-1'></teta-icon>\n }\n @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class='placeholder'>\n {{placeholder || loc.notSelected}}\n </span>\n }\n <ng-container\n *ngTemplateOutlet='valueDirective ? valueDirective.template : valueDefault; context: {$implicit: value, value: value}'></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div\n tetaDropdownContent\n class='select-body row_auto'\n (click)='$event.preventDefault()'>\n @if (searchRef) {\n <div class='select-search padding-h-2'>\n <teta-text-field [ngModel]='searchText'\n [class]=\"'select_'+viewType\"\n (ngModelChange)='search($event)'\n [placeholder]='loc.search'\n [leftIconName]=\"'search'\"></teta-text-field>\n </div>\n }\n @if (visibleOptions?.length) {\n @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_'+viewType\"\n (click)='clear()'>\n {{loc.notSelected}}\n </div>\n <div class='list-divider margin-bottom-0'></div>\n }\n @if (virtual) {\n <teta-scrollable class='column column_auto padding-h-2'>\n <cdk-virtual-scroll-viewport tetaScrollable\n [itemSize]='40'\n minBufferPx='200'\n maxBufferPx='600'>\n <div [class]=\"'list-item list-item_interactive justify-content-between select_'+viewType\"\n *cdkVirtualFor='let option of visibleOptions; templateCacheSize: 0;'\n [class.list-item_active]='itemSelected(option)'\n [tetaHighlight]='searchText'\n (click)='clickOption(option, $event)'>\n <div [tetaHighlight]='searchText'>\n <ng-container\n *ngTemplateOutlet='optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}'>\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"\n class='margin-left-2'></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class='column column_auto padding-h-2' [contentClass]=\"['column', 'column_auto']\">\n <div class='list'>\n @for (option of visibleOptions; track option) {\n <div [class]=\"'list-item list-item_interactive justify-content-between select_'+viewType\"\n [class.list-item_active]='itemSelected(option)'\n (click)='clickOption(option, $event)'>\n <span [tetaHighlight]='searchText'>\n <ng-container\n *ngTemplateOutlet='optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}'>\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n }\n } @else {\n <p\n class='padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option'>{{notFoundText || loc.notFound}}</p>\n }\n @if (multiple && value?.length) {\n <div class='row row_auto select-chip-field flex-wrap'>\n @for (item of value; track item) {\n <div class='tag'>\n <p>{{getText(item)}}</p>\n <teta-icon class='cursor-pointer' [palette]=\"'text'\" [name]=\"'closeCircle'\"\n (click)='removeItemClick(item, $event)'></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n </teta-dropdown>\n <ng-template #notFound>\n <p\n class='padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option'>{{notFoundText || loc.notFound}}</p>\n </ng-template>\n <ng-template #optionDefault let-option>\n {{getText(option)}}\n </ng-template>\n <ng-template #valueDefault let-value>\n @if (multiple) {\n <div class='row_auto overflow-hidden text-overflow-ellipsis'>\n {{loc.selected + ' ' + value?.length}}\n </div>\n }\n @if (!multiple) {\n <span class='row row_auto overflow-hidden text-overflow-ellipsis'>{{getText(value)}}</span>\n }\n </ng-template>\n}\n\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6034
+ ], queries: [{ propertyName: "optionDirective", first: true, predicate: SelectOptionDirective, descendants: true, static: true }, { propertyName: "valueDirective", first: true, predicate: SelectValueDirective, descendants: true, static: true }], ngImport: i0, template: "@if (locale|async; as loc){\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto padding-h-2\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto padding-h-2\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: HighlightDirective, selector: "[tetaHighlight]", inputs: ["tetaHighlight"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6237
6035
  }
6238
6036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectComponent, decorators: [{
6239
6037
  type: Component,
@@ -6259,7 +6057,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6259
6057
  CdkVirtualForOf,
6260
6058
  HighlightDirective,
6261
6059
  AsyncPipe,
6262
- ], template: "@if (locale|async; as loc){\n <teta-dropdown [align]='align'\n [verticalAlign]='verticalAlign'\n [autoClose]='autoClose'\n [autoCloseIgnore]='autoCloseIgnore'\n [(open)]='open'\n [appendToBody]='appendToBody'\n [disabled]='disabled'\n [viewType]='viewType'\n class='row row_auto'>\n <div tetaDropdownHead\n [class]=\"'row row_auto select-head select_'+viewType\"\n [class.select-head_invalid]='invalid'>\n <div class='row_auto flex align-center'>\n @if (icon) {\n <teta-icon [name]='icon' [palette]=\"'text'\" class='margin-right-1'></teta-icon>\n }\n @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class='placeholder'>\n {{placeholder || loc.notSelected}}\n </span>\n }\n <ng-container\n *ngTemplateOutlet='valueDirective ? valueDirective.template : valueDefault; context: {$implicit: value, value: value}'></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div\n tetaDropdownContent\n class='select-body row_auto'\n (click)='$event.preventDefault()'>\n @if (searchRef) {\n <div class='select-search padding-h-2'>\n <teta-text-field [ngModel]='searchText'\n [class]=\"'select_'+viewType\"\n (ngModelChange)='search($event)'\n [placeholder]='loc.search'\n [leftIconName]=\"'search'\"></teta-text-field>\n </div>\n }\n @if (visibleOptions?.length) {\n @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_'+viewType\"\n (click)='clear()'>\n {{loc.notSelected}}\n </div>\n <div class='list-divider margin-bottom-0'></div>\n }\n @if (virtual) {\n <teta-scrollable class='column column_auto padding-h-2'>\n <cdk-virtual-scroll-viewport tetaScrollable\n [itemSize]='40'\n minBufferPx='200'\n maxBufferPx='600'>\n <div [class]=\"'list-item list-item_interactive justify-content-between select_'+viewType\"\n *cdkVirtualFor='let option of visibleOptions; templateCacheSize: 0;'\n [class.list-item_active]='itemSelected(option)'\n [tetaHighlight]='searchText'\n (click)='clickOption(option, $event)'>\n <div [tetaHighlight]='searchText'>\n <ng-container\n *ngTemplateOutlet='optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}'>\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"\n class='margin-left-2'></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class='column column_auto padding-h-2' [contentClass]=\"['column', 'column_auto']\">\n <div class='list'>\n @for (option of visibleOptions; track option) {\n <div [class]=\"'list-item list-item_interactive justify-content-between select_'+viewType\"\n [class.list-item_active]='itemSelected(option)'\n (click)='clickOption(option, $event)'>\n <span [tetaHighlight]='searchText'>\n <ng-container\n *ngTemplateOutlet='optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}'>\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n }\n } @else {\n <p\n class='padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option'>{{notFoundText || loc.notFound}}</p>\n }\n @if (multiple && value?.length) {\n <div class='row row_auto select-chip-field flex-wrap'>\n @for (item of value; track item) {\n <div class='tag'>\n <p>{{getText(item)}}</p>\n <teta-icon class='cursor-pointer' [palette]=\"'text'\" [name]=\"'closeCircle'\"\n (click)='removeItemClick(item, $event)'></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n </teta-dropdown>\n <ng-template #notFound>\n <p\n class='padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option'>{{notFoundText || loc.notFound}}</p>\n </ng-template>\n <ng-template #optionDefault let-option>\n {{getText(option)}}\n </ng-template>\n <ng-template #valueDefault let-value>\n @if (multiple) {\n <div class='row_auto overflow-hidden text-overflow-ellipsis'>\n {{loc.selected + ' ' + value?.length}}\n </div>\n }\n @if (!multiple) {\n <span class='row row_auto overflow-hidden text-overflow-ellipsis'>{{getText(value)}}</span>\n }\n </ng-template>\n}\n\n" }]
6060
+ ], template: "@if (locale|async; as loc){\n<teta-dropdown\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\"\n>\n <div tetaDropdownHead [class]=\"'row row_auto select-head select_' + viewType\" [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n @if (icon) {\n <teta-icon [name]=\"icon\" [palette]=\"'text'\" class=\"margin-right-1\"></teta-icon>\n } @if ((value=== null ||value=== undefined || value?.length === 0)&&!multiple) {\n <span class=\"placeholder\">\n {{ placeholder || loc.notSelected }}\n </span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n valueDirective ? valueDirective.template : valueDefault;\n context: { $implicit: value, value: value }\n \"\n ></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\" [palette]=\"'text'\"></teta-icon>\n </div>\n @if (options?.length) {\n <div tetaDropdownContent class=\"select-body row_auto\" (click)=\"$event.preventDefault()\">\n @if (searchRef) {\n <div class=\"select-search padding-h-2\">\n <teta-text-field\n [ngModel]=\"searchText\"\n [class]=\"'select_' + viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"\n ></teta-text-field>\n </div>\n } @if (visibleOptions?.length) { @if (!multiple && allowNull) {\n <div [class]=\"'margin-h-2 list-item list-item_interactive select_' + viewType\" (click)=\"clear()\">\n {{ loc.notSelected }}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n } @if (virtual) {\n <teta-scrollable class=\"column column_auto padding-h-2\">\n <cdk-virtual-scroll-viewport tetaScrollable [itemSize]=\"40\" minBufferPx=\"200\" maxBufferPx=\"600\">\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0\"\n [class.list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\"\n >\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </div>\n @if (itemSelected(option)) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\" class=\"margin-left-2\"></teta-icon>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n } @else {\n <teta-scrollable class=\"column column_auto padding-h-2\" [contentClass]=\"['column', 'column_auto']\">\n <div class=\"list\">\n @for (option of visibleOptions; track option) {\n <div\n [class]=\"'list-item list-item_interactive justify-content-between select_' + viewType\"\n [class.list-item_active]=\"itemSelected(option)\"\n (click)=\"clickOption(option, $event)\"\n >\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"\n optionDirective ? optionDirective.template : optionDefault;\n context: { $implicit: option, option: option }\n \"\n >\n </ng-container>\n </span>\n @if (itemSelected(option) && multiple) {\n <teta-icon [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n }\n </div>\n }\n </div>\n </teta-scrollable>\n } } @else {\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n } @if (multiple && value?.length) {\n <div class=\"row row_auto select-chip-field flex-wrap\">\n @for (item of value; track item) {\n <div class=\"tag\">\n <p>{{ getText(item) }}</p>\n <teta-icon\n class=\"cursor-pointer\"\n [palette]=\"'text'\"\n [name]=\"'closeCircle'\"\n (click)=\"removeItemClick(item, $event)\"\n ></teta-icon>\n </div>\n }\n </div>\n }\n </div>\n }\n</teta-dropdown>\n<ng-template #notFound>\n <p class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">\n {{ notFoundText || loc.notFound }}\n </p>\n</ng-template>\n<ng-template #optionDefault let-option>\n {{ getText(option) }}\n</ng-template>\n<ng-template #valueDefault let-value>\n @if (multiple) {\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\">\n {{ loc.selected + ' ' + value?.length }}\n </div>\n } @if (!multiple) {\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{ getText(value) }}</span>\n }\n</ng-template>\n}\n" }]
6263
6061
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: TetaConfigService }], propDecorators: { multiple: [{
6264
6062
  type: HostBinding,
6265
6063
  args: ['class.select_multiple']
@@ -6350,7 +6148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6350
6148
 
6351
6149
  class PropertyGridItemComponent {
6352
6150
  get template() {
6353
- return this.itemTemplates.find(item => item.name === this.column.name);
6151
+ return this.itemTemplates.find((item) => item.name === this.column.name);
6354
6152
  }
6355
6153
  get formGroup() {
6356
6154
  if (this._formGroup instanceof FormGroup) {
@@ -6384,8 +6182,7 @@ class PropertyGridItemComponent {
6384
6182
  getDict() {
6385
6183
  const dict = this.dict ? this.dict[this.column.name] : [];
6386
6184
  if (this.column.parentName?.length > 0) {
6387
- return dict?.filter((dictItem) => dictItem.parentId ===
6388
- this.formGroup?.getRawValue()[this.column.parentName]);
6185
+ return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column.parentName]);
6389
6186
  }
6390
6187
  return dict;
6391
6188
  }
@@ -6424,7 +6221,7 @@ class PropertyGridItemComponent {
6424
6221
  this._formSub?.unsubscribe();
6425
6222
  this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges
6426
6223
  .pipe(takeWhile(() => this._alive))
6427
- .subscribe(_ => {
6224
+ .subscribe((_) => {
6428
6225
  this.controlValueChange.emit({
6429
6226
  id: _,
6430
6227
  name: this.column.name,
@@ -6433,7 +6230,7 @@ class PropertyGridItemComponent {
6433
6230
  }
6434
6231
  }
6435
6232
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$2.TranslocoService }, { token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
6436
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n <teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n >\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n } @else {\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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 }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n }\n <ng-template #default>\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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 }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n </teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
6233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n<teta-input\n [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n>\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template; context: { $implicit: formGroup?.get(column.name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } } }\n <ng-template #default>\n @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n</teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
6437
6234
  }
6438
6235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
6439
6236
  type: Component,
@@ -6447,7 +6244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6447
6244
  ToggleComponent,
6448
6245
  TextFieldComponent,
6449
6246
  DisableControlDirective,
6450
- ], template: "@if (editable || !hideNonEditable) {\n <teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n >\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n } @else {\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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 }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n }\n <ng-template #default>\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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 }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n </teta-input>\n}\n" }]
6247
+ ], template: "@if (editable || !hideNonEditable) {\n<teta-input\n [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n>\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template; context: { $implicit: formGroup?.get(column.name) }\"\n ></ng-container>\n } @else { @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } } }\n <ng-template #default>\n @if (formGroup?.get(column.name)) { @switch (column.filterType) { @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\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\"\n ></teta-select>\n } @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n ></teta-date-picker>\n } @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n } @default {\n <teta-text-field\n class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"\n ></teta-text-field>\n } } }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n</teta-input>\n}\n" }]
6451
6248
  }], ctorParameters: () => [{ type: i1$2.TranslocoService }, { type: i2.ControlContainer, decorators: [{
6452
6249
  type: Optional
6453
6250
  }] }], propDecorators: { column: [{
@@ -6492,11 +6289,11 @@ class PropertyGridGroupComponent {
6492
6289
  return column.name;
6493
6290
  }
6494
6291
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
6495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) {\n @if (col.columns?.length < 1) {\n @if (column.editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"></teta-property-grid-item>\n }\n }\n @if (col.columns?.length > 0) {\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
6292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) { @if (col.columns?.length < 1) { @if (column.editable\n || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n ></teta-property-grid-item>\n } } @if (col.columns?.length > 0) {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
6496
6293
  }
6497
6294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
6498
6295
  type: Component,
6499
- args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) {\n @if (col.columns?.length < 1) {\n @if (column.editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"></teta-property-grid-item>\n }\n }\n @if (col.columns?.length > 0) {\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6296
+ args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) { @if (col.columns?.length < 1) { @if (column.editable\n || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n ></teta-property-grid-item>\n } } @if (col.columns?.length > 0) {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
6500
6297
  }], ctorParameters: () => [{ type: i2.ControlContainer, decorators: [{
6501
6298
  type: Optional
6502
6299
  }] }], propDecorators: { column: [{
@@ -6551,9 +6348,9 @@ class PropertyGridComponent {
6551
6348
  });
6552
6349
  }
6553
6350
  onControlValueChange(event) {
6554
- const affected = this.columns.filter(_ => _.parentName === event.name);
6351
+ const affected = this.columns.filter((_) => _.parentName === event.name);
6555
6352
  if (affected?.length) {
6556
- affected.forEach(item => {
6353
+ affected.forEach((item) => {
6557
6354
  const value = this.formGroup.getRawValue()[item.name];
6558
6355
  if (value) {
6559
6356
  const dictValue = this.getDictValue(value, item.name);
@@ -6574,19 +6371,14 @@ class PropertyGridComponent {
6574
6371
  return column.name;
6575
6372
  }
6576
6373
  getDictValue(value, name) {
6577
- return this.dict[name]?.find(_ => _.id === value);
6374
+ return this.dict[name]?.find((_) => _.id === value);
6578
6375
  }
6579
6376
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
6580
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns?.length) {\n @for (column of columns; track trackColumns($index, column)) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]='dict'\n [column]='column'\n [item]='item'\n [id]='column.name'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]='column.name'\n [dict]='dict'\n [column]='column'\n [item]='item'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
6377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns?.length) { @for (column of columns; track trackColumns($index, column)) { @if (column.columns?.length < 1\n&& (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-item\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
6581
6378
  }
6582
6379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
6583
6380
  type: Component,
6584
- args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
6585
- PropertyGridItemComponent,
6586
- FormsModule,
6587
- ReactiveFormsModule,
6588
- PropertyGridGroupComponent,
6589
- ], template: "@if (columns?.length) {\n @for (column of columns; track trackColumns($index, column)) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]='dict'\n [column]='column'\n [item]='item'\n [id]='column.name'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]='column.name'\n [dict]='dict'\n [column]='column'\n [item]='item'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
6381
+ args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], template: "@if (columns?.length) { @for (column of columns; track trackColumns($index, column)) { @if (column.columns?.length < 1\n&& (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-item\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-item>\n} @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n<teta-property-grid-group\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"\n></teta-property-grid-group>\n} } }\n", styles: [":host{padding:12px 8px}\n"] }]
6590
6382
  }], ctorParameters: () => [{ type: i2.ControlContainer, decorators: [{
6591
6383
  type: Optional
6592
6384
  }] }], propDecorators: { formClass: [{
@@ -6680,12 +6472,9 @@ class SidebarComponent {
6680
6472
  }
6681
6473
  ngOnInit() { }
6682
6474
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6683
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n <div\n [@sidebar]\n (click)=\"setOpen(false)\"\n class=\"sidebar-backdrop\"></div>\n}\n@if (open) {\n <div class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n >\n <ng-content></ng-content>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
6475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: SidebarComponent, isStandalone: true, selector: "teta-sidebar", inputs: { position: "position", backdrop: "backdrop", open: "open", className: "className" }, outputs: { openChange: "openChange" }, host: { properties: { "style.z-index": "this.zIndex" } }, ngImport: i0, template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
6684
6476
  trigger('sidebar', [
6685
- transition('void => *', [
6686
- style({ opacity: '0' }),
6687
- animate(300, style({ opacity: '1' })),
6688
- ]),
6477
+ transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
6689
6478
  transition('* => void', [animate(300, style({ opacity: '0' }))]),
6690
6479
  ]),
6691
6480
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -6694,13 +6483,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6694
6483
  type: Component,
6695
6484
  args: [{ selector: 'teta-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
6696
6485
  trigger('sidebar', [
6697
- transition('void => *', [
6698
- style({ opacity: '0' }),
6699
- animate(300, style({ opacity: '1' })),
6700
- ]),
6486
+ transition('void => *', [style({ opacity: '0' }), animate(300, style({ opacity: '1' }))]),
6701
6487
  transition('* => void', [animate(300, style({ opacity: '0' }))]),
6702
6488
  ]),
6703
- ], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n <div\n [@sidebar]\n (click)=\"setOpen(false)\"\n class=\"sidebar-backdrop\"></div>\n}\n@if (open) {\n <div class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n >\n <ng-content></ng-content>\n </div>\n}\n" }]
6489
+ ], standalone: true, imports: [NgClass], template: "@if (backdrop && open) {\n<div [@sidebar] (click)=\"setOpen(false)\" class=\"sidebar-backdrop\"></div>\n} @if (open) {\n<div\n class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n>\n <ng-content></ng-content>\n</div>\n}\n" }]
6704
6490
  }], ctorParameters: () => [], propDecorators: { position: [{
6705
6491
  type: Input
6706
6492
  }], backdrop: [{
@@ -6730,7 +6516,7 @@ class SwitchService {
6730
6516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SwitchService, decorators: [{
6731
6517
  type: Injectable,
6732
6518
  args: [{
6733
- providedIn: 'root'
6519
+ providedIn: 'root',
6734
6520
  }]
6735
6521
  }], ctorParameters: () => [] });
6736
6522
 
@@ -6761,18 +6547,15 @@ class SwitchComponent {
6761
6547
  this.svc.setValue(model);
6762
6548
  this.cdr.markForCheck();
6763
6549
  }
6764
- onChange(_) {
6765
- }
6766
- onTouched() {
6767
- }
6550
+ onChange(_) { }
6551
+ onTouched() { }
6768
6552
  registerOnChange(fn) {
6769
6553
  this.onChange = fn;
6770
6554
  }
6771
6555
  registerOnTouched(fn) {
6772
6556
  this.onTouched = fn;
6773
6557
  }
6774
- ngOnInit() {
6775
- }
6558
+ ngOnInit() { }
6776
6559
  ngOnDestroy() {
6777
6560
  this._alive = false;
6778
6561
  }
@@ -6795,8 +6578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
6795
6578
  class SwitchButtonComponent {
6796
6579
  get getClass() {
6797
6580
  const result = [this.class, 'switch-button'];
6798
- if (this.svcValue === this.value ||
6799
- (this.svcValue instanceof Array && this.svcValue.indexOf(this.value) >= 0)) {
6581
+ if (this.svcValue === this.value || (this.svcValue instanceof Array && this.svcValue.indexOf(this.value) >= 0)) {
6800
6582
  result.push('switch-button_active');
6801
6583
  }
6802
6584
  return result.join(' ');
@@ -6989,9 +6771,7 @@ class DateUtil {
6989
6771
  return res;
6990
6772
  }
6991
6773
  static toISOString(date) {
6992
- return (new Date(date - new Date().getTimezoneOffset() * 60000)
6993
- .toISOString()
6994
- .slice(0, -5) + 'Z');
6774
+ return new Date(date - new Date().getTimezoneOffset() * 60000).toISOString().slice(0, -5) + 'Z';
6995
6775
  }
6996
6776
  static isValidDate(date) {
6997
6777
  return date instanceof Date && !isNaN(date.getTime());
@@ -7120,32 +6900,25 @@ class StateUtil {
7120
6900
  }
7121
6901
  static hasFilteredColumns(state) {
7122
6902
  let hasFilters = false;
7123
- if (state.stringFilters &&
7124
- state.stringFilters.some((filter) => filter.value && filter.value.length)) {
6903
+ if (state.stringFilters && state.stringFilters.some((filter) => filter.value && filter.value.length)) {
7125
6904
  hasFilters = true;
7126
6905
  }
7127
- if (state.listFilters &&
7128
- state.listFilters.some((filter) => filter.value && filter.value.length)) {
6906
+ if (state.listFilters && state.listFilters.some((filter) => filter.value && filter.value.length)) {
7129
6907
  hasFilters = true;
7130
6908
  }
7131
6909
  if (state.numericFilters &&
7132
6910
  state.numericFilters.some((filter) => filter &&
7133
6911
  filter.value &&
7134
- ((filter.value.lessThan !== null &&
7135
- filter.value.lessThan !== undefined) ||
7136
- (filter.value.greaterThan !== null &&
7137
- filter.value.greaterThan !== undefined) ||
7138
- (filter.value.equalsTo !== null &&
7139
- filter.value.equalsTo !== undefined)))) {
6912
+ ((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
6913
+ (filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
6914
+ (filter.value.equalsTo !== null && filter.value.equalsTo !== undefined)))) {
7140
6915
  hasFilters = true;
7141
6916
  }
7142
6917
  if (state.dateFilters &&
7143
6918
  state.dateFilters.some((filter) => filter &&
7144
6919
  filter.value &&
7145
- ((filter.value.lessThan !== null &&
7146
- filter.value.lessThan !== undefined) ||
7147
- (filter.value.greaterThan !== null &&
7148
- filter.value.greaterThan !== undefined)))) {
6920
+ ((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
6921
+ (filter.value.greaterThan !== null && filter.value.greaterThan !== undefined)))) {
7149
6922
  hasFilters = true;
7150
6923
  }
7151
6924
  return hasFilters;
@@ -7186,12 +6959,9 @@ class StateUtil {
7186
6959
  const filter = state.numericFilters.find((x) => x.field === column.filterField);
7187
6960
  if (filter &&
7188
6961
  filter.value &&
7189
- ((filter.value.lessThan !== null &&
7190
- filter.value.lessThan !== undefined) ||
7191
- (filter.value.greaterThan !== null &&
7192
- filter.value.greaterThan !== undefined) ||
7193
- (filter.value.equalsTo !== null &&
7194
- filter.value.equalsTo !== undefined))) {
6962
+ ((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
6963
+ (filter.value.greaterThan !== null && filter.value.greaterThan !== undefined) ||
6964
+ (filter.value.equalsTo !== null && filter.value.equalsTo !== undefined))) {
7195
6965
  filtered = true;
7196
6966
  }
7197
6967
  }
@@ -7201,10 +6971,8 @@ class StateUtil {
7201
6971
  const filter = state.dateFilters.find((x) => x.field === column.filterField);
7202
6972
  if (filter &&
7203
6973
  filter.value &&
7204
- ((filter.value.lessThan !== null &&
7205
- filter.value.lessThan !== undefined) ||
7206
- (filter.value.greaterThan !== null &&
7207
- filter.value.greaterThan !== undefined))) {
6974
+ ((filter.value.lessThan !== null && filter.value.lessThan !== undefined) ||
6975
+ (filter.value.greaterThan !== null && filter.value.greaterThan !== undefined))) {
7208
6976
  filtered = true;
7209
6977
  }
7210
6978
  }
@@ -7326,7 +7094,7 @@ class TableService {
7326
7094
  this.scrollIndex = this._scrollIndex.asObservable();
7327
7095
  }
7328
7096
  setData(data) {
7329
- this._displayData.next(data?.map(item => new TableRow({
7097
+ this._displayData.next(data?.map((item) => new TableRow({
7330
7098
  data: item,
7331
7099
  })) ?? []);
7332
7100
  }
@@ -7337,13 +7105,8 @@ class TableService {
7337
7105
  this._filterOptions.next(filterOptions);
7338
7106
  }
7339
7107
  setColumns(columns) {
7340
- this.initialColumns = columns ? columns.map(_ => new TableColumn(_)) : [];
7341
- const excludeKeys = [
7342
- 'editable',
7343
- 'cellComponent',
7344
- 'headCellComponent',
7345
- 'headDropdownConfig',
7346
- ];
7108
+ this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
7109
+ const excludeKeys = ['editable', 'cellComponent', 'headCellComponent', 'headDropdownConfig'];
7347
7110
  this.initialColumnsHash = objectHash(this.initialColumns, {
7348
7111
  algorithm: 'sha1',
7349
7112
  ignoreUnknown: true,
@@ -7371,7 +7134,7 @@ class TableService {
7371
7134
  if (this._columnsCookieName) {
7372
7135
  localStorage.setItem(this._columnsCookieName, JSON.stringify({
7373
7136
  hash: this.initialColumnsHash,
7374
- columns: this.displayColumns.map(_ => new TableColumnStore(_)),
7137
+ columns: this.displayColumns.map((_) => new TableColumnStore(_)),
7375
7138
  }));
7376
7139
  }
7377
7140
  }
@@ -7381,7 +7144,7 @@ class TableService {
7381
7144
  }
7382
7145
  }
7383
7146
  setDisplayColumns(columns) {
7384
- this.displayColumns = columns ? columns.map(_ => new TableColumn(_)) : [];
7147
+ this.displayColumns = columns ? columns.map((_) => new TableColumn(_)) : [];
7385
7148
  this._columns.next(this.displayColumns);
7386
7149
  }
7387
7150
  restoreColumns() {
@@ -7395,7 +7158,7 @@ class TableService {
7395
7158
  }
7396
7159
  restoreColumnsState(columns) {
7397
7160
  return columns.map((column) => {
7398
- const found = ArrayUtil.findRecursive(this.initialColumns, item => item.name === column.name, 'columns');
7161
+ const found = ArrayUtil.findRecursive(this.initialColumns, (item) => item.name === column.name, 'columns');
7399
7162
  const resultColumn = new TableColumn(found);
7400
7163
  resultColumn.width = column.width;
7401
7164
  resultColumn.flex = column.flex;
@@ -7419,9 +7182,7 @@ class TableService {
7419
7182
  }
7420
7183
  restoreState() {
7421
7184
  let state;
7422
- if (this._cookieName &&
7423
- this._cookieName?.length > 0 &&
7424
- FilterState.restore(this._cookieName)) {
7185
+ if (this._cookieName && this._cookieName?.length > 0 && FilterState.restore(this._cookieName)) {
7425
7186
  let newState = Object.assign(this._state.value, FilterState.restore(this._cookieName));
7426
7187
  newState = DateUtil.convertDateStringsToDates(newState);
7427
7188
  state = new FilterState(newState);
@@ -7515,7 +7276,7 @@ class TableService {
7515
7276
  lockPreviousColumns(column, element) {
7516
7277
  const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true).sort((a, b) => Number(b.locked) - Number(a.locked));
7517
7278
  const index = flat.indexOf(column);
7518
- const previous = flat.slice(0, index).filter(_ => _.flex > 0);
7279
+ const previous = flat.slice(0, index).filter((_) => _.flex > 0);
7519
7280
  if (previous?.length > 0) {
7520
7281
  const tableElement = this.getTableElement(element);
7521
7282
  previous.forEach((item) => {
@@ -7544,7 +7305,7 @@ class TableService {
7544
7305
  autosizeAllColumns(target) {
7545
7306
  const tableElement = this.getTableElement(target);
7546
7307
  const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true);
7547
- flat.forEach(col => this.setColumnAutoWidth(col, tableElement));
7308
+ flat.forEach((col) => this.setColumnAutoWidth(col, tableElement));
7548
7309
  this._columns.next(this.displayColumns);
7549
7310
  this.saveColumnsState();
7550
7311
  }
@@ -7590,23 +7351,20 @@ class TableService {
7590
7351
  }
7591
7352
  }
7592
7353
  startEditCell(cellEvent) {
7593
- if (this._currentEditCell?.column !== cellEvent?.column ||
7594
- this._currentEditCell?.row !== cellEvent?.row) {
7354
+ if (this._currentEditCell?.column !== cellEvent?.column || this._currentEditCell?.row !== cellEvent?.row) {
7595
7355
  if (this._currentEditCell != null) {
7596
7356
  this._editCellStop.next(this._currentEditCell);
7597
7357
  }
7598
7358
  const column = this.getColumnByName(cellEvent?.column);
7599
- if (boolOrFuncCallback(this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data)
7600
- &&
7601
- boolOrFuncCallback(column?.editable)({
7602
- row: this.getRowByIndex(cellEvent?.row)?.data,
7603
- column: column,
7604
- })) {
7359
+ if (boolOrFuncCallback(this.rowEditable)(this.getRowByIndex(cellEvent?.row)?.data) &&
7360
+ boolOrFuncCallback(column?.editable)({
7361
+ row: this.getRowByIndex(cellEvent?.row)?.data,
7362
+ column: column,
7363
+ })) {
7605
7364
  this._editCellStart.next(cellEvent);
7606
7365
  this._currentEditCell = cellEvent;
7607
7366
  const key = cellEvent?.event?.key;
7608
- if (key &&
7609
- (key.length === 1 || (key === 'Delete' && !column.required))) {
7367
+ if (key && (key.length === 1 || (key === 'Delete' && !column.required))) {
7610
7368
  this.clearValue(cellEvent);
7611
7369
  }
7612
7370
  }
@@ -7620,23 +7378,23 @@ class TableService {
7620
7378
  }
7621
7379
  selectOrDeselectRow(row) {
7622
7380
  if (this._selectedRows.value.indexOf(row) >= 0) {
7623
- this._selectedRows.next(this._selectedRows.value.filter(_ => _ !== row));
7381
+ this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7624
7382
  }
7625
7383
  else {
7626
7384
  this._selectedRows.next([...this._selectedRows.value, row]);
7627
7385
  }
7628
7386
  }
7629
7387
  selectRange(row) {
7630
- const index = this._displayData.value.findIndex(_ => _.data === row);
7388
+ const index = this._displayData.value.findIndex((_) => _.data === row);
7631
7389
  let minIndex = this._selectedRows.value.reduce((prev, curr) => {
7632
- const newIndex = this._displayData.value.findIndex(_ => _.data === curr);
7390
+ const newIndex = this._displayData.value.findIndex((_) => _.data === curr);
7633
7391
  if (newIndex < prev) {
7634
7392
  return newIndex;
7635
7393
  }
7636
7394
  return prev;
7637
7395
  }, this._displayData.value.length);
7638
7396
  let maxIndex = this._selectedRows.value.reduce((prev, curr) => {
7639
- const newIndex = this._displayData.value.findIndex(_ => _.data === curr);
7397
+ const newIndex = this._displayData.value.findIndex((_) => _.data === curr);
7640
7398
  if (newIndex > prev) {
7641
7399
  return newIndex;
7642
7400
  }
@@ -7651,9 +7409,7 @@ class TableService {
7651
7409
  if (minIndex < index && index < maxIndex) {
7652
7410
  maxIndex = index;
7653
7411
  }
7654
- this._selectedRows.next([
7655
- ...this._displayData.value.slice(minIndex, maxIndex + 1).map(_ => _.data),
7656
- ]);
7412
+ this._selectedRows.next([...this._displayData.value.slice(minIndex, maxIndex + 1).map((_) => _.data)]);
7657
7413
  }
7658
7414
  selectRow(row) {
7659
7415
  if (this.selectType === SelectType.none) {
@@ -7665,10 +7421,10 @@ class TableService {
7665
7421
  if (this.selectType === SelectType.none) {
7666
7422
  return;
7667
7423
  }
7668
- this._selectedRows.next(this._selectedRows.value.filter(_ => _ !== row));
7424
+ this._selectedRows.next(this._selectedRows.value.filter((_) => _ !== row));
7669
7425
  }
7670
7426
  selectAll() {
7671
- this._selectedRows.next(this._displayData.value.map(_ => _.data));
7427
+ this._selectedRows.next(this._displayData.value.map((_) => _.data));
7672
7428
  }
7673
7429
  deselectAll() {
7674
7430
  this._selectedRows.next([]);
@@ -7676,12 +7432,10 @@ class TableService {
7676
7432
  allRowsSelected() {
7677
7433
  if (this._displayData.value?.length &&
7678
7434
  this._selectedRows.value?.length &&
7679
- this._displayData.value.every(_ => this._selectedRows.value.findIndex(selected => selected === _.data) >=
7680
- 0)) {
7435
+ this._displayData.value.every((_) => this._selectedRows.value.findIndex((selected) => selected === _.data) >= 0)) {
7681
7436
  return true;
7682
7437
  }
7683
- else if (this._selectedRows.value == null ||
7684
- this._selectedRows.value.length === 0) {
7438
+ else if (this._selectedRows.value == null || this._selectedRows.value.length === 0) {
7685
7439
  return false;
7686
7440
  }
7687
7441
  return null;
@@ -7698,8 +7452,7 @@ class TableService {
7698
7452
  }
7699
7453
  setValue(cellValue) {
7700
7454
  let value;
7701
- if (typeof cellValue.row === 'object' &&
7702
- typeof cellValue.column === 'object') {
7455
+ if (typeof cellValue.row === 'object' && typeof cellValue.column === 'object') {
7703
7456
  value = {
7704
7457
  row: this.getRowIndex(cellValue.row.data),
7705
7458
  column: cellValue.column.name,
@@ -7718,7 +7471,7 @@ class TableService {
7718
7471
  return undefined;
7719
7472
  }
7720
7473
  getRowIndex(row) {
7721
- return this._displayData.value.findIndex(_ => _.data === row);
7474
+ return this._displayData.value.findIndex((_) => _.data === row);
7722
7475
  }
7723
7476
  getEventCell(event) {
7724
7477
  return event.composedPath().find((target) => {
@@ -7800,9 +7553,7 @@ class TableService {
7800
7553
  const columns = this.getFlatColumns();
7801
7554
  const colIndex = columns.findIndex((col) => col.name === coords?.column);
7802
7555
  const rowIndex = coords?.row;
7803
- if (colIndex >= 0 &&
7804
- rowIndex >= 0 &&
7805
- rowIndex < this._displayData.value.length - 1) {
7556
+ if (colIndex >= 0 && rowIndex >= 0 && rowIndex < this._displayData.value.length - 1) {
7806
7557
  return {
7807
7558
  column: columns[colIndex]?.name,
7808
7559
  row: rowIndex + 1,
@@ -7823,14 +7574,14 @@ class TableService {
7823
7574
  return null;
7824
7575
  }
7825
7576
  getColumnByName(columnName) {
7826
- return ArrayUtil.findRecursive(this.displayColumns, iterableNode => columnName === iterableNode.name, 'columns');
7577
+ return ArrayUtil.findRecursive(this.displayColumns, (iterableNode) => columnName === iterableNode.name, 'columns');
7827
7578
  }
7828
7579
  scrollToIndex(index) {
7829
7580
  this._scrollIndex.next(null);
7830
7581
  this._scrollIndex.next(index);
7831
7582
  }
7832
7583
  getVisibleColumns() {
7833
- const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter(_ => this._hiddenColumns.value.indexOf(_.name) < 0);
7584
+ const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter((_) => this._hiddenColumns.value.indexOf(_.name) < 0);
7834
7585
  return visible.sort((a, b) => Number(b.locked) - Number(a.locked));
7835
7586
  }
7836
7587
  getCellInstance(coords) {
@@ -7845,7 +7596,7 @@ class TableService {
7845
7596
  return ArrayUtil.flatten(this.displayColumns, 'columns', true).sort((a, b) => Number(b.locked) - Number(a.locked));
7846
7597
  }
7847
7598
  findParent(column, columns) {
7848
- const found = columns.find(x => x.name === column.name);
7599
+ const found = columns.find((x) => x.name === column.name);
7849
7600
  if (found !== null && found !== undefined) {
7850
7601
  return columns;
7851
7602
  }
@@ -7861,7 +7612,7 @@ class TableService {
7861
7612
  return null;
7862
7613
  }
7863
7614
  findParentColumn(column, columns) {
7864
- const found = columns.find(x => x.columns.indexOf(column) >= 0);
7615
+ const found = columns.find((x) => x.columns.indexOf(column) >= 0);
7865
7616
  if (found !== null && found !== undefined) {
7866
7617
  return found;
7867
7618
  }
@@ -7882,13 +7633,13 @@ class TableService {
7882
7633
  setColumnAutoWidth(column, table) {
7883
7634
  const cells = table.querySelectorAll(`teta-cell[data-column="${column.name}"] .cell-text`);
7884
7635
  let maxWidth = 0;
7885
- cells.forEach(cell => {
7636
+ cells.forEach((cell) => {
7886
7637
  if (cell.scrollWidth > maxWidth) {
7887
7638
  maxWidth = cell.scrollWidth;
7888
7639
  }
7889
7640
  });
7890
7641
  const aggCells = table.querySelectorAll(`.aggregate-cell[data-column="${column.name}"] .cell-text`);
7891
- aggCells?.forEach(cell => {
7642
+ aggCells?.forEach((cell) => {
7892
7643
  if (cell.scrollWidth > maxWidth) {
7893
7644
  maxWidth = cell.scrollWidth;
7894
7645
  }
@@ -7984,9 +7735,7 @@ class CellComponentBase {
7984
7735
  }
7985
7736
  ngOnInit() {
7986
7737
  this.init();
7987
- this.formGroup?.controls[this.column.name]?.valueChanges
7988
- .pipe(takeWhile(() => this._alive))
7989
- .subscribe(value => {
7738
+ this.formGroup?.controls[this.column.name]?.valueChanges.pipe(takeWhile(() => this._alive)).subscribe((value) => {
7990
7739
  this.formGroup.updateValueAndValidity();
7991
7740
  this.row.valid = this.formGroup?.valid;
7992
7741
  this.row.data[this.column.name] = this.control.value;
@@ -7997,9 +7746,7 @@ class CellComponentBase {
7997
7746
  });
7998
7747
  }
7999
7748
  init() {
8000
- this.svc.editRowStart
8001
- .pipe(takeWhile(_ => this._alive))
8002
- .subscribe((cell) => {
7749
+ this.svc.editRowStart.pipe(takeWhile((_) => this._alive)).subscribe((cell) => {
8003
7750
  if (this.index === cell?.row && !this._edit) {
8004
7751
  this.start(cell, 'row');
8005
7752
  }
@@ -8007,24 +7754,16 @@ class CellComponentBase {
8007
7754
  this.stop();
8008
7755
  }
8009
7756
  });
8010
- this.svc.editCellStart
8011
- .pipe(takeWhile(_ => this._alive))
8012
- .subscribe((cell) => {
8013
- if (this.index === cell?.row &&
8014
- this.column.name === cell?.column &&
8015
- !this._edit) {
7757
+ this.svc.editCellStart.pipe(takeWhile((_) => this._alive)).subscribe((cell) => {
7758
+ if (this.index === cell?.row && this.column.name === cell?.column && !this._edit) {
8016
7759
  this.start(cell, 'cell');
8017
7760
  }
8018
- if ((this.index !== cell?.row || this.column.name !== cell?.column) &&
8019
- this._edit) {
7761
+ if ((this.index !== cell?.row || this.column.name !== cell?.column) && this._edit) {
8020
7762
  this.stop();
8021
7763
  }
8022
7764
  });
8023
- this.svc.valueSet
8024
- .pipe(takeWhile(_ => this._alive))
8025
- .subscribe((cellValue) => {
8026
- if (this.index === cellValue.row &&
8027
- this.column.name === cellValue.column) {
7765
+ this.svc.valueSet.pipe(takeWhile((_) => this._alive)).subscribe((cellValue) => {
7766
+ if (this.index === cellValue.row && this.column.name === cellValue.column) {
8028
7767
  this.row.data[this.column.name] = cellValue.value;
8029
7768
  this.setupControl();
8030
7769
  this.formGroup.updateValueAndValidity();
@@ -8102,16 +7841,11 @@ class NumericCellComponent extends CellComponentBase {
8102
7841
  this.cdr.markForCheck();
8103
7842
  }
8104
7843
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{control?.value | tetaNumber : 2}}\n</span>\n@if (edit) {\n <input #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]=\"control\"/>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7844
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: NumericCellComponent, isStandalone: true, selector: "teta-numeric-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: OnlyNumberDirective, selector: "[tetaOnlyNumber]", inputs: ["tetaOnlyNumber", "allowDecimals", "allowSign", "decimalSeparator", "commaSeparator", "onlyPositive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }], viewProviders: [FormsUtil.formProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8106
7845
  }
8107
7846
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NumericCellComponent, decorators: [{
8108
7847
  type: Component,
8109
- args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
8110
- FormsModule,
8111
- OnlyNumberDirective,
8112
- ReactiveFormsModule,
8113
- NumberPipe,
8114
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{control?.value | tetaNumber : 2}}\n</span>\n@if (edit) {\n <input #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]=\"control\"/>\n}\n" }]
7848
+ args: [{ selector: 'teta-numeric-cell', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [FormsUtil.formProvider], standalone: true, imports: [FormsModule, OnlyNumberDirective, ReactiveFormsModule, NumberPipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | tetaNumber : 2 }}\n</span>\n@if (edit) {\n<input\n #input\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
8115
7849
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
8116
7850
  type: ViewChild,
8117
7851
  args: ['input', { static: false }]
@@ -8138,16 +7872,11 @@ class DateCellComponent extends CellComponentBase {
8138
7872
  this.cdr.markForCheck();
8139
7873
  }
8140
7874
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [allowNull]='!column.required'\n [appendToBody]='true'\n [showTime]='false'\n [formControl]='control'></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7875
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateCellComponent, isStandalone: true, selector: "teta-date-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8142
7876
  }
8143
7877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateCellComponent, decorators: [{
8144
7878
  type: Component,
8145
- args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
8146
- DatePickerComponent,
8147
- FormsModule,
8148
- ReactiveFormsModule,
8149
- DatePipe,
8150
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [allowNull]='!column.required'\n [appendToBody]='true'\n [showTime]='false'\n [formControl]='control'></teta-date-picker>\n}\n" }]
7879
+ args: [{ selector: 'teta-date-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
8151
7880
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
8152
7881
  type: ViewChild,
8153
7882
  args: ['input', { static: false }]
@@ -8158,7 +7887,7 @@ class ListCellComponent extends CellComponentBase {
8158
7887
  if (this.column?.parentName?.length > 0) {
8159
7888
  const parentValue = this.row.data[this.column.parentName];
8160
7889
  if (parentValue) {
8161
- return this.filterOptions.filter(_ => _.parentId === parentValue);
7890
+ return this.filterOptions.filter((_) => _.parentId === parentValue);
8162
7891
  }
8163
7892
  }
8164
7893
  return this.filterOptions;
@@ -8184,27 +7913,21 @@ class ListCellComponent extends CellComponentBase {
8184
7913
  super.ngOnInit();
8185
7914
  }
8186
7915
  getValue(value) {
8187
- if (this.filterOptions === null ||
8188
- this.filterOptions === undefined ||
8189
- !(this.filterOptions instanceof Array)) {
7916
+ if (this.filterOptions === null || this.filterOptions === undefined || !(this.filterOptions instanceof Array)) {
8190
7917
  return '';
8191
7918
  }
8192
- const item = this.filterOptions.find(option => option.id === value);
7919
+ const item = this.filterOptions.find((option) => option.id === value);
8193
7920
  if (item === null || item === undefined) {
8194
7921
  return '';
8195
7922
  }
8196
7923
  return item.name;
8197
7924
  }
8198
7925
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{getValue(control.value)}}\n</span>\n@if (edit) {\n <teta-select #input\n class='row_auto select-table'\n [allowNull]='!column.required'\n [verticalAlign]='verticalAlign.auto'\n [appendToBody]='true'\n [options]='displayFilterOptions'\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]='control'>\n </teta-select>\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7926
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ListCellComponent, isStandalone: true, selector: "teta-list-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8200
7927
  }
8201
7928
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ListCellComponent, decorators: [{
8202
7929
  type: Component,
8203
- args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
8204
- SelectComponent,
8205
- FormsModule,
8206
- ReactiveFormsModule,
8207
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{getValue(control.value)}}\n</span>\n@if (edit) {\n <teta-select #input\n class='row_auto select-table'\n [allowNull]='!column.required'\n [verticalAlign]='verticalAlign.auto'\n [appendToBody]='true'\n [options]='displayFilterOptions'\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]='control'>\n </teta-select>\n}\n" }]
7930
+ args: [{ selector: 'teta-list-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ getValue(control.value) }}\n</span>\n@if (edit) {\n<teta-select\n #input\n class=\"row_auto select-table\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [searchRef]=\"displayFilterOptions?.length > 20 ? 'name' : ''\"\n [formControl]=\"control\"\n>\n</teta-select>\n}\n" }]
8208
7931
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
8209
7932
  type: ViewChild,
8210
7933
  args: ['input', { static: false }]
@@ -8231,15 +7954,11 @@ class StringCellComponent extends CellComponentBase {
8231
7954
  this.cdr.detectChanges();
8232
7955
  }
8233
7956
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\">\n {{control.value}}\n</span>\n@if (edit) {\n <input #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]='control'/>\n}\n\n", styles: [""], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7957
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: StringCellComponent, isStandalone: true, selector: "teta-string-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8235
7958
  }
8236
7959
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: StringCellComponent, decorators: [{
8237
7960
  type: Component,
8238
- args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
8239
- HintDirective,
8240
- FormsModule,
8241
- ReactiveFormsModule,
8242
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\">\n {{control.value}}\n</span>\n@if (edit) {\n <input #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)='input.blur()'\n [formControl]='control'/>\n}\n\n" }]
7961
+ args: [{ selector: 'teta-string-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective, FormsModule, ReactiveFormsModule], template: "<span\n [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\"\n>\n {{ control.value }}\n</span>\n@if (edit) {\n<input\n #input\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (keydown.enter)=\"input.blur()\"\n [formControl]=\"control\"\n/>\n}\n" }]
8243
7962
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
8244
7963
  type: ViewChild,
8245
7964
  args: ['input', { static: false }]
@@ -8266,15 +7985,11 @@ class BooleanCellComponent extends CellComponentBase {
8266
7985
  this.cdr.markForCheck();
8267
7986
  }
8268
7987
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8269
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n <teta-checkbox\n #input\n [binary]=\"true\"\n [formControl]='control'\n ></teta-checkbox>\n}\n", styles: [""], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7988
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: BooleanCellComponent, isStandalone: true, selector: "teta-boolean-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n", styles: [""], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8270
7989
  }
8271
7990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: BooleanCellComponent, decorators: [{
8272
7991
  type: Component,
8273
- args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
8274
- CheckboxComponent,
8275
- FormsModule,
8276
- ReactiveFormsModule,
8277
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n <teta-checkbox\n #input\n [binary]=\"true\"\n [formControl]='control'\n ></teta-checkbox>\n}\n" }]
7992
+ args: [{ selector: 'teta-boolean-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule, ReactiveFormsModule], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value }}\n</span>\n@if (edit) {\n<teta-checkbox #input [binary]=\"true\" [formControl]=\"control\"></teta-checkbox>\n}\n" }]
8278
7993
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
8279
7994
  type: ViewChild,
8280
7995
  args: ['input', { static: false }]
@@ -8287,9 +8002,7 @@ const cellComponentsMap = new Map()
8287
8002
  .set(FilterType.string, StringCellComponent)
8288
8003
  .set(FilterType.boolean, BooleanCellComponent)
8289
8004
  .set(FilterType.custom, StringCellComponent);
8290
- const getCellComponent = (column) => cellComponentsMap.has(column.filterType)
8291
- ? cellComponentsMap.get(column.filterType)
8292
- : StringCellComponent;
8005
+ const getCellComponent = (column) => cellComponentsMap.has(column.filterType) ? cellComponentsMap.get(column.filterType) : StringCellComponent;
8293
8006
 
8294
8007
  class CellHostComponent {
8295
8008
  constructor(viewContainerRef) {
@@ -8345,11 +8058,11 @@ class CellComponent {
8345
8058
  this.tableCellClass = true;
8346
8059
  }
8347
8060
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8348
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CellComponent, isStandalone: true, selector: "teta-cell", inputs: { column: "column", filterOptions: "filterOptions", dict: "dict", row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-cell-host [row]=\"row\"\n [column]=\"column\"\n [filterOptions]=\"filterOptions\"\n [dict]=\"dict\"></teta-cell-host>\n", styles: [""], dependencies: [{ kind: "component", type: CellHostComponent, selector: "teta-cell-host", inputs: ["column", "row", "filterOptions", "dict"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8061
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CellComponent, isStandalone: true, selector: "teta-cell", inputs: { column: "column", filterOptions: "filterOptions", dict: "dict", row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-cell-host [row]=\"row\" [column]=\"column\" [filterOptions]=\"filterOptions\" [dict]=\"dict\"></teta-cell-host>\n", styles: [""], dependencies: [{ kind: "component", type: CellHostComponent, selector: "teta-cell-host", inputs: ["column", "row", "filterOptions", "dict"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8349
8062
  }
8350
8063
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CellComponent, decorators: [{
8351
8064
  type: Component,
8352
- args: [{ selector: 'teta-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CellHostComponent], template: "<teta-cell-host [row]=\"row\"\n [column]=\"column\"\n [filterOptions]=\"filterOptions\"\n [dict]=\"dict\"></teta-cell-host>\n" }]
8065
+ args: [{ selector: 'teta-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CellHostComponent], template: "<teta-cell-host [row]=\"row\" [column]=\"column\" [filterOptions]=\"filterOptions\" [dict]=\"dict\"></teta-cell-host>\n" }]
8353
8066
  }], propDecorators: { column: [{
8354
8067
  type: Input
8355
8068
  }], filterOptions: [{
@@ -8380,9 +8093,7 @@ class SelectionCellComponent {
8380
8093
  }
8381
8094
  }
8382
8095
  ngOnInit() {
8383
- this._svc.selectedRows
8384
- .pipe(takeWhile((_) => this._alive))
8385
- .subscribe((_) => {
8096
+ this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
8386
8097
  this.selectedRows = _;
8387
8098
  this._cdr.markForCheck();
8388
8099
  });
@@ -8391,11 +8102,11 @@ class SelectionCellComponent {
8391
8102
  this._alive = false;
8392
8103
  }
8393
8104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8394
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionCellComponent, isStandalone: true, selector: "teta-selection-cell", inputs: { row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionCellComponent, isStandalone: true, selector: "teta-selection-cell", inputs: { row: "row" }, host: { properties: { "class.cell": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox\n [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8395
8106
  }
8396
8107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionCellComponent, decorators: [{
8397
8108
  type: Component,
8398
- args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
8109
+ args: [{ selector: 'teta-selection-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox\n [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
8399
8110
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { row: [{
8400
8111
  type: Input
8401
8112
  }], tableCellClass: [{
@@ -8450,8 +8161,8 @@ class TableBodyComponent {
8450
8161
  }
8451
8162
  set columns(columns) {
8452
8163
  this._columns = columns;
8453
- this.locked = this._columns?.filter(_ => _.locked === true);
8454
- this.unlocked = this._columns?.filter(_ => _.locked === false);
8164
+ this.locked = this._columns?.filter((_) => _.locked === true);
8165
+ this.unlocked = this._columns?.filter((_) => _.locked === false);
8455
8166
  const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
8456
8167
  this.lockedFlex = this.locked.reduce((prev, curr) => prev + curr.flex, 0);
8457
8168
  this.lockedWidth = this.locked.reduce((prev, curr) => prev + curr.width, startWidth);
@@ -8488,25 +8199,23 @@ class TableBodyComponent {
8488
8199
  ngOnInit() {
8489
8200
  this.locale = this._config.locale;
8490
8201
  combineLatest([this._svc.columns, this._svc.hiddenColumns])
8491
- .pipe(takeWhile(_ => this._alive))
8202
+ .pipe(takeWhile((_) => this._alive))
8492
8203
  .subscribe((values) => {
8493
8204
  const [columns, hiddenColumns] = values;
8494
8205
  this._hiddenColumns = hiddenColumns;
8495
- this.columns = ArrayUtil.flatten(columns, 'columns', true).filter(_ => this._hiddenColumns.indexOf(_.name) < 0);
8206
+ this.columns = ArrayUtil.flatten(columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
8496
8207
  this._cdr.markForCheck();
8497
8208
  });
8498
- this._svc.displayData.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
8209
+ this._svc.displayData.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
8499
8210
  this.data = _;
8500
8211
  this._cdr.markForCheck();
8501
8212
  this.viewport?.checkViewportSize();
8502
8213
  });
8503
- this._svc.dict.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
8214
+ this._svc.dict.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
8504
8215
  this.dict = _;
8505
8216
  this._cdr.markForCheck();
8506
8217
  });
8507
- this._svc.scrollIndex
8508
- .pipe(takeWhile(() => this._alive))
8509
- .subscribe(async (index) => {
8218
+ this._svc.scrollIndex.pipe(takeWhile(() => this._alive)).subscribe(async (index) => {
8510
8219
  if (this.viewport) {
8511
8220
  this.viewport.scrollToIndex(index, 'auto');
8512
8221
  }
@@ -8516,7 +8225,7 @@ class TableBodyComponent {
8516
8225
  }
8517
8226
  this._cdr.markForCheck();
8518
8227
  });
8519
- this._svc.activeRow.pipe(takeWhile(_ => this._alive)).subscribe(async (_) => {
8228
+ this._svc.activeRow.pipe(takeWhile((_) => this._alive)).subscribe(async (_) => {
8520
8229
  this.activeRow = _;
8521
8230
  this._cdr.markForCheck();
8522
8231
  });
@@ -8560,7 +8269,7 @@ class TableBodyComponent {
8560
8269
  this.scrollChange.emit(event);
8561
8270
  }
8562
8271
  addResizeObserver() {
8563
- this._obs = new ResizeObserver(_ => {
8272
+ this._obs = new ResizeObserver((_) => {
8564
8273
  this.viewport?.checkViewportSize();
8565
8274
  });
8566
8275
  this._obs.observe(this._elementRef.nativeElement);
@@ -8576,17 +8285,13 @@ class TableBodyComponent {
8576
8285
  }, 0);
8577
8286
  }
8578
8287
  getMin(columnName) {
8579
- return this.data?.reduce((accum, current) => accum != null && accum <= current.data[columnName]
8580
- ? accum
8581
- : current.data[columnName], null);
8288
+ return this.data?.reduce((accum, current) => accum != null && accum <= current.data[columnName] ? accum : current.data[columnName], null);
8582
8289
  }
8583
8290
  getMax(columnName) {
8584
- return this.data?.reduce((accum, current) => accum != null && accum >= current.data[columnName]
8585
- ? accum
8586
- : current.data[columnName], null);
8291
+ return this.data?.reduce((accum, current) => (accum != null && accum >= current.data[columnName] ? accum : current.data[columnName]), null);
8587
8292
  }
8588
8293
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, deps: [{ token: TableService }, { token: i0.ElementRef }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8589
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass", trackRow: "trackRow", trackColumns: "trackColumns" }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n [showScrollbars]=\"true\"\n >\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\">\n <ng-container\n *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\">\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\"\n style=\"position: absolute; top:0; bottom:16px;left:0;right:0;\"\n >\n <ng-content></ng-content>\n </div>\n }\n @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n }\n @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow;\"></ng-container>\n </div>\n </teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\">\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) {\n @if (aggregate) {\n <div class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n }\n</ng-template>\n<ng-template #emptyRow>\n <div class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8294
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableBodyComponent, isStandalone: true, selector: "teta-table-body", inputs: { virtual: "virtual", activeRow: "activeRow", selectedRows: "selectedRows", additionalComponent: "additionalComponent", aggregate: "aggregate", selectType: "selectType", rowClass: "rowClass", trackRow: "trackRow", trackColumns: "trackColumns" }, outputs: { scrollChange: "scrollChange" }, host: { properties: { "class.table-body": "this.tableBodyClass" } }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row\n class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SelectionCellComponent, selector: "teta-selection-cell", inputs: ["row"] }, { kind: "component", type: CellComponent, selector: "teta-cell", inputs: ["column", "filterOptions", "dict", "row"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NumberPipe, name: "tetaNumber" }, { kind: "component", type: TableRowComponent, selector: "teta-table-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8590
8295
  }
8591
8296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableBodyComponent, decorators: [{
8592
8297
  type: Component,
@@ -8605,7 +8310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8605
8310
  AsyncPipe,
8606
8311
  NumberPipe,
8607
8312
  TableRowComponent,
8608
- ], template: "@if (virtual && data.length > 0) {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n [showScrollbars]=\"true\"\n >\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\">\n <ng-container\n *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\">\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\"\n style=\"position: absolute; top:0; bottom:16px;left:0;right:0;\"\n >\n <ng-content></ng-content>\n </div>\n }\n @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n }\n @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow;\"></ng-container>\n </div>\n </teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\">\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell\n [row]=\"row.data\"\n style=\"width: 28px;\"></teta-selection-cell>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) {\n @if (aggregate) {\n <div class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n @if (locked.length > 0) {\n <div class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n >\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n }\n @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\"\n >\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n }\n }\n</ng-template>\n<ng-template #emptyRow>\n <div class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n </div>\n</ng-template>\n" }]
8313
+ ], template: "@if (virtual && data.length > 0) {\n<teta-scrollable class=\"table-body-container\" style=\"padding-bottom: 12px\" [showScrollbars]=\"true\">\n <cdk-virtual-scroll-viewport\n tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\"\n >\n <ng-container *cdkVirtualFor=\"let row of data; templateCacheSize: 0; let rowIndex = index; trackBy: trackTableRow\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable\n class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n [showScrollbars]=\"true\"\n (scroll)=\"emitScroll($event)\"\n>\n <div class=\"table-body-container\">\n @if (!data?.length) {\n <div class=\"column column_auto\" style=\"position: absolute; top: 0; bottom: 16px; left: 0; right: 0\">\n <ng-content></ng-content>\n </div>\n } @for (row of data; track trackTableRow(rowIndex, row); let rowIndex = $index) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { row: row, rowIndex: rowIndex }\"></ng-container>\n } @if (aggregate) {\n <ng-container *ngTemplateOutlet=\"aggTemplate\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"emptyRow\"></ng-container>\n </div>\n</teta-scrollable>\n}\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <!-- <div class=\"table-row\"-->\n <!-- ngForm-->\n <!-- (click)=\"setActiveRow(row.data, $event)\"-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [class.table-row_odd]=\"rowIndex % 2 === 1\"-->\n <!-- [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"-->\n <!-- [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"-->\n <!-- [style.flex-grow]=\"totalFlex\"-->\n <!-- [style.flex-basis.px]=\"totalWidth\"-->\n <!-- [style.min-width.px]=\"totalWidth\">-->\n <!-- @if (locked.length > 0) {-->\n <!-- <div class=\"table-row_locked\"-->\n <!-- [style.flex-grow]=\"lockedFlex\"-->\n <!-- [style.flex-basis.px]=\"lockedWidth\"-->\n <!-- [style.min-width.px]=\"lockedWidth\"-->\n <!-- [style.zIndex]=\"row.data === activeRow ? 2 : 1\">-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <!-- }-->\n <!-- @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {-->\n <!-- <teta-selection-cell-->\n <!-- [row]=\"row.data\"-->\n <!-- style=\"width: 28px;\"></teta-selection-cell>-->\n <!-- }-->\n <!-- @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {-->\n <!-- <teta-cell-->\n <!-- [attr.data-row]=\"rowIndex\"-->\n <!-- [attr.data-column]=\"column.name\"-->\n <!-- [column]=\"column\"-->\n <!-- [filterOptions]=\"dict?dict[column.name]:[]\"-->\n <!-- [dict]=\"dict\"-->\n <!-- [row]=\"row\"-->\n <!-- [ngClass]=\"column.cellClass\"-->\n <!-- [attr.tabindex]=\"0\"-->\n <!-- [style.flex-grow]=\"column.flex\"-->\n <!-- [style.flex-basis.px]=\"column.width\"-->\n <!-- ></teta-cell>-->\n <!-- }-->\n <!-- </div>-->\n <teta-table-row\n class=\"table-row\"\n ngForm\n [row]=\"row\"\n (click)=\"setActiveRow(row.data, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row.data, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row.data) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row.data === activeRow ? 2 : 1\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <teta-selection-cell [row]=\"row.data\" style=\"width: 28px\"></teta-selection-cell>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <teta-cell\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict ? dict[column.name] : []\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n }\n </teta-table-row>\n</ng-template>\n\n<ng-template #aggTemplate>\n @if (locale | async; as loc) { @if (aggregate) {\n <div\n class=\"table-row\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n >\n @if (locked.length > 0) {\n <div\n class=\"table-row_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n >\n @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of locked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } @if (selectType === selectTypeEnum.checkBox && locked.length < 1) {\n <div class=\"cell align-center justify-content-center\" style=\"width: 28px\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n } @for (column of unlocked; track trackColumns(colIndex, column); let colIndex = $index) {\n <div\n class=\"cell cell-component aggregate-cell\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n >\n @if (column.aggregate !== aggregationType.none) {\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{ loc[getAggregateText(column)] }}:\n {{ getAggregateValue(column) | tetaNumber : 2 }}\n </span>\n }\n </div>\n }\n </div>\n } }\n</ng-template>\n<ng-template #emptyRow>\n <div\n class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\"\n ></div>\n</ng-template>\n" }]
8609
8314
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ElementRef }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { virtual: [{
8610
8315
  type: Input
8611
8316
  }], activeRow: [{
@@ -8667,7 +8372,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
8667
8372
  this._cdr = _cdr;
8668
8373
  this._click = _click;
8669
8374
  this.autoCloseIgnore = [];
8670
- this.scrollListener = event => {
8375
+ this.scrollListener = (event) => {
8671
8376
  if (this._open &&
8672
8377
  this._componentRef &&
8673
8378
  !this._componentRef.location.nativeElement.contains(event.target) &&
@@ -8687,8 +8392,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
8687
8392
  }
8688
8393
  }
8689
8394
  click(event) {
8690
- if (this._componentRef &&
8691
- DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
8395
+ if (this._componentRef && DomUtil.clickedInside(this._componentRef.location.nativeElement, event)) {
8692
8396
  event.preventDefault();
8693
8397
  event.stopPropagation();
8694
8398
  }
@@ -8729,10 +8433,7 @@ class ContextMenuDirective extends DynamicContentBaseDirective {
8729
8433
  }
8730
8434
  this._eventPoint = event;
8731
8435
  this._componentRef = this.createContentRef();
8732
- this._componentRef.instance.className = [
8733
- ...ArrayUtil.asArray(this.className),
8734
- 'context-menu',
8735
- ];
8436
+ this._componentRef.instance.className = [...ArrayUtil.asArray(this.className), 'context-menu'];
8736
8437
  this.openChange.emit(true);
8737
8438
  }
8738
8439
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ContextMenuDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: DynamicComponentService }, { token: i0.Injector }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: ClickService }], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -8838,27 +8539,33 @@ class TableUtil {
8838
8539
  static filterDate(data, filter) {
8839
8540
  const filterDate = (row) => {
8840
8541
  const item = row;
8841
- return (filter.value.lessThan === null || filter.value.lessThan === undefined
8542
+ return ((filter.value.lessThan === null || filter.value.lessThan === undefined
8842
8543
  ? true
8843
8544
  : filter.value.lessThan?.getTime() >= item[filter.field]?.getTime()) &&
8844
8545
  (filter.value.greaterThan === null || filter.value.greaterThan === undefined
8845
8546
  ? true
8846
- : filter.value.greaterThan?.getTime() <= item[filter.field]?.getTime());
8547
+ : filter.value.greaterThan?.getTime() <= item[filter.field]?.getTime()));
8847
8548
  };
8848
8549
  return data.filter(filterDate);
8849
8550
  }
8850
8551
  static filterNumber(data, filter) {
8851
8552
  const filterNumber = (row) => {
8852
8553
  const item = row;
8853
- return (filter.value.lessThan === null || filter.value.lessThan === undefined || filter.value.lessThan?.toString() === ''
8554
+ return ((filter.value.lessThan === null ||
8555
+ filter.value.lessThan === undefined ||
8556
+ filter.value.lessThan?.toString() === ''
8854
8557
  ? true
8855
8558
  : filter.value.lessThan >= item[filter.field]) &&
8856
- (filter.value.greaterThan === null || filter.value.greaterThan === undefined || filter.value.greaterThan?.toString() === ''
8559
+ (filter.value.greaterThan === null ||
8560
+ filter.value.greaterThan === undefined ||
8561
+ filter.value.greaterThan?.toString() === ''
8857
8562
  ? true
8858
8563
  : filter.value.greaterThan <= item[filter.field]) &&
8859
- (filter.value.equalsTo === null || filter.value.equalsTo === undefined || filter.value.equalsTo?.toString() === ''
8564
+ (filter.value.equalsTo === null ||
8565
+ filter.value.equalsTo === undefined ||
8566
+ filter.value.equalsTo?.toString() === ''
8860
8567
  ? true
8861
- : filter.value.equalsTo === item[filter.field]);
8568
+ : filter.value.equalsTo === item[filter.field]));
8862
8569
  };
8863
8570
  return data.filter(filterNumber);
8864
8571
  }
@@ -8880,11 +8587,11 @@ class TableUtil {
8880
8587
  return [...res];
8881
8588
  }
8882
8589
  static desc(field) {
8883
- const res = (a, b) => a[field] > b[field] ? -1 : 1;
8590
+ const res = (a, b) => (a[field] > b[field] ? -1 : 1);
8884
8591
  return res;
8885
8592
  }
8886
8593
  static asc(field) {
8887
- const res = (a, b) => a[field] < b[field] ? -1 : 1;
8594
+ const res = (a, b) => (a[field] < b[field] ? -1 : 1);
8888
8595
  return res;
8889
8596
  }
8890
8597
  }
@@ -8940,17 +8647,16 @@ class TreeItemToggleComponent {
8940
8647
  }
8941
8648
  ngOnInit() {
8942
8649
  this.open = this.service.openItems.pipe(map((_) => {
8943
- const found = _?.find((x) => this.service.compareItems(x) ===
8944
- this.service.compareItems(this.item));
8650
+ const found = _?.find((x) => this.service.compareItems(x) === this.service.compareItems(this.item));
8945
8651
  return found != null;
8946
8652
  }));
8947
8653
  }
8948
8654
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemToggleComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
8949
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemToggleComponent, isStandalone: true, selector: "teta-tree-item-toggle", inputs: { item: "item" }, ngImport: i0, template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\"\n class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8655
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemToggleComponent, isStandalone: true, selector: "teta-tree-item-toggle", inputs: { item: "item" }, ngImport: i0, template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\" class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8950
8656
  }
8951
8657
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemToggleComponent, decorators: [{
8952
8658
  type: Component,
8953
- args: [{ selector: 'teta-tree-item-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, AsyncPipe], template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\"\n class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"] }]
8659
+ args: [{ selector: 'teta-tree-item-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [IconComponent, AsyncPipe], template: "<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\" class=\"tree__icon\"></teta-icon>\n", styles: [":host{display:inline-flex;align-items:center}\n"] }]
8954
8660
  }], ctorParameters: () => [{ type: TreeService }, { type: i0.ChangeDetectorRef }], propDecorators: { item: [{
8955
8661
  type: Input
8956
8662
  }] } });
@@ -8969,7 +8675,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8969
8675
  type: Directive,
8970
8676
  args: [{
8971
8677
  selector: '[tetaTemplate]',
8972
- standalone: true
8678
+ standalone: true,
8973
8679
  }]
8974
8680
  }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { id: [{
8975
8681
  type: Input,
@@ -8981,8 +8687,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
8981
8687
  */
8982
8688
  class TreeItemComponent {
8983
8689
  get computedDepth() {
8984
- return (this.depth +
8985
- (this.item[this.childNodeName]?.length > 0 ? 0 : this.childPadding ? 2 : 1));
8690
+ return this.depth + (this.item[this.childNodeName]?.length > 0 ? 0 : this.childPadding ? 2 : 1);
8986
8691
  }
8987
8692
  constructor(service, _cdr) {
8988
8693
  this.service = service;
@@ -8999,27 +8704,20 @@ class TreeItemComponent {
8999
8704
  this.service.openItem(this.item);
9000
8705
  }
9001
8706
  ngOnInit() {
9002
- this.service.openItems
9003
- .pipe(takeWhile((_) => this._alive))
9004
- .subscribe((_) => {
9005
- const found = _?.find((x) => this.service.compareItems(x) ===
9006
- this.service.compareItems(this.item));
8707
+ this.service.openItems.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
8708
+ const found = _?.find((x) => this.service.compareItems(x) === this.service.compareItems(this.item));
9007
8709
  this.itemIsOpen = found != null;
9008
8710
  this._cdr.markForCheck();
9009
8711
  });
9010
8712
  }
9011
- ngOnChanges(changes) {
9012
- }
8713
+ ngOnChanges(changes) { }
9013
8714
  ngOnDestroy() {
9014
8715
  this._alive = false;
9015
8716
  }
9016
8717
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeItemComponent, deps: [{ token: TreeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9017
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemComponent, isStandalone: true, selector: "teta-tree-item", inputs: { item: "item", depth: "depth", padding: "padding", childNodeName: "childNodeName", template: "template", childPadding: "childPadding" }, host: { properties: { "class.tree__item-container": "this.treeItemClass", "@treeItemInstance": "this.treeItemInstance" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"template; context: {$implicit: item, item: item, open: itemIsOpen, service: service, depth: depth}\"></ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
8718
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TreeItemComponent, isStandalone: true, selector: "teta-tree-item", inputs: { item: "item", depth: "depth", padding: "padding", childNodeName: "childNodeName", template: "template", childPadding: "childPadding" }, host: { properties: { "class.tree__item-container": "this.treeItemClass", "@treeItemInstance": "this.treeItemInstance" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { $implicit: item, item: item, open: itemIsOpen, service: service, depth: depth }\n \"\n ></ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
9018
8719
  trigger('treeItemInstance', [
9019
- transition('void => *', [
9020
- style({ opacity: '0' }),
9021
- animate(200, style({ opacity: '1' })),
9022
- ]),
8720
+ transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
9023
8721
  // transition('* => void', [animate(200, style({opacity: '0'}))]),
9024
8722
  ]),
9025
8723
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -9028,13 +8726,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9028
8726
  type: Component,
9029
8727
  args: [{ selector: 'teta-tree-item', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
9030
8728
  trigger('treeItemInstance', [
9031
- transition('void => *', [
9032
- style({ opacity: '0' }),
9033
- animate(200, style({ opacity: '1' })),
9034
- ]),
8729
+ transition('void => *', [style({ opacity: '0' }), animate(200, style({ opacity: '1' }))]),
9035
8730
  // transition('* => void', [animate(200, style({opacity: '0'}))]),
9036
8731
  ]),
9037
- ], standalone: true, imports: [NgClass, NgTemplateOutlet], template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"template; context: {$implicit: item, item: item, open: itemIsOpen, service: service, depth: depth}\"></ng-container>\n</div>\n" }]
8732
+ ], standalone: true, imports: [NgClass, NgTemplateOutlet], template: "<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { $implicit: item, item: item, open: itemIsOpen, service: service, depth: depth }\n \"\n ></ng-container>\n</div>\n" }]
9038
8733
  }], ctorParameters: () => [{ type: TreeService }, { type: i0.ChangeDetectorRef }], propDecorators: { item: [{
9039
8734
  type: Input
9040
8735
  }], depth: [{
@@ -9129,8 +8824,8 @@ class TreeComponent {
9129
8824
  data?.forEach((item) => {
9130
8825
  item['level'] = level;
9131
8826
  result.push(item);
9132
- if (item[this.childNodeName]?.length > 0
9133
- && this._openItems?.find((openItem) => this.compareItems(openItem) === this.compareItems(item))) {
8827
+ if (item[this.childNodeName]?.length > 0 &&
8828
+ this._openItems?.find((openItem) => this.compareItems(openItem) === this.compareItems(item))) {
9134
8829
  result.push(...this.getDisplayData(item[this.childNodeName], level + 1));
9135
8830
  }
9136
8831
  });
@@ -9147,7 +8842,7 @@ class TreeComponent {
9147
8842
  this._obs.disconnect();
9148
8843
  }
9149
8844
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, deps: [{ token: TreeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
9150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n }\n </teta-scrollable>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8845
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TreeComponent, isStandalone: true, selector: "teta-tree", inputs: { data: "data", padding: "padding", childNodeName: "childNodeName", virtual: "virtual", height: "height", openItems: "openItems", compareItems: "compareItems" }, outputs: { service: "service", openItemsChange: "openItemsChange" }, host: { properties: { "class.tree": "this.treeClass" } }, providers: [TreeService], queries: [{ propertyName: "template", first: true, predicate: TetaTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ScrollableDirective, selector: "[tetaScrollable]" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: TreeItemComponent, selector: "teta-tree-item", inputs: ["item", "depth", "padding", "childNodeName", "template", "childPadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9151
8846
  }
9152
8847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TreeComponent, decorators: [{
9153
8848
  type: Component,
@@ -9158,7 +8853,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9158
8853
  ScrollableDirective,
9159
8854
  CdkVirtualForOf,
9160
8855
  TreeItemComponent,
9161
- ], template: "@if (virtual) {\n <teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n </teta-scrollable>\n} @else {\n <teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n }\n </teta-scrollable>\n}\n" }]
8856
+ ], template: "@if (virtual) {\n<teta-scrollable class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable class=\"table-body-container\" [itemSize]=\"height\">\n <teta-tree-item\n *cdkVirtualFor=\"let item of displayData; templateCacheSize: 0; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n} @else {\n<teta-scrollable class=\"column column_auto\" direction=\"column\">\n @for (item of displayData; track trackRow($index, item)) {\n <teta-tree-item\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"\n ></teta-tree-item>\n }\n</teta-scrollable>\n}\n" }]
9162
8857
  }], ctorParameters: () => [{ type: TreeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { data: [{
9163
8858
  type: Input
9164
8859
  }], padding: [{
@@ -9191,7 +8886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9191
8886
  class VisibilityDropdownTabComponent {
9192
8887
  get openItems() {
9193
8888
  if (this._openItems == null) {
9194
- this._openItems = this.columns.map(_ => _);
8889
+ this._openItems = this.columns.map((_) => _);
9195
8890
  }
9196
8891
  return this._openItems;
9197
8892
  }
@@ -9216,7 +8911,7 @@ class VisibilityDropdownTabComponent {
9216
8911
  this.hideColumn(column, hiddenColumns);
9217
8912
  }
9218
8913
  if (column.columns) {
9219
- column.columns.forEach(x => {
8914
+ column.columns.forEach((x) => {
9220
8915
  this.setChildrenVisibility(x, visible, hiddenColumns);
9221
8916
  });
9222
8917
  }
@@ -9231,8 +8926,8 @@ class VisibilityDropdownTabComponent {
9231
8926
  };
9232
8927
  this.locale = this._config.locale;
9233
8928
  this._svc.hiddenColumns
9234
- .pipe(takeWhile(_ => this._alive), map(_ => [..._]))
9235
- .subscribe(_ => {
8929
+ .pipe(takeWhile((_) => this._alive), map((_) => [..._]))
8930
+ .subscribe((_) => {
9236
8931
  this.hiddenColumns = _;
9237
8932
  });
9238
8933
  }
@@ -9244,7 +8939,7 @@ class VisibilityDropdownTabComponent {
9244
8939
  return true;
9245
8940
  }
9246
8941
  const columns = ArrayUtil.flatten(this.columns, 'columns');
9247
- const notHidden = columns.find(_ => this.hiddenColumns.indexOf(_.name) < 0);
8942
+ const notHidden = columns.find((_) => this.hiddenColumns.indexOf(_.name) < 0);
9248
8943
  if (!notHidden) {
9249
8944
  return false;
9250
8945
  }
@@ -9255,7 +8950,7 @@ class VisibilityDropdownTabComponent {
9255
8950
  this.hiddenColumns = [];
9256
8951
  }
9257
8952
  else {
9258
- this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map(_ => _.name);
8953
+ this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map((_) => _.name);
9259
8954
  }
9260
8955
  }
9261
8956
  setColumnsVisibility() {
@@ -9277,7 +8972,7 @@ class VisibilityDropdownTabComponent {
9277
8972
  if (parent &&
9278
8973
  !this.columnIsHidden(parent) &&
9279
8974
  parent.columns &&
9280
- parent.columns.every(_ => this.columnIsHidden(_))) {
8975
+ parent.columns.every((_) => this.columnIsHidden(_))) {
9281
8976
  this.hideColumn(parent, hiddenColumns);
9282
8977
  this.hideParents(parent, hiddenColumns);
9283
8978
  }
@@ -9289,13 +8984,13 @@ class VisibilityDropdownTabComponent {
9289
8984
  hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);
9290
8985
  }
9291
8986
  findParentColumn(column, columns) {
9292
- return ArrayUtil.findRecursive(columns, iterableNode => iterableNode.columns?.indexOf(column) >= 0, 'columns');
8987
+ return ArrayUtil.findRecursive(columns, (iterableNode) => iterableNode.columns?.indexOf(column) >= 0, 'columns');
9293
8988
  }
9294
8989
  ngOnDestroy() {
9295
8990
  this._alive = false;
9296
8991
  }
9297
8992
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: VisibilityDropdownTabComponent, isStandalone: true, selector: "teta-visibility-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "@if (locale | async; as loc) {\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 {{loc.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\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\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1;\"\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 </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n {{loc.apply}}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: TreeComponent, selector: "teta-tree", inputs: ["data", "padding", "childNodeName", "virtual", "height", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { kind: "directive", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }, { kind: "component", type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8993
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: VisibilityDropdownTabComponent, isStandalone: true, selector: "teta-visibility-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n</div>\n<div class=\"list-divider\"></div>\n<teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\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</teta-scrollable>\n<teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: TreeComponent, selector: "teta-tree", inputs: ["data", "padding", "childNodeName", "virtual", "height", "openItems", "compareItems"], outputs: ["service", "openItemsChange"] }, { kind: "directive", type: TetaTemplateDirective, selector: "[tetaTemplate]", inputs: ["tetaTemplate"] }, { kind: "component", type: TreeItemToggleComponent, selector: "teta-tree-item-toggle", inputs: ["item"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9299
8994
  }
9300
8995
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: VisibilityDropdownTabComponent, decorators: [{
9301
8996
  type: Component,
@@ -9309,7 +9004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9309
9004
  ToolbarComponent,
9310
9005
  ButtonComponent,
9311
9006
  AsyncPipe,
9312
- ], template: "@if (locale | async; as loc) {\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 {{loc.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\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\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1;\"\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 </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n {{loc.apply}}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"] }]
9007
+ ], template: "@if (locale | async; as loc) {\n<div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\"\n >\n {{ loc.all }}\n </teta-checkbox>\n</div>\n<div class=\"list-divider\"></div>\n<teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree\n [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\"\n >\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n @if (item.columns?.length > 0) {\n <teta-tree-item-toggle [item]=\"item\"></teta-tree-item-toggle>\n }\n <teta-checkbox\n style=\"flex-grow: 1\"\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</teta-scrollable>\n<teta-toolbar class=\"justify-content-end\">\n <button\n type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\"\n >\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;min-height:0}\n"] }]
9313
9008
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9314
9009
  type: Input
9315
9010
  }], column: [{
@@ -9344,14 +9039,13 @@ class FilterDropdownTabComponent {
9344
9039
  this.close();
9345
9040
  this._cdr.markForCheck();
9346
9041
  }
9347
- ngOnInit() {
9348
- }
9042
+ ngOnInit() { }
9349
9043
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9350
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) {\n @if (filterOptions | async; as options) {\n <teta-filter-host [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"></teta-filter-host>\n }\n <teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{loc.clear}}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{loc.apply}}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: FilterDropdownTabComponent, isStandalone: true, selector: "teta-filter-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close" }, host: { listeners: { "keydown.enter": "enter()" } }, ngImport: i0, template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"], dependencies: [{ kind: "component", type: FilterHostComponent, selector: "teta-filter-host", inputs: ["column", "state", "data", "filterOptions"], outputs: ["filterChanged"] }, { kind: "component", type: ToolbarComponent, selector: "teta-toolbar", inputs: ["palette", "class"] }, { kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9351
9045
  }
9352
9046
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FilterDropdownTabComponent, decorators: [{
9353
9047
  type: Component,
9354
- args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) {\n @if (filterOptions | async; as options) {\n <teta-filter-host [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"></teta-filter-host>\n }\n <teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{loc.clear}}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{loc.apply}}\n </button>\n </teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"] }]
9048
+ args: [{ selector: 'teta-filter-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FilterHostComponent, ToolbarComponent, ButtonComponent, IconComponent, AsyncPipe], template: "@if (locale | async; as loc) { @if (filterOptions | async; as options) {\n<teta-filter-host\n [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n [filterOptions]=\"options[column.name]\"\n></teta-filter-host>\n}\n<teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{ loc.clear }}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\" [palette]=\"'white'\"></teta-icon>\n {{ loc.apply }}\n </button>\n</teta-toolbar>\n}\n", styles: [":host{display:flex;flex-direction:column;min-height:0;min-width:0}\n"] }]
9355
9049
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9356
9050
  type: Input
9357
9051
  }], column: [{
@@ -9431,14 +9125,13 @@ class MainDropdownTabComponent {
9431
9125
  autosizeAllColumns() {
9432
9126
  this._svc.autosizeAllColumns(this.headCellElementRef.nativeElement);
9433
9127
  }
9434
- ngOnInit() {
9435
- }
9128
+ ngOnInit() { }
9436
9129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9437
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n <div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n }\n @if (column.sortable) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n @if (hasSortedColumns()) {\n @if (sortParam) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n }\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n }\n }\n @if (hasFilteredColumns()) {\n @if (filtered) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n }\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MainDropdownTabComponent, isStandalone: true, selector: "teta-main-dropdown-tab", inputs: { columns: "columns", column: "column", state: "state", data: "data", close: "close", headCellElementRef: "headCellElementRef" }, ngImport: i0, template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9438
9131
  }
9439
9132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MainDropdownTabComponent, decorators: [{
9440
9133
  type: Component,
9441
- args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n <div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n }\n @if (column.sortable) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n @if (hasSortedColumns()) {\n @if (sortParam) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n }\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n }\n }\n @if (hasFilteredColumns()) {\n @if (filtered) {\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n }\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
9134
+ args: [{ selector: 'teta-main-dropdown-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe], template: "@if (locale | async; as loc) {\n<div class=\"list column_auto\">\n @if (!parent) {\n <div class=\"list-item list-item_interactive\" (click)=\"pinColumn()\">\n {{ column.locked ? loc.unpin : loc.pin }}\n </div>\n <div class=\"list-divider\"></div>\n } @if (column.sortable) {\n <div class=\"list-item list-item_interactive\" (click)=\"sortAsc($event)\">\n {{ loc.sortAsc }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"sortDesc($event)\">\n {{ loc.sortDesc }}\n </div>\n @if (hasSortedColumns()) { @if (sortParam) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearSort()\">\n {{ loc.clearSort }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllSort()\">\n {{ loc.clearAllSort }}\n </div>\n <div class=\"list-divider\"></div>\n } } @if (hasFilteredColumns()) { @if (filtered) {\n <div class=\"list-item list-item_interactive\" (click)=\"clearFilter()\">\n {{ loc.clearFilter }}\n </div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"clearAllFilters()\">\n {{ loc.clearAllFilters }}\n </div>\n <div class=\"list-divider\"></div>\n }\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{ loc.autosizeColumn }}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{ loc.autosizeAll }}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{ loc.resetColumnsSize }}\n </div>\n</div>\n}\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
9442
9135
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9443
9136
  type: Input
9444
9137
  }], column: [{
@@ -9533,7 +9226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9533
9226
  type: Directive,
9534
9227
  args: [{
9535
9228
  selector: '[tetaTabContent]',
9536
- standalone: true
9229
+ standalone: true,
9537
9230
  }]
9538
9231
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
9539
9232
 
@@ -9548,7 +9241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
9548
9241
  type: Directive,
9549
9242
  args: [{
9550
9243
  selector: '[tetaTabTitle]',
9551
- standalone: true
9244
+ standalone: true,
9552
9245
  }]
9553
9246
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
9554
9247
 
@@ -9683,18 +9376,11 @@ class HeadCellDropdownComponent {
9683
9376
  return index;
9684
9377
  }
9685
9378
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, deps: [{ token: TableService }, { token: TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9686
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellDropdownComponent, isStandalone: true, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\"></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"], dependencies: [{ kind: "component", type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "direction", "size", "destroyOnHide"], outputs: ["tabChange"] }, { kind: "component", type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { kind: "directive", type: TabTitleDirective, selector: "[tetaTabTitle]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: TabContentDirective, selector: "[tetaTabContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9379
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: HeadCellDropdownComponent, isStandalone: true, selector: "teta-head-cell-dropdown", inputs: { columns: "columns", column: "column", state: "state", data: "data", tabTemplates: "tabTemplates", dropDownOpen: "dropDownOpen" }, outputs: { dropDownOpenChange: "dropDownOpenChange" }, ngImport: i0, template: "@if (dropDownOpen) {\n<teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) { @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n } }\n</teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"], dependencies: [{ kind: "component", type: TabsComponent, selector: "teta-tabs", inputs: ["activeId", "direction", "size", "destroyOnHide"], outputs: ["tabChange"] }, { kind: "component", type: TabComponent, selector: "teta-tab", inputs: ["id", "title", "disabled"] }, { kind: "directive", type: TabTitleDirective, selector: "[tetaTabTitle]" }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: TabContentDirective, selector: "[tetaTabContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9687
9380
  }
9688
9381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellDropdownComponent, decorators: [{
9689
9382
  type: Component,
9690
- args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
9691
- TabsComponent,
9692
- TabComponent,
9693
- TabTitleDirective,
9694
- IconComponent,
9695
- TabContentDirective,
9696
- NgTemplateOutlet,
9697
- ], template: "@if (dropDownOpen) {\n <teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) {\n @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\"></ng-container>\n </ng-template>\n </teta-tab>\n }\n }\n </teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
9383
+ args: [{ selector: 'teta-head-cell-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [TabsComponent, TabComponent, TabTitleDirective, IconComponent, TabContentDirective, NgTemplateOutlet], template: "@if (dropDownOpen) {\n<teta-tabs class=\"column_auto\">\n @for (tab of tabTemplates; track trackIndex($index)) { @if (tab.showTab(column)) {\n <teta-tab>\n <ng-template tetaTabTitle>\n @if (tab.icon) {\n <teta-icon [name]=\"tab.icon\" [palette]=\"'text'\"></teta-icon>\n }\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"\n tab.template;\n context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\n \"\n ></ng-container>\n </ng-template>\n </teta-tab>\n } }\n</teta-tabs>\n}\n", styles: [":host{display:flex;flex-grow:1;min-height:0;min-width:250px}\n"] }]
9698
9384
  }], ctorParameters: () => [{ type: TableService }, { type: TetaConfigService }, { type: i0.ChangeDetectorRef }], propDecorators: { columns: [{
9699
9385
  type: Input
9700
9386
  }], column: [{
@@ -9719,7 +9405,7 @@ class HeadCellComponentBase {
9719
9405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: HeadCellComponentBase, decorators: [{
9720
9406
  type: Component,
9721
9407
  args: [{
9722
- template: ''
9408
+ template: '',
9723
9409
  }]
9724
9410
  }], propDecorators: { column: [{
9725
9411
  type: HostBinding,
@@ -9752,14 +9438,13 @@ class DefaultHeadCellComponent extends HeadCellComponentBase {
9752
9438
  super();
9753
9439
  this._cdr = _cdr;
9754
9440
  }
9755
- ngOnInit() {
9756
- }
9441
+ ngOnInit() { }
9757
9442
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9758
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">\n [{{column.unit}}]\n </div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9443
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DefaultHeadCellComponent, isStandalone: true, selector: "teta-default-head-cell", inputs: { column: "column", columns: "columns", data: "data" }, usesInheritance: true, ngImport: i0, template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"], dependencies: [{ kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay", "viewType", "overflownOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9759
9444
  }
9760
9445
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DefaultHeadCellComponent, decorators: [{
9761
9446
  type: Component,
9762
- args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">\n [{{column.unit}}]\n </div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"] }]
9447
+ args: [{ selector: 'teta-default-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HintDirective], template: "<div class=\"column column_auto align-start justify-content-center\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{ column.caption }}\n </div>\n @if (column.unit) {\n <div class=\"table-head__cell__text font-caption color-text-70\">[{{ column.unit }}]</div>\n }\n</div>\n", styles: [":host{display:flex;min-width:0;padding:6px 8px;flex-grow:1}\n"] }]
9763
9448
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { column: [{
9764
9449
  type: Input
9765
9450
  }], columns: [{
@@ -9803,8 +9488,7 @@ class HeadCellHostComponent {
9803
9488
  if (!HeadCellComponentBase.isPrototypeOf(this.column.headCellComponent)) {
9804
9489
  this.column.headCellComponent = DefaultHeadCellComponent;
9805
9490
  }
9806
- this.componentRef =
9807
- this.viewContainerRef.createComponent(this.column.headCellComponent);
9491
+ this.componentRef = this.viewContainerRef.createComponent(this.column.headCellComponent);
9808
9492
  this.componentRef.instance.column = this.column;
9809
9493
  this.componentRef.instance.columns = this.columns;
9810
9494
  this.componentRef.instance.data = this.data;
@@ -10015,16 +9699,14 @@ class TableHeadGroupComponent {
10015
9699
  }
10016
9700
  get flexGrow() {
10017
9701
  if (this.column?.columns?.length > 0) {
10018
- const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)
10019
- .filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
9702
+ const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
10020
9703
  return flat?.reduce((prev, curr) => prev + curr.flex, 0);
10021
9704
  }
10022
9705
  return this.column.flex;
10023
9706
  }
10024
9707
  get flexBasis() {
10025
9708
  if (this.column?.columns?.length > 0) {
10026
- const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)
10027
- .filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
9709
+ const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0);
10028
9710
  return flat?.reduce((prev, curr) => prev + curr.width, 0);
10029
9711
  }
10030
9712
  return this.column.width;
@@ -10036,9 +9718,7 @@ class TableHeadGroupComponent {
10036
9718
  this._svc = _svc;
10037
9719
  this._cdr = _cdr;
10038
9720
  this._alive = true;
10039
- this._svc.hiddenColumns
10040
- .pipe(takeWhile((_) => this._alive))
10041
- .subscribe((_) => {
9721
+ this._svc.hiddenColumns.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
10042
9722
  this._hiddenColumns = _;
10043
9723
  this._cdr.markForCheck();
10044
9724
  });
@@ -10046,17 +9726,16 @@ class TableHeadGroupComponent {
10046
9726
  columnIsHidden(column) {
10047
9727
  return this._svc.columnIsHidden(column);
10048
9728
  }
10049
- ngOnInit() {
10050
- }
9729
+ ngOnInit() { }
10051
9730
  ngOnDestroy() {
10052
9731
  this._alive = false;
10053
9732
  }
10054
9733
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10055
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadGroupComponent, isStandalone: true, selector: "teta-table-head-group", inputs: { showHeadCellMenu: "showHeadCellMenu", data: "data", column: "column" }, host: { properties: { "style.flex-grow": "this.flexGrow", "style.min-width.px": "this.flexBasis", "style.flex-basis.px": "this.flexBasis" } }, ngImport: i0, template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{column.caption}}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"></teta-head-cell>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }, { kind: "component", type: HeadCellComponent, selector: "teta-head-cell", inputs: ["column", "showHeadCellMenu", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9734
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadGroupComponent, isStandalone: true, selector: "teta-table-head-group", inputs: { showHeadCellMenu: "showHeadCellMenu", data: "data", column: "column" }, host: { properties: { "style.flex-grow": "this.flexGrow", "style.min-width.px": "this.flexBasis", "style.flex-basis.px": "this.flexBasis" } }, ngImport: i0, template: "@if (column.columns && column.columns.length > 0) {\n<div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) { @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n } }\n </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @if (!columnIsHidden(column)) {\n<teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n></teta-head-cell>\n} }\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }, { kind: "component", type: HeadCellComponent, selector: "teta-head-cell", inputs: ["column", "showHeadCellMenu", "data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10056
9735
  }
10057
9736
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadGroupComponent, decorators: [{
10058
9737
  type: Component,
10059
- args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{column.caption}}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) {\n @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"></teta-table-head-group>\n }\n }\n </div>\n </div>\n}\n@if (!column.columns || column.columns.length === 0) {\n @if (!columnIsHidden(column)) {\n <teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"></teta-head-cell>\n }\n}\n" }]
9738
+ args: [{ selector: 'teta-table-head-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [HeadCellComponent], template: "@if (column.columns && column.columns.length > 0) {\n<div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{ column.caption }}\n </div>\n <div class=\"table-head__group__children\">\n @for (col of column.columns; track col) { @if (!columnIsHidden(col)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"\n ></teta-table-head-group>\n } }\n </div>\n</div>\n} @if (!column.columns || column.columns.length === 0) { @if (!columnIsHidden(column)) {\n<teta-head-cell\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n></teta-head-cell>\n} }\n" }]
10060
9739
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { showHeadCellMenu: [{
10061
9740
  type: Input
10062
9741
  }], data: [{
@@ -10093,9 +9772,7 @@ class SelectionHeadCellComponent {
10093
9772
  return this._svc.allRowsSelected();
10094
9773
  }
10095
9774
  ngOnInit() {
10096
- this._svc.selectedRows
10097
- .pipe(takeWhile((_) => this._alive))
10098
- .subscribe((_) => {
9775
+ this._svc.selectedRows.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
10099
9776
  this._cdr.markForCheck();
10100
9777
  });
10101
9778
  }
@@ -10103,11 +9780,11 @@ class SelectionHeadCellComponent {
10103
9780
  this._alive = false;
10104
9781
  }
10105
9782
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionHeadCellComponent, isStandalone: true, selector: "teta-selection-head-cell", host: { properties: { "class.table-head__group": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9783
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SelectionHeadCellComponent, isStandalone: true, selector: "teta-selection-head-cell", host: { properties: { "class.table-head__group": "this.tableCellClass" } }, ngImport: i0, template: "<teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "teta-checkbox", inputs: ["class", "palette", "noLabel", "disabled", "value", "binary", "labelPosition", "allowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10107
9784
  }
10108
9785
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SelectionHeadCellComponent, decorators: [{
10109
9786
  type: Component,
10110
- args: [{ selector: 'teta-selection-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
9787
+ args: [{ selector: 'teta-selection-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckboxComponent, FormsModule], template: "<teta-checkbox\n [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"\n></teta-checkbox>\n", styles: [":host{display:flex;align-items:center;justify-content:center}\n"] }]
10111
9788
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { tableCellClass: [{
10112
9789
  type: HostBinding,
10113
9790
  args: ['class.table-head__group']
@@ -10122,10 +9799,10 @@ class TableHeadComponent {
10122
9799
  return this._columns;
10123
9800
  }
10124
9801
  get locked() {
10125
- return this._columns.filter(_ => _.locked === true && this._hiddenColumns.indexOf(_.name) < 0);
9802
+ return this._columns.filter((_) => _.locked === true && this._hiddenColumns.indexOf(_.name) < 0);
10126
9803
  }
10127
9804
  get unlocked() {
10128
- return this._columns.filter(_ => _.locked === false && this._hiddenColumns.indexOf(_.name) < 0);
9805
+ return this._columns.filter((_) => _.locked === false && this._hiddenColumns.indexOf(_.name) < 0);
10129
9806
  }
10130
9807
  constructor(_svc, _cdr) {
10131
9808
  this._svc = _svc;
@@ -10141,23 +9818,23 @@ class TableHeadComponent {
10141
9818
  }
10142
9819
  ngOnInit() {
10143
9820
  combineLatest([this._svc.columns, this._svc.hiddenColumns])
10144
- .pipe(takeWhile(_ => this._alive))
9821
+ .pipe(takeWhile((_) => this._alive))
10145
9822
  .subscribe((values) => {
10146
9823
  const [columns, hiddenColumns] = values;
10147
9824
  this._hiddenColumns = hiddenColumns;
10148
9825
  this.columns = columns;
10149
- const locked = ArrayUtil.flatten(columns, 'columns', true).filter(_ => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
9826
+ const locked = ArrayUtil.flatten(columns, 'columns', true).filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);
10150
9827
  const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;
10151
9828
  this.lockedFlex = locked.reduce((prev, curr) => prev + curr.flex, 0);
10152
9829
  this.lockedWidth = locked.reduce((prev, curr) => prev + curr.width, startWidth);
10153
9830
  this._cdr.markForCheck();
10154
9831
  });
10155
- this._svc.state.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
9832
+ this._svc.state.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
10156
9833
  this.state = _;
10157
9834
  this._cdr.markForCheck();
10158
9835
  });
10159
- this._svc.displayData.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
10160
- this.data = _.map(_ => _.data);
9836
+ this._svc.displayData.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
9837
+ this.data = _.map((_) => _.data);
10161
9838
  this._cdr.markForCheck();
10162
9839
  });
10163
9840
  }
@@ -10165,11 +9842,11 @@ class TableHeadComponent {
10165
9842
  this._alive = false;
10166
9843
  }
10167
9844
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n <div class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell\n style=\"width: 28px;\"></teta-selection-head-cell>\n }\n @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n }\n </div>\n}\n@if (unlocked?.length) {\n @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n <teta-selection-head-cell\n style=\"width: 28px;\"></teta-selection-head-cell>\n }\n @for (column of unlocked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9845
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: TableHeadComponent, isStandalone: true, selector: "teta-table-head", inputs: { selectType: "selectType", showHeadCellMenu: "showHeadCellMenu" }, host: { properties: { "class.table-head": "this.tableHeadClass" } }, ngImport: i0, template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n", styles: [""], dependencies: [{ kind: "component", type: SelectionHeadCellComponent, selector: "teta-selection-head-cell" }, { kind: "component", type: TableHeadGroupComponent, selector: "teta-table-head-group", inputs: ["showHeadCellMenu", "data", "column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10169
9846
  }
10170
9847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableHeadComponent, decorators: [{
10171
9848
  type: Component,
10172
- args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n <div class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell\n style=\"width: 28px;\"></teta-selection-head-cell>\n }\n @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n }\n </div>\n}\n@if (unlocked?.length) {\n @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n <teta-selection-head-cell\n style=\"width: 28px;\"></teta-selection-head-cell>\n }\n @for (column of unlocked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n }\n}\n" }]
9849
+ args: [{ selector: 'teta-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SelectionHeadCellComponent, TableHeadGroupComponent], template: "@if (locked?.length) {\n<div\n class=\"table-head_locked\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n>\n @if (selectType === selectTypeEnum.checkBox) {\n <teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n } @for (column of locked; track track($index, column)) {\n <teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n ></teta-table-head-group>\n }\n</div>\n} @if (unlocked?.length) { @if (selectType === selectTypeEnum.checkBox && locked?.length < 1) {\n<teta-selection-head-cell style=\"width: 28px\"></teta-selection-head-cell>\n} @for (column of unlocked; track track($index, column)) {\n<teta-table-head-group\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"\n></teta-table-head-group>\n} }\n" }]
10173
9850
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { selectType: [{
10174
9851
  type: Input
10175
9852
  }], showHeadCellMenu: [{
@@ -10224,11 +9901,11 @@ class TableComponent {
10224
9901
  this.verticalAlign = VerticalAlign;
10225
9902
  this.align = Align;
10226
9903
  this._alive = true;
10227
- this.onScroll = event => {
9904
+ this.onScroll = (event) => {
10228
9905
  this._headElement.scrollLeft = event.target.scrollLeft;
10229
9906
  };
10230
9907
  this._svc.state
10231
- .pipe(takeWhile(() => this._alive), filter$1(state => state !== this._state))
9908
+ .pipe(takeWhile(() => this._alive), filter$1((state) => state !== this._state))
10232
9909
  .subscribe((state) => this.stateChange.next(state));
10233
9910
  this._svc.editCellStart
10234
9911
  .pipe(takeWhile(() => this._alive))
@@ -10242,21 +9919,15 @@ class TableComponent {
10242
9919
  this._svc.editRowStop
10243
9920
  .pipe(takeWhile(() => this._alive))
10244
9921
  .subscribe((item) => this.rowEditEnd.emit(this._svc.getRowByIndex(item?.row)));
10245
- this._svc.selectedRows
10246
- .pipe(takeWhile(() => this._alive))
10247
- .subscribe((items) => {
9922
+ this._svc.selectedRows.pipe(takeWhile(() => this._alive)).subscribe((items) => {
10248
9923
  this.selectedRowsList = items;
10249
9924
  this.selectedRowsChange.emit(items);
10250
9925
  });
10251
- this._svc.activeRow
10252
- .pipe(takeWhile(() => this._alive))
10253
- .subscribe((item) => {
9926
+ this._svc.activeRow.pipe(takeWhile(() => this._alive)).subscribe((item) => {
10254
9927
  this.activeRow = item;
10255
9928
  this.activeRowChange.emit(item);
10256
9929
  });
10257
- this._svc.valueChanged
10258
- .pipe(takeWhile(() => this._alive))
10259
- .subscribe((coordinates) => {
9930
+ this._svc.valueChanged.pipe(takeWhile(() => this._alive)).subscribe((coordinates) => {
10260
9931
  this.valueChange.emit(this._svc.getCellInstance(coordinates));
10261
9932
  });
10262
9933
  }
@@ -10373,8 +10044,7 @@ class TableComponent {
10373
10044
  });
10374
10045
  if (event.key && (event.key.length === 1 || event.key === 'Delete')) {
10375
10046
  const column = this._svc.getColumnByName(coordinates.column);
10376
- if (column.filterType !== FilterType.number ||
10377
- isFinite(event.key)) {
10047
+ if (column.filterType !== FilterType.number || isFinite(event.key)) {
10378
10048
  this.startEditRowOrCell({
10379
10049
  row: coordinates.row,
10380
10050
  column: coordinates.column,
@@ -10429,8 +10099,7 @@ class TableComponent {
10429
10099
  this.tableService.emit(this._svc);
10430
10100
  }
10431
10101
  ngAfterViewInit() {
10432
- this._headElement =
10433
- this._elementRef.nativeElement.querySelector('.table-head');
10102
+ this._headElement = this._elementRef.nativeElement.querySelector('.table-head');
10434
10103
  }
10435
10104
  ngOnDestroy() {
10436
10105
  this._alive = false;
@@ -10458,8 +10127,8 @@ class TableComponent {
10458
10127
  }
10459
10128
  if (Object.prototype.hasOwnProperty.call(changes, 'data')) {
10460
10129
  this._svc.setData(this.data);
10461
- this._svc.selectRows(this.data?.filter(row => {
10462
- return this.selectedRows?.some(selectedRow => this.trackRow(this._svc.getRowIndex(selectedRow), selectedRow) ===
10130
+ this._svc.selectRows(this.data?.filter((row) => {
10131
+ return this.selectedRows?.some((selectedRow) => this.trackRow(this._svc.getRowIndex(selectedRow), selectedRow) ===
10463
10132
  this.trackRow(this._svc.getRowIndex(row), row));
10464
10133
  }));
10465
10134
  }
@@ -10537,15 +10206,11 @@ class TableComponent {
10537
10206
  return null;
10538
10207
  }
10539
10208
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableComponent, deps: [{ token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
10540
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TableComponent, isStandalone: true, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", trackRow: "trackRow", trackColumns: "trackColumns", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($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\n style='z-index: 1'\n [selectType]='selectType'\n [showHeadCellMenu]='showHeadCellMenu'></teta-table-head>\n <div class='column column_auto position-relative'\n style='z-index: 0'\n [tetaContextMenu]='contextMenu'\n [verticalAlign]='verticalAlign.auto'\n [align]='align.auto'\n [appendToBody]='true'\n [data]='contextMenuRow'\n [open]='contextMenuOpen'\n (openChange)='setContextMenuOpen($event)'>\n <teta-table-body\n (contextmenu)='setContextMenuRow($event)'\n (scrollChange)='onScroll($event)'\n [aggregate]='aggregate'\n [virtual]='virtual'\n [activeRow]='activeRow'\n [trackRow]='trackRow'\n [trackColumns]='trackColumns'\n [selectedRows]='selectedRowsList'\n [additionalComponent]='detailComponent'\n [selectType]='selectType'\n [rowClass]='rowClass'>\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { kind: "directive", type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: ["tetaContextMenu", "autoCloseIgnore"] }, { kind: "component", type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "selectedRows", "additionalComponent", "aggregate", "selectType", "rowClass", "trackRow", "trackColumns"], outputs: ["scrollChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: TableComponent, isStandalone: true, selector: "teta-table", inputs: { data: "data", columns: "columns", dict: "dict", filterOptions: "filterOptions", state: "state", cookieName: "cookieName", virtual: "virtual", detailComponent: "detailComponent", activeRow: "activeRow", selectedRows: "selectedRows", selectType: "selectType", aggregate: "aggregate", trackRow: "trackRow", trackColumns: "trackColumns", editType: "editType", editEvent: "editEvent", rowEditable: "rowEditable", rowClass: "rowClass", scrollToIndex: "scrollToIndex", showHeadCellMenu: "showHeadCellMenu", contextMenu: "contextMenu", contextMenuOpen: "contextMenuOpen" }, outputs: { contextMenuOpenChange: "contextMenuOpenChange", stateChange: "stateChange", bodyLeft: "bodyLeft", activeRowChange: "activeRowChange", selectedRowsChange: "selectedRowsChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellFocus: "cellFocus", cellKeyDown: "cellKeyDown", rowLeft: "rowLeft", rowEditStart: "rowEditStart", rowEditEnd: "rowEditEnd", cellEditStart: "cellEditStart", cellEditEnd: "cellEditEnd", valueChange: "valueChange", tableService: "tableService" }, host: { listeners: { "document:click": "handleClickOutsideAnyRow($event)", "focusin": "focusIn($event)", "dblclick": "dblclick($event)", "keydown": "keydown($event)", "mousedown": "mousedown($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 style=\"z-index: 1\" [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <div\n class=\"column column_auto position-relative\"\n style=\"z-index: 0\"\n [tetaContextMenu]=\"contextMenu\"\n [verticalAlign]=\"verticalAlign.auto\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [data]=\"contextMenuRow\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n >\n <teta-table-body\n (contextmenu)=\"setContextMenuRow($event)\"\n (scrollChange)=\"onScroll($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [trackRow]=\"trackRow\"\n [trackColumns]=\"trackColumns\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n >\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: TableHeadComponent, selector: "teta-table-head", inputs: ["selectType", "showHeadCellMenu"] }, { kind: "directive", type: ContextMenuDirective, selector: "[tetaContextMenu]", inputs: ["tetaContextMenu", "autoCloseIgnore"] }, { kind: "component", type: TableBodyComponent, selector: "teta-table-body", inputs: ["virtual", "activeRow", "selectedRows", "additionalComponent", "aggregate", "selectType", "rowClass", "trackRow", "trackColumns"], outputs: ["scrollChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10541
10210
  }
10542
10211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: TableComponent, decorators: [{
10543
10212
  type: Component,
10544
- args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], standalone: true, imports: [
10545
- TableHeadComponent,
10546
- ContextMenuDirective,
10547
- TableBodyComponent,
10548
- ], template: "<div class='column column_auto'>\n <teta-table-head\n style='z-index: 1'\n [selectType]='selectType'\n [showHeadCellMenu]='showHeadCellMenu'></teta-table-head>\n <div class='column column_auto position-relative'\n style='z-index: 0'\n [tetaContextMenu]='contextMenu'\n [verticalAlign]='verticalAlign.auto'\n [align]='align.auto'\n [appendToBody]='true'\n [data]='contextMenuRow'\n [open]='contextMenuOpen'\n (openChange)='setContextMenuOpen($event)'>\n <teta-table-body\n (contextmenu)='setContextMenuRow($event)'\n (scrollChange)='onScroll($event)'\n [aggregate]='aggregate'\n [virtual]='virtual'\n [activeRow]='activeRow'\n [trackRow]='trackRow'\n [trackColumns]='trackColumns'\n [selectedRows]='selectedRowsList'\n [additionalComponent]='detailComponent'\n [selectType]='selectType'\n [rowClass]='rowClass'>\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n" }]
10213
+ args: [{ selector: 'teta-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableService], standalone: true, imports: [TableHeadComponent, ContextMenuDirective, TableBodyComponent], template: "<div class=\"column column_auto\">\n <teta-table-head style=\"z-index: 1\" [selectType]=\"selectType\" [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <div\n class=\"column column_auto position-relative\"\n style=\"z-index: 0\"\n [tetaContextMenu]=\"contextMenu\"\n [verticalAlign]=\"verticalAlign.auto\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [data]=\"contextMenuRow\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\"\n >\n <teta-table-body\n (contextmenu)=\"setContextMenuRow($event)\"\n (scrollChange)=\"onScroll($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [trackRow]=\"trackRow\"\n [trackColumns]=\"trackColumns\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\"\n >\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n" }]
10549
10214
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ElementRef }], propDecorators: { data: [{
10550
10215
  type: Input
10551
10216
  }], columns: [{
@@ -10666,16 +10331,11 @@ class DateTimeCellComponent extends CellComponentBase {
10666
10331
  this.cdr.markForCheck();
10667
10332
  }
10668
10333
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, deps: [{ token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [appendToBody]='true'\n [showTime]='true'\n [formControl]='control'\n ></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10334
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateTimeCellComponent, isStandalone: true, selector: "teta-date-time-cell", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10670
10335
  }
10671
10336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateTimeCellComponent, decorators: [{
10672
10337
  type: Component,
10673
- args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
10674
- DatePickerComponent,
10675
- FormsModule,
10676
- ReactiveFormsModule,
10677
- DatePipe,
10678
- ], template: "<span [style.display]=\"edit ? 'none' : 'block'\"\n class='cell-text'\n [class.cell-text_disabled]='!editable'>\n {{control?.value | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n@if (edit) {\n <teta-date-picker class='datepicker-table'\n #input\n [appendToBody]='true'\n [showTime]='true'\n [formControl]='control'\n ></teta-date-picker>\n}\n" }]
10338
+ args: [{ selector: 'teta-date-time-cell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent, FormsModule, ReactiveFormsModule, DatePipe], template: "<span [style.display]=\"edit ? 'none' : 'block'\" class=\"cell-text\" [class.cell-text_disabled]=\"!editable\">\n {{ control?.value | date : 'dd.MM.yyyy HH:mm:ss' }}\n</span>\n@if (edit) {\n<teta-date-picker\n class=\"datepicker-table\"\n #input\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [formControl]=\"control\"\n></teta-date-picker>\n}\n" }]
10679
10339
  }], ctorParameters: () => [{ type: TableService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
10680
10340
  type: ViewChild,
10681
10341
  args: ['input', { static: false }]
@@ -10737,11 +10397,11 @@ class DividerComponent {
10737
10397
  constructor() { }
10738
10398
  ngOnInit() { }
10739
10399
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DividerComponent, isStandalone: true, selector: "teta-divider", inputs: { label: "label", template: "template" }, ngImport: i0, template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10741
10401
  }
10742
10402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DividerComponent, decorators: [{
10743
10403
  type: Component,
10744
- args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n\n" }]
10404
+ args: [{ selector: 'teta-divider', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n @if (!template) {\n <div class=\"divider-content padding-h-2\">{{ label }}</div>\n } @else {\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n }\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n" }]
10745
10405
  }], ctorParameters: () => [], propDecorators: { label: [{
10746
10406
  type: Input
10747
10407
  }], template: [{
@@ -10756,7 +10416,7 @@ class ResizePanelComponent {
10756
10416
  return this._direction;
10757
10417
  }
10758
10418
  get icon() {
10759
- return this.direction === "horizontal" ? 'moreHorizontal' : 'moreVertical';
10419
+ return this.direction === 'horizontal' ? 'moreHorizontal' : 'moreVertical';
10760
10420
  }
10761
10421
  set grabPosition(val) {
10762
10422
  this._grabPosition = val;
@@ -10813,8 +10473,7 @@ class ResizePanelComponent {
10813
10473
  ngOnInit() {
10814
10474
  this.restorePosition();
10815
10475
  }
10816
- ngOnDestroy() {
10817
- }
10476
+ ngOnDestroy() { }
10818
10477
  getClassName() {
10819
10478
  return this._positionMap.get(this.grabPosition) || '';
10820
10479
  }
@@ -10885,15 +10544,11 @@ class ResizePanelComponent {
10885
10544
  }
10886
10545
  }
10887
10546
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ResizePanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
10888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ResizePanelComponent, isStandalone: true, selector: "teta-resize-panel", inputs: { size: "size", direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10547
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ResizePanelComponent, isStandalone: true, selector: "teta-resize-panel", inputs: { size: "size", direction: "direction", grabPosition: "grabPosition", name: "name", minSize: "minSize", maxSize: "maxSize" }, host: { properties: { "class.resize-panel": "this.resizePanelClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div\n #grab\n class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\"\n>\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10889
10548
  }
10890
10549
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ResizePanelComponent, decorators: [{
10891
10550
  type: Component,
10892
- args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
10893
- ResizeDragDirective,
10894
- NgClass,
10895
- IconComponent,
10896
- ], template: "<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n" }]
10551
+ args: [{ selector: 'teta-resize-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ResizeDragDirective, NgClass, IconComponent], template: "<ng-content></ng-content>\n<div\n #grab\n class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\"\n>\n <teta-icon [name]=\"icon\" [palette]=\"'text'\"></teta-icon>\n</div>\n" }]
10897
10552
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
10898
10553
  type: Inject,
10899
10554
  args: [DOCUMENT]
@@ -10954,7 +10609,7 @@ class AutoPositionDirective {
10954
10609
  left: 0,
10955
10610
  right: 0,
10956
10611
  top: 0,
10957
- bottom: 0
10612
+ bottom: 0,
10958
10613
  };
10959
10614
  if (targetTransformedParent) {
10960
10615
  parentPosition = targetTransformedParent.getBoundingClientRect();
@@ -10969,7 +10624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
10969
10624
  type: Directive,
10970
10625
  args: [{
10971
10626
  selector: '[tetaAutoPosition]',
10972
- standalone: true
10627
+ standalone: true,
10973
10628
  }]
10974
10629
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { align: [{
10975
10630
  type: Input
@@ -11054,7 +10709,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11054
10709
  type: Directive,
11055
10710
  args: [{
11056
10711
  selector: '[tetaDragPreview]',
11057
- standalone: true
10712
+ standalone: true,
11058
10713
  }]
11059
10714
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
11060
10715
 
@@ -11076,9 +10731,11 @@ class DragDropService {
11076
10731
  this._renderer = this._rendererFactory.createRenderer(null, null);
11077
10732
  this.dropTarget = this.dropTarget$.asObservable();
11078
10733
  this.dropped = this.dropped$.asObservable();
11079
- merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove')).pipe(filter$1(() => {
10734
+ merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove'))
10735
+ .pipe(filter$1(() => {
11080
10736
  return this.startPosition != null;
11081
- })).subscribe((event) => {
10737
+ }))
10738
+ .subscribe((event) => {
11082
10739
  if (!this.dragProcess && this.getDelta(event) > this._delta) {
11083
10740
  this.startProcess();
11084
10741
  }
@@ -11086,20 +10743,21 @@ class DragDropService {
11086
10743
  this.movePreview(event);
11087
10744
  }
11088
10745
  });
11089
- merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend')).pipe(withLatestFrom(this.dropTarget)).subscribe((data) => {
10746
+ merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend'))
10747
+ .pipe(withLatestFrom(this.dropTarget))
10748
+ .subscribe((data) => {
11090
10749
  const [event, target] = data;
11091
10750
  if (target) {
11092
10751
  this.dropped$.next({
11093
10752
  target,
11094
10753
  container: this.dragProcess.selection.container,
11095
- data: [...this.dragProcess.selection.items]
10754
+ data: [...this.dragProcess.selection.items],
11096
10755
  });
11097
10756
  this.cancelDrag();
11098
10757
  }
11099
10758
  this.stopProcess();
11100
10759
  });
11101
- merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))
11102
- .subscribe(() => {
10760
+ merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur')).subscribe(() => {
11103
10761
  this.cancelDrag();
11104
10762
  });
11105
10763
  }
@@ -11117,7 +10775,7 @@ class DragDropService {
11117
10775
  }
11118
10776
  this.selection = {
11119
10777
  container,
11120
- items: [instance]
10778
+ items: [instance],
11121
10779
  };
11122
10780
  }
11123
10781
  addSelection(instance, container) {
@@ -11146,7 +10804,7 @@ class DragDropService {
11146
10804
  }
11147
10805
  startProcess() {
11148
10806
  this.dragProcess = {
11149
- selection: this.selection
10807
+ selection: this.selection,
11150
10808
  };
11151
10809
  this._document.body.style.cursor = 'copy';
11152
10810
  this._preview = this.createPreview();
@@ -11164,7 +10822,7 @@ class DragDropService {
11164
10822
  if (this.dragProcess.selection.container.previewTemplate) {
11165
10823
  this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(this.dragProcess.selection.container.previewTemplate, {
11166
10824
  $implicit: this.dragProcess.selection.items,
11167
- data: this.dragProcess.selection.items
10825
+ data: this.dragProcess.selection.items,
11168
10826
  });
11169
10827
  const preview = this._renderer.createElement('div');
11170
10828
  this._renderer.setStyle(preview, 'position', 'fixed');
@@ -11196,7 +10854,7 @@ class DragDropService {
11196
10854
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DragDropService, decorators: [{
11197
10855
  type: Injectable,
11198
10856
  args: [{
11199
- providedIn: 'root'
10857
+ providedIn: 'root',
11200
10858
  }]
11201
10859
  }], ctorParameters: () => [{ type: Document, decorators: [{
11202
10860
  type: Inject,
@@ -11234,15 +10892,13 @@ class DragContainerDirective {
11234
10892
  this.instance = new DragContainerInstance({
11235
10893
  data: this.data,
11236
10894
  previewTemplate: this._previewTemplate?.templateRef,
11237
- viewContainer: this._viewContainerRef
10895
+ viewContainer: this._viewContainerRef,
11238
10896
  });
11239
- this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
11240
- .subscribe((target) => {
10897
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive)).subscribe((target) => {
11241
10898
  this.dropTarget = target;
11242
10899
  this._cdr.detectChanges();
11243
10900
  });
11244
- this._dragService.dropped.pipe(takeWhile(() => this._alive))
11245
- .subscribe((event) => {
10901
+ this._dragService.dropped.pipe(takeWhile(() => this._alive)).subscribe((event) => {
11246
10902
  this.tetaDrop.emit(event);
11247
10903
  });
11248
10904
  }
@@ -11259,9 +10915,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11259
10915
  exportAs: 'dragContainer',
11260
10916
  host: {
11261
10917
  '[class.teta-drag-container]': '"true"',
11262
- '[class.teta-drop-target]': 'isDropTarget'
10918
+ '[class.teta-drop-target]': 'isDropTarget',
11263
10919
  },
11264
- standalone: true
10920
+ standalone: true,
11265
10921
  }]
11266
10922
  }], ctorParameters: () => [{ type: DragDropService }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { data: [{
11267
10923
  type: Input,
@@ -11277,7 +10933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11277
10933
  }], _previewTemplate: [{
11278
10934
  type: ContentChild,
11279
10935
  args: [DragPreviewDirective, {
11280
- static: true
10936
+ static: true,
11281
10937
  }]
11282
10938
  }], mouseleave: [{
11283
10939
  type: HostListener,
@@ -11322,8 +10978,7 @@ class DragDirective {
11322
10978
  mouseenter(event) {
11323
10979
  if (this.allowDrop) {
11324
10980
  event.stopPropagation();
11325
- if (this.allowDropPredicate === undefined ||
11326
- this.allowDropPredicate(this._dragService.selection, this.data)) {
10981
+ if (this.allowDropPredicate === undefined || this.allowDropPredicate(this._dragService.selection, this.data)) {
11327
10982
  this._dragService.setDropTarget(this.instance);
11328
10983
  }
11329
10984
  }
@@ -11347,9 +11002,7 @@ class DragDirective {
11347
11002
  container: this._container?.instance,
11348
11003
  data: this.data,
11349
11004
  });
11350
- this._dragService.dropTarget
11351
- .pipe(takeWhile(() => this._alive))
11352
- .subscribe(target => {
11005
+ this._dragService.dropTarget.pipe(takeWhile(() => this._alive)).subscribe((target) => {
11353
11006
  this.dropTarget = target;
11354
11007
  if (target === this.instance) {
11355
11008
  this.tetaDragEnter.emit(this.instance);
@@ -11362,7 +11015,7 @@ class DragDirective {
11362
11015
  .pipe(filter$1((event) => {
11363
11016
  return event.target === this.instance;
11364
11017
  }))
11365
- .subscribe(event => {
11018
+ .subscribe((event) => {
11366
11019
  this.tetaDrop.emit(event);
11367
11020
  });
11368
11021
  }
@@ -11439,7 +11092,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11439
11092
  type: Directive,
11440
11093
  args: [{
11441
11094
  selector: '[tetaDragPlaceholder]',
11442
- standalone: true
11095
+ standalone: true,
11443
11096
  }]
11444
11097
  }], ctorParameters: () => [] });
11445
11098
 
@@ -11472,8 +11125,7 @@ class DragSortContainerDirective {
11472
11125
  const list = this.getList();
11473
11126
  const sourceIndex = list.indexOf(source);
11474
11127
  const targetIndex = list.indexOf(target);
11475
- if ((insertBefore && sourceIndex + 1 === targetIndex) ||
11476
- (!insertBefore && sourceIndex === targetIndex + 1)) {
11128
+ if ((insertBefore && sourceIndex + 1 === targetIndex) || (!insertBefore && sourceIndex === targetIndex + 1)) {
11477
11129
  return;
11478
11130
  }
11479
11131
  const newIndex = list.indexOf(target) + (insertBefore ? 0 : 1);
@@ -11556,23 +11208,17 @@ class DragSortItemDirective {
11556
11208
  this._dragElement = this._renderer.createElement('div');
11557
11209
  this._renderer.appendChild(this._elementRef.nativeElement, this._dragElement);
11558
11210
  this._renderer.addClass(this._dragElement, 'drop-direction');
11559
- this._renderer.addClass(this._dragElement, this.dragSortDirection === 'horizontal'
11560
- ? 'drop-direction-horizontal'
11561
- : 'drop-direction-vertical');
11211
+ this._renderer.addClass(this._dragElement, this.dragSortDirection === 'horizontal' ? 'drop-direction-horizontal' : 'drop-direction-vertical');
11562
11212
  }
11563
11213
  destroyDrag() {
11564
11214
  this._renderer.removeChild(this._renderer, this._dragElement);
11565
11215
  }
11566
11216
  getDropPosition(event) {
11567
11217
  if (this.dragSortDirection === 'horizontal') {
11568
- return event.clientX >= this.rect.x + this.rect.width / 2
11569
- ? 'end'
11570
- : 'start';
11218
+ return event.clientX >= this.rect.x + this.rect.width / 2 ? 'end' : 'start';
11571
11219
  }
11572
11220
  else {
11573
- return event.clientY >= this.rect.y + this.rect.height / 2
11574
- ? 'end'
11575
- : 'start';
11221
+ return event.clientY >= this.rect.y + this.rect.height / 2 ? 'end' : 'start';
11576
11222
  }
11577
11223
  }
11578
11224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DragSortItemDirective, deps: [{ token: DragSortContainerDirective, host: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -11639,7 +11285,7 @@ class LoaderDirective {
11639
11285
  this._alive = true;
11640
11286
  this._loading = false;
11641
11287
  this._element = this._elementRef.nativeElement;
11642
- this._zone.onStable.pipe(takeWhile(_ => this._alive)).subscribe(_ => {
11288
+ this._zone.onStable.pipe(takeWhile((_) => this._alive)).subscribe((_) => {
11643
11289
  if (this._loading && this._loader) {
11644
11290
  this.setPosition();
11645
11291
  }
@@ -11723,14 +11369,13 @@ class TooltipDirective extends DynamicContentBaseDirective {
11723
11369
  }
11724
11370
  ngOnInit() {
11725
11371
  merge(this._click.click, this._click.contextMenu)
11726
- .pipe(takeWhile(() => this._alive), filter$1(() => this._open), filter$1(() => this._componentRef != null), filter$1((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter$1((event) => !DomUtil.clickedInside(this._componentRef?.location.nativeElement, event)), tap(_ => this.destroyContentRef()))
11372
+ .pipe(takeWhile(() => this._alive), filter$1(() => this._open), filter$1(() => this._componentRef != null), filter$1((event) => !DomUtil.clickedInside(this._elementRef.nativeElement, event)), filter$1((event) => !DomUtil.clickedInside(this._componentRef?.location.nativeElement, event)), tap((_) => this.destroyContentRef()))
11727
11373
  .subscribe();
11728
11374
  }
11729
11375
  setPosition() {
11730
11376
  if (this._componentRef && this._open) {
11731
11377
  if (!this._componentRect) {
11732
- this._componentRect =
11733
- this._componentRef.location.nativeElement.getBoundingClientRect();
11378
+ this._componentRect = this._componentRef.location.nativeElement.getBoundingClientRect();
11734
11379
  }
11735
11380
  const containerPosition = this._elementRef.nativeElement.getBoundingClientRect();
11736
11381
  const position = PositionUtil.getPosition(containerPosition, this._componentRect, this.align, this.verticalAlign, 0, 12);
@@ -11806,7 +11451,7 @@ class ScrollIntoViewDirective {
11806
11451
  if (coerceBooleanProperty(this.tetaScrollIntoView)) {
11807
11452
  this.elementRef.nativeElement.scrollIntoView({
11808
11453
  behavior: 'smooth',
11809
- block: 'start'
11454
+ block: 'start',
11810
11455
  });
11811
11456
  }
11812
11457
  }
@@ -11818,7 +11463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11818
11463
  type: Directive,
11819
11464
  args: [{
11820
11465
  selector: '[tetaScrollIntoView]',
11821
- standalone: true
11466
+ standalone: true,
11822
11467
  }]
11823
11468
  }], ctorParameters: () => [{ type: undefined, decorators: [{
11824
11469
  type: Inject,
@@ -11862,7 +11507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11862
11507
  type: Pipe,
11863
11508
  args: [{
11864
11509
  name: 'tetaDate',
11865
- standalone: true
11510
+ standalone: true,
11866
11511
  }]
11867
11512
  }], ctorParameters: () => [{ type: i1$2.TranslocoService }] });
11868
11513
 
@@ -11971,15 +11616,7 @@ const ruLocale = {
11971
11616
  'Ноябрь',
11972
11617
  'Декабрь',
11973
11618
  ],
11974
- days: [
11975
- 'Воскресенье',
11976
- 'Понедельник',
11977
- 'Вторник',
11978
- 'Среда',
11979
- 'Четверг',
11980
- 'Пятниуа',
11981
- 'Суббота',
11982
- ],
11619
+ days: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятниуа', 'Суббота'],
11983
11620
  daysShort: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
11984
11621
  };
11985
11622
 
@@ -12011,14 +11648,14 @@ const WINDOW = new InjectionToken('An abstraction over global window object', {
12011
11648
  });
12012
11649
 
12013
11650
  function tetaZoneFull(ngZone) {
12014
- return source => new Observable(subscriber => source.subscribe({
12015
- next: value => ngZone.run(() => subscriber.next(value)),
11651
+ return (source) => new Observable((subscriber) => source.subscribe({
11652
+ next: (value) => ngZone.run(() => subscriber.next(value)),
12016
11653
  error: (error) => ngZone.run(() => subscriber.error(error)),
12017
11654
  complete: () => ngZone.run(() => subscriber.complete()),
12018
11655
  }));
12019
11656
  }
12020
11657
  function tetaZoneFree(ngZone) {
12021
- return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
11658
+ return (source) => new Observable((subscriber) => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
12022
11659
  }
12023
11660
  function tetaZoneOptimized(ngZone) {
12024
11661
  return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));