@tetacom/ng-components 1.1.43 → 1.2.0

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 (589) hide show
  1. package/.eslintrc.json +16 -10
  2. package/README.md +3 -20
  3. package/component/accordion/accordion/accordion.component.d.ts +1 -1
  4. package/component/accordion/accordion-content.directive.d.ts +1 -1
  5. package/component/accordion/accordion-head/accordion-head.component.d.ts +1 -1
  6. package/component/accordion/accordion-item/accordion-item.component.d.ts +1 -1
  7. package/component/accordion/public-api.d.ts +0 -1
  8. package/component/autocomplete/autocomplete/autocomplete.component.d.ts +1 -1
  9. package/component/autocomplete/public-api.d.ts +0 -1
  10. package/component/avatar/avatar/avatar.component.d.ts +1 -1
  11. package/component/avatar/public-api.d.ts +0 -1
  12. package/component/button/button/button.component.d.ts +1 -1
  13. package/component/button/public-api.d.ts +0 -1
  14. package/component/chart-3d/chart3d/chart3d.component.d.ts +1 -1
  15. package/component/chart-3d/public-api.d.ts +0 -1
  16. package/component/checkbox/checkbox/checkbox.component.d.ts +1 -1
  17. package/component/checkbox/public-api.d.ts +0 -1
  18. package/component/date-picker/base-picker.d.ts +1 -1
  19. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
  20. package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
  21. package/component/date-picker/date-range/date-range.component.d.ts +1 -1
  22. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +3 -3
  23. package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
  24. package/component/date-picker/day-picker/day-picker.component.d.ts +2 -2
  25. package/component/date-picker/month-picker/month-picker.component.d.ts +1 -1
  26. package/component/date-picker/public-api.d.ts +0 -1
  27. package/component/date-picker/year-picker/scroll-to-selected-year.directive.d.ts +1 -1
  28. package/component/date-picker/year-picker/year-picker.component.d.ts +1 -1
  29. package/component/delimiter/delimiter/delimiter.component.d.ts +1 -1
  30. package/component/delimiter/public-api.d.ts +0 -1
  31. package/component/divider/divider/divider.component.d.ts +1 -1
  32. package/component/divider/public-api.d.ts +0 -1
  33. package/component/dropdown/dropdown/dropdown.component.d.ts +1 -1
  34. package/component/dropdown/dropdown-content.directive.d.ts +1 -1
  35. package/component/dropdown/dropdown-head.directive.d.ts +1 -1
  36. package/component/dropdown/dropdown.directive.d.ts +1 -1
  37. package/component/dropdown/public-api.d.ts +0 -1
  38. package/component/dynamic-component/popup-content/popup-content.component.d.ts +1 -1
  39. package/component/dynamic-component/public-api.d.ts +0 -1
  40. package/component/expand-card/expand-card/expand-card.component.d.ts +1 -1
  41. package/component/expand-card/expand-item/expand-item.component.d.ts +1 -1
  42. package/component/expand-card/public-api.d.ts +0 -1
  43. package/component/expand-panel/expand-panel/expand-panel.component.d.ts +1 -1
  44. package/component/expand-panel/expand-panel-content.directive.d.ts +1 -1
  45. package/component/expand-panel/expand-panel-head.directive.d.ts +1 -1
  46. package/component/expand-panel/public-api.d.ts +0 -1
  47. package/component/file-upload/file-item/file-item.component.d.ts +1 -1
  48. package/component/file-upload/file-upload-area/file-upload-area.component.d.ts +1 -1
  49. package/component/file-upload/public-api.d.ts +0 -1
  50. package/component/filter/boolean-filter/boolean-filter.component.d.ts +1 -1
  51. package/component/filter/date-filter/date-filter.component.d.ts +1 -1
  52. package/component/filter/filter-host/filter-host.component.d.ts +1 -1
  53. package/component/filter/list-filter/list-filter.component.d.ts +1 -1
  54. package/component/filter/numeric-filter/numeric-filter.component.d.ts +1 -1
  55. package/component/filter/public-api.d.ts +0 -1
  56. package/component/filter/string-filter/string-filter.component.d.ts +1 -1
  57. package/component/icon/icon/icon.component.d.ts +1 -1
  58. package/component/icon/icon-file/icon-file.component.d.ts +1 -1
  59. package/component/icon/icon-sprite.directive.d.ts +1 -1
  60. package/component/icon/public-api.d.ts +0 -2
  61. package/component/input/color-input/color-input.component.d.ts +1 -1
  62. package/component/input/form-group-title/form-group-title.component.d.ts +1 -1
  63. package/component/input/input/input.component.d.ts +1 -1
  64. package/component/input/public-api.d.ts +1 -1
  65. package/component/input/text-field/text-field.component.d.ts +1 -1
  66. package/component/message/message/message.component.d.ts +1 -1
  67. package/component/message/message-host/message-host.component.d.ts +1 -1
  68. package/component/message/public-api.d.ts +0 -1
  69. package/component/modal/dialog/dialog.component.d.ts +1 -1
  70. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  71. package/component/modal/modal.module.d.ts +5 -8
  72. package/component/pager/pager/pager.component.d.ts +1 -1
  73. package/component/pager/public-api.d.ts +0 -1
  74. package/component/panel/panel/panel.component.d.ts +1 -1
  75. package/component/panel/public-api.d.ts +0 -1
  76. package/component/progress-bar/progress-bar/progress-bar.component.d.ts +1 -1
  77. package/component/progress-bar/public-api.d.ts +0 -1
  78. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +1 -1
  79. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +1 -1
  80. package/component/property-grid/property-grid/property-grid-item-description.directive.d.ts +1 -1
  81. package/component/property-grid/property-grid/property-grid.component.d.ts +1 -1
  82. package/component/property-grid/property-grid.module.d.ts +8 -16
  83. package/component/public-api.d.ts +0 -1
  84. package/component/radio/public-api.d.ts +0 -1
  85. package/component/radio/radio/radio.component.d.ts +3 -4
  86. package/component/radio/radio-button/radio-button.component.d.ts +1 -1
  87. package/component/resize-panel/public-api.d.ts +0 -1
  88. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -1
  89. package/component/select/public-api.d.ts +0 -1
  90. package/component/select/select/select.component.d.ts +1 -1
  91. package/component/select/select-option.directive.d.ts +1 -1
  92. package/component/select/select-value.directive.d.ts +1 -1
  93. package/component/sidebar/public-api.d.ts +0 -1
  94. package/component/sidebar/sidebar/sidebar.component.d.ts +1 -1
  95. package/component/switch/public-api.d.ts +0 -1
  96. package/component/switch/switch/switch.component.d.ts +1 -1
  97. package/component/switch/switch-button/switch-button.component.d.ts +1 -1
  98. package/component/table/cell/cell.component.d.ts +1 -1
  99. package/component/table/cell-host/cell-host.component.d.ts +1 -1
  100. package/component/table/default/boolean-cell/boolean-cell.component.d.ts +1 -1
  101. package/component/table/default/date-cell/date-cell.component.d.ts +1 -1
  102. package/component/table/default/date-time-cell/date-time-cell.component.d.ts +1 -1
  103. package/component/table/default/default-head-cell/default-head-cell.component.d.ts +1 -1
  104. package/component/table/default/list-cell/list-cell.component.d.ts +1 -1
  105. package/component/table/default/numeric-cell/numeric-cell.component.d.ts +1 -1
  106. package/component/table/default/string-cell/string-cell.component.d.ts +1 -1
  107. package/component/table/head-cell/head-cell.component.d.ts +1 -1
  108. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +1 -1
  109. package/component/table/head-cell-host/head-cell-host.component.d.ts +1 -1
  110. package/component/table/public-api.d.ts +0 -1
  111. package/component/table/selection-cell/selection-cell.component.d.ts +1 -1
  112. package/component/table/selection-head-cell/selection-head-cell.component.d.ts +1 -1
  113. package/component/table/table/table.component.d.ts +1 -1
  114. package/component/table/table-body/table-body.component.d.ts +1 -1
  115. package/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.d.ts +1 -1
  116. package/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.d.ts +1 -1
  117. package/component/table/table-head/table-head.component.d.ts +1 -1
  118. package/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.d.ts +2 -2
  119. package/component/table/table-head-group/table-head-group.component.d.ts +1 -1
  120. package/component/tabs/public-api.d.ts +0 -1
  121. package/component/tabs/tab/tab.component.d.ts +1 -1
  122. package/component/tabs/tab-content.directive.d.ts +1 -1
  123. package/component/tabs/tab-title.directive.d.ts +1 -1
  124. package/component/tabs/tabs/tabs.component.d.ts +1 -1
  125. package/component/theme-switch/public-api.d.ts +0 -1
  126. package/component/theme-switch/theme-switch/theme-switch.component.d.ts +1 -1
  127. package/component/toggle/public-api.d.ts +0 -1
  128. package/component/toggle/toggle/toggle.component.d.ts +1 -1
  129. package/component/toolbar/public-api.d.ts +0 -1
  130. package/component/toolbar/toolbar/toolbar.component.d.ts +1 -1
  131. package/component/tree/public-api.d.ts +0 -1
  132. package/component/tree/tree/tree.component.d.ts +1 -1
  133. package/component/tree/tree-item/tree-item.component.d.ts +1 -1
  134. package/component/tree/tree-item-toggle/tree-item-toggle.component.d.ts +1 -1
  135. package/directive/auto-position/auto-position.directive.d.ts +1 -1
  136. package/directive/auto-position/public-api.d.ts +0 -1
  137. package/directive/click-outside/click-outside.directive.d.ts +1 -1
  138. package/directive/click-outside/public-api.d.ts +0 -1
  139. package/directive/context-menu/context-menu.directive.d.ts +1 -1
  140. package/directive/context-menu/public-api.d.ts +0 -1
  141. package/directive/disable-control/disable-control.directive.d.ts +1 -1
  142. package/directive/disable-control/public-api.d.ts +0 -1
  143. package/directive/drag-drop/drag-container.directive.d.ts +1 -1
  144. package/directive/drag-drop/drag-placeholder.directive.d.ts +1 -1
  145. package/directive/drag-drop/drag-preview.directive.d.ts +1 -1
  146. package/directive/drag-drop/drag.directive.d.ts +1 -1
  147. package/directive/drag-drop/public-api.d.ts +0 -1
  148. package/directive/drag-sort/drag-sort-container.directive.d.ts +1 -1
  149. package/directive/drag-sort/drag-sort-item.directive.d.ts +1 -1
  150. package/directive/drag-sort/public-api.d.ts +0 -1
  151. package/directive/highlight/highlight.directive.d.ts +1 -1
  152. package/directive/highlight/public-api.d.ts +0 -1
  153. package/directive/hint/hint.directive.d.ts +1 -1
  154. package/directive/hint/public-api.d.ts +0 -1
  155. package/directive/let/let.directive.d.ts +1 -1
  156. package/directive/let/public-api.d.ts +0 -1
  157. package/directive/loader/loader.directive.d.ts +1 -1
  158. package/directive/loader/public-api.d.ts +0 -1
  159. package/directive/no-autofill/no-autofill.directive.d.ts +1 -1
  160. package/directive/no-autofill/public-api.d.ts +0 -1
  161. package/directive/only-number/only-number.directive.d.ts +1 -1
  162. package/directive/only-number/public-api.d.ts +0 -1
  163. package/directive/resize-drag/public-api.d.ts +0 -1
  164. package/directive/resize-drag/resize-drag.directive.d.ts +1 -1
  165. package/directive/scroll-into-view/public-api.d.ts +0 -1
  166. package/directive/scroll-into-view/scroll-into-view.directive.d.ts +1 -1
  167. package/directive/scrollable/public-api.d.ts +0 -1
  168. package/directive/scrollable/scrollable/scrollable.component.d.ts +1 -1
  169. package/directive/scrollable/scrollable.directive.d.ts +1 -1
  170. package/directive/teta-template/public-api.d.ts +0 -1
  171. package/directive/teta-template/teta-template.directive.d.ts +1 -1
  172. package/directive/tooltip/public-api.d.ts +0 -1
  173. package/directive/tooltip/tooltip.directive.d.ts +1 -1
  174. package/docs/datePickerDocs.mdx +14 -59
  175. package/docs/dateRangeDocs.mdx +172 -0
  176. package/esm2022/common/contract/dynamic-data.mjs +1 -1
  177. package/esm2022/common/contract/teta-content-ref.mjs +1 -4
  178. package/esm2022/common/service/click.service.mjs +6 -9
  179. package/esm2022/common/service/dynamic-component.service.mjs +6 -10
  180. package/esm2022/common/service/overlay-container.service.mjs +7 -9
  181. package/esm2022/common/util/array-util.mjs +1 -1
  182. package/esm2022/common/util/dom-util.mjs +1 -1
  183. package/esm2022/common/util/position-util.mjs +1 -1
  184. package/esm2022/component/accordion/accordion/accordion.component.mjs +8 -6
  185. package/esm2022/component/accordion/accordion-content.directive.mjs +8 -8
  186. package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +13 -13
  187. package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +14 -17
  188. package/esm2022/component/accordion/public-api.mjs +1 -2
  189. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +6 -6
  190. package/esm2022/component/autocomplete/public-api.mjs +1 -2
  191. package/esm2022/component/avatar/avatar/avatar.component.mjs +28 -32
  192. package/esm2022/component/avatar/public-api.mjs +1 -2
  193. package/esm2022/component/button/button/button.component.mjs +10 -12
  194. package/esm2022/component/button/public-api.mjs +1 -2
  195. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -20
  196. package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -3
  197. package/esm2022/component/chart-3d/model/series-3d.mjs +1 -3
  198. package/esm2022/component/chart-3d/public-api.mjs +1 -2
  199. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +16 -33
  200. package/esm2022/component/checkbox/public-api.mjs +1 -2
  201. package/esm2022/component/date-picker/base-calendar.mjs +23 -24
  202. package/esm2022/component/date-picker/base-picker.mjs +10 -15
  203. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +23 -23
  204. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +47 -46
  205. package/esm2022/component/date-picker/date-range/date-range.component.mjs +44 -39
  206. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +25 -27
  207. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +6 -6
  208. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +12 -19
  209. package/esm2022/component/date-picker/model/date-period.mjs +1 -3
  210. package/esm2022/component/date-picker/model/day-model.mjs +1 -7
  211. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +13 -16
  212. package/esm2022/component/date-picker/public-api.mjs +1 -2
  213. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +9 -9
  214. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -14
  215. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +13 -13
  216. package/esm2022/component/delimiter/public-api.mjs +1 -2
  217. package/esm2022/component/divider/divider/divider.component.mjs +8 -10
  218. package/esm2022/component/divider/public-api.mjs +1 -2
  219. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +8 -13
  220. package/esm2022/component/dropdown/dropdown-base.mjs +26 -35
  221. package/esm2022/component/dropdown/dropdown-content.directive.mjs +8 -9
  222. package/esm2022/component/dropdown/dropdown-head.directive.mjs +9 -9
  223. package/esm2022/component/dropdown/dropdown.directive.mjs +9 -13
  224. package/esm2022/component/dropdown/public-api.mjs +1 -2
  225. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +10 -10
  226. package/esm2022/component/dynamic-component/public-api.mjs +1 -2
  227. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +14 -15
  228. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +11 -10
  229. package/esm2022/component/expand-card/public-api.mjs +1 -2
  230. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +20 -18
  231. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +7 -7
  232. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +7 -7
  233. package/esm2022/component/expand-panel/public-api.mjs +1 -2
  234. package/esm2022/component/file-upload/file-item/file-item.component.mjs +6 -6
  235. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +24 -19
  236. package/esm2022/component/file-upload/public-api.mjs +1 -2
  237. package/esm2022/component/filter/base/filter-base.mjs +1 -4
  238. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +22 -20
  239. package/esm2022/component/filter/contarct/date-filter-value.mjs +1 -9
  240. package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
  241. package/esm2022/component/filter/contarct/filter-item.mjs +13 -57
  242. package/esm2022/component/filter/contarct/filter-state.mjs +7 -7
  243. package/esm2022/component/filter/contarct/list-filter.mjs +1 -2
  244. package/esm2022/component/filter/contarct/numeric-filter-value.mjs +1 -13
  245. package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -2
  246. package/esm2022/component/filter/contarct/sort-param.mjs +1 -13
  247. package/esm2022/component/filter/contarct/string-filter.mjs +1 -2
  248. package/esm2022/component/filter/date-filter/date-filter.component.mjs +22 -20
  249. package/esm2022/component/filter/filter-host/filter-host.component.mjs +11 -16
  250. package/esm2022/component/filter/list-filter/list-filter.component.mjs +25 -23
  251. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +22 -20
  252. package/esm2022/component/filter/public-api.mjs +1 -2
  253. package/esm2022/component/filter/string-filter/string-filter.component.mjs +19 -18
  254. package/esm2022/component/icon/icon/icon.component.mjs +9 -9
  255. package/esm2022/component/icon/icon-file/icon-file.component.mjs +6 -8
  256. package/esm2022/component/icon/icon-sprite.directive.mjs +9 -9
  257. package/esm2022/component/icon/icon.service.mjs +10 -15
  258. package/esm2022/component/icon/public-api.mjs +1 -3
  259. package/esm2022/component/input/color-input/color-input.component.mjs +11 -13
  260. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +9 -8
  261. package/esm2022/component/input/input/input.component.mjs +12 -13
  262. package/esm2022/component/input/public-api.mjs +2 -2
  263. package/esm2022/component/input/text-field/text-field.component.mjs +25 -25
  264. package/esm2022/component/message/message/message.component.mjs +15 -14
  265. package/esm2022/component/message/message-host/message-host.component.mjs +22 -25
  266. package/esm2022/component/message/message.service.mjs +7 -9
  267. package/esm2022/component/message/model/message.mjs +4 -10
  268. package/esm2022/component/message/public-api.mjs +1 -2
  269. package/esm2022/component/modal/dialog/dialog.component.mjs +18 -18
  270. package/esm2022/component/modal/dialog.service.mjs +6 -6
  271. package/esm2022/component/modal/modal-container/modal-container.component.mjs +11 -13
  272. package/esm2022/component/modal/modal.module.mjs +8 -18
  273. package/esm2022/component/modal/modal.service.mjs +16 -19
  274. package/esm2022/component/modal/model/current-modal.mjs +1 -2
  275. package/esm2022/component/modal/model/modal-instance.mjs +7 -10
  276. package/esm2022/component/pager/model/pager-state.mjs +9 -29
  277. package/esm2022/component/pager/pager/pager.component.mjs +6 -6
  278. package/esm2022/component/pager/public-api.mjs +1 -2
  279. package/esm2022/component/panel/panel/panel.component.mjs +12 -11
  280. package/esm2022/component/panel/public-api.mjs +1 -2
  281. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +37 -45
  282. package/esm2022/component/progress-bar/public-api.mjs +1 -2
  283. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +13 -21
  284. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +31 -29
  285. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +8 -9
  286. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +19 -23
  287. package/esm2022/component/property-grid/property-grid.module.mjs +16 -46
  288. package/esm2022/component/public-api.mjs +1 -3
  289. package/esm2022/component/radio/public-api.mjs +1 -2
  290. package/esm2022/component/radio/radio/radio.component.mjs +17 -23
  291. package/esm2022/component/radio/radio-button/radio-button.component.mjs +10 -16
  292. package/esm2022/component/resize-panel/public-api.mjs +1 -2
  293. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +24 -29
  294. package/esm2022/component/select/public-api.mjs +1 -2
  295. package/esm2022/component/select/select/select.component.mjs +49 -53
  296. package/esm2022/component/select/select-option.directive.mjs +8 -8
  297. package/esm2022/component/select/select-value.directive.mjs +8 -8
  298. package/esm2022/component/sidebar/public-api.mjs +1 -2
  299. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +14 -16
  300. package/esm2022/component/switch/public-api.mjs +1 -2
  301. package/esm2022/component/switch/switch/switch.component.mjs +10 -13
  302. package/esm2022/component/switch/switch-button/switch-button.component.mjs +9 -13
  303. package/esm2022/component/switch/switch.service.mjs +6 -7
  304. package/esm2022/component/table/base/cell-component-base.mjs +14 -18
  305. package/esm2022/component/table/base/head-cell-component-base.mjs +5 -4
  306. package/esm2022/component/table/cell/cell.component.mjs +11 -11
  307. package/esm2022/component/table/cell-host/cell-host.component.mjs +10 -14
  308. package/esm2022/component/table/contract/column-reorder-event.mjs +1 -3
  309. package/esm2022/component/table/contract/column-resize-event.mjs +1 -3
  310. package/esm2022/component/table/contract/sort-event.mjs +1 -3
  311. package/esm2022/component/table/contract/table-column-store.mjs +1 -6
  312. package/esm2022/component/table/contract/table-column.mjs +13 -83
  313. package/esm2022/component/table/contract/table-row.mjs +1 -3
  314. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +15 -13
  315. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +17 -13
  316. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +17 -13
  317. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +9 -13
  318. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +16 -14
  319. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +17 -14
  320. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +16 -14
  321. package/esm2022/component/table/head-cell/head-cell.component.mjs +38 -41
  322. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +29 -27
  323. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +8 -13
  324. package/esm2022/component/table/public-api.mjs +1 -2
  325. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +13 -14
  326. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +12 -12
  327. package/esm2022/component/table/service/table.service.mjs +35 -58
  328. package/esm2022/component/table/table/table.component.mjs +53 -67
  329. package/esm2022/component/table/table-body/table-body.component.mjs +47 -51
  330. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +15 -23
  331. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +12 -19
  332. package/esm2022/component/table/table-head/table-head.component.mjs +15 -23
  333. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +54 -51
  334. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +11 -16
  335. package/esm2022/component/table/util/state-util.mjs +2 -2
  336. package/esm2022/component/table/util/table-util.mjs +1 -1
  337. package/esm2022/component/tabs/public-api.mjs +1 -2
  338. package/esm2022/component/tabs/tab/tab.component.mjs +15 -19
  339. package/esm2022/component/tabs/tab-content.directive.mjs +8 -8
  340. package/esm2022/component/tabs/tab-title.directive.mjs +8 -8
  341. package/esm2022/component/tabs/tabs/tabs.component.mjs +19 -23
  342. package/esm2022/component/theme-switch/public-api.mjs +1 -2
  343. package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +11 -12
  344. package/esm2022/component/theme-switch/theme-switch.service.mjs +5 -7
  345. package/esm2022/component/toggle/public-api.mjs +1 -2
  346. package/esm2022/component/toggle/toggle/toggle.component.mjs +12 -21
  347. package/esm2022/component/toolbar/public-api.mjs +1 -2
  348. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +5 -7
  349. package/esm2022/component/tree/public-api.mjs +1 -2
  350. package/esm2022/component/tree/tree/tree.component.mjs +31 -38
  351. package/esm2022/component/tree/tree-item/tree-item.component.mjs +17 -21
  352. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +10 -13
  353. package/esm2022/component/tree/tree.service.mjs +8 -10
  354. package/esm2022/directive/auto-position/auto-position.directive.mjs +12 -13
  355. package/esm2022/directive/auto-position/public-api.mjs +1 -2
  356. package/esm2022/directive/click-outside/click-outside.directive.mjs +19 -20
  357. package/esm2022/directive/click-outside/public-api.mjs +1 -2
  358. package/esm2022/directive/context-menu/context-menu.directive.mjs +20 -29
  359. package/esm2022/directive/context-menu/public-api.mjs +1 -2
  360. package/esm2022/directive/disable-control/disable-control.directive.mjs +7 -6
  361. package/esm2022/directive/disable-control/public-api.mjs +1 -2
  362. package/esm2022/directive/drag-drop/drag-container.directive.mjs +14 -21
  363. package/esm2022/directive/drag-drop/drag-drop.service.mjs +10 -20
  364. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +7 -6
  365. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +8 -8
  366. package/esm2022/directive/drag-drop/drag.directive.mjs +14 -20
  367. package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -4
  368. package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -3
  369. package/esm2022/directive/drag-drop/public-api.mjs +1 -2
  370. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +9 -7
  371. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +12 -16
  372. package/esm2022/directive/drag-sort/public-api.mjs +1 -2
  373. package/esm2022/directive/dynamic-content-base.directive.mjs +13 -22
  374. package/esm2022/directive/highlight/highlight.directive.mjs +8 -8
  375. package/esm2022/directive/highlight/public-api.mjs +1 -2
  376. package/esm2022/directive/hint/hint.directive.mjs +14 -24
  377. package/esm2022/directive/hint/public-api.mjs +1 -2
  378. package/esm2022/directive/let/let.directive.mjs +8 -9
  379. package/esm2022/directive/let/public-api.mjs +1 -2
  380. package/esm2022/directive/loader/loader.directive.mjs +12 -18
  381. package/esm2022/directive/loader/public-api.mjs +1 -2
  382. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +7 -8
  383. package/esm2022/directive/no-autofill/public-api.mjs +1 -2
  384. package/esm2022/directive/only-number/only-number.directive.mjs +19 -19
  385. package/esm2022/directive/only-number/public-api.mjs +1 -2
  386. package/esm2022/directive/resize-drag/public-api.mjs +1 -2
  387. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +18 -19
  388. package/esm2022/directive/scroll-into-view/public-api.mjs +1 -2
  389. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +11 -13
  390. package/esm2022/directive/scrollable/public-api.mjs +1 -2
  391. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +20 -24
  392. package/esm2022/directive/scrollable/scrollable.directive.mjs +8 -5
  393. package/esm2022/directive/teta-template/public-api.mjs +1 -2
  394. package/esm2022/directive/teta-template/teta-template.directive.mjs +8 -9
  395. package/esm2022/directive/tooltip/public-api.mjs +1 -2
  396. package/esm2022/directive/tooltip/tooltip.directive.mjs +16 -21
  397. package/esm2022/index.mjs +22 -0
  398. package/esm2022/locale/teta-config.service.mjs +8 -8
  399. package/esm2022/observable/animation-frame.mjs +1 -1
  400. package/esm2022/observable/public-api.mjs +1 -2
  401. package/esm2022/pipe/date-pipe/public-api.mjs +1 -2
  402. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +22 -14
  403. package/esm2022/pipe/number-pipe/number.pipe.mjs +6 -5
  404. package/esm2022/pipe/number-pipe/public-api.mjs +1 -2
  405. package/esm2022/pipe/util/number-helper.mjs +1 -1
  406. package/esm2022/tetacom-ng-components.mjs +2 -2
  407. package/esm2022/util/bool-or-func.mjs +1 -1
  408. package/esm2022/util/date-util.mjs +1 -1
  409. package/esm2022/util/forms-util.mjs +3 -3
  410. package/fesm2022/tetacom-ng-components.mjs +6034 -8435
  411. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  412. package/index.d.ts +17 -3
  413. package/observable/public-api.d.ts +0 -1
  414. package/package.json +5 -24
  415. package/pipe/date-pipe/public-api.d.ts +0 -1
  416. package/pipe/date-pipe/teta-date.pipe.d.ts +3 -3
  417. package/pipe/number-pipe/number.pipe.d.ts +1 -1
  418. package/pipe/number-pipe/public-api.d.ts +0 -1
  419. package/style/accordion.scss +3 -1
  420. package/style/checkbox.scss +1 -1
  421. package/style/icon.scss +1 -1
  422. package/style/message.scss +1 -1
  423. package/style/navigation.scss +3 -3
  424. package/style/switch.scss +1 -3
  425. package/style/toggle.scss +1 -1
  426. package/style/toolbar.scss +1 -1
  427. package/.browserslistrc +0 -16
  428. package/component/accordion/accordion.module.d.ts +0 -12
  429. package/component/autocomplete/autocomplete.module.d.ts +0 -8
  430. package/component/avatar/avatar.module.d.ts +0 -9
  431. package/component/button/button.module.d.ts +0 -8
  432. package/component/chart-3d/chart-3d.module.d.ts +0 -8
  433. package/component/checkbox/checkbox.module.d.ts +0 -9
  434. package/component/date-picker/date-picker.module.d.ts +0 -24
  435. package/component/delimiter/delimiter.module.d.ts +0 -8
  436. package/component/divider/divider.module.d.ts +0 -8
  437. package/component/dropdown/dropdown.module.d.ts +0 -11
  438. package/component/dynamic-component/dynamic-component.module.d.ts +0 -8
  439. package/component/expand-card/expand-card.module.d.ts +0 -13
  440. package/component/expand-panel/expand-panel.module.d.ts +0 -14
  441. package/component/file-upload/file-upload.module.d.ts +0 -12
  442. package/component/filter/filter.module.d.ts +0 -21
  443. package/component/icon/icon-file/icon-file.module.d.ts +0 -9
  444. package/component/icon/icon.module.d.ts +0 -10
  445. package/component/input/input.module.d.ts +0 -16
  446. package/component/message/message.module.d.ts +0 -11
  447. package/component/pager/pager.module.d.ts +0 -9
  448. package/component/panel/panel.module.d.ts +0 -8
  449. package/component/progress-bar/progress-bar.module.d.ts +0 -8
  450. package/component/radio/radio.module.d.ts +0 -10
  451. package/component/resize-panel/resize-panel.module.d.ts +0 -10
  452. package/component/select/select.module.d.ts +0 -18
  453. package/component/sidebar/sidebar.module.d.ts +0 -10
  454. package/component/switch/switch.module.d.ts +0 -9
  455. package/component/table/table.module.d.ts +0 -47
  456. package/component/tabs/tabs.module.d.ts +0 -11
  457. package/component/theme-switch/theme-switch.module.d.ts +0 -10
  458. package/component/three/custom-series/custom-series.component.d.ts +0 -20
  459. package/component/three/public-api.d.ts +0 -11
  460. package/component/three/three-chart/area-3d/area-3d.component.d.ts +0 -14
  461. package/component/three/three-chart/axes-3d/axes-3d.component.d.ts +0 -37
  462. package/component/three/three-chart/base-3d-series/base3d-series.component.d.ts +0 -15
  463. package/component/three/three-chart/block-3d/block-3d.component.d.ts +0 -28
  464. package/component/three/three-chart/canvas/canvas.component.d.ts +0 -11
  465. package/component/three/three-chart/directive/canvas-3d-host.d.ts +0 -19
  466. package/component/three/three-chart/directive/public-api.d.ts +0 -2
  467. package/component/three/three-chart/directive/series-3d-host.d.ts +0 -16
  468. package/component/three/three-chart/line-3d/line-3d.component.d.ts +0 -19
  469. package/component/three/three-chart/model/axes-3d-min-max.d.ts +0 -5
  470. package/component/three/three-chart/model/axis-3d-point.d.ts +0 -4
  471. package/component/three/three-chart/model/base-3d-series.d.ts +0 -11
  472. package/component/three/three-chart/model/base-3d-three-point.d.ts +0 -8
  473. package/component/three/three-chart/model/block-3d-series.d.ts +0 -6
  474. package/component/three/three-chart/model/block3d-point.d.ts +0 -5
  475. package/component/three/three-chart/model/enum/public-api.d.ts +0 -1
  476. package/component/three/three-chart/model/enum/series-3d-type.d.ts +0 -4
  477. package/component/three/three-chart/model/i-3d-chart-config.d.ts +0 -14
  478. package/component/three/three-chart/model/line-3d-point.d.ts +0 -5
  479. package/component/three/three-chart/model/line-3d-series.d.ts +0 -6
  480. package/component/three/three-chart/model/public-api.d.ts +0 -10
  481. package/component/three/three-chart/scene/scene.component.d.ts +0 -20
  482. package/component/three/three-chart/service/chart-3d.service.d.ts +0 -21
  483. package/component/three/three-chart/three-chart.component.d.ts +0 -19
  484. package/component/toggle/toggle.module.d.ts +0 -9
  485. package/component/toolbar/toolbar.module.d.ts +0 -8
  486. package/component/tree/tree.module.d.ts +0 -14
  487. package/directive/auto-position/auto-position.module.d.ts +0 -8
  488. package/directive/click-outside/click-outside.module.d.ts +0 -8
  489. package/directive/context-menu/context-menu.module.d.ts +0 -9
  490. package/directive/disable-control/disable-control.module.d.ts +0 -8
  491. package/directive/drag-drop/drag-drop.module.d.ts +0 -11
  492. package/directive/drag-sort/drag-sort.module.d.ts +0 -9
  493. package/directive/highlight/highlight.module.d.ts +0 -8
  494. package/directive/hint/hint.module.d.ts +0 -9
  495. package/directive/let/let.module.d.ts +0 -8
  496. package/directive/loader/loader.module.d.ts +0 -8
  497. package/directive/no-autofill/no-autofill.module.d.ts +0 -8
  498. package/directive/only-number/only-number.module.d.ts +0 -8
  499. package/directive/resize-drag/resize-drag.module.d.ts +0 -8
  500. package/directive/scroll-into-view/scroll-into-view.module.d.ts +0 -8
  501. package/directive/scrollable/scrollable.module.d.ts +0 -10
  502. package/directive/teta-template/teta-template.module.d.ts +0 -8
  503. package/directive/tooltip/tooltip.module.d.ts +0 -10
  504. package/docs/chartDocs.mdx +0 -153
  505. package/docs/threeDocs.mdx +0 -65
  506. package/esm2022/component/accordion/accordion.module.mjs +0 -27
  507. package/esm2022/component/autocomplete/autocomplete.module.mjs +0 -24
  508. package/esm2022/component/avatar/avatar.module.mjs +0 -28
  509. package/esm2022/component/button/button.module.mjs +0 -22
  510. package/esm2022/component/chart-3d/chart-3d.module.mjs +0 -18
  511. package/esm2022/component/checkbox/checkbox.module.mjs +0 -26
  512. package/esm2022/component/date-picker/date-picker.module.mjs +0 -91
  513. package/esm2022/component/delimiter/delimiter.module.mjs +0 -20
  514. package/esm2022/component/divider/divider.module.mjs +0 -20
  515. package/esm2022/component/dropdown/dropdown.module.mjs +0 -39
  516. package/esm2022/component/dynamic-component/dynamic-component.module.mjs +0 -20
  517. package/esm2022/component/expand-card/expand-card.module.mjs +0 -45
  518. package/esm2022/component/expand-panel/expand-panel.module.mjs +0 -50
  519. package/esm2022/component/file-upload/file-upload.module.mjs +0 -22
  520. package/esm2022/component/filter/filter.module.mjs +0 -81
  521. package/esm2022/component/icon/icon-file/icon-file.module.mjs +0 -28
  522. package/esm2022/component/icon/icon.module.mjs +0 -33
  523. package/esm2022/component/input/input.module.mjs +0 -26
  524. package/esm2022/component/message/message.module.mjs +0 -29
  525. package/esm2022/component/pager/pager.module.mjs +0 -24
  526. package/esm2022/component/panel/panel.module.mjs +0 -20
  527. package/esm2022/component/progress-bar/progress-bar.module.mjs +0 -20
  528. package/esm2022/component/radio/radio.module.mjs +0 -20
  529. package/esm2022/component/resize-panel/resize-panel.module.mjs +0 -20
  530. package/esm2022/component/select/select.module.mjs +0 -54
  531. package/esm2022/component/sidebar/sidebar.module.mjs +0 -28
  532. package/esm2022/component/switch/switch.module.mjs +0 -21
  533. package/esm2022/component/table/table.module.mjs +0 -185
  534. package/esm2022/component/tabs/tabs.module.mjs +0 -39
  535. package/esm2022/component/theme-switch/theme-switch.module.mjs +0 -28
  536. package/esm2022/component/three/custom-series/custom-series.component.mjs +0 -34
  537. package/esm2022/component/three/public-api.mjs +0 -12
  538. package/esm2022/component/three/three-chart/area-3d/area-3d.component.mjs +0 -53
  539. package/esm2022/component/three/three-chart/axes-3d/axes-3d.component.mjs +0 -60
  540. package/esm2022/component/three/three-chart/base-3d-series/base3d-series.component.mjs +0 -29
  541. package/esm2022/component/three/three-chart/block-3d/block-3d.component.mjs +0 -77
  542. package/esm2022/component/three/three-chart/canvas/canvas.component.mjs +0 -24
  543. package/esm2022/component/three/three-chart/directive/canvas-3d-host.mjs +0 -49
  544. package/esm2022/component/three/three-chart/directive/public-api.mjs +0 -3
  545. package/esm2022/component/three/three-chart/directive/series-3d-host.mjs +0 -48
  546. package/esm2022/component/three/three-chart/line-3d/line-3d.component.mjs +0 -42
  547. package/esm2022/component/three/three-chart/model/axes-3d-min-max.mjs +0 -2
  548. package/esm2022/component/three/three-chart/model/axis-3d-point.mjs +0 -2
  549. package/esm2022/component/three/three-chart/model/base-3d-series.mjs +0 -2
  550. package/esm2022/component/three/three-chart/model/base-3d-three-point.mjs +0 -2
  551. package/esm2022/component/three/three-chart/model/block-3d-series.mjs +0 -2
  552. package/esm2022/component/three/three-chart/model/block3d-point.mjs +0 -2
  553. package/esm2022/component/three/three-chart/model/enum/public-api.mjs +0 -2
  554. package/esm2022/component/three/three-chart/model/enum/series-3d-type.mjs +0 -6
  555. package/esm2022/component/three/three-chart/model/i-3d-chart-config.mjs +0 -2
  556. package/esm2022/component/three/three-chart/model/line-3d-point.mjs +0 -2
  557. package/esm2022/component/three/three-chart/model/line-3d-series.mjs +0 -2
  558. package/esm2022/component/three/three-chart/model/public-api.mjs +0 -11
  559. package/esm2022/component/three/three-chart/scene/scene.component.mjs +0 -47
  560. package/esm2022/component/three/three-chart/service/chart-3d.service.mjs +0 -86
  561. package/esm2022/component/three/three-chart/three-chart.component.mjs +0 -46
  562. package/esm2022/component/toggle/toggle.module.mjs +0 -19
  563. package/esm2022/component/toolbar/toolbar.module.mjs +0 -20
  564. package/esm2022/component/tree/tree.module.mjs +0 -24
  565. package/esm2022/directive/auto-position/auto-position.module.mjs +0 -24
  566. package/esm2022/directive/click-outside/click-outside.module.mjs +0 -20
  567. package/esm2022/directive/context-menu/context-menu.module.mjs +0 -24
  568. package/esm2022/directive/disable-control/disable-control.module.mjs +0 -22
  569. package/esm2022/directive/drag-drop/drag-drop.module.mjs +0 -39
  570. package/esm2022/directive/drag-sort/drag-sort.module.mjs +0 -19
  571. package/esm2022/directive/highlight/highlight.module.mjs +0 -20
  572. package/esm2022/directive/hint/hint.module.mjs +0 -24
  573. package/esm2022/directive/let/let.module.mjs +0 -23
  574. package/esm2022/directive/loader/loader.module.mjs +0 -20
  575. package/esm2022/directive/no-autofill/no-autofill.module.mjs +0 -18
  576. package/esm2022/directive/only-number/only-number.module.mjs +0 -18
  577. package/esm2022/directive/resize-drag/resize-drag.module.mjs +0 -18
  578. package/esm2022/directive/scroll-into-view/scroll-into-view.module.mjs +0 -23
  579. package/esm2022/directive/scrollable/scrollable.module.mjs +0 -33
  580. package/esm2022/directive/teta-template/teta-template.module.mjs +0 -24
  581. package/esm2022/directive/tooltip/tooltip.module.mjs +0 -20
  582. package/esm2022/observable/zoneObservable.mjs +0 -15
  583. package/esm2022/pipe/date-pipe/teta-date-pipe.module.mjs +0 -18
  584. package/esm2022/pipe/number-pipe/number-pipe.module.mjs +0 -22
  585. package/esm2022/public-api.mjs +0 -25
  586. package/observable/zoneObservable.d.ts +0 -5
  587. package/pipe/date-pipe/teta-date-pipe.module.d.ts +0 -8
  588. package/pipe/number-pipe/number-pipe.module.d.ts +0 -8
  589. package/public-api.d.ts +0 -22
@@ -1,22 +1,13 @@
1
- import { Component, EventEmitter, Input, Optional, Output, } from '@angular/core';
2
- import { FormGroup, NgForm } from '@angular/forms';
1
+ import { Component, EventEmitter, Input, Optional, Output, QueryList, } from '@angular/core';
2
+ import { ControlContainer, FormGroup, NgForm } from '@angular/forms';
3
3
  import { boolOrFuncCallback } from '../../../../util/bool-or-func';
4
4
  import { FormsUtil } from '../../../../util/forms-util';
5
+ import { TableColumn } from '../../../table/contract/table-column';
6
+ import { PropertyGridItemComponent } from '../property-grid-item/property-grid-item.component';
7
+ import { ExpandItemComponent } from '../../../expand-card/expand-item/expand-item.component';
5
8
  import * as i0 from "@angular/core";
6
9
  import * as i1 from "@angular/forms";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "../../../expand-card/expand-item/expand-item.component";
9
- import * as i4 from "../property-grid-item/property-grid-item.component";
10
10
  export class PropertyGridGroupComponent {
11
- _formGroup;
12
- column;
13
- hideNonEditable;
14
- dict;
15
- item;
16
- horizontal;
17
- controlValueChange = new EventEmitter();
18
- decimalPart;
19
- itemTemplates;
20
11
  get formGroup() {
21
12
  if (this._formGroup instanceof FormGroup) {
22
13
  return this._formGroup;
@@ -34,19 +25,20 @@ export class PropertyGridGroupComponent {
34
25
  }
35
26
  constructor(_formGroup) {
36
27
  this._formGroup = _formGroup;
28
+ this.controlValueChange = new EventEmitter();
37
29
  }
38
30
  trackColumns(index, column) {
39
31
  return column.name;
40
32
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
42
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: PropertyGridGroupComponent, 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 <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: i4.PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] });
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", 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] }); }
43
35
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
45
37
  type: Component,
46
- args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], template: "<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
47
- }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
38
+ 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"] }]
39
+ }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
48
40
  type: Optional
49
- }] }]; }, propDecorators: { column: [{
41
+ }] }], propDecorators: { column: [{
50
42
  type: Input
51
43
  }], hideNonEditable: [{
52
44
  type: Input
@@ -63,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
63
55
  }], itemTemplates: [{
64
56
  type: Input
65
57
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBVXhELE1BQU0sT0FBTywwQkFBMEI7SUEyQkw7SUExQnZCLE1BQU0sQ0FBYztJQUNwQixlQUFlLENBQVU7SUFDekIsSUFBSSxDQUE4QjtJQUNsQyxJQUFJLENBQUk7SUFDUixVQUFVLENBQVU7SUFDbkIsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFDdkQsV0FBVyxDQUFTO0lBQ3BCLGFBQWEsQ0FBa0Q7SUFFeEUsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLFNBQVMsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDeEI7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksTUFBTSxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDN0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBZ0MsVUFBNEI7UUFBNUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7SUFBRyxDQUFDO0lBRWhFLFlBQVksQ0FBQyxLQUFhLEVBQUUsTUFBbUI7UUFDN0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7dUdBL0JVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDJTQ3ZCdkMsMG9EQWdDQSwrZERUYSwwQkFBMEIsc2FBRnRCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MkZBRTVCLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSwwQkFBMEIsaUJBR3JCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MEJBNkIxQixRQUFROzRDQTFCWixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgSUlkTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHsgYm9vbE9yRnVuY0NhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9ib29sLW9yLWZ1bmMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRHcm91cENvbXBvbmVudDxUPiB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIGhpZGVOb25FZGl0YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGljdDogSURpY3Rpb25hcnk8SUlkTmFtZTxhbnk+W10+O1xuICBASW5wdXQoKSBpdGVtOiBUO1xuICBASW5wdXQoKSBob3Jpem9udGFsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+O1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0IGVkaXRhYmxlKCkge1xuICAgIHJldHVybiBib29sT3JGdW5jQ2FsbGJhY2sodGhpcy5jb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4sXG4gICAgICByb3c6IHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybUdyb3VwOiBDb250cm9sQ29udGFpbmVyKSB7fVxuXG4gIHRyYWNrQ29sdW1ucyhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogYW55IHtcbiAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gIH1cbn1cbiIsIjx0ZXRhLWV4cGFuZC1pdGVtPlxuICA8c3BhbiBuZ1Byb2plY3RBcz0naGVhZCc+XG4gICAge3tjb2x1bW4uY2FwdGlvbn19XG4gIDwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbi5jb2x1bW5zOyB0cmFja0J5OiB0cmFja0NvbHVtbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuY29sdW1ucz8ubGVuZ3RoIDwgMVwiPlxuICAgICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0gKm5nSWY9XCJjb2x1bW4uZWRpdGFibGUgfHwgIWhpZGVOb25FZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpY3RdPVwiZGljdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVzXT1cIml0ZW1UZW1wbGF0ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwiY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCI+PC90ZXRhLXByb3BlcnR5LWdyaWQtaXRlbT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbC5jb2x1bW5zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDx0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXAgW2lkXT1cImNvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGljdF09XCJkaWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZXNdPVwiaXRlbVRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU5vbkVkaXRhYmxlXT1cImhpZGVOb25FZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hvcml6b250YWxdPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9XCJjb250cm9sVmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+PC90ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXA+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L3RldGEtZXhwYW5kLWl0ZW0+XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0RBQXdELENBQUM7OztBQVU3RixNQUFNLE9BQU8sMEJBQTBCO0lBVXJDLElBQUksU0FBUztRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBZ0MsVUFBNEI7UUFBNUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFyQmxELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBcUJELENBQUM7SUFFaEUsWUFBWSxDQUFDLEtBQWEsRUFBRSxNQUFtQjtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQzs4R0EvQlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsK1RDM0J2Qyxzc0NBa0NBLHFHRFBhLDBCQUEwQiwyTUFGekIsbUJBQW1CLG1JQUFFLHlCQUF5QiwrTEFGekMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDOzsyRkFJOUIsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNJLDBCQUEwQixpQkFHckIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQzNCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDOzswQkE2QjlDLFFBQVE7eUNBMUJaLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwYW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2V4cGFuZC1jYXJkL2V4cGFuZC1pdGVtL2V4cGFuZC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGb3Jtc1V0aWwuZm9ybVByb3ZpZGVyXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtFeHBhbmRJdGVtQ29tcG9uZW50LCBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnQ8VD4ge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBoaWRlTm9uRWRpdGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpY3Q6IElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPjtcbiAgQElucHV0KCkgaXRlbTogVDtcbiAgQElucHV0KCkgaG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkTmFtZTxhbnk+PigpO1xuICBASW5wdXQoKSBkZWNpbWFsUGFydDogbnVtYmVyO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldCBlZGl0YWJsZSgpIHtcbiAgICByZXR1cm4gYm9vbE9yRnVuY0NhbGxiYWNrKHRoaXMuY29sdW1uLmVkaXRhYmxlKSh7XG4gICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lcikge31cblxuICB0cmFja0NvbHVtbnMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGFueSB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG59XG4iLCI8dGV0YS1leHBhbmQtaXRlbT5cbiAgPHNwYW4gbmdQcm9qZWN0QXM9J2hlYWQnPlxuICAgIHt7Y29sdW1uLmNhcHRpb259fVxuICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiPlxuICAgIEBmb3IgKGNvbCBvZiBjb2x1bW4uY29sdW1uczsgdHJhY2sgdHJhY2tDb2x1bW5zKCRpbmRleCwgY29sKSkge1xuICAgICAgQGlmIChjb2wuY29sdW1ucz8ubGVuZ3RoIDwgMSkge1xuICAgICAgICBAaWYgKGNvbHVtbi5lZGl0YWJsZSB8fCAhaGlkZU5vbkVkaXRhYmxlKSB7XG4gICAgICAgICAgPHRldGEtcHJvcGVydHktZ3JpZC1pdGVtXG4gICAgICAgICAgICBbaWRdPVwiY29sLm5hbWVcIlxuICAgICAgICAgICAgW2RpY3RdPVwiZGljdFwiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVzXT1cIml0ZW1UZW1wbGF0ZXNcIlxuICAgICAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0XCJcbiAgICAgICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlXCJcbiAgICAgICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwiY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgW2hvcml6b250YWxdPVwiaG9yaXpvbnRhbFwiPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoY29sLmNvbHVtbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHRldGEtcHJvcGVydHktZ3JpZC1ncm91cCBbaWRdPVwiY29sLm5hbWVcIlxuICAgICAgICAgIFtkaWN0XT1cImRpY3RcIlxuICAgICAgICAgIFtjb2x1bW5dPVwiY29sXCJcbiAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgICAgICAgICBbZGVjaW1hbFBhcnRdPVwiZGVjaW1hbFBhcnRcIlxuICAgICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9XCJjb250cm9sVmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+PC90ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXA+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbjwvdGV0YS1leHBhbmQtaXRlbT5cbiJdfQ==
@@ -1,28 +1,22 @@
1
- import { Component, EventEmitter, Input, Optional, Output, } from '@angular/core';
2
- import { FormGroup, NgForm } from '@angular/forms';
1
+ import { Component, EventEmitter, Input, Optional, Output, QueryList, } from '@angular/core';
2
+ import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { TranslocoService } from '@ngneat/transloco';
3
4
  import { takeWhile } from 'rxjs/operators';
4
5
  import { Align } from '../../../../common/enum/align.enum';
5
6
  import { boolOrFuncCallback } from '../../../../util/bool-or-func';
6
7
  import { FormsUtil } from '../../../../util/forms-util';
7
8
  import { FilterType } from '../../../filter/enum/filter-type.enum';
9
+ import { TableColumn } from '../../../table/contract/table-column';
10
+ import { TextFieldComponent } from '../../../input/text-field/text-field.component';
11
+ import { ToggleComponent } from '../../../toggle/toggle/toggle.component';
12
+ import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
13
+ import { SelectComponent } from '../../../select/select/select.component';
14
+ import { NgTemplateOutlet } from '@angular/common';
15
+ import { InputComponent } from '../../../input/input/input.component';
8
16
  import * as i0 from "@angular/core";
9
17
  import * as i1 from "@ngneat/transloco";
10
18
  import * as i2 from "@angular/forms";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "../../../date-picker/date-picker/date-picker.component";
13
- import * as i5 from "../../../select/select/select.component";
14
- import * as i6 from "../../../input/input/input.component";
15
- import * as i7 from "../../../input/text-field/text-field.component";
16
- import * as i8 from "../../../toggle/toggle/toggle.component";
17
19
  export class PropertyGridItemComponent {
18
- _transloco;
19
- _formGroup;
20
- column;
21
- hideNonEditable;
22
- dict;
23
- decimalPart;
24
- item;
25
- itemTemplates;
26
20
  get template() {
27
21
  return this.itemTemplates.find(item => item.name === this.column.name);
28
22
  }
@@ -41,21 +35,19 @@ export class PropertyGridItemComponent {
41
35
  row: this.formGroup?.getRawValue(),
42
36
  });
43
37
  }
44
- horizontal;
45
- controlValueChange = new EventEmitter();
46
- align = Align;
47
- filterTypeEnum = FilterType;
48
- _formSub;
49
38
  get caption() {
50
39
  if (this.column.filterType === FilterType.boolean) {
51
40
  return '';
52
41
  }
53
42
  return `${this.column.caption}${this.column.unit ? `, ${this.column.unit}` : ''}`;
54
43
  }
55
- _alive = true;
56
44
  constructor(_transloco, _formGroup) {
57
45
  this._transloco = _transloco;
58
46
  this._formGroup = _formGroup;
47
+ this.controlValueChange = new EventEmitter();
48
+ this.align = Align;
49
+ this.filterTypeEnum = FilterType;
50
+ this._alive = true;
59
51
  }
60
52
  getDict() {
61
53
  const dict = this.dict ? this.dict[this.column.name] : [];
@@ -88,6 +80,7 @@ export class PropertyGridItemComponent {
88
80
  value: column.maxLength,
89
81
  });
90
82
  }
83
+ return null;
91
84
  }
92
85
  ngOnDestroy() {
93
86
  this._alive = false;
@@ -107,15 +100,24 @@ export class PropertyGridItemComponent {
107
100
  });
108
101
  }
109
102
  }
110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1.TranslocoService }, { token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: PropertyGridItemComponent, 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: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"editable || !hideNonEditable\">\n <ng-container *ngIf=\"template; else default\">\n <ng-container *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n </ng-container>\n <ng-template #default>\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\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 </ng-container>\n </ng-template>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.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: i5.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: i6.InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: i7.TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "component", type: i8.ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { 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"] }], viewProviders: [FormsUtil.formProvider] });
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1.TranslocoService }, { token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", 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 *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 [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 [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\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 [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 [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 [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\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 [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"] }], viewProviders: [FormsUtil.formProvider] }); }
112
105
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
114
107
  type: Component,
115
- args: [{ selector: 'teta-property-grid-item', viewProviders: [FormsUtil.formProvider], template: "<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"editable || !hideNonEditable\">\n <ng-container *ngIf=\"template; else default\">\n <ng-container *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n </ng-container>\n <ng-template #default>\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\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 </ng-container>\n </ng-template>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
116
- }], ctorParameters: function () { return [{ type: i1.TranslocoService }, { type: i2.ControlContainer, decorators: [{
108
+ args: [{ selector: 'teta-property-grid-item', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
109
+ InputComponent,
110
+ FormsModule,
111
+ ReactiveFormsModule,
112
+ NgTemplateOutlet,
113
+ SelectComponent,
114
+ DatePickerComponent,
115
+ ToggleComponent,
116
+ TextFieldComponent,
117
+ ], 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 *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 [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 [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\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 [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 [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 [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\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 [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" }]
118
+ }], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.ControlContainer, decorators: [{
117
119
  type: Optional
118
- }] }]; }, propDecorators: { column: [{
120
+ }] }], propDecorators: { column: [{
119
121
  type: Input
120
122
  }], hideNonEditable: [{
121
123
  type: Input
@@ -132,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
132
134
  }], controlValueChange: [{
133
135
  type: Output
134
136
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7QUFVbkUsTUFBTSxPQUFPLHlCQUF5QjtJQWdEMUI7SUFDWTtJQWhEYixNQUFNLENBQWM7SUFDcEIsZUFBZSxDQUFVO0lBQ3pCLElBQUksQ0FBOEI7SUFDbEMsV0FBVyxDQUFTO0lBQ3BCLElBQUksQ0FBSTtJQUNSLGFBQWEsQ0FBa0Q7SUFFeEUsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFD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QUMzQixFQUFFLEVBQUUsQ0FBQztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2lCQUN2QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzt1R0EvR1UseUJBQXlCOzJGQUF6Qix5QkFBeUIsK1RDL0J0Qyx1dkVBK0NBLHl0RURsQmlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MkZBRTVCLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSx5QkFBeUIsaUJBR3BCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MEJBbURwQyxRQUFROzRDQWhERixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkF1QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBBbGlnbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHsgYm9vbE9yRnVuY0NhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9ib29sLW9yLWZ1bmMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBoaWRlTm9uRWRpdGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpY3Q6IElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPjtcbiAgQElucHV0KCkgZGVjaW1hbFBhcnQ6IG51bWJlcjtcbiAgQElucHV0KCkgaXRlbTogVDtcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlczogUXVlcnlMaXN0PFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZT47XG5cbiAgZ2V0IHRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1UZW1wbGF0ZXMuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5jb2x1bW4ubmFtZSk7XG4gIH1cblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldCBlZGl0YWJsZSgpIHtcbiAgICByZXR1cm4gYm9vbE9yRnVuY0NhbGxiYWNrKHRoaXMuY29sdW1uLmVkaXRhYmxlKSh7XG4gICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpIGhvcml6b250YWw6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjb250cm9sVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElJZE5hbWU8YW55Pj4oKTtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgZmlsdGVyVHlwZUVudW0gPSBGaWx0ZXJUeXBlO1xuXG4gIHByaXZhdGUgX2Zvcm1TdWI6IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgY2FwdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLmJvb2xlYW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuY29sdW1uLmNhcHRpb259JHtcbiAgICAgIHRoaXMuY29sdW1uLnVuaXQgPyBgLCAke3RoaXMuY29sdW1uLnVuaXR9YCA6ICcnXG4gICAgfWA7XG4gIH1cblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdHJhbnNsb2NvOiBUcmFuc2xvY29TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lclxuICApIHt9XG5cbiAgZ2V0RGljdCgpIHtcbiAgICBjb25zdCBkaWN0ID0gdGhpcy5kaWN0ID8gdGhpcy5kaWN0W3RoaXMuY29sdW1uLm5hbWVdIDogW107XG4gICAgaWYgKHRoaXMuY29sdW1uLnBhcmVudE5hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBkaWN0Py5maWx0ZXIoXG4gICAgICAgIChkaWN0SXRlbTogSUlkTmFtZTxhbnk+KSA9PlxuICAgICAgICAgIGRpY3RJdGVtLnBhcmVudElkID09PVxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpW3RoaXMuY29sdW1uLnBhcmVudE5hbWVdXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGljdDtcbiAgfVxuXG4gIGNvbnRyb2xJc0ludmFsaWQoY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBGb3Jtc1V0aWwuY29udHJvbElzSW52YWxpZCh0aGlzLmZvcm1Hcm91cCwgY29udHJvbE5hbWUpO1xuICB9XG5cbiAgZ2V0RXJyb3IoY29sdW1uOiBUYWJsZUNvbHVtbik6IHN0cmluZyB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5maWVsZF9pc19yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1pbl92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5taW5WYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF9sZW5ndGgnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWF4TGVuZ3RoLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLl9mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmNvbHVtbiAmJiB0aGlzLml0ZW0pIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlZ2lzdGVyQ29udHJvbChcbiAgICAgICAgdGhpcy5jb2x1bW4ubmFtZSxcbiAgICAgICAgRm9ybXNVdGlsLmluaXRDb250cm9sRnJvbUNvbHVtbih0aGlzLmNvbHVtbiwgdGhpcy5pdGVtKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9mb3JtU3ViID0gdGhpcy5mb3JtR3JvdXA/LmNvbnRyb2xzW3RoaXMuY29sdW1uLm5hbWVdPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIGlkOiBfLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5jb2x1bW4ubmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8dGV0YS1pbnB1dCBbbGFiZWxdPVwiY2FwdGlvblwiXG4gICAgICAgICAgICBbaGludF09XCJjb2x1bW4uaGludFwiXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgKm5nSWY9XCJlZGl0YWJsZSB8fCAhaGlkZU5vbkVkaXRhYmxlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBkZWZhdWx0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlLnRlbXBsYXRlO2NvbnRleHQ6IHskaW1wbGljaXQ6IGZvcm1Hcm91cD8uZ2V0KGNvbHVtbi5uYW1lKX1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4uZmlsdGVyVHlwZVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm1Hcm91cD8uZ2V0KGNvbHVtbi5uYW1lKVwiPlxuICAgICAgPHRldGEtc2VsZWN0IGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmaWx0ZXJUeXBlRW51bS5saXN0XCJcbiAgICAgICAgICAgICAgICAgICBbc2VhcmNoUmVmXT1cImdldERpY3QoKT8ubGVuZ3RoID4gMTAgPyAnbmFtZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgW2FsbG93TnVsbF09XCIhY29sdW1uLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZVJlZl09XCInaWQnXCJcbiAgICAgICAgICAgICAgICAgICBbdGV4dFJlZl09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPjwvdGV0YS1zZWxlY3Q+XG4gICAgICA8dGV0YS1kYXRlLXBpY2tlciAqbmdTd2l0Y2hDYXNlPVwiZmlsdGVyVHlwZUVudW0uZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+PC90ZXRhLWRhdGUtcGlja2VyPlxuICAgICAgPHRldGEtdG9nZ2xlICpuZ1N3aXRjaENhc2U9XCJmaWx0ZXJUeXBlRW51bS5ib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+XG4gICAgICAgIHt7Y29sdW1uLmNhcHRpb259fVxuICAgICAgPC90ZXRhLXRvZ2dsZT5cbiAgICAgIDx0ZXRhLXRleHQtZmllbGQgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImNvbHVtbi5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXIgPyBkZWNpbWFsUGFydCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbb25seU51bWJlcl09XCJjb2x1bW4uZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZUVudW0ubnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbHVtbi5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgKm5nSWY9XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgbmdQcm9qZWN0QXM9XCJtZXNzYWdlXCJcbiAgICAgICBjbGFzcz1cImNvbG9yLXJlZC01MFwiPlxuICAgIHt7Z2V0RXJyb3IoY29sdW1uKX19XG4gIDwvZGl2PlxuPC90ZXRhLWlucHV0PlxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENB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QUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBdUJHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTmdGb3JtLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSURpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IElJZE5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7IEFsaWduIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9lbnVtL2ZpbHRlci10eXBlLmVudW0nO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RvZ2dsZS90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBJbnB1dENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG4gIEBJbnB1dCgpIGl0ZW06IFQ7XG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+O1xuXG4gIGdldCB0ZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVGVtcGxhdGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuY29sdW1uLm5hbWUpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXAuZm9ybTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZWRpdGFibGUoKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayh0aGlzLmNvbHVtbi5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgIHJvdzogdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKCksXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBob3Jpem9udGFsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG4gIGFsaWduID0gQWxpZ247XG4gIGZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZTtcblxuICBwcml2YXRlIF9mb3JtU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGNhcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbi5jYXB0aW9ufSR7XG4gICAgICB0aGlzLmNvbHVtbi51bml0ID8gYCwgJHt0aGlzLmNvbHVtbi51bml0fWAgOiAnJ1xuICAgIH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3RyYW5zbG9jbzogVHJhbnNsb2NvU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXA6IENvbnRyb2xDb250YWluZXJcbiAgKSB7fVxuXG4gIGdldERpY3QoKSB7XG4gICAgY29uc3QgZGljdCA9IHRoaXMuZGljdCA/IHRoaXMuZGljdFt0aGlzLmNvbHVtbi5uYW1lXSA6IFtdO1xuICAgIGlmICh0aGlzLmNvbHVtbi5wYXJlbnROYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGljdD8uZmlsdGVyKFxuICAgICAgICAoZGljdEl0ZW06IElJZE5hbWU8YW55PikgPT5cbiAgICAgICAgICBkaWN0SXRlbS5wYXJlbnRJZCA9PT1cbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKVt0aGlzLmNvbHVtbi5wYXJlbnROYW1lXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBjb250cm9sSXNJbnZhbGlkKGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQodGhpcy5mb3JtR3JvdXAsIGNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIGdldEVycm9yKGNvbHVtbjogVGFibGVDb2x1bW4pe1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cD8uZ2V0KGNvbHVtbi5uYW1lKTtcbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMuZmllbGRfaXNfcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5taW5fdmFsdWUnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWluVmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5tYXhfdmFsdWUnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWF4VmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5tYXhfbGVuZ3RoJywge1xuICAgICAgICB2YWx1ZTogY29sdW1uLm1heExlbmd0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLl9mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmNvbHVtbiAmJiB0aGlzLml0ZW0pIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlZ2lzdGVyQ29udHJvbChcbiAgICAgICAgdGhpcy5jb2x1bW4ubmFtZSxcbiAgICAgICAgRm9ybXNVdGlsLmluaXRDb250cm9sRnJvbUNvbHVtbih0aGlzLmNvbHVtbiwgdGhpcy5pdGVtKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9mb3JtU3ViID0gdGhpcy5mb3JtR3JvdXA/LmNvbnRyb2xzW3RoaXMuY29sdW1uLm5hbWVdPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIGlkOiBfLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5jb2x1bW4ubmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGVkaXRhYmxlIHx8ICFoaWRlTm9uRWRpdGFibGUpIHtcbiAgPHRldGEtaW5wdXQgW2xhYmVsXT1cImNhcHRpb25cIlxuICAgIFtoaW50XT1cImNvbHVtbi5oaW50XCJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgW2hvcml6b250YWxdPVwiaG9yaXpvbnRhbFwiXG4gICAgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXG4gICAgPlxuICAgIEBpZiAodGVtcGxhdGUpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZS50ZW1wbGF0ZTtjb250ZXh0OiB7JGltcGxpY2l0OiBmb3JtR3JvdXA/LmdldChjb2x1bW4ubmFtZSl9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKGZvcm1Hcm91cD8uZ2V0KGNvbHVtbi5uYW1lKSkge1xuICAgICAgICBAc3dpdGNoIChjb2x1bW4uZmlsdGVyVHlwZSkge1xuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5saXN0KSB7XG4gICAgICAgICAgICA8dGV0YS1zZWxlY3QgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgIFtzZWFyY2hSZWZdPVwiZ2V0RGljdCgpPy5sZW5ndGggPiAxMCA/ICduYW1lJyA6ICcnXCJcbiAgICAgICAgICAgICAgW2FsbG93TnVsbF09XCIhY29sdW1uLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZ2V0RGljdCgpXCJcbiAgICAgICAgICAgICAgW3ZhbHVlUmVmXT1cIidpZCdcIlxuICAgICAgICAgICAgICBbdGV4dFJlZl09XCInbmFtZSdcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+PC90ZXRhLXNlbGVjdD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmRhdGUpIHtcbiAgICAgICAgICAgIDx0ZXRhLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+PC90ZXRhLWRhdGUtcGlja2VyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0uYm9vbGVhbikge1xuICAgICAgICAgICAgPHRldGEtdG9nZ2xlXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj5cbiAgICAgICAgICAgICAge3tjb2x1bW4uY2FwdGlvbn19XG4gICAgICAgICAgICA8L3RldGEtdG9nZ2xlPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8dGV0YS10ZXh0LWZpZWxkIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbZGVjaW1hbFBhcnRdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlciA/IGRlY2ltYWxQYXJ0IDogbnVsbFwiXG4gICAgICAgICAgICAgIFtvbmx5TnVtYmVyXT1cImNvbHVtbi5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXJcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29sdW1uLmNhcHRpb25cIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgIEBpZiAoZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpKSB7XG4gICAgICAgIEBzd2l0Y2ggKGNvbHVtbi5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmxpc3QpIHtcbiAgICAgICAgICAgIDx0ZXRhLXNlbGVjdCBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFJlZl09XCJnZXREaWN0KCk/Lmxlbmd0aCA+IDEwID8gJ25hbWUnIDogJydcIlxuICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cIiFjb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICBbdmFsdWVSZWZdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0UmVmXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIj48L3RldGEtc2VsZWN0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0uZGF0ZSkge1xuICAgICAgICAgICAgPHRldGEtZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj48L3RldGEtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5ib29sZWFuKSB7XG4gICAgICAgICAgICA8dGV0YS10b2dnbGVcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPlxuICAgICAgICAgICAgICB7e2NvbHVtbi5jYXB0aW9ufX1cbiAgICAgICAgICAgIDwvdGV0YS10b2dnbGU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDx0ZXRhLXRleHQtZmllbGQgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4uZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZUVudW0ubnVtYmVyID8gZGVjaW1hbFBhcnQgOiBudWxsXCJcbiAgICAgICAgICAgICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4uY2FwdGlvblwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj48L3RldGEtdGV4dC1maWVsZD5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIEBpZiAoY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJtZXNzYWdlXCJcbiAgICAgICAgY2xhc3M9XCJjb2xvci1yZWQtNTBcIj5cbiAgICAgICAge3tnZXRFcnJvcihjb2x1bW4pfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC90ZXRhLWlucHV0PlxufVxuIl19
@@ -1,21 +1,20 @@
1
- import { Directive, Input } from '@angular/core';
1
+ import { Directive, Input, TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class PropertyGridItemDescriptionDirective {
4
- template;
5
- name;
6
4
  constructor(template) {
7
5
  this.template = template;
8
6
  }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemDescriptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
10
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: PropertyGridItemDescriptionDirective, selector: "[tetaPropertyGridItemDescription]", inputs: { name: ["tetaPropertyGridItemDescription", "name"] }, ngImport: i0 });
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridItemDescriptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: PropertyGridItemDescriptionDirective, isStandalone: true, selector: "[tetaPropertyGridItemDescription]", inputs: { name: ["tetaPropertyGridItemDescription", "name"] }, ngImport: i0 }); }
11
9
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridItemDescriptionDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridItemDescriptionDirective, decorators: [{
13
11
  type: Directive,
14
12
  args: [{
15
- selector: '[tetaPropertyGridItemDescription]'
13
+ selector: '[tetaPropertyGridItemDescription]',
14
+ standalone: true
16
15
  }]
17
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
16
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
18
17
  type: Input,
19
18
  args: ['tetaPropertyGridItemDescription']
20
19
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7O0FBSzVELE1BQU0sT0FBTyxvQ0FBb0M7SUFHNUI7SUFGdUIsSUFBSSxDQUFTO0lBRXZELFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQzdDLENBQUM7dUdBSlUsb0NBQW9DOzJGQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztpQkFDOUM7a0dBRTJDLElBQUk7c0JBQTdDLEtBQUs7dUJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIHtcbiAgQElucHV0KCd0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uJykgbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICB9XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU01RCxNQUFNLE9BQU8sb0NBQW9DO0lBRy9DLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQzdDLENBQUM7OEdBSlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2dGQUUyQyxJQUFJO3NCQUE3QyxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmUge1xuICBASW5wdXQoJ3RldGFQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb24nKSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +1,13 @@
1
- import { Component, ContentChildren, EventEmitter, HostBinding, Input, Optional, Output, } from '@angular/core';
2
- import { FormGroup, NgForm } from '@angular/forms';
1
+ import { Component, ContentChildren, EventEmitter, HostBinding, Input, Optional, Output, QueryList, } from '@angular/core';
2
+ import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { boolOrFuncCallback } from '../../../util/bool-or-func';
4
4
  import { FormsUtil } from '../../../util/forms-util';
5
5
  import { PropertyGridItemDescriptionDirective } from './property-grid-item-description.directive';
6
+ import { PropertyGridGroupComponent } from './property-grid-group/property-grid-group.component';
7
+ import { PropertyGridItemComponent } from './property-grid-item/property-grid-item.component';
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "@angular/forms";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "./property-grid-group/property-grid-group.component";
10
- import * as i4 from "./property-grid-item/property-grid-item.component";
11
10
  export class PropertyGridComponent {
12
- _formGroup;
13
- formClass = true;
14
- itemTemplates;
15
- hideNonEditable;
16
- columns;
17
- dict;
18
11
  set item(item) {
19
12
  this._item = item;
20
13
  if (this.formGroup) {
@@ -26,11 +19,6 @@ export class PropertyGridComponent {
26
19
  get item() {
27
20
  return this._item;
28
21
  }
29
- horizontal;
30
- decimalPart;
31
- controlValueChange = new EventEmitter();
32
- _alive = true;
33
- _item;
34
22
  get formGroup() {
35
23
  if (this._formGroup instanceof FormGroup) {
36
24
  return this._formGroup;
@@ -42,6 +30,9 @@ export class PropertyGridComponent {
42
30
  }
43
31
  constructor(_formGroup) {
44
32
  this._formGroup = _formGroup;
33
+ this.formClass = true;
34
+ this.controlValueChange = new EventEmitter();
35
+ this._alive = true;
45
36
  }
46
37
  getEditable(column) {
47
38
  return boolOrFuncCallback(column.editable)({
@@ -75,15 +66,20 @@ export class PropertyGridComponent {
75
66
  getDictValue(value, name) {
76
67
  return this.dict[name]?.find(_ => _.id === value);
77
68
  }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
79
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: PropertyGridComponent, 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: "<ng-container *ngIf='columns?.length'>\n <ng-container *ngFor='let column of columns; trackBy: trackColumns'>\n <teta-property-grid-item *ngIf='column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)'\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 <teta-property-grid-group *ngIf='column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)'\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 </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: i4.PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] });
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", 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: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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] }); }
80
71
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PropertyGridComponent, decorators: [{
82
73
  type: Component,
83
- args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], template: "<ng-container *ngIf='columns?.length'>\n <ng-container *ngFor='let column of columns; trackBy: trackColumns'>\n <teta-property-grid-item *ngIf='column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)'\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 <teta-property-grid-group *ngIf='column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)'\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 </ng-container>\n</ng-container>\n", styles: [":host{padding:12px 8px}\n"] }]
84
- }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
74
+ args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [
75
+ PropertyGridItemComponent,
76
+ FormsModule,
77
+ ReactiveFormsModule,
78
+ PropertyGridGroupComponent,
79
+ ], 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"] }]
80
+ }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
85
81
  type: Optional
86
- }] }]; }, propDecorators: { formClass: [{
82
+ }] }], propDecorators: { formClass: [{
87
83
  type: HostBinding,
88
84
  args: ['class.form-container']
89
85
  }], itemTemplates: [{
@@ -104,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
104
100
  }], controlValueChange: [{
105
101
  type: Output
106
102
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQVFsRyxNQUFNLE9BQU8scUJBQXFCO0lBb0NBO0lBbkNLLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFdEQsYUFBYSxDQUFrRDtJQUN0RCxlQUFlLENBQVU7SUFDekIsT0FBTyxDQUFnQjtJQUN2QixJQUFJLENBQThCO0lBQzNDLElBQWEsSUFBSSxDQUFDLElBQU87UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04s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ZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBV0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1wcm9wZXJ0eS1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtGb3Jtc1V0aWwuZm9ybVByb3ZpZGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLWNvbnRhaW5lcicpIGZvcm1DbGFzcyA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlKVxuICBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIHNldCBpdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLl9pdGVtID0gaXRlbTtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoaXRlbSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBpdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG4gIEBJbnB1dCgpIGhvcml6b250YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkTmFtZTxhbnk+PigpO1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfaXRlbTogVDtcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lcikge31cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoXyA9PiBfLnBhcmVudE5hbWUgPT09IGV2ZW50Lm5hbWUpO1xuICAgIGlmIChhZmZlY3RlZD8ubGVuZ3RoKSB7XG4gICAgICBhZmZlY3RlZC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICB0cmFja0NvbHVtbnMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGFueSB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaWN0VmFsdWUodmFsdWU6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGljdFtuYW1lXT8uZmluZChfID0+IF8uaWQgPT09IHZhbHVlKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj0nY29sdW1ucz8ubGVuZ3RoJz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tDb2x1bW5zJz5cbiAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0gKm5nSWY9J2NvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxICYmIChnZXRFZGl0YWJsZShjb2x1bW4pIHx8ICFoaWRlTm9uRWRpdGFibGUpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGljdF09J2RpY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPSdjb2x1bW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtXT0naXRlbSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT0nY29sdW1uLm5hbWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVzXT0naXRlbVRlbXBsYXRlcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxQYXJ0XT0nZGVjaW1hbFBhcnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtob3Jpem9udGFsXT0naG9yaXpvbnRhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9J29uQ29udHJvbFZhbHVlQ2hhbmdlKCRldmVudCknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPSdoaWRlTm9uRWRpdGFibGUnPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0+XG4gICAgPHRldGEtcHJvcGVydHktZ3JpZC1ncm91cCAqbmdJZj0nY29sdW1uLmNvbHVtbnM/Lmxlbmd0aCA+IDAgJiYgKGdldEVkaXRhYmxlKGNvbHVtbikgfHwgIWhpZGVOb25FZGl0YWJsZSknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPSdjb2x1bW4ubmFtZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWN0XT0nZGljdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPSdjb2x1bW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09J2l0ZW0nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVRlbXBsYXRlc109J2l0ZW1UZW1wbGF0ZXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVjaW1hbFBhcnRdPSdkZWNpbWFsUGFydCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaG9yaXpvbnRhbF09J2hvcml6b250YWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udHJvbFZhbHVlQ2hhbmdlKT0nb25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPSdoaWRlTm9uRWRpdGFibGUnPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7QUFlOUYsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxJQUFhLElBQUksQ0FBQyxJQUFPO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFD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R2YsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQzNCLElBQUksV0FDUDt3QkFDTCx5QkFBeUI7d0JBQ3pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQiwwQkFBMEI7cUJBQzdCOzswQkFzQ1UsUUFBUTt5Q0FuQ2dCLFNBQVM7c0JBQTdDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUVuQyxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0NBQW9DO2dCQUU1QyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sSUFBSTtzQkFBaEIsS0FBSztnQkFXRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXAsIE5nRm9ybSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgUHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLWNvbnRhaW5lcicpIGZvcm1DbGFzcyA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlKVxuICBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIHNldCBpdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLl9pdGVtID0gaXRlbTtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoaXRlbSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBpdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG4gIEBJbnB1dCgpIGhvcml6b250YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkTmFtZTxhbnk+PigpO1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfaXRlbTogVDtcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lcikge31cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoXyA9PiBfLnBhcmVudE5hbWUgPT09IGV2ZW50Lm5hbWUpO1xuICAgIGlmIChhZmZlY3RlZD8ubGVuZ3RoKSB7XG4gICAgICBhZmZlY3RlZC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICB0cmFja0NvbHVtbnMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGFueSB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaWN0VmFsdWUodmFsdWU6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGljdFtuYW1lXT8uZmluZChfID0+IF8uaWQgPT09IHZhbHVlKTtcbiAgfVxufVxuIiwiQGlmIChjb2x1bW5zPy5sZW5ndGgpIHtcbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIHRyYWNrQ29sdW1ucygkaW5kZXgsIGNvbHVtbikpIHtcbiAgICBAaWYgKGNvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxICYmIChnZXRFZGl0YWJsZShjb2x1bW4pIHx8ICFoaWRlTm9uRWRpdGFibGUpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW1cbiAgICAgICAgW2RpY3RdPSdkaWN0J1xuICAgICAgICBbY29sdW1uXT0nY29sdW1uJ1xuICAgICAgICBbaXRlbV09J2l0ZW0nXG4gICAgICAgIFtpZF09J2NvbHVtbi5uYW1lJ1xuICAgICAgICBbaXRlbVRlbXBsYXRlc109J2l0ZW1UZW1wbGF0ZXMnXG4gICAgICAgIFtkZWNpbWFsUGFydF09J2RlY2ltYWxQYXJ0J1xuICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xuICAgICAgICBbaG9yaXpvbnRhbF09J2hvcml6b250YWwnXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPSdvbkNvbnRyb2xWYWx1ZUNoYW5nZSgkZXZlbnQpJ1xuICAgICAgW2hpZGVOb25FZGl0YWJsZV09J2hpZGVOb25FZGl0YWJsZSc+PC90ZXRhLXByb3BlcnR5LWdyaWQtaXRlbT5cbiAgICB9XG4gICAgQGlmIChjb2x1bW4uY29sdW1ucz8ubGVuZ3RoID4gMCAmJiAoZ2V0RWRpdGFibGUoY29sdW1uKSB8fCAhaGlkZU5vbkVkaXRhYmxlKSkge1xuICAgICAgPHRldGEtcHJvcGVydHktZ3JpZC1ncm91cFxuICAgICAgICBbaWRdPSdjb2x1bW4ubmFtZSdcbiAgICAgICAgW2RpY3RdPSdkaWN0J1xuICAgICAgICBbY29sdW1uXT0nY29sdW1uJ1xuICAgICAgICBbaXRlbV09J2l0ZW0nXG4gICAgICAgIFtpdGVtVGVtcGxhdGVzXT0naXRlbVRlbXBsYXRlcydcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT0nZGVjaW1hbFBhcnQnXG4gICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXG4gICAgICAgIFtob3Jpem9udGFsXT0naG9yaXpvbnRhbCdcbiAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9J29uQ29udHJvbFZhbHVlQ2hhbmdlKCRldmVudCknXG4gICAgICBbaGlkZU5vbkVkaXRhYmxlXT0naGlkZU5vbkVkaXRhYmxlJz48L3RldGEtcHJvcGVydHktZ3JpZC1ncm91cD5cbiAgICB9XG4gIH1cbn1cbiJdfQ==