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
@@ -13,10 +13,10 @@ export class TimeFormatPipe {
13
13
  const datePipe = new DatePipe(this.timePicker.locale);
14
14
  return datePipe.transform(value, format);
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: TimeFormatPipe, deps: [{ token: IGX_TIME_PICKER_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: TimeFormatPipe, isStandalone: true, name: "timeFormatPipe" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TimeFormatPipe, deps: [{ token: IGX_TIME_PICKER_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: TimeFormatPipe, isStandalone: true, name: "timeFormatPipe" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: TimeFormatPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TimeFormatPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  name: 'timeFormatPipe',
@@ -194,10 +194,10 @@ export class TimeItemPipe {
194
194
  }
195
195
  return hour;
196
196
  }
197
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: TimeItemPipe, deps: [{ token: IGX_TIME_PICKER_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe }); }
198
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: TimeItemPipe, isStandalone: true, name: "timeItemPipe" }); }
197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TimeItemPipe, deps: [{ token: IGX_TIME_PICKER_COMPONENT }], target: i0.ɵɵFactoryTarget.Pipe }); }
198
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: TimeItemPipe, isStandalone: true, name: "timeItemPipe" }); }
199
199
  }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: TimeItemPipe, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TimeItemPipe, decorators: [{
201
201
  type: Pipe,
202
202
  args: [{
203
203
  name: 'timeItemPipe',
@@ -156,10 +156,10 @@ export class IgxToastComponent extends IgxNotificationsDirective {
156
156
  this.isVisibleChange.emit(closedEventArgs);
157
157
  });
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxToastComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.IgxNavigationService, optional: true }, { token: IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: IgxToastComponent, isStandalone: true, selector: "igx-toast", inputs: { id: "id", role: "role", positionSettings: "positionSettings" }, outputs: { isVisibleChange: "isVisibleChange" }, host: { properties: { "class.igx-toast": "this.cssClass", "attr.id": "this.id", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxToastComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.IgxNavigationService, optional: true }, { token: IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: IgxToastComponent, isStandalone: true, selector: "igx-toast", inputs: { id: "id", role: "role", positionSettings: "positionSettings" }, outputs: { isVisibleChange: "isVisibleChange" }, host: { properties: { "class.igx-toast": "this.cssClass", "attr.id": "this.id", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxToastComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxToastComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'igx-toast', standalone: true, template: "<ng-content></ng-content>\n<span>{{ textMessage }}</span>\n\n" }]
165
165
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.IgxNavigationService, decorators: [{
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxToastModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: IgxToastModule, imports: [IgxToastComponent], exports: [IgxToastComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxToastModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IgxToastModule, imports: [IgxToastComponent], exports: [IgxToastComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxToastModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxToastModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxToastModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [
@@ -229,10 +229,10 @@ export class IgxTreeNavigationService {
229
229
  const nodeIndex = this.visibleChildren.indexOf(node);
230
230
  return this.visibleChildren[nodeIndex + dir] || node;
231
231
  }
232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNavigationService, deps: [{ token: i1.IgxTreeService }, { token: i2.IgxTreeSelectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
233
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNavigationService }); }
232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNavigationService, deps: [{ token: i1.IgxTreeService }, { token: i2.IgxTreeSelectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
233
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNavigationService }); }
234
234
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNavigationService, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNavigationService, decorators: [{
236
236
  type: Injectable
237
237
  }], ctorParameters: () => [{ type: i1.IgxTreeService }, { type: i2.IgxTreeSelectionService }] });
238
238
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1uYXZpZ2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvdHJlZS90cmVlLW5hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBd0Isb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRS9CLHdCQUF3QjtBQUV4QixNQUFNLE9BQU8sd0JBQXdCO0lBYWpDLFlBQW9CLFdBQTJCLEVBQVUsZ0JBQXlDO1FBQTlFLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFWMUYsaUJBQVksR0FBcUIsSUFBSSxDQUFDO1FBQ3RDLHFCQUFnQixHQUFxQixJQUFJLENBQUM7UUFDMUMsZ0JBQVcsR0FBcUIsSUFBSSxDQUFDO1FBRXJDLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFDMUMsdUJBQWtCLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEQsc0JBQWlCLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFckQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsZ0JBQWdCO2dCQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENB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R0FBRyxLQUFLO1FBQ2hDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssb0JBQW9CLENBQUMsSUFBSSxFQUFFO1lBQ25ELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUQsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRUQsb0ZBQW9GO0lBQzVFLGNBQWMsQ0FBQyxJQUFzQixFQUFFLE1BQWMsQ0FBQztRQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6RCxDQUFDOzhHQWpQUSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4VHJlZSwgSWd4VHJlZU5vZGUsIElneFRyZWVTZWxlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgTkFWSUdBVElPTl9LRVlTIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hUcmVlU2VydmljZSB9IGZyb20gJy4vdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7IElneFRyZWVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi90cmVlLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4VHJlZU5hdmlnYXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHRyZWU6IElneFRyZWU7XG5cbiAgICBwcml2YXRlIF9mb2N1c2VkTm9kZTogSWd4VHJlZU5vZGU8YW55PiA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbGFzdEZvY3VzZWROb2RlOiBJZ3hUcmVlTm9kZTxhbnk+ID0gbnVsbDtcbiAgICBwcml2YXRlIF9hY3RpdmVOb2RlOiBJZ3hUcmVlTm9kZTxhbnk+ID0gbnVsbDtcblxuICAgIHByaXZhdGUgX3Zpc2libGVDaGlsZHJlbjogSWd4VHJlZU5vZGU8YW55PltdID0gW107XG4gICAgcHJpdmF0ZSBfaW52aXNpYmxlQ2hpbGRyZW46IFNldDxJZ3hUcmVlTm9kZTxhbnk+PiA9IG5ldyBTZXQoKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZENoaWxkcmVuOiBTZXQ8SWd4VHJlZU5vZGU8YW55Pj4gPSBuZXcgU2V0KCk7XG5cbiAgICBwcml2YXRlIF9jYWNoZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyZWVTZXJ2aWNlOiBJZ3hUcmVlU2VydmljZSwgcHJpdmF0ZSBzZWxlY3Rpb25TZXJ2aWNlOiBJZ3hUcmVlU2VsZWN0aW9uU2VydmljZSkge1xuICAgICAgICB0aGlzLl9jYWNoZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNoaWxkcmVuID1cbiAgICAgICAgICAgICAgICB0aGlzLnRyZWU/Lm5vZGVzID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmVlLm5vZGVzLmZpbHRlcihlID0+ICEodGhpcy5faW52aXNpYmxlQ2hpbGRyZW4uaGFzKGUpIHx8IHRoaXMuX2Rpc2FibGVkQ2hpbGRyZW4uaGFzKGUpKSkgOlxuICAgICAgICAgICAgICAgICAgICBbXTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyKHRyZWU6IElneFRyZWUpIHtcbiAgICAgICAgdGhpcy50cmVlID0gdHJlZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWROb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZE5vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBmb2N1c2VkTm9kZSh2YWx1ZTogSWd4VHJlZU5vZGU8YW55Pikge1xuICAgICAgICBpZiAodGhpcy5fZm9jdXNlZE5vZGUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbGFzdEZvY3VzZWROb2RlID0gdGhpcy5fZm9jdXNlZE5vZGU7XG4gICAgICAgIGlmICh0aGlzLl9sYXN0Rm9jdXNlZE5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkTm9kZS50YWJJbmRleCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZvY3VzZWROb2RlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9mb2N1c2VkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZE5vZGUudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZE5vZGUuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlTm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZU5vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBhY3RpdmVOb2RlKHZhbHVlOiBJZ3hUcmVlTm9kZTxhbnk+KSB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVOb2RlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5vZGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy50cmVlLmFjdGl2ZU5vZGVDaGFuZ2VkLmVtaXQodGhpcy5fYWN0aXZlTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2aXNpYmxlQ2hpbGRyZW4oKTogSWd4VHJlZU5vZGU8YW55PltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDaGlsZHJlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlX2Rpc2FibGVkX2NhY2hlKG5vZGU6IElneFRyZWVOb2RlPGFueT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vZGUuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkQ2hpbGRyZW4uYWRkKG5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRDaGlsZHJlbi5kZWxldGUobm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2FjaGVDaGFuZ2UubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0X2ludmlzaWJsZV9jYWNoZSgpIHtcbiAgICAgICAgdGhpcy50cmVlLm5vZGVzLmZpbHRlcihlID0+IGUubGV2ZWwgPT09IDApLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZV92aXNpYmxlX2NhY2hlKG5vZGUsIG5vZGUuZXhwYW5kZWQsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2NhY2hlQ2hhbmdlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlX3Zpc2libGVfY2FjaGUobm9kZTogSWd4VHJlZU5vZGU8YW55PiwgZXhwYW5kZWQ6IGJvb2xlYW4sIHNob3VsZEVtaXQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgICAgbm9kZS5fY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW52aXNpYmxlQ2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZV92aXNpYmxlX2NhY2hlKGNoaWxkLCBjaGlsZC5leHBhbmRlZCwgZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlLmFsbENoaWxkcmVuLmZvckVhY2goYyA9PiB0aGlzLl9pbnZpc2libGVDaGlsZHJlbi5hZGQoYykpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNob3VsZEVtaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhY2hlQ2hhbmdlLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG5vZGUgYXMgZm9jdXNlZCAoYW5kIGFjdGl2ZSlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHRhcmdldCBub2RlXG4gICAgICogQHBhcmFtIGlzQWN0aXZlIGlmIHRydWUsIHNldHMgdGhlIG5vZGUgYXMgYWN0aXZlXG4gICAgICovXG4gICAgcHVibGljIHNldEZvY3VzZWRBbmRBY3RpdmVOb2RlKG5vZGU6IElneFRyZWVOb2RlPGFueT4sIGlzQWN0aXZlID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZSA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c2VkTm9kZSA9IG5vZGU7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIGtleWRvd24gZXZlbnRzLiBVc2VkIGluIHRyZWUuY29tcG9uZW50LnRzICovXG4gICAgcHVibGljIGhhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2VkTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKE5BVklHQVRJT05fS0VZUy5oYXMoa2V5KSB8fCBrZXkgPT09ICcqJykpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdlbnRlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLmZvY3VzZWROb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChldmVudC5yZXBlYXQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oYW5kbGVOYXZpZ2F0aW9uKGV2ZW50KSwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZU5hdmlnYXRpb24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9jYWNoZUNoYW5nZS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2NhY2hlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVOYXZpZ2F0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9jdXNlZEFuZEFjdGl2ZU5vZGUodGhpcy52aXNpYmxlQ2hpbGRyZW5bMF0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZvY3VzZWRBbmRBY3RpdmVOb2RlKHRoaXMudmlzaWJsZUNoaWxkcmVuW3RoaXMudmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Fycm93bGVmdCc6XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUFycm93TGVmdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcnJvd3VwJzpcbiAgICAgICAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVwRG93bkFycm93KHRydWUsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Fycm93ZG93bic6XG4gICAgICAgICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVwRG93bkFycm93KGZhbHNlLCBldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUFzdGVyaXNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlYmFyJzpcbiAgICAgICAgICAgIGNhc2UgJ3NwYWNlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNwYWNlKGV2ZW50LnNoaWZ0S2V5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBcnJvd0xlZnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLmV4cGFuZGVkICYmICF0aGlzLnRyZWVTZXJ2aWNlLmNvbGxhcHNpbmdOb2Rlcy5oYXModGhpcy5mb2N1c2VkTm9kZSkgJiYgdGhpcy5mb2N1c2VkTm9kZS5fY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVOb2RlID0gdGhpcy5mb2N1c2VkTm9kZTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZE5vZGUuY29sbGFwc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLmZvY3VzZWROb2RlLnBhcmVudE5vZGU7XG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAmJiAhcGFyZW50Tm9kZS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9jdXNlZEFuZEFjdGl2ZU5vZGUocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFycm93UmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLl9jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZm9jdXNlZE5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLmZvY3VzZWROb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZE5vZGUuZXhwYW5kKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVTZXJ2aWNlLmNvbGxhcHNpbmdOb2Rlcy5oYXModGhpcy5mb2N1c2VkTm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkTm9kZS5leHBhbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENoaWxkID0gdGhpcy5mb2N1c2VkTm9kZS5fY2hpbGRyZW4uZmluZChub2RlID0+ICFub2RlLmRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvY3VzZWRBbmRBY3RpdmVOb2RlKGZpcnN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlVXBEb3duQXJyb3coaXNVcDogYm9vbGVhbiwgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0VmlzaWJsZU5vZGUodGhpcy5mb2N1c2VkTm9kZSwgaXNVcCA/IC0xIDogMSk7XG4gICAgICAgIGlmIChuZXh0ID09PSB0aGlzLmZvY3VzZWROb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXRGb2N1c2VkQW5kQWN0aXZlTm9kZShuZXh0LCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldEZvY3VzZWRBbmRBY3RpdmVOb2RlKG5leHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBc3RlcmlzaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLmZvY3VzZWROb2RlLnBhcmVudE5vZGUgPyB0aGlzLmZvY3VzZWROb2RlLnBhcmVudE5vZGUuX2NoaWxkcmVuIDogdGhpcy50cmVlLnJvb3ROb2RlcztcbiAgICAgICAgbm9kZXM/LmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5vZGUuZGlzYWJsZWQgJiYgKCFub2RlLmV4cGFuZGVkIHx8IHRoaXMudHJlZVNlcnZpY2UuY29sbGFwc2luZ05vZGVzLmhhcyhub2RlKSkpIHtcbiAgICAgICAgICAgICAgICBub2RlLmV4cGFuZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVNwYWNlKHNoaWZ0S2V5ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZS5zZWxlY3Rpb24gPT09IElneFRyZWVTZWxlY3Rpb25UeXBlLk5vbmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZm9jdXNlZE5vZGU7XG4gICAgICAgIGlmIChzaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdE11bHRpcGxlTm9kZXModGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0Tm9kZSh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3ROb2RlKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEdldHMgdGhlIG5leHQgdmlzaWJsZSBub2RlIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24gLSAxIC0+IG5leHQsIC0xIC0+IHByZXZpb3VzICovXG4gICAgcHJpdmF0ZSBnZXRWaXNpYmxlTm9kZShub2RlOiBJZ3hUcmVlTm9kZTxhbnk+LCBkaXI6IDEgfCAtMSA9IDEpOiBJZ3hUcmVlTm9kZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4ID0gdGhpcy52aXNpYmxlQ2hpbGRyZW4uaW5kZXhPZihub2RlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUNoaWxkcmVuW25vZGVJbmRleCArIGRpcl0gfHwgbm9kZTtcbiAgICB9XG59XG4iXX0=
@@ -84,10 +84,10 @@ export class IgxTreeNodeLinkDirective {
84
84
  ngOnDestroy() {
85
85
  this.target.removeLinkChild(this);
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNodeLinkDirective, deps: [{ token: IGX_TREE_NODE_COMPONENT, optional: true }, { token: i1.IgxTreeNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
88
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: IgxTreeNodeLinkDirective, isStandalone: true, selector: "[igxTreeNodeLink]", inputs: { parentNode: ["igxTreeNodeLink", "parentNode"] }, host: { listeners: { "blur": "handleBlur()", "focus": "handleFocus()" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabIndex" } }, ngImport: i0 }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNodeLinkDirective, deps: [{ token: IGX_TREE_NODE_COMPONENT, optional: true }, { token: i1.IgxTreeNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
88
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: IgxTreeNodeLinkDirective, isStandalone: true, selector: "[igxTreeNodeLink]", inputs: { parentNode: ["igxTreeNodeLink", "parentNode"] }, host: { listeners: { "blur": "handleBlur()", "focus": "handleFocus()" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabIndex" } }, ngImport: i0 }); }
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNodeLinkDirective, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNodeLinkDirective, decorators: [{
91
91
  type: Directive,
92
92
  args: [{
93
93
  selector: `[igxTreeNodeLink]`,
@@ -589,12 +589,12 @@ export class IgxTreeNodeComponent extends ToggleAnimationPlayer {
589
589
  this.registeredChildren.splice(index, 1);
590
590
  }
591
591
  }
592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNodeComponent, deps: [{ token: IGX_TREE_COMPONENT }, { token: i2.IgxTreeSelectionService }, { token: i3.IgxTreeService }, { token: i1.IgxTreeNavigationService }, { token: i0.ChangeDetectorRef }, { token: IgxAngularAnimationService }, { token: i0.ElementRef }, { token: IGX_TREE_NODE_COMPONENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
593
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.3", type: IgxTreeNodeComponent, isStandalone: true, selector: "igx-tree-node", inputs: { data: "data", loading: ["loading", "loading", booleanAttribute], resourceStrings: "resourceStrings", active: ["active", "active", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], selected: ["selected", "selected", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute] }, outputs: { selectedChange: "selectedChange", expandedChange: "expandedChange" }, host: { properties: { "class.igx-tree-node--disabled": "this.disabled", "class.igx-tree-node": "this.cssClass", "style.--component-size": "this.size", "attr.role": "this.role" } }, providers: [
592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNodeComponent, deps: [{ token: IGX_TREE_COMPONENT }, { token: i2.IgxTreeSelectionService }, { token: i3.IgxTreeService }, { token: i1.IgxTreeNavigationService }, { token: i0.ChangeDetectorRef }, { token: IgxAngularAnimationService }, { token: i0.ElementRef }, { token: IGX_TREE_NODE_COMPONENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
593
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.5", type: IgxTreeNodeComponent, isStandalone: true, selector: "igx-tree-node", inputs: { data: "data", loading: ["loading", "loading", booleanAttribute], resourceStrings: "resourceStrings", active: ["active", "active", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], selected: ["selected", "selected", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute] }, outputs: { selectedChange: "selectedChange", expandedChange: "expandedChange" }, host: { properties: { "class.igx-tree-node--disabled": "this.disabled", "class.igx-tree-node": "this.cssClass", "style.--component-size": "this.size", "attr.role": "this.role" } }, providers: [
594
594
  { provide: IGX_TREE_NODE_COMPONENT, useExisting: IgxTreeNodeComponent }
595
595
  ], queries: [{ propertyName: "linkChildren", predicate: IgxTreeNodeLinkDirective, read: ElementRef }, { propertyName: "_children", predicate: IGX_TREE_NODE_COMPONENT, read: IGX_TREE_NODE_COMPONENT }, { propertyName: "allChildren", predicate: IGX_TREE_NODE_COMPONENT, descendants: true, read: IGX_TREE_NODE_COMPONENT }], viewQueries: [{ propertyName: "header", first: true, predicate: ["ghostTemplate"], descendants: true, read: ElementRef }, { propertyName: "_defaultExpandIndicatorTemplate", first: true, predicate: ["defaultIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "childrenContainer", first: true, predicate: ["childrenContainer"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #noDragTemplate>\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n</ng-template>\n\n<!-- Will switch templates depending on dragDrop -->\n<ng-template *ngTemplateOutlet=\"noDragTemplate\">\n</ng-template>\n\n<div #childrenContainer\n *ngIf=\"expanded && !loading\"\n class=\"igx-tree-node__group\"\n role=\"group\"\n>\n <ng-content select=\"igx-tree-node\"></ng-content>\n</div>\n\n\n<ng-template #defaultIndicator>\n <igx-icon [attr.aria-label]=\"expanded ? resourceStrings.igx_collapse : resourceStrings.igx_expand\">\n {{ expanded ? \"keyboard_arrow_down\" : \"keyboard_arrow_right\" }}\n </igx-icon>\n</ng-template>\n\n<!-- separated in a template in case this ever needs to be templatable -->\n<ng-template #selectMarkerTemplate>\n <igx-checkbox [checked]=\"selected\" [readonly]=\"true\" [indeterminate]=\"indeterminate\" [tabindex]=\"-1\">\n </igx-checkbox>\n</ng-template>\n\n<ng-template #headerTemplate>\n <div #ghostTemplate class=\"igx-tree-node__wrapper\"\n [attr.role]=\"role\"\n [tabIndex]=\"tabIndex\"\n [ngClass]=\"{\n 'igx-tree-node__wrapper--selected': selected,\n 'igx-tree-node__wrapper--active' : this.active,\n 'igx-tree-node__wrapper--focused' : this.focused,\n 'igx-tree-node__wrapper--disabled' : this.disabled\n }\"\n (pointerdown)=\"onPointerDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"clearFocus()\"\n >\n <div aria-hidden=\"true\">\n <span *ngFor=\"let item of [].constructor(level)\"\n aria-hidden=\"true\"\n class=\"igx-tree-node__spacer\"\n ></span>\n </div>\n\n <!-- Expand/Collapse indicator -->\n <span *ngIf=\"!loading\"\n class=\"igx-tree-node__toggle-button\"\n [ngClass]=\"{ 'igx-tree-node__toggle-button--hidden': !_children?.length }\"\n (click)=\"indicatorClick()\"\n >\n <ng-container *ngTemplateOutlet=\"expandIndicatorTemplate, context: { $implicit: expanded }\">\n </ng-container>\n </span>\n <span *ngIf=\"loading\"\n class=\"igx-tree-node__toggle-button\"\n >\n \t<igx-circular-bar\n \t[animate]=\"false\"\n \t[indeterminate]=\"true\"\n \t[textVisibility]=\"false\"\n \t>\n \t</igx-circular-bar>\n </span>\n\n <!-- Item selection -->\n <div *ngIf=\"showSelectors\"\n class=\"igx-tree-node__select\"\n (pointerdown)=\"$event.preventDefault()\"\n (click)=\"onSelectorClick($event)\">\n <ng-container *ngTemplateOutlet=\"selectMarkerTemplate\">\n </ng-container>\n </div>\n\n <div class=\"igx-tree-node__content\">\n <!-- Ghost content -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Buffer element for 'move after' when D&D is implemented-->\n <div class=\"igx-tree-node__drop-indicator\">\n <span aria-hidden=\"true\" class=\"igx-tree-node__spacer\" *ngFor=\"let item of [].constructor(level)\"></span>\n <!-- style rules target this div, do not delete it -->\n <div></div>\n </div>\n</ng-template>\n\n<ng-template #dragTemplate>\n <!-- Drag drop goes here\n igxDrop\n #dropRef=\"drop\"\n [igxNodeDrag]=\"this\"\n (dragStart)=\"logDrop(dropRef)\"\n (leave)=\"emitLeave()\"\n (enter)=\"emitEnter()\" -->\n <div class=\"igx-tree-node__drag-wrapper\">\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n </div>\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: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { 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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "isIndeterminate", "textVisibility", "text"] }] }); }
596
596
  }
597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeNodeComponent, decorators: [{
597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeNodeComponent, decorators: [{
598
598
  type: Component,
599
599
  args: [{ selector: 'igx-tree-node', providers: [
600
600
  { provide: IGX_TREE_NODE_COMPONENT, useExisting: IgxTreeNodeComponent }
@@ -307,10 +307,10 @@ export class IgxTreeSelectionService {
307
307
  }
308
308
  });
309
309
  }
310
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
311
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeSelectionService }); }
310
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
311
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeSelectionService }); }
312
312
  }
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeSelectionService, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeSelectionService, decorators: [{
314
314
  type: Injectable
315
315
  }] });
316
316
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi90cmVlL3RyZWUtc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLG9CQUFvQixFQUEyQixNQUFNLFVBQVUsQ0FBQzs7QUFRL0Ysd0JBQXdCO0FBRXhCLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFHWSxrQkFBYSxHQUEwQixJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNuRSx1QkFBa0IsR0FBMEIsSUFBSSxHQUFHLEVBQW9CLENBQUM7S0EyVm5GO0lBdFZVLFFBQVEsQ0FBQyxJQUFhO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsbUJBQW1CLENBQUMsSUFBc0IsRUFBRSxLQUFhO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLE9BQU87U0FDVjtRQUNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxL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LHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRyZWUsIElneFRyZWVOb2RlLCBJZ3hUcmVlU2VsZWN0aW9uVHlwZSwgSVRyZWVOb2RlU2VsZWN0aW9uRXZlbnQgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKiBBIGNvbGxlY3Rpb24gY29udGFpbmluZyB0aGUgbm9kZXMgYWZmZWN0ZWQgaW4gdGhlIHNlbGVjdGlvbiBhcyB3ZWxsIGFzIHRoZWlyIGRpcmVjdCBwYXJlbnRzICovXG5pbnRlcmZhY2UgQ2FzY2FkZVNlbGVjdGlvbk5vZGVDb2xsZWN0aW9uIHtcbiAgICBub2RlczogU2V0PElneFRyZWVOb2RlPGFueT4+O1xuICAgIHBhcmVudHM6IFNldDxJZ3hUcmVlTm9kZTxhbnk+Pjtcbn1cblxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4VHJlZVNlbGVjdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgdHJlZTogSWd4VHJlZTtcbiAgICBwcml2YXRlIG5vZGVTZWxlY3Rpb246IFNldDxJZ3hUcmVlTm9kZTxhbnk+PiA9IG5ldyBTZXQ8SWd4VHJlZU5vZGU8YW55Pj4oKTtcbiAgICBwcml2YXRlIGluZGV0ZXJtaW5hdGVOb2RlczogU2V0PElneFRyZWVOb2RlPGFueT4+ID0gbmV3IFNldDxJZ3hUcmVlTm9kZTxhbnk+PigpO1xuXG4gICAgcHJpdmF0ZSBub2Rlc1RvQmVTZWxlY3RlZDogU2V0PElneFRyZWVOb2RlPGFueT4+O1xuICAgIHByaXZhdGUgbm9kZXNUb0JlSW5kZXRlcm1pbmF0ZTogU2V0PElneFRyZWVOb2RlPGFueT4+O1xuXG4gICAgcHVibGljIHJlZ2lzdGVyKHRyZWU6IElneFRyZWUpIHtcbiAgICAgICAgdGhpcy50cmVlID0gdHJlZTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHJhbmdlIGZyb20gbGFzdCBzZWxlY3RlZCBub2RlIHRvIHRoZSBjdXJyZW50IHNwZWNpZmllZCBub2RlLiAqL1xuICAgIHB1YmxpYyBzZWxlY3RNdWx0aXBsZU5vZGVzKG5vZGU6IElneFRyZWVOb2RlPGFueT4sIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm5vZGVTZWxlY3Rpb24uc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3ROb2RlKG5vZGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RTZWxlY3RlZE5vZGVJbmRleCA9IHRoaXMudHJlZS5ub2Rlcy50b0FycmF5KCkuaW5kZXhPZih0aGlzLmdldFNlbGVjdGVkTm9kZXMoKVt0aGlzLm5vZGVTZWxlY3Rpb24uc2l6ZSAtIDFdKTtcbiAgICAgICAgY29uc3QgY3VycmVudE5vZGVJbmRleCA9IHRoaXMudHJlZS5ub2Rlcy50b0FycmF5KCkuaW5kZXhPZihub2RlKTtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLnRyZWUubm9kZXMudG9BcnJheSgpLnNsaWNlKE1hdGgubWluKGN1cnJlbnROb2RlSW5kZXgsIGxhc3RTZWxlY3RlZE5vZGVJbmRleCksXG4gICAgICAgICAgICBNYXRoLm1heChjdXJyZW50Tm9kZUluZGV4LCBsYXN0U2VsZWN0ZWROb2RlSW5kZXgpICsgMSk7XG5cbiAgICAgICAgY29uc3QgYWRkZWQgPSBub2Rlcy5maWx0ZXIoX25vZGUgPT4gIXRoaXMuaXNOb2RlU2VsZWN0ZWQoX25vZGUpKTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE5vZGVzKCkuY29uY2F0KGFkZGVkKTtcbiAgICAgICAgdGhpcy5lbWl0Tm9kZVNlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgYWRkZWQsIFtdLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCB0aGUgc3BlY2lmaWVkIG5vZGUgYW5kIGVtaXQgZXZlbnQuICovXG4gICAgcHVibGljIHNlbGVjdE5vZGUobm9kZTogSWd4VHJlZU5vZGU8YW55PiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmVlLnNlbGVjdGlvbiA9PT0gSWd4VHJlZVNlbGVjdGlvblR5cGUuTm9uZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdE5vZGVTZWxlY3Rpb25FdmVudChbLi4udGhpcy5nZXRTZWxlY3RlZE5vZGVzKCksIG5vZGVdLCBbbm9kZV0sIFtdLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIERlc2VsZWN0IHRoZSBzcGVjaWZpZWQgbm9kZSBhbmQgZW1pdCBldmVudC4gKi9cbiAgICBwdWJsaWMgZGVzZWxlY3ROb2RlKG5vZGU6IElneFRyZWVOb2RlPGFueT4sIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE5vZGVzKCkuZmlsdGVyKHIgPT4gciAhPT0gbm9kZSk7XG4gICAgICAgIHRoaXMuZW1pdE5vZGVTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIFtdLCBbbm9kZV0sIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQ2xlYXJzIG5vZGUgc2VsZWN0aW9uICovXG4gICAgcHVibGljIGNsZWFyTm9kZXNTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVOb2Rlcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05vZGVTZWxlY3RlZChub2RlOiBJZ3hUcmVlTm9kZTxhbnk+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVTZWxlY3Rpb24uaGFzKG5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05vZGVJbmRldGVybWluYXRlKG5vZGU6IElneFRyZWVOb2RlPGFueT4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXRlcm1pbmF0ZU5vZGVzLmhhcyhub2RlKTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHNwZWNpZmllZCBub2Rlcy4gTm8gZXZlbnQgaXMgZW1pdHRlZC4gKi9cbiAgICBwdWJsaWMgc2VsZWN0Tm9kZXNXaXRoTm9FdmVudChub2RlczogSWd4VHJlZU5vZGU8YW55PltdLCBjbGVhclByZXZTZWxlY3Rpb24gPSBmYWxzZSwgc2hvdWxkRW1pdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZSAmJiB0aGlzLnRyZWUuc2VsZWN0aW9uID09PSBJZ3hUcmVlU2VsZWN0aW9uVHlwZS5DYXNjYWRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzY2FkZVNlbGVjdE5vZGVzV2l0aE5vRXZlbnQobm9kZXMsIGNsZWFyUHJldlNlbGVjdGlvbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvbGRTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkTm9kZXMoKTtcblxuICAgICAgICBpZiAoY2xlYXJQcmV2U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4gdGhpcy5ub2RlU2VsZWN0aW9uLmFkZChub2RlKSk7XG5cbiAgICAgICAgaWYgKHNob3VsZEVtaXQpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFNlbGVjdGVkQ2hhbmdlRXZlbnQob2xkU2VsZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXNlbGVjdCBzcGVjaWZpZWQgbm9kZXMuIE5vIGV2ZW50IGlzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIGRlc2VsZWN0Tm9kZXNXaXRoTm9FdmVudChub2Rlcz86IElneFRyZWVOb2RlPGFueT5bXSwgc2hvdWxkRW1pdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkU2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE5vZGVzKCk7XG5cbiAgICAgICAgaWYgKCFub2Rlcykge1xuICAgICAgICAgICAgdGhpcy5ub2RlU2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmVlICYmIHRoaXMudHJlZS5zZWxlY3Rpb24gPT09IElneFRyZWVTZWxlY3Rpb25UeXBlLkNhc2NhZGluZykge1xuICAgICAgICAgICAgdGhpcy5jYXNjYWRlRGVzZWxlY3ROb2Rlc1dpdGhOb0V2ZW50KG5vZGVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGVzLmZvckVhY2gobm9kZSA9PiB0aGlzLm5vZGVTZWxlY3Rpb24uZGVsZXRlKG5vZGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaG91bGRFbWl0KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRTZWxlY3RlZENoYW5nZUV2ZW50KG9sZFNlbGVjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2FsbGVkIG9uIGBub2RlLm5nT25EZXN0cm95YCB0byBlbnN1cmUgc3RhdGUgaXMgY29ycmVjdCBhZnRlciBub2RlIGlzIHJlbW92ZWQgKi9cbiAgICBwdWJsaWMgZW5zdXJlU3RhdGVPbk5vZGVEZWxldGUobm9kZTogSWd4VHJlZU5vZGU8YW55Pik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmVlPy5zZWxlY3Rpb24gIT09IElneFRyZWVTZWxlY3Rpb25UeXBlLkNhc2NhZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc05vZGVTZWxlY3RlZChub2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIG5vZGUgaXMgZGVzdHJveWVkLCBkbyBub3QgZW1pdCBldmVudFxuICAgICAgICAgICAgICAgIHRoaXMuZGVzZWxlY3ROb2Rlc1dpdGhOb0V2ZW50KFtub2RlXSwgZmFsc2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIW5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFzc2l0YW50TGVhZk5vZGUgPSBub2RlLnBhcmVudE5vZGU/LmFsbENoaWxkcmVuLmZpbmQoZSA9PiAhZS5fY2hpbGRyZW4/Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhc3NpdGFudExlYWZOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWdnZXJOb2RlU3RhdGUoYXNzaXRhbnRMZWFmTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWdnZXJzIGEgbm9kZSdzIHNlbGVjdGlvbiBzdGF0ZSAqL1xuICAgIHByaXZhdGUgcmV0cmlnZ2VyTm9kZVN0YXRlKG5vZGU6IElneFRyZWVOb2RlPGFueT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZVNlbGVjdGlvbi5kZWxldGUobm9kZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVzV2l0aE5vRXZlbnQoW25vZGVdLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ub2RlU2VsZWN0aW9uLmFkZChub2RlKTtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3ROb2Rlc1dpdGhOb0V2ZW50KFtub2RlXSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYXJyYXkgb2YgdGhlIHNlbGVjdGVkIG5vZGVzLiAqL1xuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWROb2RlcygpOiBJZ3hUcmVlTm9kZTxhbnk+W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlU2VsZWN0aW9uLnNpemUgPyBBcnJheS5mcm9tKHRoaXMubm9kZVNlbGVjdGlvbikgOiBbXTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhcnJheSBvZiB0aGUgbm9kZXMgaW4gaW5kZXRlcm1pbmF0ZSBzdGF0ZS4gKi9cbiAgICBwcml2YXRlIGdldEluZGV0ZXJtaW5hdGVOb2RlcygpOiBJZ3hUcmVlTm9kZTxhbnk+W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRldGVybWluYXRlTm9kZXMuc2l6ZSA/IEFycmF5LmZyb20odGhpcy5pbmRldGVybWluYXRlTm9kZXMpIDogW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Tm9kZVNlbGVjdGlvbkV2ZW50KFxuICAgICAgICBuZXdTZWxlY3Rpb246IElneFRyZWVOb2RlPGFueT5bXSwgYWRkZWQ6IElneFRyZWVOb2RlPGFueT5bXSwgcmVtb3ZlZDogSWd4VHJlZU5vZGU8YW55PltdLCBldmVudDogRXZlbnRcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZS5zZWxlY3Rpb24gPT09IElneFRyZWVTZWxlY3Rpb25UeXBlLkNhc2NhZGluZykge1xuICAgICAgICAgICAgdGhpcy5lbWl0Q2FzY2FkZU5vZGVTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VyclNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgICAgICBpZiAodGhpcy5hcmVFcXVhbENvbGxlY3Rpb25zKGN1cnJTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3M6IElUcmVlTm9kZVNlbGVjdGlvbkV2ZW50ID0ge1xuICAgICAgICAgICAgb2xkU2VsZWN0aW9uOiBjdXJyU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24sXG4gICAgICAgICAgICBhZGRlZCwgcmVtb3ZlZCwgZXZlbnQsIGNhbmNlbDogZmFsc2UsIG93bmVyOiB0aGlzLnRyZWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50cmVlLm5vZGVTZWxlY3Rpb24uZW1pdChhcmdzKTtcbiAgICAgICAgaWYgKGFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3ROb2Rlc1dpdGhOb0V2ZW50KGFyZ3MubmV3U2VsZWN0aW9uLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFyZUVxdWFsQ29sbGVjdGlvbnMoZmlyc3Q6IElneFRyZWVOb2RlPGFueT5bXSwgc2Vjb25kOiBJZ3hUcmVlTm9kZTxhbnk+W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpcnN0Lmxlbmd0aCA9PT0gc2Vjb25kLmxlbmd0aCAmJiBuZXcgU2V0KGZpcnN0LmNvbmNhdChzZWNvbmQpKS5zaXplID09PSBmaXJzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXNjYWRlU2VsZWN0Tm9kZXNXaXRoTm9FdmVudChub2Rlcz86IElneFRyZWVOb2RlPGFueT5bXSwgY2xlYXJQcmV2U2VsZWN0aW9uID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkU2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE5vZGVzKCk7XG5cbiAgICAgICAgaWYgKGNsZWFyUHJldlNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlTm9kZXMuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMubm9kZVNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVOb2Rlc05ld1NlbGVjdGlvblN0YXRlKHsgYWRkZWQ6IG5vZGVzLCByZW1vdmVkOiBbXSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IFsuLi5vbGRTZWxlY3Rpb24sIC4uLm5vZGVzXTtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3M6IFBhcnRpYWw8SVRyZWVOb2RlU2VsZWN0aW9uRXZlbnQ+ID0geyBvbGRTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbiB9O1xuXG4gICAgICAgICAgICAvLyByZXRyaWV2ZSBvbmx5IHRoZSByb3dzIHdpdGhvdXQgdGhlaXIgcGFyZW50cy9jaGlsZHJlbiB3aGljaCBoYXMgdG8gYmUgYWRkZWQgdG8gdGhlIHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZUFkZFJlbW92ZUFyZ3MoYXJncyk7XG5cbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTm9kZXNOZXdTZWxlY3Rpb25TdGF0ZShhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vZGVTZWxlY3Rpb24gPSBuZXcgU2V0KHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVOb2RlcyA9IG5ldyBTZXQodGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlKTtcblxuICAgICAgICB0aGlzLmVtaXRTZWxlY3RlZENoYW5nZUV2ZW50KG9sZFNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXNjYWRlRGVzZWxlY3ROb2Rlc1dpdGhOb0V2ZW50KG5vZGVzOiBJZ3hUcmVlTm9kZTxhbnk+W10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXJncyA9IHsgYWRkZWQ6IFtdLCByZW1vdmVkOiBub2RlcyB9O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZU5vZGVzTmV3U2VsZWN0aW9uU3RhdGUoYXJncyk7XG5cbiAgICAgICAgdGhpcy5ub2RlU2VsZWN0aW9uID0gbmV3IFNldDxJZ3hUcmVlTm9kZTxhbnk+Pih0aGlzLm5vZGVzVG9CZVNlbGVjdGVkKTtcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlTm9kZXMgPSBuZXcgU2V0PElneFRyZWVOb2RlPGFueT4+KHRoaXMubm9kZXNUb0JlSW5kZXRlcm1pbmF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcG9wdWxhdGVzIHRoZSBub2Rlc1RvQmVTZWxlY3RlZCBhbmQgbm9kZXNUb0JlSW5kZXRlcm1pbmF0ZSBzZXRzXG4gICAgICogd2l0aCB0aGUgbm9kZXMgd2hpY2ggd2lsbCBiZSBldmVudHVhbGx5IGluIHNlbGVjdGVkL2luZGV0ZXJtaW5hdGUgc3RhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbGN1bGF0ZU5vZGVzTmV3U2VsZWN0aW9uU3RhdGUoYXJnczogUGFydGlhbDxJVHJlZU5vZGVTZWxlY3Rpb25FdmVudD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2Rlc1RvQmVTZWxlY3RlZCA9IG5ldyBTZXQ8SWd4VHJlZU5vZGU8YW55Pj4oYXJncy5vbGRTZWxlY3Rpb24gPyBhcmdzLm9sZFNlbGVjdGlvbiA6IHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpKTtcbiAgICAgICAgdGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlID0gbmV3IFNldDxJZ3hUcmVlTm9kZTxhbnk+Pih0aGlzLmdldEluZGV0ZXJtaW5hdGVOb2RlcygpKTtcblxuICAgICAgICB0aGlzLmNhc2NhZGVTZWxlY3Rpb25TdGF0ZShhcmdzLnJlbW92ZWQsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5jYXNjYWRlU2VsZWN0aW9uU3RhdGUoYXJncy5hZGRlZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEVuc3VyZXMgcHJvcGVyIHNlbGVjdGlvbiBzdGF0ZSBmb3IgYWxsIHByZWRlc2Nlc3NvcnMgYW5kIGRlc2NlbmRhbnRzIGR1cmluZyBhIHNlbGVjdGlvbiBldmVudCAqL1xuICAgIHByaXZhdGUgY2FzY2FkZVNlbGVjdGlvblN0YXRlKG5vZGVzOiBJZ3hUcmVlTm9kZTxhbnk+W10sIHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghbm9kZXMgfHwgbm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZXMgJiYgbm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUNvbGxlY3Rpb246IENhc2NhZGVTZWxlY3Rpb25Ob2RlQ29sbGVjdGlvbiA9IHRoaXMuZ2V0Q2FzY2FkaW5nTm9kZUNvbGxlY3Rpb24obm9kZXMpO1xuXG4gICAgICAgICAgICBub2RlQ29sbGVjdGlvbi5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVzVG9CZVNlbGVjdGVkLmFkZChub2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVzVG9CZVNlbGVjdGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBBcnJheS5mcm9tKG5vZGVDb2xsZWN0aW9uLnBhcmVudHMpLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUGFyZW50U2VsZWN0aW9uU3RhdGUocGFyZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2FzY2FkZU5vZGVTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudD8pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VyclNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgICAgICBpZiAodGhpcy5hcmVFcXVhbENvbGxlY3Rpb25zKGN1cnJTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3M6IElUcmVlTm9kZVNlbGVjdGlvbkV2ZW50ID0ge1xuICAgICAgICAgICAgb2xkU2VsZWN0aW9uOiBjdXJyU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24sXG4gICAgICAgICAgICBhZGRlZCwgcmVtb3ZlZCwgZXZlbnQsIGNhbmNlbDogZmFsc2UsIG93bmVyOiB0aGlzLnRyZWVcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU5vZGVzTmV3U2VsZWN0aW9uU3RhdGUoYXJncyk7XG5cbiAgICAgICAgYXJncy5uZXdTZWxlY3Rpb24gPSBBcnJheS5mcm9tKHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQpO1xuXG4gICAgICAgIC8vIHJldHJpZXZlIG5vZGVzL3BhcmVudHMvY2hpbGRyZW4gd2hpY2ggaGFzIGJlZW4gYWRkZWQvcmVtb3ZlZCBmcm9tIHRoZSBzZWxlY3Rpb25cbiAgICAgICAgdGhpcy5wb3B1bGF0ZUFkZFJlbW92ZUFyZ3MoYXJncyk7XG5cbiAgICAgICAgdGhpcy50cmVlLm5vZGVTZWxlY3Rpb24uZW1pdChhcmdzKTtcblxuICAgICAgICBpZiAoYXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIGFyZ3MubmV3U2VsZWN0aW9uIGhhc24ndCBiZWVuIG1vZGlmaWVkXG4gICAgICAgIGlmICh0aGlzLmFyZUVxdWFsQ29sbGVjdGlvbnMoQXJyYXkuZnJvbSh0aGlzLm5vZGVzVG9CZVNlbGVjdGVkKSwgYXJncy5uZXdTZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVTZWxlY3Rpb24gPSBuZXcgU2V0PElneFRyZWVOb2RlPGFueT4+KHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQpO1xuICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlTm9kZXMgPSBuZXcgU2V0KHRoaXMubm9kZXNUb0JlSW5kZXRlcm1pbmF0ZSk7XG4gICAgICAgICAgICB0aGlzLmVtaXRTZWxlY3RlZENoYW5nZUV2ZW50KGN1cnJTZWxlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2VsZWN0IHRoZSBub2RlcyB3aXRoaW4gdGhlIG1vZGlmaWVkIGFyZ3MubmV3U2VsZWN0aW9uIHdpdGggbm8gZXZlbnRcbiAgICAgICAgICAgIHRoaXMuY2FzY2FkZVNlbGVjdE5vZGVzV2l0aE5vRXZlbnQoYXJncy5uZXdTZWxlY3Rpb24sIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVjdXJzaXZlbHkgaGFuZGxlIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgcGFyZW50c1xuICAgICAqL1xuICAgIHByaXZhdGUgaGFuZGxlUGFyZW50U2VsZWN0aW9uU3RhdGUobm9kZTogSWd4VHJlZU5vZGU8YW55Pikge1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZU5vZGVTZWxlY3Rpb25TdGF0ZShub2RlKTtcbiAgICAgICAgaWYgKG5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVQYXJlbnRTZWxlY3Rpb25TdGF0ZShub2RlLnBhcmVudE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYSBnaXZlbiBub2RlIGJhc2VkIHRoZSBzZWxlY3Rpb24gc3RhdGVzIG9mIGl0cyBkaXJlY3QgY2hpbGRyZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIGhhbmRsZU5vZGVTZWxlY3Rpb25TdGF0ZShub2RlOiBJZ3hUcmVlTm9kZTxhbnk+KSB7XG4gICAgICAgIGNvbnN0IG5vZGVzQXJyYXkgPSAobm9kZSAmJiBub2RlLl9jaGlsZHJlbikgPyBub2RlLl9jaGlsZHJlbi50b0FycmF5KCkgOiBbXTtcbiAgICAgICAgaWYgKG5vZGVzQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobm9kZXNBcnJheS5ldmVyeShuID0+IHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQuaGFzKG4pKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQuYWRkKG5vZGUpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXNUb0JlSW5kZXRlcm1pbmF0ZS5kZWxldGUobm9kZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGVzQXJyYXkuc29tZShuID0+IHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQuaGFzKG4pIHx8IHRoaXMubm9kZXNUb0JlSW5kZXRlcm1pbmF0ZS5oYXMobikpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlLmFkZChub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzVG9CZVNlbGVjdGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzVG9CZVNlbGVjdGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZSBoYXMgYmVlbiBkZWxldGVkIGFuZCB0aGUgbm9kZSB3YXMgc2VsZWN0ZWQgZG8gbm90IGNoYW5nZSBpdHMgc3RhdGVcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTm9kZVNlbGVjdGVkKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlc1RvQmVTZWxlY3RlZC5hZGQobm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXNUb0JlU2VsZWN0ZWQuZGVsZXRlKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ub2Rlc1RvQmVJbmRldGVybWluYXRlLmRlbGV0ZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGNvbGxlY3Rpb24gb2YgYWxsIG5vZGVzIGFmZmVjdGVkIGJ5IHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2Rlc1RvQmVQcm9jZXNzZWQgc2V0IG9mIHRoZSBub2RlcyB0byBiZSBzZWxlY3RlZC9kZXNlbGVjdGVkXG4gICAgICogQHJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGFsbCBhZmZlY3RlZCBub2RlcyBhbmQgYWxsIHRoZWlyIHBhcmVudHNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENhc2NhZGluZ05vZGVDb2xsZWN0aW9uKG5vZGVzOiBJZ3hUcmVlTm9kZTxhbnk+W10pOiBDYXNjYWRlU2VsZWN0aW9uTm9kZUNvbGxlY3Rpb24ge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBDYXNjYWRlU2VsZWN0aW9uTm9kZUNvbGxlY3Rpb24gPSB7XG4gICAgICAgICAgICBwYXJlbnRzOiBuZXcgU2V0PElneFRyZWVOb2RlPGFueT4+KCksXG4gICAgICAgICAgICBub2RlczogbmV3IFNldDxJZ3hUcmVlTm9kZTxhbnk+Pihub2RlcylcbiAgICAgICAgfTtcblxuICAgICAgICBBcnJheS5mcm9tKGNvbGxlY3Rpb24ubm9kZXMpLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVBbmRBbGxDaGlsZHJlbiA9IG5vZGUuYWxsQ2hpbGRyZW4/LnRvQXJyYXkoKSB8fCBbXTtcbiAgICAgICAgICAgIG5vZGVBbmRBbGxDaGlsZHJlbi5mb3JFYWNoKG4gPT4ge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ubm9kZXMuYWRkKG4pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChub2RlICYmIG5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ucGFyZW50cy5hZGQobm9kZS5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHJpZXZlIHRoZSBub2RlcyB3aGljaCBzaG91bGQgYmUgYWRkZWQvcmVtb3ZlZCB0by9mcm9tIHRoZSBvbGQgc2VsZWN0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZUFkZFJlbW92ZUFyZ3MoYXJnczogUGFydGlhbDxJVHJlZU5vZGVTZWxlY3Rpb25FdmVudD4pOiB2b2lkIHtcbiAgICAgICAgYXJncy5yZW1vdmVkID0gYXJncy5vbGRTZWxlY3Rpb24uZmlsdGVyKHggPT4gYXJncy5uZXdTZWxlY3Rpb24uaW5kZXhPZih4KSA8IDApO1xuICAgICAgICBhcmdzLmFkZGVkID0gYXJncy5uZXdTZWxlY3Rpb24uZmlsdGVyKHggPT4gYXJncy5vbGRTZWxlY3Rpb24uaW5kZXhPZih4KSA8IDApO1xuICAgIH1cblxuICAgIC8qKiBFbWl0cyB0aGUgYHNlbGVjdGVkQ2hhbmdlYCBldmVudCBmb3IgZWFjaCBub2RlIGFmZmVjdGVkIGJ5IHRoZSBzZWxlY3Rpb24gKi9cbiAgICBwcml2YXRlIGVtaXRTZWxlY3RlZENoYW5nZUV2ZW50KG9sZFNlbGVjdGlvbjogSWd4VHJlZU5vZGU8YW55PltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWROb2RlcygpLmZvckVhY2gobiA9PiB7XG4gICAgICAgICAgICBpZiAob2xkU2VsZWN0aW9uLmluZGV4T2YobikgPCAwKSB7XG4gICAgICAgICAgICAgICAgbi5zZWxlY3RlZENoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBvbGRTZWxlY3Rpb24uZm9yRWFjaChuID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5ub2RlU2VsZWN0aW9uLmhhcyhuKSkge1xuICAgICAgICAgICAgICAgIG4uc2VsZWN0ZWRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -17,10 +17,10 @@ import * as i3 from "./tree.service";
17
17
  * Used for templating the select marker of the tree
18
18
  */
19
19
  export class IgxTreeSelectMarkerDirective {
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeSelectMarkerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: IgxTreeSelectMarkerDirective, isStandalone: true, selector: "[igxTreeSelectMarker]", ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeSelectMarkerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: IgxTreeSelectMarkerDirective, isStandalone: true, selector: "[igxTreeSelectMarker]", ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeSelectMarkerDirective, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeSelectMarkerDirective, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: '[igxTreeSelectMarker]',
@@ -32,10 +32,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
32
32
  * Used for templating the expand indicator of the tree
33
33
  */
34
34
  export class IgxTreeExpandIndicatorDirective {
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeExpandIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: IgxTreeExpandIndicatorDirective, isStandalone: true, selector: "[igxTreeExpandIndicator]", ngImport: i0 }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeExpandIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: IgxTreeExpandIndicatorDirective, isStandalone: true, selector: "[igxTreeExpandIndicator]", ngImport: i0 }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeExpandIndicatorDirective, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeExpandIndicatorDirective, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  selector: '[igxTreeExpandIndicator]',
@@ -435,15 +435,15 @@ export class IgxTreeComponent extends DisplayDensityBase {
435
435
  this.nativeElement.scrollTop + bottomOffset + topOffset + (topOffset ? -1 : +1) * nodeRect.height;
436
436
  }
437
437
  }
438
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeComponent, deps: [{ token: i1.IgxTreeNavigationService }, { token: i2.IgxTreeSelectionService }, { token: i3.IgxTreeService }, { token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
439
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.3", type: IgxTreeComponent, isStandalone: true, selector: "igx-tree", inputs: { selection: "selection", singleBranchExpand: ["singleBranchExpand", "singleBranchExpand", booleanAttribute], animationSettings: "animationSettings" }, outputs: { nodeSelection: "nodeSelection", nodeExpanding: "nodeExpanding", nodeExpanded: "nodeExpanded", nodeCollapsing: "nodeCollapsing", nodeCollapsed: "nodeCollapsed", activeNodeChanged: "activeNodeChanged" }, host: { properties: { "class.igx-tree": "this.cssClass" } }, providers: [
438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeComponent, deps: [{ token: i1.IgxTreeNavigationService }, { token: i2.IgxTreeSelectionService }, { token: i3.IgxTreeService }, { token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
439
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.5", type: IgxTreeComponent, isStandalone: true, selector: "igx-tree", inputs: { selection: "selection", singleBranchExpand: ["singleBranchExpand", "singleBranchExpand", booleanAttribute], animationSettings: "animationSettings" }, outputs: { nodeSelection: "nodeSelection", nodeExpanding: "nodeExpanding", nodeExpanded: "nodeExpanded", nodeCollapsing: "nodeCollapsing", nodeCollapsed: "nodeCollapsed", activeNodeChanged: "activeNodeChanged" }, host: { properties: { "class.igx-tree": "this.cssClass" } }, providers: [
440
440
  IgxTreeService,
441
441
  IgxTreeSelectionService,
442
442
  IgxTreeNavigationService,
443
443
  { provide: IGX_TREE_COMPONENT, useExisting: IgxTreeComponent },
444
444
  ], queries: [{ propertyName: "expandIndicator", first: true, predicate: IgxTreeExpandIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "nodes", predicate: IgxTreeNodeComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-tree__root\" role=\"tree\" (keydown)=\"handleKeydown($event)\">\n <ng-content select=\"igx-tree-node\"></ng-content>\n</div>\n" }); }
445
445
  }
446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeComponent, decorators: [{
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeComponent, decorators: [{
447
447
  type: Component,
448
448
  args: [{ selector: 'igx-tree', providers: [
449
449
  IgxTreeService,
@@ -8,11 +8,11 @@ import * as i2 from "./tree-node/tree-node.component";
8
8
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
9
9
  */
10
10
  export class IgxTreeModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeModule, imports: [i1.IgxTreeComponent, i2.IgxTreeNodeComponent, i2.IgxTreeNodeLinkDirective, i1.IgxTreeExpandIndicatorDirective], exports: [i1.IgxTreeComponent, i2.IgxTreeNodeComponent, i2.IgxTreeNodeLinkDirective, i1.IgxTreeExpandIndicatorDirective] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeModule }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeModule, imports: [i1.IgxTreeComponent, i2.IgxTreeNodeComponent, i2.IgxTreeNodeLinkDirective, i1.IgxTreeExpandIndicatorDirective], exports: [i1.IgxTreeComponent, i2.IgxTreeNodeComponent, i2.IgxTreeNodeLinkDirective, i1.IgxTreeExpandIndicatorDirective] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeModule }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  imports: [
@@ -61,10 +61,10 @@ export class IgxTreeService {
61
61
  register(tree) {
62
62
  this.tree = tree;
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeService }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeService }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxTreeService, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxTreeService, decorators: [{
68
68
  type: Injectable
69
69
  }] });
70
70
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3RyZWUvdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLHdCQUF3QjtBQUV4QixNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVXLGtCQUFhLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ25FLG9CQUFlLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBNERwRSxvQkFBZSxHQUV2QixDQUFDLElBQXNCLEVBQUUsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDbEc7SUE1REc7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLElBQXNCLEVBQUUsU0FBbUI7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDSCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pELElBQUksU0FBUyxFQUFFO29CQUNYLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDaEI7cUJBQU07b0JBQ0gsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7aUJBQ3RCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLElBQXNCO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxJQUFzQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFzQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDOzhHQTVEUSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hUcmVlLCBJZ3hUcmVlTm9kZSB9IGZyb20gJy4vY29tbW9uJztcblxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4VHJlZVNlcnZpY2Uge1xuICAgIHB1YmxpYyBleHBhbmRlZE5vZGVzOiBTZXQ8SWd4VHJlZU5vZGU8YW55Pj4gPSBuZXcgU2V0PElneFRyZWVOb2RlPGFueT4+KCk7XG4gICAgcHVibGljIGNvbGxhcHNpbmdOb2RlczogU2V0PElneFRyZWVOb2RlPGFueT4+ID0gbmV3IFNldDxJZ3hUcmVlTm9kZTxhbnk+PigpO1xuICAgIHByaXZhdGUgdHJlZTogSWd4VHJlZTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgdGhlIG5vZGUgdG8gdGhlIGBleHBhbmRlZE5vZGVzYCBzZXQgYW5kIGZpcmVzIHRoZSBub2RlcyBjaGFuZ2UgZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHRhcmdldCBub2RlXG4gICAgICogQHBhcmFtIHVpVHJpZ2dlciBpcyB0aGUgZXZlbnQgdHJpZ2dlcmVkIGJ5IGEgdWkgaW50ZXJyYWN0aW9uIChzbyB3ZSBrbm93IGlmIHdlIHNob3VsZCBhbmltYXRlKVxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kKG5vZGU6IElneFRyZWVOb2RlPGFueT4sIHVpVHJpZ2dlcj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzaW5nTm9kZXMuZGVsZXRlKG5vZGUpO1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgIG5vZGUuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4cGFuZGVkTm9kZXMuYWRkKG5vZGUpO1xuICAgICAgICBpZiAodGhpcy50cmVlLnNpbmdsZUJyYW5jaEV4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy50cmVlLmZpbmROb2Rlcyhub2RlLCB0aGlzLnNpYmxpbmdDb21wYXJlcik/LmZvckVhY2goZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHVpVHJpZ2dlcikge1xuICAgICAgICAgICAgICAgICAgICBlLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5vZGUgdG8gdGhlIGBjb2xsYXBzaW5nYCBjb2xsZWN0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSB0YXJnZXQgbm9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBjb2xsYXBzaW5nKG5vZGU6IElneFRyZWVOb2RlPGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzaW5nTm9kZXMuYWRkKG5vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIG5vZGUgZnJvbSB0aGUgJ2V4cGFuZGVkTm9kZXMnIHNldCBhbmQgZW1pdHMgdGhlIG5vZGUncyBjaGFuZ2UgZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHRhcmdldCBub2RlXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2xsYXBzZShub2RlOiBJZ3hUcmVlTm9kZTxhbnk+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkTm9kZXMuaGFzKG5vZGUpKSB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sbGFwc2luZ05vZGVzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZE5vZGVzLmRlbGV0ZShub2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFeHBhbmRlZChub2RlOiBJZ3hUcmVlTm9kZTxhbnk+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkTm9kZXMuaGFzKG5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlcih0cmVlOiBJZ3hUcmVlKSB7XG4gICAgICAgIHRoaXMudHJlZSA9IHRyZWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaWJsaW5nQ29tcGFyZXI6XG4gICAgKGRhdGE6IElneFRyZWVOb2RlPGFueT4sIG5vZGU6IElneFRyZWVOb2RlPGFueT4pID0+IGJvb2xlYW4gPVxuICAgIChkYXRhOiBJZ3hUcmVlTm9kZTxhbnk+LCBub2RlOiBJZ3hUcmVlTm9kZTxhbnk+KSA9PiBub2RlICE9PSBkYXRhICYmIG5vZGUubGV2ZWwgPT09IGRhdGEubGV2ZWw7XG59XG4iXX0=