@tetacom/ng-components 1.4.4 → 1.4.7

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 (327) hide show
  1. package/assets/icons.svg +54 -0
  2. package/component/avatar/avatar/avatar.component.d.ts +1 -1
  3. package/component/button/button/button.component.d.ts +1 -1
  4. package/component/date-picker/base-calendar.d.ts +1 -1
  5. package/component/date-picker/base-picker.d.ts +1 -1
  6. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
  7. package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
  8. package/component/date-picker/date-range/date-range.component.d.ts +1 -1
  9. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +1 -1
  10. package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
  11. package/component/date-picker/day-picker/day-picker.component.d.ts +4 -4
  12. package/component/date-picker/month-picker/month-picker.component.d.ts +2 -2
  13. package/component/date-picker/public-api.d.ts +2 -2
  14. package/component/date-picker/year-picker/year-picker.component.d.ts +3 -3
  15. package/component/filter/boolean-filter/boolean-filter.component.d.ts +3 -3
  16. package/component/message/model/message.d.ts +1 -1
  17. package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +11 -17
  18. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +18 -19
  19. package/component/property-grid/property-grid/property-grid.component.d.ts +10 -15
  20. package/component/property-grid/public-api.d.ts +0 -1
  21. package/component/switch/switch/switch.component.d.ts +1 -1
  22. package/component/table/table-row/table-row.component.d.ts +2 -2
  23. package/component/tree/tree/tree.component.d.ts +1 -1
  24. package/docs/avatarDocs.mdx +78 -72
  25. package/docs/datePickerDocs.mdx +3 -3
  26. package/docs/dateRangeDocs.mdx +3 -3
  27. package/docs/delimiterDocs.mdx +78 -78
  28. package/docs/dropdownDocs.mdx +143 -123
  29. package/docs/expandCardlDocs.mdx +49 -45
  30. package/docs/expandPanelDocs.mdx +104 -92
  31. package/docs/fileAreaDocs.mdx +64 -59
  32. package/docs/inputDocs.mdx +70 -67
  33. package/docs/listDocs.mdx +14 -8
  34. package/docs/messageDocs.mdx +47 -34
  35. package/docs/progressBarDocs.mdx +65 -51
  36. package/docs/propertyGridDocs.mdx +173 -115
  37. package/docs/radioDocs.mdx +92 -80
  38. package/docs/resizePanelDocs.mdx +79 -67
  39. package/docs/selectDocs.mdx +262 -220
  40. package/docs/switchDocs.mdx +86 -73
  41. package/docs/tagDocs.mdx +17 -11
  42. package/docs/toggleDocs.mdx +42 -36
  43. package/docs/toolbarDocs.mdx +14 -8
  44. package/docs/treeDocs.mdx +108 -89
  45. package/esm2022/common/contract/teta-content-ref.mjs +1 -1
  46. package/esm2022/common/enum/align.enum.mjs +1 -1
  47. package/esm2022/common/enum/vertical-align.enum.mjs +1 -1
  48. package/esm2022/common/service/dynamic-component.service.mjs +1 -1
  49. package/esm2022/common/util/array-util.mjs +5 -7
  50. package/esm2022/common/util/dom-util.mjs +2 -3
  51. package/esm2022/common/util/position-util.mjs +6 -14
  52. package/esm2022/component/accordion/accordion-content.directive.mjs +2 -2
  53. package/esm2022/component/accordion/public-api.mjs +1 -1
  54. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +2 -3
  55. package/esm2022/component/autocomplete/public-api.mjs +1 -1
  56. package/esm2022/component/avatar/avatar/avatar.component.mjs +4 -5
  57. package/esm2022/component/avatar/model/avatar-color.enum.mjs +1 -1
  58. package/esm2022/component/avatar/public-api.mjs +1 -1
  59. package/esm2022/component/button/button/button.component.mjs +2 -2
  60. package/esm2022/component/button/public-api.mjs +1 -1
  61. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -24
  62. package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -1
  63. package/esm2022/component/chart-3d/public-api.mjs +1 -1
  64. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  65. package/esm2022/component/checkbox/public-api.mjs +1 -1
  66. package/esm2022/component/date-picker/base-calendar.mjs +7 -14
  67. package/esm2022/component/date-picker/base-picker.mjs +3 -2
  68. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +4 -11
  69. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +5 -6
  70. package/esm2022/component/date-picker/date-range/date-range.component.mjs +6 -14
  71. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +4 -4
  72. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +5 -6
  73. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -9
  74. package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
  75. package/esm2022/component/date-picker/model/from-to.model.mjs +1 -1
  76. package/esm2022/component/date-picker/model/min-max-date.model.mjs +1 -1
  77. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -4
  78. package/esm2022/component/date-picker/public-api.mjs +3 -3
  79. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
  80. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -7
  81. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +2 -2
  82. package/esm2022/component/delimiter/public-api.mjs +1 -1
  83. package/esm2022/component/divider/divider/divider.component.mjs +4 -4
  84. package/esm2022/component/divider/public-api.mjs +1 -1
  85. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +2 -3
  86. package/esm2022/component/dropdown/dropdown-base.mjs +11 -22
  87. package/esm2022/component/dropdown/dropdown-content.directive.mjs +2 -2
  88. package/esm2022/component/dropdown/dropdown-head.directive.mjs +2 -2
  89. package/esm2022/component/dropdown/dropdown.directive.mjs +4 -5
  90. package/esm2022/component/dropdown/public-api.mjs +1 -1
  91. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +4 -10
  92. package/esm2022/component/dynamic-component/public-api.mjs +1 -1
  93. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +4 -5
  94. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +4 -4
  95. package/esm2022/component/expand-card/public-api.mjs +1 -1
  96. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +4 -9
  97. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +1 -1
  98. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +1 -1
  99. package/esm2022/component/expand-panel/public-api.mjs +1 -1
  100. package/esm2022/component/file-upload/file-item/file-item.component.mjs +1 -1
  101. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +3 -8
  102. package/esm2022/component/file-upload/public-api.mjs +1 -1
  103. package/esm2022/component/filter/base/filter-base.mjs +1 -1
  104. package/esm2022/component/filter/base/filter-component-base.mjs +1 -1
  105. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +5 -11
  106. package/esm2022/component/filter/contarct/boolean-filter.mjs +1 -1
  107. package/esm2022/component/filter/contarct/date-filter-value.mjs +3 -3
  108. package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
  109. package/esm2022/component/filter/contarct/filter-component-map.mjs +2 -4
  110. package/esm2022/component/filter/contarct/filter-item.mjs +2 -2
  111. package/esm2022/component/filter/contarct/filter-state.mjs +1 -1
  112. package/esm2022/component/filter/contarct/list-filter.mjs +1 -1
  113. package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -1
  114. package/esm2022/component/filter/contarct/sort-param.mjs +1 -1
  115. package/esm2022/component/filter/contarct/string-filter.mjs +1 -1
  116. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -8
  117. package/esm2022/component/filter/enum/list-filter-type.enum.mjs +1 -1
  118. package/esm2022/component/filter/filter-host/filter-host.component.mjs +2 -3
  119. package/esm2022/component/filter/list-filter/list-filter.component.mjs +5 -14
  120. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -8
  121. package/esm2022/component/filter/public-api.mjs +1 -1
  122. package/esm2022/component/filter/string-filter/string-filter.component.mjs +4 -9
  123. package/esm2022/component/icon/icon/icon.component.mjs +3 -3
  124. package/esm2022/component/icon/icon-file/icon-file.component.mjs +2 -3
  125. package/esm2022/component/icon/icon-sprite.directive.mjs +2 -2
  126. package/esm2022/component/icon/icon.service.mjs +5 -6
  127. package/esm2022/component/icon/public-api.mjs +1 -1
  128. package/esm2022/component/input/color-input/color-input.component.mjs +3 -3
  129. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +2 -2
  130. package/esm2022/component/input/input/input.component.mjs +4 -4
  131. package/esm2022/component/input/public-api.mjs +1 -1
  132. package/esm2022/component/input/text-field/text-field.component.mjs +3 -9
  133. package/esm2022/component/message/message/message.component.mjs +3 -7
  134. package/esm2022/component/message/message-host/message-host.component.mjs +5 -9
  135. package/esm2022/component/message/message.service.mjs +2 -2
  136. package/esm2022/component/message/model/message.mjs +2 -2
  137. package/esm2022/component/message/public-api.mjs +1 -1
  138. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -8
  139. package/esm2022/component/modal/dialog.service.mjs +1 -1
  140. package/esm2022/component/modal/modal-container/modal-container.component.mjs +4 -11
  141. package/esm2022/component/modal/modal.module.mjs +4 -12
  142. package/esm2022/component/modal/modal.service.mjs +1 -1
  143. package/esm2022/component/modal/model/current-modal.mjs +1 -1
  144. package/esm2022/component/modal/model/i-modal-result.mjs +1 -1
  145. package/esm2022/component/modal/model/modal-instance.mjs +1 -1
  146. package/esm2022/component/pager/model/pager-state.mjs +3 -2
  147. package/esm2022/component/pager/pager/pager.component.mjs +1 -1
  148. package/esm2022/component/pager/public-api.mjs +1 -1
  149. package/esm2022/component/pager/util/pager-util.mjs +1 -1
  150. package/esm2022/component/panel/panel/panel.component.mjs +4 -10
  151. package/esm2022/component/panel/public-api.mjs +1 -1
  152. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +5 -6
  153. package/esm2022/component/progress-bar/public-api.mjs +1 -1
  154. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +15 -49
  155. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +44 -58
  156. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +2 -2
  157. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +24 -46
  158. package/esm2022/component/property-grid/public-api.mjs +1 -2
  159. package/esm2022/component/radio/public-api.mjs +1 -1
  160. package/esm2022/component/radio/radio/radio.component.mjs +7 -11
  161. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  162. package/esm2022/component/resize-panel/public-api.mjs +1 -1
  163. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +5 -10
  164. package/esm2022/component/select/public-api.mjs +1 -1
  165. package/esm2022/component/select/select/select.component.mjs +10 -18
  166. package/esm2022/component/select/select-option.directive.mjs +2 -2
  167. package/esm2022/component/select/select-value.directive.mjs +2 -2
  168. package/esm2022/component/sidebar/public-api.mjs +1 -1
  169. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +6 -12
  170. package/esm2022/component/sidebar/sidebar-position.enum.mjs +1 -1
  171. package/esm2022/component/switch/public-api.mjs +1 -1
  172. package/esm2022/component/switch/switch/switch.component.mjs +4 -7
  173. package/esm2022/component/switch/switch-button/switch-button.component.mjs +2 -3
  174. package/esm2022/component/switch/switch.service.mjs +2 -2
  175. package/esm2022/component/table/base/cell-component-base.mjs +10 -22
  176. package/esm2022/component/table/base/detail-component-base.mjs +1 -1
  177. package/esm2022/component/table/base/head-cell-component-base.mjs +2 -2
  178. package/esm2022/component/table/cell/cell.component.mjs +4 -4
  179. package/esm2022/component/table/cell-host/cell-host.component.mjs +1 -1
  180. package/esm2022/component/table/contract/cell-components-map.mjs +2 -4
  181. package/esm2022/component/table/contract/column-reorder-event.mjs +1 -1
  182. package/esm2022/component/table/contract/sort-event.mjs +1 -1
  183. package/esm2022/component/table/contract/table-column.mjs +3 -3
  184. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -8
  185. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +4 -9
  186. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +4 -9
  187. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -6
  188. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +7 -13
  189. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -9
  190. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +4 -8
  191. package/esm2022/component/table/enum/edit-event.enum.mjs +1 -1
  192. package/esm2022/component/table/enum/edit-type.enum.mjs +1 -1
  193. package/esm2022/component/table/enum/select-type.enum.mjs +1 -1
  194. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +4 -11
  195. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -4
  196. package/esm2022/component/table/public-api.mjs +1 -1
  197. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +4 -6
  198. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -7
  199. package/esm2022/component/table/service/table.service.mjs +35 -52
  200. package/esm2022/component/table/table/table.component.mjs +12 -24
  201. package/esm2022/component/table/table-body/table-body.component.mjs +15 -21
  202. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +5 -6
  203. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +4 -5
  204. package/esm2022/component/table/table-head/table-head.component.mjs +10 -10
  205. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +12 -12
  206. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +7 -12
  207. package/esm2022/component/table/table-row/table-row.component.mjs +3 -3
  208. package/esm2022/component/table/util/state-util.mjs +13 -25
  209. package/esm2022/component/table/util/table-util.mjs +15 -9
  210. package/esm2022/component/tabs/public-api.mjs +1 -1
  211. package/esm2022/component/tabs/tab-content.directive.mjs +2 -2
  212. package/esm2022/component/tabs/tab-title.directive.mjs +2 -2
  213. package/esm2022/component/theme-switch/public-api.mjs +1 -1
  214. package/esm2022/component/toggle/public-api.mjs +1 -1
  215. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  216. package/esm2022/component/toolbar/public-api.mjs +1 -1
  217. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +2 -2
  218. package/esm2022/component/tree/public-api.mjs +1 -1
  219. package/esm2022/component/tree/tree/tree.component.mjs +6 -6
  220. package/esm2022/component/tree/tree-item/tree-item.component.mjs +9 -20
  221. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +5 -6
  222. package/esm2022/component/tree/tree.service.mjs +1 -1
  223. package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
  224. package/esm2022/directive/auto-position/public-api.mjs +1 -1
  225. package/esm2022/directive/click-outside/click-outside.directive.mjs +2 -2
  226. package/esm2022/directive/click-outside/public-api.mjs +1 -1
  227. package/esm2022/directive/context-menu/context-menu.directive.mjs +4 -8
  228. package/esm2022/directive/context-menu/public-api.mjs +1 -1
  229. package/esm2022/directive/disable-control/disable-control.directive.mjs +1 -1
  230. package/esm2022/directive/disable-control/public-api.mjs +1 -1
  231. package/esm2022/directive/drag-drop/drag-container.directive.mjs +8 -10
  232. package/esm2022/directive/drag-drop/drag-drop.service.mjs +14 -11
  233. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +2 -2
  234. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +2 -2
  235. package/esm2022/directive/drag-drop/drag.directive.mjs +4 -7
  236. package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -1
  237. package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -1
  238. package/esm2022/directive/drag-drop/model/drag-process.mjs +1 -1
  239. package/esm2022/directive/drag-drop/model/drag-selection.mjs +1 -1
  240. package/esm2022/directive/drag-drop/model/drop-event.mjs +1 -1
  241. package/esm2022/directive/drag-drop/model/drop-target.mjs +1 -1
  242. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +2 -3
  243. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -10
  244. package/esm2022/directive/drag-sort/public-api.mjs +1 -1
  245. package/esm2022/directive/dynamic-content-base.directive.mjs +3 -3
  246. package/esm2022/directive/highlight/highlight.directive.mjs +4 -5
  247. package/esm2022/directive/highlight/public-api.mjs +1 -1
  248. package/esm2022/directive/hint/hint.directive.mjs +5 -14
  249. package/esm2022/directive/hint/public-api.mjs +1 -1
  250. package/esm2022/directive/let/let.directive.mjs +2 -2
  251. package/esm2022/directive/let/public-api.mjs +1 -1
  252. package/esm2022/directive/loader/loader.directive.mjs +3 -3
  253. package/esm2022/directive/loader/public-api.mjs +1 -1
  254. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
  255. package/esm2022/directive/no-autofill/public-api.mjs +1 -1
  256. package/esm2022/directive/only-number/public-api.mjs +1 -1
  257. package/esm2022/directive/resize-drag/public-api.mjs +1 -1
  258. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +2 -2
  259. package/esm2022/directive/scroll-into-view/public-api.mjs +1 -1
  260. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
  261. package/esm2022/directive/scrollable/public-api.mjs +1 -1
  262. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +6 -13
  263. package/esm2022/directive/scrollable/scrollable.directive.mjs +2 -2
  264. package/esm2022/directive/teta-template/public-api.mjs +1 -1
  265. package/esm2022/directive/teta-template/teta-template.directive.mjs +2 -2
  266. package/esm2022/directive/tooltip/public-api.mjs +1 -1
  267. package/esm2022/directive/tooltip/tooltip.directive.mjs +3 -4
  268. package/esm2022/index.mjs +1 -1
  269. package/esm2022/locale/en.mjs +2 -10
  270. package/esm2022/locale/ru.mjs +2 -10
  271. package/esm2022/locale/teta-config.service.mjs +2 -2
  272. package/esm2022/locale/teta-localisation.mjs +1 -1
  273. package/esm2022/observable/public-api.mjs +1 -1
  274. package/esm2022/observable/zone-observable.mjs +4 -4
  275. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +2 -2
  276. package/esm2022/pipe/number-pipe/number.pipe.mjs +2 -2
  277. package/esm2022/pipe/number-pipe/public-api.mjs +1 -1
  278. package/esm2022/pipe/util/number-helper.mjs +1 -1
  279. package/esm2022/util/bool-or-func.mjs +1 -1
  280. package/esm2022/util/date-util.mjs +2 -4
  281. package/esm2022/util/export-dom-image.mjs +1 -1
  282. package/esm2022/util/forms-util.mjs +9 -27
  283. package/esm2022/util/string-util.mjs +1 -3
  284. package/fesm2022/tetacom-ng-components.mjs +548 -1024
  285. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  286. package/locale/teta-localisation.d.ts +1 -14
  287. package/package.json +1 -1
  288. package/style/assembly-library.scss +41 -41
  289. package/style/assembly-presets.scss +4 -4
  290. package/style/assembly.scss +3 -3
  291. package/style/border.scss +2 -2
  292. package/style/color.scss +2 -3
  293. package/style/datepicker.scss +9 -10
  294. package/style/divider.scss +2 -1
  295. package/style/drag.scss +1 -1
  296. package/style/dropdown.scss +4 -5
  297. package/style/font.scss +2 -2
  298. package/style/hint.scss +3 -3
  299. package/style/input.scss +14 -9
  300. package/style/layout.scss +8 -8
  301. package/style/list.scss +4 -3
  302. package/style/loader.scss +1 -1
  303. package/style/message.scss +3 -3
  304. package/style/navigation.scss +6 -6
  305. package/style/presets/color-presets.scss +2 -2
  306. package/style/presets/view-types.scss +1 -1
  307. package/style/progress.scss +3 -2
  308. package/style/radio.scss +2 -4
  309. package/style/reset.scss +3 -1
  310. package/style/resize-panel.scss +12 -6
  311. package/style/scroll.scss +1 -1
  312. package/style/select.scss +5 -4
  313. package/style/shadow.scss +3 -3
  314. package/style/sidebar.scss +2 -2
  315. package/style/sizing.scss +1 -1
  316. package/style/skeleton.scss +3 -4
  317. package/style/spacing.scss +1 -1
  318. package/style/switch.scss +2 -3
  319. package/style/tag.scss +8 -8
  320. package/style/toggle.scss +3 -6
  321. package/style/toolbar.scss +3 -3
  322. package/style/tooltip.scss +5 -4
  323. package/style/tree.scss +2 -2
  324. package/style/util/font-util.scss +1 -1
  325. package/util/forms-util.d.ts +1 -2
  326. package/component/property-grid/property-grid.module.d.ts +0 -13
  327. package/esm2022/component/property-grid/property-grid.module.mjs +0 -57
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Optional, Output, QueryList, } from '@angular/core';
1
+ import { Component, computed, inject, input, output, } from '@angular/core';
2
2
  import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { TranslocoService } from '@ngneat/transloco';
4
4
  import { takeWhile } from 'rxjs/operators';
@@ -6,21 +6,16 @@ import { Align } from '../../../../common/enum/align.enum';
6
6
  import { boolOrFuncCallback } from '../../../../util/bool-or-func';
7
7
  import { FormsUtil } from '../../../../util/forms-util';
8
8
  import { FilterType } from '../../../filter/enum/filter-type.enum';
9
- import { TableColumn } from '../../../table/contract/table-column';
10
9
  import { TextFieldComponent } from '../../../input/text-field/text-field.component';
11
10
  import { ToggleComponent } from '../../../toggle/toggle/toggle.component';
12
11
  import { DatePickerComponent } from '../../../date-picker/date-picker/date-picker.component';
13
12
  import { SelectComponent } from '../../../select/select/select.component';
14
13
  import { NgTemplateOutlet } from '@angular/common';
15
14
  import { InputComponent } from '../../../input/input/input.component';
16
- import { DisableControlDirective } from "../../../../directive/disable-control/disable-control.directive";
15
+ import { DisableControlDirective } from '../../../../directive/disable-control/disable-control.directive';
17
16
  import * as i0 from "@angular/core";
18
- import * as i1 from "@ngneat/transloco";
19
- import * as i2 from "@angular/forms";
17
+ import * as i1 from "@angular/forms";
20
18
  export class PropertyGridItemComponent {
21
- get template() {
22
- return this.itemTemplates.find(item => item.name === this.column.name);
23
- }
24
19
  get formGroup() {
25
20
  if (this._formGroup instanceof FormGroup) {
26
21
  return this._formGroup;
@@ -30,31 +25,40 @@ export class PropertyGridItemComponent {
30
25
  }
31
26
  return null;
32
27
  }
33
- get editable() {
34
- return boolOrFuncCallback(this.column.editable)({
35
- column: this.column,
36
- row: this.formGroup?.getRawValue(),
28
+ constructor() {
29
+ this.transloco = inject(TranslocoService);
30
+ this._formGroup = inject(ControlContainer);
31
+ this.column = input();
32
+ this.hideNonEditable = input();
33
+ this.dict = input();
34
+ this.decimalPart = input();
35
+ this.item = input();
36
+ this.itemTemplates = input();
37
+ this.template = computed(() => {
38
+ return this.itemTemplates().find((item) => item.name === this.column().name);
37
39
  });
38
- }
39
- get caption() {
40
- if (this.column.filterType === FilterType.boolean) {
41
- return '';
42
- }
43
- return `${this.column.caption}${this.column.unit ? `, ${this.column.unit}` : ''}`;
44
- }
45
- constructor(_transloco, _formGroup) {
46
- this._transloco = _transloco;
47
- this._formGroup = _formGroup;
48
- this.controlValueChange = new EventEmitter();
40
+ this.editable = computed(() => {
41
+ return boolOrFuncCallback(this.column().editable)({
42
+ column: this.column(),
43
+ row: this.formGroup?.getRawValue(),
44
+ });
45
+ });
46
+ this.horizontal = input();
47
+ this.controlValueChange = output();
49
48
  this.align = Align;
50
49
  this.filterTypeEnum = FilterType;
50
+ this.caption = computed(() => {
51
+ if (this.column().filterType === FilterType.boolean) {
52
+ return '';
53
+ }
54
+ return `${this.column().caption}${this.column().unit ? `, ${this.column().unit}` : ''}`;
55
+ });
51
56
  this._alive = true;
52
57
  }
53
58
  getDict() {
54
59
  const dict = this.dict ? this.dict[this.column.name] : [];
55
- if (this.column.parentName?.length > 0) {
56
- return dict?.filter((dictItem) => dictItem.parentId ===
57
- this.formGroup?.getRawValue()[this.column.parentName]);
60
+ if (this.column().parentName?.length > 0) {
61
+ return dict?.filter((dictItem) => dictItem.parentId === this.formGroup?.getRawValue()[this.column().parentName]);
58
62
  }
59
63
  return dict;
60
64
  }
@@ -64,20 +68,20 @@ export class PropertyGridItemComponent {
64
68
  getError(column) {
65
69
  const control = this.formGroup?.get(column.name);
66
70
  if (control?.hasError('required')) {
67
- return this._transloco.translate('errors.field_is_required');
71
+ return this.transloco.translate('errors.field_is_required');
68
72
  }
69
73
  if (control?.hasError('min')) {
70
- return this._transloco.translate('errors.min_value', {
74
+ return this.transloco.translate('errors.min_value', {
71
75
  value: column.minValue,
72
76
  });
73
77
  }
74
78
  if (control?.hasError('max')) {
75
- return this._transloco.translate('errors.max_value', {
79
+ return this.transloco.translate('errors.max_value', {
76
80
  value: column.maxValue,
77
81
  });
78
82
  }
79
83
  if (control?.hasError('maxlength')) {
80
- return this._transloco.translate('errors.max_length', {
84
+ return this.transloco.translate('errors.max_length', {
81
85
  value: column.maxLength,
82
86
  });
83
87
  }
@@ -88,21 +92,21 @@ export class PropertyGridItemComponent {
88
92
  this._formSub?.unsubscribe();
89
93
  }
90
94
  ngOnChanges(changes) {
91
- if (this.column && this.item) {
92
- this.formGroup.registerControl(this.column.name, FormsUtil.initControlFromColumn(this.column, this.item));
95
+ if (this.column() && this.item()) {
96
+ this.formGroup.setControl(this.column().name, FormsUtil.initControlFromColumn(this.column(), this.item()));
93
97
  this._formSub?.unsubscribe();
94
- this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges
98
+ this._formSub = this.formGroup?.controls[this.column().name]?.valueChanges
95
99
  .pipe(takeWhile(() => this._alive))
96
- .subscribe(_ => {
100
+ .subscribe((_) => {
97
101
  this.controlValueChange.emit({
98
102
  id: _,
99
- name: this.column.name,
103
+ name: this.column().name,
100
104
  });
101
105
  });
102
106
  }
103
107
  }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1.TranslocoService }, { token: i2.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", decimalPart: "decimalPart", item: "item", itemTemplates: "itemTemplates", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable || !hideNonEditable) {\n <teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n >\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n } @else {\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n }\n <ng-template #default>\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n </teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridItemComponent, isStandalone: true, selector: "teta-property-grid-item", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, usesOnChanges: true, ngImport: i0, template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\">\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n", styles: [""], dependencies: [{ kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "viewType", "notFoundText", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["date", "showTime", "minDate", "maxDate", "invalid", "disabled", "align", "verticalAlign", "viewType", "appendToBody", "backdrop", "allowNull", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minYearDate", "maxYearDate"], outputs: ["selectDate"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "decimalPart", "invalid"] }, { kind: "directive", type: DisableControlDirective, selector: "[tetaDisableControl]", inputs: ["tetaDisableControl"] }], viewProviders: [FormsUtil.formProvider] }); }
106
110
  }
107
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
108
112
  type: Component,
@@ -116,24 +120,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
116
120
  ToggleComponent,
117
121
  TextFieldComponent,
118
122
  DisableControlDirective,
119
- ], template: "@if (editable || !hideNonEditable) {\n <teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n >\n @if (template) {\n <ng-container\n *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n } @else {\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n }\n <ng-template #default>\n @if (formGroup?.get(column.name)) {\n @switch (column.filterType) {\n @case (filterTypeEnum.list) {\n <teta-select class=\"row_auto\"\n [tetaDisableControl]=\"!editable\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\">\n {{ column.caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field class=\"row_auto\"\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [tetaDisableControl]=\"!editable\"\n [formControlName]=\"column.name\"></teta-text-field>\n }\n }\n }\n </ng-template>\n @if (controlIsInvalid(column.name)) {\n <div\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{ getError(column) }}\n </div>\n }\n </teta-input>\n}\n" }]
120
- }], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.ControlContainer, decorators: [{
121
- type: Optional
122
- }] }], propDecorators: { column: [{
123
- type: Input
124
- }], hideNonEditable: [{
125
- type: Input
126
- }], dict: [{
127
- type: Input
128
- }], decimalPart: [{
129
- type: Input
130
- }], item: [{
131
- type: Input
132
- }], itemTemplates: [{
133
- type: Input
134
- }], horizontal: [{
135
- type: Input
136
- }], controlValueChange: [{
137
- type: Output
138
- }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSXpDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDM0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQzs7OztBQW9CeEcsTUFBTSxPQUFPLHlCQUF5QjtJQVFwQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksU0FBUyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVNELElBQUksT0FBTztRQUNULElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDL0MsRUFBRSxDQUFDO0lBQ0wsQ0FBQztJQUlELFlBQ1UsVUFBNEIsRUFDaEIsVUFBNEI7UUFEeEMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFuQnhDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQ2hFLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQWFwQixXQUFNLEdBQUcsSUFBSSxDQUFDO0lBTXRCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLEVBQUUsTUFBTSxDQUNqQixDQUFDLFFBQXNCLEVBQUUsRUFBRSxDQUN6QixRQUFRLENBQUMsUUFBUTtnQkFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUN4RCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQW1CO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFtQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFO2dCQUNuRCxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUTthQUN2QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDcEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUNoQixTQUFTLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ3hELENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZO2lCQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7b0JBQzNCLEVBQUUsRUFBRSxDQUFDO29CQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7aUJBQ3ZCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7OEdBakhVLHlCQUF5QjtrR0FBekIseUJBQXlCLG1WQ2xEdEMsdzhJQXlHQSwwRERsRUksY0FBYyx1SEFDZCxXQUFXLGtTQUNYLG1CQUFtQixnVkFDbkIsZ0JBQWdCLG9KQUNoQixlQUFlLHFUQUNmLG1CQUFtQixvVkFDbkIsZUFBZSxvR0FDZixrQkFBa0IseUpBQ2xCLHVCQUF1QixzRkFYVixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7OzJGQWM1Qix5QkFBeUI7a0JBbEJyQyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQzNCLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3FCQUN4Qjs7MEJBbURFLFFBQVE7eUNBaERGLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQXVCRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTmdGb3JtLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xvY29TZXJ2aWNlfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VXaGlsZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0lEaWN0aW9uYXJ5fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7SUlkTmFtZX0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7Ym9vbE9yRnVuY0NhbGxiYWNrfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQge0Zvcm1zVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7RmlsdGVyVHlwZX0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi8uLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmV9IGZyb20gJy4uL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUZXh0RmllbGRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUb2dnbGVDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3RvZ2dsZS90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQge0RhdGVQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NlbGVjdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7TmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5wdXRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2lucHV0L2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0Rpc2FibGVDb250cm9sRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vLi4vLi4vZGlyZWN0aXZlL2Rpc2FibGUtY29udHJvbC9kaXNhYmxlLWNvbnRyb2wuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtcHJvcGVydHktZ3JpZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbRm9ybXNVdGlsLmZvcm1Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG4gIEBJbnB1dCgpIGl0ZW06IFQ7XG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+O1xuXG4gIGdldCB0ZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVGVtcGxhdGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuY29sdW1uLm5hbWUpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXAuZm9ybTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZWRpdGFibGUoKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayh0aGlzLmNvbHVtbi5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgIHJvdzogdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKCksXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBob3Jpem9udGFsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG4gIGFsaWduID0gQWxpZ247XG4gIGZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZTtcblxuICBwcml2YXRlIF9mb3JtU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGNhcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbi5jYXB0aW9ufSR7XG4gICAgICB0aGlzLmNvbHVtbi51bml0ID8gYCwgJHt0aGlzLmNvbHVtbi51bml0fWAgOiAnJ1xuICAgIH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3RyYW5zbG9jbzogVHJhbnNsb2NvU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXA6IENvbnRyb2xDb250YWluZXJcbiAgKSB7XG4gIH1cblxuICBnZXREaWN0KCkge1xuICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3QgPyB0aGlzLmRpY3RbdGhpcy5jb2x1bW4ubmFtZV0gOiBbXTtcbiAgICBpZiAodGhpcy5jb2x1bW4ucGFyZW50TmFtZT8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRpY3Q/LmZpbHRlcihcbiAgICAgICAgKGRpY3RJdGVtOiBJSWROYW1lPGFueT4pID0+XG4gICAgICAgICAgZGljdEl0ZW0ucGFyZW50SWQgPT09XG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKClbdGhpcy5jb2x1bW4ucGFyZW50TmFtZV1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgY29udHJvbElzSW52YWxpZChjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKHRoaXMuZm9ybUdyb3VwLCBjb250cm9sTmFtZSk7XG4gIH1cblxuICBnZXRFcnJvcihjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5maWVsZF9pc19yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1pbl92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5taW5WYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF9sZW5ndGgnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWF4TGVuZ3RoLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uICYmIHRoaXMuaXRlbSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVnaXN0ZXJDb250cm9sKFxuICAgICAgICB0aGlzLmNvbHVtbi5uYW1lLFxuICAgICAgICBGb3Jtc1V0aWwuaW5pdENvbnRyb2xGcm9tQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLml0ZW0pXG4gICAgICApO1xuICAgICAgdGhpcy5fZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2Zvcm1TdWIgPSB0aGlzLmZvcm1Hcm91cD8uY29udHJvbHNbdGhpcy5jb2x1bW4ubmFtZV0/LnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICAgIHRoaXMuY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgaWQ6IF8sXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmNvbHVtbi5uYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoZWRpdGFibGUgfHwgIWhpZGVOb25FZGl0YWJsZSkge1xuICA8dGV0YS1pbnB1dCBbbGFiZWxdPVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImNvbHVtbi5oaW50XCJcbiAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXG4gID5cbiAgICBAaWYgKHRlbXBsYXRlKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGUudGVtcGxhdGU7Y29udGV4dDogeyRpbXBsaWNpdDogZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChmb3JtR3JvdXA/LmdldChjb2x1bW4ubmFtZSkpIHtcbiAgICAgICAgQHN3aXRjaCAoY29sdW1uLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0ubGlzdCkge1xuICAgICAgICAgICAgPHRldGEtc2VsZWN0IGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXRhRGlzYWJsZUNvbnRyb2xdPVwiIWVkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoUmVmXT1cImdldERpY3QoKT8ubGVuZ3RoID4gMTAgPyAnbmFtZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93TnVsbF09XCIhY29sdW1uLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZVJlZl09XCInaWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dFJlZl09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPjwvdGV0YS1zZWxlY3Q+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5kYXRlKSB7XG4gICAgICAgICAgICA8dGV0YS1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIlxuICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj48L3RldGEtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5ib29sZWFuKSB7XG4gICAgICAgICAgICA8dGV0YS10b2dnbGVcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+XG4gICAgICAgICAgICAgIHt7IGNvbHVtbi5jYXB0aW9uIH19XG4gICAgICAgICAgICA8L3RldGEtdG9nZ2xlPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8dGV0YS10ZXh0LWZpZWxkIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4uZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZUVudW0ubnVtYmVyID8gZGVjaW1hbFBhcnQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4uY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS10ZXh0LWZpZWxkPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gICAgICBAaWYgKGZvcm1Hcm91cD8uZ2V0KGNvbHVtbi5uYW1lKSkge1xuICAgICAgICBAc3dpdGNoIChjb2x1bW4uZmlsdGVyVHlwZSkge1xuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5saXN0KSB7XG4gICAgICAgICAgICA8dGV0YS1zZWxlY3QgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hSZWZdPVwiZ2V0RGljdCgpPy5sZW5ndGggPiAxMCA/ICduYW1lJyA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cIiFjb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdldERpY3QoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlUmVmXT1cIidpZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0UmVmXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+PC90ZXRhLXNlbGVjdD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmRhdGUpIHtcbiAgICAgICAgICAgIDx0ZXRhLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS1kYXRlLXBpY2tlcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKGZpbHRlclR5cGVFbnVtLmJvb2xlYW4pIHtcbiAgICAgICAgICAgIDx0ZXRhLXRvZ2dsZVxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uLmNhcHRpb24gfX1cbiAgICAgICAgICAgIDwvdGV0YS10b2dnbGU+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDx0ZXRhLXRleHQtZmllbGQgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4uZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZUVudW0ubnVtYmVyID8gZGVjaW1hbFBhcnQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4uY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBAaWYgKGNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIG5nUHJvamVjdEFzPVwibWVzc2FnZVwiXG4gICAgICAgIGNsYXNzPVwiY29sb3ItcmVkLTUwXCI+XG4gICAgICAgIHt7IGdldEVycm9yKGNvbHVtbikgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC90ZXRhLWlucHV0PlxufVxuIl19
123
+ ], template: "@if (editable() || !hideNonEditable()) {\n <teta-input\n [label]=\"caption()\"\n [hint]=\"column().hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal()\"\n [required]=\"column().required\">\n @if (template()) {\n <ng-container\n *ngTemplateOutlet=\"template().template; context: { $implicit: formGroup?.get(column().name) }\"></ng-container>\n } @else {\n @if (formGroup?.get(column().name)) {\n @switch (column().filterType) {\n @case (filterTypeEnum.list) {\n <teta-select\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column().required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n }\n @case (filterTypeEnum.date) {\n <teta-date-picker\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [tetaDisableControl]=\"!editable()\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"></teta-date-picker>\n }\n @case (filterTypeEnum.boolean) {\n <teta-toggle [tetaDisableControl]=\"!editable\" [formControlName]=\"column().name\">\n {{ column().caption }}\n </teta-toggle>\n }\n @default {\n <teta-text-field\n class=\"row_auto\"\n [tetaDisableControl]=\"!editable()\"\n [decimalPart]=\"column().filterType === filterTypeEnum.number ? decimalPart() : null\"\n [onlyNumber]=\"column().filterType === filterTypeEnum.number\"\n [placeholder]=\"column().caption\"\n [invalid]=\"controlIsInvalid(column().name)\"\n [formControlName]=\"column().name\"\n ></teta-text-field>\n }\n }\n }\n }\n @if (controlIsInvalid(column().name)) {\n <div ngProjectAs=\"message\" class=\"color-red-50\">\n {{ getError(column()) }}\n </div>\n }\n </teta-input>\n}\n" }]
124
+ }], ctorParameters: () => [] });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLFFBQVEsRUFDbkIsTUFBTSxFQUFFLEtBQUssRUFHYixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSXpDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBR2pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMz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QUF5Qix1a0NDaER0Qyw2MEVBNkRBLDBERHhCSSxjQUFjLHVIQUNkLFdBQVcsa1NBQ1gsbUJBQW1CLGdWQUNuQixnQkFBZ0Isb0pBQ2hCLGVBQWUscVRBQ2YsbUJBQW1CLG9WQUNuQixlQUFlLG9HQUNmLGtCQUFrQix5SkFDbEIsdUJBQXVCLHNGQVhWLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7MkZBYzVCLHlCQUF5QjtrQkFsQnJDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FDM0IsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQix1QkFBdUI7cUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBjb21wdXRlZCxcbiAgaW5qZWN0LCBpbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbG9jb1NlcnZpY2V9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7SURpY3Rpb25hcnl9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHtJSWROYW1lfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtib29sT3JGdW5jQ2FsbGJhY2t9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwvYm9vbC1vci1mdW5jJztcbmltcG9ydCB7Rm9ybXNVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHtGaWx0ZXJUeXBlfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uLy4uL3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RleHRGaWVsZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1RvZ2dsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7RGF0ZVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7U2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7RGlzYWJsZUNvbnRyb2xEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9kaXNhYmxlLWNvbnRyb2wvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtcHJvcGVydHktZ3JpZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbRm9ybXNVdGlsLmZvcm1Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSlcbiAgcHJpdmF0ZSBfZm9ybUdyb3VwID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpO1xuXG4gIGNvbHVtbiA9IGlucHV0PFRhYmxlQ29sdW1uPigpO1xuICBoaWRlTm9uRWRpdGFibGUgPSBpbnB1dDxib29sZWFuPigpXG4gIGRpY3QgPSBpbnB1dDxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+KClcbiAgZGVjaW1hbFBhcnQgPSBpbnB1dDxudW1iZXI+KClcbiAgaXRlbSA9IGlucHV0PFQ+KClcbiAgaXRlbVRlbXBsYXRlcyA9IGlucHV0PFF1ZXJ5TGlzdDxQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmU+PigpXG5cbiAgdGVtcGxhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRlbXBsYXRlcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5jb2x1bW4oKS5uYW1lKTtcbiAgfSlcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBib29sT3JGdW5jQ2FsbGJhY2sodGhpcy5jb2x1bW4oKS5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbigpLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KVxuICB9KVxuXG4gIGhvcml6b250YWwgPSBpbnB1dDxib29sZWFuPigpO1xuICBjb250cm9sVmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUlkTmFtZTxhbnk+PigpO1xuICBhbGlnbiA9IEFsaWduO1xuICBmaWx0ZXJUeXBlRW51bSA9IEZpbHRlclR5cGU7XG5cbiAgcHJpdmF0ZSBfZm9ybVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNhcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29sdW1uKCkuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbigpLmNhcHRpb259JHt0aGlzLmNvbHVtbigpLnVuaXQgPyBgLCAke3RoaXMuY29sdW1uKCkudW5pdH1gIDogJyd9YDtcbiAgfSlcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBnZXREaWN0KCkge1xuICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3QgPyB0aGlzLmRpY3RbdGhpcy5jb2x1bW4ubmFtZV0gOiBbXTtcbiAgICBpZiAodGhpcy5jb2x1bW4oKS5wYXJlbnROYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGljdD8uZmlsdGVyKFxuICAgICAgICAoZGljdEl0ZW06IElJZE5hbWU8YW55PikgPT4gZGljdEl0ZW0ucGFyZW50SWQgPT09IHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpW3RoaXMuY29sdW1uKCkucGFyZW50TmFtZV1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgY29udHJvbElzSW52YWxpZChjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKHRoaXMuZm9ybUdyb3VwLCBjb250cm9sTmFtZSk7XG4gIH1cblxuICBnZXRFcnJvcihjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwPy5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLmZpZWxkX2lzX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5taW5fdmFsdWUnLCB7XG4gICAgICAgIHZhbHVlOiBjb2x1bW4ubWluVmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X2xlbmd0aCcsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhMZW5ndGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uKCkgJiYgdGhpcy5pdGVtKCkpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnNldENvbnRyb2wodGhpcy5jb2x1bW4oKS5uYW1lLCBGb3Jtc1V0aWwuaW5pdENvbnRyb2xGcm9tQ29sdW1uKHRoaXMuY29sdW1uKCksIHRoaXMuaXRlbSgpKSk7XG4gICAgICB0aGlzLl9mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fZm9ybVN1YiA9IHRoaXMuZm9ybUdyb3VwPy5jb250cm9sc1t0aGlzLmNvbHVtbigpLm5hbWVdPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgIHRoaXMuY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgaWQ6IF8sXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmNvbHVtbigpLm5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChlZGl0YWJsZSgpIHx8ICFoaWRlTm9uRWRpdGFibGUoKSkge1xuICA8dGV0YS1pbnB1dFxuICAgIFtsYWJlbF09XCJjYXB0aW9uKClcIlxuICAgIFtoaW50XT1cImNvbHVtbigpLmhpbnRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsKClcIlxuICAgIFtyZXF1aXJlZF09XCJjb2x1bW4oKS5yZXF1aXJlZFwiPlxuICAgIEBpZiAodGVtcGxhdGUoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlKCkudGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmb3JtR3JvdXA/LmdldChjb2x1bW4oKS5uYW1lKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKGZvcm1Hcm91cD8uZ2V0KGNvbHVtbigpLm5hbWUpKSB7XG4gICAgICAgIEBzd2l0Y2ggKGNvbHVtbigpLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoZmlsdGVyVHlwZUVudW0ubGlzdCkge1xuICAgICAgICAgICAgPHRldGEtc2VsZWN0XG4gICAgICAgICAgICAgIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICBbdGV0YURpc2FibGVDb250cm9sXT1cIiFlZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFJlZl09XCJnZXREaWN0KCk/Lmxlbmd0aCA+IDEwID8gJ25hbWUnIDogJydcIlxuICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cIiFjb2x1bW4oKS5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uKCkubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJnZXREaWN0KClcIlxuICAgICAgICAgICAgICBbdmFsdWVSZWZdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgIFt0ZXh0UmVmXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPjwvdGV0YS1zZWxlY3Q+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5kYXRlKSB7XG4gICAgICAgICAgICA8dGV0YS1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uKCkubmFtZSlcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIj48L3RldGEtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChmaWx0ZXJUeXBlRW51bS5ib29sZWFuKSB7XG4gICAgICAgICAgICA8dGV0YS10b2dnbGUgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbigpLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uKCkuY2FwdGlvbiB9fVxuICAgICAgICAgICAgPC90ZXRhLXRvZ2dsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPHRldGEtdGV4dC1maWVsZFxuICAgICAgICAgICAgICBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgW3RldGFEaXNhYmxlQ29udHJvbF09XCIhZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJjb2x1bW4oKS5maWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlRW51bS5udW1iZXIgPyBkZWNpbWFsUGFydCgpIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtvbmx5TnVtYmVyXT1cImNvbHVtbigpLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb2x1bW4oKS5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uKCkubmFtZVwiXG4gICAgICAgICAgICA+PC90ZXRhLXRleHQtZmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAoY29udHJvbElzSW52YWxpZChjb2x1bW4oKS5uYW1lKSkge1xuICAgICAgPGRpdiBuZ1Byb2plY3RBcz1cIm1lc3NhZ2VcIiBjbGFzcz1cImNvbG9yLXJlZC01MFwiPlxuICAgICAgICB7eyBnZXRFcnJvcihjb2x1bW4oKSkgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC90ZXRhLWlucHV0PlxufVxuIl19
@@ -11,10 +11,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[tetaPropertyGridItemDescription]',
14
- standalone: true
14
+ standalone: true,
15
15
  }]
16
16
  }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
17
17
  type: Input,
18
18
  args: ['tetaPropertyGridItemDescription']
19
19
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU01RCxNQUFNLE9BQU8sb0NBQW9DO0lBRy9DLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQzdDLENBQUM7OEdBSlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2dGQUUyQyxJQUFJO3NCQUE3QyxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb25EaXJlY3RpdmUge1xuICBASW5wdXQoJ3RldGFQcm9wZXJ0eUdyaWRJdGVtRGVzY3JpcHRpb24nKSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gIH1cbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RCxNQUFNLE9BQU8sb0NBQW9DO0lBRy9DLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUcsQ0FBQzs4R0FIdEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dGQUUyQyxJQUFJO3NCQUE3QyxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgndGV0YVByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbicpIG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { Component, ContentChildren, EventEmitter, HostBinding, Input, Optional, Output, QueryList, } from '@angular/core';
2
- import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
1
+ import { Component, ContentChildren, effect, HostBinding, input, Optional, output, QueryList, } from '@angular/core';
2
+ import { ControlContainer, FormGroup, NgForm, FormsModule, ReactiveFormsModule, UntypedFormControl } 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';
@@ -8,17 +8,6 @@ import { PropertyGridItemComponent } from './property-grid-item/property-grid-it
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/forms";
10
10
  export class PropertyGridComponent {
11
- set item(item) {
12
- this._item = item;
13
- if (this.formGroup) {
14
- this.formGroup.patchValue(item, {
15
- emitEvent: false,
16
- });
17
- }
18
- }
19
- get item() {
20
- return this._item;
21
- }
22
11
  get formGroup() {
23
12
  if (this._formGroup instanceof FormGroup) {
24
13
  return this._formGroup;
@@ -31,8 +20,22 @@ export class PropertyGridComponent {
31
20
  constructor(_formGroup) {
32
21
  this._formGroup = _formGroup;
33
22
  this.formClass = true;
34
- this.controlValueChange = new EventEmitter();
35
- this._alive = true;
23
+ this.hideNonEditable = input();
24
+ this.columns = input();
25
+ this.dict = input();
26
+ this.item = input();
27
+ this.horizontal = input();
28
+ this.decimalPart = input();
29
+ this.controlValueChange = output();
30
+ effect(() => {
31
+ if (this.item() && this.formGroup) {
32
+ for (const key in this.item()) {
33
+ if (this.item().hasOwnProperty(key)) {
34
+ this.formGroup.setControl(key, new UntypedFormControl(this.item()[key]));
35
+ }
36
+ }
37
+ }
38
+ });
36
39
  }
37
40
  getEditable(column) {
38
41
  return boolOrFuncCallback(column.editable)({
@@ -41,9 +44,9 @@ export class PropertyGridComponent {
41
44
  });
42
45
  }
43
46
  onControlValueChange(event) {
44
- const affected = this.columns.filter(_ => _.parentName === event.name);
47
+ const affected = this.columns().filter((_) => _.parentName === event.name);
45
48
  if (affected?.length) {
46
- affected.forEach(item => {
49
+ affected.forEach((item) => {
47
50
  const value = this.formGroup.getRawValue()[item.name];
48
51
  if (value) {
49
52
  const dictValue = this.getDictValue(value, item.name);
@@ -57,26 +60,15 @@ export class PropertyGridComponent {
57
60
  }
58
61
  this.controlValueChange.emit(event);
59
62
  }
60
- ngOnDestroy() {
61
- this._alive = false;
62
- }
63
- trackColumns(index, column) {
64
- return column.name;
65
- }
66
63
  getDictValue(value, name) {
67
- return this.dict[name]?.find(_ => _.id === value);
64
+ return this.dict()[name]?.find((_) => _.id === value);
68
65
  }
69
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", 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: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: "hideNonEditable", columns: "columns", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart" }, outputs: { controlValueChange: "controlValueChange" }, host: { properties: { "class.form-container": "this.formClass" } }, queries: [{ propertyName: "itemTemplates", predicate: PropertyGridItemDescriptionDirective }], ngImport: i0, template: "@if (columns?.length) {\n @for (column of columns; track trackColumns($index, column)) {\n @if (column.columns?.length < 1 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-item\n [dict]='dict'\n [column]='column'\n [item]='item'\n [id]='column.name'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-item>\n }\n @if (column.columns?.length > 0 && (getEditable(column) || !hideNonEditable)) {\n <teta-property-grid-group\n [id]='column.name'\n [dict]='dict'\n [column]='column'\n [item]='item'\n [itemTemplates]='itemTemplates'\n [decimalPart]='decimalPart'\n [formGroup]='formGroup'\n [horizontal]='horizontal'\n (controlValueChange)='onControlValueChange($event)'\n [hideNonEditable]='hideNonEditable'></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"], dependencies: [{ kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: 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] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridComponent, isStandalone: true, selector: "teta-property-grid", inputs: { hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null } }, 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 column.name) {\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()\"\n ></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()\"\n ></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] }); }
71
68
  }
72
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridComponent, decorators: [{
73
70
  type: Component,
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"] }]
71
+ args: [{ selector: 'teta-property-grid', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [PropertyGridItemComponent, FormsModule, ReactiveFormsModule, PropertyGridGroupComponent], template: "@if (columns().length) {\n @for (column of columns(); track column.name) {\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()\"\n ></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()\"\n ></teta-property-grid-group>\n }\n }\n}\n", styles: [":host{padding:12px 8px}\n"] }]
80
72
  }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
81
73
  type: Optional
82
74
  }] }], propDecorators: { formClass: [{
@@ -85,19 +77,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
85
77
  }], itemTemplates: [{
86
78
  type: ContentChildren,
87
79
  args: [PropertyGridItemDescriptionDirective]
88
- }], hideNonEditable: [{
89
- type: Input
90
- }], columns: [{
91
- type: Input
92
- }], dict: [{
93
- type: Input
94
- }], item: [{
95
- type: Input
96
- }], horizontal: [{
97
- type: Input
98
- }], decimalPart: [{
99
- type: Input
100
- }], controlValueChange: [{
101
- type: Output
102
80
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7QUFlOUYsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxJQUFhLElBQUksQ0FBQyxJQUFPO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDOUIsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFD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R2YsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQzNCLElBQUksV0FDUDt3QkFDTCx5QkFBeUI7d0JBQ3pCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQiwwQkFBMEI7cUJBQzdCOzswQkFzQ1UsUUFBUTt5Q0FuQ2dCLFNBQVM7c0JBQTdDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUVuQyxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0NBQW9DO2dCQUU1QyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ08sSUFBSTtzQkFBaEIsS0FBSztnQkFXRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXAsIE5nRm9ybSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBib29sT3JGdW5jQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgUHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLWNvbnRhaW5lcicpIGZvcm1DbGFzcyA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlKVxuICBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIHNldCBpdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLl9pdGVtID0gaXRlbTtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoaXRlbSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBpdGVtKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG4gIEBJbnB1dCgpIGhvcml6b250YWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlY2ltYWxQYXJ0OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkTmFtZTxhbnk+PigpO1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfaXRlbTogVDtcblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Zvcm1Hcm91cCBpbnN0YW5jZW9mIE5nRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cC5mb3JtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cDogQ29udHJvbENvbnRhaW5lcikge31cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoXyA9PiBfLnBhcmVudE5hbWUgPT09IGV2ZW50Lm5hbWUpO1xuICAgIGlmIChhZmZlY3RlZD8ubGVuZ3RoKSB7XG4gICAgICBhZmZlY3RlZC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICB0cmFja0NvbHVtbnMoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IGFueSB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaWN0VmFsdWUodmFsdWU6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZGljdFtuYW1lXT8uZmluZChfID0+IF8uaWQgPT09IHZhbHVlKTtcbiAgfVxufVxuIiwiQGlmIChjb2x1bW5zPy5sZW5ndGgpIHtcbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIHRyYWNrQ29sdW1ucygkaW5kZXgsIGNvbHVtbikpIHtcbiAgICBAaWYgKGNvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxICYmIChnZXRFZGl0YWJsZShjb2x1bW4pIHx8ICFoaWRlTm9uRWRpdGFibGUpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW1cbiAgICAgICAgW2RpY3RdPSdkaWN0J1xuICAgICAgICBbY29sdW1uXT0nY29sdW1uJ1xuICAgICAgICBbaXRlbV09J2l0ZW0nXG4gICAgICAgIFtpZF09J2NvbHVtbi5uYW1lJ1xuICAgICAgICBbaXRlbVRlbXBsYXRlc109J2l0ZW1UZW1wbGF0ZXMnXG4gICAgICAgIFtkZWNpbWFsUGFydF09J2RlY2ltYWxQYXJ0J1xuICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xuICAgICAgICBbaG9yaXpvbnRhbF09J2hvcml6b250YWwnXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPSdvbkNvbnRyb2xWYWx1ZUNoYW5nZSgkZXZlbnQpJ1xuICAgICAgW2hpZGVOb25FZGl0YWJsZV09J2hpZGVOb25FZGl0YWJsZSc+PC90ZXRhLXByb3BlcnR5LWdyaWQtaXRlbT5cbiAgICB9XG4gICAgQGlmIChjb2x1bW4uY29sdW1ucz8ubGVuZ3RoID4gMCAmJiAoZ2V0RWRpdGFibGUoY29sdW1uKSB8fCAhaGlkZU5vbkVkaXRhYmxlKSkge1xuICAgICAgPHRldGEtcHJvcGVydHktZ3JpZC1ncm91cFxuICAgICAgICBbaWRdPSdjb2x1bW4ubmFtZSdcbiAgICAgICAgW2RpY3RdPSdkaWN0J1xuICAgICAgICBbY29sdW1uXT0nY29sdW1uJ1xuICAgICAgICBbaXRlbV09J2l0ZW0nXG4gICAgICAgIFtpdGVtVGVtcGxhdGVzXT0naXRlbVRlbXBsYXRlcydcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT0nZGVjaW1hbFBhcnQnXG4gICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXG4gICAgICAgIFtob3Jpem9udGFsXT0naG9yaXpvbnRhbCdcbiAgICAgICAgKGNvbnRyb2xWYWx1ZUNoYW5nZSk9J29uQ29udHJvbFZhbHVlQ2hhbmdlKCRldmVudCknXG4gICAgICBbaGlkZU5vbkVkaXRhYmxlXT0naGlkZU5vbkVkaXRhYmxlJz48L3RldGEtcHJvcGVydHktZ3JpZC1ncm91cD5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQUUsTUFBTSxFQUN2QixXQUFXLEVBQUUsS0FBSyxFQUNsQixRQUFRLEVBQUUsTUFBTSxFQUVoQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOzs7QUFVNUYsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksU0FBUyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJ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RCxDQUFDOzhHQS9EVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixrZ0NBRWYsb0NBQW9DLDZCQ3BDdkQscXBDQWdDQSxtRkRBWSx5QkFBeUIseU1BQUUsV0FBVywwTEFBRSxtQkFBbUIsZ0xBQUUsMEJBQTBCLGdNQUZsRixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7OzJGQUk1QixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUdmLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUMzQixJQUFJLFdBQ1AsQ0FBQyx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLENBQUM7OzBCQTBCckYsUUFBUTt5Q0F2QmdCLFNBQVM7c0JBQTdDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUVuQyxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sIGVmZmVjdCxcbiAgSG9zdEJpbmRpbmcsIGlucHV0LFxuICBPcHRpb25hbCwgb3V0cHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBGb3JtR3JvdXAsXG4gIE5nRm9ybSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7SURpY3Rpb25hcnl9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHtJSWROYW1lfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7Ym9vbE9yRnVuY0NhbGxiYWNrfSBmcm9tICcuLi8uLi8uLi91dGlsL2Jvb2wtb3ItZnVuYyc7XG5pbXBvcnQge0Zvcm1zVXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uLy4uL3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7UHJvcGVydHlHcmlkR3JvdXBDb21wb25lbnR9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge1Byb3BlcnR5R3JpZEl0ZW1Db21wb25lbnR9IGZyb20gJy4vcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlHcmlkQ29tcG9uZW50PFQ+IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3JtLWNvbnRhaW5lcicpIGZvcm1DbGFzcyA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oUHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlKVxuICBpdGVtVGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgaGlkZU5vbkVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29sdW1ucyA9IGlucHV0PFRhYmxlQ29sdW1uW10+KCk7XG4gIGRpY3QgPSBpbnB1dDxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+KCk7XG4gIGl0ZW0gPSBpbnB1dDxUPigpO1xuXG4gIGhvcml6b250YWwgPSBpbnB1dDxib29sZWFuPigpO1xuICBkZWNpbWFsUGFydCA9IGlucHV0PG51bWJlcj4oKTtcblxuICBjb250cm9sVmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUlkTmFtZTxhbnk+PigpO1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZm9ybUdyb3VwIGluc3RhbmNlb2YgTmdGb3JtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwLmZvcm07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybUdyb3VwOiBDb250cm9sQ29udGFpbmVyKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLml0ZW0oKSAmJiB0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLml0ZW0oKSkge1xuICAgICAgICAgIGlmICh0aGlzLml0ZW0oKS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5zZXRDb250cm9sKGtleSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLml0ZW0oKVtrZXldKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRFZGl0YWJsZShjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayhjb2x1bW4uZWRpdGFibGUpKHtcbiAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgcm93OiB0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbFZhbHVlQ2hhbmdlKGV2ZW50OiBJSWROYW1lPGFueT4pIHtcbiAgICBjb25zdCBhZmZlY3RlZCA9IHRoaXMuY29sdW1ucygpLmZpbHRlcigoXykgPT4gXy5wYXJlbnROYW1lID09PSBldmVudC5uYW1lKTtcbiAgICBpZiAoYWZmZWN0ZWQ/Lmxlbmd0aCkge1xuICAgICAgYWZmZWN0ZWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKClbaXRlbS5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZGljdFZhbHVlID0gdGhpcy5nZXREaWN0VmFsdWUodmFsdWUsIGl0ZW0ubmFtZSk7XG4gICAgICAgICAgaWYgKGRpY3RWYWx1ZSAmJiBkaWN0VmFsdWUucGFyZW50SWQgIT09IGV2ZW50LmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICAgICAgICAgIG5ld09ialtpdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3T2JqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGljdFZhbHVlKHZhbHVlOiBhbnksIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmRpY3QoKVtuYW1lXT8uZmluZCgoXykgPT4gXy5pZCA9PT0gdmFsdWUpO1xuICB9XG59XG4iLCJAaWYgKGNvbHVtbnMoKS5sZW5ndGgpIHtcbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgY29sdW1uLm5hbWUpIHtcbiAgICBAaWYgKGNvbHVtbi5jb2x1bW5zPy5sZW5ndGggPCAxICYmIChnZXRFZGl0YWJsZShjb2x1bW4pIHx8ICFoaWRlTm9uRWRpdGFibGUpKSB7XG4gICAgICA8dGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW1cbiAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgICBbaWRdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0KClcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWwoKVwiXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwib25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlKClcIlxuICAgICAgPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0+XG4gICAgfVxuICAgIEBpZiAoY29sdW1uLmNvbHVtbnM/Lmxlbmd0aCA+IDAgJiYgKGdldEVkaXRhYmxlKGNvbHVtbikgfHwgIWhpZGVOb25FZGl0YWJsZSkpIHtcbiAgICAgIDx0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXBcbiAgICAgICAgW2lkXT1cImNvbHVtbi5uYW1lXCJcbiAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzXCJcbiAgICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0KClcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWwoKVwiXG4gICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwib25Db250cm9sVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlKClcIlxuICAgICAgPjwvdGV0YS1wcm9wZXJ0eS1ncmlkLWdyb3VwPlxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
- export * from './property-grid.module';
2
1
  export * from './property-grid/property-grid.component';
3
2
  export * from './property-grid/property-grid-item/property-grid-item.component';
4
3
  export * from './property-grid/property-grid-item-description.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsMERBQTBELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5LWdyaWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWl0ZW0vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtLWRlc2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export * from './radio/radio.component';
2
2
  export * from './radio-button/radio-button.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcmFkaW8vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcmFkaW8vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbiJdfQ==