igniteui-angular 17.0.4 → 17.0.5

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 (397) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +3 -3
  2. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  3. package/esm2022/lib/accordion/public_api.mjs +12 -3
  4. package/esm2022/lib/action-strip/action-strip.component.mjs +6 -6
  5. package/esm2022/lib/action-strip/action-strip.module.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
  7. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +3 -3
  8. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +3 -3
  9. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
  10. package/esm2022/lib/action-strip/public_api.mjs +3 -2
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/badge/badge.component.mjs +3 -3
  14. package/esm2022/lib/badge/badge.module.mjs +4 -4
  15. package/esm2022/lib/banner/banner.component.mjs +3 -3
  16. package/esm2022/lib/banner/banner.directives.mjs +3 -3
  17. package/esm2022/lib/banner/banner.module.mjs +4 -4
  18. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +3 -3
  19. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar-base.mjs +3 -3
  21. package/esm2022/lib/calendar/calendar.component.mjs +3 -3
  22. package/esm2022/lib/calendar/calendar.directives.mjs +15 -15
  23. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/day-item.component.mjs +3 -3
  25. package/esm2022/lib/calendar/days-view/days-view.component.mjs +3 -3
  26. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
  27. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +3 -3
  28. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
  29. package/esm2022/lib/calendar/months-view/months-view.component.mjs +3 -3
  30. package/esm2022/lib/calendar/months-view.pipe.mjs +6 -6
  31. package/esm2022/lib/calendar/years-view/years-view.component.mjs +6 -6
  32. package/esm2022/lib/card/card.component.mjs +27 -27
  33. package/esm2022/lib/card/card.module.mjs +4 -4
  34. package/esm2022/lib/carousel/carousel.component.mjs +6 -6
  35. package/esm2022/lib/carousel/carousel.directives.mjs +9 -9
  36. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  37. package/esm2022/lib/carousel/slide.component.mjs +3 -3
  38. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  39. package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
  40. package/esm2022/lib/chips/chip.component.mjs +3 -3
  41. package/esm2022/lib/chips/chips-area.component.mjs +3 -3
  42. package/esm2022/lib/chips/chips.module.mjs +4 -4
  43. package/esm2022/lib/combo/combo-add-item.component.mjs +3 -3
  44. package/esm2022/lib/combo/combo-dropdown.component.mjs +3 -3
  45. package/esm2022/lib/combo/combo-item.component.mjs +3 -3
  46. package/esm2022/lib/combo/combo.api.mjs +3 -3
  47. package/esm2022/lib/combo/combo.common.mjs +3 -3
  48. package/esm2022/lib/combo/combo.component.mjs +3 -3
  49. package/esm2022/lib/combo/combo.directives.mjs +24 -24
  50. package/esm2022/lib/combo/combo.module.mjs +4 -4
  51. package/esm2022/lib/combo/combo.pipes.mjs +6 -6
  52. package/esm2022/lib/core/density.mjs +3 -3
  53. package/esm2022/lib/core/navigation/directives.mjs +6 -6
  54. package/esm2022/lib/core/navigation/nav.service.mjs +3 -3
  55. package/esm2022/lib/core/selection.mjs +3 -3
  56. package/esm2022/lib/core/touch.mjs +3 -3
  57. package/esm2022/lib/core/utils.mjs +3 -3
  58. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
  59. package/esm2022/lib/date-common/picker-base.directive.mjs +3 -3
  60. package/esm2022/lib/date-common/picker-icons.common.mjs +9 -9
  61. package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
  62. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
  64. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +3 -3
  65. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
  66. package/esm2022/lib/dialog/dialog.component.mjs +3 -3
  67. package/esm2022/lib/dialog/dialog.directives.mjs +6 -6
  68. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  69. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +3 -3
  70. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +4 -4
  71. package/esm2022/lib/directives/button/button.directive.mjs +3 -3
  72. package/esm2022/lib/directives/button/button.module.mjs +4 -4
  73. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +3 -3
  74. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +4 -4
  75. package/esm2022/lib/directives/divider/divider.directive.mjs +3 -3
  76. package/esm2022/lib/directives/divider/divider.module.mjs +4 -4
  77. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +12 -12
  78. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +4 -4
  79. package/esm2022/lib/directives/filter/filter.directive.mjs +6 -6
  80. package/esm2022/lib/directives/filter/filter.module.mjs +4 -4
  81. package/esm2022/lib/directives/focus/focus.directive.mjs +3 -3
  82. package/esm2022/lib/directives/focus/focus.module.mjs +4 -4
  83. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +3 -3
  84. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/base.helper.component.mjs +3 -3
  86. package/esm2022/lib/directives/for-of/display.container.mjs +3 -3
  87. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -8
  88. package/esm2022/lib/directives/for-of/for_of.module.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -6
  90. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
  91. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +3 -3
  92. package/esm2022/lib/directives/form-control/form-control.directive.mjs +3 -3
  93. package/esm2022/lib/directives/form-control/form-control.module.mjs +4 -4
  94. package/esm2022/lib/directives/hint/hint.directive.mjs +3 -3
  95. package/esm2022/lib/directives/input/input.directive.mjs +3 -3
  96. package/esm2022/lib/directives/label/label.directive.mjs +3 -3
  97. package/esm2022/lib/directives/layout/layout.directive.mjs +6 -6
  98. package/esm2022/lib/directives/layout/layout.module.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +3 -3
  100. package/esm2022/lib/directives/mask/mask.directive.mjs +3 -3
  101. package/esm2022/lib/directives/mask/mask.module.mjs +4 -4
  102. package/esm2022/lib/directives/notification/notifications.directive.mjs +3 -3
  103. package/esm2022/lib/directives/prefix/prefix.directive.mjs +3 -3
  104. package/esm2022/lib/directives/radio/radio-group.directive.mjs +3 -3
  105. package/esm2022/lib/directives/radio/radio-group.module.mjs +4 -4
  106. package/esm2022/lib/directives/ripple/ripple.directive.mjs +3 -3
  107. package/esm2022/lib/directives/ripple/ripple.module.mjs +4 -4
  108. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +3 -3
  109. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +4 -4
  110. package/esm2022/lib/directives/suffix/suffix.directive.mjs +3 -3
  111. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +3 -3
  112. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +3 -3
  113. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +4 -4
  114. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +3 -3
  115. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +4 -4
  116. package/esm2022/lib/directives/toggle/toggle.directive.mjs +9 -9
  117. package/esm2022/lib/directives/toggle/toggle.module.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +3 -3
  119. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +3 -3
  120. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +3 -3
  121. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-group.component.mjs +3 -3
  123. package/esm2022/lib/drop-down/drop-down-item.base.mjs +3 -3
  124. package/esm2022/lib/drop-down/drop-down-item.component.mjs +3 -3
  125. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
  126. package/esm2022/lib/drop-down/drop-down.base.mjs +3 -3
  127. package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
  128. package/esm2022/lib/drop-down/drop-down.module.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
  130. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +3 -3
  131. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +3 -3
  132. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +3 -3
  133. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
  134. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +4 -4
  135. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +3 -3
  136. package/esm2022/lib/grids/api.service.mjs +3 -3
  137. package/esm2022/lib/grids/cell.component.mjs +3 -3
  138. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
  139. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +12 -12
  140. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
  141. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
  142. package/esm2022/lib/grids/columns/column-group.component.mjs +3 -3
  143. package/esm2022/lib/grids/columns/column-layout.component.mjs +3 -3
  144. package/esm2022/lib/grids/columns/column.component.mjs +3 -3
  145. package/esm2022/lib/grids/columns/templates.directive.mjs +24 -24
  146. package/esm2022/lib/grids/columns/validators.directive.mjs +21 -21
  147. package/esm2022/lib/grids/common/crud.service.mjs +3 -3
  148. package/esm2022/lib/grids/common/pipes.mjs +54 -54
  149. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
  151. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  152. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +9 -9
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
  165. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  166. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +3 -3
  167. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +3 -3
  168. package/esm2022/lib/grids/grid/grid-api.service.mjs +3 -3
  169. package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
  170. package/esm2022/lib/grids/grid/grid-validation.service.mjs +3 -3
  171. package/esm2022/lib/grids/grid/grid.component.mjs +3 -3
  172. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +3 -3
  173. package/esm2022/lib/grids/grid/grid.module.mjs +4 -4
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +12 -12
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +3 -3
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +3 -3
  177. package/esm2022/lib/grids/grid/public_api.mjs +86 -6
  178. package/esm2022/lib/grids/grid-base.directive.mjs +3 -3
  179. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
  180. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +3 -3
  181. package/esm2022/lib/grids/grid-navigation.service.mjs +3 -3
  182. package/esm2022/lib/grids/grid.common.mjs +3 -3
  183. package/esm2022/lib/grids/grid.directives.mjs +33 -33
  184. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +15 -15
  185. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
  186. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +6 -6
  187. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +3 -3
  188. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +3 -3
  189. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +3 -3
  190. package/esm2022/lib/grids/headers/grid-header.component.mjs +3 -3
  191. package/esm2022/lib/grids/headers/pipes.mjs +9 -9
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +3 -3
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +6 -6
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
  199. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
  200. package/esm2022/lib/grids/hierarchical-grid/public_api.mjs +81 -7
  201. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
  202. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +3 -3
  203. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
  204. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +3 -3
  205. package/esm2022/lib/grids/moving/moving.service.mjs +3 -3
  206. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +3 -3
  207. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +3 -3
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +3 -3
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +3 -3
  210. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +3 -3
  211. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +30 -30
  213. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
  214. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +3 -3
  215. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +3 -3
  216. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +3 -3
  217. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
  218. package/esm2022/lib/grids/pivot-grid/public_api.mjs +70 -3
  219. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +3 -3
  220. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
  221. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +3 -3
  222. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +3 -3
  223. package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
  224. package/esm2022/lib/grids/resizing/resizer.directive.mjs +3 -3
  225. package/esm2022/lib/grids/resizing/resizing.service.mjs +3 -3
  226. package/esm2022/lib/grids/row-drag.directive.mjs +9 -9
  227. package/esm2022/lib/grids/row.directive.mjs +3 -3
  228. package/esm2022/lib/grids/selection/drag-select.directive.mjs +3 -3
  229. package/esm2022/lib/grids/selection/row-selectors.mjs +9 -9
  230. package/esm2022/lib/grids/selection/selection.service.mjs +3 -3
  231. package/esm2022/lib/grids/state.directive.mjs +6 -6
  232. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
  233. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +3 -3
  234. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +3 -3
  235. package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
  236. package/esm2022/lib/grids/toolbar/common.mjs +15 -15
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
  238. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +3 -3
  239. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
  240. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
  241. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +6 -6
  242. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +3 -3
  243. package/esm2022/lib/grids/tree-grid/public_api.mjs +81 -7
  244. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
  245. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
  246. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
  247. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
  248. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
  249. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
  250. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
  251. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
  252. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
  253. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
  254. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
  255. package/esm2022/lib/icon/icon.component.mjs +3 -3
  256. package/esm2022/lib/icon/icon.module.mjs +4 -4
  257. package/esm2022/lib/icon/icon.service.mjs +3 -3
  258. package/esm2022/lib/input-group/input-group.component.mjs +3 -3
  259. package/esm2022/lib/input-group/input-group.module.mjs +4 -4
  260. package/esm2022/lib/list/list-item.component.mjs +3 -3
  261. package/esm2022/lib/list/list.common.mjs +15 -15
  262. package/esm2022/lib/list/list.component.mjs +18 -18
  263. package/esm2022/lib/list/list.module.mjs +4 -4
  264. package/esm2022/lib/navbar/navbar.component.mjs +9 -9
  265. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  266. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +3 -3
  267. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +9 -9
  268. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
  269. package/esm2022/lib/paginator/paginator-interfaces.mjs +3 -3
  270. package/esm2022/lib/paginator/paginator.component.mjs +12 -12
  271. package/esm2022/lib/paginator/paginator.module.mjs +4 -4
  272. package/esm2022/lib/progressbar/progressbar.common.mjs +6 -6
  273. package/esm2022/lib/progressbar/progressbar.component.mjs +9 -9
  274. package/esm2022/lib/progressbar/progressbar.module.mjs +4 -4
  275. package/esm2022/lib/query-builder/query-builder-header.component.mjs +3 -3
  276. package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
  277. package/esm2022/lib/query-builder/query-builder.module.mjs +4 -4
  278. package/esm2022/lib/radio/radio.component.mjs +3 -3
  279. package/esm2022/lib/select/select-group.component.mjs +3 -3
  280. package/esm2022/lib/select/select-item.component.mjs +3 -3
  281. package/esm2022/lib/select/select-navigation.directive.mjs +3 -3
  282. package/esm2022/lib/select/select.component.mjs +12 -12
  283. package/esm2022/lib/select/select.module.mjs +4 -4
  284. package/esm2022/lib/services/animation/angular-animation-service.mjs +3 -3
  285. package/esm2022/lib/services/csv/csv-exporter.mjs +3 -3
  286. package/esm2022/lib/services/direction/directionality.mjs +3 -3
  287. package/esm2022/lib/services/excel/excel-exporter.mjs +3 -3
  288. package/esm2022/lib/services/overlay/overlay.mjs +3 -3
  289. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +6 -6
  290. package/esm2022/lib/simple-combo/simple-combo.component.mjs +3 -3
  291. package/esm2022/lib/simple-combo/simple-combo.module.mjs +4 -4
  292. package/esm2022/lib/slider/label/thumb-label.component.mjs +3 -3
  293. package/esm2022/lib/slider/slider.common.mjs +9 -9
  294. package/esm2022/lib/slider/slider.component.mjs +3 -3
  295. package/esm2022/lib/slider/slider.module.mjs +4 -4
  296. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +3 -3
  297. package/esm2022/lib/slider/ticks/tick.pipe.mjs +3 -3
  298. package/esm2022/lib/slider/ticks/ticks.component.mjs +3 -3
  299. package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
  300. package/esm2022/lib/snackbar/snackbar.module.mjs +4 -4
  301. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +3 -3
  302. package/esm2022/lib/splitter/splitter.component.mjs +6 -6
  303. package/esm2022/lib/splitter/splitter.module.mjs +4 -4
  304. package/esm2022/lib/stepper/step/step.component.mjs +3 -3
  305. package/esm2022/lib/stepper/stepper.component.mjs +3 -3
  306. package/esm2022/lib/stepper/stepper.directive.mjs +21 -21
  307. package/esm2022/lib/stepper/stepper.module.mjs +4 -4
  308. package/esm2022/lib/stepper/stepper.service.mjs +3 -3
  309. package/esm2022/lib/switch/switch.component.mjs +3 -3
  310. package/esm2022/lib/switch/switch.module.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
  314. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +3 -3
  315. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
  316. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
  317. package/esm2022/lib/tabs/tab-content.directive.mjs +3 -3
  318. package/esm2022/lib/tabs/tab-header.directive.mjs +3 -3
  319. package/esm2022/lib/tabs/tab-item.directive.mjs +3 -3
  320. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +3 -3
  321. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +3 -3
  322. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +3 -3
  323. package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
  324. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +6 -6
  325. package/esm2022/lib/tabs/tabs/tabs.module.mjs +4 -4
  326. package/esm2022/lib/tabs/tabs.directive.mjs +3 -3
  327. package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
  328. package/esm2022/lib/time-picker/time-picker.directives.mjs +6 -6
  329. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  330. package/esm2022/lib/time-picker/time-picker.pipes.mjs +6 -6
  331. package/esm2022/lib/toast/toast.component.mjs +3 -3
  332. package/esm2022/lib/toast/toast.module.mjs +4 -4
  333. package/esm2022/lib/tree/tree-navigation.service.mjs +3 -3
  334. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +6 -6
  335. package/esm2022/lib/tree/tree-selection.service.mjs +3 -3
  336. package/esm2022/lib/tree/tree.component.mjs +9 -9
  337. package/esm2022/lib/tree/tree.module.mjs +4 -4
  338. package/esm2022/lib/tree/tree.service.mjs +3 -3
  339. package/fesm2022/igniteui-angular.mjs +1875 -1582
  340. package/fesm2022/igniteui-angular.mjs.map +1 -1
  341. package/migrations/common/ServerHost.d.ts +1 -1
  342. package/migrations/common/UpdateChanges.d.ts +1 -1
  343. package/migrations/common/UpdateChanges.js +4 -4
  344. package/migrations/common/filterSourceDirs.d.ts +1 -1
  345. package/migrations/common/tsUtils.d.ts +2 -3
  346. package/migrations/common/tsUtils.js +1 -5
  347. package/migrations/common/util.d.ts +4 -3
  348. package/migrations/common/util.js +6 -3
  349. package/migrations/migration-collection.json +1 -0
  350. package/migrations/update-10_1_0/index.d.ts +1 -1
  351. package/migrations/update-10_2_0/index.d.ts +1 -1
  352. package/migrations/update-11_0_0/index.d.ts +1 -1
  353. package/migrations/update-11_0_0/index.js +2 -1
  354. package/migrations/update-11_1_0/index.d.ts +2 -2
  355. package/migrations/update-12_0_0/index.d.ts +1 -1
  356. package/migrations/update-12_0_0/index.js +2 -1
  357. package/migrations/update-12_1_0/index.d.ts +1 -1
  358. package/migrations/update-12_1_0/index.js +2 -1
  359. package/migrations/update-13_0_0/index.d.ts +2 -2
  360. package/migrations/update-13_0_0/index.js +2 -1
  361. package/migrations/update-13_1_0/index.d.ts +1 -1
  362. package/migrations/update-13_1_0/index.js +2 -1
  363. package/migrations/update-13_2_0/index.d.ts +1 -1
  364. package/migrations/update-14_1_0/index.d.ts +1 -1
  365. package/migrations/update-15_0_0/index.d.ts +1 -1
  366. package/migrations/update-15_0_11/index.d.ts +1 -1
  367. package/migrations/update-15_0_4/index.d.ts +1 -1
  368. package/migrations/update-15_1_0/index.d.ts +2 -2
  369. package/migrations/update-15_1_0/index.js +2 -1
  370. package/migrations/update-16_0_0/index.d.ts +1 -1
  371. package/migrations/update-16_1_0/index.d.ts +1 -1
  372. package/migrations/update-16_1_0/index.js +2 -1
  373. package/migrations/update-17_0_0/index.d.ts +1 -1
  374. package/migrations/update-17_0_0/index.js +2 -1
  375. package/migrations/update-6/index.d.ts +1 -1
  376. package/migrations/update-6_01/index.d.ts +1 -1
  377. package/migrations/update-6_02/index.d.ts +1 -1
  378. package/migrations/update-6_1/index.d.ts +1 -1
  379. package/migrations/update-6_2/index.d.ts +1 -1
  380. package/migrations/update-6_2_1/index.d.ts +1 -1
  381. package/migrations/update-7_0_2/index.d.ts +1 -1
  382. package/migrations/update-7_2_0/index.d.ts +1 -1
  383. package/migrations/update-7_3_4/index.d.ts +1 -1
  384. package/migrations/update-8_2_0/index.d.ts +1 -1
  385. package/migrations/update-8_2_3/index.d.ts +1 -1
  386. package/migrations/update-8_2_6/index.d.ts +1 -1
  387. package/migrations/update-9_0_0/index.d.ts +1 -1
  388. package/migrations/update-9_0_1/index.d.ts +1 -1
  389. package/migrations/update-9_1_0/index.d.ts +1 -1
  390. package/package.json +1 -1
  391. package/schematics/collection.json +1 -0
  392. package/schematics/ng-add/add-normalize.d.ts +1 -1
  393. package/schematics/ng-add/index.d.ts +2 -2
  394. package/schematics/tsconfig.tsbuildinfo +1 -1
  395. package/schematics/utils/dependency-handler.d.ts +2 -2
  396. package/schematics/utils/package-handler.d.ts +1 -1
  397. package/schematics/utils/util.d.ts +1 -1
@@ -1,7 +1,12 @@
1
- import { IGX_GRID_COMMON_DIRECTIVES, IGX_GRID_VALIDATION_DIRECTIVES, IgxRowAddTextDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective } from '../public_api';
1
+ import { IgxRowAddTextDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective } from '../public_api';
2
2
  import { IgxGridComponent } from './grid.component';
3
3
  import { IgxGridDetailTemplateDirective, IgxGroupByRowTemplateDirective } from '../grid.directives';
4
- import { IGX_PAGINATOR_DIRECTIVES } from '../../paginator/public_api';
4
+ /* Imports that cannot be resolved from IGX_GRID_COMMON_DIRECTIVES spread
5
+ NOTE: Do not remove! Issue: https://github.com/IgniteUI/igniteui-angular/issues/13310
6
+ */
7
+ /* eslint-disable @typescript-eslint/no-unused-vars */
8
+ import { IgxRowDirective, IgxGridFooterComponent, IgxAdvancedFilteringDialogComponent, IgxHeaderCollapsedIndicatorDirective, IgxHeaderExpandedIndicatorDirective, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective, IgxExcelStyleHeaderIconDirective, IgxDragIndicatorIconDirective, IgxRowDragGhostDirective, IgxGridStateDirective, IgxGridHeaderComponent, IgxGridHeaderGroupComponent, IgxGridHeaderRowComponent, IgxFilterCellTemplateDirective, IgxSummaryTemplateDirective, IgxCellTemplateDirective, IgxCellValidationErrorDirective, IgxCellHeaderTemplateDirective, IgxCellFooterTemplateDirective, IgxCellEditorTemplateDirective, IgxCollapsibleIndicatorTemplateDirective, IgxColumnComponent, IgxColumnGroupComponent, IgxColumnLayoutComponent, IgxColumnRequiredValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnMaxValidatorDirective, IgxColumnEmailValidatorDirective, IgxColumnMinLengthValidatorDirective, IgxColumnMaxLengthValidatorDirective, IgxColumPatternValidatorDirective, IgxColumnActionsComponent, IgxColumnHidingDirective, IgxColumnPinningDirective, IgxRowSelectorDirective, IgxGroupByRowSelectorDirective, IgxHeadSelectorDirective, IgxCSVTextDirective, IgxExcelTextDirective, IgxGridToolbarActionsComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxGridToolbarDirective, IgxGridExcelStyleFilteringComponent, IgxExcelStyleHeaderComponent, IgxExcelStyleSortingComponent, IgxExcelStylePinningComponent, IgxExcelStyleHidingComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleClearFiltersComponent, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleMovingComponent, IgxExcelStyleSearchComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleLoadingValuesTemplateDirective } from "../public_api";
9
+ import { IgxPaginatorComponent, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorContentDirective, IgxPaginatorDirective } from '../../paginator/public_api';
5
10
  export * from './grid.component';
6
11
  /* NOTE: Grid directives collection for ease-of-use import in standalone components scenario */
7
12
  export const IGX_GRID_DIRECTIVES = [
@@ -12,8 +17,83 @@ export const IGX_GRID_DIRECTIVES = [
12
17
  IgxRowEditActionsDirective,
13
18
  IgxRowEditTextDirective,
14
19
  IgxRowEditTabStopDirective,
15
- ...IGX_GRID_COMMON_DIRECTIVES,
16
- ...IGX_GRID_VALIDATION_DIRECTIVES,
17
- ...IGX_PAGINATOR_DIRECTIVES
20
+ // IGX_GRID_COMMON_DIRECTIVES:
21
+ IgxRowDirective,
22
+ IgxGridFooterComponent,
23
+ IgxAdvancedFilteringDialogComponent,
24
+ IgxRowExpandedIndicatorDirective,
25
+ IgxRowCollapsedIndicatorDirective,
26
+ IgxHeaderExpandedIndicatorDirective,
27
+ IgxHeaderCollapsedIndicatorDirective,
28
+ IgxExcelStyleHeaderIconDirective,
29
+ IgxSortAscendingHeaderIconDirective,
30
+ IgxSortDescendingHeaderIconDirective,
31
+ IgxSortHeaderIconDirective,
32
+ IgxDragIndicatorIconDirective,
33
+ IgxRowDragGhostDirective,
34
+ IgxGridStateDirective,
35
+ // IGX_GRID_HEADERS_DIRECTIVES:
36
+ IgxGridHeaderComponent,
37
+ IgxGridHeaderGroupComponent,
38
+ IgxGridHeaderRowComponent,
39
+ // IGX_GRID_COLUMN_DIRECTIVES:
40
+ IgxFilterCellTemplateDirective,
41
+ IgxSummaryTemplateDirective,
42
+ IgxCellTemplateDirective,
43
+ IgxCellValidationErrorDirective,
44
+ IgxCellHeaderTemplateDirective,
45
+ IgxCellFooterTemplateDirective,
46
+ IgxCellEditorTemplateDirective,
47
+ IgxCollapsibleIndicatorTemplateDirective,
48
+ IgxColumnComponent,
49
+ IgxColumnGroupComponent,
50
+ IgxColumnLayoutComponent,
51
+ // IGX_GRID_COLUMN_ACTIONS_DIRECTIVES:
52
+ IgxColumnActionsComponent,
53
+ IgxColumnHidingDirective,
54
+ IgxColumnPinningDirective,
55
+ // IGX_GRID_SELECTION_DIRECTIVES:
56
+ IgxRowSelectorDirective,
57
+ IgxGroupByRowSelectorDirective,
58
+ IgxHeadSelectorDirective,
59
+ // IGX_GRID_TOOLBAR_DIRECTIVES:
60
+ IgxCSVTextDirective,
61
+ IgxExcelTextDirective,
62
+ IgxGridToolbarActionsComponent,
63
+ IgxGridToolbarAdvancedFilteringComponent,
64
+ IgxGridToolbarComponent,
65
+ IgxGridToolbarExporterComponent,
66
+ IgxGridToolbarHidingComponent,
67
+ IgxGridToolbarPinningComponent,
68
+ IgxGridToolbarTitleComponent,
69
+ IgxGridToolbarDirective,
70
+ // IGX_GRID_EXCEL_STYLE_FILTER_DIRECTIVES:
71
+ IgxGridExcelStyleFilteringComponent,
72
+ IgxExcelStyleHeaderComponent,
73
+ IgxExcelStyleSortingComponent,
74
+ IgxExcelStylePinningComponent,
75
+ IgxExcelStyleHidingComponent,
76
+ IgxExcelStyleSelectingComponent,
77
+ IgxExcelStyleClearFiltersComponent,
78
+ IgxExcelStyleConditionalFilterComponent,
79
+ IgxExcelStyleMovingComponent,
80
+ IgxExcelStyleSearchComponent,
81
+ IgxExcelStyleColumnOperationsTemplateDirective,
82
+ IgxExcelStyleFilterOperationsTemplateDirective,
83
+ IgxExcelStyleLoadingValuesTemplateDirective,
84
+ // IGX_GRID_VALIDATION_DIRECTIVES:
85
+ IgxColumnRequiredValidatorDirective,
86
+ IgxColumnMinValidatorDirective,
87
+ IgxColumnMaxValidatorDirective,
88
+ IgxColumnEmailValidatorDirective,
89
+ IgxColumnMinLengthValidatorDirective,
90
+ IgxColumnMaxLengthValidatorDirective,
91
+ IgxColumPatternValidatorDirective,
92
+ // IGX_PAGINATOR_DIRECTIVES:
93
+ IgxPaginatorComponent,
94
+ IgxPageNavigationComponent,
95
+ IgxPageSizeSelectorComponent,
96
+ IgxPaginatorContentDirective,
97
+ IgxPaginatorDirective
18
98
  ];
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9ncmlkL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BNLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBd0VwRyxPQUFPLEVBTUgsd0JBQXdCLEVBQzNCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQywrRkFBK0Y7QUFDL0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsZ0JBQWdCO0lBQ2hCLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLEdBQUcsMEJBQTBCO0lBQzdCLEdBQUcsOEJBQThCO0lBQ2pDLEdBQUcsd0JBQXdCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJR1hfR1JJRF9DT01NT05fRElSRUNUSVZFUywgSUdYX0dSSURfVkFMSURBVElPTl9ESVJFQ1RJVkVTLCBJZ3hSb3dBZGRUZXh0RGlyZWN0aXZlLCBJZ3hSb3dFZGl0QWN0aW9uc0RpcmVjdGl2ZSwgSWd4Um93RWRpdFRhYlN0b3BEaXJlY3RpdmUsIElneFJvd0VkaXRUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vcHVibGljX2FwaSc7XG5pbXBvcnQgeyBJZ3hHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hHcmlkRGV0YWlsVGVtcGxhdGVEaXJlY3RpdmUsIElneEdyb3VwQnlSb3dUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL2dyaWQuZGlyZWN0aXZlcyc7XG5cbi8qIEltcG9ydHMgdGhhdCBjYW5ub3QgYmUgcmVzb2x2ZWQgZnJvbSBJR1hfR1JJRF9DT01NT05fRElSRUNUSVZFUyBzcHJlYWRcbiAgICBOT1RFOiBEbyBub3QgcmVtb3ZlISBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL0lnbml0ZVVJL2lnbml0ZXVpLWFuZ3VsYXIvaXNzdWVzLzEzMzEwXG4qL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQge1xuICAgIElneFJvd0RpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkRm9vdGVyQ29tcG9uZW50LFxuICAgIElneEFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nQ29tcG9uZW50LFxuICAgIElneEhlYWRlckNvbGxhcHNlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hIZWFkZXJFeHBhbmRlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hSb3dDb2xsYXBzZWRJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4Um93RXhwYW5kZWRJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4U29ydEFzY2VuZGluZ0hlYWRlckljb25EaXJlY3RpdmUsXG4gICAgSWd4U29ydERlc2NlbmRpbmdIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneFNvcnRIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneEV4Y2VsU3R5bGVIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneERyYWdJbmRpY2F0b3JJY29uRGlyZWN0aXZlLFxuICAgIElneFJvd0RyYWdHaG9zdERpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkU3RhdGVEaXJlY3RpdmUsXG4gICAgSWd4R3JpZEhlYWRlckNvbXBvbmVudCxcbiAgICBJZ3hHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQsXG4gICAgSWd4R3JpZEhlYWRlclJvd0NvbXBvbmVudCxcbiAgICBJZ3hGaWx0ZXJDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4U3VtbWFyeVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsVmFsaWRhdGlvbkVycm9yRGlyZWN0aXZlLFxuICAgIElneENlbGxIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q2VsbEVkaXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENvbGxhcHNpYmxlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1uQ29tcG9uZW50LFxuICAgIElneENvbHVtbkdyb3VwQ29tcG9uZW50LFxuICAgIElneENvbHVtbkxheW91dENvbXBvbmVudCxcbiAgICBJZ3hDb2x1bW5SZXF1aXJlZFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5NaW5WYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1uTWF4VmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbkVtYWlsVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbk1pbkxlbmd0aFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5NYXhMZW5ndGhWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1QYXR0ZXJuVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbkFjdGlvbnNDb21wb25lbnQsXG4gICAgSWd4Q29sdW1uSGlkaW5nRGlyZWN0aXZlLFxuICAgIElneENvbHVtblBpbm5pbmdEaXJlY3RpdmUsXG4gICAgSWd4Um93U2VsZWN0b3JEaXJlY3RpdmUsXG4gICAgSWd4R3JvdXBCeVJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgIElneEhlYWRTZWxlY3RvckRpcmVjdGl2ZSxcbiAgICBJZ3hDU1ZUZXh0RGlyZWN0aXZlLFxuICAgIElneEV4Y2VsVGV4dERpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkVG9vbGJhckFjdGlvbnNDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJBZHZhbmNlZEZpbHRlcmluZ0NvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhckNvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhckV4cG9ydGVyQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFySGlkaW5nQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyUGlubmluZ0NvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhclRpdGxlQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyRGlyZWN0aXZlLFxuICAgIElneEdyaWRFeGNlbFN0eWxlRmlsdGVyaW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVIZWFkZXJDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZVNvcnRpbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZVBpbm5pbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZUhpZGluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlU2VsZWN0aW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVDbGVhckZpbHRlcnNDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZUNvbmRpdGlvbmFsRmlsdGVyQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVNb3ZpbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZVNlYXJjaENvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlQ29sdW1uT3BlcmF0aW9uc1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneEV4Y2VsU3R5bGVGaWx0ZXJPcGVyYXRpb25zVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4RXhjZWxTdHlsZUxvYWRpbmdWYWx1ZXNUZW1wbGF0ZURpcmVjdGl2ZVxufSBmcm9tIFwiLi4vcHVibGljX2FwaVwiO1xuaW1wb3J0IHtcbiAgICBJZ3hQYWdpbmF0b3JDb21wb25lbnQsXG4gICAgSWd4UGFnZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgSWd4UGFnZVNpemVTZWxlY3RvckNvbXBvbmVudCxcbiAgICBJZ3hQYWdpbmF0b3JDb250ZW50RGlyZWN0aXZlLFxuICAgIElneFBhZ2luYXRvckRpcmVjdGl2ZSxcbiAgICBJR1hfUEFHSU5BVE9SX0RJUkVDVElWRVNcbn0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3B1YmxpY19hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2dyaWQuY29tcG9uZW50JztcblxuLyogTk9URTogR3JpZCBkaXJlY3RpdmVzIGNvbGxlY3Rpb24gZm9yIGVhc2Utb2YtdXNlIGltcG9ydCBpbiBzdGFuZGFsb25lIGNvbXBvbmVudHMgc2NlbmFyaW8gKi9cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9ESVJFQ1RJVkVTID0gW1xuICAgIElneEdyaWRDb21wb25lbnQsXG4gICAgSWd4R3JvdXBCeVJvd1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneEdyaWREZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hSb3dBZGRUZXh0RGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRBY3Rpb25zRGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRUZXh0RGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRUYWJTdG9wRGlyZWN0aXZlLFxuICAgIC4uLklHWF9HUklEX0NPTU1PTl9ESVJFQ1RJVkVTLFxuICAgIC4uLklHWF9HUklEX1ZBTElEQVRJT05fRElSRUNUSVZFUyxcbiAgICAuLi5JR1hfUEFHSU5BVE9SX0RJUkVDVElWRVNcbl0gYXMgY29uc3Q7XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9ncmlkL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBHOztFQUVFO0FBQ0Ysc0RBQXNEO0FBQ3RELE9BQU8sRUFDSCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLG1DQUFtQyxFQUNuQyxvQ0FBb0MsRUFDcEMsbUNBQW1DLEVBQ25DLGlDQUFpQyxFQUNqQyxnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQywwQkFBMEIsRUFDMUIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDhCQUE4QixFQUM5Qix3Q0FBd0MsRUFDeEMsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLG9DQUFvQyxFQUNwQyxvQ0FBb0MsRUFDcEMsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLHdDQUF3QyxFQUN4Qyx1QkFBdUIsRUFDdkIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2QixtQ0FBbUMsRUFDbkMsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLCtCQUErQixFQUMvQixrQ0FBa0MsRUFDbEMsdUNBQXVDLEVBQ3ZDLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsOENBQThDLEVBQzlDLDhDQUE4QyxFQUM5QywyQ0FBMkMsRUFDOUMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixxQkFBcUIsRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLCtGQUErRjtBQUMvRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixnQkFBZ0I7SUFDaEIsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5QixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsOEJBQThCO0lBQzlCLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIsbUNBQW1DO0lBQ25DLGdDQUFnQztJQUNoQyxpQ0FBaUM7SUFDakMsbUNBQW1DO0lBQ25DLG9DQUFvQztJQUNwQyxnQ0FBZ0M7SUFDaEMsbUNBQW1DO0lBQ25DLG9DQUFvQztJQUNwQywwQkFBMEI7SUFDMUIsNkJBQTZCO0lBQzdCLHdCQUF3QjtJQUN4QixxQkFBcUI7SUFDckIsK0JBQStCO0lBQy9CLHNCQUFzQjtJQUN0QiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4QiwrQkFBK0I7SUFDL0IsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsd0NBQXdDO0lBQ3hDLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHNDQUFzQztJQUN0Qyx5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixpQ0FBaUM7SUFDakMsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5Qix3QkFBd0I7SUFDeEIsK0JBQStCO0lBQy9CLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4Qyx1QkFBdUI7SUFDdkIsK0JBQStCO0lBQy9CLDZCQUE2QjtJQUM3Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0lBQzVCLHVCQUF1QjtJQUN2QiwwQ0FBMEM7SUFDMUMsbUNBQW1DO0lBQ25DLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFDN0IsNkJBQTZCO0lBQzdCLDRCQUE0QjtJQUM1QiwrQkFBK0I7SUFDL0Isa0NBQWtDO0lBQ2xDLHVDQUF1QztJQUN2Qyw0QkFBNEI7SUFDNUIsNEJBQTRCO0lBQzVCLDhDQUE4QztJQUM5Qyw4Q0FBOEM7SUFDOUMsMkNBQTJDO0lBQzNDLGtDQUFrQztJQUNsQyxtQ0FBbUM7SUFDbkMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMsb0NBQW9DO0lBQ3BDLG9DQUFvQztJQUNwQyxpQ0FBaUM7SUFDakMsNEJBQTRCO0lBQzVCLHFCQUFxQjtJQUNyQiwwQkFBMEI7SUFDMUIsNEJBQTRCO0lBQzVCLDRCQUE0QjtJQUM1QixxQkFBcUI7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWd4Um93QWRkVGV4dERpcmVjdGl2ZSwgSWd4Um93RWRpdEFjdGlvbnNEaXJlY3RpdmUsIElneFJvd0VkaXRUYWJTdG9wRGlyZWN0aXZlLCBJZ3hSb3dFZGl0VGV4dERpcmVjdGl2ZSB9IGZyb20gJy4uL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSWd4R3JpZENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4R3JpZERldGFpbFRlbXBsYXRlRGlyZWN0aXZlLCBJZ3hHcm91cEJ5Um93VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9ncmlkLmRpcmVjdGl2ZXMnO1xuXG4vKiBJbXBvcnRzIHRoYXQgY2Fubm90IGJlIHJlc29sdmVkIGZyb20gSUdYX0dSSURfQ09NTU9OX0RJUkVDVElWRVMgc3ByZWFkXG4gICAgTk9URTogRG8gbm90IHJlbW92ZSEgSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9JZ25pdGVVSS9pZ25pdGV1aS1hbmd1bGFyL2lzc3Vlcy8xMzMxMFxuKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHtcbiAgICBJZ3hSb3dEaXJlY3RpdmUsXG4gICAgSWd4R3JpZEZvb3RlckNvbXBvbmVudCxcbiAgICBJZ3hBZHZhbmNlZEZpbHRlcmluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICBJZ3hIZWFkZXJDb2xsYXBzZWRJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4SGVhZGVyRXhwYW5kZWRJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4Um93Q29sbGFwc2VkSW5kaWNhdG9yRGlyZWN0aXZlLFxuICAgIElneFJvd0V4cGFuZGVkSW5kaWNhdG9yRGlyZWN0aXZlLFxuICAgIElneFNvcnRBc2NlbmRpbmdIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneFNvcnREZXNjZW5kaW5nSGVhZGVySWNvbkRpcmVjdGl2ZSxcbiAgICBJZ3hTb3J0SGVhZGVySWNvbkRpcmVjdGl2ZSxcbiAgICBJZ3hFeGNlbFN0eWxlSGVhZGVySWNvbkRpcmVjdGl2ZSxcbiAgICBJZ3hEcmFnSW5kaWNhdG9ySWNvbkRpcmVjdGl2ZSxcbiAgICBJZ3hSb3dEcmFnR2hvc3REaXJlY3RpdmUsXG4gICAgSWd4R3JpZFN0YXRlRGlyZWN0aXZlLFxuICAgIElneEdyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgSWd4R3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgIElneEdyaWRIZWFkZXJSb3dDb21wb25lbnQsXG4gICAgSWd4RmlsdGVyQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneFN1bW1hcnlUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q2VsbFZhbGlkYXRpb25FcnJvckRpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q2VsbEZvb3RlclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENlbGxFZGl0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENvbHVtbkNvbXBvbmVudCxcbiAgICBJZ3hDb2x1bW5Hcm91cENvbXBvbmVudCxcbiAgICBJZ3hDb2x1bW5MYXlvdXRDb21wb25lbnQsXG4gICAgSWd4Q29sdW1uUmVxdWlyZWRWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1uTWluVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbk1heFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5FbWFpbFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5NaW5MZW5ndGhWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1uTWF4TGVuZ3RoVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtUGF0dGVyblZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5BY3Rpb25zQ29tcG9uZW50LFxuICAgIElneENvbHVtbkhpZGluZ0RpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5QaW5uaW5nRGlyZWN0aXZlLFxuICAgIElneFJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgIElneEdyb3VwQnlSb3dTZWxlY3RvckRpcmVjdGl2ZSxcbiAgICBJZ3hIZWFkU2VsZWN0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q1NWVGV4dERpcmVjdGl2ZSxcbiAgICBJZ3hFeGNlbFRleHREaXJlY3RpdmUsXG4gICAgSWd4R3JpZFRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyQWR2YW5jZWRGaWx0ZXJpbmdDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJFeHBvcnRlckNvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhckhpZGluZ0NvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhclBpbm5pbmdDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJUaXRsZUNvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhckRpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkRXhjZWxTdHlsZUZpbHRlcmluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlSGVhZGVyQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVTb3J0aW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVQaW5uaW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVIaWRpbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZVNlbGVjdGluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlQ2xlYXJGaWx0ZXJzQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVDb25kaXRpb25hbEZpbHRlckNvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlTW92aW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVTZWFyY2hDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZUNvbHVtbk9wZXJhdGlvbnNUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hFeGNlbFN0eWxlRmlsdGVyT3BlcmF0aW9uc1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneEV4Y2VsU3R5bGVMb2FkaW5nVmFsdWVzVGVtcGxhdGVEaXJlY3RpdmVcbn0gZnJvbSBcIi4uL3B1YmxpY19hcGlcIjtcbmltcG9ydCB7XG4gICAgSWd4UGFnaW5hdG9yQ29tcG9uZW50LFxuICAgIElneFBhZ2VOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIElneFBhZ2VTaXplU2VsZWN0b3JDb21wb25lbnQsXG4gICAgSWd4UGFnaW5hdG9yQ29udGVudERpcmVjdGl2ZSxcbiAgICBJZ3hQYWdpbmF0b3JEaXJlY3RpdmVcbn0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3B1YmxpY19hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2dyaWQuY29tcG9uZW50JztcblxuLyogTk9URTogR3JpZCBkaXJlY3RpdmVzIGNvbGxlY3Rpb24gZm9yIGVhc2Utb2YtdXNlIGltcG9ydCBpbiBzdGFuZGFsb25lIGNvbXBvbmVudHMgc2NlbmFyaW8gKi9cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9ESVJFQ1RJVkVTID0gW1xuICAgIElneEdyaWRDb21wb25lbnQsXG4gICAgSWd4R3JvdXBCeVJvd1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneEdyaWREZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hSb3dBZGRUZXh0RGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRBY3Rpb25zRGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRUZXh0RGlyZWN0aXZlLFxuICAgIElneFJvd0VkaXRUYWJTdG9wRGlyZWN0aXZlLFxuICAgIC8vIElHWF9HUklEX0NPTU1PTl9ESVJFQ1RJVkVTOlxuICAgIElneFJvd0RpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkRm9vdGVyQ29tcG9uZW50LFxuICAgIElneEFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nQ29tcG9uZW50LFxuICAgIElneFJvd0V4cGFuZGVkSW5kaWNhdG9yRGlyZWN0aXZlLFxuICAgIElneFJvd0NvbGxhcHNlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hIZWFkZXJFeHBhbmRlZEluZGljYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hIZWFkZXJDb2xsYXBzZWRJbmRpY2F0b3JEaXJlY3RpdmUsXG4gICAgSWd4RXhjZWxTdHlsZUhlYWRlckljb25EaXJlY3RpdmUsXG4gICAgSWd4U29ydEFzY2VuZGluZ0hlYWRlckljb25EaXJlY3RpdmUsXG4gICAgSWd4U29ydERlc2NlbmRpbmdIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneFNvcnRIZWFkZXJJY29uRGlyZWN0aXZlLFxuICAgIElneERyYWdJbmRpY2F0b3JJY29uRGlyZWN0aXZlLFxuICAgIElneFJvd0RyYWdHaG9zdERpcmVjdGl2ZSxcbiAgICBJZ3hHcmlkU3RhdGVEaXJlY3RpdmUsXG4gICAgLy8gSUdYX0dSSURfSEVBREVSU19ESVJFQ1RJVkVTOlxuICAgIElneEdyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgSWd4R3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgIElneEdyaWRIZWFkZXJSb3dDb21wb25lbnQsXG4gICAgLy8gSUdYX0dSSURfQ09MVU1OX0RJUkVDVElWRVM6XG4gICAgSWd4RmlsdGVyQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneFN1bW1hcnlUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q2VsbFZhbGlkYXRpb25FcnJvckRpcmVjdGl2ZSxcbiAgICBJZ3hDZWxsSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4Q2VsbEZvb3RlclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENlbGxFZGl0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hDb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneENvbHVtbkNvbXBvbmVudCxcbiAgICBJZ3hDb2x1bW5Hcm91cENvbXBvbmVudCxcbiAgICBJZ3hDb2x1bW5MYXlvdXRDb21wb25lbnQsXG4gICAgLy8gSUdYX0dSSURfQ09MVU1OX0FDVElPTlNfRElSRUNUSVZFUzpcbiAgICBJZ3hDb2x1bW5BY3Rpb25zQ29tcG9uZW50LFxuICAgIElneENvbHVtbkhpZGluZ0RpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5QaW5uaW5nRGlyZWN0aXZlLFxuICAgIC8vIElHWF9HUklEX1NFTEVDVElPTl9ESVJFQ1RJVkVTOlxuICAgIElneFJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgIElneEdyb3VwQnlSb3dTZWxlY3RvckRpcmVjdGl2ZSxcbiAgICBJZ3hIZWFkU2VsZWN0b3JEaXJlY3RpdmUsXG4gICAgLy8gSUdYX0dSSURfVE9PTEJBUl9ESVJFQ1RJVkVTOlxuICAgIElneENTVlRleHREaXJlY3RpdmUsXG4gICAgSWd4RXhjZWxUZXh0RGlyZWN0aXZlLFxuICAgIElneEdyaWRUb29sYmFyQWN0aW9uc0NvbXBvbmVudCxcbiAgICBJZ3hHcmlkVG9vbGJhckFkdmFuY2VkRmlsdGVyaW5nQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyRXhwb3J0ZXJDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJIaWRpbmdDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJQaW5uaW5nQ29tcG9uZW50LFxuICAgIElneEdyaWRUb29sYmFyVGl0bGVDb21wb25lbnQsXG4gICAgSWd4R3JpZFRvb2xiYXJEaXJlY3RpdmUsXG4gICAgLy8gSUdYX0dSSURfRVhDRUxfU1RZTEVfRklMVEVSX0RJUkVDVElWRVM6XG4gICAgSWd4R3JpZEV4Y2VsU3R5bGVGaWx0ZXJpbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZUhlYWRlckNvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlU29ydGluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlUGlubmluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlSGlkaW5nQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVTZWxlY3RpbmdDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZUNsZWFyRmlsdGVyc0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlQ29uZGl0aW9uYWxGaWx0ZXJDb21wb25lbnQsXG4gICAgSWd4RXhjZWxTdHlsZU1vdmluZ0NvbXBvbmVudCxcbiAgICBJZ3hFeGNlbFN0eWxlU2VhcmNoQ29tcG9uZW50LFxuICAgIElneEV4Y2VsU3R5bGVDb2x1bW5PcGVyYXRpb25zVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgSWd4RXhjZWxTdHlsZUZpbHRlck9wZXJhdGlvbnNUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hFeGNlbFN0eWxlTG9hZGluZ1ZhbHVlc1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIC8vIElHWF9HUklEX1ZBTElEQVRJT05fRElSRUNUSVZFUzpcbiAgICBJZ3hDb2x1bW5SZXF1aXJlZFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5NaW5WYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1uTWF4VmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbkVtYWlsVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIElneENvbHVtbk1pbkxlbmd0aFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICBJZ3hDb2x1bW5NYXhMZW5ndGhWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgSWd4Q29sdW1QYXR0ZXJuVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgIC8vIElHWF9QQUdJTkFUT1JfRElSRUNUSVZFUzpcbiAgICBJZ3hQYWdpbmF0b3JDb21wb25lbnQsXG4gICAgSWd4UGFnZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgSWd4UGFnZVNpemVTZWxlY3RvckNvbXBvbmVudCxcbiAgICBJZ3hQYWdpbmF0b3JDb250ZW50RGlyZWN0aXZlLFxuICAgIElneFBhZ2luYXRvckRpcmVjdGl2ZVxuXSBhcyBjb25zdDtcbiJdfQ==
@@ -6278,8 +6278,8 @@ export class IgxGridBaseDirective extends DisplayDensityBase {
6278
6278
  settings.target = targetRow.element.nativeElement;
6279
6279
  this.toggleRowEditingOverlay(true);
6280
6280
  }
6281
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridBaseDirective, deps: [{ token: i1.IgxGridValidationService }, { token: i2.IgxGridSelectionService }, { token: i3.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i4.IgxFlatTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i5.IgxGridNavigationService }, { token: i6.IgxFilteringService }, { token: IgxOverlayService }, { token: i7.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: LOCALE_ID }, { token: i8.PlatformUtil }, { token: IgxGridTransaction, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6282
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.3", type: IgxGridBaseDirective, inputs: { snackbarDisplayTime: "snackbarDisplayTime", autoGenerate: ["autoGenerate", "autoGenerate", booleanAttribute], autoGenerateExclude: "autoGenerateExclude", moving: ["moving", "moving", booleanAttribute], emptyGridTemplate: "emptyGridTemplate", addRowEmptyTemplate: "addRowEmptyTemplate", loadingGridTemplate: "loadingGridTemplate", summaryRowHeight: "summaryRowHeight", dataCloneStrategy: "dataCloneStrategy", clipboardOptions: "clipboardOptions", rowClasses: "rowClasses", rowStyles: "rowStyles", primaryKey: "primaryKey", uniqueColumnValuesStrategy: "uniqueColumnValuesStrategy", dragGhostCustomTemplate: "dragGhostCustomTemplate", rowEditTextTemplate: "rowEditTextTemplate", rowAddTextTemplate: "rowAddTextTemplate", rowEditActionsTemplate: "rowEditActionsTemplate", rowExpandedIndicatorTemplate: "rowExpandedIndicatorTemplate", rowCollapsedIndicatorTemplate: "rowCollapsedIndicatorTemplate", headerExpandedIndicatorTemplate: "headerExpandedIndicatorTemplate", headerCollapsedIndicatorTemplate: "headerCollapsedIndicatorTemplate", excelStyleHeaderIconTemplate: "excelStyleHeaderIconTemplate", sortAscendingHeaderIconTemplate: "sortAscendingHeaderIconTemplate", sortDescendingHeaderIconTemplate: "sortDescendingHeaderIconTemplate", sortHeaderIconTemplate: "sortHeaderIconTemplate", resourceStrings: "resourceStrings", filteringLogic: "filteringLogic", filteringExpressionsTree: "filteringExpressionsTree", advancedFilteringExpressionsTree: "advancedFilteringExpressionsTree", locale: "locale", pagingMode: "pagingMode", hideRowSelectors: ["hideRowSelectors", "hideRowSelectors", booleanAttribute], rowDraggable: ["rowDraggable", "rowDraggable", booleanAttribute], validationTrigger: "validationTrigger", rowEditable: ["rowEditable", "rowEditable", booleanAttribute], height: "height", width: "width", rowHeight: "rowHeight", columnWidth: "columnWidth", emptyGridMessage: "emptyGridMessage", isLoading: ["isLoading", "isLoading", booleanAttribute], emptyFilteredGridMessage: "emptyFilteredGridMessage", pinning: "pinning", allowFiltering: ["allowFiltering", "allowFiltering", booleanAttribute], allowAdvancedFiltering: ["allowAdvancedFiltering", "allowAdvancedFiltering", booleanAttribute], filterMode: "filterMode", summaryPosition: "summaryPosition", summaryCalculationMode: "summaryCalculationMode", showSummaryOnCollapse: ["showSummaryOnCollapse", "showSummaryOnCollapse", booleanAttribute], filterStrategy: "filterStrategy", sortStrategy: "sortStrategy", sortingOptions: "sortingOptions", selectedRows: "selectedRows", headSelectorTemplate: "headSelectorTemplate", rowSelectorTemplate: "rowSelectorTemplate", dragIndicatorIconTemplate: "dragIndicatorIconTemplate", sortingExpressions: "sortingExpressions", batchEditing: ["batchEditing", "batchEditing", booleanAttribute], cellSelection: "cellSelection", rowSelection: "rowSelection", columnSelection: "columnSelection", expansionStates: "expansionStates", outlet: "outlet", totalRecords: "totalRecords", selectRowOnClick: ["selectRowOnClick", "selectRowOnClick", booleanAttribute] }, outputs: { filteringExpressionsTreeChange: "filteringExpressionsTreeChange", advancedFilteringExpressionsTreeChange: "advancedFilteringExpressionsTreeChange", gridScroll: "gridScroll", cellClick: "cellClick", formGroupCreated: "formGroupCreated", validationStatusChange: "validationStatusChange", selected: "selected", rowSelectionChanging: "rowSelectionChanging", columnSelectionChanging: "columnSelectionChanging", columnPin: "columnPin", columnPinned: "columnPinned", cellEditEnter: "cellEditEnter", cellEditExit: "cellEditExit", cellEdit: "cellEdit", cellEditDone: "cellEditDone", rowEditEnter: "rowEditEnter", rowEdit: "rowEdit", rowEditDone: "rowEditDone", rowEditExit: "rowEditExit", columnInit: "columnInit", sorting: "sorting", sortingDone: "sortingDone", filtering: "filtering", filteringDone: "filteringDone", rowAdded: "rowAdded", rowDeleted: "rowDeleted", rowDelete: "rowDelete", rowAdd: "rowAdd", columnResized: "columnResized", contextMenu: "contextMenu", doubleClick: "doubleClick", columnVisibilityChanging: "columnVisibilityChanging", columnVisibilityChanged: "columnVisibilityChanged", columnMovingStart: "columnMovingStart", columnMoving: "columnMoving", columnMovingEnd: "columnMovingEnd", gridKeydown: "gridKeydown", rowDragStart: "rowDragStart", rowDragEnd: "rowDragEnd", gridCopy: "gridCopy", expansionStatesChange: "expansionStatesChange", rowToggle: "rowToggle", rowPinning: "rowPinning", rowPinned: "rowPinned", activeNodeChange: "activeNodeChange", sortingExpressionsChange: "sortingExpressionsChange", toolbarExporting: "toolbarExporting", rangeSelected: "rangeSelected", rendered: "rendered", localeChange: "localeChange", dataChanging: "dataChanging", dataChanged: "dataChanged" }, host: { listeners: { "mouseleave": "hideActionStrip()" }, properties: { "attr.tabindex": "this.tabindex", "attr.role": "this.hostRole", "class.igx-grid": "this.baseClass", "style.--component-size": "this.hostStyles", "style.height": "this.height", "style.width": "this.hostWidth" } }, queries: [{ propertyName: "actionStrip", first: true, predicate: IgxActionStripComponent, descendants: true }, { propertyName: "excelStyleLoadingValuesTemplateDirective", first: true, predicate: IgxExcelStyleLoadingValuesTemplateDirective, descendants: true, read: IgxExcelStyleLoadingValuesTemplateDirective, static: true }, { propertyName: "rowAddText", first: true, predicate: IgxRowAddTextDirective, descendants: true, read: TemplateRef }, { propertyName: "rowExpandedIndicatorDirectiveTemplate", first: true, predicate: IgxRowExpandedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "rowCollapsedIndicatorDirectiveTemplate", first: true, predicate: IgxRowCollapsedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerExpandedIndicatorDirectiveTemplate", first: true, predicate: IgxHeaderExpandedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerCollapsedIndicatorDirectiveTemplate", first: true, predicate: IgxHeaderCollapsedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleHeaderIconDirectiveTemplate", first: true, predicate: IgxExcelStyleHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortAscendingHeaderIconDirectiveTemplate", first: true, predicate: IgxSortAscendingHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortDescendingHeaderIconDirectiveTemplate", first: true, predicate: IgxSortDescendingHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortHeaderIconDirectiveTemplate", first: true, predicate: IgxSortHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "columnList", predicate: IgxColumnComponent, descendants: true, read: IgxColumnComponent }, { propertyName: "headSelectorsTemplates", predicate: IgxHeadSelectorDirective, read: TemplateRef }, { propertyName: "rowSelectorsTemplates", predicate: IgxRowSelectorDirective, read: TemplateRef }, { propertyName: "dragGhostCustomTemplates", predicate: IgxRowDragGhostDirective, read: TemplateRef }, { propertyName: "rowEditCustomDirectives", predicate: IgxRowEditTemplateDirective, read: TemplateRef }, { propertyName: "rowEditTextDirectives", predicate: IgxRowEditTextDirective, read: TemplateRef }, { propertyName: "rowEditActionsDirectives", predicate: IgxRowEditActionsDirective, read: TemplateRef }, { propertyName: "dragIndicatorIconTemplates", predicate: IgxDragIndicatorIconDirective, read: TemplateRef }, { propertyName: "rowEditTabsCUSTOM", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "toolbar", predicate: IgxGridToolbarComponent }, { propertyName: "paginationComponents", predicate: IgxPaginatorComponent }], viewQueries: [{ propertyName: "addRowSnackbar", first: true, predicate: IgxSnackbarComponent, descendants: true }, { propertyName: "resizeLine", first: true, predicate: IgxGridColumnResizerComponent, descendants: true }, { propertyName: "loadingOverlay", first: true, predicate: ["loadingOverlay"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "loadingOutlet", first: true, predicate: ["igxLoadingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "emptyFilteredGridTemplate", first: true, predicate: ["emptyFilteredGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "emptyGridDefaultTemplate", first: true, predicate: ["defaultEmptyGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "loadingGridDefaultTemplate", first: true, predicate: ["defaultLoadingGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "parentVirtDir", first: true, predicate: ["scrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScrollContainer", first: true, predicate: ["verticalScrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScroll", first: true, predicate: ["verticalScrollHolder"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "scr", first: true, predicate: ["scr"], descendants: true, read: ElementRef, static: true }, { propertyName: "headerSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, read: ElementRef }, { propertyName: "theadRow", first: true, predicate: IgxGridHeaderRowComponent, descendants: true, static: true }, { propertyName: "groupArea", first: true, predicate: IgxGridGroupByAreaComponent, descendants: true }, { propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, static: true }, { propertyName: "pinContainer", first: true, predicate: ["pinContainer"], descendants: true, read: ElementRef }, { propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true, static: true }, { propertyName: "rowEditingOutletDirective", first: true, predicate: ["igxRowEditingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dragIndicatorIconBase", first: true, predicate: ["dragIndicatorIconBase"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowEditingOverlay", first: true, predicate: ["rowEditingOverlay"], descendants: true, read: IgxToggleDirective }, { propertyName: "_outletDirective", first: true, predicate: ["igxFilteringOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "defaultExpandedTemplate", first: true, predicate: ["defaultExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCollapsedTemplate", first: true, predicate: ["defaultCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultESFHeaderIconTemplate", first: true, predicate: ["defaultESFHeaderIcon"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultRowEditTemplate", first: true, predicate: ["defaultRowEditTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "tmpOutlets", predicate: IgxTemplateOutletDirective, descendants: true, read: IgxTemplateOutletDirective }, { propertyName: "rowEditTabsDEFAULT", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "_summaryRowList", predicate: ["summaryRow"], descendants: true, read: IgxSummaryRowComponent }, { propertyName: "_rowList", predicate: ["row"], descendants: true }, { propertyName: "_pinnedRowList", predicate: ["pinnedRow"], descendants: true }, { propertyName: "_dataRowList", predicate: IgxRowDirective, descendants: true, read: IgxRowDirective }], usesInheritance: true, ngImport: i0 }); }
6281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridBaseDirective, deps: [{ token: i1.IgxGridValidationService }, { token: i2.IgxGridSelectionService }, { token: i3.IgxColumnResizingService }, { token: IGX_GRID_SERVICE_BASE }, { token: i4.IgxFlatTransactionFactory }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i5.IgxGridNavigationService }, { token: i6.IgxFilteringService }, { token: IgxOverlayService }, { token: i7.IgxGridSummaryService }, { token: DisplayDensityToken, optional: true }, { token: LOCALE_ID }, { token: i8.PlatformUtil }, { token: IgxGridTransaction, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6282
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.5", type: IgxGridBaseDirective, inputs: { snackbarDisplayTime: "snackbarDisplayTime", autoGenerate: ["autoGenerate", "autoGenerate", booleanAttribute], autoGenerateExclude: "autoGenerateExclude", moving: ["moving", "moving", booleanAttribute], emptyGridTemplate: "emptyGridTemplate", addRowEmptyTemplate: "addRowEmptyTemplate", loadingGridTemplate: "loadingGridTemplate", summaryRowHeight: "summaryRowHeight", dataCloneStrategy: "dataCloneStrategy", clipboardOptions: "clipboardOptions", rowClasses: "rowClasses", rowStyles: "rowStyles", primaryKey: "primaryKey", uniqueColumnValuesStrategy: "uniqueColumnValuesStrategy", dragGhostCustomTemplate: "dragGhostCustomTemplate", rowEditTextTemplate: "rowEditTextTemplate", rowAddTextTemplate: "rowAddTextTemplate", rowEditActionsTemplate: "rowEditActionsTemplate", rowExpandedIndicatorTemplate: "rowExpandedIndicatorTemplate", rowCollapsedIndicatorTemplate: "rowCollapsedIndicatorTemplate", headerExpandedIndicatorTemplate: "headerExpandedIndicatorTemplate", headerCollapsedIndicatorTemplate: "headerCollapsedIndicatorTemplate", excelStyleHeaderIconTemplate: "excelStyleHeaderIconTemplate", sortAscendingHeaderIconTemplate: "sortAscendingHeaderIconTemplate", sortDescendingHeaderIconTemplate: "sortDescendingHeaderIconTemplate", sortHeaderIconTemplate: "sortHeaderIconTemplate", resourceStrings: "resourceStrings", filteringLogic: "filteringLogic", filteringExpressionsTree: "filteringExpressionsTree", advancedFilteringExpressionsTree: "advancedFilteringExpressionsTree", locale: "locale", pagingMode: "pagingMode", hideRowSelectors: ["hideRowSelectors", "hideRowSelectors", booleanAttribute], rowDraggable: ["rowDraggable", "rowDraggable", booleanAttribute], validationTrigger: "validationTrigger", rowEditable: ["rowEditable", "rowEditable", booleanAttribute], height: "height", width: "width", rowHeight: "rowHeight", columnWidth: "columnWidth", emptyGridMessage: "emptyGridMessage", isLoading: ["isLoading", "isLoading", booleanAttribute], emptyFilteredGridMessage: "emptyFilteredGridMessage", pinning: "pinning", allowFiltering: ["allowFiltering", "allowFiltering", booleanAttribute], allowAdvancedFiltering: ["allowAdvancedFiltering", "allowAdvancedFiltering", booleanAttribute], filterMode: "filterMode", summaryPosition: "summaryPosition", summaryCalculationMode: "summaryCalculationMode", showSummaryOnCollapse: ["showSummaryOnCollapse", "showSummaryOnCollapse", booleanAttribute], filterStrategy: "filterStrategy", sortStrategy: "sortStrategy", sortingOptions: "sortingOptions", selectedRows: "selectedRows", headSelectorTemplate: "headSelectorTemplate", rowSelectorTemplate: "rowSelectorTemplate", dragIndicatorIconTemplate: "dragIndicatorIconTemplate", sortingExpressions: "sortingExpressions", batchEditing: ["batchEditing", "batchEditing", booleanAttribute], cellSelection: "cellSelection", rowSelection: "rowSelection", columnSelection: "columnSelection", expansionStates: "expansionStates", outlet: "outlet", totalRecords: "totalRecords", selectRowOnClick: ["selectRowOnClick", "selectRowOnClick", booleanAttribute] }, outputs: { filteringExpressionsTreeChange: "filteringExpressionsTreeChange", advancedFilteringExpressionsTreeChange: "advancedFilteringExpressionsTreeChange", gridScroll: "gridScroll", cellClick: "cellClick", formGroupCreated: "formGroupCreated", validationStatusChange: "validationStatusChange", selected: "selected", rowSelectionChanging: "rowSelectionChanging", columnSelectionChanging: "columnSelectionChanging", columnPin: "columnPin", columnPinned: "columnPinned", cellEditEnter: "cellEditEnter", cellEditExit: "cellEditExit", cellEdit: "cellEdit", cellEditDone: "cellEditDone", rowEditEnter: "rowEditEnter", rowEdit: "rowEdit", rowEditDone: "rowEditDone", rowEditExit: "rowEditExit", columnInit: "columnInit", sorting: "sorting", sortingDone: "sortingDone", filtering: "filtering", filteringDone: "filteringDone", rowAdded: "rowAdded", rowDeleted: "rowDeleted", rowDelete: "rowDelete", rowAdd: "rowAdd", columnResized: "columnResized", contextMenu: "contextMenu", doubleClick: "doubleClick", columnVisibilityChanging: "columnVisibilityChanging", columnVisibilityChanged: "columnVisibilityChanged", columnMovingStart: "columnMovingStart", columnMoving: "columnMoving", columnMovingEnd: "columnMovingEnd", gridKeydown: "gridKeydown", rowDragStart: "rowDragStart", rowDragEnd: "rowDragEnd", gridCopy: "gridCopy", expansionStatesChange: "expansionStatesChange", rowToggle: "rowToggle", rowPinning: "rowPinning", rowPinned: "rowPinned", activeNodeChange: "activeNodeChange", sortingExpressionsChange: "sortingExpressionsChange", toolbarExporting: "toolbarExporting", rangeSelected: "rangeSelected", rendered: "rendered", localeChange: "localeChange", dataChanging: "dataChanging", dataChanged: "dataChanged" }, host: { listeners: { "mouseleave": "hideActionStrip()" }, properties: { "attr.tabindex": "this.tabindex", "attr.role": "this.hostRole", "class.igx-grid": "this.baseClass", "style.--component-size": "this.hostStyles", "style.height": "this.height", "style.width": "this.hostWidth" } }, queries: [{ propertyName: "actionStrip", first: true, predicate: IgxActionStripComponent, descendants: true }, { propertyName: "excelStyleLoadingValuesTemplateDirective", first: true, predicate: IgxExcelStyleLoadingValuesTemplateDirective, descendants: true, read: IgxExcelStyleLoadingValuesTemplateDirective, static: true }, { propertyName: "rowAddText", first: true, predicate: IgxRowAddTextDirective, descendants: true, read: TemplateRef }, { propertyName: "rowExpandedIndicatorDirectiveTemplate", first: true, predicate: IgxRowExpandedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "rowCollapsedIndicatorDirectiveTemplate", first: true, predicate: IgxRowCollapsedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerExpandedIndicatorDirectiveTemplate", first: true, predicate: IgxHeaderExpandedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerCollapsedIndicatorDirectiveTemplate", first: true, predicate: IgxHeaderCollapsedIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleHeaderIconDirectiveTemplate", first: true, predicate: IgxExcelStyleHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortAscendingHeaderIconDirectiveTemplate", first: true, predicate: IgxSortAscendingHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortDescendingHeaderIconDirectiveTemplate", first: true, predicate: IgxSortDescendingHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "sortHeaderIconDirectiveTemplate", first: true, predicate: IgxSortHeaderIconDirective, descendants: true, read: TemplateRef }, { propertyName: "excelStyleFilteringComponents", predicate: IgxGridExcelStyleFilteringComponent, read: IgxGridExcelStyleFilteringComponent }, { propertyName: "columnList", predicate: IgxColumnComponent, descendants: true, read: IgxColumnComponent }, { propertyName: "headSelectorsTemplates", predicate: IgxHeadSelectorDirective, read: TemplateRef }, { propertyName: "rowSelectorsTemplates", predicate: IgxRowSelectorDirective, read: TemplateRef }, { propertyName: "dragGhostCustomTemplates", predicate: IgxRowDragGhostDirective, read: TemplateRef }, { propertyName: "rowEditCustomDirectives", predicate: IgxRowEditTemplateDirective, read: TemplateRef }, { propertyName: "rowEditTextDirectives", predicate: IgxRowEditTextDirective, read: TemplateRef }, { propertyName: "rowEditActionsDirectives", predicate: IgxRowEditActionsDirective, read: TemplateRef }, { propertyName: "dragIndicatorIconTemplates", predicate: IgxDragIndicatorIconDirective, read: TemplateRef }, { propertyName: "rowEditTabsCUSTOM", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "toolbar", predicate: IgxGridToolbarComponent }, { propertyName: "paginationComponents", predicate: IgxPaginatorComponent }], viewQueries: [{ propertyName: "addRowSnackbar", first: true, predicate: IgxSnackbarComponent, descendants: true }, { propertyName: "resizeLine", first: true, predicate: IgxGridColumnResizerComponent, descendants: true }, { propertyName: "loadingOverlay", first: true, predicate: ["loadingOverlay"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "loadingOutlet", first: true, predicate: ["igxLoadingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "emptyFilteredGridTemplate", first: true, predicate: ["emptyFilteredGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "emptyGridDefaultTemplate", first: true, predicate: ["defaultEmptyGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "loadingGridDefaultTemplate", first: true, predicate: ["defaultLoadingGrid"], descendants: true, read: TemplateRef, static: true }, { propertyName: "parentVirtDir", first: true, predicate: ["scrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScrollContainer", first: true, predicate: ["verticalScrollContainer"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "verticalScroll", first: true, predicate: ["verticalScrollHolder"], descendants: true, read: IgxGridForOfDirective, static: true }, { propertyName: "scr", first: true, predicate: ["scr"], descendants: true, read: ElementRef, static: true }, { propertyName: "headerSelectorBaseTemplate", first: true, predicate: ["headSelectorBaseTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, read: ElementRef }, { propertyName: "theadRow", first: true, predicate: IgxGridHeaderRowComponent, descendants: true, static: true }, { propertyName: "groupArea", first: true, predicate: IgxGridGroupByAreaComponent, descendants: true }, { propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true, static: true }, { propertyName: "pinContainer", first: true, predicate: ["pinContainer"], descendants: true, read: ElementRef }, { propertyName: "tfoot", first: true, predicate: ["tfoot"], descendants: true, static: true }, { propertyName: "rowEditingOutletDirective", first: true, predicate: ["igxRowEditingOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dragIndicatorIconBase", first: true, predicate: ["dragIndicatorIconBase"], descendants: true, read: TemplateRef, static: true }, { propertyName: "rowEditingOverlay", first: true, predicate: ["rowEditingOverlay"], descendants: true, read: IgxToggleDirective }, { propertyName: "_outletDirective", first: true, predicate: ["igxFilteringOverlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "defaultExpandedTemplate", first: true, predicate: ["defaultExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultCollapsedTemplate", first: true, predicate: ["defaultCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultESFHeaderIconTemplate", first: true, predicate: ["defaultESFHeaderIcon"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultRowEditTemplate", first: true, predicate: ["defaultRowEditTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "tmpOutlets", predicate: IgxTemplateOutletDirective, descendants: true, read: IgxTemplateOutletDirective }, { propertyName: "rowEditTabsDEFAULT", predicate: IgxRowEditTabStopDirective, descendants: true }, { propertyName: "_summaryRowList", predicate: ["summaryRow"], descendants: true, read: IgxSummaryRowComponent }, { propertyName: "_rowList", predicate: ["row"], descendants: true }, { propertyName: "_pinnedRowList", predicate: ["pinnedRow"], descendants: true }, { propertyName: "_dataRowList", predicate: IgxRowDirective, descendants: true, read: IgxRowDirective }], usesInheritance: true, ngImport: i0 }); }
6283
6283
  }
6284
6284
  __decorate([
6285
6285
  WatchChanges()
@@ -6329,7 +6329,7 @@ __decorate([
6329
6329
  __decorate([
6330
6330
  WatchChanges()
6331
6331
  ], IgxGridBaseDirective.prototype, "selectRowOnClick", null);
6332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridBaseDirective, decorators: [{
6332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridBaseDirective, decorators: [{
6333
6333
  type: Directive
6334
6334
  }], ctorParameters: () => [{ type: i1.IgxGridValidationService }, { type: i2.IgxGridSelectionService }, { type: i3.IgxColumnResizingService }, { type: undefined, decorators: [{
6335
6335
  type: Inject,
@@ -1,10 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class IgxGridFooterComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: IgxGridFooterComponent, isStandalone: true, selector: "igx-grid-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: IgxGridFooterComponent, isStandalone: true, selector: "igx-grid-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
6
6
  }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridFooterComponent, decorators: [{
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridFooterComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{
10
10
  selector: 'igx-grid-footer',
@@ -323,10 +323,10 @@ export class IgxGridMRLNavigationService extends IgxGridNavigationService {
323
323
  }
324
324
  return true;
325
325
  }
326
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridMRLNavigationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
327
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridMRLNavigationService }); }
326
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridMRLNavigationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
327
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridMRLNavigationService }); }
328
328
  }
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: IgxGridMRLNavigationService, decorators: [{
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IgxGridMRLNavigationService, decorators: [{
330
330
  type: Injectable
331
331
  }] });
332
332
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1tcmwtbmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQtbXJsLW5hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUlqRSxjQUFjO0FBRWQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3QjtJQUVyRCxlQUFlLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUM5RCxJQUFJLFFBQVEsR0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLFFBQVE7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLFFBQVE7WUFDN0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzFFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVlLDJCQUEyQixDQUFDLGNBQXNCLEVBQUUsZUFBdUI7UUFDdkYsSUFBSSxDQUFDLEtB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QUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUMzRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQzNHLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQy9HLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFL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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN2RSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBTSxHQUFHLENBQUMsQ0FBQztRQUMxRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ3pHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDbkYs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QUFJLENBQUMsZUFBZSxFQUFFO1lBQzlHLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLElBQUksR0FBRyxLQUFLO1FBQ3hDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RILENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFO1lBQzlILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FoV1EsMkJBQTJCO2tIQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElneEdyaWROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vZ3JpZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSE9SSVpPTlRBTF9OQVZfS0VZUywgSEVBREVSX0tFWVMgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEdyaWRLZXlkb3duVGFyZ2V0VHlwZSB9IGZyb20gJy4vY29tbW9uL2VudW1zJztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKiBAaGlkZGVuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4R3JpZE1STE5hdmlnYXRpb25TZXJ2aWNlIGV4dGVuZHMgSWd4R3JpZE5hdmlnYXRpb25TZXJ2aWNlIHtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBpc1ZhbGlkUG9zaXRpb24ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAocm93SW5kZXggPCAwIHx8IGNvbEluZGV4IDwgMCB8fCB0aGlzLmdyaWQuZGF0YVZpZXcubGVuZ3RoIC0gMSA8IHJvd0luZGV4IHx8XG4gICAgICAgICAgICBNYXRoLm1heCguLi50aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMubWFwKGNvbCA9PiBjb2wudmlzaWJsZUluZGV4KSkgPCBjb2xJbmRleCB8fFxuICAgICAgICAgICAgKHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4gIT09IGNvbEluZGV4ICYmICF0aGlzLmlzRGF0YVJvdyhyb3dJbmRleCwgdHJ1ZSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNob3VsZFBlcmZvcm1WZXJ0aWNhbFNjcm9sbCh0YXJnZXRSb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXN1cGVyLnNob3VsZFBlcmZvcm1WZXJ0aWNhbFNjcm9sbCh0YXJnZXRSb3dJbmRleCwgdmlzaWJsZUNvbEluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc0RhdGFSb3codGFyZ2V0Um93SW5kZXgpIHx8IHZpc2libGVDb2xJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5zaG91bGRQZXJmb3JtVmVydGljYWxTY3JvbGwodGFyZ2V0Um93SW5kZXgsIHZpc2libGVDb2xJbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXRSb3cgPSBzdXBlci5nZXRSb3dFbGVtZW50QnlJbmRleCh0YXJnZXRSb3dJbmRleCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuZ3JpZC5jYWxjSGVpZ2h0ID8gTWF0aC5jZWlsKHRoaXMuZ3JpZC5jYWxjSGVpZ2h0KSA6IDA7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvcyA9IHRoaXMuZ2V0VmVydGljYWxTY3JvbGxQb3NpdGlvbnModGFyZ2V0Um93SW5kZXgsIHZpc2libGVDb2xJbmRleCk7XG4gICAgICAgIHJldHVybiAoIXRhcmdldFJvdyB8fCB0YXJnZXRSb3cub2Zmc2V0VG9wICsgc2Nyb2xsUG9zLnRvcE9mZnNldCA8IE1hdGguYWJzKHRoaXMuY29udGFpbmVyVG9wT2Zmc2V0KVxuICAgICAgICAgICAgfHwgY29udGFpbmVySGVpZ2h0ICYmIGNvbnRhaW5lckhlaWdodCA8IHNjcm9sbFBvcy5yb3dCb3R0b20gLSAgTWF0aC5jZWlsKHRoaXMuc2Nyb2xsVG9wKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGlzQ29sdW1uRnVsbHlWaXNpYmxlKHZpc2libGVDb2xJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeVZpc2libGVJbmRleCh2aXNpYmxlQ29sSW5kZXgpO1xuICAgICAgICBpZiAodGhpcy5pc1BhcmVudENvbHVtbkZ1bGx5VmlzaWJsZSh0YXJnZXRDb2w/LnBhcmVudCkgfHwgc3VwZXIuaXNDb2x1bW5QaW5uZWQodmlzaWJsZUNvbEluZGV4LCB0aGlzLmZvck9mRGlyKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjcm9sbFBvcyA9IHRoaXMuZ2V0Q2hpbGRDb2x1bW5TY3JvbGxQb3NpdGlvbnModmlzaWJsZUNvbEluZGV4KTtcbiAgICAgICAgY29uc3QgY29sV2lkdGggPSBzY3JvbGxQb3MucmlnaHRTY3JvbGwgLSBzY3JvbGxQb3MubGVmdFNjcm9sbDtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUNvbnRhaW5lcldpZHRoIDwgY29sV2lkdGggJiYgdGhpcy5kaXNwbGF5Q29udGFpbmVyU2Nyb2xsTGVmdCA9PT0gc2Nyb2xsUG9zLmxlZnRTY3JvbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlDb250YWluZXJXaWR0aCA+PSBzY3JvbGxQb3MucmlnaHRTY3JvbGwgLSB0aGlzLmRpc3BsYXlDb250YWluZXJTY3JvbGxMZWZ0ICYmXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250YWluZXJTY3JvbGxMZWZ0IDw9IHNjcm9sbFBvcy5sZWZ0U2Nyb2xsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWZXJ0aWNhbFNjcm9sbFBvc2l0aW9ucyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlSW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB0YXJnZXRDb2wgPSB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgodmlzaWJsZUluZGV4KTtcbiAgICAgICAgY29uc3Qgcm93U3BhbiA9IHRhcmdldENvbC5yb3dFbmQgJiYgdGFyZ2V0Q29sLnJvd0VuZCAtIHRhcmdldENvbC5yb3dTdGFydCA/IHRhcmdldENvbC5yb3dFbmQgLSB0YXJnZXRDb2wucm93U3RhcnQgOiAxO1xuICAgICAgICBjb25zdCB0b3BPZmZzZXQgPSB0aGlzLmdyaWQuZGVmYXVsdFJvd0hlaWdodCAqICh0YXJnZXRDb2wucm93U3RhcnQgLSAxKTtcbiAgICAgICAgY29uc3Qgcm93VG9wID0gdGhpcy5ncmlkLnZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyLnNpemVzQ2FjaGVbcm93SW5kZXhdICsgdG9wT2Zmc2V0O1xuICAgICAgICByZXR1cm4geyB0b3BPZmZzZXQsIHJvd1RvcCwgcm93Qm90dG9tOiByb3dUb3AgKyAodGhpcy5ncmlkLmRlZmF1bHRSb3dIZWlnaHQgKiByb3dTcGFuKSB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBwZXJmb3JtSG9yaXpvbnRhbFNjcm9sbFRvQ2VsbCh2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2I/OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmICghdGhpcy5zaG91bGRQZXJmb3JtSG9yaXpvbnRhbFNjcm9sbCh2aXNpYmxlQ29sdW1uSW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zID0gdGhpcy5nZXRDaGlsZENvbHVtblNjcm9sbFBvc2l0aW9ucyh2aXNpYmxlQ29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBzdGFydFNjcm9sbCA9IHNjcm9sbFBvcy5yaWdodFNjcm9sbCAtIHRoaXMuZGlzcGxheUNvbnRhaW5lclNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IG5leHRTY3JvbGwgPSAhKHRoaXMuZGlzcGxheUNvbnRhaW5lclNjcm9sbExlZnQgPD0gc2Nyb2xsUG9zLmxlZnRTY3JvbGwpICYmIHRoaXMuZGlzcGxheUNvbnRhaW5lcldpZHRoID49IHN0YXJ0U2Nyb2xsID9cbiAgICAgICAgICAgIHNjcm9sbFBvcy5sZWZ0U2Nyb2xsIDogc2Nyb2xsUG9zLnJpZ2h0U2Nyb2xsIC0gdGhpcy5kaXNwbGF5Q29udGFpbmVyV2lkdGg7XG4gICAgICAgIHRoaXMuZm9yT2ZEaXIoKS5nZXRTY3JvbGwoKS5zY3JvbGxMZWZ0ID0gbmV4dFNjcm9sbDtcbiAgICAgICAgdGhpcy5ncmlkLnBhcmVudFZpcnREaXIuY2h1bmtMb2FkXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHBlcmZvcm1WZXJ0aWNhbFNjcm9sbFRvQ2VsbChyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2I/OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5wYXJlbnRCeUNoaWxkSW5kZXgodmlzaWJsZUNvbEluZGV4IHx8IDApPy5jaGlsZHJlbjtcbiAgICAgICAgaWYgKCFzdXBlci5pc0RhdGFSb3cocm93SW5kZXgpIHx8IChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPCAyKSB8fCB2aXNpYmxlQ29sSW5kZXggPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIucGVyZm9ybVZlcnRpY2FsU2Nyb2xsVG9DZWxsKHJvd0luZGV4LCB2aXNpYmxlQ29sSW5kZXgsIGNiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuZ3JpZC5jYWxjSGVpZ2h0ID8gTWF0aC5jZWlsKHRoaXMuZ3JpZC5jYWxjSGVpZ2h0KSA6IDA7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0VmVydGljYWxTY3JvbGxQb3NpdGlvbnMocm93SW5kZXgsIHZpc2libGVDb2xJbmRleCk7XG4gICAgICAgIGNvbnN0IHJvdyA9IHN1cGVyLmdldFJvd0VsZW1lbnRCeUluZGV4KHJvd0luZGV4KTtcbiAgICAgICAgaWYgKCh0aGlzLnNjcm9sbFRvcCA+IHBvcy5yb3dUb3ApICYmICghcm93IHx8IHJvdy5vZmZzZXRUb3AgKyBwb3MudG9wT2Zmc2V0IDwgTWF0aC5hYnModGhpcy5jb250YWluZXJUb3BPZmZzZXQpKSkge1xuICAgICAgICAgICAgaWYgKHBvcy50b3BPZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuc2Nyb2xsVG8ocm93SW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuc2Nyb2xsUG9zaXRpb24gPSBwb3Mucm93VG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyLmFkZFNjcm9sbFRvcChNYXRoLmFicyhwb3Mucm93Qm90dG9tIC0gdGhpcy5zY3JvbGxUb3AgLSBjb250YWluZXJIZWlnaHQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuY2h1bmtMb2FkXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjYikge1xuICAgICAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROZXh0SG9yaXpvbnRhbENlbGxQb3NpdGlvbihwcmV2aW91cyA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50QnlDaGlsZEluZGV4KHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pO1xuICAgICAgICBpZiAoIXRoaXMuaGFzTmV4dEhvcml6b250YWxQb3NpdGlvbihwcmV2aW91cywgcGFyZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcm93OiB0aGlzLmFjdGl2ZU5vZGUucm93LCBjb2x1bW46IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2x1bW5zID0gcHJldmlvdXMgPyBwYXJlbnQuY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5yb3dTdGFydCA8PSB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LnJvd1N0YXJ0KVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIudmlzaWJsZUluZGV4IC0gYS52aXNpYmxlSW5kZXgpIDogcGFyZW50LmNoaWxkcmVuLmZpbHRlcihjID0+IGMucm93U3RhcnQgPD0gdGhpcy5hY3RpdmVOb2RlLmxheW91dC5yb3dTdGFydCk7XG4gICAgICAgIGxldCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbCkgPT4gcHJldmlvdXMgP1xuICAgICAgICAgICAgICAgIGNvbC52aXNpYmxlSW5kZXggPCB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uICYmIHRoaXMucm93RW5kKGNvbCkgPiB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LnJvd1N0YXJ0IDpcbiAgICAgICAgICAgICAgICBjb2wudmlzaWJsZUluZGV4ID4gdGhpcy5hY3RpdmVOb2RlLmNvbHVtbiAmJiBjb2wuY29sU3RhcnQgPiB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LmNvbFN0YXJ0KTtcbiAgICAgICAgaWYgKCFjb2x1bW4gfHwgKHByZXZpb3VzICYmIHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQuY29sU3RhcnQgPT09IDEpKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHByZXZpb3VzID8gcGFyZW50LnZpc2libGVJbmRleCAtIDEgOiBwYXJlbnQudmlzaWJsZUluZGV4ICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5ncmlkLmNvbHVtbnMuZmluZChjb2xzID0+IGNvbHMuY29sdW1uTGF5b3V0ICYmIGNvbHMudmlzaWJsZUluZGV4ID09PSBpbmRleCkuY2hpbGRyZW47XG4gICAgICAgICAgICBjb2x1bW4gPSBwcmV2aW91cyA/IGNoaWxkcmVuLnRvQXJyYXkoKS5yZXZlcnNlKCkuZmluZChjaGlsZCA9PiBjaGlsZC5yb3dTdGFydCA8PSB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LnJvd1N0YXJ0KSA6XG4gICAgICAgICAgICAgICAgY2hpbGRyZW4uZmluZChjaGlsZCA9PiB0aGlzLnJvd0VuZChjaGlsZCkgPiB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LnJvd1N0YXJ0ICYmIGNoaWxkLmNvbFN0YXJ0ID09PSAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByb3c6IHRoaXMuYWN0aXZlTm9kZS5yb3csIGNvbHVtbjogY29sdW1uLnZpc2libGVJbmRleCB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROZXh0VmVydGljYWxQb3NpdGlvbihwcmV2aW91cyA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4gPSB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uIHx8IDA7XG4gICAgICAgIGlmICghdGhpcy5oYXNOZXh0VmVydGljYWxQb3NpdGlvbihwcmV2aW91cykpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHJvdzogdGhpcy5hY3RpdmVOb2RlLnJvdywgY29sdW1uOiB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFJvd1N0YXJ0ID0gdGhpcy5ncmlkLmdldENvbHVtbkJ5VmlzaWJsZUluZGV4KHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pLnJvd1N0YXJ0O1xuICAgICAgICBjb25zdCBuZXh0QmxvY2sgPSAhdGhpcy5pc0RhdGFSb3codGhpcy5hY3RpdmVOb2RlLnJvdykgfHxcbiAgICAgICAgKHByZXZpb3VzID8gY3VycmVudFJvd1N0YXJ0ID09PSAxIDogY3VycmVudFJvd1N0YXJ0ID09PSB0aGlzLmxhc3RSb3dTdGFydFBlckJsb2NrKCkpO1xuICAgICAgICBjb25zdCBuZXh0UkkgPSBwcmV2aW91cyA/IHRoaXMuYWN0aXZlTm9kZS5yb3cgLSAxIDogdGhpcy5hY3RpdmVOb2RlLnJvdyArIDE7XG4gICAgICAgIGlmIChuZXh0QmxvY2sgJiYgIXRoaXMuaXNEYXRhUm93KG5leHRSSSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7cm93OiBuZXh0UkksICBjb2x1bW46IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW59O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5wYXJlbnRCeUNoaWxkSW5kZXgodGhpcy5hY3RpdmVOb2RlLmNvbHVtbikuY2hpbGRyZW47XG4gICAgICAgIGNvbnN0IGNvbCA9IHByZXZpb3VzID8gdGhpcy5nZXRQcmV2aW91c1Jvd0luZGV4KGNoaWxkcmVuLCBuZXh0QmxvY2spIDogdGhpcy5nZXROZXh0Um93SW5kZXgoY2hpbGRyZW4sIG5leHRCbG9jayk7XG4gICAgICAgIHJldHVybiB7IHJvdzogbmV4dEJsb2NrID8gbmV4dFJJIDogdGhpcy5hY3RpdmVOb2RlLnJvdywgY29sdW1uOiBjb2wudmlzaWJsZUluZGV4IH07XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGhlYWRlck5hdmlnYXRpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghSEVBREVSX0tFWVMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlTm9kZS5sYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQgPSB0aGlzLmxheW91dCh0aGlzLmFjdGl2ZU5vZGUuY29sdW1uIHx8IDApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFsdCA9IGV2ZW50LmFsdEtleTtcbiAgICAgICAgY29uc3QgY3RybCA9IGV2ZW50LmN0cmxLZXk7XG4gICAgICAgIHRoaXMucGVyZm9ybUhlYWRlcktleUNvbWJpbmF0aW9uKHRoaXMuZ3JpZC5nZXRDb2x1bW5CeVZpc2libGVJbmRleCh0aGlzLmFjdGl2ZU5vZGUuY29sdW1uKSwga2V5LCBldmVudC5zaGlmdEtleSwgY3RybCwgYWx0LCBldmVudCk7XG4gICAgICAgIGlmICghY3RybCAmJiAhYWx0ICYmIChrZXkuaW5jbHVkZXMoJ2Rvd24nKSB8fCBrZXkuaW5jbHVkZXMoJ3VwJykpKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMucGFyZW50QnlDaGlsZEluZGV4KHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pLmNoaWxkcmVuO1xuICAgICAgICAgICAgY29uc3QgY29sID0ga2V5LmluY2x1ZGVzKCdkb3duJykgPyB0aGlzLmdldE5leHRSb3dJbmRleChjaGlsZHJlbiwgZmFsc2UpIDogdGhpcy5nZXRQcmV2aW91c1Jvd0luZGV4KGNoaWxkcmVuLCBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoIWNvbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4gPSBjb2wudmlzaWJsZUluZGV4O1xuICAgICAgICAgICAgY29uc3QgbGF5b3V0ID0gdGhpcy5sYXlvdXQodGhpcy5hY3RpdmVOb2RlLmNvbHVtbik7XG4gICAgICAgICAgICBjb25zdCBuZXh0TGF5b3V0ID0gey4uLnRoaXMuYWN0aXZlTm9kZS5sYXlvdXQsIHJvd1N0YXJ0OiBsYXlvdXQucm93U3RhcnQsIHJvd0VuZDogbGF5b3V0LnJvd0VuZH07XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZU5vZGUoe3JvdzogdGhpcy5hY3RpdmVOb2RlLnJvdywgbGF5b3V0OiBuZXh0TGF5b3V0fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3Jpem9udGFsTmF2KGV2ZW50LCBrZXksIC0xLCAnaGVhZGVyQ2VsbCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbGF5b3V0KHZpc2libGVJbmRleCkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgodmlzaWJsZUluZGV4KTtcbiAgICAgICAgcmV0dXJuIHtjb2xTdGFydDogY29sdW1uLmNvbFN0YXJ0LCByb3dTdGFydDogY29sdW1uLnJvd1N0YXJ0LFxuICAgICAgICAgICAgICAgIGNvbEVuZDogY29sdW1uLmNvbEVuZCwgcm93RW5kOiBjb2x1bW4ucm93RW5kLCBjb2x1bW5WaXNpYmxlSW5kZXg6IGNvbHVtbi52aXNpYmxlSW5kZXggfTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0TmV4dFBvc2l0aW9uKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIsIGtleTogc3RyaW5nLCBzaGlmdDogYm9vbGVhbiwgY3RybDogYm9vbGVhbiwgZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZU5vZGUubGF5b3V0KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0ID0gdGhpcy5sYXlvdXQodGhpcy5hY3RpdmVOb2RlLmNvbHVtbiB8fCAwKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgY2FzZSAnc3BhY2ViYXInOlxuICAgICAgICAgICAgY2FzZSAnc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnZXNjYXBlJzpcbiAgICAgICAgICAgIGNhc2UgJ2VzYyc6XG4gICAgICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgICBjYXNlICdmMic6XG4gICAgICAgICAgICAgICAgc3VwZXIuZ2V0TmV4dFBvc2l0aW9uKHJvd0luZGV4LCBjb2xJbmRleCwga2V5LCBzaGlmdCwgY3RybCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICByb3dJbmRleCA9IGN0cmwgPyB0aGlzLmZpbmRMYXN0RGF0YVJvd0luZGV4KCkgOiB0aGlzLmFjdGl2ZU5vZGUucm93O1xuICAgICAgICAgICAgICAgIGNvbEluZGV4ID0gY3RybCA/IHRoaXMubGFzdENvbEluZGV4UGVyTVJMQmxvY2sodGhpcy5sYXN0SW5kZXhQZXJSb3cpIDogdGhpcy5sYXN0SW5kZXhQZXJSb3c7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob21lJzpcbiAgICAgICAgICAgICAgICByb3dJbmRleCA9IGN0cmwgPyB0aGlzLmZpbmRGaXJzdERhdGFSb3dJbmRleCgpIDogdGhpcy5hY3RpdmVOb2RlLnJvdztcbiAgICAgICAgICAgICAgICBjb2xJbmRleCA9IGN0cmwgPyAwIDogdGhpcy5maXJzdEluZGV4UGVyUm93O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dsZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIGNvbEluZGV4ID0gY3RybCA/IHRoaXMuZmlyc3RJbmRleFBlclJvdyA6IHRoaXMuZ2V0TmV4dEhvcml6b250YWxDZWxsUG9zaXRpb24odHJ1ZSkuY29sdW1uO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgY29sSW5kZXggPSBjdHJsID8gdGhpcy5sYXN0SW5kZXhQZXJSb3cgOiB0aGlzLmdldE5leHRIb3Jpem9udGFsQ2VsbFBvc2l0aW9uKCkuY29sdW1uO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlBvcyA9IHRoaXMuZ2V0TmV4dFZlcnRpY2FsUG9zaXRpb24odHJ1ZSk7XG4gICAgICAgICAgICAgICAgY29sSW5kZXggPSBjdHJsID8gdGhpcy5hY3RpdmVOb2RlLmNvbHVtbiA6IHByZXZQb3MuY29sdW1uO1xuICAgICAgICAgICAgICAgIHJvd0luZGV4ID0gY3RybCA/IHRoaXMuZmluZEZpcnN0RGF0YVJvd0luZGV4KCkgOiBwcmV2UG9zLnJvdztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Fycm93ZG93bic6XG4gICAgICAgICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0UG9zID0gdGhpcy5nZXROZXh0VmVydGljYWxQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIGNvbEluZGV4ID0gY3RybCA/IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4gOiBuZXh0UG9zLmNvbHVtbjtcbiAgICAgICAgICAgICAgICByb3dJbmRleCA9IGN0cmwgPyB0aGlzLmZpbmRMYXN0RGF0YVJvd0luZGV4KCkgOiBuZXh0UG9zLnJvdztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRMYXlvdXQgPSB0aGlzLmxheW91dChjb2xJbmRleCk7XG4gICAgICAgIGNvbnN0IG5ld0xheW91dCA9IGtleS5pbmNsdWRlcygndXAnKSB8fCBrZXkuaW5jbHVkZXMoJ2Rvd24nKSA/IHtyb3dTdGFydDogbmV4dExheW91dC5yb3dTdGFydH0gOiB7Y29sU3RhcnQ6IG5leHRMYXlvdXQuY29sU3RhcnR9O1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQsIG5ld0xheW91dCwge3Jvd0VuZDogbmV4dExheW91dC5yb3dFbmR9KTtcblxuICAgICAgICBpZiAoY3RybCAmJiAoa2V5ID09PSAnaG9tZScgfHwga2V5ID09PSAnZW5kJykpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQgPSBuZXh0TGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHJvd0luZGV4LCBjb2xJbmRleCB9O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBob3Jpem9udGFsTmF2KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBrZXk6IHN0cmluZywgcm93SW5kZXg6IG51bWJlciwgdGFnOiBHcmlkS2V5ZG93blRhcmdldFR5cGUpIHtcbiAgICAgICAgY29uc3QgY3RybCA9IGV2ZW50LmN0cmxLZXk7XG4gICAgICAgIGlmICghSE9SSVpPTlRBTF9OQVZfS0VZUy5oYXMoa2V5KSB8fCBldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZU5vZGUucm93ID0gcm93SW5kZXg7XG5cbiAgICAgICAgY29uc3QgbmV3QWN0aXZlTm9kZSA9IHtcbiAgICAgICAgICAgIGNvbHVtbjogdGhpcy5hY3RpdmVOb2RlLmNvbHVtbixcbiAgICAgICAgICAgIG1jaENhY2hlOiB7XG4gICAgICAgICAgICAgICAgbGV2ZWw6IHRoaXMuYWN0aXZlTm9kZS5sZXZlbCxcbiAgICAgICAgICAgICAgICB2aXNpYmxlSW5kZXg6IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoKGtleS5pbmNsdWRlcygnbGVmdCcpIHx8IGtleSA9PT0gJ2hvbWUnKSAmJiB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uID4gMCkge1xuICAgICAgICAgICAgbmV3QWN0aXZlTm9kZS5jb2x1bW4gPSBjdHJsIHx8IGtleSA9PT0gJ2hvbWUnID8gdGhpcy5maXJzdEluZGV4UGVyUm93IDogdGhpcy5nZXROZXh0SG9yaXpvbnRhbENlbGxQb3NpdGlvbih0cnVlKS5jb2x1bW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChrZXkuaW5jbHVkZXMoJ3JpZ2h0JykgfHwga2V5ID09PSAnZW5kJykgJiYgdGhpcy5hY3RpdmVOb2RlLmNvbHVtbiAhPT0gdGhpcy5sYXN0SW5kZXhQZXJSb3cpIHtcbiAgICAgICAgICAgIG5ld0FjdGl2ZU5vZGUuY29sdW1uID0gY3RybCB8fCBrZXkgPT09ICdlbmQnID8gdGhpcy5sYXN0SW5kZXhQZXJSb3cgOiB0aGlzLmdldE5leHRIb3Jpem9udGFsQ2VsbFBvc2l0aW9uKCkuY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhZyA9PT0gJ2hlYWRlckNlbGwnKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgobmV3QWN0aXZlTm9kZS5jb2x1bW4pO1xuICAgICAgICAgICAgbmV3QWN0aXZlTm9kZS5tY2hDYWNoZS5sZXZlbCA9IGNvbHVtbi5sZXZlbDtcbiAgICAgICAgICAgIG5ld0FjdGl2ZU5vZGUubWNoQ2FjaGUudmlzaWJsZUluZGV4ID0gY29sdW1uLnZpc2libGVJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxheW91dCA9IHRoaXMubGF5b3V0KG5ld0FjdGl2ZU5vZGUuY29sdW1uKTtcbiAgICAgICAgY29uc3QgbmV3TGF5b3V0ID0gey4uLnRoaXMuYWN0aXZlTm9kZS5sYXlvdXQsIGNvbFN0YXJ0OiBsYXlvdXQuY29sU3RhcnQsIHJvd0VuZDogbGF5b3V0LnJvd0VuZH07XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlTm9kZSh7cm93OiB0aGlzLmFjdGl2ZU5vZGUucm93LCBjb2x1bW46IG5ld0FjdGl2ZU5vZGUuY29sdW1uLFxuICAgICAgICAgICAgbGF5b3V0OiBuZXdMYXlvdXQsIG1jaENhY2hlOiBuZXdBY3RpdmVOb2RlLm1jaENhY2hlfSk7XG4gICAgICAgIHRoaXMucGVyZm9ybUhvcml6b250YWxTY3JvbGxUb0NlbGwobmV3QWN0aXZlTm9kZS5jb2x1bW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQYXJlbnRDb2x1bW5GdWxseVZpc2libGUocGFyZW50OiBDb2x1bW5UeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5mb3JPZkRpcigpLmdldFNjcm9sbCgpLmNsaWVudFdpZHRoIHx8IHBhcmVudD8ucGlubmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JPZkRpcigpLmlneEZvck9mLmluZGV4T2YocGFyZW50KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheUNvbnRhaW5lcldpZHRoID49IHRoaXMuZm9yT2ZEaXIoKS5nZXRDb2x1bW5TY3JvbGxMZWZ0KGluZGV4ICsgMSkgLSB0aGlzLmRpc3BsYXlDb250YWluZXJTY3JvbGxMZWZ0ICYmXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250YWluZXJTY3JvbGxMZWZ0IDw9IHRoaXMuZm9yT2ZEaXIoKS5nZXRDb2x1bW5TY3JvbGxMZWZ0KGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoaWxkQ29sdW1uU2Nyb2xsUG9zaXRpb25zKHZpc2libGVDb2xJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeVZpc2libGVJbmRleCh2aXNpYmxlQ29sSW5kZXgpO1xuICAgICAgICBjb25zdCBwYXJlbnRWSW5kZXggPSB0aGlzLmZvck9mRGlyKCkuaWd4Rm9yT2YuaW5kZXhPZih0YXJnZXRDb2wucGFyZW50KTtcbiAgICAgICAgbGV0IGxlZnRTY3JvbGwgPSB0aGlzLmZvck9mRGlyKCkuZ2V0Q29sdW1uU2Nyb2xsTGVmdChwYXJlbnRWSW5kZXgpO1xuICAgICAgICBsZXQgcmlnaHRTY3JvbGwgPSB0aGlzLmZvck9mRGlyKCkuZ2V0Q29sdW1uU2Nyb2xsTGVmdChwYXJlbnRWSW5kZXggKyAxKTtcbiAgICAgICAgdGFyZ2V0Q29sLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICBpZiAoYy5yb3dTdGFydCA+PSB0YXJnZXRDb2wucm93U3RhcnQgJiYgYy52aXNpYmxlSW5kZXggPCB0YXJnZXRDb2wudmlzaWJsZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGVmdFNjcm9sbCArPSBwYXJzZUludChjLndpZHRoLCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYy5yb3dTdGFydCA8PSB0YXJnZXRDb2wucm93U3RhcnQgJiYgYy52aXNpYmxlSW5kZXggPiB0YXJnZXRDb2wudmlzaWJsZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmlnaHRTY3JvbGwgLT0gcGFyc2VJbnQoYy53aWR0aCwgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgbGVmdFNjcm9sbCwgcmlnaHRTY3JvbGwgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRSb3dJbmRleChjaGlsZHJlbiwgbmV4dCkge1xuICAgICAgICBjb25zdCByb3dTdGFydCA9IG5leHQgPyAxIDogdGhpcy5yb3dFbmQodGhpcy5ncmlkLmdldENvbHVtbkJ5VmlzaWJsZUluZGV4KHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pKTtcbiAgICAgICAgY29uc3QgIGNvbCA9IGNoaWxkcmVuLmZpbHRlcihjID0+IGMucm93U3RhcnQgPT09IHJvd1N0YXJ0KTtcbiAgICAgICAgcmV0dXJuIGNvbC5maW5kKGNvID0+IGNvLmNvbFN0YXJ0ID09PSB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LmNvbFN0YXJ0KSB8fFxuICAgICAgICAgICAgY29sLnNvcnQoKGEsIGIpID0+IGIudmlzaWJsZUluZGV4IC0gYS52aXNpYmxlSW5kZXgpLmZpbmQoY28gPT4gY28uY29sU3RhcnQgPD0gdGhpcy5hY3RpdmVOb2RlLmxheW91dC5jb2xTdGFydCk7XG59XG5cbiAgICBwcml2YXRlIGdldFByZXZpb3VzUm93SW5kZXgoY2hpbGRyZW4sIHByZXYpIHtcbiAgICAgICAgY29uc3QgZW5kID0gcHJldiA/IE1hdGgubWF4KC4uLmNoaWxkcmVuLm1hcChjID0+IHRoaXMucm93RW5kKGMpKSkgOlxuICAgICAgICAgICAgdGhpcy5ncmlkLmdldENvbHVtbkJ5VmlzaWJsZUluZGV4KHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pLnJvd1N0YXJ0O1xuICAgICAgICBjb25zdCBjb2wgPSBjaGlsZHJlbi5maWx0ZXIoYyA9PiB0aGlzLnJvd0VuZChjKSA9PT0gIGVuZCk7XG4gICAgICAgIHJldHVybiBjb2wuZmluZChjbyA9PiBjby5jb2xTdGFydCA9PT0gdGhpcy5hY3RpdmVOb2RlLmxheW91dC5jb2xTdGFydCkgfHxcbiAgICAgICAgICAgIGNvbC5zb3J0KChhLCBiKSA9PiBiLnZpc2libGVJbmRleCAtIGEudmlzaWJsZUluZGV4KS5maW5kKGNvID0+IGNvLmNvbFN0YXJ0IDw9IHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQuY29sU3RhcnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxhc3RJbmRleFBlclJvdygpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ3JpZC52aXNpYmxlQ29sdW1ucy5maW5kKGMgPT4gYy52aXNpYmxlSW5kZXggPT09IHRoaXMubGFzdExheW91dEluZGV4ICYmIGMuY29sdW1uTGF5b3V0KVxuICAgICAgICAgICAgLmNoaWxkcmVuLnRvQXJyYXkoKS5yZXZlcnNlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGNoaWxkcmVuLmZpbmQoY28gPT4gY28ucm93U3RhcnQgPT09IHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQucm93U3RhcnQpIHx8XG4gICAgICAgIGNoaWxkcmVuLmZpbmQoY28gPT4gY28ucm93U3RhcnQgPD0gdGhpcy5hY3RpdmVOb2RlLmxheW91dC5yb3dTdGFydCk7XG4gICAgICAgIHJldHVybiBjb2x1bW4udmlzaWJsZUluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGZpcnN0SW5kZXhQZXJSb3coKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZmluZChjID0+IGMudmlzaWJsZUluZGV4ID09PSAwICYmIGMuY29sdW1uTGF5b3V0KS5jaGlsZHJlbjtcbiAgICAgICAgY29uc3QgY29sdW1uID0gY2hpbGRyZW4uZmluZChjbyA9PiBjby5yb3dTdGFydCA9PT0gdGhpcy5hY3RpdmVOb2RlLmxheW91dC5yb3dTdGFydCkgfHxcbiAgICAgICAgY2hpbGRyZW4uZmluZChjbyA9PiBjby5yb3dTdGFydCA8PSB0aGlzLmFjdGl2ZU5vZGUubGF5b3V0LnJvd1N0YXJ0KTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi52aXNpYmxlSW5kZXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGFzdExheW91dEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCguLi50aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZmlsdGVyKGMgPT4gYy5jb2x1bW5MYXlvdXQpLm1hcChjb2wgPT4gY29sLnZpc2libGVJbmRleCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHNjcm9sbFRvcCgpOiBudW1iZXIge1xuICAgICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdyaWQudmVydGljYWxTY3JvbGxDb250YWluZXIuZ2V0U2Nyb2xsKCkuc2Nyb2xsVG9wKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxhc3RDb2xJbmRleFBlck1STEJsb2NrKHZpc2libGVJbmRleCA9IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRCeUNoaWxkSW5kZXgodmlzaWJsZUluZGV4KS5jaGlsZHJlbi5sYXN0LnZpc2libGVJbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxhc3RSb3dTdGFydFBlckJsb2NrKHZpc2libGVJbmRleCA9IHRoaXMuYWN0aXZlTm9kZS5jb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLnRoaXMucGFyZW50QnlDaGlsZEluZGV4KHZpc2libGVJbmRleCkuY2hpbGRyZW4ubWFwKGMgPT4gYy5yb3dTdGFydCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcm93RW5kKGNvbHVtbik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ucm93RW5kICYmIGNvbHVtbi5yb3dFbmQgLSBjb2x1bW4ucm93U3RhcnQgPyBjb2x1bW4ucm93U3RhcnQgKyBjb2x1bW4ucm93RW5kIC0gY29sdW1uLnJvd1N0YXJ0IDogY29sdW1uLnJvd1N0YXJ0ICsgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcmVudEJ5Q2hpbGRJbmRleCh2aXNpYmxlSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5nZXRDb2x1bW5CeVZpc2libGVJbmRleCh2aXNpYmxlSW5kZXgpPy5wYXJlbnQ7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc05leHRIb3Jpem9udGFsUG9zaXRpb24ocHJldmlvdXMgPSBmYWxzZSwgcGFyZW50KSB7XG4gICAgICAgIGlmIChwcmV2aW91cyAmJiBwYXJlbnQudmlzaWJsZUluZGV4ID09PSAwICYmIHRoaXMuYWN0aXZlTm9kZS5sYXlvdXQuY29sU3RhcnQgPT09IDEgfHxcbiAgICAgICAgICAgICFwcmV2aW91cyAmJiBwYXJlbnQudmlzaWJsZUluZGV4ID09PSB0aGlzLmxhc3RMYXlvdXRJbmRleCAmJiB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uID09PSB0aGlzLmxhc3RJbmRleFBlclJvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzTmV4dFZlcnRpY2FsUG9zaXRpb24ocHJldiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICgocHJldiAmJiB0aGlzLmFjdGl2ZU5vZGUucm93ID09PSAwICYmICghdGhpcy5pc0RhdGFSb3codGhpcy5hY3RpdmVOb2RlLnJvdykgfHwgdGhpcy5hY3RpdmVOb2RlLmxheW91dC5yb3dTdGFydCA9PT0gMSkpIHx8XG4gICAgICAgICAgICAoIXByZXYgJiYgdGhpcy5hY3RpdmVOb2RlLnJvdyA+PSB0aGlzLmdyaWQuZGF0YVZpZXcubGVuZ3RoIC0gMSAmJiB0aGlzLmFjdGl2ZU5vZGUuY29sdW1uID09PSB0aGlzLmxhc3RDb2xJbmRleFBlck1STEJsb2NrKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19