igniteui-angular 13.0.0 → 13.0.1

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 (289) hide show
  1. package/esm2020/lib/accordion/accordion.component.mjs +3 -3
  2. package/esm2020/lib/accordion/accordion.module.mjs +4 -4
  3. package/esm2020/lib/action-strip/action-strip.component.mjs +6 -6
  4. package/esm2020/lib/action-strip/action-strip.module.mjs +4 -4
  5. package/esm2020/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
  6. package/esm2020/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +3 -3
  7. package/esm2020/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +3 -3
  8. package/esm2020/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
  9. package/esm2020/lib/avatar/avatar.component.mjs +7 -7
  10. package/esm2020/lib/badge/badge.component.mjs +7 -7
  11. package/esm2020/lib/banner/banner.component.mjs +7 -7
  12. package/esm2020/lib/banner/banner.directives.mjs +3 -3
  13. package/esm2020/lib/buttonGroup/buttonGroup.component.mjs +7 -7
  14. package/esm2020/lib/calendar/calendar-base.mjs +3 -3
  15. package/esm2020/lib/calendar/calendar.component.mjs +5 -5
  16. package/esm2020/lib/calendar/calendar.directives.mjs +15 -15
  17. package/esm2020/lib/calendar/calendar.module.mjs +4 -4
  18. package/esm2020/lib/calendar/days-view/day-item.component.mjs +3 -3
  19. package/esm2020/lib/calendar/days-view/days-view.component.mjs +3 -3
  20. package/esm2020/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
  21. package/esm2020/lib/calendar/month-picker/month-picker.component.mjs +3 -3
  22. package/esm2020/lib/calendar/month-picker-base.mjs +3 -3
  23. package/esm2020/lib/calendar/months-view/months-view.component.mjs +3 -3
  24. package/esm2020/lib/calendar/months-view.pipe.mjs +6 -6
  25. package/esm2020/lib/calendar/years-view/years-view.component.mjs +6 -6
  26. package/esm2020/lib/card/card.component.mjs +31 -31
  27. package/esm2020/lib/carousel/carousel.component.mjs +10 -10
  28. package/esm2020/lib/carousel/carousel.directives.mjs +9 -9
  29. package/esm2020/lib/carousel/slide.component.mjs +3 -3
  30. package/esm2020/lib/checkbox/checkbox.component.mjs +10 -10
  31. package/esm2020/lib/chips/chip.component.mjs +3 -3
  32. package/esm2020/lib/chips/chips-area.component.mjs +3 -3
  33. package/esm2020/lib/chips/chips.module.mjs +4 -4
  34. package/esm2020/lib/combo/combo-add-item.component.mjs +3 -3
  35. package/esm2020/lib/combo/combo-dropdown.component.mjs +3 -3
  36. package/esm2020/lib/combo/combo-item.component.mjs +3 -3
  37. package/esm2020/lib/combo/combo.api.mjs +3 -3
  38. package/esm2020/lib/combo/combo.common.mjs +3 -3
  39. package/esm2020/lib/combo/combo.component.mjs +7 -7
  40. package/esm2020/lib/combo/combo.directives.mjs +24 -24
  41. package/esm2020/lib/combo/combo.pipes.mjs +6 -6
  42. package/esm2020/lib/core/displayDensity.mjs +7 -7
  43. package/esm2020/lib/core/navigation/directives.mjs +10 -10
  44. package/esm2020/lib/core/navigation/nav.service.mjs +3 -3
  45. package/esm2020/lib/core/selection.mjs +3 -3
  46. package/esm2020/lib/core/touch.mjs +3 -3
  47. package/esm2020/lib/core/utils.mjs +3 -3
  48. package/esm2020/lib/date-common/calendar-container/calendar-container.component.mjs +7 -7
  49. package/esm2020/lib/date-common/picker-base.directive.mjs +3 -3
  50. package/esm2020/lib/date-common/picker-icons.common.mjs +13 -13
  51. package/esm2020/lib/date-picker/date-picker.component.mjs +3 -3
  52. package/esm2020/lib/date-picker/date-picker.module.mjs +4 -4
  53. package/esm2020/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
  54. package/esm2020/lib/date-range-picker/date-range-picker.component.mjs +3 -3
  55. package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +4 -4
  56. package/esm2020/lib/dialog/dialog.component.mjs +7 -7
  57. package/esm2020/lib/dialog/dialog.directives.mjs +6 -6
  58. package/esm2020/lib/directives/autocomplete/autocomplete.directive.mjs +7 -7
  59. package/esm2020/lib/directives/button/button.directive.mjs +7 -7
  60. package/esm2020/lib/directives/date-time-editor/date-time-editor.directive.mjs +7 -7
  61. package/esm2020/lib/directives/divider/divider.directive.mjs +7 -7
  62. package/esm2020/lib/directives/drag-drop/drag-drop.directive.mjs +16 -16
  63. package/esm2020/lib/directives/filter/filter.directive.mjs +10 -10
  64. package/esm2020/lib/directives/focus/focus.directive.mjs +7 -7
  65. package/esm2020/lib/directives/focus-trap/focus-trap.directive.mjs +7 -7
  66. package/esm2020/lib/directives/for-of/base.helper.component.mjs +3 -3
  67. package/esm2020/lib/directives/for-of/display.container.mjs +3 -3
  68. package/esm2020/lib/directives/for-of/for_of.directive.mjs +10 -10
  69. package/esm2020/lib/directives/for-of/for_of.sync.service.mjs +6 -6
  70. package/esm2020/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
  71. package/esm2020/lib/directives/for-of/virtual.helper.component.mjs +3 -3
  72. package/esm2020/lib/directives/hint/hint.directive.mjs +3 -3
  73. package/esm2020/lib/directives/input/input.directive.mjs +3 -3
  74. package/esm2020/lib/directives/label/label.directive.mjs +3 -3
  75. package/esm2020/lib/directives/layout/layout.directive.mjs +10 -10
  76. package/esm2020/lib/directives/mask/mask-parsing.service.mjs +3 -3
  77. package/esm2020/lib/directives/mask/mask.directive.mjs +7 -7
  78. package/esm2020/lib/directives/notification/notifications.directive.mjs +3 -3
  79. package/esm2020/lib/directives/prefix/prefix.directive.mjs +7 -7
  80. package/esm2020/lib/directives/radio/radio-group.directive.mjs +7 -7
  81. package/esm2020/lib/directives/ripple/ripple.directive.mjs +7 -7
  82. package/esm2020/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +7 -7
  83. package/esm2020/lib/directives/suffix/suffix.directive.mjs +7 -7
  84. package/esm2020/lib/directives/template-outlet/template_outlet.directive.mjs +7 -7
  85. package/esm2020/lib/directives/text-highlight/text-highlight.directive.mjs +7 -7
  86. package/esm2020/lib/directives/text-selection/text-selection.directive.mjs +7 -7
  87. package/esm2020/lib/directives/toggle/toggle.directive.mjs +13 -13
  88. package/esm2020/lib/directives/tooltip/tooltip.directive.mjs +10 -10
  89. package/esm2020/lib/drop-down/drop-down-group.component.mjs +3 -3
  90. package/esm2020/lib/drop-down/drop-down-item.base.mjs +3 -3
  91. package/esm2020/lib/drop-down/drop-down-item.component.mjs +3 -3
  92. package/esm2020/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
  93. package/esm2020/lib/drop-down/drop-down.base.mjs +3 -3
  94. package/esm2020/lib/drop-down/drop-down.component.mjs +4 -4
  95. package/esm2020/lib/drop-down/public_api.mjs +4 -4
  96. package/esm2020/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
  97. package/esm2020/lib/expansion-panel/expansion-panel-header.component.mjs +3 -3
  98. package/esm2020/lib/expansion-panel/expansion-panel.component.mjs +3 -3
  99. package/esm2020/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
  100. package/esm2020/lib/expansion-panel/expansion-panel.module.mjs +4 -4
  101. package/esm2020/lib/expansion-panel/toggle-animation-component.mjs +3 -3
  102. package/esm2020/lib/grids/api.service.mjs +3 -3
  103. package/esm2020/lib/grids/cell.component.mjs +3 -3
  104. package/esm2020/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
  105. package/esm2020/lib/grids/column-actions/column-actions.component.mjs +12 -12
  106. package/esm2020/lib/grids/column-actions/column-actions.module.mjs +4 -4
  107. package/esm2020/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
  108. package/esm2020/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
  109. package/esm2020/lib/grids/columns/column-group.component.mjs +3 -3
  110. package/esm2020/lib/grids/columns/column-layout.component.mjs +3 -3
  111. package/esm2020/lib/grids/columns/column.component.mjs +3 -3
  112. package/esm2020/lib/grids/columns/column.module.mjs +4 -4
  113. package/esm2020/lib/grids/columns/templates.directive.mjs +18 -18
  114. package/esm2020/lib/grids/common/crud.service.mjs +3 -3
  115. package/esm2020/lib/grids/common/grid-pipes.module.mjs +4 -4
  116. package/esm2020/lib/grids/common/pipes.mjs +51 -51
  117. package/esm2020/lib/grids/common/shared.module.mjs +4 -4
  118. package/esm2020/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
  119. package/esm2020/lib/grids/filtering/base/filtering.module.mjs +4 -4
  120. package/esm2020/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
  121. package/esm2020/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  122. package/esm2020/lib/grids/filtering/excel-style/base-filtering.component.mjs +4 -4
  123. package/esm2020/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
  124. package/esm2020/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
  125. package/esm2020/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  126. package/esm2020/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  127. package/esm2020/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  128. package/esm2020/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
  129. package/esm2020/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
  130. package/esm2020/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  131. package/esm2020/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
  132. package/esm2020/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
  133. package/esm2020/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
  134. package/esm2020/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  135. package/esm2020/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.mjs +9 -9
  136. package/esm2020/lib/grids/filtering/excel-style/grid.excel-style-filtering.module.mjs +4 -4
  137. package/esm2020/lib/grids/filtering/grid-filtering.service.mjs +3 -3
  138. package/esm2020/lib/grids/grid/expandable-cell.component.mjs +3 -3
  139. package/esm2020/lib/grids/grid/grid-api.service.mjs +3 -3
  140. package/esm2020/lib/grids/grid/grid-row.component.mjs +3 -3
  141. package/esm2020/lib/grids/grid/grid.component.mjs +3 -3
  142. package/esm2020/lib/grids/grid/grid.details.pipe.mjs +3 -3
  143. package/esm2020/lib/grids/grid/grid.directives.mjs +33 -33
  144. package/esm2020/lib/grids/grid/grid.module.mjs +4 -4
  145. package/esm2020/lib/grids/grid/grid.pipes.mjs +12 -12
  146. package/esm2020/lib/grids/grid/grid.summary.pipe.mjs +3 -3
  147. package/esm2020/lib/grids/grid/groupby-row.component.mjs +3 -3
  148. package/esm2020/lib/grids/grid-base.directive.mjs +4 -4
  149. package/esm2020/lib/grids/grid-common.module.mjs +4 -4
  150. package/esm2020/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
  151. package/esm2020/lib/grids/grid-mrl-navigation.service.mjs +3 -3
  152. package/esm2020/lib/grids/grid-navigation.service.mjs +3 -3
  153. package/esm2020/lib/grids/grid.common.mjs +3 -3
  154. package/esm2020/lib/grids/grid.rowEdit.directive.mjs +15 -15
  155. package/esm2020/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
  156. package/esm2020/lib/grids/grouping/group-by-area.directive.mjs +6 -6
  157. package/esm2020/lib/grids/grouping/tree-grid-group-by-area.component.mjs +3 -3
  158. package/esm2020/lib/grids/headers/grid-header-group.component.mjs +4 -4
  159. package/esm2020/lib/grids/headers/grid-header-row.component.mjs +3 -3
  160. package/esm2020/lib/grids/headers/grid-header.component.mjs +3 -3
  161. package/esm2020/lib/grids/headers/headers.module.mjs +4 -4
  162. package/esm2020/lib/grids/headers/pipes.mjs +9 -9
  163. package/esm2020/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
  164. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
  165. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +3 -3
  166. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
  167. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +6 -6
  168. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
  169. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
  170. package/esm2020/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +4 -4
  171. package/esm2020/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
  172. package/esm2020/lib/grids/hierarchical-grid/row-island.component.mjs +3 -3
  173. package/esm2020/lib/grids/moving/moving.drag.directive.mjs +3 -3
  174. package/esm2020/lib/grids/moving/moving.drop.directive.mjs +3 -3
  175. package/esm2020/lib/grids/moving/moving.module.mjs +4 -4
  176. package/esm2020/lib/grids/moving/moving.service.mjs +3 -3
  177. package/esm2020/lib/grids/resizing/resize-handle.directive.mjs +3 -3
  178. package/esm2020/lib/grids/resizing/resize.module.mjs +4 -4
  179. package/esm2020/lib/grids/resizing/resizer.component.mjs +3 -3
  180. package/esm2020/lib/grids/resizing/resizer.directive.mjs +3 -3
  181. package/esm2020/lib/grids/resizing/resizing.service.mjs +3 -3
  182. package/esm2020/lib/grids/row-drag.directive.mjs +13 -13
  183. package/esm2020/lib/grids/row.directive.mjs +4 -4
  184. package/esm2020/lib/grids/selection/drag-select.directive.mjs +3 -3
  185. package/esm2020/lib/grids/selection/row-selectors.mjs +9 -9
  186. package/esm2020/lib/grids/selection/selection.module.mjs +4 -4
  187. package/esm2020/lib/grids/selection/selection.service.mjs +3 -3
  188. package/esm2020/lib/grids/state.directive.mjs +7 -7
  189. package/esm2020/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
  190. package/esm2020/lib/grids/summaries/grid-summary.service.mjs +3 -3
  191. package/esm2020/lib/grids/summaries/summary-cell.component.mjs +3 -3
  192. package/esm2020/lib/grids/summaries/summary-row.component.mjs +3 -3
  193. package/esm2020/lib/grids/summaries/summary.module.mjs +4 -4
  194. package/esm2020/lib/grids/toolbar/common.mjs +15 -15
  195. package/esm2020/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
  196. package/esm2020/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +3 -3
  197. package/esm2020/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
  198. package/esm2020/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
  199. package/esm2020/lib/grids/toolbar/grid-toolbar.base.mjs +6 -6
  200. package/esm2020/lib/grids/toolbar/grid-toolbar.component.mjs +3 -3
  201. package/esm2020/lib/grids/toolbar/token.mjs +1 -1
  202. package/esm2020/lib/grids/toolbar/toolbar.module.mjs +4 -4
  203. package/esm2020/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
  204. package/esm2020/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
  205. package/esm2020/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
  206. package/esm2020/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
  207. package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
  208. package/esm2020/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
  209. package/esm2020/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
  210. package/esm2020/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
  211. package/esm2020/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
  212. package/esm2020/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
  213. package/esm2020/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
  214. package/esm2020/lib/icon/icon.component.mjs +3 -3
  215. package/esm2020/lib/icon/icon.service.mjs +13 -7
  216. package/esm2020/lib/icon/public_api.mjs +4 -4
  217. package/esm2020/lib/input-group/input-group.component.mjs +7 -7
  218. package/esm2020/lib/list/list-item.component.mjs +3 -3
  219. package/esm2020/lib/list/list.common.mjs +15 -15
  220. package/esm2020/lib/list/list.component.mjs +23 -23
  221. package/esm2020/lib/navbar/navbar.component.mjs +13 -13
  222. package/esm2020/lib/navigation-drawer/navigation-drawer.component.mjs +3 -3
  223. package/esm2020/lib/navigation-drawer/navigation-drawer.directives.mjs +9 -9
  224. package/esm2020/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
  225. package/esm2020/lib/paginator/paginator-interfaces.mjs +3 -3
  226. package/esm2020/lib/paginator/paginator.component.mjs +12 -12
  227. package/esm2020/lib/paginator/public_api.mjs +4 -4
  228. package/esm2020/lib/progressbar/progressbar.common.mjs +6 -6
  229. package/esm2020/lib/progressbar/progressbar.component.mjs +13 -13
  230. package/esm2020/lib/radio/radio.component.mjs +3 -3
  231. package/esm2020/lib/select/select-group.component.mjs +3 -3
  232. package/esm2020/lib/select/select-item.component.mjs +3 -3
  233. package/esm2020/lib/select/select-navigation.directive.mjs +3 -3
  234. package/esm2020/lib/select/select.component.mjs +14 -14
  235. package/esm2020/lib/select/select.module.mjs +4 -4
  236. package/esm2020/lib/services/csv/csv-exporter.mjs +3 -3
  237. package/esm2020/lib/services/direction/directionality.mjs +3 -3
  238. package/esm2020/lib/services/excel/excel-exporter.mjs +3 -3
  239. package/esm2020/lib/services/overlay/overlay.mjs +3 -3
  240. package/esm2020/lib/services/overlay/scroll/scroll-strategy.mjs +1 -1
  241. package/esm2020/lib/services/transaction/transaction-factory.service.mjs +6 -6
  242. package/esm2020/lib/simple-combo/simple-combo.component.mjs +14 -11
  243. package/esm2020/lib/slider/label/thumb-label.component.mjs +3 -3
  244. package/esm2020/lib/slider/slider.common.mjs +9 -9
  245. package/esm2020/lib/slider/slider.component.mjs +7 -7
  246. package/esm2020/lib/slider/thumb/thumb-slider.component.mjs +3 -3
  247. package/esm2020/lib/slider/ticks/tick.pipe.mjs +3 -3
  248. package/esm2020/lib/slider/ticks/ticks.component.mjs +3 -3
  249. package/esm2020/lib/snackbar/snackbar.component.mjs +7 -7
  250. package/esm2020/lib/splitter/splitter-pane/splitter-pane.component.mjs +3 -3
  251. package/esm2020/lib/splitter/splitter.component.mjs +6 -6
  252. package/esm2020/lib/splitter/splitter.module.mjs +4 -4
  253. package/esm2020/lib/stepper/step/step.component.mjs +5 -5
  254. package/esm2020/lib/stepper/stepper.component.mjs +7 -7
  255. package/esm2020/lib/stepper/stepper.directive.mjs +21 -21
  256. package/esm2020/lib/stepper/stepper.service.mjs +3 -3
  257. package/esm2020/lib/switch/switch.component.mjs +10 -10
  258. package/esm2020/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
  259. package/esm2020/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
  260. package/esm2020/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
  261. package/esm2020/lib/tabs/bottom-nav/bottom-nav.component.mjs +3 -3
  262. package/esm2020/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
  263. package/esm2020/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
  264. package/esm2020/lib/tabs/tab-content.directive.mjs +3 -3
  265. package/esm2020/lib/tabs/tab-header.directive.mjs +3 -3
  266. package/esm2020/lib/tabs/tab-item.directive.mjs +3 -3
  267. package/esm2020/lib/tabs/tabs/tab-content.component.mjs +3 -3
  268. package/esm2020/lib/tabs/tabs/tab-header.component.mjs +3 -3
  269. package/esm2020/lib/tabs/tabs/tab-item.component.mjs +3 -3
  270. package/esm2020/lib/tabs/tabs/tabs.component.mjs +3 -3
  271. package/esm2020/lib/tabs/tabs/tabs.directives.mjs +6 -6
  272. package/esm2020/lib/tabs/tabs/tabs.module.mjs +4 -4
  273. package/esm2020/lib/tabs/tabs.directive.mjs +3 -3
  274. package/esm2020/lib/time-picker/time-picker.component.mjs +10 -10
  275. package/esm2020/lib/time-picker/time-picker.directives.mjs +12 -12
  276. package/esm2020/lib/time-picker/time-picker.pipes.mjs +6 -6
  277. package/esm2020/lib/toast/toast.component.mjs +7 -7
  278. package/esm2020/lib/tree/tree-navigation.service.mjs +3 -3
  279. package/esm2020/lib/tree/tree-node/tree-node.component.mjs +6 -6
  280. package/esm2020/lib/tree/tree-selection.service.mjs +3 -3
  281. package/esm2020/lib/tree/tree.component.mjs +13 -13
  282. package/esm2020/lib/tree/tree.service.mjs +3 -3
  283. package/fesm2015/igniteui-angular.mjs +1543 -1533
  284. package/fesm2015/igniteui-angular.mjs.map +1 -1
  285. package/fesm2020/igniteui-angular.mjs +1541 -1533
  286. package/fesm2020/igniteui-angular.mjs.map +1 -1
  287. package/lib/icon/icon.service.d.ts +4 -2
  288. package/package.json +1 -1
  289. package/schematics/tsconfig.tsbuildinfo +1 -1
@@ -377,9 +377,9 @@ export class IgxHierarchicalGridNavigationService extends IgxGridNavigationServi
377
377
  return { grid: currGrid, prev };
378
378
  }
379
379
  }
380
- IgxHierarchicalGridNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridNavigationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
381
- IgxHierarchicalGridNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridNavigationService });
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridNavigationService, decorators: [{
380
+ IgxHierarchicalGridNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridNavigationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
381
+ IgxHierarchicalGridNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridNavigationService });
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridNavigationService, decorators: [{
383
383
  type: Injectable
384
384
  }] });
385
385
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLWdyaWQtbmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2hpZXJhcmNoaWNhbC1ncmlkL2hpZXJhcmNoaWNhbC1ncmlkLW5hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsd0JBQXdCO0lBRGxGOztRQUljLHVCQUFrQixHQUFHLEtBQUssQ0FBQztLQXNZeEM7SUFuWVUsYUFBYSxDQUFDLEtBQW9CO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9GLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDbEYsT0FBTztTQUNWO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsdUJBQXVC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ZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTVVBQT1JURURfS0VZUywgTkFWSUdBVElPTl9LRVlTIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmlkVHlwZSwgSVBhdGhTZWdtZW50LCBSb3dUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneEhpZXJhcmNoaWNhbEdyaWROYXZpZ2F0aW9uU2VydmljZSBleHRlbmRzIElneEdyaWROYXZpZ2F0aW9uU2VydmljZSB7XG4gICAgcHVibGljIGdyaWQ6IEdyaWRUeXBlO1xuXG4gICAgcHJvdGVjdGVkIF9wZW5kaW5nTmF2aWdhdGlvbiA9IGZhbHNlO1xuXG5cbiAgICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZU5vZGUgfHwgIShTVVBQT1JURURfS0VZUy5oYXMoa2V5KSB8fCAoa2V5ID09PSAndGFiJyAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UuY2VsbCkpICYmXG4gICAgICAgICAgICAhdGhpcy5ncmlkLmNydWRTZXJ2aWNlLnJvd0VkaXRpbmdCbG9ja2VkICYmICF0aGlzLmdyaWQuY3J1ZFNlcnZpY2Uucm93SW5FZGl0TW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0R3JpZCA9IHRoaXMuZ2V0Q2xvc2VzdEVsZW1CeVRhZyhldmVudC50YXJnZXQsICdpZ3gtaGllcmFyY2hpY2FsLWdyaWQnKTtcbiAgICAgICAgaWYgKHRhcmdldEdyaWQgIT09IHRoaXMuZ3JpZC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fcGVuZGluZ05hdmlnYXRpb24gJiYgTkFWSUdBVElPTl9LRVlTLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAvLyBJbiBjYXNlIGZvY3VzIG5lZWRzIHRvIGJlIG1vdmVkIGZyb20gb25lIGdyaWQgdG8gYW5vdGhlciwgaG93ZXZlciB0aGVyZSBpcyBhIHBlbmRpbmcgc2Nyb2xsIG9wZXJhdGlvblxuICAgICAgICAgICAgLy8gd2hpY2ggaXMgYW4gYXN5bmMgb3BlcmF0aW9uLCBhbnkgYWRkaXRpb25hbCBuYXZpZ2F0aW9uIGtleXMgc2hvdWxkIGJlIGlnbm9yZWRcbiAgICAgICAgICAgIC8vIHVudGlsbCBvcGVyYXRpb24gY29tcGxldGUuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZUluQm9keShyb3dJbmRleCwgdmlzaWJsZUNvbEluZGV4LCBjYjogKGFyZzogYW55KSA9PiB2b2lkID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWMgPSB0aGlzLmdyaWQuZGF0YVZpZXdbcm93SW5kZXhdO1xuICAgICAgICBpZiAocmVjICYmIHRoaXMuZ3JpZC5pc0NoaWxkR3JpZFJlY29yZChyZWMpKSB7XG4gICAgICAgICAgICAgLy8gdGFyZ2V0IGlzIGNoaWxkIGdyaWRcbiAgICAgICAgICAgIGNvbnN0IHZpcnRTdGF0ZSA9IHRoaXMuZ3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5zdGF0ZTtcbiAgICAgICAgICAgICBjb25zdCBpblZpZXcgPSByb3dJbmRleCA+PSB2aXJ0U3RhdGUuc3RhcnRJbmRleCAmJiByb3dJbmRleCA8PSB2aXJ0U3RhdGUuc3RhcnRJbmRleCArIHZpcnRTdGF0ZS5jaHVua1NpemU7XG4gICAgICAgICAgICAgY29uc3QgaXNOZXh0ID0gIHRoaXMuYWN0aXZlTm9kZS5yb3cgPCByb3dJbmRleDtcbiAgICAgICAgICAgICBjb25zdCB0YXJnZXRMYXlvdXRJbmRleCA9IGlzTmV4dCA/IG51bGwgOiB0aGlzLmdyaWQuY2hpbGRMYXlvdXRLZXlzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgaWYgKGluVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdmVUb0NoaWxkKHJvd0luZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGlzTmV4dCwgdGFyZ2V0TGF5b3V0SW5kZXgsIGNiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IHNjcm9sbEFtb3VudCA9IHRoaXMuZ3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5nZXRTY3JvbGxGb3JJbmRleChyb3dJbmRleCwgIWlzTmV4dCk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsQW1vdW50ICs9IGlzTmV4dCA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuZ2V0U2Nyb2xsKCkuc2Nyb2xsVG9wID0gc2Nyb2xsQW1vdW50O1xuICAgICAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdOYXZpZ2F0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuY2h1bmtMb2FkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW92ZVRvQ2hpbGQocm93SW5kZXgsIHZpc2libGVDb2xJbmRleCwgaXNOZXh0LCB0YXJnZXRMYXlvdXRJbmRleCwgY2IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wZW5kaW5nTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNMYXN0ID0gcm93SW5kZXggPT09IHRoaXMuZ3JpZC5kYXRhVmlldy5sZW5ndGg7XG4gICAgICAgIGlmICgocm93SW5kZXggPT09IC0xIHx8IGlzTGFzdCkgJiZcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5wYXJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIHJlYWNoZWQgZW5kIG9mIGNoaWxkIGdyaWRcbiAgICAgICAgICAgIGNvbnN0IG5leHRTaWJsaW5nSW5kZXggPSB0aGlzLm5leHRTaWJsaW5nSW5kZXgoaXNMYXN0KTtcbiAgICAgICAgICAgIGlmIChuZXh0U2libGluZ0luZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkLnBhcmVudC5uYXZpZ2F0aW9uLl9tb3ZlVG9DaGlsZCh0aGlzLmdyaWQuY2hpbGRSb3cuaW5kZXgsIHZpc2libGVDb2xJbmRleCwgaXNMYXN0LCBuZXh0U2libGluZ0luZGV4LCBjYik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdmVUb1BhcmVudChpc0xhc3QsIHZpc2libGVDb2xJbmRleCwgY2IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5wYXJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzTmV4dCA9IHRoaXMuYWN0aXZlTm9kZSAmJiB0eXBlb2YgdGhpcy5hY3RpdmVOb2RlLnJvdyA9PT0gJ251bWJlcicgPyByb3dJbmRleCA+IHRoaXMuYWN0aXZlTm9kZS5yb3cgOiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGNiSGFuZGxlciA9IChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlU2Nyb2xsSW5DaGlsZChyb3dJbmRleCwgaXNOZXh0KTtcbiAgICAgICAgICAgICAgICBjYihhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXRoaXMuYWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZSA9IHsgcm93OiBudWxsLCBjb2x1bW46IG51bGwgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlSW5Cb2R5KHJvd0luZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGNiSGFuZGxlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVOb2RlID0geyByb3c6IG51bGwsIGNvbHVtbjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5hdmlnYXRlSW5Cb2R5KHJvd0luZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGNiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkUGVyZm9ybVZlcnRpY2FsU2Nyb2xsKGluZGV4LCB2aXNpYmxlQ29sdW1uSW5kZXggPSAtMSwgaXNOZXh0Pykge1xuICAgICAgICBjb25zdCB0YXJnZXRSZWMgPSB0aGlzLmdyaWQuZGF0YVZpZXdbaW5kZXhdO1xuICAgICAgICBpZiAodGhpcy5ncmlkLmlzQ2hpbGRHcmlkUmVjb3JkKHRhcmdldFJlYykpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEFtb3VudCA9IHRoaXMuZ3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5nZXRTY3JvbGxGb3JJbmRleChpbmRleCwgIWlzTmV4dCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyU2Nyb2xsID0gdGhpcy5ncmlkLnZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyLmdldFNjcm9sbCgpLnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFNjcm9sbCA9ICFpc05leHQgPyBzY3JvbGxBbW91bnQgPiBjdXJyU2Nyb2xsIDogY3VyclNjcm9sbCA8IHNjcm9sbEFtb3VudDtcbiAgICAgICAgICAgIHJldHVybiBzaG91bGRTY3JvbGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuc2hvdWxkUGVyZm9ybVZlcnRpY2FsU2Nyb2xsKGluZGV4LCB2aXNpYmxlQ29sdW1uSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzVGJvZHkoZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZU5vZGUgfHwgdGhpcy5hY3RpdmVOb2RlLnJvdyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVOb2RlID0ge1xuICAgICAgICAgICAgICAgIHJvdzogMCxcbiAgICAgICAgICAgICAgICBjb2x1bW46IDBcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZ3JpZC5uYXZpZ2F0ZVRvKDAsIDAsIChvYmopID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQuY2xlYXJDZWxsU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgb2JqLnRhcmdldC5hY3RpdmF0ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIuZm9jdXNUYm9keShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbmV4dFNpYmxpbmdJbmRleChpc05leHQpIHtcbiAgICAgICAgY29uc3QgbGF5b3V0S2V5ID0gdGhpcy5ncmlkLmNoaWxkUm93LmxheW91dC5rZXk7XG4gICAgICAgIGNvbnN0IGxheW91dEluZGV4ID0gdGhpcy5ncmlkLnBhcmVudC5jaGlsZExheW91dEtleXMuaW5kZXhPZihsYXlvdXRLZXkpO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBpc05leHQgPyBsYXlvdXRJbmRleCArIDEgOiBsYXlvdXRJbmRleCAtIDE7XG4gICAgICAgIGlmIChuZXh0SW5kZXggPD0gdGhpcy5ncmlkLnBhcmVudC5jaGlsZExheW91dEtleXMubGVuZ3RoIC0gMSAmJiBuZXh0SW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIG5leHRJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBzY3JvbGxpbmcgaW4gY2hpbGQgZ3JpZCBhbmQgZW5zdXJlcyB0YXJnZXQgY2hpbGQgcm93IGlzIGluIG1haW4gZ3JpZCB2aWV3IHBvcnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93SW5kZXggVGhlIHJvdyBpbmRleCB3aGljaCBzaG91bGQgYmUgaW4gdmlldy5cbiAgICAgKiBAcGFyYW0gaXNOZXh0ICBPcHRpb25hbC4gV2hldGhlciB3ZSBhcmUgbmF2aWdhdGluZyB0byBuZXh0LiBVc2VkIHRvIGRldGVybWluZSBzY3JvbGwgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSBjYiAgT3B0aW9uYWwuQ2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfaGFuZGxlU2Nyb2xsSW5DaGlsZChyb3dJbmRleDogbnVtYmVyLCBpc05leHQ/OiBib29sZWFuLCBjYj86ICgpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gdGhpcy5zaG91bGRQZXJmb3JtVmVydGljYWxTY3JvbGwocm93SW5kZXgsIC0xLCBpc05leHQpO1xuICAgICAgICBpZiAoc2hvdWxkU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQubmF2aWdhdGlvbi5wZXJmb3JtVmVydGljYWxTY3JvbGxUb0NlbGwocm93SW5kZXgsIC0xLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbkluUGFyZW50KHJvd0luZGV4LCBpc05leHQsIGNiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbkluUGFyZW50KHJvd0luZGV4LCBpc05leHQsIGNiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvd0luZGV4IFJvdyBpbmRleCB0aGF0IHNob3VsZCBjb21lIGluIHZpZXcuXG4gICAgICogQHBhcmFtIGlzTmV4dCAgV2hldGhlciB3ZSBhcmUgbmF2aWdhdGluZyB0byBuZXh0LiBVc2VkIHRvIGRldGVybWluZSBzY3JvbGwgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSBjYiAgT3B0aW9uYWwuQ2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwb3NpdGlvbkluUGFyZW50KHJvd0luZGV4LCBpc05leHQsIGNiPzogKCkgPT4gdm9pZCkge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcm93X2J5X2luZGV4KHJvd0luZGV4KTtcbiAgICAgICAgaWYgKCFyb3cpIHtcbiAgICAgICAgICAgIGlmIChjYikge1xuICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zaXRpb25JbmZvID0gdGhpcy5nZXRQb3NpdGlvbkluZm8ocm93LCBpc05leHQpO1xuICAgICAgICBpZiAoIXBvc2l0aW9uSW5mby5pblZpZXcpIHtcbiAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgZnJvbSB0cmlnZ2VyaW5nIG11bHRpcGxlIHRpbWVzIGJlZm9yZSBzY3JvbGxpbmcgaXMgY29tcGxldGUuXG4gICAgICAgICAgICB0aGlzLl9wZW5kaW5nTmF2aWdhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlR3JpZCA9IGlzTmV4dCA/IHRoaXMuZ2V0TmV4dFNjcm9sbGFibGVEb3duKHRoaXMuZ3JpZCkgOiB0aGlzLmdldE5leHRTY3JvbGxhYmxlVXAodGhpcy5ncmlkKTtcbiAgICAgICAgICAgIHNjcm9sbGFibGVHcmlkLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIucmVjYWxjVXBkYXRlU2l6ZXMoKTtcbiAgICAgICAgICAgIHNjcm9sbGFibGVHcmlkLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuYWRkU2Nyb2xsVG9wKHBvc2l0aW9uSW5mby5vZmZzZXQpO1xuICAgICAgICAgICAgc2Nyb2xsYWJsZUdyaWQuZ3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5jaHVua0xvYWQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdOYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGNiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2IpIHtcbiAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTW92ZXMgbmF2aWdhdGlvbiB0byBjaGlsZCBncmlkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmVudFJvd0luZGV4IFRoZSBwYXJlbnQgcm93IGluZGV4LCBhdCB3aGljaCB0aGUgY2hpbGQgZ3JpZCBpcyByZW5kZXJlZC5cbiAgICAgKiBAcGFyYW0gY2hpbGRMYXlvdXRJbmRleCBPcHRpb25hbC4gVGhlIGluZGV4IG9mIHRoZSBjaGlsZCByb3cgaXNsYW5kIHRvIHdoaWNoIHRoZSBjaGlsZCBncmlkIGJlbG9uZ3MgdG8uIFVzZXMgZmlyc3QgaWYgbm90IHNldC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX21vdmVUb0NoaWxkKHBhcmVudFJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2xJbmRleDogbnVtYmVyLCBpc05leHQ6IGJvb2xlYW4sIGNoaWxkTGF5b3V0SW5kZXg/OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2I/OiAoYXJnOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3QgcmkgPSB0eXBlb2YgY2hpbGRMYXlvdXRJbmRleCAhPT0gJ251bWJlcicgP1xuICAgICAgICAgdGhpcy5ncmlkLmNoaWxkTGF5b3V0TGlzdC5maXJzdCA6IHRoaXMuZ3JpZC5jaGlsZExheW91dExpc3QudG9BcnJheSgpW2NoaWxkTGF5b3V0SW5kZXhdO1xuICAgICAgICBjb25zdCByb3dJZCA9IHRoaXMuZ3JpZC5kYXRhVmlld1twYXJlbnRSb3dJbmRleF0ucm93SUQ7XG4gICAgICAgIGNvbnN0IHBhdGhTZWdtZW50OiBJUGF0aFNlZ21lbnQgPSB7XG4gICAgICAgICAgICByb3dJRDogcm93SWQsXG4gICAgICAgICAgICByb3dJc2xhbmRLZXk6IHJpLmtleVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjaGlsZEdyaWQgPSAgdGhpcy5ncmlkLmhncmlkQVBJLmdldENoaWxkR3JpZChbcGF0aFNlZ21lbnRdKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBpc05leHQgPyAwIDogY2hpbGRHcmlkLmRhdGFWaWV3Lmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IHRhcmdldFJlYyA9ICBjaGlsZEdyaWQuZGF0YVZpZXdbdGFyZ2V0SW5kZXhdO1xuICAgICAgICBpZiAoIXRhcmdldFJlYykge1xuICAgICAgICAgICAgLy8gaWYgbm8gdGFyZ2V0IHJlYywgdGhlbiBtb3ZlIG9uIGluIG5leHQgc2libGluZyBvciBwYXJlbnRcbiAgICAgICAgICAgIGNoaWxkR3JpZC5uYXZpZ2F0aW9uLm5hdmlnYXRlSW5Cb2R5KHRhcmdldEluZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGNiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hpbGRHcmlkLmlzQ2hpbGRHcmlkUmVjb3JkKHRhcmdldFJlYykpIHtcbiAgICAgICAgICAgIC8vIGlmIHRhcmdldCBpcyBhIGNoaWxkIGdyaWQgcmVjb3JkIHNob3VsZCBtb3ZlIGludG8gaXQuXG4gICAgICAgICAgICB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlLnJvdyA9IG51bGw7XG4gICAgICAgICAgICBjaGlsZEdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlID0geyByb3c6IHRhcmdldEluZGV4LCBjb2x1bW46IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW59O1xuICAgICAgICAgICAgY2hpbGRHcmlkLm5hdmlnYXRpb24uX2hhbmRsZVNjcm9sbEluQ2hpbGQodGFyZ2V0SW5kZXgsIGlzTmV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldExheW91dEluZGV4ID0gaXNOZXh0ID8gMCA6IGNoaWxkR3JpZC5jaGlsZExheW91dExpc3QudG9BcnJheSgpLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgY2hpbGRHcmlkLm5hdmlnYXRpb24uX21vdmVUb0NoaWxkKHRhcmdldEluZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGlzTmV4dCwgdGFyZ2V0TGF5b3V0SW5kZXgsIGNiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hpbGRHcmlkTmF2ID0gIGNoaWxkR3JpZC5uYXZpZ2F0aW9uO1xuICAgICAgICB0aGlzLmNsZWFyQWN0aXZhdGlvbigpO1xuICAgICAgICBjb25zdCBsYXN0VmlzaWJsZUluZGV4ID0gY2hpbGRHcmlkTmF2Lmxhc3RDb2x1bW5JbmRleDtcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSB2aXNpYmxlQ29sSW5kZXggPD0gbGFzdFZpc2libGVJbmRleCA/IHZpc2libGVDb2xJbmRleCA6IGxhc3RWaXNpYmxlSW5kZXg7XG4gICAgICAgIGNoaWxkR3JpZE5hdi5hY3RpdmVOb2RlID0geyByb3c6IHRhcmdldEluZGV4LCBjb2x1bW46IGNvbHVtbkluZGV4fTtcbiAgICAgICAgY2hpbGRHcmlkLnRib2R5Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgdGhpcy5fcGVuZGluZ05hdmlnYXRpb24gPSBmYWxzZTtcbiAgICAgICAgY2hpbGRHcmlkLm5hdmlnYXRpb24uX2hhbmRsZVNjcm9sbEluQ2hpbGQodGFyZ2V0SW5kZXgsIGlzTmV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgY2hpbGRHcmlkLm5hdmlnYXRlVG8odGFyZ2V0SW5kZXgsIGNvbHVtbkluZGV4LCBjYik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1vdmVzIG5hdmlnYXRpb24gYmFjayB0byBwYXJlbnQgZ3JpZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3dJbmRleFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfbW92ZVRvUGFyZW50KGlzTmV4dDogYm9vbGVhbiwgY29sdW1uSW5kZXgsIGNiPykge1xuICAgICAgICBjb25zdCBpbmRleEluUGFyZW50ID0gdGhpcy5ncmlkLmNoaWxkUm93LmluZGV4O1xuICAgICAgICBjb25zdCBoYXNOZXh0VGFyZ2V0ID0gdGhpcy5oYXNOZXh0VGFyZ2V0KHRoaXMuZ3JpZC5wYXJlbnQsIGluZGV4SW5QYXJlbnQsIGlzTmV4dCk7XG4gICAgICAgIGlmICghaGFzTmV4dFRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xlYXJBY3RpdmF0aW9uKCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gIGlzTmV4dCA/IGluZGV4SW5QYXJlbnQgKyAxIDogaW5kZXhJblBhcmVudCAtIDE7XG4gICAgICAgIGNvbnN0IGxhc3RWaXNpYmxlSW5kZXggPSB0aGlzLmdyaWQucGFyZW50Lm5hdmlnYXRpb24ubGFzdENvbHVtbkluZGV4O1xuICAgICAgICBjb25zdCBuZXh0Q29sdW1uSW5kZXggPSBjb2x1bW5JbmRleCA8PSBsYXN0VmlzaWJsZUluZGV4ID8gY29sdW1uSW5kZXggOiBsYXN0VmlzaWJsZUluZGV4O1xuICAgICAgICB0aGlzLl9wZW5kaW5nTmF2aWdhdGlvbiA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNiRnVuYyA9IChhcmdzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wZW5kaW5nTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgY2IoYXJncyk7XG4gICAgICAgICAgICBhcmdzLnRhcmdldC5ncmlkLnRib2R5Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ncmlkLnBhcmVudC5uYXZpZ2F0aW9uLm5hdmlnYXRlSW5Cb2R5KHRhcmdldFJvd0luZGV4LCBuZXh0Q29sdW1uSW5kZXgsIGNiRnVuYyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBpbmZvcm1hdGlvbiBvbiB0aGUgcm93IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSByb290IGdyaWQgdmlldyBwb3J0LlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcm93IGlzIGluIHZpZXcgYW5kIGl0cyBvZmZzZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93T2JqXG4gICAgICogQHBhcmFtIGlzTmV4dFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkluZm8ocm93OiBSb3dUeXBlLCBpc05leHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gWFhYOiBGaXggdHlwZVxuICAgICAgICBsZXQgcm93RWxlbSA9IHJvdy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoKHJvdyBhcyBhbnkpLmxheW91dCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRMYXlvdXRLZXlzID0gdGhpcy5ncmlkLmNoaWxkTGF5b3V0S2V5cztcbiAgICAgICAgICAgIGNvbnN0IHJpS2V5ID0gaXNOZXh0ID8gY2hpbGRMYXlvdXRLZXlzWzBdIDogY2hpbGRMYXlvdXRLZXlzW2NoaWxkTGF5b3V0S2V5cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhTZWdtZW50OiBJUGF0aFNlZ21lbnQgPSB7XG4gICAgICAgICAgICAgICAgcm93SUQ6IHJvdy5kYXRhLnJvd0lELFxuICAgICAgICAgICAgICAgIHJvd0lzbGFuZEtleTogcmlLZXlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBjaGlsZEdyaWQgPSAgdGhpcy5ncmlkLmhncmlkQVBJLmdldENoaWxkR3JpZChbcGF0aFNlZ21lbnRdKTtcbiAgICAgICAgICAgIHJvd0VsZW0gPSBjaGlsZEdyaWQudGZvb3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBncmlkQm90dG9tID0gdGhpcy5fZ2V0TWluQm90dG9tKHRoaXMuZ3JpZCk7XG4gICAgICAgIGNvbnN0IGRpZmZCb3R0b20gPVxuICAgICAgICByb3dFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIGdyaWRCb3R0b207XG4gICAgICAgIGNvbnN0IGdyaWRUb3AgPSB0aGlzLl9nZXRNYXhUb3AodGhpcy5ncmlkKTtcbiAgICAgICAgY29uc3QgZGlmZlRvcCA9IHJvd0VsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIC1cbiAgICAgICAgcm93RWxlbS5vZmZzZXRIZWlnaHQgLSBncmlkVG9wO1xuICAgICAgICBjb25zdCBpc0luVmlldyA9IGlzTmV4dCA/IGRpZmZCb3R0b20gPD0gMCA6IGRpZmZUb3AgPj0gMDtcbiAgICAgICAgY29uc3QgY2FsY09mZnNldCA9ICBpc05leHQgPyBkaWZmQm90dG9tIDogZGlmZlRvcDtcblxuICAgICAgICByZXR1cm4geyBpblZpZXc6IGlzSW5WaWV3LCBvZmZzZXQ6IGNhbGNPZmZzZXQgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNsb3Nlc3QgZWxlbWVudCBieSBpdHMgdGFnIG5hbWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc291cmNlRWxlbSBUaGUgZWxlbWVudCBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBzZWFyY2guXG4gICAgICogQHBhcmFtIHRhcmdldFRhZyBUaGUgdGFyZ2V0IGVsZW1lbnQgdGFnIG5hbWUsIGZvciB3aGljaCB0byBzZWFyY2guXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENsb3Nlc3RFbGVtQnlUYWcoc291cmNlRWxlbSwgdGFyZ2V0VGFnKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBzb3VyY2VFbGVtO1xuICAgICAgICB3aGlsZSAocmVzdWx0ICE9PSBudWxsICYmIHJlc3VsdC5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhcmdldFRhZy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5wYXJlbnROb2RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJBY3RpdmF0aW9uKCkge1xuICAgICAgICAvLyBjbGVhciBpZiBwcmV2aW91cyBhY3RpdmF0aW9uIGV4aXN0cy5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVOb2RlLnJvdyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc05leHRUYXJnZXQoZ3JpZCwgaW5kZXg6IG51bWJlciwgaXNOZXh0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gIGlzTmV4dCA/IGluZGV4ICsgMSA6IGluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgaGFzVGFyZ2V0UmVjb3JkID0gISFncmlkLmRhdGFWaWV3W3RhcmdldFJvd0luZGV4XTtcbiAgICAgICAgaWYgKGhhc1RhcmdldFJlY29yZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgaGFzVGFyZ2V0UmVjb3JkSW5QYXJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChncmlkLnBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4SW5QYXJlbnQgPSBncmlkLmNoaWxkUm93LmluZGV4O1xuICAgICAgICAgICAgICAgIGhhc1RhcmdldFJlY29yZEluUGFyZW50ID0gdGhpcy5oYXNOZXh0VGFyZ2V0KGdyaWQucGFyZW50LCBpbmRleEluUGFyZW50LCBpc05leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGhhc1RhcmdldFJlY29yZEluUGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWF4IHRvcCB2aWV3IGluIHRoZSBjdXJyZW50IGdyaWQgaGllcmFyY2h5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGdyaWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRNYXhUb3AoZ3JpZCkge1xuICAgICAgICBsZXQgY3VyckdyaWQgPSBncmlkO1xuICAgICAgICBsZXQgdG9wID0gY3VyckdyaWQudGJvZHkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICAgIHdoaWxlIChjdXJyR3JpZC5wYXJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJHcmlkID0gY3VyckdyaWQucGFyZW50O1xuICAgICAgICAgICAgY29uc3QgcGlubmVkUm93c0hlaWdodCA9IGN1cnJHcmlkLmhhc1Bpbm5lZFJlY29yZHMgJiYgY3VyckdyaWQuaXNSb3dQaW5uaW5nVG9Ub3AgPyBjdXJyR3JpZC5waW5uZWRSb3dIZWlnaHQgOiAwO1xuICAgICAgICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCBjdXJyR3JpZC50Ym9keS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHBpbm5lZFJvd3NIZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b3A7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWluIGJvdHRvbSB2aWV3IGluIHRoZSBjdXJyZW50IGdyaWQgaGllcmFyY2h5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGdyaWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRNaW5Cb3R0b20oZ3JpZCkge1xuICAgICAgICBsZXQgY3VyckdyaWQgPSBncmlkO1xuICAgICAgICBsZXQgYm90dG9tID0gY3VyckdyaWQudGJvZHkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b207XG4gICAgICAgIHdoaWxlIChjdXJyR3JpZC5wYXJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJHcmlkID0gY3VyckdyaWQucGFyZW50O1xuICAgICAgICAgICAgY29uc3QgcGlubmVkUm93c0hlaWdodCA9IGN1cnJHcmlkLmhhc1Bpbm5lZFJlY29yZHMgJiYgIWN1cnJHcmlkLmlzUm93UGlubmluZ1RvVG9wID8gY3VyckdyaWQucGlubmVkUm93SGVpZ2h0IDogMDtcbiAgICAgICAgICAgIGJvdHRvbSA9IE1hdGgubWluKGJvdHRvbSwgY3VyckdyaWQudGJvZHkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20gLSBwaW5uZWRSb3dzSGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYm90dG9tO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIHRoZSBuZXh0IGdyaWQgdGhhdCBhbGxvd3Mgc2Nyb2xsaW5nIGRvd24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZ3JpZCBUaGUgZ3JpZCBmcm9tIHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROZXh0U2Nyb2xsYWJsZURvd24oZ3JpZCkge1xuICAgICAgICBsZXQgY3VyckdyaWQgPSBncmlkLnBhcmVudDtcbiAgICAgICAgaWYgKCFjdXJyR3JpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgZ3JpZCwgcHJldjogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBzY3JvbGxUb3AgPSBjdXJyR3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5zY3JvbGxQb3NpdGlvbjtcbiAgICAgICAgbGV0IHNjcm9sbEhlaWdodCA9IGN1cnJHcmlkLnZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyLmdldFNjcm9sbCgpLnNjcm9sbEhlaWdodDtcbiAgICAgICAgbGV0IG5vblNjcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPT09IDAgfHxcbiAgICAgICAgICAgIE1hdGgucm91bmQoc2Nyb2xsVG9wICsgY3VyckdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuaWd4Rm9yQ29udGFpbmVyU2l6ZSkgPT09IHNjcm9sbEhlaWdodDtcbiAgICAgICAgbGV0IHByZXYgPSBncmlkO1xuICAgICAgICB3aGlsZSAobm9uU2Nyb2xsYWJsZSAmJiBjdXJyR3JpZC5wYXJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHByZXYgPSBjdXJyR3JpZDtcbiAgICAgICAgICAgIGN1cnJHcmlkID0gY3VyckdyaWQucGFyZW50O1xuICAgICAgICAgICAgc2Nyb2xsVG9wID0gY3VyckdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuc2Nyb2xsUG9zaXRpb247XG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQgPSBjdXJyR3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5nZXRTY3JvbGwoKS5zY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICBub25TY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID09PSAwIHx8XG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZChzY3JvbGxUb3AgKyBjdXJyR3JpZC52ZXJ0aWNhbFNjcm9sbENvbnRhaW5lci5pZ3hGb3JDb250YWluZXJTaXplKSA9PT0gc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGdyaWQ6IGN1cnJHcmlkLCBwcmV2IH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgdGhlIG5leHQgZ3JpZCB0aGF0IGFsbG93cyBzY3JvbGxpbmcgdXAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZ3JpZCBUaGUgZ3JpZCBmcm9tIHdoaWNoIHRvIGJlZ2luIHRoZSBzZWFyY2guXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROZXh0U2Nyb2xsYWJsZVVwKGdyaWQpIHtcbiAgICAgICAgbGV0IGN1cnJHcmlkID0gZ3JpZC5wYXJlbnQ7XG4gICAgICAgIGlmICghY3VyckdyaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGdyaWQsIHByZXY6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbm9uU2Nyb2xsYWJsZSA9IGN1cnJHcmlkLnZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyLnNjcm9sbFBvc2l0aW9uID09PSAwO1xuICAgICAgICBsZXQgcHJldiA9IGdyaWQ7XG4gICAgICAgIHdoaWxlIChub25TY3JvbGxhYmxlICYmIGN1cnJHcmlkLnBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcHJldiA9IGN1cnJHcmlkO1xuICAgICAgICAgICAgY3VyckdyaWQgPSBjdXJyR3JpZC5wYXJlbnQ7XG4gICAgICAgICAgICBub25TY3JvbGxhYmxlID0gY3VyckdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuc2Nyb2xsUG9zaXRpb24gPT09IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZ3JpZDogY3VyckdyaWQsIHByZXYgfTtcbiAgICB9XG59XG4iXX0=
@@ -172,9 +172,9 @@ export class IgxChildGridRowComponent {
172
172
  }
173
173
  }
174
174
  }
175
- IgxChildGridRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxChildGridRowComponent, deps: [{ token: IGX_GRID_SERVICE_BASE }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
176
- IgxChildGridRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxChildGridRowComponent, selector: "igx-child-grid-row", inputs: { layout: "layout", parentGridID: "parentGridID", data: "data", index: "index" }, host: { properties: { "attr.aria-level": "this.level" } }, viewQueries: [{ propertyName: "hGrid", first: true, predicate: ["hgrid"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid__hierarchical-indent\" [ngClass]=\"{'igx-grid__hierarchical-indent--scroll': parentHasScroll}\">\n <igx-hierarchical-grid #hgrid [data]='data.childGridsData[layout.key]'></igx-hierarchical-grid>\n</div>\n", components: [{ type: i0.forwardRef(function () { return IgxHierarchicalGridComponent; }), selector: "igx-hierarchical-grid", inputs: ["id", "data", "expandChildren"] }], directives: [{ type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxChildGridRowComponent, decorators: [{
175
+ IgxChildGridRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxChildGridRowComponent, deps: [{ token: IGX_GRID_SERVICE_BASE }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
176
+ IgxChildGridRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxChildGridRowComponent, selector: "igx-child-grid-row", inputs: { layout: "layout", parentGridID: "parentGridID", data: "data", index: "index" }, host: { properties: { "attr.aria-level": "this.level" } }, viewQueries: [{ propertyName: "hGrid", first: true, predicate: ["hgrid"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid__hierarchical-indent\" [ngClass]=\"{'igx-grid__hierarchical-indent--scroll': parentHasScroll}\">\n <igx-hierarchical-grid #hgrid [data]='data.childGridsData[layout.key]'></igx-hierarchical-grid>\n</div>\n", components: [{ type: i0.forwardRef(function () { return IgxHierarchicalGridComponent; }), selector: "igx-hierarchical-grid", inputs: ["id", "data", "expandChildren"] }], directives: [{ type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxChildGridRowComponent, decorators: [{
178
178
  type: Component,
179
179
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-child-grid-row', template: "<div class=\"igx-grid__hierarchical-indent\" [ngClass]=\"{'igx-grid__hierarchical-indent--scroll': parentHasScroll}\">\n <igx-hierarchical-grid #hgrid [data]='data.childGridsData[layout.key]'></igx-hierarchical-grid>\n</div>\n" }]
180
180
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -960,8 +960,8 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirecti
960
960
  this.scrollLeft = event.target.scrollLeft;
961
961
  }
962
962
  }
963
- IgxHierarchicalGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
964
- IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxHierarchicalGridComponent, selector: "igx-hierarchical-grid", inputs: { id: "id", data: "data", expandChildren: "expandChildren" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, providers: [
963
+ IgxHierarchicalGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
964
+ IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxHierarchicalGridComponent, selector: "igx-hierarchical-grid", inputs: { id: "id", data: "data", expandChildren: "expandChildren" }, host: { properties: { "attr.role": "this.role", "attr.id": "this.id" } }, providers: [
965
965
  IgxGridCRUDService,
966
966
  IgxGridSelectionService,
967
967
  { provide: IGX_GRID_SERVICE_BASE, useClass: IgxHierarchicalGridAPIService },
@@ -973,7 +973,7 @@ IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
973
973
  IgxForOfScrollSyncService,
974
974
  IgxRowIslandAPIService
975
975
  ], queries: [{ propertyName: "toolbarTemplate", first: true, predicate: IgxGridToolbarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "childLayoutList", predicate: IgxRowIslandComponent, read: IgxRowIslandComponent }, { propertyName: "allLayoutList", predicate: IgxRowIslandComponent, descendants: true, read: IgxRowIslandComponent }, { propertyName: "paginatorList", predicate: IgxPaginatorComponent, descendants: true }], viewQueries: [{ propertyName: "toolbarOutlet", first: true, predicate: ["toolbarOutlet"], descendants: true, read: ViewContainerRef }, { propertyName: "paginatorOutlet", first: true, predicate: ["paginatorOutlet"], descendants: true, read: ViewContainerRef }, { propertyName: "hierarchicalRecordTemplate", first: true, predicate: ["hierarchical_record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "childTemplate", first: true, predicate: ["child_record_template"], descendants: true, read: TemplateRef, static: true }, { propertyName: "templateOutlets", predicate: IgxTemplateOutletDirective, descendants: true, read: IgxTemplateOutletDirective }, { propertyName: "hierarchicalRows", predicate: IgxChildGridRowComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"igx-grid-toolbar\"></ng-content>\n<ng-container #toolbarOutlet></ng-container>\n\n<igx-grid-header-row class=\"igx-grid-thead\" tabindex=\"0\"\n [grid]=\"this\"\n [hasMRL]=\"hasColumnLayouts\"\n [activeDescendant]=\"activeDescendant\"\n [width]=\"calcWidth\"\n [pinnedColumnCollection]=\"pinnedColumns\"\n [unpinnedColumnCollection]=\"unpinnedColumns\"\n (keydown.meta.c)=\"copyHandler($event)\"\n (keydown.control.c)=\"copyHandler($event)\"\n (copy)=\"copyHandler($event)\"\n (keydown)=\"navigation.headerNavigation($event)\"\n (focus)=\"navigation.focusFirstCell()\"\n>\n</igx-grid-header-row>\n\n<div igxGridBody (keydown.control.c)=\"copyHandler($event)\" (copy)=\"copyHandler($event)\" class=\"igx-grid__tbody\" role=\"rowgroup\">\n <div class=\"igx-grid__tbody-content\" tabindex=\"0\" (focus)=\"navigation.focusTbody($event)\"\n (keydown)=\"navigation.handleNavigation($event)\" (dragStop)=\"selectionService.dragMode = $event\"\n (dragScroll)=\"dragScroll($event)\" [igxGridDragSelect]=\"selectionService.dragMode\" [attr.aria-activedescendant]=\"activeDescendant\" [attr.role]=\"dataView.length ? null : 'row'\"\n [style.height.px]='totalHeight' [style.width.px]='calcWidth' #tbody (scroll)='preventContainerScroll($event)'>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length <= 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-left\"></span>\n <span *ngIf=\"hasMovableColumns && columnInDrag && pinnedColumns.length > 0\"\n [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\" id=\"left\"\n class=\"igx-grid__scroll-on-drag-pinned\" [style.left.px]=\"pinnedWidth\"></span>\n <ng-template #pinnedRecordsTemplate>\n <ng-container *ngIf=\"data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridAddRow:true:pipeTrigger\n | gridRowPinning:id:true:pipeTrigger\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger:true\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger:true as pinnedData\">\n <div #pinContainer *ngIf='pinnedData.length > 0' class='igx-grid__tr--pinned'\n [ngClass]=\"{ 'igx-grid__tr--pinned-bottom': !isRowPinningToTop, 'igx-grid__tr--pinned-top': isRowPinningToTop }\"\n [style.width.px]='calcWidth'>\n <ng-container *ngFor=\"let rowData of pinnedData; let rowIndex = index\">\n <ng-container *ngTemplateOutlet=\"pinned_hierarchical_record_template; context: getContext(rowData, rowIndex, true)\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-template igxGridFor let-rowData let-rowIndex=\"index\" [igxGridForOf]=\"data\n | gridTransaction:id:pipeTrigger\n | visibleColumns:hasVisibleColumns\n | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger\n | gridSort:sortingExpressions:sortStrategy:id:pipeTrigger\n | gridHierarchicalPaging:paginator?.page:paginator?.perPage:id:pipeTrigger\n | gridHierarchical:expansionStates:id:primaryKey:childLayoutKeys:pipeTrigger\n | gridAddRow:false:pipeTrigger\n | gridRowPinning:id:false:pipeTrigger\"\n [igxForScrollOrientation]=\"'vertical'\" [igxForScrollContainer]='verticalScroll'\n [igxForContainerSize]='calcHeight' [igxForItemSize]=\"renderedRowHeight\" [igxForTrackBy]='trackChanges'\n #verticalScrollContainer (chunkPreload)=\"dataLoading($event)\">\n <ng-template\n [igxTemplateOutlet]='(isHierarchicalRecord(rowData) ? hierarchical_record_template : (isChildGridRecord(rowData) ? child_record_template : hierarchical_record_template))'\n [igxTemplateOutletContext]='getContext(rowData, rowIndex, false)' (viewCreated)='viewCreatedHandler($event)'\n (viewMoved)='viewMovedHandler($event)' (cachedViewLoaded)='cachedViewLoaded($event)'>\n </ng-template>\n <!-- <ng-container *igxTemplateOutlet=\"(isHierarchicalRecord(rowData) ? hierarchical_record_template : (isChildGridRecord(rowData) && isExpanded(rowData) ? child_record_template : hierarchical_record_template)); context: getContext(rowData)\"></ng-container> -->\n </ng-template>\n <ng-template #hierarchical_record_template let-rowIndex=\"index\" let-disabledRow=\"disabled\" let-rowData>\n <igx-hierarchical-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [disabled]=\"disabledRow\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:data:rowIndex:pipeTrigger\" #row>\n </igx-hierarchical-grid-row>\n </ng-template>\n\n <ng-template #pinned_hierarchical_record_template let-rowIndex=\"index\" let-rowData>\n <igx-hierarchical-grid-row [gridID]=\"id\" [index]=\"rowIndex\" [data]=\"rowData\"\n [ngClass]=\"rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger\"\n [ngStyle]=\"rowStyles | igxGridRowStyles:data:rowIndex:pipeTrigger\" #row #pinnedRow>\n </igx-hierarchical-grid-row>\n </ng-template>\n <ng-template #child_record_template let-rowIndex=\"index\" let-rowData>\n <div style=\"overflow: auto; width: 100%;\" [attr.data-rowindex]='rowIndex' (scroll)='onContainerScroll()'\n [ngClass]=\"{\n 'igx-grid__tr-container': true,\n 'igx-grid__tr--highlighted':isRowHighlighted(rowData)\n }\">\n <igx-child-grid-row *ngFor=\"let layout of childLayoutList\" [parentGridID]=\"id\" [index]=\"rowIndex\"\n [data]=\"rowData\" [layout]='layout' #row>\n </igx-child-grid-row>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"hasPinnedRecords && !isRowPinningToTop ? pinnedRecordsTemplate : null\">\n </ng-container>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div class=\"igx-grid__row-editing-outlet\" igxOverlayOutlet #igxRowEditingOverlayOutlet></div>\n <igc-trial-watermark *ngIf=\"!this.parent\"></igc-trial-watermark>\n </div>\n <div igxToggle #loadingOverlay>\n <igx-circular-bar [indeterminate]=\"true\" *ngIf='shouldOverlayLoading'>\n </igx-circular-bar>\n </div>\n <span *ngIf=\"hasMovableColumns && columnInDrag\" [igxColumnMovingDrop]=\"headerContainer\" [attr.droppable]=\"true\"\n id=\"right\" class=\"igx-grid__scroll-on-drag-right\"></span>\n <div [hidden]='!hasVerticalScroll()' class=\"igx-grid__tbody-scrollbar\" [style.width.px]=\"scrollSize\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__tbody-scrollbar-start\" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>\n <div class=\"igx-grid__tbody-scrollbar-main\" [style.height.px]='calcHeight'>\n <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>\n </div>\n <div class=\"igx-grid__tbody-scrollbar-end\" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>\n </div>\n <div class=\"igx-grid__addrow-snackbar\">\n <igx-snackbar #addRowSnackbar [outlet]=\"igxBodyOverlayOutlet\" [actionText]=\"resourceStrings.igx_grid_snackbar_addrow_actiontext\" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>\n </div>\n\n <div igxOverlayOutlet #igxBodyOverlayOutlet=\"overlay-outlet\"></div>\n</div>\n\n<div class=\"igx-grid__tfoot\" role=\"rowgroup\" [style.height.px]='summariesHeight' #tfoot>\n <div tabindex=\"0\" (focus)=\"navigation.focusFirstCell(false)\" [attr.aria-activedescendant]=\"activeDescendant\"\n (keydown)=\"navigation.summaryNav($event)\">\n <igx-grid-summary-row [style.width.px]='calcWidth' [style.height.px]='summariesHeight'\n *ngIf=\"hasSummarizedColumns && rootSummariesEnabled\" [gridID]=\"id\" role=\"row\"\n [summaries]=\"id | igxGridSummaryDataPipe:summaryService.retriggerRootPipe\" [index]=\"dataView.length\"\n class=\"igx-grid__summaries\" #summaryRow>\n </igx-grid-summary-row>\n <div class=\"igx-grid__tfoot-thumb\" [hidden]='!hasVerticalScroll()' [style.height.px]='summariesHeight'\n [style.width.px]=\"scrollSize\"></div>\n </div>\n</div>\n\n<div class=\"igx-grid__scroll\" [style.height.px]=\"scrollSize\" #scr [hidden]=\"isHorizontalScrollHidden\" (pointerdown)=\"$event.preventDefault()\">\n <div class=\"igx-grid__scroll-start\" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>\n <div class=\"igx-grid__scroll-main\" [style.width.px]='unpinnedWidth'>\n <ng-template igxGridFor [igxGridForOf]='[]' #scrollContainer>\n </ng-template>\n </div>\n <div class=\"igx-grid__scroll-end\" [style.float]='\"right\"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]=\"pinnedWidth === 0 || isPinningToStart\"></div>\n</div>\n\n<div class=\"igx-grid__footer\" #footer>\n <ng-content select=\"igx-grid-footer\"></ng-content>\n <ng-content *ngIf=\"totalRecords || pagingMode === 1\" select=\"igx-paginator\"></ng-content>\n <ng-container #paginatorOutlet></ng-container>\n</div>\n\n<ng-template #emptyFilteredGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyFilteredGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultEmptyGrid>\n <span class=\"igx-grid__tbody-message\" role=\"cell\">\n <span>{{emptyGridMessage}}</span>\n <span *ngIf='showAddButton'>\n <ng-container *ngTemplateOutlet='addRowEmptyTemplate || defaultAddRowEmptyTemplate'></ng-container>\n </span>\n </span>\n</ng-template>\n\n<ng-template #defaultAddRowEmptyTemplate>\n <button igxButton=\"raised\" igxRipple (click)=\"this.crudService.enterAddRowMode(null, false, $event)\">\n {{resourceStrings.igx_grid_add_row_label}}\n </button>\n</ng-template>\n\n<ng-template #defaultLoadingGrid>\n <div class=\"igx-grid__loading\">\n <igx-circular-bar [indeterminate]=\"true\">\n </igx-circular-bar>\n </div>\n</ng-template>\n\n<ng-template #defaultCollapsedTemplate>\n <igx-icon role=\"button\">unfold_more</igx-icon>\n</ng-template>\n\n<ng-template #defaultExpandedTemplate>\n <igx-icon role=\"button\" [active]='hasExpandedRecords() && hasExpandableChildren'>unfold_less</igx-icon>\n</ng-template>\n\n<div *ngIf=\"rowEditable\" igxToggle #rowEditingOverlay>\n <div [className]=\"bannerClass\">\n <ng-container\n *ngTemplateOutlet=\"resolveRowEditContainer; context: { rowChangesCount: rowChangesCount, endEdit: this.crudService.endEdit.bind(this) }\">\n </ng-container>\n </div>\n</div>\n<ng-template #defaultRowEditText>\n You have {{ rowChangesCount }} changes in this row\n</ng-template>\n<ng-template #defaultRowEditActions>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(false, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_cancel }}</button>\n <button igxButton igxRowEditTabStop (click)=\"this.endRowEditTabStop(true, $event)\">{{ this.resourceStrings.igx_grid_row_edit_btn_done }}</button>\n</ng-template>\n<ng-template #defaultRowEditTemplate>\n <div class=\"igx-banner__message\">\n <span class=\"igx-banner__text\">\n <ng-container\n *ngTemplateOutlet=\"this.crudService.row?.getClassName() === 'IgxAddRow' ? rowAddText : resolveRowEditText || defaultRowEditText;\n context: { $implicit: this.crudService.row?.getClassName() !== 'IgxAddRow' ? rowChangesCount : null }\">\n </ng-container>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n <div class=\"igx-banner__row\">\n <ng-container\n *ngTemplateOutlet=\"resolveRowEditActions || defaultRowEditActions; context: { $implicit: this.endEdit.bind(this) }\">\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dragIndicatorIconBase>\n <igx-icon>drag_indicator</igx-icon>\n</ng-template>\n\n<igx-grid-column-resizer *ngIf=\"colResizingService.showResizer\"></igx-grid-column-resizer>\n<div class=\"igx-grid__loading-outlet\" #igxLoadingOverlayOutlet igxOverlayOutlet></div>\n<div class=\"igx-grid__outlet\" #igxFilteringOverlayOutlet igxOverlayOutlet></div>\n", components: [{ type: i2.IgxGridHeaderRowComponent, selector: "igx-grid-header-row", inputs: ["grid", "pinnedColumnCollection", "unpinnedColumnCollection", "activeDescendant", "hasMRL", "width", "density"] }, { type: i3.IgxHierarchicalRowComponent, selector: "igx-hierarchical-grid-row" }, { type: IgxChildGridRowComponent, selector: "igx-child-grid-row", inputs: ["layout", "parentGridID", "data", "index"] }, { type: i4.IgxCircularProgressBarComponent, selector: "igx-circular-bar", inputs: ["id", "indeterminate", "textVisibility", "text", "value"] }, { type: i5.IgxSnackbarComponent, selector: "igx-snackbar", inputs: ["id", "actionText", "positionSettings"], outputs: ["clicked", "animationStarted", "animationDone"] }, { type: i6.IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: ["summaries", "gridID", "index", "firstCellIndentation"] }, { type: i7.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i8.IgxGridColumnResizerComponent, selector: "igx-grid-column-resizer" }], directives: [{ type: i9.IgxGridBodyDirective, selector: "[igxGridBody]" }, { type: i10.IgxGridDragSelectDirective, selector: "[igxGridDragSelect]", inputs: ["igxGridDragSelect"], outputs: ["dragStop", "dragScroll"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: ["igxColumnMovingDrop"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i12.IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: i13.IgxTemplateOutletDirective, selector: "[igxTemplateOutlet]", inputs: ["igxTemplateOutletContext", "igxTemplateOutlet"], outputs: ["viewCreated", "viewMoved", "cachedViewLoaded", "beforeViewDetach"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i14.IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }, { type: i14.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: i15.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i16.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: i17.IgxRowEditTabStopDirective, selector: "[igxRowEditTabStop]" }], pipes: { "gridSort": i18.IgxGridSortingPipe, "gridFiltering": i18.IgxGridFilteringPipe, "gridRowPinning": i19.IgxGridRowPinningPipe, "gridAddRow": i19.IgxGridAddRowPipe, "visibleColumns": i19.IgxHasVisibleColumnsPipe, "gridTransaction": i19.IgxGridTransactionPipe, "gridHierarchical": i20.IgxGridHierarchicalPipe, "gridHierarchicalPaging": i20.IgxGridHierarchicalPagingPipe, "igxGridRowClasses": i19.IgxGridRowClassesPipe, "igxGridRowStyles": i19.IgxGridRowStylesPipe, "igxGridSummaryDataPipe": i21.IgxSummaryDataPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
976
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridComponent, decorators: [{
976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridComponent, decorators: [{
977
977
  type: Component,
978
978
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-hierarchical-grid', providers: [
979
979
  IgxGridCRUDService,
@@ -12,8 +12,8 @@ import * as i0 from "@angular/core";
12
12
  */
13
13
  export class IgxHierarchicalGridModule {
14
14
  }
15
- IgxHierarchicalGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- IgxHierarchicalGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridModule, declarations: [IgxHierarchicalGridComponent,
15
+ IgxHierarchicalGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ IgxHierarchicalGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridModule, declarations: [IgxHierarchicalGridComponent,
17
17
  IgxHierarchicalRowComponent,
18
18
  IgxRowIslandComponent,
19
19
  IgxChildGridRowComponent,
@@ -25,10 +25,10 @@ IgxHierarchicalGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0
25
25
  IgxHierarchicalGridCellComponent,
26
26
  IgxRowIslandComponent,
27
27
  IgxChildGridRowComponent] });
28
- IgxHierarchicalGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridModule, imports: [[
28
+ IgxHierarchicalGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridModule, imports: [[
29
29
  IgxGridModule,
30
30
  ], IgxGridModule] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalGridModule, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalGridModule, decorators: [{
32
32
  type: NgModule,
33
33
  args: [{
34
34
  declarations: [
@@ -37,9 +37,9 @@ export class IgxGridHierarchicalPipe {
37
37
  return result;
38
38
  }
39
39
  }
40
- IgxGridHierarchicalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe });
41
- IgxGridHierarchicalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPipe, name: "gridHierarchical" });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPipe, decorators: [{
40
+ IgxGridHierarchicalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe });
41
+ IgxGridHierarchicalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPipe, name: "gridHierarchical" });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPipe, decorators: [{
43
43
  type: Pipe,
44
44
  args: [{ name: 'gridHierarchical' }]
45
45
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -68,9 +68,9 @@ export class IgxGridHierarchicalPagingPipe {
68
68
  return result;
69
69
  }
70
70
  }
71
- IgxGridHierarchicalPagingPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPagingPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe });
72
- IgxGridHierarchicalPagingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPagingPipe, name: "gridHierarchicalPaging" });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridHierarchicalPagingPipe, decorators: [{
71
+ IgxGridHierarchicalPagingPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPagingPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe });
72
+ IgxGridHierarchicalPagingPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPagingPipe, name: "gridHierarchicalPaging" });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxGridHierarchicalPagingPipe, decorators: [{
74
74
  type: Pipe,
75
75
  args: [{ name: 'gridHierarchicalPaging' }]
76
76
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -116,9 +116,9 @@ export class IgxHierarchicalRowComponent extends IgxRowDirective {
116
116
  });
117
117
  }
118
118
  }
119
- IgxHierarchicalRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
120
- IgxHierarchicalRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxHierarchicalRowComponent, selector: "igx-hierarchical-grid-row", host: { properties: { "class.igx-grid__tr--expanded": "this.expandedClass", "class.igx-grid__tr--highlighted": "this.highlighted" } }, providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxHierarchicalRowComponent) }], viewQueries: [{ propertyName: "expander", first: true, predicate: ["expander"], descendants: true, read: ElementRef }, { propertyName: "defaultExpandedTemplate", first: true, predicate: ["defaultExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultEmptyTemplate", first: true, predicate: ["defaultEmptyTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCollapsedTemplate", first: true, predicate: ["defaultCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "_cells", predicate: IgxHierarchicalGridCellComponent, descendants: true, read: IgxHierarchicalGridCellComponent }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon [active]='!added'>expand_more</igx-icon>\n</ng-template>\n\n<ng-template #defaultCollapsedTemplate>\n <igx-icon [active]='!added'>chevron_right</igx-icon>\n</ng-template>\n\n<ng-template #defaultEmptyTemplate>\n <igx-icon></igx-icon>\n</ng-template>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <!-- Drag indicator -->\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\" (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Select Row -->\n <ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: {\n index: viewIndex,\n rowID: key,\n key,\n selected: selected,\n select: select,\n deselect: deselect }}\">\n </ng-template>\n </div>\n </ng-container>\n\n <!-- Row Expander -->\n <div (click)=\"expanderClick($event)\" (mousedown)='$event.preventDefault()' [ngClass]=\"expanderClassResolved\" *ngIf=\"hasChildren\" #expander>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForSizePropName]='\"calcPixelWidth\"' [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <igx-hierarchical-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [disableRipple]=\"true\"\n [disabled]=\"deleted\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n </ng-template>\n\n <ng-template #pinnedCellsTemplate let-col>\n <igx-hierarchical-grid-cell *ngFor=\"let col of pinnedColumns | igxNotGrouped\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n</ng-template>\n", components: [{ type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i2.IgxHierarchicalGridCellComponent, selector: "igx-hierarchical-grid-cell" }, { type: i3.IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "igxNotGrouped": i7.IgxGridNotGroupedPipe, "transactionState": i7.IgxGridTransactionStatePipe, "igxStringReplace": i7.IgxStringReplacePipe, "igxCellStyleClasses": i7.IgxGridCellStyleClassesPipe, "igxCellStyles": i7.IgxGridCellStylesPipe, "dataMapper": i7.IgxGridDataMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxHierarchicalRowComponent, decorators: [{
119
+ IgxHierarchicalRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
120
+ IgxHierarchicalRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxHierarchicalRowComponent, selector: "igx-hierarchical-grid-row", host: { properties: { "class.igx-grid__tr--expanded": "this.expandedClass", "class.igx-grid__tr--highlighted": "this.highlighted" } }, providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxHierarchicalRowComponent) }], viewQueries: [{ propertyName: "expander", first: true, predicate: ["expander"], descendants: true, read: ElementRef }, { propertyName: "defaultExpandedTemplate", first: true, predicate: ["defaultExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultEmptyTemplate", first: true, predicate: ["defaultEmptyTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCollapsedTemplate", first: true, predicate: ["defaultCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "_cells", predicate: i0.forwardRef(function () { return IgxHierarchicalGridCellComponent; }), descendants: true, read: IgxHierarchicalGridCellComponent }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon [active]='!added'>expand_more</igx-icon>\n</ng-template>\n\n<ng-template #defaultCollapsedTemplate>\n <igx-icon [active]='!added'>chevron_right</igx-icon>\n</ng-template>\n\n<ng-template #defaultEmptyTemplate>\n <igx-icon></igx-icon>\n</ng-template>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <!-- Drag indicator -->\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\" (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Select Row -->\n <ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: {\n index: viewIndex,\n rowID: key,\n key,\n selected: selected,\n select: select,\n deselect: deselect }}\">\n </ng-template>\n </div>\n </ng-container>\n\n <!-- Row Expander -->\n <div (click)=\"expanderClick($event)\" (mousedown)='$event.preventDefault()' [ngClass]=\"expanderClassResolved\" *ngIf=\"hasChildren\" #expander>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForSizePropName]='\"calcPixelWidth\"' [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <igx-hierarchical-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [disableRipple]=\"true\"\n [disabled]=\"deleted\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n </ng-template>\n\n <ng-template #pinnedCellsTemplate let-col>\n <igx-hierarchical-grid-cell *ngFor=\"let col of pinnedColumns | igxNotGrouped\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n</ng-template>\n", components: [{ type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i2.IgxHierarchicalGridCellComponent, selector: "igx-hierarchical-grid-cell" }, { type: i3.IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "readonly", "disableTransitions"], outputs: ["change"] }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.IgxRowDragDirective, selector: "[igxRowDrag]", inputs: ["igxRowDrag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "igxNotGrouped": i7.IgxGridNotGroupedPipe, "transactionState": i7.IgxGridTransactionStatePipe, "igxStringReplace": i7.IgxStringReplacePipe, "igxCellStyleClasses": i7.IgxGridCellStyleClassesPipe, "igxCellStyles": i7.IgxGridCellStylesPipe, "dataMapper": i7.IgxGridDataMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxHierarchicalRowComponent, decorators: [{
122
122
  type: Component,
123
123
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-hierarchical-grid-row', providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxHierarchicalRowComponent) }], template: "<ng-container *ngTemplateOutlet='addRowUI ? addTemp : defaultTemp'></ng-container>\n<ng-template #defaultExpandedTemplate>\n <igx-icon [active]='!added'>expand_more</igx-icon>\n</ng-template>\n\n<ng-template #defaultCollapsedTemplate>\n <igx-icon [active]='!added'>chevron_right</igx-icon>\n</ng-template>\n\n<ng-template #defaultEmptyTemplate>\n <igx-icon></igx-icon>\n</ng-template>\n\n<ng-template #addTemp>\n <div class='igx-grid__tr--inner' [class.igx-grid__tr--add-animate]='triggerAddAnimationClass' (animationend)='animationEndHandler()'>\n <ng-container *ngTemplateOutlet='defaultTemp'></ng-container>\n </div>\n</ng-template>\n<ng-template #defaultTemp>\n <!-- Drag indicator -->\n <ng-container *ngIf=\"rowDraggable\">\n <div [class]=\"resolveDragIndicatorClasses\" [igxRowDrag]=\"this\" (click)=\"$event.stopPropagation()\" [ghostTemplate]=\"this.grid.getDragGhostCustomTemplate()\" (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"this.grid.dragIndicatorIconTemplate ? this.grid.dragIndicatorIconTemplate : this.grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Select Row -->\n <ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (click)=\"onRowSelectorClick($event)\" (pointerdown)=\"$event.preventDefault()\">\n <ng-template *ngTemplateOutlet=\"\n this.grid.rowSelectorTemplate ? this.grid.rowSelectorTemplate : rowSelectorBaseTemplate;\n context: { $implicit: {\n index: viewIndex,\n rowID: key,\n key,\n selected: selected,\n select: select,\n deselect: deselect }}\">\n </ng-template>\n </div>\n </ng-container>\n\n <!-- Row Expander -->\n <div (click)=\"expanderClick($event)\" (mousedown)='$event.preventDefault()' [ngClass]=\"expanderClassResolved\" *ngIf=\"hasChildren\" #expander>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\">\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForSizePropName]='\"calcPixelWidth\"' [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]='grid.unpinnedWidth' [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>\n <igx-hierarchical-grid-cell\n class=\"igx-grid__td igx-grid__td--fw\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [class.igx-grid__td--bool]=\"col.dataType === 'boolean'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-template *ngTemplateOutlet=\"pinnedCellsTemplate; context: this\"></ng-template>\n </ng-container>\n\n <ng-template #rowSelectorBaseTemplate>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"selected\"\n [disableRipple]=\"true\"\n [disabled]=\"deleted\"\n [disableTransitions]=\"grid.disableTransitions\"\n [aria-label]=\"rowCheckboxAriaLabel\">\n </igx-checkbox>\n </div>\n </ng-template>\n\n <ng-template #pinnedCellsTemplate let-col>\n <igx-hierarchical-grid-cell *ngFor=\"let col of pinnedColumns | igxNotGrouped\"\n class=\"igx-grid__td igx-grid__td--fw igx-grid__td--pinned\"\n [class.igx-grid__td--edited]=\"key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n [class.igx-grid__td--number]=\"col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'\"\n [ngClass]=\"col.cellClasses | igxCellStyleClasses:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [ngStyle]=\"col.cellStyles | igxCellStyles:data[col.field]:data:col.field:viewIndex:grid.pipeTrigger\"\n [editMode]=\"col.editable && this.grid.crudService.targetInEdit(index, col.index)\"\n [column]=\"col\"\n [formatter]=\"col.formatter\"\n [intRow]=\"this\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [firstPinned]=\"col.isFirstPinned\"\n [lastPinned]=\"col.isLastPinned\"\n [style.min-height.px]=\"cellHeight\"\n [rowData]=\"data\"\n [style.min-width]=\"col.width\"\n [style.max-width]=\"col.width\"\n [style.flex-basis]=\"col.width\"\n [style.left]=\"col.rightPinnedOffset\"\n [width]=\"col.getCellWidth()\"\n [visibleColumnIndex]=\"col.visibleIndex\"\n [value]=\"data | dataMapper:col.field:grid.pipeTrigger:data[col.field]:col.hasNestedPath\"\n [cellTemplate]=\"col.bodyTemplate\"\n [lastSearchInfo]=\"grid.lastSearchInfo\"\n [cellSelectionMode]=\"grid.cellSelection\"\n [displayPinnedChip]=\"shouldDisplayPinnedChip(col.visibleIndex)\">\n </igx-hierarchical-grid-cell>\n </ng-template>\n</ng-template>\n" }]
124
124
  }], propDecorators: { expander: [{
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
143
143
  type: HostBinding,
144
144
  args: ['class.igx-grid__tr--highlighted']
145
145
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNULFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQU5oRTs7UUErQmMsa0JBQWEsR0FBRyxpQ0FBaUMsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLHFCQUFxQixDQUFDO1FBcUVqRDs7O1dBR0c7UUFDSSxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBRUY7OztXQUdHO1FBQ0ksYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztLQStCTDtJQWhIRzs7T0FFRztJQUNI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QUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTzVELHdCQUF3QjtzQkFEakMsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFrQy9ELGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsOEJBQThCO2dCQWFoQyxXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFJvd0RpcmVjdGl2ZSB9IGZyb20gJy4uL3Jvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SGllcmFyY2hpY2FsR3JpZENlbGxDb21wb25lbnQgfSBmcm9tICcuL2hpZXJhcmNoaWNhbC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWhpZXJhcmNoaWNhbC1ncmlkLXJvdycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpZXJhcmNoaWNhbC1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4Um93RGlyZWN0aXZlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZ3hIaWVyYXJjaGljYWxSb3dDb21wb25lbnQpIH1dXG59KVxuZXhwb3J0IGNsYXNzIElneEhpZXJhcmNoaWNhbFJvd0NvbXBvbmVudCBleHRlbmRzIElneFJvd0RpcmVjdGl2ZSB7XG4gICAgQFZpZXdDaGlsZCgnZXhwYW5kZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwdWJsaWMgZXhwYW5kZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IElneEhpZXJhcmNoaWNhbEdyaWRDZWxsQ29tcG9uZW50KSwgeyByZWFkOiBJZ3hIaWVyYXJjaGljYWxHcmlkQ2VsbENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBfY2VsbHM6IFF1ZXJ5TGlzdDxJZ3hIaWVyYXJjaGljYWxHcmlkQ2VsbENvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEVtcHR5VGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdENvbGxhcHNlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRDb2xsYXBzZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByb3RlY3RlZCBleHBhbmRlckNsYXNzID0gJ2lneC1ncmlkX19oaWVyYXJjaGljYWwtZXhwYW5kZXInO1xuICAgIHByb3RlY3RlZCByb2xBY3Rpb25DbGFzcyA9ICdpZ3gtZ3JpZF9fdHItYWN0aW9uJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVyQ2xhc3NSZXNvbHZlZCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgJHt0aGlzLmV4cGFuZGVyQ2xhc3N9ICR7dGhpcy5yb2xBY3Rpb25DbGFzc31gXTogIXRoaXMucGlubmVkIHx8IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5leHBhbmRlckNsYXNzfS0tZW1wdHlgXTogdGhpcy5waW5uZWQgJiYgIXRoaXMuZGlzYWJsZWRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZpZXdJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCArICh0aGlzLmdyaWQucGFnaW5hdG9yPy5wYWdlIHx8IDAgKSAqICh0aGlzLmdyaWQucGFnaW5hdG9yPy5wZXJQYWdlIHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcm93IGlzIGV4cGFuZGVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBSb3dFeHBhbmRlZCA9IHRoaXMuZ3JpZDEucm93TGlzdC5maXJzdC5leHBhbmRlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZF9fdHItLWV4cGFuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkICYmICF0aGlzLnBpbm5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgICAgICByZXR1cm4gICEhdGhpcy5ncmlkLmNoaWxkTGF5b3V0S2V5cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWRfX3RyLS1oaWdobGlnaHRlZCcpXG4gICAgcHVibGljIGdldCBoaWdobGlnaHRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZCAmJiB0aGlzLmdyaWQuaGlnaGxpZ2h0ZWRSb3dJRCA9PT0gdGhpcy5rZXk7XG4gICAgfVxuXG4gICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqL1xuICAgcHVibGljIGV4cGFuZGVyQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgaGllcmFyY2hpY2FsIHJvdy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LnRvZ2dsZSgpXG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuZEVkaXQodGhpcy5ncmlkLnJvb3RHcmlkKTtcbiAgICAgICAgdGhpcy5ncmlkLmdyaWRBUEkuc2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5rZXksICF0aGlzLmV4cGFuZGVkKTtcbiAgICAgICAgdGhpcy5ncmlkLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5zZWxlY3RSb3dzKFt0aGlzLmtleV0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRlc2VsZWN0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZGVzZWxlY3RSb3dzKFt0aGlzLmtleV0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uVGVtcGxhdGUoKSB7XG4gICAgICAgIGxldCBleHBhbmRhYmxlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5oYXNDaGlsZHJlbktleSkge1xuICAgICAgICAgICAgZXhwYW5kYWJsZSA9IHRoaXMuZGF0YVt0aGlzLmdyaWQuaGFzQ2hpbGRyZW5LZXldO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXhwYW5kYWJsZSB8fCAodGhpcy5waW5uZWQgJiYgIXRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0RW1wdHlUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdENvbGxhcHNlZFRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogY29uc2lkZXIgbW92aW5nIGludG8gQ1JVRFxuICAgIHByb3RlY3RlZCBlbmRFZGl0KGdyaWQ6IEdyaWRUeXBlKSB7XG4gICAgICAgIGlmIChncmlkLmdyaWRBUEkuY3J1ZFNlcnZpY2UuY2VsbEluRWRpdE1vZGUpIHtcbiAgICAgICAgICAgIGdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5lbmRFZGl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC5oZ3JpZEFQSS5nZXRDaGlsZEdyaWRzKHRydWUpLmZvckVhY2goZyA9PiB7XG4gICAgICAgICAgICBpZiAoZy5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGxJbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgICAgZy5ncmlkQVBJLmNydWRTZXJ2aWNlLmVuZEVkaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nYWRkUm93VUkgPyBhZGRUZW1wIDogZGVmYXVsdFRlbXAnPjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwYW5kZWRUZW1wbGF0ZT5cbiAgICA8aWd4LWljb24gW2FjdGl2ZV09JyFhZGRlZCc+ZXhwYW5kX21vcmU8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sbGFwc2VkVGVtcGxhdGU+XG4gICAgPGlneC1pY29uIFthY3RpdmVdPSchYWRkZWQnPmNoZXZyb25fcmlnaHQ8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlUZW1wbGF0ZT5cbiAgICA8aWd4LWljb24+PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYWRkVGVtcD5cbiAgICA8ZGl2IGNsYXNzPSdpZ3gtZ3JpZF9fdHItLWlubmVyJyBbY2xhc3MuaWd4LWdyaWRfX3RyLS1hZGQtYW5pbWF0ZV09J3RyaWdnZXJBZGRBbmltYXRpb25DbGFzcycgKGFuaW1hdGlvbmVuZCk9J2FuaW1hdGlvbkVuZEhhbmRsZXIoKSc+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9J2RlZmF1bHRUZW1wJz48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wPlxuICAgIDwhLS0gRHJhZyBpbmRpY2F0b3IgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0RyYWdnYWJsZVwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJyZXNvbHZlRHJhZ0luZGljYXRvckNsYXNzZXNcIiBbaWd4Um93RHJhZ109XCJ0aGlzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtnaG9zdFRlbXBsYXRlXT1cInRoaXMuZ3JpZC5nZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpXCIgKHBvaW50ZXJkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGhpcy5ncmlkLmRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGUgPyB0aGlzLmdyaWQuZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZSA6IHRoaXMuZ3JpZC5kcmFnSW5kaWNhdG9ySWNvbkJhc2VcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNlbGVjdCBSb3cgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dSb3dTZWxlY3RvcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19jYngtc2VsZWN0aW9uIGlneC1ncmlkX190ci1hY3Rpb25cIiAoY2xpY2spPVwib25Sb3dTZWxlY3RvckNsaWNrKCRldmVudClcIiAocG9pbnRlcmRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5yb3dTZWxlY3RvclRlbXBsYXRlID8gdGhpcy5ncmlkLnJvd1NlbGVjdG9yVGVtcGxhdGUgOiByb3dTZWxlY3RvckJhc2VUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogdmlld0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dJRDoga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VsZWN0OiBkZXNlbGVjdCB9fVwiPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFJvdyBFeHBhbmRlciAtLT5cbiAgICA8ZGl2ICAoY2xpY2spPVwiZXhwYW5kZXJDbGljaygkZXZlbnQpXCIgKG1vdXNlZG93bik9JyRldmVudC5wcmV2ZW50RGVmYXVsdCgpJyBbbmdDbGFzc109XCJleHBhbmRlckNsYXNzUmVzb2x2ZWRcIiAqbmdJZj1cImhhc0NoaWxkcmVuXCIgI2V4cGFuZGVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGhpcyB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBpbm5lZENvbHVtbnMubGVuZ3RoID4gMCAmJiBncmlkLmlzUGlubmluZ1RvU3RhcnRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwicGlubmVkQ2VsbHNUZW1wbGF0ZTsgY29udGV4dDogdGhpc1wiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgaWd4R3JpZEZvciBsZXQtY29sIFtpZ3hHcmlkRm9yT2ZdPVwidW5waW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgbGV0LWNvbEluZGV4PVwiaW5kZXhcIiBbaWd4Rm9yU2l6ZVByb3BOYW1lXT0nXCJjYWxjUGl4ZWxXaWR0aFwiJyBbaWd4Rm9yU2Nyb2xsT3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCIgW2lneEZvckNvbnRhaW5lclNpemVdPSdncmlkLnVucGlubmVkV2lkdGgnIFtpZ3hGb3JUcmFja0J5XT0nZ3JpZC50cmFja0NvbHVtbkNoYW5nZXMnICNpZ3hEaXJSZWY+XG4gICAgICAgIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQtY2VsbFxuICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQgaWd4LWdyaWRfX3RkLS1md1wiXG4gICAgICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJncmlkSUQgKyAnXycgKyBjb2wuZmllbGQgfCBpZ3hTdHJpbmdSZXBsYWNlOicuJzonXydcIlxuICAgICAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tbnVtYmVyXT1cImNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knXCJcbiAgICAgICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWJvb2xdPVwiY29sLmRhdGFUeXBlID09PSAnYm9vbGVhbidcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiY29sLmNlbGxTdHlsZXMgfCBpZ3hDZWxsU3R5bGVzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgICAgICBbYWN0aXZlXT1cImlzQ2VsbEFjdGl2ZShjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJjZWxsSGVpZ2h0XCJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiY29sLndpZHRoXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICAgICAgW3Zpc2libGVDb2x1bW5JbmRleF09XCJjb2wudmlzaWJsZUluZGV4XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRhIHwgZGF0YU1hcHBlcjpjb2wuZmllbGQ6Z3JpZC5waXBlVHJpZ2dlcjpkYXRhW2NvbC5maWVsZF06Y29sLmhhc05lc3RlZFBhdGhcIlxuICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgICAgIFtjZWxsU2VsZWN0aW9uTW9kZV09XCJncmlkLmNlbGxTZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCI+XG4gICAgICAgIDwvaWd4LWhpZXJhcmNoaWNhbC1ncmlkLWNlbGw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgIWdyaWQuaXNQaW5uaW5nVG9TdGFydFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwaW5uZWRDZWxsc1RlbXBsYXRlOyBjb250ZXh0OiB0aGlzXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcm93U2VsZWN0b3JCYXNlVGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZF9fY2J4LXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxpZ3gtY2hlY2tib3hcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRlbGV0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlVHJhbnNpdGlvbnNdPVwiZ3JpZC5kaXNhYmxlVHJhbnNpdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cInJvd0NoZWNrYm94QXJpYUxhYmVsXCI+XG4gICAgICAgICAgICA8L2lneC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcGlubmVkQ2VsbHNUZW1wbGF0ZSBsZXQtY29sPlxuICAgICAgICA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkLWNlbGwgKm5nRm9yPVwibGV0IGNvbCBvZiBwaW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiXG4gICAgICAgICAgICBjbGFzcz1cImlneC1ncmlkX190ZCBpZ3gtZ3JpZF9fdGQtLWZ3IGlneC1ncmlkX190ZC0tcGlubmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWVkaXRlZF09XCJrZXkgfCB0cmFuc2FjdGlvblN0YXRlOmNvbC5maWVsZDpncmlkLnJvd0VkaXRhYmxlOmdyaWQudHJhbnNhY3Rpb25zOmdyaWQucGlwZVRyaWdnZXI6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGw6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLnJvd1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdyaWRJRCArICdfJyArIGNvbC5maWVsZCB8IGlneFN0cmluZ1JlcGxhY2U6Jy4nOidfJ1wiXG4gICAgICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiY29sLmRhdGFUeXBlID09PSAnbnVtYmVyJyB8fCBjb2wuZGF0YVR5cGUgPT09ICdwZXJjZW50JyB8fCBjb2wuZGF0YVR5cGUgPT09ICdjdXJyZW5jeSdcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiY29sLmNlbGxTdHlsZXMgfCBpZ3hDZWxsU3R5bGVzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgICAgICBbYWN0aXZlXT1cImlzQ2VsbEFjdGl2ZShjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICAgICBbZmlyc3RQaW5uZWRdPVwiY29sLmlzRmlyc3RQaW5uZWRcIlxuICAgICAgICAgICAgW2xhc3RQaW5uZWRdPVwiY29sLmlzTGFzdFBpbm5lZFwiXG4gICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJjZWxsSGVpZ2h0XCJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiY29sLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cImNvbC5yaWdodFBpbm5lZE9mZnNldFwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiY29sLmdldENlbGxXaWR0aCgpXCJcbiAgICAgICAgICAgIFt2aXNpYmxlQ29sdW1uSW5kZXhdPVwiY29sLnZpc2libGVJbmRleFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sLmJvZHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbGFzdFNlYXJjaEluZm9dPVwiZ3JpZC5sYXN0U2VhcmNoSW5mb1wiXG4gICAgICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNwbGF5UGlubmVkQ2hpcF09XCJzaG91bGREaXNwbGF5UGlubmVkQ2hpcChjb2wudmlzaWJsZUluZGV4KVwiPlxuICAgICAgICA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZC1jZWxsPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNULFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQU5oRTs7UUErQmMsa0JBQWEsR0FBRyxpQ0FBaUMsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLHFCQUFxQixDQUFDO1FBcUVqRDs7O1dBR0c7UUFDSSxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBRUY7OztXQUdHO1FBQ0ksYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztLQStCTDtJQWhIRzs7T0FFRztJQUNI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QUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTzVELHdCQUF3QjtzQkFEakMsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFrQy9ELGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsOEJBQThCO2dCQWFoQyxXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFJvd0RpcmVjdGl2ZSB9IGZyb20gJy4uL3Jvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SGllcmFyY2hpY2FsR3JpZENlbGxDb21wb25lbnQgfSBmcm9tICcuL2hpZXJhcmNoaWNhbC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWhpZXJhcmNoaWNhbC1ncmlkLXJvdycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpZXJhcmNoaWNhbC1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4Um93RGlyZWN0aXZlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZ3hIaWVyYXJjaGljYWxSb3dDb21wb25lbnQpIH1dXG59KVxuZXhwb3J0IGNsYXNzIElneEhpZXJhcmNoaWNhbFJvd0NvbXBvbmVudCBleHRlbmRzIElneFJvd0RpcmVjdGl2ZSB7XG4gICAgQFZpZXdDaGlsZCgnZXhwYW5kZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwdWJsaWMgZXhwYW5kZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IElneEhpZXJhcmNoaWNhbEdyaWRDZWxsQ29tcG9uZW50KSwgeyByZWFkOiBJZ3hIaWVyYXJjaGljYWxHcmlkQ2VsbENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBfY2VsbHM6IFF1ZXJ5TGlzdDxJZ3hIaWVyYXJjaGljYWxHcmlkQ2VsbENvbXBvbmVudD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEVtcHR5VGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdENvbGxhcHNlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRDb2xsYXBzZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByb3RlY3RlZCBleHBhbmRlckNsYXNzID0gJ2lneC1ncmlkX19oaWVyYXJjaGljYWwtZXhwYW5kZXInO1xuICAgIHByb3RlY3RlZCByb2xBY3Rpb25DbGFzcyA9ICdpZ3gtZ3JpZF9fdHItYWN0aW9uJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVyQ2xhc3NSZXNvbHZlZCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgJHt0aGlzLmV4cGFuZGVyQ2xhc3N9ICR7dGhpcy5yb2xBY3Rpb25DbGFzc31gXTogIXRoaXMucGlubmVkIHx8IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5leHBhbmRlckNsYXNzfS0tZW1wdHlgXTogdGhpcy5waW5uZWQgJiYgIXRoaXMuZGlzYWJsZWRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZpZXdJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCArICh0aGlzLmdyaWQucGFnaW5hdG9yPy5wYWdlIHx8IDAgKSAqICh0aGlzLmdyaWQucGFnaW5hdG9yPy5wZXJQYWdlIHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcm93IGlzIGV4cGFuZGVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBSb3dFeHBhbmRlZCA9IHRoaXMuZ3JpZDEucm93TGlzdC5maXJzdC5leHBhbmRlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZF9fdHItLWV4cGFuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkICYmICF0aGlzLnBpbm5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgICAgICByZXR1cm4gICEhdGhpcy5ncmlkLmNoaWxkTGF5b3V0S2V5cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWRfX3RyLS1oaWdobGlnaHRlZCcpXG4gICAgcHVibGljIGdldCBoaWdobGlnaHRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZCAmJiB0aGlzLmdyaWQuaGlnaGxpZ2h0ZWRSb3dJRCA9PT0gdGhpcy5rZXk7XG4gICAgfVxuXG4gICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqL1xuICAgcHVibGljIGV4cGFuZGVyQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgaGllcmFyY2hpY2FsIHJvdy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LnRvZ2dsZSgpXG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuZEVkaXQodGhpcy5ncmlkLnJvb3RHcmlkKTtcbiAgICAgICAgdGhpcy5ncmlkLmdyaWRBUEkuc2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5rZXksICF0aGlzLmV4cGFuZGVkKTtcbiAgICAgICAgdGhpcy5ncmlkLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5zZWxlY3RSb3dzKFt0aGlzLmtleV0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRlc2VsZWN0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZGVzZWxlY3RSb3dzKFt0aGlzLmtleV0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uVGVtcGxhdGUoKSB7XG4gICAgICAgIGxldCBleHBhbmRhYmxlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5oYXNDaGlsZHJlbktleSkge1xuICAgICAgICAgICAgZXhwYW5kYWJsZSA9IHRoaXMuZGF0YVt0aGlzLmdyaWQuaGFzQ2hpbGRyZW5LZXldO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXhwYW5kYWJsZSB8fCAodGhpcy5waW5uZWQgJiYgIXRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0RW1wdHlUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEV4cGFuZGVkVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdENvbGxhcHNlZFRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogY29uc2lkZXIgbW92aW5nIGludG8gQ1JVRFxuICAgIHByb3RlY3RlZCBlbmRFZGl0KGdyaWQ6IEdyaWRUeXBlKSB7XG4gICAgICAgIGlmIChncmlkLmdyaWRBUEkuY3J1ZFNlcnZpY2UuY2VsbEluRWRpdE1vZGUpIHtcbiAgICAgICAgICAgIGdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5lbmRFZGl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC5oZ3JpZEFQSS5nZXRDaGlsZEdyaWRzKHRydWUpLmZvckVhY2goZyA9PiB7XG4gICAgICAgICAgICBpZiAoZy5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGxJbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgICAgZy5ncmlkQVBJLmNydWRTZXJ2aWNlLmVuZEVkaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD0nYWRkUm93VUkgPyBhZGRUZW1wIDogZGVmYXVsdFRlbXAnPjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwYW5kZWRUZW1wbGF0ZT5cbiAgICA8aWd4LWljb24gW2FjdGl2ZV09JyFhZGRlZCc+ZXhwYW5kX21vcmU8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sbGFwc2VkVGVtcGxhdGU+XG4gICAgPGlneC1pY29uIFthY3RpdmVdPSchYWRkZWQnPmNoZXZyb25fcmlnaHQ8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlUZW1wbGF0ZT5cbiAgICA8aWd4LWljb24+PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYWRkVGVtcD5cbiAgICA8ZGl2IGNsYXNzPSdpZ3gtZ3JpZF9fdHItLWlubmVyJyBbY2xhc3MuaWd4LWdyaWRfX3RyLS1hZGQtYW5pbWF0ZV09J3RyaWdnZXJBZGRBbmltYXRpb25DbGFzcycgKGFuaW1hdGlvbmVuZCk9J2FuaW1hdGlvbkVuZEhhbmRsZXIoKSc+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9J2RlZmF1bHRUZW1wJz48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wPlxuICAgIDwhLS0gRHJhZyBpbmRpY2F0b3IgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0RyYWdnYWJsZVwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJyZXNvbHZlRHJhZ0luZGljYXRvckNsYXNzZXNcIiBbaWd4Um93RHJhZ109XCJ0aGlzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtnaG9zdFRlbXBsYXRlXT1cInRoaXMuZ3JpZC5nZXREcmFnR2hvc3RDdXN0b21UZW1wbGF0ZSgpXCIgKHBvaW50ZXJkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGhpcy5ncmlkLmRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGUgPyB0aGlzLmdyaWQuZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZSA6IHRoaXMuZ3JpZC5kcmFnSW5kaWNhdG9ySWNvbkJhc2VcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNlbGVjdCBSb3cgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dSb3dTZWxlY3RvcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19jYngtc2VsZWN0aW9uIGlneC1ncmlkX190ci1hY3Rpb25cIiAoY2xpY2spPVwib25Sb3dTZWxlY3RvckNsaWNrKCRldmVudClcIiAocG9pbnRlcmRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5yb3dTZWxlY3RvclRlbXBsYXRlID8gdGhpcy5ncmlkLnJvd1NlbGVjdG9yVGVtcGxhdGUgOiByb3dTZWxlY3RvckJhc2VUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogdmlld0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dJRDoga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VsZWN0OiBkZXNlbGVjdCB9fVwiPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFJvdyBFeHBhbmRlciAtLT5cbiAgICA8ZGl2ICAoY2xpY2spPVwiZXhwYW5kZXJDbGljaygkZXZlbnQpXCIgKG1vdXNlZG93bik9JyRldmVudC5wcmV2ZW50RGVmYXVsdCgpJyBbbmdDbGFzc109XCJleHBhbmRlckNsYXNzUmVzb2x2ZWRcIiAqbmdJZj1cImhhc0NoaWxkcmVuXCIgI2V4cGFuZGVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGhpcyB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBpbm5lZENvbHVtbnMubGVuZ3RoID4gMCAmJiBncmlkLmlzUGlubmluZ1RvU3RhcnRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwicGlubmVkQ2VsbHNUZW1wbGF0ZTsgY29udGV4dDogdGhpc1wiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgaWd4R3JpZEZvciBsZXQtY29sIFtpZ3hHcmlkRm9yT2ZdPVwidW5waW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgbGV0LWNvbEluZGV4PVwiaW5kZXhcIiBbaWd4Rm9yU2l6ZVByb3BOYW1lXT0nXCJjYWxjUGl4ZWxXaWR0aFwiJyBbaWd4Rm9yU2Nyb2xsT3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCIgW2lneEZvckNvbnRhaW5lclNpemVdPSdncmlkLnVucGlubmVkV2lkdGgnIFtpZ3hGb3JUcmFja0J5XT0nZ3JpZC50cmFja0NvbHVtbkNoYW5nZXMnICNpZ3hEaXJSZWY+XG4gICAgICAgIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQtY2VsbFxuICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZF9fdGQgaWd4LWdyaWRfX3RkLS1md1wiXG4gICAgICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJncmlkSUQgKyAnXycgKyBjb2wuZmllbGQgfCBpZ3hTdHJpbmdSZXBsYWNlOicuJzonXydcIlxuICAgICAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tbnVtYmVyXT1cImNvbC5kYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgY29sLmRhdGFUeXBlID09PSAncGVyY2VudCcgfHwgY29sLmRhdGFUeXBlID09PSAnY3VycmVuY3knXCJcbiAgICAgICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWJvb2xdPVwiY29sLmRhdGFUeXBlID09PSAnYm9vbGVhbidcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiY29sLmNlbGxTdHlsZXMgfCBpZ3hDZWxsU3R5bGVzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgICAgICBbYWN0aXZlXT1cImlzQ2VsbEFjdGl2ZShjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJjZWxsSGVpZ2h0XCJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiY29sLndpZHRoXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCJjb2wuZ2V0Q2VsbFdpZHRoKClcIlxuICAgICAgICAgICAgW3Zpc2libGVDb2x1bW5JbmRleF09XCJjb2wudmlzaWJsZUluZGV4XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJkYXRhIHwgZGF0YU1hcHBlcjpjb2wuZmllbGQ6Z3JpZC5waXBlVHJpZ2dlcjpkYXRhW2NvbC5maWVsZF06Y29sLmhhc05lc3RlZFBhdGhcIlxuICAgICAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtsYXN0U2VhcmNoSW5mb109XCJncmlkLmxhc3RTZWFyY2hJbmZvXCJcbiAgICAgICAgICAgIFtjZWxsU2VsZWN0aW9uTW9kZV09XCJncmlkLmNlbGxTZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCI+XG4gICAgICAgIDwvaWd4LWhpZXJhcmNoaWNhbC1ncmlkLWNlbGw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiYgIWdyaWQuaXNQaW5uaW5nVG9TdGFydFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwaW5uZWRDZWxsc1RlbXBsYXRlOyBjb250ZXh0OiB0aGlzXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcm93U2VsZWN0b3JCYXNlVGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZF9fY2J4LXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxpZ3gtY2hlY2tib3hcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRlbGV0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlVHJhbnNpdGlvbnNdPVwiZ3JpZC5kaXNhYmxlVHJhbnNpdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cInJvd0NoZWNrYm94QXJpYUxhYmVsXCI+XG4gICAgICAgICAgICA8L2lneC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcGlubmVkQ2VsbHNUZW1wbGF0ZSBsZXQtY29sPlxuICAgICAgICA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkLWNlbGwgKm5nRm9yPVwibGV0IGNvbCBvZiBwaW5uZWRDb2x1bW5zIHwgaWd4Tm90R3JvdXBlZFwiXG4gICAgICAgICAgICBjbGFzcz1cImlneC1ncmlkX190ZCBpZ3gtZ3JpZF9fdGQtLWZ3IGlneC1ncmlkX190ZC0tcGlubmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWVkaXRlZF09XCJrZXkgfCB0cmFuc2FjdGlvblN0YXRlOmNvbC5maWVsZDpncmlkLnJvd0VkaXRhYmxlOmdyaWQudHJhbnNhY3Rpb25zOmdyaWQucGlwZVRyaWdnZXI6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmNlbGw6Z3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLnJvd1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdyaWRJRCArICdfJyArIGNvbC5maWVsZCB8IGlneFN0cmluZ1JlcGxhY2U6Jy4nOidfJ1wiXG4gICAgICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiY29sLmRhdGFUeXBlID09PSAnbnVtYmVyJyB8fCBjb2wuZGF0YVR5cGUgPT09ICdwZXJjZW50JyB8fCBjb2wuZGF0YVR5cGUgPT09ICdjdXJyZW5jeSdcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sLmNlbGxDbGFzc2VzIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06ZGF0YTpjb2wuZmllbGQ6dmlld0luZGV4OmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiY29sLmNlbGxTdHlsZXMgfCBpZ3hDZWxsU3R5bGVzOmRhdGFbY29sLmZpZWxkXTpkYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiY29sLmVkaXRhYmxlICYmIHRoaXMuZ3JpZC5jcnVkU2VydmljZS50YXJnZXRJbkVkaXQoaW5kZXgsIGNvbC5pbmRleClcIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCJcbiAgICAgICAgICAgIFtpbnRSb3ddPVwidGhpc1wiXG4gICAgICAgICAgICBbYWN0aXZlXT1cImlzQ2VsbEFjdGl2ZShjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgICAgICBbZmlyc3RQaW5uZWRdPVwiY29sLmlzRmlyc3RQaW5uZWRcIlxuICAgICAgICAgICAgW2xhc3RQaW5uZWRdPVwiY29sLmlzTGFzdFBpbm5lZFwiXG4gICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJjZWxsSGVpZ2h0XCJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiY29sLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cImNvbC5yaWdodFBpbm5lZE9mZnNldFwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiY29sLmdldENlbGxXaWR0aCgpXCJcbiAgICAgICAgICAgIFt2aXNpYmxlQ29sdW1uSW5kZXhdPVwiY29sLnZpc2libGVJbmRleFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZGF0YSB8IGRhdGFNYXBwZXI6Y29sLmZpZWxkOmdyaWQucGlwZVRyaWdnZXI6ZGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY29sLmJvZHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbGFzdFNlYXJjaEluZm9dPVwiZ3JpZC5sYXN0U2VhcmNoSW5mb1wiXG4gICAgICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNwbGF5UGlubmVkQ2hpcF09XCJzaG91bGREaXNwbGF5UGlubmVkQ2hpcChjb2wudmlzaWJsZUluZGV4KVwiPlxuICAgICAgICA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZC1jZWxsPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -64,9 +64,9 @@ export class IgxRowIslandAPIService {
64
64
  return this.childGrids.get(rowID);
65
65
  }
66
66
  }
67
- IgxRowIslandAPIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRowIslandAPIService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- IgxRowIslandAPIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRowIslandAPIService });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRowIslandAPIService, decorators: [{
67
+ IgxRowIslandAPIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxRowIslandAPIService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ IgxRowIslandAPIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxRowIslandAPIService });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxRowIslandAPIService, decorators: [{
70
70
  type: Injectable
71
71
  }] });
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWlzbGFuZC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9oaWVyYXJjaGljYWwtZ3JpZC9yb3ctaXNsYW5kLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUdXLFdBQU0sR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUN2QyxVQUFLLEdBQXVDLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3JGLGVBQVUsR0FBa0MsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFFaEYsb0JBQWUsR0FBdUMsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDL0YsZUFBVSxHQUE0QyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztLQXNFaEg7SUFwRVUsUUFBUSxDQUFDLFNBQWdDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFnQztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxFQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxCLElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRU0sc0JBQXNCLENBQUMsU0FBZ0M7UUFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksT0FBTyxFQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBZ0M7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsWUFBb0I7UUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0saUJBQWlCLENBQUMsV0FBZ0IsRUFBRSxJQUFrQztRQUN6RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFpQjtRQUNsQyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBSztRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O21IQTVFUSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWd4SGllcmFyY2hpY2FsR3JpZENvbXBvbmVudCB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IElneFJvd0lzbGFuZENvbXBvbmVudCB9IGZyb20gJy4vcm93LWlzbGFuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4Um93SXNsYW5kQVBJU2VydmljZSB7XG4gICAgcHVibGljIHJvd0lzbGFuZDogSWd4Um93SXNsYW5kQ29tcG9uZW50O1xuICAgIHB1YmxpYyBjaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcm90ZWN0ZWQgc3RhdGU6IE1hcDxzdHJpbmcsIElneFJvd0lzbGFuZENvbXBvbmVudD4gPSBuZXcgTWFwPHN0cmluZywgSWd4Um93SXNsYW5kQ29tcG9uZW50PigpO1xuICAgIHByb3RlY3RlZCBkZXN0cm95TWFwOiBNYXA8c3RyaW5nLCBTdWJqZWN0PGJvb2xlYW4+PiA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PGJvb2xlYW4+PigpO1xuXG4gICAgcHJvdGVjdGVkIGNoaWxkUm93SXNsYW5kczogTWFwPHN0cmluZywgSWd4Um93SXNsYW5kQ29tcG9uZW50PiA9IG5ldyBNYXA8c3RyaW5nLCBJZ3hSb3dJc2xhbmRDb21wb25lbnQ+KCk7XG4gICAgcHJvdGVjdGVkIGNoaWxkR3JpZHM6ICBNYXA8YW55LCBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50PiA9IG5ldyBNYXA8YW55LCBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50PigpO1xuXG4gICAgcHVibGljIHJlZ2lzdGVyKHJvd0lzbGFuZDogSWd4Um93SXNsYW5kQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KHJvd0lzbGFuZC5pZCwgcm93SXNsYW5kKTtcbiAgICAgICAgdGhpcy5kZXN0cm95TWFwLnNldChyb3dJc2xhbmQuaWQsIG5ldyBTdWJqZWN0PGJvb2xlYW4+KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnN1YnNjcmliZShyb3dJc2xhbmQ6IElneFJvd0lzbGFuZENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnN0YXRlLmRlbGV0ZShyb3dJc2xhbmQuaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQoaWQ6IHN0cmluZyk6IElneFJvd0lzbGFuZENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmdldChpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc2V0KGlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lNYXAuZGVsZXRlKGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXQob2xkSWQ6IHN0cmluZywgbmV3SWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBkZXN0cm95ID0gdGhpcy5kZXN0cm95TWFwLmdldChvbGRJZCk7XG4gICAgICAgIGNvbnN0IHJvd0lzbGFuZCA9IHRoaXMuZ2V0KG9sZElkKTtcblxuICAgICAgICB0aGlzLnVuc2V0KG9sZElkKTtcblxuICAgICAgICBpZiAocm93SXNsYW5kKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNldChuZXdJZCwgcm93SXNsYW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXN0cm95KSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lNYXAuc2V0KG5ld0lkLCBkZXN0cm95KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckNoaWxkUm93SXNsYW5kKHJvd0lzbGFuZDogSWd4Um93SXNsYW5kQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuY2hpbGRSb3dJc2xhbmRzLnNldChyb3dJc2xhbmQua2V5LCByb3dJc2xhbmQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lNYXAuc2V0KHJvd0lzbGFuZC5rZXksIG5ldyBTdWJqZWN0PGJvb2xlYW4+KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNldENoaWxkUm93SXNsYW5kKHJvd0lzbGFuZDogSWd4Um93SXNsYW5kQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuY2hpbGRSb3dJc2xhbmRzLmRlbGV0ZShyb3dJc2xhbmQua2V5KTtcbiAgICAgICAgdGhpcy5kZXN0cm95TWFwLmRlbGV0ZShyb3dJc2xhbmQua2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRSb3dJc2xhbmQocm93SXNsYW5kS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRSb3dJc2xhbmRzLmdldChyb3dJc2xhbmRLZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckNoaWxkR3JpZChwYXJlbnRSb3dJRDogYW55LCBncmlkOiBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuY2hpbGRHcmlkcy5zZXQocGFyZW50Um93SUQsIGdyaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZEdyaWRzKGluRGVwdGg/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBhbGxDaGlsZHJlbiA9IFtdO1xuICAgICAgICB0aGlzLmNoaWxkR3JpZHMuZm9yRWFjaCgoZ3JpZCkgPT4ge1xuICAgICAgICAgICAgYWxsQ2hpbGRyZW4ucHVzaChncmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbkRlcHRoKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkUm93SXNsYW5kcy5mb3JFYWNoKChsYXlvdXQpID0+IHtcbiAgICAgICAgICAgICAgICBhbGxDaGlsZHJlbiA9IGFsbENoaWxkcmVuLmNvbmNhdChsYXlvdXQucm93SXNsYW5kQVBJLmdldENoaWxkR3JpZHMoaW5EZXB0aCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWxsQ2hpbGRyZW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoaWxkR3JpZEJ5SUQocm93SUQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRHcmlkcy5nZXQocm93SUQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -299,13 +299,13 @@ export class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
299
299
  grid.onRowIslandChange();
300
300
  }
301
301
  }
302
- IgxRowIslandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRowIslandComponent, deps: [{ token: i1.IgxGridSelectionService }, { token: i2.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i3.IgxFlatTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.NgModuleRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }, { token: i4.IgxHierarchicalGridNavigationService }, { token: i5.IgxFilteringService }, { token: IgxOverlayService }, { token: i6.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: i7.IgxRowIslandAPIService }, { token: LOCALE_ID }, { token: i8.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component });
303
- IgxRowIslandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxRowIslandComponent, selector: "igx-row-island", inputs: { key: "key", expandChildren: "expandChildren" }, outputs: { layoutChange: "layoutChange", gridCreated: "gridCreated", gridInitialized: "gridInitialized" }, providers: [
302
+ IgxRowIslandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxRowIslandComponent, deps: [{ token: i1.IgxGridSelectionService }, { token: i2.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i3.IgxFlatTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.NgModuleRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }, { token: i4.IgxHierarchicalGridNavigationService }, { token: i5.IgxFilteringService }, { token: IgxOverlayService }, { token: i6.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: i7.IgxRowIslandAPIService }, { token: LOCALE_ID }, { token: i8.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component });
303
+ IgxRowIslandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxRowIslandComponent, selector: "igx-row-island", inputs: { key: "key", expandChildren: "expandChildren" }, outputs: { layoutChange: "layoutChange", gridCreated: "gridCreated", gridInitialized: "gridInitialized" }, providers: [
304
304
  IgxRowIslandAPIService,
305
305
  IgxFilteringService,
306
306
  IgxGridSelectionService
307
307
  ], queries: [{ propertyName: "islandToolbarTemplate", first: true, predicate: IgxGridToolbarDirective, descendants: true, read: TemplateRef }, { propertyName: "islandPaginatorTemplate", first: true, predicate: IgxPaginatorDirective, descendants: true, read: TemplateRef }, { propertyName: "children", predicate: IgxRowIslandComponent, read: IgxRowIslandComponent }, { propertyName: "childColumns", predicate: IgxColumnComponent, read: IgxColumnComponent }, { propertyName: "actionStrips", predicate: IgxActionStripComponent, read: IgxActionStripComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxRowIslandComponent, decorators: [{
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxRowIslandComponent, decorators: [{
309
309
  type: Component,
310
310
  args: [{
311
311
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -116,9 +116,9 @@ export class IgxColumnMovingDragDirective extends IgxDragDirective {
116
116
  }
117
117
  }
118
118
  }
119
- IgxColumnMovingDragDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingDragDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.IgxColumnMovingService }, { token: i2.PlatformUtil }], target: i0.ɵɵFactoryTarget.Directive });
120
- IgxColumnMovingDragDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxColumnMovingDragDirective, selector: "[igxColumnMovingDrag]", inputs: { column: ["igxColumnMovingDrag", "column"] }, usesInheritance: true, ngImport: i0 });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingDragDirective, decorators: [{
119
+ IgxColumnMovingDragDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingDragDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.IgxColumnMovingService }, { token: i2.PlatformUtil }], target: i0.ɵɵFactoryTarget.Directive });
120
+ IgxColumnMovingDragDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxColumnMovingDragDirective, selector: "[igxColumnMovingDrag]", inputs: { column: ["igxColumnMovingDrag", "column"] }, usesInheritance: true, ngImport: i0 });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingDragDirective, decorators: [{
122
122
  type: Directive,
123
123
  args: [{ selector: '[igxColumnMovingDrag]' }]
124
124
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.IgxColumnMovingService }, { type: i2.PlatformUtil }]; }, propDecorators: { column: [{
@@ -140,9 +140,9 @@ export class IgxColumnMovingDropDirective extends IgxDropDirective {
140
140
  }
141
141
  }
142
142
  }
143
- IgxColumnMovingDropDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingDropDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.IgxColumnMovingService }], target: i0.ɵɵFactoryTarget.Directive });
144
- IgxColumnMovingDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: { data: ["igxColumnMovingDrop", "data"] }, usesInheritance: true, ngImport: i0 });
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingDropDirective, decorators: [{
143
+ IgxColumnMovingDropDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingDropDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.IgxColumnMovingService }], target: i0.ɵɵFactoryTarget.Directive });
144
+ IgxColumnMovingDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxColumnMovingDropDirective, selector: "[igxColumnMovingDrop]", inputs: { data: ["igxColumnMovingDrop", "data"] }, usesInheritance: true, ngImport: i0 });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingDropDirective, decorators: [{
146
146
  type: Directive,
147
147
  args: [{ selector: '[igxColumnMovingDrop]' }]
148
148
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.IgxColumnMovingService }]; }, propDecorators: { data: [{
@@ -6,12 +6,12 @@ export { IgxColumnMovingDragDirective } from './moving.drag.directive';
6
6
  export { IgxColumnMovingDropDirective } from './moving.drop.directive';
7
7
  export class IgxColumnMovingModule {
8
8
  }
9
- IgxColumnMovingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- IgxColumnMovingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingModule, declarations: [IgxColumnMovingDropDirective,
9
+ IgxColumnMovingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ IgxColumnMovingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingModule, declarations: [IgxColumnMovingDropDirective,
11
11
  IgxColumnMovingDragDirective], exports: [IgxColumnMovingDropDirective,
12
12
  IgxColumnMovingDragDirective] });
13
- IgxColumnMovingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingModule });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingModule, decorators: [{
13
+ IgxColumnMovingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingModule });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [
@@ -15,9 +15,9 @@ export var DropPosition;
15
15
  */
16
16
  export class IgxColumnMovingService {
17
17
  }
18
- IgxColumnMovingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
- IgxColumnMovingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingService, providedIn: 'root' });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxColumnMovingService, decorators: [{
18
+ IgxColumnMovingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ IgxColumnMovingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxColumnMovingService, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{ providedIn: 'root' }]
23
23
  }] });
@@ -78,9 +78,9 @@ export class IgxResizeHandleDirective {
78
78
  this.column.grid.cdr.detectChanges();
79
79
  }
80
80
  }
81
- IgxResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxResizeHandleDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.IgxColumnResizingService }], target: i0.ɵɵFactoryTarget.Directive });
82
- IgxResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxResizeHandleDirective, selector: "[igxResizeHandle]", inputs: { column: ["igxResizeHandle", "column"] }, host: { listeners: { "mouseover": "onMouseOver()", "dblclick": "onDoubleClick()" } }, ngImport: i0 });
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxResizeHandleDirective, decorators: [{
81
+ IgxResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxResizeHandleDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.IgxColumnResizingService }], target: i0.ɵɵFactoryTarget.Directive });
82
+ IgxResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxResizeHandleDirective, selector: "[igxResizeHandle]", inputs: { column: ["igxResizeHandle", "column"] }, host: { listeners: { "mouseover": "onMouseOver()", "dblclick": "onDoubleClick()" } }, ngImport: i0 });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxResizeHandleDirective, decorators: [{
84
84
  type: Directive,
85
85
  args: [{ selector: '[igxResizeHandle]' }]
86
86
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.IgxColumnResizingService }]; }, propDecorators: { column: [{