igniteui-angular 17.0.5-beta.0 → 17.0.6

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 (342) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +3 -3
  2. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  3. package/esm2022/lib/accordion/public_api.mjs +12 -3
  4. package/esm2022/lib/action-strip/action-strip.component.mjs +6 -6
  5. package/esm2022/lib/action-strip/action-strip.module.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
  7. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +3 -3
  8. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +3 -3
  9. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
  10. package/esm2022/lib/action-strip/public_api.mjs +3 -2
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/badge/badge.component.mjs +3 -3
  14. package/esm2022/lib/badge/badge.module.mjs +4 -4
  15. package/esm2022/lib/banner/banner.component.mjs +3 -3
  16. package/esm2022/lib/banner/banner.directives.mjs +3 -3
  17. package/esm2022/lib/banner/banner.module.mjs +4 -4
  18. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +3 -3
  19. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar-base.mjs +3 -3
  21. package/esm2022/lib/calendar/calendar.component.mjs +3 -3
  22. package/esm2022/lib/calendar/calendar.directives.mjs +15 -15
  23. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/day-item.component.mjs +3 -3
  25. package/esm2022/lib/calendar/days-view/days-view.component.mjs +3 -3
  26. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
  27. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +3 -3
  28. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
  29. package/esm2022/lib/calendar/months-view/months-view.component.mjs +3 -3
  30. package/esm2022/lib/calendar/months-view.pipe.mjs +6 -6
  31. package/esm2022/lib/calendar/years-view/years-view.component.mjs +6 -6
  32. package/esm2022/lib/card/card.component.mjs +27 -27
  33. package/esm2022/lib/card/card.module.mjs +4 -4
  34. package/esm2022/lib/carousel/carousel.component.mjs +6 -6
  35. package/esm2022/lib/carousel/carousel.directives.mjs +9 -9
  36. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  37. package/esm2022/lib/carousel/slide.component.mjs +3 -3
  38. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  39. package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
  40. package/esm2022/lib/chips/chip.component.mjs +3 -3
  41. package/esm2022/lib/chips/chips-area.component.mjs +3 -3
  42. package/esm2022/lib/chips/chips.module.mjs +4 -4
  43. package/esm2022/lib/combo/combo-add-item.component.mjs +3 -3
  44. package/esm2022/lib/combo/combo-dropdown.component.mjs +3 -3
  45. package/esm2022/lib/combo/combo-item.component.mjs +3 -3
  46. package/esm2022/lib/combo/combo.api.mjs +3 -3
  47. package/esm2022/lib/combo/combo.common.mjs +3 -3
  48. package/esm2022/lib/combo/combo.component.mjs +3 -3
  49. package/esm2022/lib/combo/combo.directives.mjs +24 -24
  50. package/esm2022/lib/combo/combo.module.mjs +4 -4
  51. package/esm2022/lib/combo/combo.pipes.mjs +6 -6
  52. package/esm2022/lib/core/density.mjs +3 -3
  53. package/esm2022/lib/core/navigation/directives.mjs +6 -6
  54. package/esm2022/lib/core/navigation/nav.service.mjs +3 -3
  55. package/esm2022/lib/core/selection.mjs +3 -3
  56. package/esm2022/lib/core/touch.mjs +3 -3
  57. package/esm2022/lib/core/utils.mjs +3 -3
  58. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
  59. package/esm2022/lib/date-common/picker-base.directive.mjs +3 -3
  60. package/esm2022/lib/date-common/picker-icons.common.mjs +9 -9
  61. package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
  62. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
  64. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +3 -3
  65. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
  66. package/esm2022/lib/dialog/dialog.component.mjs +3 -3
  67. package/esm2022/lib/dialog/dialog.directives.mjs +6 -6
  68. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  69. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +3 -3
  70. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +4 -4
  71. package/esm2022/lib/directives/button/button.directive.mjs +3 -3
  72. package/esm2022/lib/directives/button/button.module.mjs +4 -4
  73. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +3 -3
  74. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +4 -4
  75. package/esm2022/lib/directives/divider/divider.directive.mjs +3 -3
  76. package/esm2022/lib/directives/divider/divider.module.mjs +4 -4
  77. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +12 -12
  78. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +4 -4
  79. package/esm2022/lib/directives/filter/filter.directive.mjs +6 -6
  80. package/esm2022/lib/directives/filter/filter.module.mjs +4 -4
  81. package/esm2022/lib/directives/focus/focus.directive.mjs +3 -3
  82. package/esm2022/lib/directives/focus/focus.module.mjs +4 -4
  83. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +3 -3
  84. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/base.helper.component.mjs +3 -3
  86. package/esm2022/lib/directives/for-of/display.container.mjs +3 -3
  87. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -8
  88. package/esm2022/lib/directives/for-of/for_of.module.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -6
  90. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
  91. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +3 -3
  92. package/esm2022/lib/directives/form-control/form-control.directive.mjs +3 -3
  93. package/esm2022/lib/directives/form-control/form-control.module.mjs +4 -4
  94. package/esm2022/lib/directives/hint/hint.directive.mjs +3 -3
  95. package/esm2022/lib/directives/input/input.directive.mjs +3 -3
  96. package/esm2022/lib/directives/label/label.directive.mjs +3 -3
  97. package/esm2022/lib/directives/layout/layout.directive.mjs +6 -6
  98. package/esm2022/lib/directives/layout/layout.module.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +3 -3
  100. package/esm2022/lib/directives/mask/mask.directive.mjs +3 -3
  101. package/esm2022/lib/directives/mask/mask.module.mjs +4 -4
  102. package/esm2022/lib/directives/notification/notifications.directive.mjs +3 -3
  103. package/esm2022/lib/directives/prefix/prefix.directive.mjs +3 -3
  104. package/esm2022/lib/directives/radio/radio-group.directive.mjs +3 -3
  105. package/esm2022/lib/directives/radio/radio-group.module.mjs +4 -4
  106. package/esm2022/lib/directives/ripple/ripple.directive.mjs +3 -3
  107. package/esm2022/lib/directives/ripple/ripple.module.mjs +4 -4
  108. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +3 -3
  109. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +4 -4
  110. package/esm2022/lib/directives/suffix/suffix.directive.mjs +3 -3
  111. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +3 -3
  112. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +3 -3
  113. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +4 -4
  114. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +3 -3
  115. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +4 -4
  116. package/esm2022/lib/directives/toggle/toggle.directive.mjs +9 -9
  117. package/esm2022/lib/directives/toggle/toggle.module.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +3 -3
  119. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +3 -3
  120. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +3 -3
  121. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-group.component.mjs +3 -3
  123. package/esm2022/lib/drop-down/drop-down-item.base.mjs +3 -3
  124. package/esm2022/lib/drop-down/drop-down-item.component.mjs +3 -3
  125. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
  126. package/esm2022/lib/drop-down/drop-down.base.mjs +3 -3
  127. package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
  128. package/esm2022/lib/drop-down/drop-down.module.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
  130. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +3 -3
  131. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +3 -3
  132. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +3 -3
  133. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
  134. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +4 -4
  135. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +3 -3
  136. package/esm2022/lib/grids/api.service.mjs +3 -3
  137. package/esm2022/lib/grids/cell.component.mjs +3 -3
  138. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
  139. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +12 -12
  140. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
  141. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
  142. package/esm2022/lib/grids/columns/column-group.component.mjs +3 -3
  143. package/esm2022/lib/grids/columns/column-layout.component.mjs +3 -3
  144. package/esm2022/lib/grids/columns/column.component.mjs +3 -3
  145. package/esm2022/lib/grids/columns/templates.directive.mjs +24 -24
  146. package/esm2022/lib/grids/columns/validators.directive.mjs +21 -21
  147. package/esm2022/lib/grids/common/crud.service.mjs +3 -3
  148. package/esm2022/lib/grids/common/pipes.mjs +54 -54
  149. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
  151. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  152. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +9 -9
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +14 -12
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
  165. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  166. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +3 -3
  167. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +3 -3
  168. package/esm2022/lib/grids/grid/grid-api.service.mjs +3 -3
  169. package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
  170. package/esm2022/lib/grids/grid/grid-validation.service.mjs +3 -3
  171. package/esm2022/lib/grids/grid/grid.component.mjs +3 -3
  172. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +3 -3
  173. package/esm2022/lib/grids/grid/grid.module.mjs +4 -4
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +12 -12
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +3 -3
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +3 -3
  177. package/esm2022/lib/grids/grid/public_api.mjs +86 -6
  178. package/esm2022/lib/grids/grid-base.directive.mjs +5 -4
  179. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
  180. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +3 -3
  181. package/esm2022/lib/grids/grid-navigation.service.mjs +3 -3
  182. package/esm2022/lib/grids/grid.common.mjs +3 -3
  183. package/esm2022/lib/grids/grid.directives.mjs +33 -33
  184. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +15 -15
  185. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
  186. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +6 -6
  187. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +3 -3
  188. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +3 -3
  189. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +3 -3
  190. package/esm2022/lib/grids/headers/grid-header.component.mjs +3 -3
  191. package/esm2022/lib/grids/headers/pipes.mjs +9 -9
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +3 -3
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +6 -6
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
  199. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
  200. package/esm2022/lib/grids/hierarchical-grid/public_api.mjs +81 -7
  201. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
  202. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +3 -3
  203. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
  204. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +3 -3
  205. package/esm2022/lib/grids/moving/moving.service.mjs +3 -3
  206. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +3 -3
  207. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +3 -3
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +3 -3
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +3 -3
  210. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +3 -3
  211. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +30 -30
  213. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
  214. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +3 -3
  215. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +3 -3
  216. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +3 -3
  217. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
  218. package/esm2022/lib/grids/pivot-grid/public_api.mjs +70 -3
  219. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +3 -3
  220. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
  221. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +3 -3
  222. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +3 -3
  223. package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
  224. package/esm2022/lib/grids/resizing/resizer.directive.mjs +3 -3
  225. package/esm2022/lib/grids/resizing/resizing.service.mjs +3 -3
  226. package/esm2022/lib/grids/row-drag.directive.mjs +9 -9
  227. package/esm2022/lib/grids/row.directive.mjs +3 -3
  228. package/esm2022/lib/grids/selection/drag-select.directive.mjs +3 -3
  229. package/esm2022/lib/grids/selection/row-selectors.mjs +9 -9
  230. package/esm2022/lib/grids/selection/selection.service.mjs +3 -3
  231. package/esm2022/lib/grids/state.directive.mjs +6 -6
  232. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
  233. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +3 -3
  234. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +3 -3
  235. package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
  236. package/esm2022/lib/grids/toolbar/common.mjs +15 -15
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
  238. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +3 -3
  239. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
  240. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
  241. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +6 -6
  242. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +3 -3
  243. package/esm2022/lib/grids/tree-grid/public_api.mjs +81 -7
  244. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
  245. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
  246. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
  247. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
  248. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
  249. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
  250. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
  251. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
  252. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
  253. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
  254. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
  255. package/esm2022/lib/icon/icon.component.mjs +3 -3
  256. package/esm2022/lib/icon/icon.module.mjs +4 -4
  257. package/esm2022/lib/icon/icon.service.mjs +3 -3
  258. package/esm2022/lib/input-group/input-group.component.mjs +3 -3
  259. package/esm2022/lib/input-group/input-group.module.mjs +4 -4
  260. package/esm2022/lib/list/list-item.component.mjs +3 -3
  261. package/esm2022/lib/list/list.common.mjs +15 -15
  262. package/esm2022/lib/list/list.component.mjs +18 -18
  263. package/esm2022/lib/list/list.module.mjs +4 -4
  264. package/esm2022/lib/navbar/navbar.component.mjs +9 -9
  265. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  266. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +3 -3
  267. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +9 -9
  268. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
  269. package/esm2022/lib/paginator/paginator-interfaces.mjs +3 -3
  270. package/esm2022/lib/paginator/paginator.component.mjs +12 -12
  271. package/esm2022/lib/paginator/paginator.module.mjs +4 -4
  272. package/esm2022/lib/progressbar/progressbar.common.mjs +6 -6
  273. package/esm2022/lib/progressbar/progressbar.component.mjs +9 -9
  274. package/esm2022/lib/progressbar/progressbar.module.mjs +4 -4
  275. package/esm2022/lib/query-builder/query-builder-header.component.mjs +3 -3
  276. package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
  277. package/esm2022/lib/query-builder/query-builder.module.mjs +4 -4
  278. package/esm2022/lib/radio/radio.component.mjs +3 -3
  279. package/esm2022/lib/select/select-group.component.mjs +3 -3
  280. package/esm2022/lib/select/select-item.component.mjs +3 -3
  281. package/esm2022/lib/select/select-navigation.directive.mjs +3 -3
  282. package/esm2022/lib/select/select.component.mjs +12 -12
  283. package/esm2022/lib/select/select.module.mjs +4 -4
  284. package/esm2022/lib/services/animation/angular-animation-service.mjs +3 -3
  285. package/esm2022/lib/services/csv/csv-exporter.mjs +3 -3
  286. package/esm2022/lib/services/direction/directionality.mjs +3 -3
  287. package/esm2022/lib/services/excel/excel-exporter.mjs +3 -3
  288. package/esm2022/lib/services/overlay/overlay.mjs +3 -3
  289. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +6 -6
  290. package/esm2022/lib/simple-combo/simple-combo.component.mjs +3 -3
  291. package/esm2022/lib/simple-combo/simple-combo.module.mjs +4 -4
  292. package/esm2022/lib/slider/label/thumb-label.component.mjs +3 -3
  293. package/esm2022/lib/slider/slider.common.mjs +9 -9
  294. package/esm2022/lib/slider/slider.component.mjs +3 -3
  295. package/esm2022/lib/slider/slider.module.mjs +4 -4
  296. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +3 -3
  297. package/esm2022/lib/slider/ticks/tick.pipe.mjs +3 -3
  298. package/esm2022/lib/slider/ticks/ticks.component.mjs +3 -3
  299. package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
  300. package/esm2022/lib/snackbar/snackbar.module.mjs +4 -4
  301. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +3 -3
  302. package/esm2022/lib/splitter/splitter.component.mjs +6 -6
  303. package/esm2022/lib/splitter/splitter.module.mjs +4 -4
  304. package/esm2022/lib/stepper/step/step.component.mjs +3 -3
  305. package/esm2022/lib/stepper/stepper.component.mjs +3 -3
  306. package/esm2022/lib/stepper/stepper.directive.mjs +21 -21
  307. package/esm2022/lib/stepper/stepper.module.mjs +4 -4
  308. package/esm2022/lib/stepper/stepper.service.mjs +3 -3
  309. package/esm2022/lib/switch/switch.component.mjs +3 -3
  310. package/esm2022/lib/switch/switch.module.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
  314. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +3 -3
  315. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
  316. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
  317. package/esm2022/lib/tabs/tab-content.directive.mjs +3 -3
  318. package/esm2022/lib/tabs/tab-header.directive.mjs +3 -3
  319. package/esm2022/lib/tabs/tab-item.directive.mjs +3 -3
  320. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +3 -3
  321. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +3 -3
  322. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +3 -3
  323. package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
  324. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +6 -6
  325. package/esm2022/lib/tabs/tabs/tabs.module.mjs +4 -4
  326. package/esm2022/lib/tabs/tabs.directive.mjs +3 -3
  327. package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
  328. package/esm2022/lib/time-picker/time-picker.directives.mjs +6 -6
  329. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  330. package/esm2022/lib/time-picker/time-picker.pipes.mjs +6 -6
  331. package/esm2022/lib/toast/toast.component.mjs +3 -3
  332. package/esm2022/lib/toast/toast.module.mjs +4 -4
  333. package/esm2022/lib/tree/tree-navigation.service.mjs +3 -3
  334. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +6 -6
  335. package/esm2022/lib/tree/tree-selection.service.mjs +3 -3
  336. package/esm2022/lib/tree/tree.component.mjs +9 -9
  337. package/esm2022/lib/tree/tree.module.mjs +4 -4
  338. package/esm2022/lib/tree/tree.service.mjs +3 -3
  339. package/fesm2022/igniteui-angular.mjs +1883 -1587
  340. package/fesm2022/igniteui-angular.mjs.map +1 -1
  341. package/package.json +1 -1
  342. package/schematics/tsconfig.tsbuildinfo +1 -1
@@ -60,10 +60,10 @@ export class IgxTreeGridCellComponent extends IgxGridExpandableCellComponent {
60
60
  onLoadingDblClick(event) {
61
61
  event.stopPropagation();
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: IgxTreeGridCellComponent, isStandalone: true, selector: "igx-tree-grid-cell", inputs: { level: "level", showIndicator: "showIndicator", isLoading: "isLoading", row: "row" }, providers: [HammerGesturesManager], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' && column.dataType !== 'image' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon>\n <img *ngIf=\"column.dataType === 'image'\" [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string' || column.dataType === 'image'\" [formGroup]=\"formGroup\">\n <igx-input-group displayDensity=\"compact\" >\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\" [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\" [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\" [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-container *ngIf=\"isInvalid\">\n <igx-icon #errorIcon [igxTooltipTarget]=\"tooltipRef\" [igxToggleOutlet]=\"grid.outlet\"\n (mouseover)='errorShowing = true' (mouseout)='errorShowing = false'>error</igx-icon>\n <div [id]=\"ariaErrorMessage\"\n igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container *ngTemplateOutlet=\"cellValidationErrorTemplate || defaultError; context: context\"></ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n<ng-template #defaultError>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['required']\">\n {{grid.resourceStrings.igx_grid_required_validation_error}}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['minlength']\">\n {{grid.resourceStrings.igx_grid_min_length_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.minlength.requiredLength }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['maxlength']\">\n {{grid.resourceStrings.igx_grid_max_length_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.maxlength.requiredLength }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['min']\">\n {{grid.resourceStrings.igx_grid_min_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.min.min }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['max']\">\n {{grid.resourceStrings.igx_grid_max_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.max.max }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['email']\">\n {{grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['pattern']\">\n {{grid.resourceStrings.igx_grid_pattern_validation_error}}\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "directive", type: IgxTooltipTargetDirective, selector: "[igxTooltipTarget]", inputs: ["showDelay", "hideDelay", "tooltipDisabled", "igxTooltipTarget", "tooltip"], outputs: ["tooltipShow", "tooltipHide"], exportAs: ["tooltipTarget"] }, { kind: "directive", type: IgxTooltipDirective, selector: "[igxTooltip]", inputs: ["context", "id"], exportAs: ["tooltip"] }, { kind: "pipe", type: IgxGridCellImageAltPipe, name: "igxCellImageAlt" }, { kind: "pipe", type: IgxStringReplacePipe, name: "igxStringReplace" }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }, { kind: "directive", type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: IgxTreeGridCellComponent, isStandalone: true, selector: "igx-tree-grid-cell", inputs: { level: "level", showIndicator: "showIndicator", isLoading: "isLoading", row: "row" }, providers: [HammerGesturesManager], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultPinnedIndicator>\n <igx-chip\n *ngIf=\"displayPinnedChip\"\n class=\"igx-grid__td--pinned-chip\"\n [disabled]=\"true\"\n [displayDensity]=\"'compact'\"\n >{{ grid.resourceStrings.igx_grid_pinned_row_indicator }}</igx-chip\n >\n</ng-template>\n<ng-template #defaultCell>\n <div *ngIf=\"column.dataType !== 'boolean' && column.dataType !== 'image' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight\n class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === 'number'\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n \"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\"\n >{{\n formatter\n ? (value | columnFormatter:formatter:rowData)\n : column.dataType === \"number\"\n ? (value | number:column.pipeArgs.digitsInfo:grid.locale)\n : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime')\n ? (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : column.dataType === 'currency'\n ? (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : column.dataType === 'percent'\n ? (value | percent:column.pipeArgs.digitsInfo:grid.locale)\n : value\n }}</div>\n <igx-icon\n *ngIf=\"column.dataType === 'boolean' && !this.formatter\"\n [ngClass]=\"{ 'igx-icon--success': value, 'igx-icon--error': !value }\"\n >{{ value ? \"check\" : \"close\" }}</igx-icon>\n <img *ngIf=\"column.dataType === 'image'\" [src]=\"value\" [alt]=\"value | igxCellImageAlt\" />\n</ng-template>\n<ng-template #addRowCell let-cell=\"cell\">\n <div *ngIf=\"column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)\"\n igxTextHighlight class=\"igx-grid__td-text\"\n [cssClass]=\"highlightClass\"\n [activeCssClass]=\"activeHighlightClass\"\n [groupName]=\"gridID\"\n [value]=\"formatter ? (value | columnFormatter:formatter:rowData) : column.dataType === 'number' ?\n (value | number:column.pipeArgs.digitsInfo:grid.locale) : (column.dataType === 'date' || column.dataType === 'time' || column.dataType === 'dateTime') ?\n (value | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale) : column.dataType === 'currency'?\n (value | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale) : column.dataType === 'percent' ?\n (value | percent:column.pipeArgs.digitsInfo:grid.locale) : value\"\n [row]=\"rowData\"\n [column]=\"this.column.field\"\n [containerClass]=\"'igx-grid__td-text'\"\n [metadata]=\"searchMetadata\">{{\n !isEmptyAddRowCell ? value : (column.header || column.field)\n }}</div>\n</ng-template>\n<ng-template #inlineEditor let-cell=\"cell\">\n <ng-container *ngIf=\"column.dataType === 'string' || column.dataType === 'image'\" [formGroup]=\"formGroup\">\n <igx-input-group displayDensity=\"compact\" >\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n (compositionstart)=\"grid.crudService.isInCompositionMode = true\"\n (compositionend)=\"grid.crudService.isInCompositionMode = false\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'number'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'boolean'\" [formGroup]=\"formGroup\">\n <igx-checkbox\n [checked]=\"editValue\"\n [igxFocus]=\"true\"\n [disableRipple]=\"true\"\n [formControl]=\"formControl\"\n ></igx-checkbox>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'date'\" [formGroup]=\"formGroup\">\n <igx-date-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [weekStart]=\"column.pipeArgs.weekStart\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n >\n </igx-date-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'time'\" [formGroup]=\"formGroup\">\n <igx-time-picker\n [style.width.%]=\"100\"\n [outlet]=\"grid.outlet\"\n mode=\"dropdown\"\n [locale]=\"grid.locale\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"editValue\"\n [igxFocus]=\"true\"\n [formControl]=\"formControl\"\n ></igx-time-picker>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'dateTime'\">\n <igx-input-group [formGroup]=\"formGroup\">\n <input\n type=\"text\"\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [formControl]=\"formControl\"\n igxInput\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [igxFocus]=\"true\"\n />\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'currency'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <igx-prefix *ngIf=\"grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-prefix>\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n <igx-suffix *ngIf=\"!grid.currencyPositionLeft\">{{ currencyCodeSymbol }}</igx-suffix>\n </igx-input-group>\n </ng-container>\n <ng-container *ngIf=\"column.dataType === 'percent'\">\n <igx-input-group displayDensity=\"compact\" [formGroup]=\"formGroup\">\n <input\n igxInput\n [attr.aria-describedby]=\"ariaDescribeBy\"\n [attr.aria-invalid]=\"isInvalid\"\n [igxFocus]=\"true\"\n [step]=\"step\"\n type=\"number\"\n [igxTextSelection]=\"true\"\n [formControl]=\"formControl\"\n />\n <igx-suffix> {{ editValue | percent:column.pipeArgs.digitsInfo:grid.locale }} </igx-suffix>\n </igx-input-group>\n </ng-container>\n</ng-template>\n<ng-container *ngIf=\"!editMode\">\n <ng-container *ngIf=\"level > 0\">\n <div\n #indentationDiv\n class=\"igx-grid__tree-cell--padding-level-{{level}}\"\n [ngStyle]=\"{'padding-inline-start': 'calc(var(--igx-tree-indent-size) *' + level + ')'}\"\n ></div>\n </ng-container>\n <div\n #indicator\n *ngIf=\"!isLoading\"\n class=\"igx-grid__tree-grouping-indicator\"\n [ngStyle]=\"{ visibility: showIndicator ? 'visible' : 'hidden' }\"\n (click)=\"toggle($event)\"\n (focus)=\"onIndicatorFocus()\"\n >\n <ng-container\n *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"pinnedIndicatorTemplate; context: context\"\n >\n </ng-container>\n </div>\n <div\n *ngIf=\"isLoading\"\n (dblclick)=\"onLoadingDblClick($event)\"\n class=\"igx-grid__tree-loading-indicator\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n grid.rowLoadingIndicatorTemplate\n ? grid.rowLoadingIndicatorTemplate\n : defaultLoadingIndicatorTemplate\n \"\n >\n </ng-container>\n </div>\n <ng-template #defaultLoadingIndicatorTemplate>\n <igx-circular-bar [indeterminate]=\"true\"> </igx-circular-bar>\n </ng-template>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"template; context: context\"> </ng-container>\n<ng-container *ngIf=\"isInvalid\">\n <igx-icon #errorIcon [igxTooltipTarget]=\"tooltipRef\" [igxToggleOutlet]=\"grid.outlet\"\n (mouseover)='errorShowing = true' (mouseout)='errorShowing = false'>error</igx-icon>\n <div [id]=\"ariaErrorMessage\"\n igxTooltip #error #tooltipRef=\"tooltip\">\n <div [style.width]=\"'max-content'\">\n <ng-container *ngTemplateOutlet=\"cellValidationErrorTemplate || defaultError; context: context\"></ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #defaultExpandedTemplate>\n <igx-icon>expand_more</igx-icon>\n</ng-template>\n<ng-template #defaultCollapsedTemplate>\n <igx-icon>chevron_right</igx-icon>\n</ng-template>\n<ng-template #defaultError>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['required']\">\n {{grid.resourceStrings.igx_grid_required_validation_error}}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['minlength']\">\n {{grid.resourceStrings.igx_grid_min_length_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.minlength.requiredLength }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['maxlength']\">\n {{grid.resourceStrings.igx_grid_max_length_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.maxlength.requiredLength }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['min']\">\n {{grid.resourceStrings.igx_grid_min_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.min.min }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['max']\">\n {{grid.resourceStrings.igx_grid_max_validation_error | igxStringReplace:'{0}':formGroup.get(column.field).errors.max.max }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['email']\">\n {{grid.resourceStrings.igx_grid_email_validation_error }}\n </div>\n <div *ngIf=\"formGroup?.get(column?.field).errors?.['pattern']\">\n {{grid.resourceStrings.igx_grid_pattern_validation_error}}\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "directive", type: IgxTextHighlightDirective, selector: "[igxTextHighlight]", inputs: ["cssClass", "activeCssClass", "containerClass", "groupName", "value", "row", "column", "metadata"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxFocusDirective, selector: "[igxFocus]", inputs: ["igxFocus"], exportAs: ["igxFocus"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: IgxSuffixDirective, selector: "igx-suffix,[igxSuffix],[igxEnd]" }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "directive", type: IgxTooltipTargetDirective, selector: "[igxTooltipTarget]", inputs: ["showDelay", "hideDelay", "tooltipDisabled", "igxTooltipTarget", "tooltip"], outputs: ["tooltipShow", "tooltipHide"], exportAs: ["tooltipTarget"] }, { kind: "directive", type: IgxTooltipDirective, selector: "[igxTooltip]", inputs: ["context", "id"], exportAs: ["tooltip"] }, { kind: "pipe", type: IgxGridCellImageAltPipe, name: "igxCellImageAlt" }, { kind: "pipe", type: IgxStringReplacePipe, name: "igxStringReplace" }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }, { kind: "directive", type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridCellComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridCellComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid-cell', providers: [HammerGesturesManager], standalone: true, imports: [
69
69
  NgIf,
@@ -282,10 +282,10 @@ export class IgxTreeGridAPIService extends GridBaseAPIService {
282
282
  this.getFlatDataFromFilteredRecords(record.children, data);
283
283
  }
284
284
  }
285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridAPIService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
286
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridAPIService }); }
285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridAPIService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
286
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridAPIService }); }
287
287
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridAPIService, decorators: [{
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridAPIService, decorators: [{
289
289
  type: Injectable
290
290
  }] });
291
291
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3RyZWUtZ3JpZC90cmVlLWdyaWQtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLE9BQU8sRUFBMkIsZUFBZSxFQUFTLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFHdEUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUE0QjtJQUVuRCxZQUFZLENBQUMsWUFBc0I7UUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFZSxnQkFBZ0I7UUFDNUIsTUFBTSxJQUFJ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LElBQUksS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFO29CQUNoRCxPQUFPLElBQUksQ0FBQztpQkFDZjtnQkFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUN0QjtTQUNKO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLDhCQUE4QixDQUFDLE9BQTBCLEVBQUUsSUFBVztRQUMxRSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU87U0FDVjtRQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckI7WUFDRCxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5RDtJQUNMLENBQUM7OEdBL1RRLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZEJhc2VBUElTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlLCBEYXRhVXRpbCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi90cmVlLWdyaWQuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBIaWVyYXJjaGljYWxUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25UeXBlLCBTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVBcnJheSwgbWVyZ2VPYmplY3RzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcbmltcG9ydCB7IFRyZWVHcmlkRmlsdGVyaW5nU3RyYXRlZ3kgfSBmcm9tICcuL3RyZWUtZ3JpZC5maWx0ZXJpbmcuc3RyYXRlZ3knO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSwgR3JpZFR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSWd4RGF0YVJlY29yZFNvcnRpbmcgfSBmcm9tICcuLi9jb21tb24vc3RyYXRlZ3knO1xuaW1wb3J0IHsgRmlsdGVyVXRpbCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRBUElTZXJ2aWNlIGV4dGVuZHMgR3JpZEJhc2VBUElTZXJ2aWNlPEdyaWRUeXBlPiB7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0X2FsbF9kYXRhKHRyYW5zYWN0aW9ucz86IGJvb2xlYW4pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWQ7XG4gICAgICAgIGxldCBkYXRhID0gZ3JpZCAmJiBncmlkLmZsYXREYXRhID8gZ3JpZC5mbGF0RGF0YSA6IFtdO1xuICAgICAgICBkYXRhID0gdHJhbnNhY3Rpb25zID8gZ3JpZC5kYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3MgOiBkYXRhO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0X3N1bW1hcnlfZGF0YSgpIHtcbiAgICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZDtcbiAgICAgICAgY29uc3QgZGF0YSA9IGdyaWQucHJvY2Vzc2VkUm9vdFJlY29yZHM/LmZpbHRlcihyb3cgPT4gcm93LmlzRmlsdGVyZWRPdXRQYXJlbnQgPT09IHVuZGVmaW5lZCB8fCByb3cuaXNGaWx0ZXJlZE91dFBhcmVudCA9PT0gZmFsc2UpXG4gICAgICAgICAgICAubWFwKHJlYyA9PiByZWMuZGF0YSk7XG4gICAgICAgIGlmIChkYXRhICYmIGdyaWQudHJhbnNhY3Rpb25zLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWRSb3dzID0gZ3JpZC50cmFuc2FjdGlvbnMuZ2V0VHJhbnNhY3Rpb25Mb2coKS5maWx0ZXIodCA9PiB0LnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5ERUxFVEUpLm1hcCh0ID0+IHQuaWQpO1xuICAgICAgICAgICAgZGVsZXRlZFJvd3MuZm9yRWFjaChyb3dJRCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVtcERhdGEgPSBncmlkLnByaW1hcnlLZXkgPyBkYXRhLm1hcChyZWMgPT4gcmVjW2dyaWQucHJpbWFyeUtleV0pIDogZGF0YTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRlbXBEYXRhLmluZGV4T2Yocm93SUQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhbGxvd19leHBhbnNpb25fc3RhdGVfY2hhbmdlKHJvd0lELCBleHBhbmRlZCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBncmlkID0gdGhpcy5ncmlkO1xuICAgICAgICBjb25zdCByb3cgPSBncmlkLnJlY29yZHMuZ2V0KHJvd0lEKTtcbiAgICAgICAgaWYgKHJvdy5leHBhbmRlZCA9PT0gZXhwYW5kZWQgfHxcbiAgICAgICAgICAgICgoIXJvdy5jaGlsZHJlbiB8fCAhcm93LmNoaWxkcmVuLmxlbmd0aCkgJiYgKCFncmlkLmxvYWRDaGlsZHJlbk9uRGVtYW5kIHx8XG4gICAgICAgICAgICAgICAgKGdyaWQuaGFzQ2hpbGRyZW5LZXkgJiYgIXJvdy5kYXRhW2dyaWQuaGFzQ2hpbGRyZW5LZXldKSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZF9wYXRoX3RvX3JlY29yZChyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCkge1xuICAgICAgICBjb25zdCBncmlkID0gdGhpcy5ncmlkO1xuICAgICAgICBjb25zdCBleHBhbmRlZFN0YXRlcyA9IGdyaWQuZXhwYW5zaW9uU3RhdGVzO1xuXG4gICAgICAgIHdoaWxlIChyZWNvcmQucGFyZW50KSB7XG4gICAgICAgICAgICByZWNvcmQgPSByZWNvcmQucGFyZW50O1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLmdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKHJlY29yZCk7XG5cbiAgICAgICAgICAgIGlmICghZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICBleHBhbmRlZFN0YXRlcy5zZXQocmVjb3JkLmtleSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC5leHBhbnNpb25TdGF0ZXMgPSBleHBhbmRlZFN0YXRlcztcblxuICAgICAgICBpZiAoZ3JpZC5yb3dFZGl0YWJsZSkge1xuICAgICAgICAgICAgZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmVuZEVkaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWQ7XG4gICAgICAgIGNvbnN0IHN0YXRlcyA9IGdyaWQuZXhwYW5zaW9uU3RhdGVzO1xuICAgICAgICBjb25zdCBleHBhbmRlZCA9IHN0YXRlcy5nZXQocmVjb3JkLmtleSk7XG5cbiAgICAgICAgaWYgKGV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBleHBhbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZWNvcmQuY2hpbGRyZW4gJiYgcmVjb3JkLmNoaWxkcmVuLmxlbmd0aCAmJiByZWNvcmQubGV2ZWwgPCBncmlkLmV4cGFuc2lvbkRlcHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNob3VsZF9hcHBseV9udW1iZXJfc3R5bGUoY29sdW1uOiBDb2x1bW5UeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjb2x1bW4uZGF0YVR5cGUgPT09IEdyaWRDb2x1bW5EYXRhVHlwZS5OdW1iZXIgJiYgY29sdW1uLnZpc2libGVJbmRleCAhPT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlUm93QnlJZChyb3dJRDogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgdHJlZUdyaWQgPSB0aGlzLmdyaWQ7XG4gICAgICAgIGNvbnN0IGZsYXREYXRhV2l0aENhc2NhZGVPbkRlbGV0ZUFuZFRyYW5zYWN0aW9ucyA9XG4gICAgICAgICAgICB0cmVlR3JpZC5wcmltYXJ5S2V5ICYmXG4gICAgICAgICAgICB0cmVlR3JpZC5mb3JlaWduS2V5ICYmXG4gICAgICAgICAgICB0cmVlR3JpZC5jYXNjYWRlT25EZWxldGUgJiZcbiAgICAgICAgICAgIHRyZWVHcmlkLnRyYW5zYWN0aW9ucy5lbmFibGVkO1xuXG4gICAgICAgIGlmIChmbGF0RGF0YVdpdGhDYXNjYWRlT25EZWxldGVBbmRUcmFuc2FjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyZWVHcmlkLnRyYW5zYWN0aW9ucy5zdGFydFBlbmRpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHN1cGVyLmRlbGV0ZVJvd0J5SWQocm93SUQpO1xuXG4gICAgICAgIGlmIChmbGF0RGF0YVdpdGhDYXNjYWRlT25EZWxldGVBbmRUcmFuc2FjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyZWVHcmlkLnRyYW5zYWN0aW9ucy5lbmRQZW5kaW5nKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlUm93RnJvbURhdGEocm93SUQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB0cmVlR3JpZCA9IHRoaXMuZ3JpZDtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gdHJlZUdyaWQucmVjb3Jkcy5nZXQocm93SUQpO1xuXG4gICAgICAgIGlmICh0cmVlR3JpZC5wcmltYXJ5S2V5ICYmIHRyZWVHcmlkLmZvcmVpZ25LZXkpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdHJlZUdyaWQucHJpbWFyeUtleSA/XG4gICAgICAgICAgICAgICAgdHJlZUdyaWQuZGF0YS5tYXAoYyA9PiBjW3RyZWVHcmlkLnByaW1hcnlLZXldKS5pbmRleE9mKHJvd0lEKSA6XG4gICAgICAgICAgICAgICAgdHJlZUdyaWQuZGF0YS5pbmRleE9mKHJvd0lEKTtcbiAgICAgICAgICAgIHN1cGVyLmRlbGV0ZVJvd0Zyb21EYXRhKHJvd0lELCBpbmRleCk7XG5cbiAgICAgICAgICAgIGlmICh0cmVlR3JpZC5jYXNjYWRlT25EZWxldGUpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkICYmIHJlY29yZC5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJlY29yZC5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIuZGVsZXRlUm93QnlJZChjaGlsZC5rZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHJlY29yZC5wYXJlbnQgPyByZWNvcmQucGFyZW50LmRhdGFbdHJlZUdyaWQuY2hpbGREYXRhS2V5XSA6IHRyZWVHcmlkLmRhdGE7XG4gICAgICAgICAgICBpbmRleCA9IHRyZWVHcmlkLnByaW1hcnlLZXkgP1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ubWFwKGMgPT4gY1t0cmVlR3JpZC5wcmltYXJ5S2V5XSkuaW5kZXhPZihyb3dJRCkgOlxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uaW5kZXhPZihyb3dJRCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0X3NlbGVjdGVkX2NoaWxkcmVuKHJlY29yZCwgc2VsZWN0ZWRDaGlsZHJlbik7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdHJlZUdyaWQuZGVzZWxlY3RSb3dzKHNlbGVjdGVkQ2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHJlZUdyaWQudHJhbnNhY3Rpb25zLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdHJlZUdyaWQuZ2VuZXJhdGVSb3dQYXRoKHJvd0lEKTtcbiAgICAgICAgICAgICAgICB0cmVlR3JpZC50cmFuc2FjdGlvbnMuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHJvd0lELFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuREVMRVRFLFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgIH0gYXMgSGllcmFyY2hpY2FsVHJhbnNhY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25baW5kZXhdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ncmlkLnZhbGlkYXRpb24uY2xlYXIocm93SUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldF9zZWxlY3RlZF9jaGlsZHJlbihyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCwgc2VsZWN0ZWRSb3dJRHM6IGFueVtdKSB7XG4gICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWQ7XG4gICAgICAgIGlmICghcmVjb3JkLmNoaWxkcmVuIHx8IHJlY29yZC5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJlY29yZC5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGdyaWQuc2VsZWN0aW9uU2VydmljZS5pc1Jvd1NlbGVjdGVkKGNoaWxkLmtleSkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJvd0lEcy5wdXNoKGNoaWxkLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdldF9zZWxlY3RlZF9jaGlsZHJlbihjaGlsZCwgc2VsZWN0ZWRSb3dJRHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJvd19kZWxldGVkX3RyYW5zYWN0aW9uKHJvd0lEOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93X2RlbGV0ZWRfcGFyZW50KHJvd0lEKSB8fCBzdXBlci5yb3dfZGVsZXRlZF90cmFuc2FjdGlvbihyb3dJRCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldF9yZWNfYnlfaWQocm93SUQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yZWNvcmRzLmdldChyb3dJRCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHJlY29yZCBpbiB0aGUgZGF0YSB2aWV3IGJ5IHBrIG9yIC0xIGlmIG5vdCBmb3VuZCBvciBwcmltYXJ5S2V5IGlzIG5vdCBzZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGtcbiAgICAgKiBAcGFyYW0gZGF0YUNvbGxlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0X3JlY19pbmRleF9ieV9pZChwazogc3RyaW5nIHwgbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyIHtcbiAgICAgICAgZGF0YUNvbGxlY3Rpb24gPSBkYXRhQ29sbGVjdGlvbiB8fCB0aGlzLmdyaWQuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5wcmltYXJ5S2V5ID8gZGF0YUNvbGxlY3Rpb24uZmluZEluZGV4KHJlYyA9PiByZWMuZGF0YVt0aGlzLmdyaWQucHJpbWFyeUtleV0gPT09IHBrKSA6IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhZGRSb3dUb0RhdGEoZGF0YTogYW55LCBwYXJlbnRSb3dJRD86IGFueSkge1xuICAgICAgICBpZiAocGFyZW50Um93SUQgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnRSb3dJRCAhPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZ2V0U3RhdGUocGFyZW50Um93SUQpO1xuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIG5vdCBhbGxvdyBhZGRpbmcgb2Ygcm93cyBhcyBjaGlsZCBvZiBkZWxldGVkIHJvd1xuICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5ERUxFVEUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgQ2Fubm90IGFkZCBjaGlsZCByb3cgdG8gZGVsZXRlZCBwYXJlbnQgcm93YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY29yZCA9IHRoaXMuZ3JpZC5yZWNvcmRzLmdldChwYXJlbnRSb3dJRCk7XG5cbiAgICAgICAgICAgIGlmICghcGFyZW50UmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgcGFyZW50IHJvdyBJRCEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zdW1tYXJ5U2VydmljZS5jbGVhclN1bW1hcnlDYWNoZSh7IHJvd0lEOiBwYXJlbnRSZWNvcmQua2V5IH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC5wcmltYXJ5S2V5ICYmIHRoaXMuZ3JpZC5mb3JlaWduS2V5KSB7XG4gICAgICAgICAgICAgICAgZGF0YVt0aGlzLmdyaWQuZm9yZWlnbktleV0gPSBwYXJlbnRSb3dJRDtcbiAgICAgICAgICAgICAgICBzdXBlci5hZGRSb3dUb0RhdGEoZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudERhdGEgPSBwYXJlbnRSZWNvcmQuZGF0YTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEtleSA9IHRoaXMuZ3JpZC5jaGlsZERhdGFLZXk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dJZCA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5ID8gZGF0YVt0aGlzLmdyaWQucHJpbWFyeUtleV0gOiBkYXRhO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnB1c2goLi4udGhpcy5ncmlkLmdlbmVyYXRlUm93UGF0aChwYXJlbnRSb3dJRCkpO1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnB1c2gocGFyZW50Um93SUQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogcm93SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWU6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuQUREXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgSGllcmFyY2hpY2FsVHJhbnNhY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmVudERhdGFbY2hpbGRLZXldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnREYXRhW2NoaWxkS2V5XSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudERhdGFbY2hpbGRLZXldLnB1c2goZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIuYWRkUm93VG9EYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckRhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IHRoaXMuZmlsdGVyVHJlZURhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcblxuICAgICAgICB0aGlzLmdldEZsYXREYXRhRnJvbUZpbHRlcmVkUmVjb3JkcyhyZWNvcmRzLCBkYXRhKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc29ydERhdGFCeUV4cHJlc3Npb25zKGRhdGE6IElUcmVlR3JpZFJlY29yZFtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pIHtcbiAgICAgICAgY29uc3QgcmVjb3JkczogSVRyZWVHcmlkUmVjb3JkW10gPSBEYXRhVXRpbC5zb3J0KFxuICAgICAgICAgICAgY2xvbmVBcnJheShkYXRhKSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zLFxuICAgICAgICAgICAgdGhpcy5ncmlkLnNvcnRTdHJhdGVneSA/PyBuZXcgSWd4RGF0YVJlY29yZFNvcnRpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuZ3JpZCk7XG4gICAgICAgIHJldHVybiByZWNvcmRzLm1hcChyID0+IHIuZGF0YSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlclRyZWVEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBJVHJlZUdyaWRSZWNvcmRbXSB7XG4gICAgICAgIGxldCByZWNvcmRzID0gdGhpcy5ncmlkLnJvb3RSZWNvcmRzO1xuXG4gICAgICAgIGlmIChleHByZXNzaW9uc1RyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uc1RyZWUsXG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k6IHRoaXMuZ3JpZC5maWx0ZXJTdHJhdGVneSA/PyBuZXcgVHJlZUdyaWRGaWx0ZXJpbmdTdHJhdGVneSgpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVjb3JkcyA9IEZpbHRlclV0aWwuZmlsdGVyKGNsb25lQXJyYXkocmVjb3JkcyksIHN0YXRlLCB0aGlzLmdyaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlY29yZHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZV9yb3dfaW5fYXJyYXkodmFsdWU6IGFueSwgcm93SUQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBncmlkID0gdGhpcy5ncmlkO1xuICAgICAgICBpZiAoZ3JpZC5wcmltYXJ5S2V5ICYmIGdyaWQuZm9yZWlnbktleSkge1xuICAgICAgICAgICAgc3VwZXIudXBkYXRlX3Jvd19pbl9hcnJheSh2YWx1ZSwgcm93SUQsIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IGdyaWQucmVjb3Jkcy5nZXQocm93SUQpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGREYXRhID0gcmVjb3JkLnBhcmVudCA/IHJlY29yZC5wYXJlbnQuZGF0YVtncmlkLmNoaWxkRGF0YUtleV0gOiBncmlkLmRhdGE7XG4gICAgICAgICAgICBpbmRleCA9IGdyaWQucHJpbWFyeUtleSA/IGNoaWxkRGF0YS5tYXAoYyA9PiBjW2dyaWQucHJpbWFyeUtleV0pLmluZGV4T2Yocm93SUQpIDpcbiAgICAgICAgICAgICAgICBjaGlsZERhdGEuaW5kZXhPZihyb3dJRCk7XG4gICAgICAgICAgICBjaGlsZERhdGFbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHJlbGF0ZWQgcm93IG9mIHByb3ZpZGVkIGdyaWQncyBkYXRhIHNvdXJjZSB3aXRoIHByb3ZpZGVkIG5ldyByb3cgdmFsdWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBncmlkIEdyaWQgdG8gdXBkYXRlIGRhdGEgZm9yXG4gICAgICogQHBhcmFtIHJvd0lEIElEIG9mIHRoZSByb3cgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHJvd1ZhbHVlSW5EYXRhU291cmNlIEluaXRpYWwgdmFsdWUgb2YgdGhlIHJvdyBhcyBpdCBpcyBpbiBkYXRhIHNvdXJjZVxuICAgICAqIEBwYXJhbSByb3dDdXJyZW50VmFsdWUgQ3VycmVudCB2YWx1ZSBvZiB0aGUgcm93IGFzIGl0IGlzIHdpdGggYXBwbGllZCBwcmV2aW91cyB0cmFuc2FjdGlvbnNcbiAgICAgKiBAcGFyYW0gcm93TmV3VmFsdWUgTmV3IHZhbHVlIG9mIHRoZSByb3dcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRGF0YShcbiAgICAgICAgZ3JpZDogR3JpZFR5cGUsXG4gICAgICAgIHJvd0lEOiBhbnksXG4gICAgICAgIHJvd1ZhbHVlSW5EYXRhU291cmNlOiBhbnksXG4gICAgICAgIHJvd0N1cnJlbnRWYWx1ZTogYW55LFxuICAgICAgICByb3dOZXdWYWx1ZTogeyBbeDogc3RyaW5nXTogYW55IH0pIHtcbiAgICAgICAgaWYgKGdyaWQudHJhbnNhY3Rpb25zLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBncmlkLmdlbmVyYXRlUm93UGF0aChyb3dJRCk7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbjogSGllcmFyY2hpY2FsVHJhbnNhY3Rpb24gPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHJvd0lELFxuICAgICAgICAgICAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5VUERBVEUsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHJvd05ld1ZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBncmlkLnRyYW5zYWN0aW9ucy5hZGQodHJhbnNhY3Rpb24sIHJvd0N1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXJnZU9iamVjdHMocm93VmFsdWVJbkRhdGFTb3VyY2UsIHJvd05ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcm93X2RlbGV0ZWRfcGFyZW50KHJvd0lEOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZDtcbiAgICAgICAgaWYgKCFncmlkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChncmlkLmNhc2NhZGVPbkRlbGV0ZSAmJiBncmlkLmZvcmVpZ25LZXkpIHx8IGdyaWQuY2hpbGREYXRhS2V5KSB7XG4gICAgICAgICAgICBsZXQgbm9kZSA9IGdyaWQucmVjb3Jkcy5nZXQocm93SUQpO1xuICAgICAgICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZTogU3RhdGUgPSBncmlkLnRyYW5zYWN0aW9ucy5nZXRTdGF0ZShub2RlLmtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5ERUxFVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGbGF0RGF0YUZyb21GaWx0ZXJlZFJlY29yZHMocmVjb3JkczogSVRyZWVHcmlkUmVjb3JkW10sIGRhdGE6IGFueVtdKSB7XG4gICAgICAgIGlmICghcmVjb3JkcyB8fCByZWNvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgaWYgKCFyZWNvcmQuaXNGaWx0ZXJlZE91dFBhcmVudCkge1xuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyZWNvcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRGbGF0RGF0YUZyb21GaWx0ZXJlZFJlY29yZHMocmVjb3JkLmNoaWxkcmVuLCBkYXRhKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -134,10 +134,10 @@ export class IgxTreeGridRowComponent extends IgxRowDirective {
134
134
  beginAddChild() {
135
135
  this.grid.crudService.enterAddRowMode(this, true);
136
136
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: IgxTreeGridRowComponent, isStandalone: true, selector: "igx-tree-grid-row", inputs: { treeRow: "treeRow" }, host: { properties: { "attr.aria-expanded": "this.expanded" } }, providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxTreeGridRowComponent) }], viewQueries: [{ propertyName: "_cells", predicate: ["treeCell"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n<ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n</ng-container>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n</ng-template>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #pinnedCellsTemplate let-col>\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxGridCellComponent, selector: "igx-grid-cell", inputs: ["column", "intRow", "row", "rowData", "columnData", "cellTemplate", "cellValidationErrorTemplate", "pinnedIndicator", "value", "formatter", "visibleColumnIndex", "cellSelectionMode", "lastSearchInfo", "lastPinned", "firstPinned", "editMode", "width", "active", "displayPinnedChip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IgxTreeGridCellComponent, selector: "igx-tree-grid-cell", inputs: ["level", "showIndicator", "isLoading", "row"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }, { kind: "pipe", type: IgxGridCellStylesPipe, name: "igxCellStyles" }, { kind: "pipe", type: IgxGridCellStyleClassesPipe, name: "igxCellStyleClasses" }, { kind: "pipe", type: IgxGridDataMapperPipe, name: "dataMapper" }, { kind: "pipe", type: IgxGridTransactionStatePipe, name: "transactionState" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: IgxTreeGridRowComponent, isStandalone: true, selector: "igx-tree-grid-row", inputs: { treeRow: "treeRow" }, host: { properties: { "attr.aria-expanded": "this.expanded" } }, providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxTreeGridRowComponent) }], viewQueries: [{ propertyName: "_cells", predicate: ["treeCell"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n<ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n</ng-container>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n</ng-template>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #pinnedCellsTemplate let-col>\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "component", type: IgxGridCellComponent, selector: "igx-grid-cell", inputs: ["column", "intRow", "row", "rowData", "columnData", "cellTemplate", "cellValidationErrorTemplate", "pinnedIndicator", "value", "formatter", "visibleColumnIndex", "cellSelectionMode", "lastSearchInfo", "lastPinned", "firstPinned", "editMode", "width", "active", "displayPinnedChip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IgxTreeGridCellComponent, selector: "igx-tree-grid-cell", inputs: ["level", "showIndicator", "isLoading", "row"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: IgxGridNotGroupedPipe, name: "igxNotGrouped" }, { kind: "pipe", type: IgxGridCellStylesPipe, name: "igxCellStyles" }, { kind: "pipe", type: IgxGridCellStyleClassesPipe, name: "igxCellStyleClasses" }, { kind: "pipe", type: IgxGridDataMapperPipe, name: "dataMapper" }, { kind: "pipe", type: IgxGridTransactionStatePipe, name: "transactionState" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
139
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridRowComponent, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridRowComponent, decorators: [{
141
141
  type: Component,
142
142
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid-row', providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxTreeGridRowComponent) }], standalone: true, imports: [NgTemplateOutlet, NgIf, IgxRowDragDirective, IgxGridForOfDirective, IgxGridCellComponent, NgClass, NgStyle, IgxTreeGridCellComponent, IgxCheckboxComponent, NgFor, IgxGridNotGroupedPipe, IgxGridCellStylesPipe, IgxGridCellStyleClassesPipe, IgxGridDataMapperPipe, IgxGridTransactionStatePipe], template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n<ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n</ng-container>\n<ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: { index: viewIndex, rowID: key, key, selected: selected }}\">\n </ng-template>\n </div>\n</ng-container>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForSizePropName]=\"'calcPixelWidth'\" [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n</ng-template>\n<ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-container>\n</ng-container>\n<ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"deleted\"\n [disableRipple]=\"true\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n</ng-template>\n\n<ng-template #pinnedCellsTemplate let-col>\n <ng-template ngFor let-col [ngForOf]=\"pinnedColumns | igxNotGrouped\">\n <ng-template #cellTemplate>\n <igx-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-grid-cell>\n </ng-template>\n <ng-template #treeCellTemplate>\n <igx-tree-grid-cell\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [class.igx-grid__td--number]=\"(col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency') && col.visibleIndex !== 0\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [level]=\"treeRow.level\"\n [expanded]=\"expanded\"\n [showIndicator]=\"showIndicator\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.resolvedWidth\"\n [style.max-width]=\"col.resolvedWidth\"\n [style.flex-basis]=\"col.resolvedWidth\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [isLoading]=\"isLoading\"\n [cellTemplate]=\"col.bodyTemplate\"\n [cellValidationErrorTemplate]=\"col.errorTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\"\n #treeCell>\n </igx-tree-grid-cell>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"col.visibleIndex === 0 ? treeCellTemplate : cellTemplate\"></ng-container>\n </ng-template>\n</ng-template>\n" }]
143
143
  }], propDecorators: { _cells: [{
@@ -238,10 +238,10 @@ export class IgxTreeGridSelectionService extends IgxGridSelectionService {
238
238
  this.rowsToBeIndeterminate.delete(rowID);
239
239
  }
240
240
  }
241
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridSelectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
242
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridSelectionService }); }
241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridSelectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
242
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridSelectionService }); }
243
243
  }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridSelectionService, decorators: [{
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridSelectionService, decorators: [{
245
245
  type: Injectable
246
246
  }] });
247
247
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLXNlbGVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3RyZWUtZ3JpZC90cmVlLWdyaWQtc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtJQUlwRSxrREFBa0Q7SUFDbEMscUJBQXFCLENBQUMsTUFBYSxFQUFFLGtCQUFtQjtRQUNwRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssaUJBQWlCLENBQUMsZUFBZSxFQUFFO1lBQzNFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUM5RCxPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9EQUFvRDtJQUNwQyx1QkFBdUIsQ0FBQyxNQUFhO1FBQ2pELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssaUJBQWlCLENBQUMsZUFBZSxFQUFFO1lBQzlELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVlLHFCQUFxQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQU07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LENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDOzhHQTVRUSwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vY29tbW9uL2VudW1zJztcbmltcG9ydCB7IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElUcmVlR3JpZFJlY29yZCB9IGZyb20gJy4vdHJlZS1ncmlkLmludGVyZmFjZXMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZFNlbGVjdGlvblNlcnZpY2UgZXh0ZW5kcyBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByb3dzVG9CZVNlbGVjdGVkOiBTZXQ8YW55PjtcbiAgICBwcml2YXRlIHJvd3NUb0JlSW5kZXRlcm1pbmF0ZTogU2V0PGFueT47XG5cbiAgICAvKiogU2VsZWN0IHNwZWNpZmllZCByb3dzLiBObyBldmVudCBpcyBlbWl0dGVkLiAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBzZWxlY3RSb3dzV2l0aE5vRXZlbnQocm93SURzOiBhbnlbXSwgY2xlYXJQcmV2U2VsZWN0aW9uPyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5yb3dTZWxlY3Rpb24gPT09IEdyaWRTZWxlY3Rpb25Nb2RlLm11bHRpcGxlQ2FzY2FkZSkge1xuICAgICAgICAgICAgdGhpcy5jYXNjYWRlU2VsZWN0Um93c1dpdGhOb0V2ZW50KHJvd0lEcywgY2xlYXJQcmV2U2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5zZWxlY3RSb3dzV2l0aE5vRXZlbnQocm93SURzLCBjbGVhclByZXZTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKiBEZXNlbGVjdCBzcGVjaWZpZWQgcm93cy4gTm8gZXZlbnQgaXMgZW1pdHRlZC4gKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGVzZWxlY3RSb3dzV2l0aE5vRXZlbnQocm93SURzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ncmlkLnJvd1NlbGVjdGlvbiA9PT0gR3JpZFNlbGVjdGlvbk1vZGUubXVsdGlwbGVDYXNjYWRlKSB7XG4gICAgICAgICAgICB0aGlzLmNhc2NhZGVEZXNlbGVjdFJvd3NXaXRoTm9FdmVudChyb3dJRHMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc2VsZWN0Um93c1dpdGhOb0V2ZW50KHJvd0lEcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGVtaXRSb3dTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5yb3dTZWxlY3Rpb24gPT09IEdyaWRTZWxlY3Rpb25Nb2RlLm11bHRpcGxlQ2FzY2FkZSkge1xuICAgICAgICAgICAgdGhpcy5lbWl0Q2FzY2FkZVJvd1NlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgYWRkZWQsIHJlbW92ZWQsIGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmVtaXRSb3dTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUNhc2NhZGVTZWxlY3Rpb25PbkZpbHRlckFuZENSVUQoXG4gICAgICAgIHBhcmVudHM6IFNldDxhbnk+LFxuICAgICAgICBjcnVkUm93SUQ/OiBhbnksXG4gICAgICAgIHZpc2libGVSb3dJRHM6IFNldDxhbnk+ID0gbnVsbCkge1xuICAgICAgICBpZiAodmlzaWJsZVJvd0lEcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gaWYgdGhlIHRyZWUgZ3JpZCBoYXMgZmxhdCBzdHJ1Y3R1cmVcbiAgICAgICAgICAgIC8vIGRvIG5vdCBleHBsaWNpdGx5IGhhbmRsZSB0aGUgc2VsZWN0aW9uIHN0YXRlIG9mIHRoZSByb3dzXG4gICAgICAgICAgICBpZiAoIXBhcmVudHMuc2l6ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZpc2libGVSb3dJRHMgPSBuZXcgU2V0KHRoaXMuZ2V0Um93SURzKHRoaXMuYWxsRGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5yb3dzVG9CZVNlbGVjdGVkID0gbmV3IFNldCh0aGlzLnJvd1NlbGVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZSA9IG5ldyBTZXQodGhpcy5pbmRldGVybWluYXRlUm93cyk7XG4gICAgICAgICAgICBpZiAoY3J1ZFJvd0lEKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dTZWxlY3Rpb24uZGVsZXRlKGNydWRSb3dJRCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXJlbnRzLnNpemUpIHtcbiAgICAgICAgICAgIHRoaXMucm93U2VsZWN0aW9uID0gbmV3IFNldCh0aGlzLnJvd3NUb0JlU2VsZWN0ZWQpO1xuICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlUm93cyA9IG5ldyBTZXQodGhpcy5yb3dzVG9CZUluZGV0ZXJtaW5hdGUpO1xuICAgICAgICAgICAgLy8gVE9ETzogZW1pdCBzZWxlY3Rpb25DaGFuZ2VEIGV2ZW50LCBjYWxjdWxhdGUgaXRzIGFyZ3MgdGhyb3VnaCB0aGUgaGFuZGxlQWRkZWRBbmRSZW1vdmVkQXJncyBtZXRob2RcbiAgICAgICAgICAgIHRoaXMuY2xlYXJIZWFkZXJDQlN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZS5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGFyZW50cyA9IG5ldyBTZXQ8YW55PigpO1xuICAgICAgICBwYXJlbnRzLmZvckVhY2gocGFyZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUm93U2VsZWN0aW9uU3RhdGUocGFyZW50LCB2aXNpYmxlUm93SURzKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LnBhcmVudCkge1xuICAgICAgICAgICAgICAgIG5ld1BhcmVudHMuYWRkKHBhcmVudC5wYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVDYXNjYWRlU2VsZWN0aW9uT25GaWx0ZXJBbmRDUlVEKG5ld1BhcmVudHMsIG51bGwsIHZpc2libGVSb3dJRHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FzY2FkZVNlbGVjdFJvd3NXaXRoTm9FdmVudChyb3dJRHM6IGFueVtdLCBjbGVhclByZXZTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChjbGVhclByZXZTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZVJvd3MuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMucm93U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVJvd3NOZXdTZWxlY3Rpb25TdGF0ZSh7IGFkZGVkOiByb3dJRHMsIHJlbW92ZWQ6IFtdIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgb2xkU2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZFJvd3MoKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IFsuLi5vbGRTZWxlY3Rpb24sIC4uLnJvd0lEc107XG4gICAgICAgICAgICBjb25zdCBhcmdzID0geyBvbGRTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbiB9O1xuXG4gICAgICAgICAgICAvLyByZXRyaWV2ZSBvbmx5IHRoZSByb3dzIHdpdGhvdXQgdGhlaXIgcGFyZW50cy9jaGlsZHJlbiB3aGljaCBoYXMgdG8gYmUgYWRkZWQgdG8gdGhlIHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVBZGRlZEFuZFJlbW92ZWRBcmdzKGFyZ3MpO1xuXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVJvd3NOZXdTZWxlY3Rpb25TdGF0ZShhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd1NlbGVjdGlvbiA9IG5ldyBTZXQodGhpcy5yb3dzVG9CZVNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlUm93cyA9IG5ldyBTZXQodGhpcy5yb3dzVG9CZUluZGV0ZXJtaW5hdGUpO1xuICAgICAgICB0aGlzLmNsZWFySGVhZGVyQ0JTdGF0ZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXNjYWRlRGVzZWxlY3RSb3dzV2l0aE5vRXZlbnQocm93SURzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhcmdzID0geyBhZGRlZDogW10sIHJlbW92ZWQ6IHJvd0lEcyB9O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVJvd3NOZXdTZWxlY3Rpb25TdGF0ZShhcmdzKTtcblxuICAgICAgICB0aGlzLnJvd1NlbGVjdGlvbiA9IG5ldyBTZXQodGhpcy5yb3dzVG9CZVNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlUm93cyA9IG5ldyBTZXQodGhpcy5yb3dzVG9CZUluZGV0ZXJtaW5hdGUpO1xuICAgICAgICB0aGlzLmNsZWFySGVhZGVyQ0JTdGF0ZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3Rpb25TZXJ2aWNlKCk6IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENhc2NhZGVSb3dTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudD8pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VyclNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCk7XG4gICAgICAgIGlmICh0aGlzLmFyZUVxdWFsQ29sbGVjdGlvbnMoY3VyclNlbGVjdGlvbiwgbmV3U2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJncyA9IHtcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLmdyaWQsIG9sZFNlbGVjdGlvbjogdGhpcy5nZXRTZWxlY3RlZFJvd3NEYXRhKCksIG5ld1NlbGVjdGlvbixcbiAgICAgICAgICAgIGFkZGVkLCByZW1vdmVkLCBldmVudCwgY2FuY2VsOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUm93c05ld1NlbGVjdGlvblN0YXRlKGFyZ3MsICEhdGhpcy5ncmlkLnByaW1hcnlLZXkpO1xuICAgICAgICBhcmdzLm5ld1NlbGVjdGlvbiA9IEFycmF5LmZyb20odGhpcy5hbGxEYXRhLmZpbHRlcihyID0+IHRoaXMucm93c1RvQmVTZWxlY3RlZC5oYXModGhpcy5ncmlkLnByaW1hcnlLZXkgPyByW3RoaXMuZ3JpZC5wcmltYXJ5S2V5XSA6IHIpKSk7XG5cbiAgICAgICAgLy8gcmV0cmlldmUgcm93cy9wYXJlbnRzL2NoaWxkcmVuIHdoaWNoIGhhcyBiZWVuIGFkZGVkL3JlbW92ZWQgZnJvbSB0aGUgc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuaGFuZGxlQWRkZWRBbmRSZW1vdmVkQXJncyhhcmdzKTtcblxuICAgICAgICB0aGlzLmdyaWQucm93U2VsZWN0aW9uQ2hhbmdpbmcuZW1pdChhcmdzKTtcblxuICAgICAgICBpZiAoYXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb25JRHMgPSBhcmdzLm5ld1NlbGVjdGlvbi5tYXAociA9PiB0aGlzLmdyaWQucHJpbWFyeUtleT8gclt0aGlzLmdyaWQucHJpbWFyeUtleV0gOiByKVxuICAgICAgICAvLyBpZiBhcmdzLm5ld1NlbGVjdGlvbiBoYXNuJ3QgYmVlbiBtb2RpZmllZFxuICAgICAgICBpZiAodGhpcy5hcmVFcXVhbENvbGxlY3Rpb25zKEFycmF5LmZyb20odGhpcy5yb3dzVG9CZVNlbGVjdGVkKSwgbmV3U2VsZWN0aW9uSURzKSkge1xuICAgICAgICAgICAgdGhpcy5yb3dTZWxlY3Rpb24gPSBuZXcgU2V0KHRoaXMucm93c1RvQmVTZWxlY3RlZCk7XG4gICAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVSb3dzID0gbmV3IFNldCh0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFySGVhZGVyQ0JTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UubmV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2VsZWN0IHRoZSByb3dzIHdpdGhpbiB0aGUgbW9kaWZpZWQgYXJncy5uZXdTZWxlY3Rpb24gd2l0aCBubyBldmVudFxuICAgICAgICAgICAgdGhpcy5jYXNjYWRlU2VsZWN0Um93c1dpdGhOb0V2ZW50KG5ld1NlbGVjdGlvbklEcywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIHJldHJpZXZlIHRoZSByb3dzIHdoaWNoIHNob3VsZCBiZSBhZGRlZC9yZW1vdmVkIHRvL2Zyb20gdGhlIG9sZCBzZWxlY3Rpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIGhhbmRsZUFkZGVkQW5kUmVtb3ZlZEFyZ3MoYXJnczogYW55KSB7XG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvblNldCA9IG5ldyBTZXQoYXJncy5uZXdTZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBvbGRTZWxlY3Rpb25TZXQgPSBuZXcgU2V0KGFyZ3Mub2xkU2VsZWN0aW9uKTtcbiAgICAgICAgYXJncy5yZW1vdmVkID0gYXJncy5vbGRTZWxlY3Rpb24uZmlsdGVyKHggPT4gIW5ld1NlbGVjdGlvblNldC5oYXMoeCkpO1xuICAgICAgICBhcmdzLmFkZGVkID0gYXJncy5uZXdTZWxlY3Rpb24uZmlsdGVyKHggPT4gIW9sZFNlbGVjdGlvblNldC5oYXMoeCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZHMgdG8gcm93c1RvQmVQcm9jZXNzZWQgc2V0IGFsbCB2aXNpYmxlIGNoaWxkcmVuIG9mIHRoZSByb3dzIHdoaWNoIHdhcyBpbml0aWFsbHkgd2l0aGluIHRoZSByb3dzVG9CZVByb2Nlc3NlZCBzZXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3dzVG9CZVByb2Nlc3NlZCBzZXQgb2YgdGhlIHJvd3MgKHdpdGhvdXQgdGhlaXIgcGFyZW50cy9jaGlsZHJlbikgdG8gYmUgc2VsZWN0ZWQvZGVzZWxlY3RlZFxuICAgICAqIEBwYXJhbSB2aXNpYmxlUm93SURzIGxpc3Qgb2YgYWxsIHZpc2libGUgcm93SWRzXG4gICAgICogQHJldHVybnMgYSBuZXcgc2V0IHdpdGggYWxsIGRpcmVjdCBwYXJlbnRzIG9mIHRoZSByb3dzIHdpdGhpbiByb3dzVG9CZVByb2Nlc3NlZCBzZXRcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbGxlY3RSb3dzQ2hpbGRyZW5BbmREaXJlY3RQYXJlbnRzKHJvd3NUb0JlUHJvY2Vzc2VkOiBTZXQ8YW55PiwgdmlzaWJsZVJvd0lEczogU2V0PGFueT4sIGFkZGluZzogYm9vbGVhbiwgc2hvdWxkQ29udmVydDogYm9vbGVhbik6IFNldDxhbnk+IHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkUm93c1BhcmVudHMgPSBuZXcgU2V0PGFueT4oKTtcbiAgICAgICAgQXJyYXkuZnJvbShyb3dzVG9CZVByb2Nlc3NlZCkuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb3dJRCA9IHNob3VsZENvbnZlcnQgPyByb3dbdGhpcy5ncmlkLnByaW1hcnlLZXldIDogcm93O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REZXNlbGVjdFJvdyhyb3dJRCwgYWRkaW5nKTtcbiAgICAgICAgICAgIGNvbnN0IHJvd1RyZWVSZWNvcmQgPSB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcmVjX2J5X2lkKHJvd0lEKTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0FuZEFsbENoaWxkcmVuID0gdGhpcy5nZXRfYWxsX2NoaWxkcmVuKHJvd1RyZWVSZWNvcmQpO1xuICAgICAgICAgICAgcm93QW5kQWxsQ2hpbGRyZW4uZm9yRWFjaChyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZVJvd0lEcy5oYXMoci5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGVzZWxlY3RSb3coci5rZXksIGFkZGluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocm93VHJlZVJlY29yZCAmJiByb3dUcmVlUmVjb3JkLnBhcmVudCkge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZFJvd3NQYXJlbnRzLmFkZChyb3dUcmVlUmVjb3JkLnBhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkUm93c1BhcmVudHM7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBwb3B1bGF0ZXMgdGhlIHJvd3NUb0JlU2VsZWN0ZWQgYW5kIHJvd3NUb0JlSW5kZXRlcm1pbmF0ZSBzZXRzXG4gICAgICogd2l0aCB0aGUgcm93cyB3aGljaCB3aWxsIGJlIGV2ZW50dWFsbHkgaW4gc2VsZWN0ZWQvaW5kZXRlcm1pbmF0ZSBzdGF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FsY3VsYXRlUm93c05ld1NlbGVjdGlvblN0YXRlKGFyZ3M6IGFueSwgc2hvdWxkQ29udmVydCA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMucm93c1RvQmVTZWxlY3RlZCA9IG5ldyBTZXQ8YW55PihhcmdzLm9sZFNlbGVjdGlvbiA/IHNob3VsZENvbnZlcnQgPyBhcmdzLm9sZFNlbGVjdGlvbi5tYXAociA9PiByW3RoaXMuZ3JpZC5wcmltYXJ5S2V5XSkgOiBhcmdzLm9sZFNlbGVjdGlvbiA6IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCkpO1xuICAgICAgICB0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZSA9IG5ldyBTZXQ8YW55Pih0aGlzLmdldEluZGV0ZXJtaW5hdGVSb3dzKCkpO1xuXG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJRHMgPSBuZXcgU2V0KHRoaXMuZ2V0Um93SURzKHRoaXMuYWxsRGF0YSkpO1xuXG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBuZXcgU2V0KGFyZ3MucmVtb3ZlZCk7XG4gICAgICAgIGNvbnN0IGFkZGVkID0gbmV3IFNldChhcmdzLmFkZGVkKTtcblxuICAgICAgICBpZiAocmVtb3ZlZCAmJiByZW1vdmVkLnNpemUpIHtcbiAgICAgICAgICAgIGxldCByZW1vdmVkUm93c1BhcmVudHMgPSBuZXcgU2V0PGFueT4oKTtcblxuICAgICAgICAgICAgcmVtb3ZlZFJvd3NQYXJlbnRzID0gdGhpcy5jb2xsZWN0Um93c0NoaWxkcmVuQW5kRGlyZWN0UGFyZW50cyhyZW1vdmVkLCB2aXNpYmxlUm93SURzLCBmYWxzZSwgc2hvdWxkQ29udmVydCk7XG5cbiAgICAgICAgICAgIEFycmF5LmZyb20ocmVtb3ZlZFJvd3NQYXJlbnRzKS5mb3JFYWNoKChwYXJlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVBhcmVudFNlbGVjdGlvblN0YXRlKHBhcmVudCwgdmlzaWJsZVJvd0lEcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhZGRlZCAmJiBhZGRlZC5zaXplKSB7XG4gICAgICAgICAgICBsZXQgYWRkZWRSb3dzUGFyZW50cyA9IG5ldyBTZXQ8YW55PigpO1xuXG4gICAgICAgICAgICBhZGRlZFJvd3NQYXJlbnRzID0gdGhpcy5jb2xsZWN0Um93c0NoaWxkcmVuQW5kRGlyZWN0UGFyZW50cyhhZGRlZCwgdmlzaWJsZVJvd0lEcywgdHJ1ZSwgc2hvdWxkQ29udmVydCk7XG5cbiAgICAgICAgICAgIEFycmF5LmZyb20oYWRkZWRSb3dzUGFyZW50cykuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVQYXJlbnRTZWxlY3Rpb25TdGF0ZShwYXJlbnQsIHZpc2libGVSb3dJRHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWN1cnNpdmVseSBoYW5kbGUgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBwYXJlbnRzXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYW5kbGVQYXJlbnRTZWxlY3Rpb25TdGF0ZSh0cmVlUm93OiBJVHJlZUdyaWRSZWNvcmQsIHZpc2libGVSb3dJRHM6IFNldDxhbnk+KSB7XG4gICAgICAgIGlmICghdHJlZVJvdykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFuZGxlUm93U2VsZWN0aW9uU3RhdGUodHJlZVJvdywgdmlzaWJsZVJvd0lEcyk7XG4gICAgICAgIGlmICh0cmVlUm93LnBhcmVudCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVQYXJlbnRTZWxlY3Rpb25TdGF0ZSh0cmVlUm93LnBhcmVudCwgdmlzaWJsZVJvd0lEcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIGdpdmVuIHJvdyBiYXNlZCB0aGUgc2VsZWN0aW9uIHN0YXRlcyBvZiBpdHMgZGlyZWN0IGNoaWxkcmVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYW5kbGVSb3dTZWxlY3Rpb25TdGF0ZSh0cmVlUm93OiBJVHJlZUdyaWRSZWNvcmQsIHZpc2libGVSb3dJRHM6IFNldDxhbnk+KSB7XG4gICAgICAgIGxldCB2aXNpYmxlQ2hpbGRyZW4gPSBbXTtcbiAgICAgICAgaWYgKHRyZWVSb3cgJiYgdHJlZVJvdy5jaGlsZHJlbikge1xuICAgICAgICAgICAgdmlzaWJsZUNoaWxkcmVuID0gdHJlZVJvdy5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gdmlzaWJsZVJvd0lEcy5oYXMoY2hpbGQua2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpc2libGVDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh2aXNpYmxlQ2hpbGRyZW4uZXZlcnkocm93ID0+IHRoaXMucm93c1RvQmVTZWxlY3RlZC5oYXMocm93LmtleSkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REZXNlbGVjdFJvdyh0cmVlUm93LmtleSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpc2libGVDaGlsZHJlbi5zb21lKHJvdyA9PiB0aGlzLnJvd3NUb0JlU2VsZWN0ZWQuaGFzKHJvdy5rZXkpIHx8IHRoaXMucm93c1RvQmVJbmRldGVybWluYXRlLmhhcyhyb3cua2V5KSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZS5hZGQodHJlZVJvdy5rZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMucm93c1RvQmVTZWxlY3RlZC5kZWxldGUodHJlZVJvdy5rZXkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERlc2VsZWN0Um93KHRyZWVSb3cua2V5LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgY2hpbGRyZW4gb2YgdGhlIHJvdyBoYXMgYmVlbiBkZWxldGVkIGFuZCB0aGUgcm93IHdhcyBzZWxlY3RlZCBkbyBub3QgY2hhbmdlIGl0cyBzdGF0ZVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNSb3dTZWxlY3RlZCh0cmVlUm93LmtleSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERlc2VsZWN0Um93KHRyZWVSb3cua2V5LCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REZXNlbGVjdFJvdyh0cmVlUm93LmtleSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRfYWxsX2NoaWxkcmVuKHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKTogYW55W10ge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICBpZiAocmVjb3JkICYmIHJlY29yZC5jaGlsZHJlbiAmJiByZWNvcmQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJlY29yZC5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goLi4udGhpcy5nZXRfYWxsX2NoaWxkcmVuKGNoaWxkKSk7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3REZXNlbGVjdFJvdyhyb3dJRDogYW55LCBzZWxlY3Q6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5yb3dzVG9CZVNlbGVjdGVkLmFkZChyb3dJRCk7XG4gICAgICAgICAgICB0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZS5kZWxldGUocm93SUQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3dzVG9CZVNlbGVjdGVkLmRlbGV0ZShyb3dJRCk7XG4gICAgICAgICAgICB0aGlzLnJvd3NUb0JlSW5kZXRlcm1pbmF0ZS5kZWxldGUocm93SUQpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -800,8 +800,8 @@ export class IgxTreeGridComponent extends IgxGridBaseDirective {
800
800
  }
801
801
  });
802
802
  }
803
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridComponent, deps: [{ token: i1.IgxGridValidationService }, { token: i2.IgxGridSelectionService }, { token: i3.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i4.IgxHierarchicalTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i5.IgxGridNavigationService }, { token: i6.IgxFilteringService }, { token: IgxOverlayService }, { token: i7.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: LOCALE_ID }, { token: i8.PlatformUtil }, { token: IgxGridTransaction, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
804
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.3", type: IgxTreeGridComponent, isStandalone: true, selector: "igx-tree-grid", inputs: { childDataKey: "childDataKey", foreignKey: "foreignKey", hasChildrenKey: "hasChildrenKey", cascadeOnDelete: ["cascadeOnDelete", "cascadeOnDelete", booleanAttribute], loadChildrenOnDemand: "loadChildrenOnDemand", id: "id", data: "data", expansionDepth: "expansionDepth", rowLoadingIndicatorTemplate: "rowLoadingIndicatorTemplate" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, providers: [
803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridComponent, deps: [{ token: i1.IgxGridValidationService }, { token: i2.IgxGridSelectionService }, { token: i3.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i4.IgxHierarchicalTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i5.IgxGridNavigationService }, { token: i6.IgxFilteringService }, { token: IgxOverlayService }, { token: i7.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: LOCALE_ID }, { token: i8.PlatformUtil }, { token: IgxGridTransaction, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
804
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.5", type: IgxTreeGridComponent, isStandalone: true, selector: "igx-tree-grid", inputs: { childDataKey: "childDataKey", foreignKey: "foreignKey", hasChildrenKey: "hasChildrenKey", cascadeOnDelete: ["cascadeOnDelete", "cascadeOnDelete", booleanAttribute], loadChildrenOnDemand: "loadChildrenOnDemand", id: "id", data: "data", expansionDepth: "expansionDepth", rowLoadingIndicatorTemplate: "rowLoadingIndicatorTemplate" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, providers: [
805
805
  IgxGridCRUDService,
806
806
  IgxGridValidationService,
807
807
  IgxGridSummaryService,
@@ -815,7 +815,7 @@ export class IgxTreeGridComponent extends IgxGridBaseDirective {
815
815
  IgxForOfScrollSyncService
816
816
  ], queries: [{ propertyName: "treeGroupArea", first: true, predicate: IgxTreeGridGroupByAreaComponent, descendants: true, read: IgxTreeGridGroupByAreaComponent }, { propertyName: "rowLoadingTemplate", first: true, predicate: IgxRowLoadingIndicatorTemplateDirective, descendants: true, read: IgxRowLoadingIndicatorTemplateDirective }], viewQueries: [{ propertyName: "recordTemplate", first: true, predicate: ["record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "summaryTemplate", first: true, predicate: ["summary_template"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"igx-grid-toolbar\"></ng-content>\n<ng-content select=\"igx-tree-grid-group-by-area\"></ng-content>\n<igx-grid-header-row class=\"igx-grid-thead\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (focus)=\"navigation.focusFirstCell()\"\n>\n</igx-grid-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" (focus)=\"navigation.focusTbody($event)\" (keydown)=\"navigation.handleNavigation($event)\"\n (dragStop)=\"selectionService.dragMode = $event\" [attr.aria-activedescendant]=\"activeDescendant\" [attr.role]=\"dataView.length ? null : 'row'\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\"\n [style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>\n <span *ngIf=\"moving && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"moving && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template #pinnedRecordsTemplate>\n <ng-container *ngIf=\"data\n | treeGridTransaction:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | treeGridNormalizeRecord:pipeTrigger\n | treeGridAddRow:true:pipeTrigger\n | gridRowPinning:id:true:pipeTrigger\n | treeGridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:pipeTrigger:filteringPipeTrigger:true\n | treeGridSorting:sortingExpressions:treeGroupArea?.expressions:sortStrategy:pipeTrigger:true as pinnedData\">\n <div #pinContainer *ngIf=\"pinnedData.length > 0\"\n [ngClass]=\"{\n 'igx-grid__tr--pinned-bottom': !isRowPinningToTop,\n 'igx-grid__tr--pinned-top': isRowPinningToTop\n }\"\n class=\"igx-grid__tr--pinned\" [style.width.px]=\"calcWidth\">\n <ng-container *ngFor=\"let rowData of pinnedData;let rowIndex = index;\">\n <ng-container *ngTemplateOutlet=\"pinned_record_template; context: getContext(rowData, rowIndex, true)\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && isRowPinningToTop ? pinnedRecordsTemplate : null\"></ng-container>\n <ng-template igxGridFor let-rowData [igxGridForOf]=\"data\n | treeGridTransaction:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | treeGridHierarchizing:primaryKey:foreignKey:childDataKey:pipeTrigger\n | treeGridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:pipeTrigger:filteringPipeTrigger\n | treeGridSorting:sortingExpressions:treeGroupArea?.expressions:sortStrategy:pipeTrigger\n | treeGridFlattening:expansionDepth:expansionStates:pipeTrigger\n | treeGridPaging:!!paginator:page:perPage:pipeTrigger\n | treeGridSummary:hasSummarizedColumns:summaryCalculationMode:summaryPosition:showSummaryOnCollapse:pipeTrigger:summaryPipeTrigger\n | treeGridAddRow:false:pipeTrigger\n | gridRowPinning:id:false:pipeTrigger\"\n let-rowIndex=\"index\" [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]='verticalScroll'\n [igxForContainerSize]='calcHeight' [igxForItemSize]=\"renderedRowHeight\" #verticalScrollContainer\n (dataChanging)=\"dataRebinding($event)\" (dataChanged)=\"dataRebound($event)\">\n <ng-template [igxTemplateOutlet]='isSummaryRow(rowData) ? summary_template : record_template'\n [igxTemplateOutletContext]='getContext(rowData, rowIndex, false)'\n (cachedViewLoaded)='cachedViewLoaded($event)'>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && !isRowPinningToTop ? pinnedRecordsTemplate : null\"></ng-container>\n <ng-template #record_template let-rowIndex=\"index\" let-disabledRow=\"disabled\" let-rowData>\n <igx-tree-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [treeRow]=\"rowData\" [disabled]=\"disabledRow\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:row.treeRow.isFilteredOutParent:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\" #row>\n </igx-tree-grid-row>\n </ng-template>\n <ng-template #pinned_record_template let-rowIndex=\"index\" let-rowData>\n <igx-tree-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [treeRow]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:row.treeRow.isFilteredOutParent:rowData:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger\"#row #pinnedRow>\n </igx-tree-grid-row>\n </ng-template>\n <ng-template #summary_template let-rowIndex=\"index\" let-rowData>\n <igx-grid-summary-row [gridID]=\"id\" [summaries]=\"rowData.summaries\"\n [firstCellIndentation]=\"rowData.cellIndentation\" [index]=\"rowIndex\"\n class=\"igx-grid__summaries--body\" role=\"row\" #summaryRow>\n </igx-grid-summary-row>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"igx-grid__row-editing-outlet\" igxOverlayOutlet #igxRowEditingOverlayOutlet></div>\n <igc-trial-watermark></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf='shouldOverlayLoading'>\n </igx-circular-bar>\n </div>\n <span *ngIf=\"moving && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]='!hasVerticalScroll()' class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\"\n [style.height.px]='calcHeight'>\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]='calcHeight'>\n <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>\n </div>\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div igxOverlayOutlet #igxBodyOverlayOutlet=\"overlay-outlet\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" [style.height.px]='summaryRowHeight' #tfoot>\n <div tabindex=\"0\" (focus)=\"navigation.focusFirstCell(false)\"\n (keydown)=\"navigation.summaryNav($event)\" [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-grid-summary-row [style.width.px]='calcWidth' [style.height.px]='summaryRowHeight'\n *ngIf=\"hasSummarizedColumns && rootSummariesEnabled\" [gridID]=\"id\" role=\"row\"\n [summaries]=\"id | igxGridSummaryDataPipe:summaryService.retriggerRootPipe\" [index]=\"dataView.length\"\n class=\"igx-grid__summaries\" #summaryRow>\n </igx-grid-summary-row>\n <div class=\"igx-grid__tfoot-thumb\" [hidden]='!hasVerticalScroll()' [style.height.px]='summaryRowHeight'\n [style.width.px]=\"scrollSize\"></div>\n </div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]='unpinnedWidth'>\n <ng-template igxGridFor [igxGridForOf]='[]' #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]=\"pinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer\"></ng-content>\n <ng-content select=\"igx-paginator\"></ng-content>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultAddRowEmptyTemplate>\n <button type=\"button\" igxButton=\"raised\" igxRipple (click)=\"this.crudService.enterAddRowMode(null, false, $event)\">\n {{resourceStrings.igx_grid_add_row_label}}\n </button>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n\n<div *ngIf=\"rowEditable\" igxToggle #rowEditingOverlay>\n <div [className]=\"bannerClass\">\n <ng-container\n *ngTemplateOutlet=\"rowEditContainer; context: { rowChangesCount: rowChangesCount, endEdit: this.crudService.endEdit.bind(this) }\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #defaultRowEditText>\n You have {{ rowChangesCount }} changes in this row and {{ hiddenColumnsCount }} hidden columns\n</ng-template>\n\n<ng-template #defaultRowEditActions>\n <button type=\"button\" igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(false, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_cancel }}</button>\n <button type=\"button\" igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(true, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_done }}</button>\n</ng-template>\n\n<ng-template #defaultRowEditTemplate>\n <div class=\"igx-banner__message\">\n <span class=\"igx-banner__text\">\n <ng-container\n *ngTemplateOutlet=\"this.crudService.row?.getClassName() === 'IgxAddRow' ? rowAddTextTemplate : rowEditTextTemplate ? rowEditTextTemplate : defaultRowEditText;\n context: { $implicit: this.crudService.row?.getClassName() !== 'IgxAddRow' ? rowChangesCount : null }\">\n </ng-container>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n <div class=\"igx-banner__row\">\n <ng-container\n *ngTemplateOutlet=\"rowEditActionsTemplate ? rowEditActionsTemplate : defaultRowEditActions; context: { $implicit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dragIndicatorIconBase>\n <igx-icon>drag_indicator</igx-icon>\n</ng-template>\n\n<igx-grid-column-resizer *ngIf=\"colResizingService.showResizer\"></igx-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: ["grid", "pinnedColumnCollection", "unpinnedColumnCollection", "activeDescendant", "hasMRL", "width", "density"] }, { kind: "directive", type: IgxGridBodyDirective, selector: "[igxGridBody]" }, { kind: "directive", type: IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { kind: "directive", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { kind: "directive", type: IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf", "igxGridForOfUniqueSizeCache", "igxGridForOfVariableSizes"], outputs: ["dataChanging"] }, { kind: "directive", type: IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { kind: "component", type: IgxTreeGridRowComponent, selector: "igx-tree-grid-row", inputs: ["treeRow"] }, { kind: "component", type: IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: ["summaries", "gridID", "index", "firstCellIndentation"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }, { kind: "component", type: IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxRowEditTabStopDirective, selector: "[igxRowEditTabStop]" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxGridColumnResizerComponent, selector: "igx-grid-column-resizer", inputs: ["restrictResizerTop"] }, { kind: "pipe", type: IgxHasVisibleColumnsPipe, name: "visibleColumns" }, { kind: "pipe", type: IgxGridRowPinningPipe, name: "gridRowPinning" }, { kind: "pipe", type: IgxGridRowClassesPipe, name: "igxGridRowClasses" }, { kind: "pipe", type: IgxGridRowStylesPipe, name: "igxGridRowStyles" }, { kind: "pipe", type: IgxSummaryDataPipe, name: "igxGridSummaryDataPipe" }, { kind: "pipe", type: IgxTreeGridHierarchizingPipe, name: "treeGridHierarchizing" }, { kind: "pipe", type: IgxTreeGridFlatteningPipe, name: "treeGridFlattening" }, { kind: "pipe", type: IgxTreeGridSortingPipe, name: "treeGridSorting" }, { kind: "pipe", type: IgxTreeGridFilteringPipe, name: "treeGridFiltering" }, { kind: "pipe", type: IgxTreeGridPagingPipe, name: "treeGridPaging" }, { kind: "pipe", type: IgxTreeGridTransactionPipe, name: "treeGridTransaction" }, { kind: "pipe", type: IgxTreeGridSummaryPipe, name: "treeGridSummary" }, { kind: "pipe", type: IgxTreeGridNormalizeRecordsPipe, name: "treeGridNormalizeRecord" }, { kind: "pipe", type: IgxTreeGridAddRowPipe, name: "treeGridAddRow" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
817
817
  }
818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridComponent, decorators: [{
818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridComponent, decorators: [{
819
819
  type: Component,
820
820
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-tree-grid', providers: [
821
821
  IgxGridCRUDService,
@@ -7,10 +7,10 @@ export class IgxRowLoadingIndicatorTemplateDirective {
7
7
  constructor(template) {
8
8
  this.template = template;
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxRowLoadingIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: IgxRowLoadingIndicatorTemplateDirective, isStandalone: true, selector: "[igxRowLoadingIndicator]", ngImport: i0 }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxRowLoadingIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: IgxRowLoadingIndicatorTemplateDirective, isStandalone: true, selector: "[igxRowLoadingIndicator]", ngImport: i0 }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxRowLoadingIndicatorTemplateDirective, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxRowLoadingIndicatorTemplateDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: '[igxRowLoadingIndicator]',
@@ -39,10 +39,10 @@ export class IgxTreeGridFilteringPipe {
39
39
  filter(data, state, grid) {
40
40
  return state.strategy.filter(data, state.expressionsTree, state.advancedExpressionsTree, grid);
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridFilteringPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe }); }
43
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridFilteringPipe, isStandalone: true, name: "treeGridFiltering" }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridFilteringPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe }); }
43
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridFilteringPipe, isStandalone: true, name: "treeGridFiltering" }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridFilteringPipe, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridFilteringPipe, decorators: [{
46
46
  type: Pipe,
47
47
  args: [{
48
48
  name: 'treeGridFiltering',
@@ -99,10 +99,10 @@ export class IgxTreeGridGroupingPipe {
99
99
  }
100
100
  return Array.from(map.values());
101
101
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridGroupingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
103
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridGroupingPipe, isStandalone: true, name: "treeGridGrouping" }); }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridGroupingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
103
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridGroupingPipe, isStandalone: true, name: "treeGridGrouping" }); }
104
104
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridGroupingPipe, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridGroupingPipe, decorators: [{
106
106
  type: Pipe,
107
107
  args: [{
108
108
  name: 'treeGridGrouping',
@@ -46,11 +46,11 @@ import * as i40 from "../../paginator/paginator-interfaces";
46
46
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
47
47
  */
48
48
  export class IgxTreeGridModule {
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
50
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridModule, imports: [i1.IgxTreeGridComponent, i2.IgxTreeGridGroupByAreaComponent, i3.IgxTreeGridGroupingPipe, i4.IgxRowAddTextDirective, i4.IgxRowEditActionsDirective, i4.IgxRowEditTextDirective, i4.IgxRowEditTabStopDirective, i5.IgxRowDirective, i6.IgxGridFooterComponent, i7.IgxAdvancedFilteringDialogComponent, i8.IgxRowExpandedIndicatorDirective, i8.IgxRowCollapsedIndicatorDirective, i8.IgxHeaderExpandedIndicatorDirective, i8.IgxHeaderCollapsedIndicatorDirective, i8.IgxExcelStyleHeaderIconDirective, i8.IgxSortAscendingHeaderIconDirective, i8.IgxSortDescendingHeaderIconDirective, i8.IgxSortHeaderIconDirective, i9.IgxDragIndicatorIconDirective, i9.IgxRowDragGhostDirective, i10.IgxGridStateDirective, i11.IgxGridHeaderComponent, i12.IgxGridHeaderGroupComponent, i13.IgxGridHeaderRowComponent, i14.IgxFilterCellTemplateDirective, i14.IgxSummaryTemplateDirective, i14.IgxCellTemplateDirective, i14.IgxCellValidationErrorDirective, i14.IgxCellHeaderTemplateDirective, i14.IgxCellFooterTemplateDirective, i14.IgxCellEditorTemplateDirective, i14.IgxCollapsibleIndicatorTemplateDirective, i15.IgxColumnComponent, i16.IgxColumnGroupComponent, i17.IgxColumnLayoutComponent, i18.IgxColumnActionsComponent, i19.IgxColumnHidingDirective, i20.IgxColumnPinningDirective, i21.IgxRowSelectorDirective, i21.IgxGroupByRowSelectorDirective, i21.IgxHeadSelectorDirective, i22.IgxCSVTextDirective, i22.IgxExcelTextDirective, i22.IgxGridToolbarActionsComponent, i23.IgxGridToolbarAdvancedFilteringComponent, i24.IgxGridToolbarComponent, i25.IgxGridToolbarExporterComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i22.IgxGridToolbarTitleComponent, i22.IgxGridToolbarDirective, i28.IgxGridExcelStyleFilteringComponent, i29.IgxExcelStyleHeaderComponent, i30.IgxExcelStyleSortingComponent, i31.IgxExcelStylePinningComponent, i32.IgxExcelStyleHidingComponent, i33.IgxExcelStyleSelectingComponent, i34.IgxExcelStyleClearFiltersComponent, i35.IgxExcelStyleConditionalFilterComponent, i36.IgxExcelStyleMovingComponent, i37.IgxExcelStyleSearchComponent, i28.IgxExcelStyleColumnOperationsTemplateDirective, i28.IgxExcelStyleFilterOperationsTemplateDirective, i37.IgxExcelStyleLoadingValuesTemplateDirective, i38.IgxColumnRequiredValidatorDirective, i38.IgxColumnMinValidatorDirective, i38.IgxColumnMaxValidatorDirective, i38.IgxColumnEmailValidatorDirective, i38.IgxColumnMinLengthValidatorDirective, i38.IgxColumnMaxLengthValidatorDirective, i38.IgxColumPatternValidatorDirective, i39.IgxPaginatorComponent, i39.IgxPageNavigationComponent, i39.IgxPageSizeSelectorComponent, i39.IgxPaginatorContentDirective, i40.IgxPaginatorDirective], exports: [i1.IgxTreeGridComponent, i2.IgxTreeGridGroupByAreaComponent, i3.IgxTreeGridGroupingPipe, i4.IgxRowAddTextDirective, i4.IgxRowEditActionsDirective, i4.IgxRowEditTextDirective, i4.IgxRowEditTabStopDirective, i5.IgxRowDirective, i6.IgxGridFooterComponent, i7.IgxAdvancedFilteringDialogComponent, i8.IgxRowExpandedIndicatorDirective, i8.IgxRowCollapsedIndicatorDirective, i8.IgxHeaderExpandedIndicatorDirective, i8.IgxHeaderCollapsedIndicatorDirective, i8.IgxExcelStyleHeaderIconDirective, i8.IgxSortAscendingHeaderIconDirective, i8.IgxSortDescendingHeaderIconDirective, i8.IgxSortHeaderIconDirective, i9.IgxDragIndicatorIconDirective, i9.IgxRowDragGhostDirective, i10.IgxGridStateDirective, i11.IgxGridHeaderComponent, i12.IgxGridHeaderGroupComponent, i13.IgxGridHeaderRowComponent, i14.IgxFilterCellTemplateDirective, i14.IgxSummaryTemplateDirective, i14.IgxCellTemplateDirective, i14.IgxCellValidationErrorDirective, i14.IgxCellHeaderTemplateDirective, i14.IgxCellFooterTemplateDirective, i14.IgxCellEditorTemplateDirective, i14.IgxCollapsibleIndicatorTemplateDirective, i15.IgxColumnComponent, i16.IgxColumnGroupComponent, i17.IgxColumnLayoutComponent, i18.IgxColumnActionsComponent, i19.IgxColumnHidingDirective, i20.IgxColumnPinningDirective, i21.IgxRowSelectorDirective, i21.IgxGroupByRowSelectorDirective, i21.IgxHeadSelectorDirective, i22.IgxCSVTextDirective, i22.IgxExcelTextDirective, i22.IgxGridToolbarActionsComponent, i23.IgxGridToolbarAdvancedFilteringComponent, i24.IgxGridToolbarComponent, i25.IgxGridToolbarExporterComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i22.IgxGridToolbarTitleComponent, i22.IgxGridToolbarDirective, i28.IgxGridExcelStyleFilteringComponent, i29.IgxExcelStyleHeaderComponent, i30.IgxExcelStyleSortingComponent, i31.IgxExcelStylePinningComponent, i32.IgxExcelStyleHidingComponent, i33.IgxExcelStyleSelectingComponent, i34.IgxExcelStyleClearFiltersComponent, i35.IgxExcelStyleConditionalFilterComponent, i36.IgxExcelStyleMovingComponent, i37.IgxExcelStyleSearchComponent, i28.IgxExcelStyleColumnOperationsTemplateDirective, i28.IgxExcelStyleFilterOperationsTemplateDirective, i37.IgxExcelStyleLoadingValuesTemplateDirective, i38.IgxColumnRequiredValidatorDirective, i38.IgxColumnMinValidatorDirective, i38.IgxColumnMaxValidatorDirective, i38.IgxColumnEmailValidatorDirective, i38.IgxColumnMinLengthValidatorDirective, i38.IgxColumnMaxLengthValidatorDirective, i38.IgxColumPatternValidatorDirective, i39.IgxPaginatorComponent, i39.IgxPageNavigationComponent, i39.IgxPageSizeSelectorComponent, i39.IgxPaginatorContentDirective, i40.IgxPaginatorDirective] }); }
51
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridModule, imports: [i1.IgxTreeGridComponent, i7.IgxAdvancedFilteringDialogComponent, i18.IgxColumnActionsComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i28.IgxGridExcelStyleFilteringComponent, i35.IgxExcelStyleConditionalFilterComponent, i37.IgxExcelStyleSearchComponent, i39.IgxPaginatorComponent, i39.IgxPageSizeSelectorComponent] }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
50
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridModule, imports: [i1.IgxTreeGridComponent, i2.IgxTreeGridGroupByAreaComponent, i3.IgxTreeGridGroupingPipe, i4.IgxRowAddTextDirective, i4.IgxRowEditActionsDirective, i4.IgxRowEditTextDirective, i4.IgxRowEditTabStopDirective, i5.IgxRowDirective, i6.IgxGridFooterComponent, i7.IgxAdvancedFilteringDialogComponent, i8.IgxRowExpandedIndicatorDirective, i8.IgxRowCollapsedIndicatorDirective, i8.IgxHeaderExpandedIndicatorDirective, i8.IgxHeaderCollapsedIndicatorDirective, i8.IgxExcelStyleHeaderIconDirective, i8.IgxSortAscendingHeaderIconDirective, i8.IgxSortDescendingHeaderIconDirective, i8.IgxSortHeaderIconDirective, i9.IgxDragIndicatorIconDirective, i9.IgxRowDragGhostDirective, i10.IgxGridStateDirective, i11.IgxGridHeaderComponent, i12.IgxGridHeaderGroupComponent, i13.IgxGridHeaderRowComponent, i14.IgxFilterCellTemplateDirective, i14.IgxSummaryTemplateDirective, i14.IgxCellTemplateDirective, i14.IgxCellValidationErrorDirective, i14.IgxCellHeaderTemplateDirective, i14.IgxCellFooterTemplateDirective, i14.IgxCellEditorTemplateDirective, i14.IgxCollapsibleIndicatorTemplateDirective, i15.IgxColumnComponent, i16.IgxColumnGroupComponent, i17.IgxColumnLayoutComponent, i18.IgxColumnActionsComponent, i19.IgxColumnHidingDirective, i20.IgxColumnPinningDirective, i21.IgxRowSelectorDirective, i21.IgxGroupByRowSelectorDirective, i21.IgxHeadSelectorDirective, i22.IgxCSVTextDirective, i22.IgxExcelTextDirective, i22.IgxGridToolbarActionsComponent, i23.IgxGridToolbarAdvancedFilteringComponent, i24.IgxGridToolbarComponent, i25.IgxGridToolbarExporterComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i22.IgxGridToolbarTitleComponent, i22.IgxGridToolbarDirective, i28.IgxGridExcelStyleFilteringComponent, i29.IgxExcelStyleHeaderComponent, i30.IgxExcelStyleSortingComponent, i31.IgxExcelStylePinningComponent, i32.IgxExcelStyleHidingComponent, i33.IgxExcelStyleSelectingComponent, i34.IgxExcelStyleClearFiltersComponent, i35.IgxExcelStyleConditionalFilterComponent, i36.IgxExcelStyleMovingComponent, i37.IgxExcelStyleSearchComponent, i28.IgxExcelStyleColumnOperationsTemplateDirective, i28.IgxExcelStyleFilterOperationsTemplateDirective, i37.IgxExcelStyleLoadingValuesTemplateDirective, i38.IgxColumnRequiredValidatorDirective, i38.IgxColumnMinValidatorDirective, i38.IgxColumnMaxValidatorDirective, i38.IgxColumnEmailValidatorDirective, i38.IgxColumnMinLengthValidatorDirective, i38.IgxColumnMaxLengthValidatorDirective, i38.IgxColumPatternValidatorDirective, i39.IgxPaginatorComponent, i39.IgxPageNavigationComponent, i39.IgxPageSizeSelectorComponent, i39.IgxPaginatorContentDirective, i40.IgxPaginatorDirective], exports: [i1.IgxTreeGridComponent, i2.IgxTreeGridGroupByAreaComponent, i3.IgxTreeGridGroupingPipe, i4.IgxRowAddTextDirective, i4.IgxRowEditActionsDirective, i4.IgxRowEditTextDirective, i4.IgxRowEditTabStopDirective, i5.IgxRowDirective, i6.IgxGridFooterComponent, i7.IgxAdvancedFilteringDialogComponent, i8.IgxRowExpandedIndicatorDirective, i8.IgxRowCollapsedIndicatorDirective, i8.IgxHeaderExpandedIndicatorDirective, i8.IgxHeaderCollapsedIndicatorDirective, i8.IgxExcelStyleHeaderIconDirective, i8.IgxSortAscendingHeaderIconDirective, i8.IgxSortDescendingHeaderIconDirective, i8.IgxSortHeaderIconDirective, i9.IgxDragIndicatorIconDirective, i9.IgxRowDragGhostDirective, i10.IgxGridStateDirective, i11.IgxGridHeaderComponent, i12.IgxGridHeaderGroupComponent, i13.IgxGridHeaderRowComponent, i14.IgxFilterCellTemplateDirective, i14.IgxSummaryTemplateDirective, i14.IgxCellTemplateDirective, i14.IgxCellValidationErrorDirective, i14.IgxCellHeaderTemplateDirective, i14.IgxCellFooterTemplateDirective, i14.IgxCellEditorTemplateDirective, i14.IgxCollapsibleIndicatorTemplateDirective, i15.IgxColumnComponent, i16.IgxColumnGroupComponent, i17.IgxColumnLayoutComponent, i18.IgxColumnActionsComponent, i19.IgxColumnHidingDirective, i20.IgxColumnPinningDirective, i21.IgxRowSelectorDirective, i21.IgxGroupByRowSelectorDirective, i21.IgxHeadSelectorDirective, i22.IgxCSVTextDirective, i22.IgxExcelTextDirective, i22.IgxGridToolbarActionsComponent, i23.IgxGridToolbarAdvancedFilteringComponent, i24.IgxGridToolbarComponent, i25.IgxGridToolbarExporterComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i22.IgxGridToolbarTitleComponent, i22.IgxGridToolbarDirective, i28.IgxGridExcelStyleFilteringComponent, i29.IgxExcelStyleHeaderComponent, i30.IgxExcelStyleSortingComponent, i31.IgxExcelStylePinningComponent, i32.IgxExcelStyleHidingComponent, i33.IgxExcelStyleSelectingComponent, i34.IgxExcelStyleClearFiltersComponent, i35.IgxExcelStyleConditionalFilterComponent, i36.IgxExcelStyleMovingComponent, i37.IgxExcelStyleSearchComponent, i28.IgxExcelStyleColumnOperationsTemplateDirective, i28.IgxExcelStyleFilterOperationsTemplateDirective, i37.IgxExcelStyleLoadingValuesTemplateDirective, i38.IgxColumnRequiredValidatorDirective, i38.IgxColumnMinValidatorDirective, i38.IgxColumnMaxValidatorDirective, i38.IgxColumnEmailValidatorDirective, i38.IgxColumnMinLengthValidatorDirective, i38.IgxColumnMaxLengthValidatorDirective, i38.IgxColumPatternValidatorDirective, i39.IgxPaginatorComponent, i39.IgxPageNavigationComponent, i39.IgxPageSizeSelectorComponent, i39.IgxPaginatorContentDirective, i40.IgxPaginatorDirective] }); }
51
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridModule, imports: [i1.IgxTreeGridComponent, i7.IgxAdvancedFilteringDialogComponent, i18.IgxColumnActionsComponent, i26.IgxGridToolbarHidingComponent, i27.IgxGridToolbarPinningComponent, i28.IgxGridExcelStyleFilteringComponent, i35.IgxExcelStyleConditionalFilterComponent, i37.IgxExcelStyleSearchComponent, i39.IgxPaginatorComponent, i39.IgxPageSizeSelectorComponent] }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeGridModule, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeGridModule, decorators: [{
54
54
  type: NgModule,
55
55
  args: [{
56
56
  imports: [