igniteui-angular 16.0.0-beta.2 → 16.0.0-beta.4

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 (349) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  2. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  3. package/esm2022/lib/action-strip/action-strip.component.mjs +7 -7
  4. package/esm2022/lib/action-strip/action-strip.module.mjs +5 -5
  5. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +4 -4
  7. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +4 -4
  8. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +4 -4
  9. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  10. package/esm2022/lib/avatar/avatar.module.mjs +5 -5
  11. package/esm2022/lib/badge/badge.component.mjs +4 -4
  12. package/esm2022/lib/badge/badge.module.mjs +5 -5
  13. package/esm2022/lib/banner/banner.component.mjs +4 -4
  14. package/esm2022/lib/banner/banner.directives.mjs +4 -4
  15. package/esm2022/lib/banner/banner.module.mjs +5 -5
  16. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +4 -4
  17. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +5 -5
  18. package/esm2022/lib/calendar/calendar-base.mjs +4 -4
  19. package/esm2022/lib/calendar/calendar.component.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar.directives.mjs +16 -16
  21. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  22. package/esm2022/lib/calendar/days-view/day-item.component.mjs +4 -4
  23. package/esm2022/lib/calendar/days-view/days-view.component.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +4 -4
  25. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +4 -4
  26. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +4 -4
  27. package/esm2022/lib/calendar/months-view/months-view.component.mjs +4 -4
  28. package/esm2022/lib/calendar/months-view.pipe.mjs +7 -7
  29. package/esm2022/lib/calendar/years-view/years-view.component.mjs +7 -7
  30. package/esm2022/lib/card/card.component.mjs +28 -28
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  33. package/esm2022/lib/carousel/carousel.directives.mjs +10 -10
  34. package/esm2022/lib/carousel/carousel.module.mjs +5 -5
  35. package/esm2022/lib/carousel/slide.component.mjs +4 -4
  36. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  37. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  38. package/esm2022/lib/chips/chip.component.mjs +4 -4
  39. package/esm2022/lib/chips/chips-area.component.mjs +4 -4
  40. package/esm2022/lib/chips/chips.module.mjs +5 -5
  41. package/esm2022/lib/combo/combo-add-item.component.mjs +4 -4
  42. package/esm2022/lib/combo/combo-dropdown.component.mjs +4 -4
  43. package/esm2022/lib/combo/combo-item.component.mjs +4 -4
  44. package/esm2022/lib/combo/combo.api.mjs +4 -4
  45. package/esm2022/lib/combo/combo.common.mjs +4 -4
  46. package/esm2022/lib/combo/combo.component.mjs +4 -4
  47. package/esm2022/lib/combo/combo.directives.mjs +25 -25
  48. package/esm2022/lib/combo/combo.module.mjs +5 -5
  49. package/esm2022/lib/combo/combo.pipes.mjs +7 -7
  50. package/esm2022/lib/core/density.mjs +4 -4
  51. package/esm2022/lib/core/navigation/directives.mjs +7 -7
  52. package/esm2022/lib/core/navigation/nav.service.mjs +4 -4
  53. package/esm2022/lib/core/selection.mjs +4 -4
  54. package/esm2022/lib/core/touch.mjs +4 -4
  55. package/esm2022/lib/core/utils.mjs +4 -4
  56. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +4 -4
  57. package/esm2022/lib/date-common/picker-base.directive.mjs +4 -4
  58. package/esm2022/lib/date-common/picker-icons.common.mjs +10 -10
  59. package/esm2022/lib/date-picker/date-picker.component.mjs +4 -4
  60. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  61. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +16 -16
  62. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  64. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  65. package/esm2022/lib/dialog/dialog.directives.mjs +7 -7
  66. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  67. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +5 -5
  69. package/esm2022/lib/directives/button/button.directive.mjs +4 -4
  70. package/esm2022/lib/directives/button/button.module.mjs +5 -5
  71. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +4 -4
  72. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +5 -5
  73. package/esm2022/lib/directives/divider/divider.directive.mjs +4 -4
  74. package/esm2022/lib/directives/divider/divider.module.mjs +5 -5
  75. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +13 -13
  76. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +5 -5
  77. package/esm2022/lib/directives/filter/filter.directive.mjs +7 -7
  78. package/esm2022/lib/directives/filter/filter.module.mjs +5 -5
  79. package/esm2022/lib/directives/focus/focus.directive.mjs +4 -4
  80. package/esm2022/lib/directives/focus/focus.module.mjs +5 -5
  81. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +4 -4
  82. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +5 -5
  83. package/esm2022/lib/directives/for-of/base.helper.component.mjs +4 -4
  84. package/esm2022/lib/directives/for-of/display.container.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -7
  86. package/esm2022/lib/directives/for-of/for_of.module.mjs +5 -5
  87. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +7 -7
  88. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +4 -4
  90. package/esm2022/lib/directives/form-control/form-control.directive.mjs +4 -4
  91. package/esm2022/lib/directives/form-control/form-control.module.mjs +5 -5
  92. package/esm2022/lib/directives/hint/hint.directive.mjs +4 -4
  93. package/esm2022/lib/directives/input/input.directive.mjs +14 -4
  94. package/esm2022/lib/directives/label/label.directive.mjs +4 -4
  95. package/esm2022/lib/directives/layout/layout.directive.mjs +7 -7
  96. package/esm2022/lib/directives/layout/layout.module.mjs +5 -5
  97. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +4 -4
  98. package/esm2022/lib/directives/mask/mask.directive.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask.module.mjs +5 -5
  100. package/esm2022/lib/directives/notification/notifications.directive.mjs +4 -4
  101. package/esm2022/lib/directives/prefix/prefix.directive.mjs +4 -4
  102. package/esm2022/lib/directives/radio/radio-group.directive.mjs +4 -4
  103. package/esm2022/lib/directives/radio/radio-group.module.mjs +5 -5
  104. package/esm2022/lib/directives/ripple/ripple.directive.mjs +4 -4
  105. package/esm2022/lib/directives/ripple/ripple.module.mjs +5 -5
  106. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +4 -4
  107. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +5 -5
  108. package/esm2022/lib/directives/suffix/suffix.directive.mjs +4 -4
  109. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +4 -4
  110. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +4 -4
  111. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +5 -5
  112. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +4 -4
  113. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +5 -5
  114. package/esm2022/lib/directives/toggle/toggle.directive.mjs +10 -10
  115. package/esm2022/lib/directives/toggle/toggle.module.mjs +5 -5
  116. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +4 -4
  117. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +4 -4
  119. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +5 -5
  120. package/esm2022/lib/drop-down/drop-down-group.component.mjs +4 -4
  121. package/esm2022/lib/drop-down/drop-down-item.base.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-item.component.mjs +4 -4
  123. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +4 -4
  124. package/esm2022/lib/drop-down/drop-down.base.mjs +4 -4
  125. package/esm2022/lib/drop-down/drop-down.component.mjs +4 -4
  126. package/esm2022/lib/drop-down/drop-down.module.mjs +5 -5
  127. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +4 -4
  128. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +4 -4
  130. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  131. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +10 -10
  132. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +5 -5
  133. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +4 -4
  134. package/esm2022/lib/grids/api.service.mjs +4 -4
  135. package/esm2022/lib/grids/cell.component.mjs +4 -4
  136. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +4 -4
  137. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +13 -13
  138. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +4 -4
  139. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +4 -4
  140. package/esm2022/lib/grids/column-actions/public_api.mjs +13 -0
  141. package/esm2022/lib/grids/columns/column-group.component.mjs +4 -4
  142. package/esm2022/lib/grids/columns/column-layout.component.mjs +4 -4
  143. package/esm2022/lib/grids/columns/column.component.mjs +4 -4
  144. package/esm2022/lib/grids/columns/templates.directive.mjs +25 -25
  145. package/esm2022/lib/grids/columns/validators.directive.mjs +22 -22
  146. package/esm2022/lib/grids/common/crud.service.mjs +4 -4
  147. package/esm2022/lib/grids/common/pipes.mjs +55 -55
  148. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +4 -4
  149. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +4 -4
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +4 -4
  151. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +4 -4
  152. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +4 -4
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +4 -4
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +4 -4
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +4 -4
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +4 -4
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +10 -10
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +4 -4
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +4 -4
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +4 -4
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +4 -4
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +7 -7
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +4 -4
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +4 -4
  165. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +4 -4
  166. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +4 -4
  167. package/esm2022/lib/grids/grid/grid-api.service.mjs +4 -4
  168. package/esm2022/lib/grids/grid/grid-row.component.mjs +4 -4
  169. package/esm2022/lib/grids/grid/grid-validation.service.mjs +4 -4
  170. package/esm2022/lib/grids/grid/grid.component.mjs +5 -6
  171. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +4 -4
  172. package/esm2022/lib/grids/grid/grid.directives.mjs +34 -34
  173. package/esm2022/lib/grids/grid/grid.module.mjs +27 -24
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +13 -13
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +4 -4
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +4 -4
  177. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  178. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +4 -4
  179. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +4 -4
  180. package/esm2022/lib/grids/grid-navigation.service.mjs +4 -4
  181. package/esm2022/lib/grids/grid.common.mjs +4 -4
  182. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +16 -16
  183. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +4 -4
  184. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +7 -7
  185. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +4 -4
  186. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +4 -4
  187. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +4 -4
  188. package/esm2022/lib/grids/headers/grid-header.component.mjs +4 -4
  189. package/esm2022/lib/grids/headers/pipes.mjs +10 -10
  190. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +4 -4
  191. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +4 -4
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +4 -4
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +4 -4
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +7 -7
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +27 -24
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +7 -7
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +4 -4
  199. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +4 -4
  200. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +4 -4
  201. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +4 -4
  202. package/esm2022/lib/grids/moving/moving.service.mjs +4 -4
  203. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +4 -4
  204. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +4 -4
  205. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +4 -4
  206. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +4 -4
  207. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +4 -4
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +27 -24
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +31 -31
  210. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +4 -4
  211. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +4 -4
  213. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +4 -4
  214. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +4 -4
  215. package/esm2022/lib/grids/public_api.mjs +5 -2
  216. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +4 -4
  217. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +4 -4
  218. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +4 -4
  219. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +4 -4
  220. package/esm2022/lib/grids/resizing/resizer.component.mjs +4 -4
  221. package/esm2022/lib/grids/resizing/resizer.directive.mjs +4 -4
  222. package/esm2022/lib/grids/resizing/resizing.service.mjs +4 -4
  223. package/esm2022/lib/grids/row-drag.directive.mjs +10 -10
  224. package/esm2022/lib/grids/row.directive.mjs +4 -4
  225. package/esm2022/lib/grids/selection/drag-select.directive.mjs +4 -4
  226. package/esm2022/lib/grids/selection/row-selectors.mjs +10 -10
  227. package/esm2022/lib/grids/selection/selection.service.mjs +4 -4
  228. package/esm2022/lib/grids/state.directive.mjs +4 -4
  229. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +4 -4
  230. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +4 -4
  231. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +4 -4
  232. package/esm2022/lib/grids/summaries/summary-row.component.mjs +4 -4
  233. package/esm2022/lib/grids/toolbar/common.mjs +16 -16
  234. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +4 -4
  235. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +4 -4
  236. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +4 -4
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +4 -4
  238. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +7 -7
  239. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +4 -4
  240. package/esm2022/lib/grids/tree-grid/public_api.mjs +7 -1
  241. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +4 -4
  242. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +4 -4
  243. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +4 -4
  244. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +4 -4
  245. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +4 -4
  246. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +4 -4
  247. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +4 -4
  248. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +4 -4
  249. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +44 -39
  250. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +22 -22
  251. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +4 -4
  252. package/esm2022/lib/icon/icon.component.mjs +4 -4
  253. package/esm2022/lib/icon/icon.module.mjs +5 -5
  254. package/esm2022/lib/icon/icon.service.mjs +4 -4
  255. package/esm2022/lib/input-group/input-group.component.mjs +4 -4
  256. package/esm2022/lib/input-group/input-group.module.mjs +5 -5
  257. package/esm2022/lib/list/list-item.component.mjs +4 -4
  258. package/esm2022/lib/list/list.common.mjs +16 -16
  259. package/esm2022/lib/list/list.component.mjs +19 -19
  260. package/esm2022/lib/list/list.module.mjs +5 -5
  261. package/esm2022/lib/navbar/navbar.component.mjs +10 -10
  262. package/esm2022/lib/navbar/navbar.module.mjs +5 -5
  263. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +4 -4
  264. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +10 -10
  265. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +5 -5
  266. package/esm2022/lib/paginator/paginator-interfaces.mjs +4 -4
  267. package/esm2022/lib/paginator/paginator.component.mjs +13 -13
  268. package/esm2022/lib/paginator/paginator.module.mjs +5 -5
  269. package/esm2022/lib/progressbar/progressbar.common.mjs +7 -7
  270. package/esm2022/lib/progressbar/progressbar.component.mjs +10 -10
  271. package/esm2022/lib/progressbar/progressbar.module.mjs +5 -5
  272. package/esm2022/lib/query-builder/query-builder-header.component.mjs +4 -4
  273. package/esm2022/lib/query-builder/query-builder.component.mjs +7 -7
  274. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  275. package/esm2022/lib/radio/radio.component.mjs +4 -4
  276. package/esm2022/lib/select/select-group.component.mjs +4 -4
  277. package/esm2022/lib/select/select-item.component.mjs +4 -4
  278. package/esm2022/lib/select/select-navigation.directive.mjs +4 -4
  279. package/esm2022/lib/select/select.component.mjs +13 -13
  280. package/esm2022/lib/select/select.module.mjs +5 -5
  281. package/esm2022/lib/services/animation/angular-animation-service.mjs +4 -4
  282. package/esm2022/lib/services/csv/csv-exporter.mjs +4 -4
  283. package/esm2022/lib/services/direction/directionality.mjs +4 -4
  284. package/esm2022/lib/services/excel/excel-exporter.mjs +4 -4
  285. package/esm2022/lib/services/overlay/overlay.mjs +4 -4
  286. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +7 -7
  287. package/esm2022/lib/simple-combo/simple-combo.component.mjs +4 -4
  288. package/esm2022/lib/simple-combo/simple-combo.module.mjs +5 -5
  289. package/esm2022/lib/slider/label/thumb-label.component.mjs +4 -4
  290. package/esm2022/lib/slider/slider.common.mjs +10 -10
  291. package/esm2022/lib/slider/slider.component.mjs +4 -4
  292. package/esm2022/lib/slider/slider.module.mjs +5 -5
  293. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +4 -4
  294. package/esm2022/lib/slider/ticks/tick.pipe.mjs +4 -4
  295. package/esm2022/lib/slider/ticks/ticks.component.mjs +4 -4
  296. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  297. package/esm2022/lib/snackbar/snackbar.module.mjs +5 -5
  298. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +4 -4
  299. package/esm2022/lib/splitter/splitter.component.mjs +7 -7
  300. package/esm2022/lib/splitter/splitter.module.mjs +5 -5
  301. package/esm2022/lib/stepper/step/step.component.mjs +4 -4
  302. package/esm2022/lib/stepper/stepper.component.mjs +4 -4
  303. package/esm2022/lib/stepper/stepper.directive.mjs +22 -22
  304. package/esm2022/lib/stepper/stepper.module.mjs +5 -5
  305. package/esm2022/lib/stepper/stepper.service.mjs +4 -4
  306. package/esm2022/lib/switch/switch.component.mjs +4 -4
  307. package/esm2022/lib/switch/switch.module.mjs +5 -5
  308. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +4 -4
  309. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +4 -4
  310. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +4 -4
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +7 -7
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +5 -5
  314. package/esm2022/lib/tabs/tab-content.directive.mjs +4 -4
  315. package/esm2022/lib/tabs/tab-header.directive.mjs +4 -4
  316. package/esm2022/lib/tabs/tab-item.directive.mjs +4 -4
  317. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +4 -4
  318. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +4 -4
  319. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +4 -4
  320. package/esm2022/lib/tabs/tabs/tabs.component.mjs +4 -4
  321. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +7 -7
  322. package/esm2022/lib/tabs/tabs/tabs.module.mjs +5 -5
  323. package/esm2022/lib/tabs/tabs.directive.mjs +4 -4
  324. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  325. package/esm2022/lib/time-picker/time-picker.directives.mjs +7 -7
  326. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  327. package/esm2022/lib/time-picker/time-picker.pipes.mjs +7 -7
  328. package/esm2022/lib/toast/toast.component.mjs +4 -4
  329. package/esm2022/lib/toast/toast.module.mjs +5 -5
  330. package/esm2022/lib/tree/tree-navigation.service.mjs +4 -4
  331. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +7 -7
  332. package/esm2022/lib/tree/tree-selection.service.mjs +4 -4
  333. package/esm2022/lib/tree/tree.component.mjs +10 -10
  334. package/esm2022/lib/tree/tree.module.mjs +5 -5
  335. package/esm2022/lib/tree/tree.service.mjs +4 -4
  336. package/fesm2022/igniteui-angular.mjs +3098 -3079
  337. package/fesm2022/igniteui-angular.mjs.map +1 -1
  338. package/lib/directives/input/input.directive.d.ts +3 -0
  339. package/lib/grids/column-actions/public_api.d.ts +7 -0
  340. package/lib/grids/grid/grid.module.d.ts +23 -20
  341. package/lib/grids/grid/public_api.d.ts +1 -1
  342. package/lib/grids/hierarchical-grid/hierarchical-grid.module.d.ts +23 -20
  343. package/lib/grids/hierarchical-grid/public_api.d.ts +1 -1
  344. package/lib/grids/pivot-grid/pivot-grid.module.d.ts +23 -20
  345. package/lib/grids/pivot-grid/public_api.d.ts +1 -1
  346. package/lib/grids/public_api.d.ts +2 -1
  347. package/lib/grids/tree-grid/public_api.d.ts +5 -1
  348. package/lib/grids/tree-grid/tree-grid.module.d.ts +40 -35
  349. package/package.json +6 -6
@@ -345,10 +345,10 @@ export class IgxAccordionComponent {
345
345
  this.panels?.forEach(panel => panel.animationSettings = this.animationSettings);
346
346
  }
347
347
  }
348
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
349
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxAccordionComponent, isStandalone: true, selector: "igx-accordion", inputs: { id: "id", animationSettings: "animationSettings", singleBranchExpand: "singleBranchExpand" }, outputs: { panelExpanding: "panelExpanding", panelExpanded: "panelExpanded", panelCollapsing: "panelCollapsing", panelCollapsed: "panelCollapsed" }, host: { properties: { "attr.id": "this.id", "class.igx-accordion": "this.cssClass", "style.display": "this.displayStyle" } }, queries: [{ propertyName: "_panels", predicate: IgxExpansionPanelComponent }], ngImport: i0, template: "<ng-content select=\"igx-expansion-panel\"></ng-content>\n" }); }
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxAccordionComponent, isStandalone: true, selector: "igx-accordion", inputs: { id: "id", animationSettings: "animationSettings", singleBranchExpand: "singleBranchExpand" }, outputs: { panelExpanding: "panelExpanding", panelExpanded: "panelExpanded", panelCollapsing: "panelCollapsing", panelCollapsed: "panelCollapsed" }, host: { properties: { "attr.id": "this.id", "class.igx-accordion": "this.cssClass", "style.display": "this.displayStyle" } }, queries: [{ propertyName: "_panels", predicate: IgxExpansionPanelComponent }], ngImport: i0, template: "<ng-content select=\"igx-expansion-panel\"></ng-content>\n" }); }
350
350
  }
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionComponent, decorators: [{
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionComponent, decorators: [{
352
352
  type: Component,
353
353
  args: [{ selector: 'igx-accordion', standalone: true, template: "<ng-content select=\"igx-expansion-panel\"></ng-content>\n" }]
354
354
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
@@ -378,4 +378,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
378
378
  type: ContentChildren,
379
379
  args: [IgxExpansionPanelComponent]
380
380
  }] } });
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0QsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQ2pHLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZTFGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUF1QjlCOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILElBQ1csaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGlCQUFpQixDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUNXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNw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QkFBMEIsNkJDNU0vQyw0REFDQTs7Z0dEbURhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlLGNBRWIsSUFBSTt3R0FlVCxFQUFFO3NCQUZSLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFLM0IsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQW9CakIsaUJBQWlCO3NCQUQzQixLQUFLO2dCQXlCSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBaUNDLGNBQWM7c0JBRHBCLE1BQU07Z0JBbUJBLGFBQWE7c0JBRG5CLE1BQU07Z0JBZUEsZUFBZTtzQkFEckIsTUFBTTtnQkFZQSxjQUFjO3NCQURwQixNQUFNO2dCQWVDLE9BQU87c0JBRGQsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQUNDT1JESU9OX05BVklHQVRJT05fS0VZUyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyxcbiAgICBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3MsIElneEV4cGFuc2lvblBhbmVsQmFzZSB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tbW9uJztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvdG9nZ2xlLWFuaW1hdGlvbi1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvcmRpb25FdmVudEFyZ3MgZXh0ZW5kcyBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIHdhcyBleHBhbmRlZC9jb2xsYXBzZWQuICovXG4gICAgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQmFzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncyBleHRlbmRzIElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIGlzIGN1cnJlbnRseSBleHBhbmRpbmcvY29sbGFwc2luZy4gKi9cbiAgICBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxCYXNlO1xufVxuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSWd4QWNjb3JkaW9uIGlzIGEgY29udGFpbmVyLWJhc2VkIGNvbXBvbmVudCB0aGF0IGNvbnRhaW5zIHRoYXQgY2FuIGhvdXNlIG11bHRpcGxlIGV4cGFuc2lvbiBwYW5lbHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBY2NvcmRpb25Nb2R1bGVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYWNjb3JkaW9uXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIEFjY29yZGlvbiBjb21wb25lbnQgZW5hYmxlcyB0aGUgdXNlciB0byBuYXZpZ2F0ZSBhbW9uZyBtdWx0aXBsZSBjb2xsYXBzaW5nIHBhbmVsc1xuICogZGlzcGxheWVkIGluIGEgc2luZ2xlIGNvbnRhaW5lci5cbiAqIFRoZSBhY2NvcmRpb24gb2ZmZXJzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIEFQSSB0byBjb250cm9sIHRoZSB1bmRlcmx5aW5nIHBhbmVscycgZXhwYW5zaW9uIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWFjY29yZGlvbj5cbiAqICAgPGlneC1leHBhbnNpb24tcGFuZWwgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHBhbmVsc1wiPlxuICogICAgICAgLi4uXG4gKiAgIDwvaWd4LWV4cGFuc2lvbi1wYW5lbD5cbiAqIDwvaWd4LWFjY29yZGlvbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1hY2NvcmRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEFjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYGlkYCBvZiB0aGUgYWNjb3JkaW9uIGNvbXBvbmVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImlneC1hY2NvcmRpb24tMFwiYDtcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gaWQ9XCJteS1maXJzdC1hY2NvcmRpb25cIj48L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGFjY29yZGlvbklkID0gdGhpcy5hY2NvcmRpb24uaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYWNjb3JkaW9uLSR7TkVYVF9JRCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYWNjb3JkaW9uJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWFjY29yZGlvbic7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgICBwdWJsaWMgZGlzcGxheVN0eWxlID0gJ2Jsb2NrJztcblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIGFuaW1hdGlvbiBzZXR0aW5ncyB0aGF0IHBhbmVscyBzaG91bGQgdXNlIHdoZW4gZXhwYW5kaW5nL2NvbGxwYXNpbmcuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW2FuaW1hdGlvblNldHRpbmdzXT1cImN1c3RvbUFuaW1hdGlvblNldHRpbmdzXCI+PC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGN1c3RvbUFuaW1hdGlvblNldHRpbmdzOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyA9IHtcbiAgICAgKiAgICAgIG9wZW5BbmltYXRpb246IGdyb3dWZXJJbixcbiAgICAgKiAgICAgIGNsb3NlQW5pbWF0aW9uOiBncm93VmVyT3V0XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHRoaXMuYWNjb3JkaW9uLmFuaW1hdGlvblNldHRpbmdzID0gY3VzdG9tQW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFuaW1hdGlvblNldHRpbmdzKCk6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uU2V0dGluZ3ModmFsdWU6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCBob3cgdGhlIGFjY29yZGlvbiBoYW5kbGVzIHRoZSBleHBhbnNpb24gb2YgdGhlIHByb2plY3RlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqIElmIHNldCB0byBgdHJ1ZWAsIG9ubHkgYSBzaW5nbGUgcGFuZWwgY2FuIGJlIGV4cGFuZGVkIGF0IGEgdGltZSwgY29sbGFwc2luZyBhbGwgb3RoZXJzXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW3NpbmdsZUJyYW5jaEV4cGFuZF09XCJ0cnVlXCI+XG4gICAgICogLi4uXG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWNjb3JkaW9uLnNpbmdsZUJyYW5jaEV4cGFuZCA9IGZhbHNlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBzaW5nbGVCcmFuY2hFeHBhbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaW5nbGVCcmFuY2hFeHBhbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzaW5nbGVCcmFuY2hFeHBhbmQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NpbmdsZUJyYW5jaEV4cGFuZCA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIGEgcGFuZWwgaXMgZXhwYW5kZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoaXMgZXZlbnQgaXMgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRpbmcpPVwiaGFuZGxlUGFuZWxFeHBhbmRpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LWFjY29yZGlvbj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBoYW5kbGVQYW5lbEV4cGFuZGluZyhldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyl7XG4gICAgICogIGNvbnN0IGV4cGFuZGVkUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50ID0gZXZlbnQucGFuZWw7XG4gICAgICogIGlmIChleHBhbmRlZFBhbmVsLmRpc2FibGVkKSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgYSBwYW5lbCBoYXMgYmVlbiBleHBhbmRlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRlZCk9XCJoYW5kbGVQYW5lbEV4cGFuZGVkKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlUGFuZWxFeHBhbmRlZChldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykge1xuICAgICAqICBjb25zdCBleHBhbmRlZFBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCA9IGV2ZW50LnBhbmVsO1xuICAgICAqICBjb25zb2xlLmxvZyhcIlBhbmVsIGlzIGV4cGFuZGVkOiBcIiwgZXhwYW5kZWRQYW5lbC5pZCk7XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElBY2NvcmRpb25FdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBhIHBhbmVsIGlzIGNvbGxhcHNlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBldmVudCBpcyBjYW5jZWxhYmxlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNpbmcpPVwiaGFuZGxlUGFuZWxDb2xsYXBzaW5nKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ29sbGFwc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIGEgcGFuZWwgaGFzIGJlZW4gY29sbGFwc2VkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNlZCk9XCJoYW5kbGVQYW5lbENvbGxhcHNlZCgkZXZlbnQpXCI+XG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHBhbmVsczogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRbXSA9IHRoaXMuYWNjb3JkaW9uLnBhbmVscztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhbmVscygpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVscz8udG9BcnJheSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFuZWxzITogUXVlcnlMaXN0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5ncyE6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzO1xuICAgIHByaXZhdGUgX2V4cGFuZGVkUGFuZWxzITogU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9leHBhbmRpbmdQYW5lbHMhOiBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF91bnN1YkNoaWxkcmVuJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZFBhbmVscyE6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50W107XG4gICAgcHJpdmF0ZSBfc2luZ2xlQnJhbmNoRXhwYW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUJyYW5jaEV4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZFBhbmVscyA9IG5ldyBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+KHRoaXMuX3BhbmVscy5maWx0ZXIocGFuZWwgPT4gIXBhbmVsLmNvbGxhcHNlZCkpO1xuICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMgPSBuZXcgU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PigpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YlRvQ2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJUb0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3ViQ2hpbGRyZW4kLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMgYWxsIGNvbGxhcHNlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFjY29yZGlvbi5leHBhbmRBbGwoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kQWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsc1tpXS5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcGFuZWxzLmxhc3QuZXhwYW5kKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmV4cGFuZCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgYWxsIGV4cGFuZGVkIGV4cGFuc2lvbiBwYW5lbHMuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogYWNjb3JkaW9uLmNvbGxhcHNlQWxsKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmNvbGxhcHNlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29sbGFwc2VBbGxFeGNlcHRMYXN0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0RXhwYW5kZWQgPSB0aGlzLnBhbmVscz8uZmlsdGVyKHAgPT4gIXAuY29sbGFwc2VkICYmICFwLmhlYWRlci5kaXNhYmxlZCkucG9wKCk7XG4gICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKChwOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAgIT09IGxhc3RFeHBhbmRlZCAmJiAhcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwLmNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghKEFDQ09SRElPTl9OQVZJR0FUSU9OX0tFWVMuaGFzKGtleSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE8gRE86IGlmIHdlIGV2ZXIgd2FudCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWNjb3JkaW9uLFxuICAgICAgICAvLyBlbmFibGVkUGFuZWxzIGNvdWxkIGJlIGNhY2hlZCAoYnkgbWFraW5nIGEgZGlzYWJsZWRDaGFuZ2UgZW1pdHRlciBvbiB0aGUgcGFuZWwgaGVhZGVyKVxuICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzID0gdGhpcy5fcGFuZWxzLmZpbHRlcihwID0+ICFwLmhlYWRlci5kaXNhYmxlZCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbihldmVudCwgcGFuZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTmF2aWdhdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCwgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHNbMF0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW3RoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMV0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVcERvd25BcnJvdyh0cnVlLCBldmVudCwgcGFuZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlVXBEb3duQXJyb3coZmFsc2UsIGV2ZW50LCBwYW5lbCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVVwRG93bkFycm93KGlzVXA6IGJvb2xlYW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRQYW5lbCA9IHBhbmVsO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dFBhbmVsKGZvY3VzZWRQYW5lbCwgaXNVcCA/IC0xIDogMSk7XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gZm9jdXNlZFBhbmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dC5oZWFkZXIuaW5uZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgaWYgKGlzVXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzLmZvckVhY2gocCA9PiBwLmNvbGxhcHNlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW2ldLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlZFBhbmVsc1t0aGlzLl9lbmFibGVkUGFuZWxzLmxlbmd0aCAtIDFdLmV4cGFuZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHMuZm9yRWFjaChwID0+IHAuZXhwYW5kKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0UGFuZWwocGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBkaXI6IDEgfCAtMSA9IDEpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCB7XG4gICAgICAgIGNvbnN0IHBhbmVsSW5kZXggPSB0aGlzLl9lbmFibGVkUGFuZWxzLmluZGV4T2YocGFuZWwpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFBhbmVsc1twYW5lbEluZGV4ICsgZGlyXSB8fCBwYW5lbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YlRvQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQubmV4dCgpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgICAgICBwYW5lbC5jb250ZW50RXhwYW5kZWQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbEV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkUGFuZWxzLmFkZChhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkV2ZW50QXJncyA9IHsgLi4uYXJncywgb3duZXI6IHRoaXMsIHBhbmVsOiBhcmdzLm93bmVyIH07XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbEV4cGFuZGVkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudEV4cGFuZGluZy5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3MgPSB7IC4uLmFyZ3MsIG93bmVyOiB0aGlzLCBwYW5lbDogYXJncy5vd25lciB9O1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxFeHBhbmRpbmcuZW1pdChldkFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChldkFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MuY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3MuY2xvc2VBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5vcGVuQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3Mub3BlbkFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNsb3NlQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuYWRkKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNlZC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsRXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGluZ1BhbmVscy5kZWxldGUoYXJncy5vd25lcik7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZBcmdzOiBJQWNjb3JkaW9uRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2VkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldkFyZ3M6IElBY2NvcmRpb25DYW5jZWxhYmxlRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2luZy5lbWl0KGV2QXJncyk7XG4gICAgICAgICAgICAgICAgaWYgKGV2QXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJncy5jYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnJvbUV2ZW50KHBhbmVsLmhlYWRlci5pbm5lckVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGUsIHBhbmVsKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQYW5lbHNBbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblNldHRpbmdzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmFuaW1hdGlvblNldHRpbmdzID0gdGhpcy5hbmltYXRpb25TZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsXCI+PC9uZy1jb250ZW50PlxuIl19
381
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0QsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQ2pHLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZTFGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUF1QjlCOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILElBQ1csaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGlCQUFpQixDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUNXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNw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QkFBMEIsNkJDNU0vQyw0REFDQTs7MkZEbURhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlLGNBRWIsSUFBSTt3R0FlVCxFQUFFO3NCQUZSLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFLM0IsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQW9CakIsaUJBQWlCO3NCQUQzQixLQUFLO2dCQXlCSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBaUNDLGNBQWM7c0JBRHBCLE1BQU07Z0JBbUJBLGFBQWE7c0JBRG5CLE1BQU07Z0JBZUEsZUFBZTtzQkFEckIsTUFBTTtnQkFZQSxjQUFjO3NCQURwQixNQUFNO2dCQWVDLE9BQU87c0JBRGQsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQUNDT1JESU9OX05BVklHQVRJT05fS0VZUyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyxcbiAgICBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3MsIElneEV4cGFuc2lvblBhbmVsQmFzZSB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tbW9uJztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvdG9nZ2xlLWFuaW1hdGlvbi1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvcmRpb25FdmVudEFyZ3MgZXh0ZW5kcyBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIHdhcyBleHBhbmRlZC9jb2xsYXBzZWQuICovXG4gICAgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQmFzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncyBleHRlbmRzIElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIGlzIGN1cnJlbnRseSBleHBhbmRpbmcvY29sbGFwc2luZy4gKi9cbiAgICBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxCYXNlO1xufVxuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSWd4QWNjb3JkaW9uIGlzIGEgY29udGFpbmVyLWJhc2VkIGNvbXBvbmVudCB0aGF0IGNvbnRhaW5zIHRoYXQgY2FuIGhvdXNlIG11bHRpcGxlIGV4cGFuc2lvbiBwYW5lbHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBY2NvcmRpb25Nb2R1bGVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYWNjb3JkaW9uXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIEFjY29yZGlvbiBjb21wb25lbnQgZW5hYmxlcyB0aGUgdXNlciB0byBuYXZpZ2F0ZSBhbW9uZyBtdWx0aXBsZSBjb2xsYXBzaW5nIHBhbmVsc1xuICogZGlzcGxheWVkIGluIGEgc2luZ2xlIGNvbnRhaW5lci5cbiAqIFRoZSBhY2NvcmRpb24gb2ZmZXJzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIEFQSSB0byBjb250cm9sIHRoZSB1bmRlcmx5aW5nIHBhbmVscycgZXhwYW5zaW9uIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWFjY29yZGlvbj5cbiAqICAgPGlneC1leHBhbnNpb24tcGFuZWwgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHBhbmVsc1wiPlxuICogICAgICAgLi4uXG4gKiAgIDwvaWd4LWV4cGFuc2lvbi1wYW5lbD5cbiAqIDwvaWd4LWFjY29yZGlvbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1hY2NvcmRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEFjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYGlkYCBvZiB0aGUgYWNjb3JkaW9uIGNvbXBvbmVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImlneC1hY2NvcmRpb24tMFwiYDtcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gaWQ9XCJteS1maXJzdC1hY2NvcmRpb25cIj48L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGFjY29yZGlvbklkID0gdGhpcy5hY2NvcmRpb24uaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYWNjb3JkaW9uLSR7TkVYVF9JRCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYWNjb3JkaW9uJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWFjY29yZGlvbic7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgICBwdWJsaWMgZGlzcGxheVN0eWxlID0gJ2Jsb2NrJztcblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIGFuaW1hdGlvbiBzZXR0aW5ncyB0aGF0IHBhbmVscyBzaG91bGQgdXNlIHdoZW4gZXhwYW5kaW5nL2NvbGxwYXNpbmcuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW2FuaW1hdGlvblNldHRpbmdzXT1cImN1c3RvbUFuaW1hdGlvblNldHRpbmdzXCI+PC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGN1c3RvbUFuaW1hdGlvblNldHRpbmdzOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyA9IHtcbiAgICAgKiAgICAgIG9wZW5BbmltYXRpb246IGdyb3dWZXJJbixcbiAgICAgKiAgICAgIGNsb3NlQW5pbWF0aW9uOiBncm93VmVyT3V0XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHRoaXMuYWNjb3JkaW9uLmFuaW1hdGlvblNldHRpbmdzID0gY3VzdG9tQW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFuaW1hdGlvblNldHRpbmdzKCk6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uU2V0dGluZ3ModmFsdWU6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCBob3cgdGhlIGFjY29yZGlvbiBoYW5kbGVzIHRoZSBleHBhbnNpb24gb2YgdGhlIHByb2plY3RlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqIElmIHNldCB0byBgdHJ1ZWAsIG9ubHkgYSBzaW5nbGUgcGFuZWwgY2FuIGJlIGV4cGFuZGVkIGF0IGEgdGltZSwgY29sbGFwc2luZyBhbGwgb3RoZXJzXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW3NpbmdsZUJyYW5jaEV4cGFuZF09XCJ0cnVlXCI+XG4gICAgICogLi4uXG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWNjb3JkaW9uLnNpbmdsZUJyYW5jaEV4cGFuZCA9IGZhbHNlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBzaW5nbGVCcmFuY2hFeHBhbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaW5nbGVCcmFuY2hFeHBhbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzaW5nbGVCcmFuY2hFeHBhbmQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NpbmdsZUJyYW5jaEV4cGFuZCA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIGEgcGFuZWwgaXMgZXhwYW5kZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoaXMgZXZlbnQgaXMgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRpbmcpPVwiaGFuZGxlUGFuZWxFeHBhbmRpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LWFjY29yZGlvbj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBoYW5kbGVQYW5lbEV4cGFuZGluZyhldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyl7XG4gICAgICogIGNvbnN0IGV4cGFuZGVkUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50ID0gZXZlbnQucGFuZWw7XG4gICAgICogIGlmIChleHBhbmRlZFBhbmVsLmRpc2FibGVkKSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgYSBwYW5lbCBoYXMgYmVlbiBleHBhbmRlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRlZCk9XCJoYW5kbGVQYW5lbEV4cGFuZGVkKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlUGFuZWxFeHBhbmRlZChldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykge1xuICAgICAqICBjb25zdCBleHBhbmRlZFBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCA9IGV2ZW50LnBhbmVsO1xuICAgICAqICBjb25zb2xlLmxvZyhcIlBhbmVsIGlzIGV4cGFuZGVkOiBcIiwgZXhwYW5kZWRQYW5lbC5pZCk7XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElBY2NvcmRpb25FdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBhIHBhbmVsIGlzIGNvbGxhcHNlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBldmVudCBpcyBjYW5jZWxhYmxlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNpbmcpPVwiaGFuZGxlUGFuZWxDb2xsYXBzaW5nKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ29sbGFwc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIGEgcGFuZWwgaGFzIGJlZW4gY29sbGFwc2VkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNlZCk9XCJoYW5kbGVQYW5lbENvbGxhcHNlZCgkZXZlbnQpXCI+XG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHBhbmVsczogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRbXSA9IHRoaXMuYWNjb3JkaW9uLnBhbmVscztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhbmVscygpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVscz8udG9BcnJheSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFuZWxzITogUXVlcnlMaXN0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5ncyE6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzO1xuICAgIHByaXZhdGUgX2V4cGFuZGVkUGFuZWxzITogU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9leHBhbmRpbmdQYW5lbHMhOiBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF91bnN1YkNoaWxkcmVuJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZFBhbmVscyE6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50W107XG4gICAgcHJpdmF0ZSBfc2luZ2xlQnJhbmNoRXhwYW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUJyYW5jaEV4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZFBhbmVscyA9IG5ldyBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+KHRoaXMuX3BhbmVscy5maWx0ZXIocGFuZWwgPT4gIXBhbmVsLmNvbGxhcHNlZCkpO1xuICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMgPSBuZXcgU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PigpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YlRvQ2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJUb0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3ViQ2hpbGRyZW4kLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMgYWxsIGNvbGxhcHNlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFjY29yZGlvbi5leHBhbmRBbGwoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kQWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsc1tpXS5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcGFuZWxzLmxhc3QuZXhwYW5kKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmV4cGFuZCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgYWxsIGV4cGFuZGVkIGV4cGFuc2lvbiBwYW5lbHMuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogYWNjb3JkaW9uLmNvbGxhcHNlQWxsKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmNvbGxhcHNlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29sbGFwc2VBbGxFeGNlcHRMYXN0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0RXhwYW5kZWQgPSB0aGlzLnBhbmVscz8uZmlsdGVyKHAgPT4gIXAuY29sbGFwc2VkICYmICFwLmhlYWRlci5kaXNhYmxlZCkucG9wKCk7XG4gICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKChwOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAgIT09IGxhc3RFeHBhbmRlZCAmJiAhcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwLmNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghKEFDQ09SRElPTl9OQVZJR0FUSU9OX0tFWVMuaGFzKGtleSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE8gRE86IGlmIHdlIGV2ZXIgd2FudCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWNjb3JkaW9uLFxuICAgICAgICAvLyBlbmFibGVkUGFuZWxzIGNvdWxkIGJlIGNhY2hlZCAoYnkgbWFraW5nIGEgZGlzYWJsZWRDaGFuZ2UgZW1pdHRlciBvbiB0aGUgcGFuZWwgaGVhZGVyKVxuICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzID0gdGhpcy5fcGFuZWxzLmZpbHRlcihwID0+ICFwLmhlYWRlci5kaXNhYmxlZCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbihldmVudCwgcGFuZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTmF2aWdhdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCwgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHNbMF0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW3RoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMV0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVcERvd25BcnJvdyh0cnVlLCBldmVudCwgcGFuZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlVXBEb3duQXJyb3coZmFsc2UsIGV2ZW50LCBwYW5lbCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVVwRG93bkFycm93KGlzVXA6IGJvb2xlYW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRQYW5lbCA9IHBhbmVsO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dFBhbmVsKGZvY3VzZWRQYW5lbCwgaXNVcCA/IC0xIDogMSk7XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gZm9jdXNlZFBhbmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dC5oZWFkZXIuaW5uZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgaWYgKGlzVXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzLmZvckVhY2gocCA9PiBwLmNvbGxhcHNlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW2ldLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlZFBhbmVsc1t0aGlzLl9lbmFibGVkUGFuZWxzLmxlbmd0aCAtIDFdLmV4cGFuZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHMuZm9yRWFjaChwID0+IHAuZXhwYW5kKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0UGFuZWwocGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBkaXI6IDEgfCAtMSA9IDEpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCB7XG4gICAgICAgIGNvbnN0IHBhbmVsSW5kZXggPSB0aGlzLl9lbmFibGVkUGFuZWxzLmluZGV4T2YocGFuZWwpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFBhbmVsc1twYW5lbEluZGV4ICsgZGlyXSB8fCBwYW5lbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YlRvQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQubmV4dCgpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgICAgICBwYW5lbC5jb250ZW50RXhwYW5kZWQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbEV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkUGFuZWxzLmFkZChhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkV2ZW50QXJncyA9IHsgLi4uYXJncywgb3duZXI6IHRoaXMsIHBhbmVsOiBhcmdzLm93bmVyIH07XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbEV4cGFuZGVkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudEV4cGFuZGluZy5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3MgPSB7IC4uLmFyZ3MsIG93bmVyOiB0aGlzLCBwYW5lbDogYXJncy5vd25lciB9O1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxFeHBhbmRpbmcuZW1pdChldkFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChldkFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MuY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3MuY2xvc2VBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5vcGVuQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3Mub3BlbkFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNsb3NlQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuYWRkKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNlZC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsRXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGluZ1BhbmVscy5kZWxldGUoYXJncy5vd25lcik7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZBcmdzOiBJQWNjb3JkaW9uRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2VkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldkFyZ3M6IElBY2NvcmRpb25DYW5jZWxhYmxlRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2luZy5lbWl0KGV2QXJncyk7XG4gICAgICAgICAgICAgICAgaWYgKGV2QXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJncy5jYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnJvbUV2ZW50KHBhbmVsLmhlYWRlci5pbm5lckVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGUsIHBhbmVsKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQYW5lbHNBbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblNldHRpbmdzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmFuaW1hdGlvblNldHRpbmdzID0gdGhpcy5hbmltYXRpb25TZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsXCI+PC9uZy1jb250ZW50PlxuIl19
@@ -11,11 +11,11 @@ import * as i5 from "../expansion-panel/expansion-panel.directives";
11
11
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
12
12
  */
13
13
  export class IgxAccordionModule {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionModule, imports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective], exports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionModule }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionModule, imports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective], exports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionModule }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxAccordionModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxAccordionModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
26
26
  ]
27
27
  }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUV4RDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO21IQUFsQixrQkFBa0I7b0hBQWxCLGtCQUFrQjtvSEFBbEIsa0JBQWtCOztnR0FBbEIsa0JBQWtCO2tCQVI5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxHQUFHLHdCQUF3QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsd0JBQXdCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR1hfQUNDT1JESU9OX0RJUkVDVElWRVMgfSBmcm9tICcuL3B1YmxpY19hcGknO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIElNUE9SVEFOVDogVGhlIGZvbGxvd2luZyBpcyBOZ01vZHVsZSBleHBvcnRlZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgYmVmb3JlIHN0YW5kYWxvbmUgY29tcG9uZW50c1xuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLi4uSUdYX0FDQ09SRElPTl9ESVJFQ1RJVkVTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLklHWF9BQ0NPUkRJT05fRElSRUNUSVZFU1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4QWNjb3JkaW9uTW9kdWxlIHtcbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUV4RDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQVI5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxHQUFHLHdCQUF3QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsd0JBQXdCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR1hfQUNDT1JESU9OX0RJUkVDVElWRVMgfSBmcm9tICcuL3B1YmxpY19hcGknO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIElNUE9SVEFOVDogVGhlIGZvbGxvd2luZyBpcyBOZ01vZHVsZSBleHBvcnRlZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgYmVmb3JlIHN0YW5kYWxvbmUgY29tcG9uZW50c1xuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLi4uSUdYX0FDQ09SRElPTl9ESVJFQ1RJVkVTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLklHWF9BQ0NPUkRJT05fRElSRUNUSVZFU1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4QWNjb3JkaW9uTW9kdWxlIHtcbn1cbiJdfQ==
@@ -16,10 +16,10 @@ export class IgxActionStripMenuItemDirective {
16
16
  constructor(templateRef) {
17
17
  this.templateRef = templateRef;
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripMenuItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxActionStripMenuItemDirective, isStandalone: true, selector: "[igxActionStripMenuItem]", ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripMenuItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxActionStripMenuItemDirective, isStandalone: true, selector: "[igxActionStripMenuItem]", ngImport: i0 }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripMenuItemDirective, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripMenuItemDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[igxActionStripMenuItem]',
@@ -230,10 +230,10 @@ export class IgxActionStripComponent extends DisplayDensityBase {
230
230
  this.menu.close();
231
231
  }
232
232
  }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: DisplayDensityToken, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxActionStripComponent, isStandalone: true, selector: "igx-action-strip", inputs: { context: "context", hidden: "hidden", resourceStrings: "resourceStrings" }, host: { properties: { "style.display": "this.display", "class": "this.hostClasses" } }, queries: [{ propertyName: "_menuItems", predicate: IgxActionStripMenuItemDirective }, { propertyName: "actionButtons", predicate: IgxGridActionsBaseDirective }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["dropdown"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n <ng-container *ngIf=\"menuItems.length > 0\">\n <button\n igxButton=\"icon\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon>more_vert</igx-icon>\n </button>\n </ng-container>\n <igx-drop-down #dropdown [displayDensity]=\"displayDensity\">\n <igx-drop-down-item\n *ngFor=\"let item of menuItems\"\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n </igx-drop-down>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxToggleActionDirective, selector: "[igxToggleAction]", inputs: ["overlaySettings", "igxToggleOutlet", "igxToggleAction"], exportAs: ["toggle-action"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }] }); }
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: DisplayDensityToken, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxActionStripComponent, isStandalone: true, selector: "igx-action-strip", inputs: { context: "context", hidden: "hidden", resourceStrings: "resourceStrings" }, host: { properties: { "style.display": "this.display", "class": "this.hostClasses" } }, queries: [{ propertyName: "_menuItems", predicate: IgxActionStripMenuItemDirective }, { propertyName: "actionButtons", predicate: IgxGridActionsBaseDirective }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["dropdown"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n <ng-container *ngIf=\"menuItems.length > 0\">\n <button\n igxButton=\"icon\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon>more_vert</igx-icon>\n </button>\n </ng-container>\n <igx-drop-down #dropdown [displayDensity]=\"displayDensity\">\n <igx-drop-down-item\n *ngFor=\"let item of menuItems\"\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n </igx-drop-down>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxToggleActionDirective, selector: "[igxToggleAction]", inputs: ["overlaySettings", "igxToggleOutlet", "igxToggleAction"], exportAs: ["toggle-action"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }] }); }
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripComponent, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripComponent, decorators: [{
237
237
  type: Component,
238
238
  args: [{ selector: 'igx-action-strip', standalone: true, imports: [
239
239
  NgIf,
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
274
274
  type: HostBinding,
275
275
  args: ['class']
276
276
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixlQUFlLEVBRWYsU0FBUyxFQUtaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7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O3NCQURoQixLQUFLO2dCQWdCSyxlQUFlO3NCQUR6QixLQUFLO2dCQXFDQyxJQUFJO3NCQURWLFNBQVM7dUJBQUMsVUFBVTtnQkE4Q1IsT0FBTztzQkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQVNoQixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5QmFzZSwgRGlzcGxheURlbnNpdHlUb2tlbiwgSURpc3BsYXlEZW5zaXR5T3B0aW9ucyB9IGZyb20gJy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vYWN0aW9uLXN0cmlwLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENsb3NlU2Nyb2xsU3RyYXRlZ3ksIE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24tbmF2aWdhdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VG9nZ2xlQWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hBY3Rpb25TdHJpcE1lbnVJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hBY3Rpb25TdHJpcE1lbnVJdGVtRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgKSB7IH1cbn1cblxuLyoqXG4gKiBBY3Rpb24gU3RyaXAgcHJvdmlkZXMgdGVtcGxhdGFibGUgYXJlYSBmb3Igb25lIG9yIG1vcmUgYWN0aW9ucy5cbiAqXG4gKiBAaWd4TW9kdWxlIElneEFjdGlvblN0cmlwTW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC1hY3Rpb24tc3RyaXAtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYWN0aW9uLCBzdHJpcCwgYWN0aW9uU3RyaXAsIHBpbm5pbmcsIGVkaXRpbmdcbiAqXG4gKiBAaWd4R3JvdXAgRGF0YSBFbnRyeSAmIERpc3BsYXlcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIElnbml0ZSBVSSBBY3Rpb24gU3RyaXAgaXMgYSBjb250YWluZXIsIG92ZXJsYXlpbmcgaXRzIHBhcmVudCBjb250YWluZXIsXG4gKiBhbmQgZGlzcGxheWluZyBhY3Rpb24gYnV0dG9ucyB3aXRoIGFjdGlvbiBhcHBsaWNhYmxlIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50IHRoZSBzdHJpcCBpcyBpbnN0YW50aWF0ZWQgb3Igc2hvd24gZm9yLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWFjdGlvbi1zdHJpcCAjYWN0aW9uU3RyaXA+XG4gKiAgICAgPGlneC1pY29uIChjbGljayk9XCJkb1NvbWVBY3Rpb24oKVwiPjwvaWd4LWljb24+XG4gKiA8L2lneC1hY3Rpb24tc3RyaXA+XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWFjdGlvbi1zdHJpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICdhY3Rpb24tc3RyaXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgSWd4QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBJZ3hSaXBwbGVEaXJlY3RpdmUsXG4gICAgICAgIElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4SWNvbkNvbXBvbmVudCxcbiAgICAgICAgSWd4RHJvcERvd25Db21wb25lbnQsXG4gICAgICAgIElneERyb3BEb3duSXRlbUNvbXBvbmVudFxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudCBleHRlbmRzIERpc3BsYXlEZW5zaXR5QmFzZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvbnRleHQgb2YgYW4gYWN0aW9uIHN0cmlwLlxuICAgICAqIFRoZSBjb250ZXh0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBhIEBDb21wb25lbnQsIHRoYXQgaGFzIGVsZW1lbnQgcHJvcGVydHkuXG4gICAgICogVGhpcyBlbGVtZW50IHdpbGwgYmUgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBhY3Rpb24gc3RyaXAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjdGlvbi1zdHJpcCBbY29udGV4dF09XCJjZWxsXCI+PC9pZ3gtYWN0aW9uLXN0cmlwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRleHQ6IGFueTtcbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW1zIENvbnRlbnRDaGlsZHJlbiBpbnNpZGUgdGhlIEFjdGlvbiBTdHJpcFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4QWN0aW9uU3RyaXBNZW51SXRlbURpcmVjdGl2ZSlcbiAgICBwdWJsaWMgX21lbnVJdGVtczogUXVlcnlMaXN0PElneEFjdGlvblN0cmlwTWVudUl0ZW1EaXJlY3RpdmU+O1xuXG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb25CdXR0b24gYXMgQ29udGVudENoaWxkcmVuIGluc2lkZSB0aGUgQWN0aW9uIFN0cmlwXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmUpXG4gICAgcHVibGljIGFjdGlvbkJ1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0IHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBBY3Rpb24gU3RyaXAuXG4gICAgICogQ291bGQgYmUgdXNlZCB0byBzZXQgaWYgdGhlIEFjdGlvbiBTdHJpcCB3aWxsIGJlIGluaXRpYWxseSBoaWRkZW4uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1hY3Rpb24tc3RyaXAgW2hpZGRlbl09XCJmYWxzZVwiPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBoaWRkZW4odmFsdWUpIHtcbiAgICAgICAgdGhpcy5faGlkZGVuID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWRkZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNvdXJjZVN0cmluZ3ModmFsdWU6IElBY3Rpb25TdHJpcFJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICBpZiAoIXRoaXMuX3Jlc291cmNlU3RyaW5ncykge1xuICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gQ3VycmVudFJlc291cmNlU3RyaW5ncy5BY3Rpb25TdHJpcFJlc291cmNlU3RyaW5ncztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgb3Igbm90IHRoZSBBY3Rpb24gU3RyaXAgYmFzZWQgb24gaWYgaXQgaXMgYSBtZW51LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgICBwdWJsaWMgZ2V0IGhpZGVPblJvd0xlYXZlKCk6IGJvb2xlYW57XG4gICAgICAgIGlmKHRoaXMubWVudS5pdGVtcy5sZW5ndGggPT09IDApe1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1lbHNlIGlmKHRoaXMubWVudS5pdGVtcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgIGlmKHRoaXMubWVudS5jb2xsYXBzZWQpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBtZW51XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKVxuICAgIHB1YmxpYyBtZW51OiBJZ3hEcm9wRG93bkNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgbWVudSBvdmVybGF5IHNldHRpbmdzXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG1lbnVPdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncyA9IHsgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBDbG9zZVNjcm9sbFN0cmF0ZWd5KCkgfTtcblxuICAgIHByaXZhdGUgX2hpZGRlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lbnUgSXRlbXMgbGlzdC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1lbnVJdGVtcygpIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5hc01lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gYnV0dG9uLmJ1dHRvbnM7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnRvQXJyYXkoKS5mb3JFYWNoKHggPT4gYWN0aW9ucy5wdXNoKHgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gWy4uLiB0aGlzLl9tZW51SXRlbXMudG9BcnJheSgpLCAuLi5hY3Rpb25zXTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgdGhlICdkaXNwbGF5JyBwcm9wZXJ0eSBvZiB0aGUgY3VycmVudCBgSWd4QWN0aW9uU3RyaXBgXG4gICAgICovXG4gICAgIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpXG4gICAgIHByaXZhdGUgZ2V0IGRpc3BsYXkoKTogc3RyaW5nIHtcbiAgICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW4gPyAnbm9uZScgOiAnZmxleCc7XG4gICAgIH1cblxuICAgICAvKipcbiAgICAgICogSG9zdCBgYXR0ci5jbGFzc2AgYmluZGluZy5cbiAgICAgICovXG4gICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgICBwcml2YXRlIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICAgbGV0IGhvc3RDbGFzcyA9IHRoaXMuZ2V0Q29tcG9uZW50RGVuc2l0eUNsYXNzKCdpZ3gtYWN0aW9uLXN0cmlwJyk7XG4gICAgICAgICBpZiAoaG9zdENsYXNzICE9PSAnaWd4LWFjdGlvbi1zdHJpcCcpIHtcbiAgICAgICAgICAgICAvLyBhY3Rpb24gc3RyaXAgcmVxdWlyZXMgdGhlIGJhc2UgY2xhc3MgdG8gYmUgYWx3YXlzIHByZXNlbnQ6XG4gICAgICAgICAgICAgaG9zdENsYXNzID0gYGlneC1hY3Rpb24tc3RyaXAgJHtob3N0Q2xhc3N9YDtcbiAgICAgICAgIH1cbiAgICAgICAgIHJldHVybiBob3N0Q2xhc3M7XG4gICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgYnV0dG9uLnN0cmlwID0gdGhpcztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHJpcCA9IHRoaXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubWVudS5zZWxlY3Rpb25DaGFuZ2luZy5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gKCRldmVudC5uZXdTZWxlY3Rpb24gYXMgYW55KS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBsZXQgYWxsQnV0dG9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmZvckVhY2goYWN0aW9uQnV0dG9ucyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbkJ1dHRvbnMuYXNNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsQnV0dG9ucyA9IFsuLi5hbGxCdXR0b25zLCAuLi5hY3Rpb25CdXR0b25zLmJ1dHRvbnMudG9BcnJheSgpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGFsbEJ1dHRvbnMuZmluZCh4ID0+IG5ld1NlbGVjdGlvbi5jb250YWlucyh4LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSk7XG4gICAgICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmFjdGlvbkNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd2luZyB0aGUgQWN0aW9uIFN0cmlwIGFuZCBhcHBlbmRpbmcgaXQgdGhlIHNwZWNpZmllZCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGV4dFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWN0aW9uU3RyaXAuc2hvdyhyb3cpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93KGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2hlbiBzaG93biBmb3IgZGlmZmVyZW50IGNvbnRleHQgbWFrZSBzdXJlIHRoZSBtZW51IHdvbid0IHN0YXkgb3BlbmVkXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgIT09IGNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuZWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjb250ZXh0LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRpbmcgdGhlIEFjdGlvbiBTdHJpcCBhbmQgcmVtb3ZpbmcgaXQgZnJvbSBpdHMgY3VycmVudCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmFjdGlvblN0cmlwLmhpZGUoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmNsb3NlTWVudSgpO1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuY29udGV4dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3ZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSBtZW51IGlmIG9wZW5lZFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51ICYmICF0aGlzLm1lbnUuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImlneC1hY3Rpb24tc3RyaXBfX2FjdGlvbnNcIj5cbiAgICA8bmctY29udGVudCAjY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgICAgICAgICAgaWd4UmlwcGxlXG4gICAgICAgICAgICBbaWd4VG9nZ2xlQWN0aW9uXT1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgIFtvdmVybGF5U2V0dGluZ3NdPVwibWVudU92ZXJsYXlTZXR0aW5nc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MuaWd4X2FjdGlvbl9zdHJpcF9idXR0b25fbW9yZV90aXRsZVwiXG4gICAgICAgICAgICBbaWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbl09XCJkcm9wZG93blwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj5tb3JlX3ZlcnQ8L2lneC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8aWd4LWRyb3AtZG93biAjZHJvcGRvd24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCI+XG4gICAgICAgIDxpZ3gtZHJvcC1kb3duLWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtc1wiXG4gICAgICAgICAgICBjbGFzcz1cImlneC1hY3Rpb24tc3RyaXBfX21lbnUtaXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZHJvcC1kb3duX19pdGVtLXRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pZ3gtZHJvcC1kb3duLWl0ZW0+XG4gICAgPC9pZ3gtZHJvcC1kb3duPlxuPC9kaXY+XG4iXX0=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixlQUFlLEVBRWYsU0FBUyxFQUtaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7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O3NCQURoQixLQUFLO2dCQWdCSyxlQUFlO3NCQUR6QixLQUFLO2dCQXFDQyxJQUFJO3NCQURWLFNBQVM7dUJBQUMsVUFBVTtnQkE4Q1IsT0FBTztzQkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQVNoQixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5QmFzZSwgRGlzcGxheURlbnNpdHlUb2tlbiwgSURpc3BsYXlEZW5zaXR5T3B0aW9ucyB9IGZyb20gJy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vYWN0aW9uLXN0cmlwLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDdXJyZW50UmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENsb3NlU2Nyb2xsU3RyYXRlZ3ksIE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2Ryb3AtZG93bi9kcm9wLWRvd24tbmF2aWdhdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VG9nZ2xlQWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hBY3Rpb25TdHJpcE1lbnVJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hBY3Rpb25TdHJpcE1lbnVJdGVtRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgKSB7IH1cbn1cblxuLyoqXG4gKiBBY3Rpb24gU3RyaXAgcHJvdmlkZXMgdGVtcGxhdGFibGUgYXJlYSBmb3Igb25lIG9yIG1vcmUgYWN0aW9ucy5cbiAqXG4gKiBAaWd4TW9kdWxlIElneEFjdGlvblN0cmlwTW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC1hY3Rpb24tc3RyaXAtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYWN0aW9uLCBzdHJpcCwgYWN0aW9uU3RyaXAsIHBpbm5pbmcsIGVkaXRpbmdcbiAqXG4gKiBAaWd4R3JvdXAgRGF0YSBFbnRyeSAmIERpc3BsYXlcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIElnbml0ZSBVSSBBY3Rpb24gU3RyaXAgaXMgYSBjb250YWluZXIsIG92ZXJsYXlpbmcgaXRzIHBhcmVudCBjb250YWluZXIsXG4gKiBhbmQgZGlzcGxheWluZyBhY3Rpb24gYnV0dG9ucyB3aXRoIGFjdGlvbiBhcHBsaWNhYmxlIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50IHRoZSBzdHJpcCBpcyBpbnN0YW50aWF0ZWQgb3Igc2hvd24gZm9yLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWFjdGlvbi1zdHJpcCAjYWN0aW9uU3RyaXA+XG4gKiAgICAgPGlneC1pY29uIChjbGljayk9XCJkb1NvbWVBY3Rpb24oKVwiPjwvaWd4LWljb24+XG4gKiA8L2lneC1hY3Rpb24tc3RyaXA+XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWFjdGlvbi1zdHJpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICdhY3Rpb24tc3RyaXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgSWd4QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBJZ3hSaXBwbGVEaXJlY3RpdmUsXG4gICAgICAgIElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4SWNvbkNvbXBvbmVudCxcbiAgICAgICAgSWd4RHJvcERvd25Db21wb25lbnQsXG4gICAgICAgIElneERyb3BEb3duSXRlbUNvbXBvbmVudFxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudCBleHRlbmRzIERpc3BsYXlEZW5zaXR5QmFzZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvbnRleHQgb2YgYW4gYWN0aW9uIHN0cmlwLlxuICAgICAqIFRoZSBjb250ZXh0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBhIEBDb21wb25lbnQsIHRoYXQgaGFzIGVsZW1lbnQgcHJvcGVydHkuXG4gICAgICogVGhpcyBlbGVtZW50IHdpbGwgYmUgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBhY3Rpb24gc3RyaXAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjdGlvbi1zdHJpcCBbY29udGV4dF09XCJjZWxsXCI+PC9pZ3gtYWN0aW9uLXN0cmlwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRleHQ6IGFueTtcbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW1zIENvbnRlbnRDaGlsZHJlbiBpbnNpZGUgdGhlIEFjdGlvbiBTdHJpcFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4QWN0aW9uU3RyaXBNZW51SXRlbURpcmVjdGl2ZSlcbiAgICBwdWJsaWMgX21lbnVJdGVtczogUXVlcnlMaXN0PElneEFjdGlvblN0cmlwTWVudUl0ZW1EaXJlY3RpdmU+O1xuXG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb25CdXR0b24gYXMgQ29udGVudENoaWxkcmVuIGluc2lkZSB0aGUgQWN0aW9uIFN0cmlwXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmUpXG4gICAgcHVibGljIGFjdGlvbkJ1dHRvbnM6IFF1ZXJ5TGlzdDxJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0IHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBBY3Rpb24gU3RyaXAuXG4gICAgICogQ291bGQgYmUgdXNlZCB0byBzZXQgaWYgdGhlIEFjdGlvbiBTdHJpcCB3aWxsIGJlIGluaXRpYWxseSBoaWRkZW4uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1hY3Rpb24tc3RyaXAgW2hpZGRlbl09XCJmYWxzZVwiPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBoaWRkZW4odmFsdWUpIHtcbiAgICAgICAgdGhpcy5faGlkZGVuID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWRkZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNvdXJjZVN0cmluZ3ModmFsdWU6IElBY3Rpb25TdHJpcFJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3Mge1xuICAgICAgICBpZiAoIXRoaXMuX3Jlc291cmNlU3RyaW5ncykge1xuICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gQ3VycmVudFJlc291cmNlU3RyaW5ncy5BY3Rpb25TdHJpcFJlc291cmNlU3RyaW5ncztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTdHJpbmdzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgb3Igbm90IHRoZSBBY3Rpb24gU3RyaXAgYmFzZWQgb24gaWYgaXQgaXMgYSBtZW51LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgICBwdWJsaWMgZ2V0IGhpZGVPblJvd0xlYXZlKCk6IGJvb2xlYW57XG4gICAgICAgIGlmKHRoaXMubWVudS5pdGVtcy5sZW5ndGggPT09IDApe1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1lbHNlIGlmKHRoaXMubWVudS5pdGVtcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgIGlmKHRoaXMubWVudS5jb2xsYXBzZWQpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBtZW51XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKVxuICAgIHB1YmxpYyBtZW51OiBJZ3hEcm9wRG93bkNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgbWVudSBvdmVybGF5IHNldHRpbmdzXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG1lbnVPdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncyA9IHsgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBDbG9zZVNjcm9sbFN0cmF0ZWd5KCkgfTtcblxuICAgIHByaXZhdGUgX2hpZGRlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lbnUgSXRlbXMgbGlzdC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1lbnVJdGVtcygpIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5hc01lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gYnV0dG9uLmJ1dHRvbnM7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnRvQXJyYXkoKS5mb3JFYWNoKHggPT4gYWN0aW9ucy5wdXNoKHgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gWy4uLiB0aGlzLl9tZW51SXRlbXMudG9BcnJheSgpLCAuLi5hY3Rpb25zXTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgdGhlICdkaXNwbGF5JyBwcm9wZXJ0eSBvZiB0aGUgY3VycmVudCBgSWd4QWN0aW9uU3RyaXBgXG4gICAgICovXG4gICAgIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpXG4gICAgIHByaXZhdGUgZ2V0IGRpc3BsYXkoKTogc3RyaW5nIHtcbiAgICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW4gPyAnbm9uZScgOiAnZmxleCc7XG4gICAgIH1cblxuICAgICAvKipcbiAgICAgICogSG9zdCBgYXR0ci5jbGFzc2AgYmluZGluZy5cbiAgICAgICovXG4gICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgICBwcml2YXRlIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICAgbGV0IGhvc3RDbGFzcyA9IHRoaXMuZ2V0Q29tcG9uZW50RGVuc2l0eUNsYXNzKCdpZ3gtYWN0aW9uLXN0cmlwJyk7XG4gICAgICAgICBpZiAoaG9zdENsYXNzICE9PSAnaWd4LWFjdGlvbi1zdHJpcCcpIHtcbiAgICAgICAgICAgICAvLyBhY3Rpb24gc3RyaXAgcmVxdWlyZXMgdGhlIGJhc2UgY2xhc3MgdG8gYmUgYWx3YXlzIHByZXNlbnQ6XG4gICAgICAgICAgICAgaG9zdENsYXNzID0gYGlneC1hY3Rpb24tc3RyaXAgJHtob3N0Q2xhc3N9YDtcbiAgICAgICAgIH1cbiAgICAgICAgIHJldHVybiBob3N0Q2xhc3M7XG4gICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgYnV0dG9uLnN0cmlwID0gdGhpcztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHJpcCA9IHRoaXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubWVudS5zZWxlY3Rpb25DaGFuZ2luZy5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gKCRldmVudC5uZXdTZWxlY3Rpb24gYXMgYW55KS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBsZXQgYWxsQnV0dG9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmZvckVhY2goYWN0aW9uQnV0dG9ucyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbkJ1dHRvbnMuYXNNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsQnV0dG9ucyA9IFsuLi5hbGxCdXR0b25zLCAuLi5hY3Rpb25CdXR0b25zLmJ1dHRvbnMudG9BcnJheSgpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGFsbEJ1dHRvbnMuZmluZCh4ID0+IG5ld1NlbGVjdGlvbi5jb250YWlucyh4LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSk7XG4gICAgICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmFjdGlvbkNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd2luZyB0aGUgQWN0aW9uIFN0cmlwIGFuZCBhcHBlbmRpbmcgaXQgdGhlIHNwZWNpZmllZCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGV4dFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWN0aW9uU3RyaXAuc2hvdyhyb3cpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93KGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2hlbiBzaG93biBmb3IgZGlmZmVyZW50IGNvbnRleHQgbWFrZSBzdXJlIHRoZSBtZW51IHdvbid0IHN0YXkgb3BlbmVkXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgIT09IGNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuZWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjb250ZXh0LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRpbmcgdGhlIEFjdGlvbiBTdHJpcCBhbmQgcmVtb3ZpbmcgaXQgZnJvbSBpdHMgY3VycmVudCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmFjdGlvblN0cmlwLmhpZGUoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmNsb3NlTWVudSgpO1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuY29udGV4dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3ZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSBtZW51IGlmIG9wZW5lZFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51ICYmICF0aGlzLm1lbnUuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImlneC1hY3Rpb24tc3RyaXBfX2FjdGlvbnNcIj5cbiAgICA8bmctY29udGVudCAjY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgICAgICAgICAgaWd4UmlwcGxlXG4gICAgICAgICAgICBbaWd4VG9nZ2xlQWN0aW9uXT1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgIFtvdmVybGF5U2V0dGluZ3NdPVwibWVudU92ZXJsYXlTZXR0aW5nc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MuaWd4X2FjdGlvbl9zdHJpcF9idXR0b25fbW9yZV90aXRsZVwiXG4gICAgICAgICAgICBbaWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbl09XCJkcm9wZG93blwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj5tb3JlX3ZlcnQ8L2lneC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8aWd4LWRyb3AtZG93biAjZHJvcGRvd24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCI+XG4gICAgICAgIDxpZ3gtZHJvcC1kb3duLWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtc1wiXG4gICAgICAgICAgICBjbGFzcz1cImlneC1hY3Rpb24tc3RyaXBfX21lbnUtaXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZHJvcC1kb3duX19pdGVtLXRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pZ3gtZHJvcC1kb3duLWl0ZW0+XG4gICAgPC9pZ3gtZHJvcC1kb3duPlxuPC9kaXY+XG4iXX0=
@@ -11,11 +11,11 @@ import * as i5 from "./grid-actions/grid-action-button.component";
11
11
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
12
12
  */
13
13
  export class IgxActionStripModule {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripModule, imports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent], exports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripModule }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripModule, imports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent], exports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripModule }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxActionStripModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxActionStripModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
26
26
  ],
27
27
  }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUVoRTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sb0JBQW9CO21IQUFwQixvQkFBb0I7b0hBQXBCLG9CQUFvQjtvSEFBcEIsb0JBQW9COztnR0FBcEIsb0JBQW9CO2tCQVJoQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxHQUFHLGdDQUFnQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsZ0NBQWdDO3FCQUN0QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFUyB9IGZyb20gJy4vcHVibGljX2FwaSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogSU1QT1JUQU5UOiBUaGUgZm9sbG93aW5nIGlzIE5nTW9kdWxlIGV4cG9ydGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBiZWZvcmUgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICAuLi5JR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFU1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICAuLi5JR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFU1xuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIElneEFjdGlvblN0cmlwTW9kdWxlIHsgfVxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQUVoRTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQVJoQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxHQUFHLGdDQUFnQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsZ0NBQWdDO3FCQUN0QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFUyB9IGZyb20gJy4vcHVibGljX2FwaSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogSU1QT1JUQU5UOiBUaGUgZm9sbG93aW5nIGlzIE5nTW9kdWxlIGV4cG9ydGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBiZWZvcmUgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICAuLi5JR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFU1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICAuLi5JR1hfR1JJRF9BQ1RJT05fU1RSSVBfRElSRUNUSVZFU1xuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIElneEFjdGlvblN0cmlwTW9kdWxlIHsgfVxuIl19
@@ -40,10 +40,10 @@ export class IgxGridActionButtonComponent {
40
40
  event.preventDefault();
41
41
  }
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxGridActionButtonComponent, isStandalone: true, selector: "igx-grid-action-button", inputs: { asMenuItem: "asMenuItem", iconName: "iconName", classNames: "classNames", iconSet: "iconSet", labelText: "labelText" }, outputs: { actionClick: "actionClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "templateRef", first: true, predicate: ["menuItemTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!asMenuItem\">\n <button [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]='containerClass'>\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxGridActionButtonComponent, isStandalone: true, selector: "igx-grid-action-button", inputs: { asMenuItem: "asMenuItem", iconName: "iconName", classNames: "classNames", iconSet: "iconSet", labelText: "labelText" }, outputs: { actionClick: "actionClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "templateRef", first: true, predicate: ["menuItemTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!asMenuItem\">\n <button [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]='containerClass'>\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridActionButtonComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridActionButtonComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'igx-grid-action-button', standalone: true, imports: [NgIf, IgxButtonDirective, IgxRippleDirective, IgxIconComponent], template: "<ng-container *ngIf=\"!asMenuItem\">\n <button [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]='containerClass'>\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>" }]
49
49
  }], propDecorators: { container: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
65
65
  }], labelText: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvYWN0aW9uLXN0cmlwL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVF2QyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBWUk7Ozs7Ozs7V0FPRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVcvQzs7V0FFRztRQUVJLGVBQVUsR0FBRyxLQUFLLENBQUM7S0FnRDdCO0lBbENHLHdCQUF3QjtJQUN4QixJQUFXLGNBQWM7UUFDckIsT0FBTyxnQ0FBZ0MsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQWNEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxLQUFLO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxLQUFLO1FBQ3JCLElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7bUhBNUVRLDRCQUE0Qjt1R0FBNUIsNEJBQTRCLHVjQ1p6Qyx5d0JBZWMsNENETkEsSUFBSSw2RkFBRSxrQkFBa0Isd01BQUUsa0JBQWtCLGlLQUFFLGdCQUFnQjs7Z0dBRy9ELDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDSSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDOzhCQU1sRSxTQUFTO3NCQURmLFNBQVM7dUJBQUMsV0FBVztnQkFZZixXQUFXO3NCQURqQixNQUFNO2dCQVVBLFdBQVc7c0JBRGpCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQU90QixVQUFVO3NCQURoQixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQVlDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICAgIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uIChhY3Rpb25DbGljayk9XCJzdGFydEVkaXQoJGV2ZW50KVwiPjwvaWd4LWdyaWQtYWN0aW9uLWJ1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVJdGVtVGVtcGxhdGUnKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYnV0dG9uIGFjdGlvbiBpcyByZW5kZXJlZCBpbiBtZW51IGFuZCBzaG91bGQgY29udGFpbmVyIHRleHQgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXNNZW51SXRlbSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgaWNvbiB0byBkaXNwbGF5IGluIHRoZSBidXR0b24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbk5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgTWVudSBpdGVtIGNvbnRhaW5lciBlbGVtZW50IGNsYXNzZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBjb250YWluZXJDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2lneC1hY3Rpb24tc3RyaXBfX21lbnUtYnV0dG9uICcgKyAodGhpcy5jbGFzc05hbWVzIHx8ICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiBzZXQuIFVzZWQgaW4gY2FzZSB0aGUgaWNvbiBpcyBmcm9tIGEgZGlmZmVyZW50IGljb24gc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25TZXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0IG9mIHRoZSBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHByZXZlbnRFdmVudChldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhYXNNZW51SXRlbVwiPlxuICAgIDxidXR0b24gW3RpdGxlXT1cImxhYmVsVGV4dFwiIGlneEJ1dHRvbj1cImljb25cIiBpZ3hSaXBwbGUgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAobW91c2Vkb3duKT1cInByZXZlbnRFdmVudCgkZXZlbnQpXCI+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImljb25TZXRcIiBbZmFtaWx5XT1cImljb25TZXRcIiBbbmFtZV09XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uU2V0XCIgPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNtZW51SXRlbVRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc01lbnVJdGVtXCI+XG4gICAgICAgIDxkaXYgI2NvbnRhaW5lciBbY2xhc3NOYW1lXT0nY29udGFpbmVyQ2xhc3MnPlxuICAgICAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiaWNvblNldFwiIFtmYW1pbHldPVwiaWNvblNldFwiIFtuYW1lXT1cImljb25OYW1lXCI+e3tpY29uTmFtZX19PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uU2V0XCIgPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgICAgICAgICA8bGFiZWwgaWd4TGFiZWw+e3tsYWJlbFRleHR9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvYWN0aW9uLXN0cmlwL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVF2QyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBWUk7Ozs7Ozs7V0FPRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVcvQzs7V0FFRztRQUVJLGVBQVUsR0FBRyxLQUFLLENBQUM7S0FnRDdCO0lBbENHLHdCQUF3QjtJQUN4QixJQUFXLGNBQWM7UUFDckIsT0FBTyxnQ0FBZ0MsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQWNEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxLQUFLO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxLQUFLO1FBQ3JCLElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7OEdBNUVRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHVjQ1p6Qyx5d0JBZWMsNENETkEsSUFBSSw2RkFBRSxrQkFBa0Isd01BQUUsa0JBQWtCLGlLQUFFLGdCQUFnQjs7MkZBRy9ELDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDSSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDOzhCQU1sRSxTQUFTO3NCQURmLFNBQVM7dUJBQUMsV0FBVztnQkFZZixXQUFXO3NCQURqQixNQUFNO2dCQVVBLFdBQVc7c0JBRGpCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQU90QixVQUFVO3NCQURoQixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQVlDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICAgIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uIChhY3Rpb25DbGljayk9XCJzdGFydEVkaXQoJGV2ZW50KVwiPjwvaWd4LWdyaWQtYWN0aW9uLWJ1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVJdGVtVGVtcGxhdGUnKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYnV0dG9uIGFjdGlvbiBpcyByZW5kZXJlZCBpbiBtZW51IGFuZCBzaG91bGQgY29udGFpbmVyIHRleHQgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXNNZW51SXRlbSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgaWNvbiB0byBkaXNwbGF5IGluIHRoZSBidXR0b24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbk5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgTWVudSBpdGVtIGNvbnRhaW5lciBlbGVtZW50IGNsYXNzZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBjb250YWluZXJDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2lneC1hY3Rpb24tc3RyaXBfX21lbnUtYnV0dG9uICcgKyAodGhpcy5jbGFzc05hbWVzIHx8ICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiBzZXQuIFVzZWQgaW4gY2FzZSB0aGUgaWNvbiBpcyBmcm9tIGEgZGlmZmVyZW50IGljb24gc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25TZXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0IG9mIHRoZSBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHByZXZlbnRFdmVudChldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhYXNNZW51SXRlbVwiPlxuICAgIDxidXR0b24gW3RpdGxlXT1cImxhYmVsVGV4dFwiIGlneEJ1dHRvbj1cImljb25cIiBpZ3hSaXBwbGUgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAobW91c2Vkb3duKT1cInByZXZlbnRFdmVudCgkZXZlbnQpXCI+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImljb25TZXRcIiBbZmFtaWx5XT1cImljb25TZXRcIiBbbmFtZV09XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uU2V0XCIgPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNtZW51SXRlbVRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc01lbnVJdGVtXCI+XG4gICAgICAgIDxkaXYgI2NvbnRhaW5lciBbY2xhc3NOYW1lXT0nY29udGFpbmVyQ2xhc3MnPlxuICAgICAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiaWNvblNldFwiIFtmYW1pbHldPVwiaWNvblNldFwiIFtuYW1lXT1cImljb25OYW1lXCI+e3tpY29uTmFtZX19PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uU2V0XCIgPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgICAgICAgICA8bGFiZWwgaWd4TGFiZWw+e3tsYWJlbFRleHR9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -55,10 +55,10 @@ export class IgxGridActionsBaseDirective {
55
55
  isRow(context) {
56
56
  return context && context instanceof IgxRowDirective;
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridActionsBaseDirective, deps: [{ token: i1.IgxIconService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
59
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxGridActionsBaseDirective, isStandalone: true, selector: "[igxGridActionsBase]", inputs: { asMenuItems: "asMenuItems" }, viewQueries: [{ propertyName: "buttons", predicate: IgxGridActionButtonComponent, descendants: true }], ngImport: i0 }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridActionsBaseDirective, deps: [{ token: i1.IgxIconService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
59
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxGridActionsBaseDirective, isStandalone: true, selector: "[igxGridActionsBase]", inputs: { asMenuItems: "asMenuItems" }, viewQueries: [{ propertyName: "buttons", predicate: IgxGridActionButtonComponent, descendants: true }], ngImport: i0 }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridActionsBaseDirective, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridActionsBaseDirective, decorators: [{
62
62
  type: Directive,
63
63
  args: [{
64
64
  selector: '[igxGridActionsBase]',
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
70
70
  }], asMenuItems: [{
71
71
  type: Input
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixZQUFZLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBTzVELE1BQU0sT0FBTywyQkFBMkI7SUFrQnBDOzs7T0FHRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBc0IsV0FBMkIsRUFDbkMsT0FBd0I7UUFEaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBakN0Qzs7Ozs7Ozs7V0FRRztRQUVJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBdUJlLENBQUM7SUFFM0M7OztPQUdHO0lBQ0ksZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxLQUFLLENBQUMsT0FBTztRQUNuQixPQUFPLE9BQU8sSUFBSSxPQUFPLFlBQVksZUFBZSxDQUFDO0lBQ3pELENBQUM7bUhBNURRLDJCQUEyQjt1R0FBM0IsMkJBQTJCLG9KQUN0Qiw0QkFBNEI7O2dHQURqQywyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ25CO21JQUdVLE9BQU87c0JBRGIsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBYW5DLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZ3hHcmlkQWN0aW9uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLWFjdGlvbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEFmdGVyVmlld0luaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuLCBJdGVyYWJsZURpZmZlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEFjdGlvblN0cmlwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLXN0cmlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9ncmlkcy9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hHcmlkQWN0aW9uc0Jhc2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRBY3Rpb25zQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudClcbiAgICBwdWJsaWMgYnV0dG9uczogUXVlcnlMaXN0PElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIGlmIHRoZSBhY3Rpb24gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIGFzIG1lbnUgaXRlbXMuIFdoZW4gaW4gbWVudSwgaXRlbXMgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRleHQgbGFiZWwuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1ncmlkLXBpbm5pbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLXBpbm5pbmctYWN0aW9ucz5cbiAgICAgKiAgPGlneC1ncmlkLWVkaXRpbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLWVkaXRpbmctYWN0aW9ucz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhc01lbnVJdGVtcyA9IGZhbHNlO1xuXG4gICAgcHVibGljIHN0cmlwOiBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuZ3JpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgdG8gYmUgdXNlZCBpbiB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNSb3dDb250ZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpICYmICF0aGlzLnN0cmlwLmNvbnRleHQuaW5FZGl0TW9kZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElneEljb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5hc01lbnVJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmlwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBwYXJhbSBpcyBhIHJvdyBmcm9tIGEgZ3JpZFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIEBwYXJhbSBjb250ZXh0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzUm93KGNvbnRleHQpOiBjb250ZXh0IGlzIElneFJvd0RpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBJZ3hSb3dEaXJlY3RpdmU7XG4gICAgfVxufVxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixZQUFZLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBTzVELE1BQU0sT0FBTywyQkFBMkI7SUFrQnBDOzs7T0FHRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBc0IsV0FBMkIsRUFDbkMsT0FBd0I7UUFEaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBakN0Qzs7Ozs7Ozs7V0FRRztRQUVJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBdUJlLENBQUM7SUFFM0M7OztPQUdHO0lBQ0ksZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxLQUFLLENBQUMsT0FBTztRQUNuQixPQUFPLE9BQU8sSUFBSSxPQUFPLFlBQVksZUFBZSxDQUFDO0lBQ3pELENBQUM7OEdBNURRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9KQUN0Qiw0QkFBNEI7OzJGQURqQywyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ25CO21JQUdVLE9BQU87c0JBRGIsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBYW5DLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJZ3hHcmlkQWN0aW9uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkLWFjdGlvbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEFmdGVyVmlld0luaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuLCBJdGVyYWJsZURpZmZlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEFjdGlvblN0cmlwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLXN0cmlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9ncmlkcy9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hHcmlkQWN0aW9uc0Jhc2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRBY3Rpb25zQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudClcbiAgICBwdWJsaWMgYnV0dG9uczogUXVlcnlMaXN0PElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIGlmIHRoZSBhY3Rpb24gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIGFzIG1lbnUgaXRlbXMuIFdoZW4gaW4gbWVudSwgaXRlbXMgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRleHQgbGFiZWwuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1ncmlkLXBpbm5pbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLXBpbm5pbmctYWN0aW9ucz5cbiAgICAgKiAgPGlneC1ncmlkLWVkaXRpbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLWVkaXRpbmctYWN0aW9ucz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhc01lbnVJdGVtcyA9IGZhbHNlO1xuXG4gICAgcHVibGljIHN0cmlwOiBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuZ3JpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgdG8gYmUgdXNlZCBpbiB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNSb3dDb250ZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpICYmICF0aGlzLnN0cmlwLmNvbnRleHQuaW5FZGl0TW9kZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElneEljb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5hc01lbnVJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmlwLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBwYXJhbSBpcyBhIHJvdyBmcm9tIGEgZ3JpZFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIEBwYXJhbSBjb250ZXh0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzUm93KGNvbnRleHQpOiBjb250ZXh0IGlzIElneFJvd0RpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBJZ3hSb3dEaXJlY3RpdmU7XG4gICAgfVxufVxuIl19
@@ -149,10 +149,10 @@ export class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective
149
149
  this.iconService.addSvgIconFromText(addRow.name, addRow.value, 'imx-icons', true);
150
150
  this.iconService.addSvgIconFromText(addChild.name, addChild.value, 'imx-icons', true);
151
151
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridEditingActionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxGridEditingActionsComponent, isStandalone: true, selector: "igx-grid-editing-actions", inputs: { addRow: "addRow", editRow: "editRow", deleteRow: "deleteRow", addChild: "addChild" }, host: { properties: { "class.igx-action-strip__editing-actions": "this.cssClass" } }, providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridEditingActionsComponent }], usesInheritance: true, ngImport: i0, template: "\n<ng-container *ngIf=\"isRowContext\">\n <igx-grid-action-button *ngIf=\"!disabled && editRow\" [asMenuItem]=\"asMenuItems\" iconName=\"edit\" [labelText]=\"grid.resourceStrings.igx_grid_actions_edit_label\" (actionClick)=\"startEdit($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addRow && isRootRow\" [asMenuItem]=\"asMenuItems\" iconName=\"add-row\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_label\" (actionClick)=\"addRowHandler($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addChild && hasChildren\" [asMenuItem]=\"asMenuItems\" iconName=\"add-child\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_child_label\" (actionClick)=\"addRowHandler($event, true)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"!disabled && deleteRow\" class=\"igx-action-strip__delete\" classNames='igx-action-strip__menu-item--danger' [asMenuItem]=\"asMenuItems\" iconName=\"delete\" [labelText]=\"grid.resourceStrings.igx_grid_actions_delete_label\" (actionClick)=\"deleteRowHandler($event)\"></igx-grid-action-button>\n</ng-container>\n\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxGridActionButtonComponent, selector: "igx-grid-action-button", inputs: ["asMenuItem", "iconName", "classNames", "iconSet", "labelText"], outputs: ["actionClick"] }] }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridEditingActionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: IgxGridEditingActionsComponent, isStandalone: true, selector: "igx-grid-editing-actions", inputs: { addRow: "addRow", editRow: "editRow", deleteRow: "deleteRow", addChild: "addChild" }, host: { properties: { "class.igx-action-strip__editing-actions": "this.cssClass" } }, providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridEditingActionsComponent }], usesInheritance: true, ngImport: i0, template: "\n<ng-container *ngIf=\"isRowContext\">\n <igx-grid-action-button *ngIf=\"!disabled && editRow\" [asMenuItem]=\"asMenuItems\" iconName=\"edit\" [labelText]=\"grid.resourceStrings.igx_grid_actions_edit_label\" (actionClick)=\"startEdit($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addRow && isRootRow\" [asMenuItem]=\"asMenuItems\" iconName=\"add-row\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_label\" (actionClick)=\"addRowHandler($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addChild && hasChildren\" [asMenuItem]=\"asMenuItems\" iconName=\"add-child\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_child_label\" (actionClick)=\"addRowHandler($event, true)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"!disabled && deleteRow\" class=\"igx-action-strip__delete\" classNames='igx-action-strip__menu-item--danger' [asMenuItem]=\"asMenuItems\" iconName=\"delete\" [labelText]=\"grid.resourceStrings.igx_grid_actions_delete_label\" (actionClick)=\"deleteRowHandler($event)\"></igx-grid-action-button>\n</ng-container>\n\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxGridActionButtonComponent, selector: "igx-grid-action-button", inputs: ["asMenuItem", "iconName", "classNames", "iconSet", "labelText"], outputs: ["actionClick"] }] }); }
154
154
  }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridEditingActionsComponent, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridEditingActionsComponent, decorators: [{
156
156
  type: Component,
157
157
  args: [{ selector: 'igx-grid-editing-actions', providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridEditingActionsComponent }], standalone: true, imports: [NgIf, IgxGridActionButtonComponent], template: "\n<ng-container *ngIf=\"isRowContext\">\n <igx-grid-action-button *ngIf=\"!disabled && editRow\" [asMenuItem]=\"asMenuItems\" iconName=\"edit\" [labelText]=\"grid.resourceStrings.igx_grid_actions_edit_label\" (actionClick)=\"startEdit($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addRow && isRootRow\" [asMenuItem]=\"asMenuItems\" iconName=\"add-row\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_label\" (actionClick)=\"addRowHandler($event)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"addChild && hasChildren\" [asMenuItem]=\"asMenuItems\" iconName=\"add-child\" iconSet=\"imx-icons\" [labelText]=\"grid.resourceStrings.igx_grid_actions_add_child_label\" (actionClick)=\"addRowHandler($event, true)\"></igx-grid-action-button>\n <igx-grid-action-button *ngIf=\"!disabled && deleteRow\" class=\"igx-action-strip__delete\" classNames='igx-action-strip__menu-item--danger' [asMenuItem]=\"asMenuItems\" iconName=\"delete\" [labelText]=\"grid.resourceStrings.igx_grid_actions_delete_label\" (actionClick)=\"deleteRowHandler($event)\"></igx-grid-action-button>\n</ng-container>\n\n" }]
158
158
  }], propDecorators: { cssClass: [{
@@ -167,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
167
167
  }], addChild: [{
168
168
  type: Input
169
169
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVdkMsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQVIvRTs7UUFVSTs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxtQ0FBbUMsQ0FBQztRQWlCdEQ7O1dBRUc7UUFFSSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXRCOztVQUVFO1FBRUssY0FBUyxHQUFHLElBQUksQ0FBQztRQW1DeEI7O1dBRUc7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENB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RUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDO21IQWpLUSw4QkFBOEI7dUdBQTlCLDhCQUE4Qiw2UEFMNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxpRENWdEcsK29DQVFBLDRDREljLElBQUksNkZBQUUsNEJBQTRCOztnR0FHbkMsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDBCQUEwQixhQUV6QixDQUFDLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQyxjQUN0RixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLENBQUM7OEJBWXRDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyx5Q0FBeUM7Z0JBTzNDLE1BQU07c0JBRGhCLEtBQUs7Z0JBZ0JDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBd0NDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2dyaWQtYWN0aW9ucy1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzaG93TWVzc2FnZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWRkUm93LCBhZGRDaGlsZCAgfSBmcm9tICdAaWduaXRldWkvbWF0ZXJpYWwtaWNvbnMtZXh0ZW5kZWQnO1xuaW1wb3J0IHsgSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1lZGl0aW5nLWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogSWd4R3JpZEVkaXRpbmdBY3Rpb25zQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4R3JpZEVkaXRpbmdBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqIEhvc3QgYGNsYXNzLmlneC1hY3Rpb24tc3RyaXBgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYWN0aW9uLXN0cmlwX19lZGl0aW5nLWFjdGlvbnMnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYWN0aW9uLXN0cmlwX19lZGl0aW5nLWFjdGlvbnMnO1xuXG4gICAgLyoqXG4gICAgICogQW4gaW5wdXQgdG8gZW5hYmxlL2Rpc2FibGUgYWN0aW9uIHN0cmlwIHJvdyBhZGRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFkZFJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hZGRSb3cgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHVibGljIGdldCBhZGRSb3coKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pY29uc1JlbmRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVySWNvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuaWNvbnNSZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFJvdztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBpbnB1dCB0byBlbmFibGUvZGlzYWJsZSBhY3Rpb24gc3RyaXAgcm93IGVkaXRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdFJvdyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAqIEFuIGlucHV0IHRvIGVuYWJsZS9kaXNhYmxlIGFjdGlvbiBzdHJpcCByb3cgZGVsZXRpbmcgYnV0dG9uXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWxldGVSb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGlmIHRoZSByb3cgaXMgZGlzYWJsZWRcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSb3codGhpcy5zdHJpcC5jb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGlmIHRoZSByb3cgaXMgcm9vdC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzUm9vdFJvdygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUm93KHRoaXMuc3RyaXAuY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpcC5jb250ZXh0LmlzUm9vdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSb3codGhpcy5zdHJpcC5jb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuaGFzQ2hpbGRyZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gaW5wdXQgdG8gZW5hYmxlL2Rpc2FibGUgYWN0aW9uIHN0cmlwIGNoaWxkIHJvdyBhZGRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWRkQ2hpbGQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaXNNZXNzYWdlU2hvd24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9hZGRSb3cgPSBmYWxzZTtcbiAgICBwcml2YXRlIGljb25zUmVuZGVyZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVudGVyIHJvdyBvciBjZWxsIGVkaXQgbW9kZSBkZXBlbmRpbmcgdGhlIGdyaWQgcm93RWRpdGFibGUgb3B0aW9uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWRFZGl0aW5nQWN0aW9ucy5zdGFydEVkaXQoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnRFZGl0KGV2ZW50Pyk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5zdHJpcC5jb250ZXh0O1xuICAgICAgICBjb25zdCBmaXJzdEVkaXRhYmxlID0gcm93LmNlbGxzLmZpbHRlcihjZWxsID0+IGNlbGwuZWRpdGFibGUpWzBdO1xuICAgICAgICBjb25zdCBncmlkID0gcm93LmdyaWQ7XG4gICAgICAgIGlmICghZ3JpZC5oYXNFZGl0YWJsZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIHRoaXMuaXNNZXNzYWdlU2hvd24gPSBzaG93TWVzc2FnZShcbiAgICAgICAgICAgICAgICAnVGhlIGdyaWQgc2hvdWxkIGJlIGVkaXRhYmxlIGluIG9yZGVyIHRvIHVzZSBJZ3hHcmlkRWRpdGluZ0FjdGlvbnNDb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNNZXNzYWdlU2hvd24pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBiZSBzdXJlIHJvdyBpcyBpbiB2aWV3XG4gICAgICAgIGlmIChncmlkLnJvd0xpc3QuZmlsdGVyKHIgPT4gciA9PT0gcm93KS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIGdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5lbnRlckVkaXRNb2RlKGZpcnN0RWRpdGFibGUsIGV2ZW50KTtcbiAgICAgICAgICAgIGlmICghZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLm5vbkVkaXRhYmxlKXtcbiAgICAgICAgICAgICAgICBmaXJzdEVkaXRhYmxlLmFjdGl2YXRlKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0cmlwLmhpZGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSByb3cgYWNjb3JkaW5nIHRvIHRoZSBjb250ZXh0XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWRFZGl0aW5nQWN0aW9ucy5kZWxldGVSb3dIYW5kbGVyKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZVJvd0hhbmRsZXIoZXZlbnQ/KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzUm93KHRoaXMuc3RyaXAuY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5zdHJpcC5jb250ZXh0O1xuICAgICAgICBjb25zdCBncmlkID0gY29udGV4dC5ncmlkO1xuICAgICAgICBncmlkLmRlbGV0ZVJvdyhjb250ZXh0LmtleSk7XG5cbiAgICAgICAgdGhpcy5zdHJpcC5oaWRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJvd0hhbmRsZXIoZXZlbnQ/LCBhc0NoaWxkPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuc3RyaXAuY29udGV4dDtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGNvbnRleHQuZ3JpZDtcbiAgICAgICAgaWYgKCFncmlkLnJvd0VkaXRhYmxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBncmlkIG11c3QgdXNlIHJvdyBlZGl0IG1vZGUgdG8gcGVyZm9ybSByb3cgYWRkaW5nISBQbGVhc2Ugc2V0IHJvd0VkaXRhYmxlIHRvIHRydWUuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmVudGVyQWRkUm93TW9kZShjb250ZXh0LCBhc0NoaWxkLCBldmVudCk7XG4gICAgICAgIHRoaXMuc3RyaXAuaGlkZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlZ2lzdGVySWNvbnMoKSB7XG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UuYWRkU3ZnSWNvbkZyb21UZXh0KGFkZFJvdy5uYW1lLCBhZGRSb3cudmFsdWUsICdpbXgtaWNvbnMnLCB0cnVlLCk7XG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UuYWRkU3ZnSWNvbkZyb21UZXh0KGFkZENoaWxkLm5hbWUsIGFkZENoaWxkLnZhbHVlLCAnaW14LWljb25zJywgdHJ1ZSk7XG4gICAgfVxufVxuIiwiXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNSb3dDb250ZXh0XCI+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCIhZGlzYWJsZWQgJiYgZWRpdFJvd1wiIFthc01lbnVJdGVtXT1cImFzTWVudUl0ZW1zXCIgaWNvbk5hbWU9XCJlZGl0XCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2VkaXRfbGFiZWxcIiAoYWN0aW9uQ2xpY2spPVwic3RhcnRFZGl0KCRldmVudClcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCJhZGRSb3cgJiYgaXNSb290Um93XCIgW2FzTWVudUl0ZW1dPVwiYXNNZW51SXRlbXNcIiBpY29uTmFtZT1cImFkZC1yb3dcIiBpY29uU2V0PVwiaW14LWljb25zXCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2FkZF9sYWJlbFwiIChhY3Rpb25DbGljayk9XCJhZGRSb3dIYW5kbGVyKCRldmVudClcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCJhZGRDaGlsZCAmJiBoYXNDaGlsZHJlblwiIFthc01lbnVJdGVtXT1cImFzTWVudUl0ZW1zXCIgaWNvbk5hbWU9XCJhZGQtY2hpbGRcIiBpY29uU2V0PVwiaW14LWljb25zXCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2FkZF9jaGlsZF9sYWJlbFwiIChhY3Rpb25DbGljayk9XCJhZGRSb3dIYW5kbGVyKCRldmVudCwgdHJ1ZSlcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCIhZGlzYWJsZWQgJiYgZGVsZXRlUm93XCIgY2xhc3M9XCJpZ3gtYWN0aW9uLXN0cmlwX19kZWxldGVcIiBjbGFzc05hbWVzPSdpZ3gtYWN0aW9uLXN0cmlwX19tZW51LWl0ZW0tLWRhbmdlcicgW2FzTWVudUl0ZW1dPVwiYXNNZW51SXRlbXNcIiBpY29uTmFtZT1cImRlbGV0ZVwiIFtsYWJlbFRleHRdPVwiZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfYWN0aW9uc19kZWxldGVfbGFiZWxcIiAoYWN0aW9uQ2xpY2spPVwiZGVsZXRlUm93SGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG5cbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVdkMsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQVIvRTs7UUFVSTs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxtQ0FBbUMsQ0FBQztRQWlCdEQ7O1dBRUc7UUFFSSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXRCOztVQUVFO1FBRUssY0FBUyxHQUFHLElBQUksQ0FBQztRQW1DeEI7O1dBRUc7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENB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RUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDOzhHQWpLUSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2UEFMNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxpRENWdEcsK29DQVFBLDRDREljLElBQUksNkZBQUUsNEJBQTRCOzsyRkFHbkMsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDBCQUEwQixhQUV6QixDQUFDLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQyxjQUN0RixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLENBQUM7OEJBWXRDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyx5Q0FBeUM7Z0JBTzNDLE1BQU07c0JBRGhCLEtBQUs7Z0JBZ0JDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBd0NDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hHcmlkQWN0aW9uc0Jhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2dyaWQtYWN0aW9ucy1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzaG93TWVzc2FnZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWRkUm93LCBhZGRDaGlsZCAgfSBmcm9tICdAaWduaXRldWkvbWF0ZXJpYWwtaWNvbnMtZXh0ZW5kZWQnO1xuaW1wb3J0IHsgSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1lZGl0aW5nLWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnZ3JpZC1lZGl0aW5nLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogSWd4R3JpZEVkaXRpbmdBY3Rpb25zQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4R3JpZEVkaXRpbmdBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqIEhvc3QgYGNsYXNzLmlneC1hY3Rpb24tc3RyaXBgIGJpbmRpbmcuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYWN0aW9uLXN0cmlwX19lZGl0aW5nLWFjdGlvbnMnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYWN0aW9uLXN0cmlwX19lZGl0aW5nLWFjdGlvbnMnO1xuXG4gICAgLyoqXG4gICAgICogQW4gaW5wdXQgdG8gZW5hYmxlL2Rpc2FibGUgYWN0aW9uIHN0cmlwIHJvdyBhZGRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGFkZFJvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hZGRSb3cgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHVibGljIGdldCBhZGRSb3coKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pY29uc1JlbmRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVySWNvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuaWNvbnNSZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFJvdztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBpbnB1dCB0byBlbmFibGUvZGlzYWJsZSBhY3Rpb24gc3RyaXAgcm93IGVkaXRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdFJvdyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAqIEFuIGlucHV0IHRvIGVuYWJsZS9kaXNhYmxlIGFjdGlvbiBzdHJpcCByb3cgZGVsZXRpbmcgYnV0dG9uXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWxldGVSb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGlmIHRoZSByb3cgaXMgZGlzYWJsZWRcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSb3codGhpcy5zdHJpcC5jb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGlmIHRoZSByb3cgaXMgcm9vdC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzUm9vdFJvdygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUm93KHRoaXMuc3RyaXAuY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpcC5jb250ZXh0LmlzUm9vdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSb3codGhpcy5zdHJpcC5jb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwLmNvbnRleHQuaGFzQ2hpbGRyZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gaW5wdXQgdG8gZW5hYmxlL2Rpc2FibGUgYWN0aW9uIHN0cmlwIGNoaWxkIHJvdyBhZGRpbmcgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWRkQ2hpbGQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaXNNZXNzYWdlU2hvd24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9hZGRSb3cgPSBmYWxzZTtcbiAgICBwcml2YXRlIGljb25zUmVuZGVyZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVudGVyIHJvdyBvciBjZWxsIGVkaXQgbW9kZSBkZXBlbmRpbmcgdGhlIGdyaWQgcm93RWRpdGFibGUgb3B0aW9uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWRFZGl0aW5nQWN0aW9ucy5zdGFydEVkaXQoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnRFZGl0KGV2ZW50Pyk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5zdHJpcC5jb250ZXh0O1xuICAgICAgICBjb25zdCBmaXJzdEVkaXRhYmxlID0gcm93LmNlbGxzLmZpbHRlcihjZWxsID0+IGNlbGwuZWRpdGFibGUpWzBdO1xuICAgICAgICBjb25zdCBncmlkID0gcm93LmdyaWQ7XG4gICAgICAgIGlmICghZ3JpZC5oYXNFZGl0YWJsZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIHRoaXMuaXNNZXNzYWdlU2hvd24gPSBzaG93TWVzc2FnZShcbiAgICAgICAgICAgICAgICAnVGhlIGdyaWQgc2hvdWxkIGJlIGVkaXRhYmxlIGluIG9yZGVyIHRvIHVzZSBJZ3hHcmlkRWRpdGluZ0FjdGlvbnNDb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNNZXNzYWdlU2hvd24pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBiZSBzdXJlIHJvdyBpcyBpbiB2aWV3XG4gICAgICAgIGlmIChncmlkLnJvd0xpc3QuZmlsdGVyKHIgPT4gciA9PT0gcm93KS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIGdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5lbnRlckVkaXRNb2RlKGZpcnN0RWRpdGFibGUsIGV2ZW50KTtcbiAgICAgICAgICAgIGlmICghZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLm5vbkVkaXRhYmxlKXtcbiAgICAgICAgICAgICAgICBmaXJzdEVkaXRhYmxlLmFjdGl2YXRlKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0cmlwLmhpZGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSByb3cgYWNjb3JkaW5nIHRvIHRoZSBjb250ZXh0XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWRFZGl0aW5nQWN0aW9ucy5kZWxldGVSb3dIYW5kbGVyKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZVJvd0hhbmRsZXIoZXZlbnQ/KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzUm93KHRoaXMuc3RyaXAuY29udGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5zdHJpcC5jb250ZXh0O1xuICAgICAgICBjb25zdCBncmlkID0gY29udGV4dC5ncmlkO1xuICAgICAgICBncmlkLmRlbGV0ZVJvdyhjb250ZXh0LmtleSk7XG5cbiAgICAgICAgdGhpcy5zdHJpcC5oaWRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJvd0hhbmRsZXIoZXZlbnQ/LCBhc0NoaWxkPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1Jvdyh0aGlzLnN0cmlwLmNvbnRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuc3RyaXAuY29udGV4dDtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGNvbnRleHQuZ3JpZDtcbiAgICAgICAgaWYgKCFncmlkLnJvd0VkaXRhYmxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBncmlkIG11c3QgdXNlIHJvdyBlZGl0IG1vZGUgdG8gcGVyZm9ybSByb3cgYWRkaW5nISBQbGVhc2Ugc2V0IHJvd0VkaXRhYmxlIHRvIHRydWUuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmVudGVyQWRkUm93TW9kZShjb250ZXh0LCBhc0NoaWxkLCBldmVudCk7XG4gICAgICAgIHRoaXMuc3RyaXAuaGlkZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlZ2lzdGVySWNvbnMoKSB7XG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UuYWRkU3ZnSWNvbkZyb21UZXh0KGFkZFJvdy5uYW1lLCBhZGRSb3cudmFsdWUsICdpbXgtaWNvbnMnLCB0cnVlLCk7XG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UuYWRkU3ZnSWNvbkZyb21UZXh0KGFkZENoaWxkLm5hbWUsIGFkZENoaWxkLnZhbHVlLCAnaW14LWljb25zJywgdHJ1ZSk7XG4gICAgfVxufVxuIiwiXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNSb3dDb250ZXh0XCI+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCIhZGlzYWJsZWQgJiYgZWRpdFJvd1wiIFthc01lbnVJdGVtXT1cImFzTWVudUl0ZW1zXCIgaWNvbk5hbWU9XCJlZGl0XCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2VkaXRfbGFiZWxcIiAoYWN0aW9uQ2xpY2spPVwic3RhcnRFZGl0KCRldmVudClcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCJhZGRSb3cgJiYgaXNSb290Um93XCIgW2FzTWVudUl0ZW1dPVwiYXNNZW51SXRlbXNcIiBpY29uTmFtZT1cImFkZC1yb3dcIiBpY29uU2V0PVwiaW14LWljb25zXCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2FkZF9sYWJlbFwiIChhY3Rpb25DbGljayk9XCJhZGRSb3dIYW5kbGVyKCRldmVudClcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCJhZGRDaGlsZCAmJiBoYXNDaGlsZHJlblwiIFthc01lbnVJdGVtXT1cImFzTWVudUl0ZW1zXCIgaWNvbk5hbWU9XCJhZGQtY2hpbGRcIiBpY29uU2V0PVwiaW14LWljb25zXCIgW2xhYmVsVGV4dF09XCJncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9hY3Rpb25zX2FkZF9jaGlsZF9sYWJlbFwiIChhY3Rpb25DbGljayk9XCJhZGRSb3dIYW5kbGVyKCRldmVudCwgdHJ1ZSlcIj48L2lneC1ncmlkLWFjdGlvbi1idXR0b24+XG4gICAgPGlneC1ncmlkLWFjdGlvbi1idXR0b24gKm5nSWY9XCIhZGlzYWJsZWQgJiYgZGVsZXRlUm93XCIgY2xhc3M9XCJpZ3gtYWN0aW9uLXN0cmlwX19kZWxldGVcIiBjbGFzc05hbWVzPSdpZ3gtYWN0aW9uLXN0cmlwX19tZW51LWl0ZW0tLWRhbmdlcicgW2FzTWVudUl0ZW1dPVwiYXNNZW51SXRlbXNcIiBpY29uTmFtZT1cImRlbGV0ZVwiIFtsYWJlbFRleHRdPVwiZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfYWN0aW9uc19kZWxldGVfbGFiZWxcIiAoYWN0aW9uQ2xpY2spPVwiZGVsZXRlUm93SGFuZGxlcigkZXZlbnQpXCI+PC9pZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG5cbiJdfQ==