igniteui-angular 17.0.0-alpha.2 → 17.0.0-beta.0

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 (439) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +8 -7
  2. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  3. package/esm2022/lib/action-strip/action-strip.component.mjs +21 -25
  4. package/esm2022/lib/action-strip/action-strip.module.mjs +4 -4
  5. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +7 -6
  6. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +7 -6
  7. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +13 -9
  8. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
  9. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  10. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  11. package/esm2022/lib/badge/badge.component.mjs +3 -3
  12. package/esm2022/lib/badge/badge.module.mjs +4 -4
  13. package/esm2022/lib/banner/banner.component.mjs +3 -3
  14. package/esm2022/lib/banner/banner.directives.mjs +3 -3
  15. package/esm2022/lib/banner/banner.module.mjs +4 -4
  16. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +7 -6
  17. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +4 -4
  18. package/esm2022/lib/calendar/calendar-base.mjs +8 -9
  19. package/esm2022/lib/calendar/calendar.component.mjs +11 -8
  20. package/esm2022/lib/calendar/calendar.directives.mjs +15 -15
  21. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  22. package/esm2022/lib/calendar/days-view/day-item.component.mjs +13 -9
  23. package/esm2022/lib/calendar/days-view/days-view.component.mjs +9 -7
  24. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
  25. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +3 -3
  26. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
  27. package/esm2022/lib/calendar/months-view/months-view.component.mjs +7 -6
  28. package/esm2022/lib/calendar/months-view.pipe.mjs +6 -6
  29. package/esm2022/lib/calendar/years-view/years-view.component.mjs +10 -9
  30. package/esm2022/lib/card/card.component.mjs +37 -33
  31. package/esm2022/lib/card/card.module.mjs +4 -4
  32. package/esm2022/lib/carousel/carousel.component.mjs +18 -13
  33. package/esm2022/lib/carousel/carousel.directives.mjs +9 -9
  34. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  35. package/esm2022/lib/carousel/slide.component.mjs +10 -8
  36. package/esm2022/lib/checkbox/checkbox.component.mjs +52 -64
  37. package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
  38. package/esm2022/lib/chips/chip.component.mjs +19 -12
  39. package/esm2022/lib/chips/chips-area.component.mjs +3 -3
  40. package/esm2022/lib/chips/chips.module.mjs +4 -4
  41. package/esm2022/lib/combo/combo-add-item.component.mjs +3 -3
  42. package/esm2022/lib/combo/combo-dropdown.component.mjs +7 -6
  43. package/esm2022/lib/combo/combo-item.component.mjs +7 -6
  44. package/esm2022/lib/combo/combo.api.mjs +3 -3
  45. package/esm2022/lib/combo/combo.common.mjs +27 -38
  46. package/esm2022/lib/combo/combo.component.mjs +28 -27
  47. package/esm2022/lib/combo/combo.directives.mjs +24 -24
  48. package/esm2022/lib/combo/combo.module.mjs +4 -4
  49. package/esm2022/lib/combo/combo.pipes.mjs +6 -6
  50. package/esm2022/lib/core/density.mjs +3 -3
  51. package/esm2022/lib/core/navigation/directives.mjs +6 -6
  52. package/esm2022/lib/core/navigation/nav.service.mjs +3 -3
  53. package/esm2022/lib/core/selection.mjs +3 -3
  54. package/esm2022/lib/core/touch.mjs +3 -3
  55. package/esm2022/lib/core/utils.mjs +3 -3
  56. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
  57. package/esm2022/lib/date-common/picker-base.directive.mjs +7 -6
  58. package/esm2022/lib/date-common/picker-icons.common.mjs +9 -9
  59. package/esm2022/lib/date-picker/date-picker.component.mjs +13 -9
  60. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  61. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
  62. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +9 -7
  63. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
  64. package/esm2022/lib/dialog/dialog.component.mjs +17 -12
  65. package/esm2022/lib/dialog/dialog.directives.mjs +6 -6
  66. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  67. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +6 -6
  68. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +4 -4
  69. package/esm2022/lib/directives/button/button.directive.mjs +19 -35
  70. package/esm2022/lib/directives/button/button.module.mjs +4 -4
  71. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +7 -6
  72. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +4 -4
  73. package/esm2022/lib/directives/divider/divider.directive.mjs +9 -7
  74. package/esm2022/lib/directives/divider/divider.module.mjs +4 -4
  75. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +16 -15
  76. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +4 -4
  77. package/esm2022/lib/directives/filter/filter.directive.mjs +6 -6
  78. package/esm2022/lib/directives/filter/filter.module.mjs +4 -4
  79. package/esm2022/lib/directives/focus/focus.directive.mjs +6 -6
  80. package/esm2022/lib/directives/focus/focus.module.mjs +4 -4
  81. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +6 -6
  82. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +4 -4
  83. package/esm2022/lib/directives/for-of/base.helper.component.mjs +3 -3
  84. package/esm2022/lib/directives/for-of/display.container.mjs +3 -3
  85. package/esm2022/lib/directives/for-of/for_of.directive.mjs +12 -10
  86. package/esm2022/lib/directives/for-of/for_of.module.mjs +4 -4
  87. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -6
  88. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
  89. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +3 -3
  90. package/esm2022/lib/directives/form-control/form-control.directive.mjs +3 -3
  91. package/esm2022/lib/directives/form-control/form-control.module.mjs +4 -4
  92. package/esm2022/lib/directives/hint/hint.directive.mjs +3 -3
  93. package/esm2022/lib/directives/input/input.directive.mjs +11 -9
  94. package/esm2022/lib/directives/label/label.directive.mjs +3 -3
  95. package/esm2022/lib/directives/layout/layout.directive.mjs +9 -9
  96. package/esm2022/lib/directives/layout/layout.module.mjs +4 -4
  97. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +3 -3
  98. package/esm2022/lib/directives/mask/mask.directive.mjs +7 -6
  99. package/esm2022/lib/directives/mask/mask.module.mjs +4 -4
  100. package/esm2022/lib/directives/notification/notifications.directive.mjs +9 -7
  101. package/esm2022/lib/directives/prefix/prefix.directive.mjs +3 -3
  102. package/esm2022/lib/directives/radio/radio-group.directive.mjs +11 -9
  103. package/esm2022/lib/directives/radio/radio-group.module.mjs +4 -4
  104. package/esm2022/lib/directives/ripple/ripple.directive.mjs +7 -7
  105. package/esm2022/lib/directives/ripple/ripple.module.mjs +4 -4
  106. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +3 -3
  107. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +4 -4
  108. package/esm2022/lib/directives/suffix/suffix.directive.mjs +3 -3
  109. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +3 -3
  110. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +3 -3
  111. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +4 -4
  112. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +26 -46
  113. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +4 -4
  114. package/esm2022/lib/directives/toggle/toggle.directive.mjs +9 -9
  115. package/esm2022/lib/directives/toggle/toggle.module.mjs +4 -4
  116. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +6 -6
  117. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +3 -3
  118. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +3 -3
  119. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +4 -4
  120. package/esm2022/lib/drop-down/drop-down-group.component.mjs +7 -6
  121. package/esm2022/lib/drop-down/drop-down-item.base.mjs +11 -8
  122. package/esm2022/lib/drop-down/drop-down-item.component.mjs +3 -3
  123. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
  124. package/esm2022/lib/drop-down/drop-down.base.mjs +3 -3
  125. package/esm2022/lib/drop-down/drop-down.component.mjs +7 -6
  126. package/esm2022/lib/drop-down/drop-down.module.mjs +4 -4
  127. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
  128. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +7 -6
  129. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +3 -3
  130. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +7 -6
  131. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
  132. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +4 -4
  133. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +3 -3
  134. package/esm2022/lib/grids/api.service.mjs +3 -3
  135. package/esm2022/lib/grids/cell.component.mjs +7 -6
  136. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
  137. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +16 -15
  138. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
  139. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
  140. package/esm2022/lib/grids/columns/column-group.component.mjs +13 -9
  141. package/esm2022/lib/grids/columns/column-layout.component.mjs +7 -6
  142. package/esm2022/lib/grids/columns/column.component.mjs +37 -21
  143. package/esm2022/lib/grids/columns/templates.directive.mjs +24 -24
  144. package/esm2022/lib/grids/columns/validators.directive.mjs +21 -21
  145. package/esm2022/lib/grids/common/crud.service.mjs +3 -3
  146. package/esm2022/lib/grids/common/pipes.mjs +54 -54
  147. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
  148. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
  149. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  150. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
  151. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
  152. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +9 -9
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +11 -8
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  164. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +5 -5
  165. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +3 -3
  166. package/esm2022/lib/grids/grid/grid-api.service.mjs +3 -3
  167. package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
  168. package/esm2022/lib/grids/grid/grid-validation.service.mjs +3 -3
  169. package/esm2022/lib/grids/grid/grid.component.mjs +11 -8
  170. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +3 -3
  171. package/esm2022/lib/grids/grid/grid.module.mjs +4 -4
  172. package/esm2022/lib/grids/grid/grid.pipes.mjs +12 -12
  173. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +3 -3
  174. package/esm2022/lib/grids/grid/groupby-row.component.mjs +3 -3
  175. package/esm2022/lib/grids/grid-base.directive.mjs +33 -19
  176. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
  177. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +3 -3
  178. package/esm2022/lib/grids/grid-navigation.service.mjs +3 -3
  179. package/esm2022/lib/grids/grid.common.mjs +3 -3
  180. package/esm2022/lib/grids/grid.directives.mjs +33 -33
  181. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +15 -15
  182. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
  183. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +6 -6
  184. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +8 -7
  185. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +3 -3
  186. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +14 -7
  187. package/esm2022/lib/grids/headers/grid-header.component.mjs +3 -3
  188. package/esm2022/lib/grids/headers/pipes.mjs +9 -9
  189. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
  190. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
  191. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +7 -6
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +11 -10
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
  197. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
  198. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +7 -6
  199. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
  200. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +3 -3
  201. package/esm2022/lib/grids/moving/moving.service.mjs +3 -3
  202. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +13 -9
  203. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +3 -3
  204. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +3 -3
  205. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +25 -15
  206. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +3 -3
  207. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +4 -4
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +30 -30
  209. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
  210. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +3 -3
  211. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +3 -3
  212. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +3 -3
  213. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
  214. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +3 -3
  215. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
  216. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +3 -3
  217. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +3 -3
  218. package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
  219. package/esm2022/lib/grids/resizing/resizer.directive.mjs +3 -3
  220. package/esm2022/lib/grids/resizing/resizing.service.mjs +3 -3
  221. package/esm2022/lib/grids/row-drag.directive.mjs +9 -9
  222. package/esm2022/lib/grids/row.directive.mjs +7 -6
  223. package/esm2022/lib/grids/selection/drag-select.directive.mjs +6 -6
  224. package/esm2022/lib/grids/selection/row-selectors.mjs +9 -9
  225. package/esm2022/lib/grids/selection/selection.service.mjs +3 -3
  226. package/esm2022/lib/grids/state.directive.mjs +3 -3
  227. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
  228. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +10 -8
  229. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +7 -6
  230. package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
  231. package/esm2022/lib/grids/toolbar/common.mjs +15 -15
  232. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
  233. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +9 -7
  234. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
  235. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
  236. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +16 -11
  237. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +7 -6
  238. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
  239. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
  240. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
  241. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
  242. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +7 -6
  243. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
  244. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
  245. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
  246. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
  247. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
  248. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
  249. package/esm2022/lib/icon/icon.component.mjs +6 -6
  250. package/esm2022/lib/icon/icon.module.mjs +4 -4
  251. package/esm2022/lib/icon/icon.service.mjs +3 -3
  252. package/esm2022/lib/input-group/input-group.component.mjs +7 -6
  253. package/esm2022/lib/input-group/input-group.module.mjs +4 -4
  254. package/esm2022/lib/list/list-item.component.mjs +9 -7
  255. package/esm2022/lib/list/list.common.mjs +15 -15
  256. package/esm2022/lib/list/list.component.mjs +26 -23
  257. package/esm2022/lib/list/list.module.mjs +4 -4
  258. package/esm2022/lib/navbar/navbar.component.mjs +13 -12
  259. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  260. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +13 -9
  261. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +13 -13
  262. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
  263. package/esm2022/lib/paginator/paginator-interfaces.mjs +3 -3
  264. package/esm2022/lib/paginator/paginator.component.mjs +12 -12
  265. package/esm2022/lib/paginator/paginator.module.mjs +4 -4
  266. package/esm2022/lib/progressbar/progressbar.common.mjs +6 -6
  267. package/esm2022/lib/progressbar/progressbar.component.mjs +23 -17
  268. package/esm2022/lib/progressbar/progressbar.module.mjs +4 -4
  269. package/esm2022/lib/query-builder/query-builder-header.component.mjs +7 -6
  270. package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
  271. package/esm2022/lib/query-builder/query-builder.module.mjs +4 -4
  272. package/esm2022/lib/radio/radio.component.mjs +37 -44
  273. package/esm2022/lib/select/select-group.component.mjs +3 -3
  274. package/esm2022/lib/select/select-item.component.mjs +3 -3
  275. package/esm2022/lib/select/select-navigation.directive.mjs +3 -3
  276. package/esm2022/lib/select/select.component.mjs +16 -15
  277. package/esm2022/lib/select/select.module.mjs +4 -4
  278. package/esm2022/lib/services/animation/angular-animation-service.mjs +3 -3
  279. package/esm2022/lib/services/csv/csv-exporter.mjs +3 -3
  280. package/esm2022/lib/services/direction/directionality.mjs +3 -3
  281. package/esm2022/lib/services/excel/excel-exporter.mjs +3 -3
  282. package/esm2022/lib/services/overlay/overlay.mjs +5 -5
  283. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +6 -6
  284. package/esm2022/lib/simple-combo/simple-combo.component.mjs +51 -31
  285. package/esm2022/lib/simple-combo/simple-combo.module.mjs +4 -4
  286. package/esm2022/lib/slider/label/thumb-label.component.mjs +9 -7
  287. package/esm2022/lib/slider/slider.common.mjs +9 -9
  288. package/esm2022/lib/slider/slider.component.mjs +15 -10
  289. package/esm2022/lib/slider/slider.module.mjs +4 -4
  290. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +11 -8
  291. package/esm2022/lib/slider/ticks/tick.pipe.mjs +3 -3
  292. package/esm2022/lib/slider/ticks/ticks.component.mjs +11 -8
  293. package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
  294. package/esm2022/lib/snackbar/snackbar.module.mjs +4 -4
  295. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +9 -7
  296. package/esm2022/lib/splitter/splitter.component.mjs +6 -6
  297. package/esm2022/lib/splitter/splitter.module.mjs +4 -4
  298. package/esm2022/lib/stepper/step/step.component.mjs +15 -10
  299. package/esm2022/lib/stepper/stepper.component.mjs +9 -7
  300. package/esm2022/lib/stepper/stepper.directive.mjs +21 -21
  301. package/esm2022/lib/stepper/stepper.module.mjs +4 -4
  302. package/esm2022/lib/stepper/stepper.service.mjs +6 -6
  303. package/esm2022/lib/switch/switch.component.mjs +32 -40
  304. package/esm2022/lib/switch/switch.module.mjs +4 -4
  305. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
  306. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
  307. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
  308. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +5 -5
  309. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
  310. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
  311. package/esm2022/lib/tabs/tab-content.directive.mjs +3 -3
  312. package/esm2022/lib/tabs/tab-header.directive.mjs +3 -3
  313. package/esm2022/lib/tabs/tab-item.directive.mjs +9 -7
  314. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +3 -3
  315. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +3 -3
  316. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +3 -3
  317. package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
  318. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +6 -6
  319. package/esm2022/lib/tabs/tabs/tabs.module.mjs +4 -4
  320. package/esm2022/lib/tabs/tabs.directive.mjs +11 -17
  321. package/esm2022/lib/time-picker/time-picker.component.mjs +9 -7
  322. package/esm2022/lib/time-picker/time-picker.directives.mjs +6 -6
  323. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  324. package/esm2022/lib/time-picker/time-picker.pipes.mjs +6 -6
  325. package/esm2022/lib/toast/toast.component.mjs +3 -3
  326. package/esm2022/lib/toast/toast.module.mjs +4 -4
  327. package/esm2022/lib/tree/tree-navigation.service.mjs +3 -3
  328. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +18 -13
  329. package/esm2022/lib/tree/tree-selection.service.mjs +3 -3
  330. package/esm2022/lib/tree/tree.component.mjs +13 -12
  331. package/esm2022/lib/tree/tree.module.mjs +4 -4
  332. package/esm2022/lib/tree/tree.service.mjs +3 -3
  333. package/fesm2022/igniteui-angular.mjs +2245 -2106
  334. package/fesm2022/igniteui-angular.mjs.map +1 -1
  335. package/lib/accordion/accordion.component.d.ts +1 -0
  336. package/lib/action-strip/action-strip.component.d.ts +2 -2
  337. package/lib/action-strip/grid-actions/grid-action-button.component.d.ts +1 -0
  338. package/lib/action-strip/grid-actions/grid-actions-base.directive.d.ts +1 -0
  339. package/lib/action-strip/grid-actions/grid-editing-actions.component.d.ts +4 -0
  340. package/lib/buttonGroup/buttonGroup.component.d.ts +1 -0
  341. package/lib/calendar/calendar-base.d.ts +1 -0
  342. package/lib/calendar/calendar.component.d.ts +3 -0
  343. package/lib/calendar/days-view/day-item.component.d.ts +4 -0
  344. package/lib/calendar/days-view/days-view.component.d.ts +2 -0
  345. package/lib/calendar/months-view/months-view.component.d.ts +1 -0
  346. package/lib/calendar/years-view/years-view.component.d.ts +1 -0
  347. package/lib/card/card.component.d.ts +4 -0
  348. package/lib/carousel/carousel.component.d.ts +5 -0
  349. package/lib/carousel/slide.component.d.ts +2 -0
  350. package/lib/checkbox/checkbox.component.d.ts +10 -16
  351. package/lib/chips/chip.component.d.ts +7 -0
  352. package/lib/combo/combo-dropdown.component.d.ts +1 -0
  353. package/lib/combo/combo-item.component.d.ts +1 -0
  354. package/lib/combo/combo.common.d.ts +10 -21
  355. package/lib/combo/combo.component.d.ts +10 -8
  356. package/lib/date-common/picker-base.directive.d.ts +1 -0
  357. package/lib/date-picker/date-picker.component.d.ts +4 -0
  358. package/lib/date-range-picker/date-range-picker.component.d.ts +2 -0
  359. package/lib/dialog/dialog.component.d.ts +5 -0
  360. package/lib/directives/autocomplete/autocomplete.directive.d.ts +1 -0
  361. package/lib/directives/button/button.directive.d.ts +10 -23
  362. package/lib/directives/date-time-editor/date-time-editor.directive.d.ts +1 -0
  363. package/lib/directives/divider/divider.directive.d.ts +2 -0
  364. package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -0
  365. package/lib/directives/focus/focus.directive.d.ts +1 -0
  366. package/lib/directives/focus-trap/focus-trap.directive.d.ts +1 -0
  367. package/lib/directives/for-of/for_of.directive.d.ts +2 -0
  368. package/lib/directives/input/input.directive.d.ts +2 -2
  369. package/lib/directives/layout/layout.directive.d.ts +1 -0
  370. package/lib/directives/mask/mask.directive.d.ts +1 -0
  371. package/lib/directives/notification/notifications.directive.d.ts +2 -0
  372. package/lib/directives/radio/radio-group.directive.d.ts +2 -2
  373. package/lib/directives/ripple/ripple.directive.d.ts +2 -0
  374. package/lib/directives/text-selection/text-selection.directive.d.ts +2 -17
  375. package/lib/directives/tooltip/tooltip-target.directive.d.ts +1 -0
  376. package/lib/drop-down/drop-down-group.component.d.ts +1 -0
  377. package/lib/drop-down/drop-down-item.base.d.ts +3 -0
  378. package/lib/drop-down/drop-down.component.d.ts +1 -0
  379. package/lib/expansion-panel/expansion-panel-header.component.d.ts +1 -0
  380. package/lib/expansion-panel/expansion-panel.component.d.ts +1 -0
  381. package/lib/grids/cell.component.d.ts +1 -0
  382. package/lib/grids/column-actions/column-actions.component.d.ts +1 -0
  383. package/lib/grids/columns/column-group.component.d.ts +4 -0
  384. package/lib/grids/columns/column-layout.component.d.ts +1 -0
  385. package/lib/grids/columns/column.component.d.ts +16 -0
  386. package/lib/grids/filtering/excel-style/excel-style-header.component.d.ts +3 -0
  387. package/lib/grids/grid/grid.component.d.ts +3 -0
  388. package/lib/grids/grid-base.directive.d.ts +11 -0
  389. package/lib/grids/grouping/tree-grid-group-by-area.component.d.ts +1 -0
  390. package/lib/grids/headers/grid-header-row.component.d.ts +5 -0
  391. package/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.d.ts +1 -0
  392. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
  393. package/lib/grids/hierarchical-grid/row-island.component.d.ts +1 -0
  394. package/lib/grids/pivot-grid/pivot-data-selector.component.d.ts +4 -0
  395. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +10 -0
  396. package/lib/grids/row.directive.d.ts +1 -0
  397. package/lib/grids/selection/drag-select.directive.d.ts +1 -0
  398. package/lib/grids/summaries/summary-cell.component.d.ts +1 -0
  399. package/lib/grids/toolbar/grid-toolbar-exporter.component.d.ts +2 -0
  400. package/lib/grids/toolbar/grid-toolbar.base.d.ts +1 -0
  401. package/lib/grids/toolbar/grid-toolbar.component.d.ts +1 -0
  402. package/lib/grids/tree-grid/tree-grid.component.d.ts +1 -0
  403. package/lib/icon/icon.component.d.ts +1 -0
  404. package/lib/input-group/input-group.component.d.ts +1 -0
  405. package/lib/list/list-item.component.d.ts +2 -0
  406. package/lib/list/list.component.d.ts +3 -0
  407. package/lib/navbar/navbar.component.d.ts +1 -0
  408. package/lib/navigation-drawer/navigation-drawer.component.d.ts +4 -0
  409. package/lib/navigation-drawer/navigation-drawer.directives.d.ts +2 -0
  410. package/lib/progressbar/progressbar.component.d.ts +6 -0
  411. package/lib/query-builder/query-builder-header.component.d.ts +1 -0
  412. package/lib/radio/radio.component.d.ts +5 -4
  413. package/lib/select/select.component.d.ts +1 -0
  414. package/lib/simple-combo/simple-combo.component.d.ts +16 -1
  415. package/lib/slider/label/thumb-label.component.d.ts +2 -0
  416. package/lib/slider/slider.component.d.ts +5 -0
  417. package/lib/slider/thumb/thumb-slider.component.d.ts +4 -1
  418. package/lib/slider/ticks/ticks.component.d.ts +3 -0
  419. package/lib/splitter/splitter-pane/splitter-pane.component.d.ts +2 -0
  420. package/lib/stepper/step/step.component.d.ts +5 -0
  421. package/lib/stepper/stepper.component.d.ts +2 -0
  422. package/lib/switch/switch.component.d.ts +4 -4
  423. package/lib/tabs/bottom-nav/bottom-nav.component.d.ts +1 -1
  424. package/lib/tabs/tab-item.directive.d.ts +2 -0
  425. package/lib/tabs/tabs.directive.d.ts +2 -4
  426. package/lib/time-picker/time-picker.component.d.ts +2 -0
  427. package/lib/tree/tree-node/tree-node.component.d.ts +5 -0
  428. package/lib/tree/tree.component.d.ts +1 -0
  429. package/migrations/common/tsUtils.d.ts +2 -0
  430. package/migrations/common/tsUtils.js +4 -3
  431. package/migrations/update-17_0_0/changes/classes.json +21 -0
  432. package/migrations/update-17_0_0/changes/members.json +21 -0
  433. package/migrations/update-17_0_0/index.js +48 -1
  434. package/package.json +2 -2
  435. package/schematics/tsconfig.tsbuildinfo +1 -1
  436. package/styles/igniteui-indigo-dark.css +1 -1
  437. package/styles/igniteui-indigo-light.css +1 -1
  438. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  439. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -1,4 +1,4 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
1
+ import { Directive, HostListener, Input, booleanAttribute } from '@angular/core';
2
2
  import { style, animate } from '@angular/animations';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/animations";
@@ -128,10 +128,10 @@ export class IgxRippleDirective {
128
128
  });
129
129
  animation.play();
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleDirective, deps: [{ token: i1.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
132
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxRippleDirective, isStandalone: true, selector: "[igxRipple]", inputs: { rippleTarget: ["igxRippleTarget", "rippleTarget"], rippleColor: ["igxRipple", "rippleColor"], rippleDuration: ["igxRippleDuration", "rippleDuration"], centered: ["igxRippleCentered", "centered"], rippleDisabled: ["igxRippleDisabled", "rippleDisabled"] }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 }); }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleDirective, deps: [{ token: i1.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
132
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxRippleDirective, isStandalone: true, selector: "[igxRipple]", inputs: { rippleTarget: ["igxRippleTarget", "rippleTarget"], rippleColor: ["igxRipple", "rippleColor"], rippleDuration: ["igxRippleDuration", "rippleDuration"], centered: ["igxRippleCentered", "centered", booleanAttribute], rippleDisabled: ["igxRippleDisabled", "rippleDisabled", booleanAttribute] }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleDirective, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleDirective, decorators: [{
135
135
  type: Directive,
136
136
  args: [{
137
137
  selector: '[igxRipple]',
@@ -148,12 +148,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
148
148
  args: ['igxRippleDuration']
149
149
  }], centered: [{
150
150
  type: Input,
151
- args: ['igxRippleCentered']
151
+ args: [{ alias: 'igxRippleCentered', transform: booleanAttribute }]
152
152
  }], rippleDisabled: [{
153
153
  type: Input,
154
- args: ['igxRippleDisabled']
154
+ args: [{ alias: 'igxRippleDisabled', transform: booleanAttribute }]
155
155
  }], onMouseDown: [{
156
156
  type: HostListener,
157
157
  args: ['mousedown', ['$event']]
158
158
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFvQixLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU12RSxNQUFNLE9BQU8sa0JBQWtCO0lBcUQzQjs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxRQUFRLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFrQkQsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQU9ELFlBQ2MsT0FBeUIsRUFDekIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDckIsSUFBWTtRQUhWLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBOUZ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBa0JHO1FBRUksaUJBQVksR0FBRyxFQUFFLENBQUM7UUFnQnpCOzs7Ozs7Ozs7Ozs7O1dBYUc7UUFFSSxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQWE1Qjs7Ozs7Ozs7Ozs7OztXQWFHO1FBRUksbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFNdEIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFDekMsb0JBQWUsR0FBRyxZQUFZLENBQUM7UUFDL0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNs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LFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBOZ1pvbmUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uQnVpbGRlciwgc3R5bGUsIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4UmlwcGxlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hSaXBwbGVEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgcmlwcGxlIHRhcmdldC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdiAgI3JpcHBsZUNvbnRhaW5lciBjbGFzcz1cImRpdi0xXCIgaWd4UmlwcGxlIFtpZ3hSaXBwbGVUYXJnZXRdID0gXCInLmRpdi0xJ1wiPjwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdyaXBwbGVDb250YWluZXInLCB7cmVhZDogSWd4UmlwcGxlRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgcmlwcGxlOiBJZ3hSaXBwbGVEaXJlY3RpdmU7XG4gICAgICogbGV0IHJpcHBsZVRhcmdldCA9IHRoaXMucmlwcGxlLnJpcHBsZVRhcmdldDtcbiAgICAgKiBgYGBcbiAgICAgKiBDYW4gc2V0IHRoZSByaXBwbGUgdG8gYWN0aXZhdGUgb24gYSBjaGlsZCBlbGVtZW50IGluc2lkZSB0aGUgcGFyZW50IHdoZXJlIGlneFJpcHBsZSBpcyBkZWZpbmVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2ICNyaXBwbGVDb250YWluZXIgW2lneFJpcHBsZVRhcmdldF09XCInI2NoaWxkXCInPlxuICAgICAqICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIGlkPVwiY2hpbGRcIj5DbGljazwvYnV0dG9uPlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJpcHBsZURpcmVjdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4UmlwcGxlVGFyZ2V0JylcbiAgICBwdWJsaWMgcmlwcGxlVGFyZ2V0ID0gJyc7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSByaXBwbGUgY29sb3IuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNyaXBwbGVDb250YWluZXIgaWd4QnV0dG9uIFtpZ3hSaXBwbGVdPVwiJ3JlZCdcIj48L2J1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgncmlwcGxlQ29udGFpbmVyJywge3JlYWQ6IElneFJpcHBsZURpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIHJpcHBsZTogSWd4UmlwcGxlRGlyZWN0aXZlO1xuICAgICAqIGxldCByaXBwbGVDb2xvciA9IHRoaXMucmlwcGxlLnJpcHBsZUNvbG9yO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJpcHBsZURpcmVjdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4UmlwcGxlJylcbiAgICBwdWJsaWMgcmlwcGxlQ29sb3I6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIHJpcHBsZSBkdXJhdGlvbihpbiBtaWxsaXNlY29uZHMpLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYDYwMGAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNyaXBwbGVDb250YWluZXIgaWd4QnV0dG9uIGlneFJpcHBsZSBbaWd4UmlwcGxlRHVyYXRpb25dPVwiODAwXCI+PC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ3JpcHBsZUNvbnRhaW5lcicsIHtyZWFkOiBJZ3hSaXBwbGVEaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyByaXBwbGU6IElneFJpcHBsZURpcmVjdGl2ZTtcbiAgICAgKiBsZXQgcmlwcGxlRHVyYXRpb24gPSB0aGlzLnJpcHBsZS5yaXBwbGVEdXJhdGlvbjtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSaXBwbGVEaXJlY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFJpcHBsZUR1cmF0aW9uJylcbiAgICBwdWJsaWMgcmlwcGxlRHVyYXRpb24gPSA2MDA7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgcmlwcGxlIHRvIGJlIGNlbnRlcmVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjcmlwcGxlQ29udGFpbmVyIGlneEJ1dHRvbiBpZ3hSaXBwbGUgW2lneFJpcHBsZUNlbnRlcmVkXT1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSaXBwbGVEaXJlY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFJpcHBsZUNlbnRlcmVkJylcbiAgICBwdWJsaWMgc2V0IGNlbnRlcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NlbnRlcmVkID0gdmFsdWUgfHwgdGhpcy5jZW50ZXJlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIHJpcHBsZSBpcyBkaXNhYmxlZC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNyaXBwbGVDb250YWluZXIgaWd4UmlwcGxlIFtpZ3hSaXBwbGVEaXNhYmxlZF09XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ3JpcHBsZUNvbnRhaW5lcicsIHtyZWFkOiBJZ3hSaXBwbGVEaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyByaXBwbGU6IElneFJpcHBsZURpcmVjdGl2ZTtcbiAgICAgKiBsZXQgaXNSaXBwbGVEaXNhYmxlZCA9IHRoaXMucmlwcGxlLnJpcHBsZURpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJpcHBsZURpcmVjdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4UmlwcGxlRGlzYWJsZWQnKVxuICAgIHB1YmxpYyByaXBwbGVEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmlwcGxlRWxlbWVudENsYXNzID0gJ2lneC1yaXBwbGVfX2lubmVyJztcbiAgICBwcml2YXRlIHJpcHBsZUhvc3RDbGFzcyA9ICdpZ3gtcmlwcGxlJztcbiAgICBwcml2YXRlIF9jZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgYW5pbWF0aW9uUXVldWUgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkgeyB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9yaXBwbGUoZXZlbnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlcyhyaXBwbGVFbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVQYXJhbXM6IGFueSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJpcHBsZUVsZW1lbnQsIHRoaXMucmlwcGxlRWxlbWVudENsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnd2lkdGgnLCBgJHtzdHlsZVBhcmFtcy5yYWRpdXN9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnaGVpZ2h0JywgYCR7c3R5bGVQYXJhbXMucmFkaXVzfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocmlwcGxlRWxlbWVudCwgJ3RvcCcsIGAke3N0eWxlUGFyYW1zLnRvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZUVsZW1lbnQsICdsZWZ0JywgYCR7c3R5bGVQYXJhbXMubGVmdH1weGApO1xuICAgICAgICBpZiAodGhpcy5yaXBwbGVDb2xvcikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnYmFja2dyb3VuZCcsIHRoaXMucmlwcGxlQ29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmlwcGxlKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJpcHBsZURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSAodGhpcy5yaXBwbGVUYXJnZXQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnJpcHBsZVRhcmdldCkgfHwgdGhpcy5uYXRpdmVFbGVtZW50IDogdGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBjb25zdCByZWN0Qm91bmRzID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCByYWRpdXMgPSBNYXRoLm1heChyZWN0Qm91bmRzLndpZHRoLCByZWN0Qm91bmRzLmhlaWdodCk7XG4gICAgICAgIGxldCBsZWZ0ID0gTWF0aC5yb3VuZChldmVudC5jbGllbnRYIC0gcmVjdEJvdW5kcy5sZWZ0IC0gcmFkaXVzIC8gMik7XG4gICAgICAgIGxldCB0b3AgPSBNYXRoLnJvdW5kKGV2ZW50LmNsaWVudFkgLSByZWN0Qm91bmRzLnRvcCAtIHJhZGl1cyAvIDIpO1xuXG4gICAgICAgIGlmICh0aGlzLl9jZW50ZXJlZCkge1xuICAgICAgICAgICAgbGVmdCA9IHRvcCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaW1lbnNpb25zID0ge1xuICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgbGVmdFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJpcHBsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgICB0aGlzLnNldFN0eWxlcyhyaXBwbGVFbGVtZW50LCBkaW1lbnNpb25zKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0YXJnZXQsIHRoaXMucmlwcGxlSG9zdENsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0YXJnZXQsIHJpcHBsZUVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuYnVpbGRlci5idWlsZChbXG4gICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAuNSwgdHJhbnNmb3JtOiAnc2NhbGUoLjMpJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUodGhpcy5yaXBwbGVEdXJhdGlvbiwgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgyKScgfSkpXG4gICAgICAgIF0pLmNyZWF0ZShyaXBwbGVFbGVtZW50KTtcblxuICAgICAgICB0aGlzLmFuaW1hdGlvblF1ZXVlLnB1c2goYW5pbWF0aW9uKTtcblxuICAgICAgICBhbmltYXRpb24ub25Eb25lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUXVldWUuc3BsaWNlKHRoaXMuYW5pbWF0aW9uUXVldWUuaW5kZXhPZihhbmltYXRpb24pLCAxKTtcbiAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZChyaXBwbGVFbGVtZW50KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblF1ZXVlLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRhcmdldCwgdGhpcy5yaXBwbGVIb3N0Q2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhbmltYXRpb24ucGxheSgpO1xuXG4gICAgfVxufVxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFvQixLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU12RSxNQUFNLE9BQU8sa0JBQWtCO0lBcUQzQjs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxRQUFRLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFrQkQsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQU9ELFlBQ2MsT0FBeUIsRUFDekIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDckIsSUFBWTtRQUhWLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBOUZ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBa0JHO1FBRUksaUJBQVksR0FBRyxFQUFFLENBQUM7UUFnQnpCOzs7Ozs7Ozs7Ozs7O1dBYUc7UUFFSSxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQWE1Qjs7Ozs7Ozs7Ozs7OztXQWFHO1FBRUksbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFNdEIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFDekMsb0JBQWUsR0FBRyxZQUFZLENBQUM7UUFDL0IsY0FBUyxHQUFHLEtB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LEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQW1CM0QsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBcUIzRCxXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdab25lLCBSZW5kZXJlcjIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIHN0eWxlLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJpcHBsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4UmlwcGxlRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIHJpcHBsZSB0YXJnZXQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgICNyaXBwbGVDb250YWluZXIgY2xhc3M9XCJkaXYtMVwiIGlneFJpcHBsZSBbaWd4UmlwcGxlVGFyZ2V0XSA9IFwiJy5kaXYtMSdcIj48L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgncmlwcGxlQ29udGFpbmVyJywge3JlYWQ6IElneFJpcHBsZURpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIHJpcHBsZTogSWd4UmlwcGxlRGlyZWN0aXZlO1xuICAgICAqIGxldCByaXBwbGVUYXJnZXQgPSB0aGlzLnJpcHBsZS5yaXBwbGVUYXJnZXQ7XG4gICAgICogYGBgXG4gICAgICogQ2FuIHNldCB0aGUgcmlwcGxlIHRvIGFjdGl2YXRlIG9uIGEgY2hpbGQgZWxlbWVudCBpbnNpZGUgdGhlIHBhcmVudCB3aGVyZSBpZ3hSaXBwbGUgaXMgZGVmaW5lZC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdiAjcmlwcGxlQ29udGFpbmVyIFtpZ3hSaXBwbGVUYXJnZXRdPVwiJyNjaGlsZFwiJz5cbiAgICAgKiAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbiBpZD1cImNoaWxkXCI+Q2xpY2s8L2J1dHRvbj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSaXBwbGVEaXJlY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFJpcHBsZVRhcmdldCcpXG4gICAgcHVibGljIHJpcHBsZVRhcmdldCA9ICcnO1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgcmlwcGxlIGNvbG9yLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjcmlwcGxlQ29udGFpbmVyIGlneEJ1dHRvbiBbaWd4UmlwcGxlXT1cIidyZWQnXCI+PC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ3JpcHBsZUNvbnRhaW5lcicsIHtyZWFkOiBJZ3hSaXBwbGVEaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyByaXBwbGU6IElneFJpcHBsZURpcmVjdGl2ZTtcbiAgICAgKiBsZXQgcmlwcGxlQ29sb3IgPSB0aGlzLnJpcHBsZS5yaXBwbGVDb2xvcjtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSaXBwbGVEaXJlY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFJpcHBsZScpXG4gICAgcHVibGljIHJpcHBsZUNvbG9yOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSByaXBwbGUgZHVyYXRpb24oaW4gbWlsbGlzZWNvbmRzKS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGA2MDBgLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjcmlwcGxlQ29udGFpbmVyIGlneEJ1dHRvbiBpZ3hSaXBwbGUgW2lneFJpcHBsZUR1cmF0aW9uXT1cIjgwMFwiPjwvYnV0dG9uPlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdyaXBwbGVDb250YWluZXInLCB7cmVhZDogSWd4UmlwcGxlRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgcmlwcGxlOiBJZ3hSaXBwbGVEaXJlY3RpdmU7XG4gICAgICogbGV0IHJpcHBsZUR1cmF0aW9uID0gdGhpcy5yaXBwbGUucmlwcGxlRHVyYXRpb247XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmlwcGxlRGlyZWN0aXZlXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hSaXBwbGVEdXJhdGlvbicpXG4gICAgcHVibGljIHJpcHBsZUR1cmF0aW9uID0gNjAwO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIHJpcHBsZSB0byBiZSBjZW50ZXJlZC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI3JpcHBsZUNvbnRhaW5lciBpZ3hCdXR0b24gaWd4UmlwcGxlIFtpZ3hSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmlwcGxlRGlyZWN0aXZlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdpZ3hSaXBwbGVDZW50ZXJlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBzZXQgY2VudGVyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2VudGVyZWQgPSB2YWx1ZSB8fCB0aGlzLmNlbnRlcmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgcmlwcGxlIGlzIGRpc2FibGVkLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI3JpcHBsZUNvbnRhaW5lciBpZ3hSaXBwbGUgW2lneFJpcHBsZURpc2FibGVkXT1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgncmlwcGxlQ29udGFpbmVyJywge3JlYWQ6IElneFJpcHBsZURpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIHJpcHBsZTogSWd4UmlwcGxlRGlyZWN0aXZlO1xuICAgICAqIGxldCBpc1JpcHBsZURpc2FibGVkID0gdGhpcy5yaXBwbGUucmlwcGxlRGlzYWJsZWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4UmlwcGxlRGlyZWN0aXZlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdpZ3hSaXBwbGVEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyByaXBwbGVEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmlwcGxlRWxlbWVudENsYXNzID0gJ2lneC1yaXBwbGVfX2lubmVyJztcbiAgICBwcml2YXRlIHJpcHBsZUhvc3RDbGFzcyA9ICdpZ3gtcmlwcGxlJztcbiAgICBwcml2YXRlIF9jZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgYW5pbWF0aW9uUXVldWUgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSkgeyB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9yaXBwbGUoZXZlbnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0eWxlcyhyaXBwbGVFbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVQYXJhbXM6IGFueSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJpcHBsZUVsZW1lbnQsIHRoaXMucmlwcGxlRWxlbWVudENsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnd2lkdGgnLCBgJHtzdHlsZVBhcmFtcy5yYWRpdXN9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnaGVpZ2h0JywgYCR7c3R5bGVQYXJhbXMucmFkaXVzfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocmlwcGxlRWxlbWVudCwgJ3RvcCcsIGAke3N0eWxlUGFyYW1zLnRvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZUVsZW1lbnQsICdsZWZ0JywgYCR7c3R5bGVQYXJhbXMubGVmdH1weGApO1xuICAgICAgICBpZiAodGhpcy5yaXBwbGVDb2xvcikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGVFbGVtZW50LCAnYmFja2dyb3VuZCcsIHRoaXMucmlwcGxlQ29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmlwcGxlKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJpcHBsZURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSAodGhpcy5yaXBwbGVUYXJnZXQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnJpcHBsZVRhcmdldCkgfHwgdGhpcy5uYXRpdmVFbGVtZW50IDogdGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBjb25zdCByZWN0Qm91bmRzID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCByYWRpdXMgPSBNYXRoLm1heChyZWN0Qm91bmRzLndpZHRoLCByZWN0Qm91bmRzLmhlaWdodCk7XG4gICAgICAgIGxldCBsZWZ0ID0gTWF0aC5yb3VuZChldmVudC5jbGllbnRYIC0gcmVjdEJvdW5kcy5sZWZ0IC0gcmFkaXVzIC8gMik7XG4gICAgICAgIGxldCB0b3AgPSBNYXRoLnJvdW5kKGV2ZW50LmNsaWVudFkgLSByZWN0Qm91bmRzLnRvcCAtIHJhZGl1cyAvIDIpO1xuXG4gICAgICAgIGlmICh0aGlzLl9jZW50ZXJlZCkge1xuICAgICAgICAgICAgbGVmdCA9IHRvcCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaW1lbnNpb25zID0ge1xuICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgbGVmdFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJpcHBsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgICB0aGlzLnNldFN0eWxlcyhyaXBwbGVFbGVtZW50LCBkaW1lbnNpb25zKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0YXJnZXQsIHRoaXMucmlwcGxlSG9zdENsYXNzKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0YXJnZXQsIHJpcHBsZUVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuYnVpbGRlci5idWlsZChbXG4gICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAuNSwgdHJhbnNmb3JtOiAnc2NhbGUoLjMpJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUodGhpcy5yaXBwbGVEdXJhdGlvbiwgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgyKScgfSkpXG4gICAgICAgIF0pLmNyZWF0ZShyaXBwbGVFbGVtZW50KTtcblxuICAgICAgICB0aGlzLmFuaW1hdGlvblF1ZXVlLnB1c2goYW5pbWF0aW9uKTtcblxuICAgICAgICBhbmltYXRpb24ub25Eb25lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUXVldWUuc3BsaWNlKHRoaXMuYW5pbWF0aW9uUXVldWUuaW5kZXhPZihhbmltYXRpb24pLCAxKTtcbiAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZChyaXBwbGVFbGVtZW50KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblF1ZXVlLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRhcmdldCwgdGhpcy5yaXBwbGVIb3N0Q2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhbmltYXRpb24ucGxheSgpO1xuXG4gICAgfVxufVxuIl19
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxRippleModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleModule, imports: [IgxRippleDirective], exports: [IgxRippleDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleModule, imports: [IgxRippleDirective], exports: [IgxRippleDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxRippleModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxRippleModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxRippleDirective],
@@ -376,10 +376,10 @@ export class IgxScrollInertiaDirective {
376
376
  _scrollToY(dest) {
377
377
  this.IgxScrollInertiaScrollContainer.scrollTop = dest;
378
378
  }
379
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
380
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxScrollInertiaDirective, isStandalone: true, selector: "[igxScrollInertia]", inputs: { IgxScrollInertiaDirection: "IgxScrollInertiaDirection", IgxScrollInertiaScrollContainer: "IgxScrollInertiaScrollContainer", wheelStep: "wheelStep", inertiaStep: "inertiaStep", smoothingStep: "smoothingStep", smoothingDuration: "smoothingDuration", swipeToleranceX: "swipeToleranceX", inertiaDeltaY: "inertiaDeltaY", inertiaDeltaX: "inertiaDeltaX", inertiaDuration: "inertiaDuration" }, ngImport: i0 }); }
379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
380
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxScrollInertiaDirective, isStandalone: true, selector: "[igxScrollInertia]", inputs: { IgxScrollInertiaDirection: "IgxScrollInertiaDirection", IgxScrollInertiaScrollContainer: "IgxScrollInertiaScrollContainer", wheelStep: "wheelStep", inertiaStep: "inertiaStep", smoothingStep: "smoothingStep", smoothingDuration: "smoothingDuration", swipeToleranceX: "swipeToleranceX", inertiaDeltaY: "inertiaDeltaY", inertiaDeltaX: "inertiaDeltaX", inertiaDuration: "inertiaDuration" }, ngImport: i0 }); }
381
381
  }
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaDirective, decorators: [{
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaDirective, decorators: [{
383
383
  type: Directive,
384
384
  args: [{
385
385
  selector: '[igxScrollInertia]',
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxScrollInertiaModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaModule, imports: [IgxScrollInertiaDirective], exports: [IgxScrollInertiaDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaModule, imports: [IgxScrollInertiaDirective], exports: [IgxScrollInertiaDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxScrollInertiaModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxScrollInertiaModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxScrollInertiaDirective],
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
4
4
  * @hidden
5
5
  */
6
6
  export class IgxSuffixDirective {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxSuffixDirective, isStandalone: true, selector: "igx-suffix,[igxSuffix],[igxEnd]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxSuffixDirective, isStandalone: true, selector: "igx-suffix,[igxSuffix],[igxEnd]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxSuffixDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxSuffixDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: 'igx-suffix,[igxSuffix],[igxEnd]',
@@ -175,10 +175,10 @@ export class IgxTemplateOutletDirective {
175
175
  return TemplateOutletAction.UpdateViewContext;
176
176
  }
177
177
  }
178
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTemplateOutletDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
179
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxTemplateOutletDirective, isStandalone: true, selector: "[igxTemplateOutlet]", inputs: { igxTemplateOutletContext: "igxTemplateOutletContext", igxTemplateOutlet: "igxTemplateOutlet" }, outputs: { viewCreated: "viewCreated", viewMoved: "viewMoved", cachedViewLoaded: "cachedViewLoaded", beforeViewDetach: "beforeViewDetach" }, usesOnChanges: true, ngImport: i0 }); }
178
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTemplateOutletDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxTemplateOutletDirective, isStandalone: true, selector: "[igxTemplateOutlet]", inputs: { igxTemplateOutletContext: "igxTemplateOutletContext", igxTemplateOutlet: "igxTemplateOutlet" }, outputs: { viewCreated: "viewCreated", viewMoved: "viewMoved", cachedViewLoaded: "cachedViewLoaded", beforeViewDetach: "beforeViewDetach" }, usesOnChanges: true, ngImport: i0 }); }
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTemplateOutletDirective, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTemplateOutletDirective, decorators: [{
182
182
  type: Directive,
183
183
  args: [{
184
184
  selector: '[igxTemplateOutlet]',
@@ -317,10 +317,10 @@ export class IgxTextHighlightDirective {
317
317
  this._lastSearchInfo.exactMatch !== exactMatch ||
318
318
  this._forceEvaluation);
319
319
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
321
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxTextHighlightDirective, isStandalone: true, selector: "[igxTextHighlight]", inputs: { cssClass: "cssClass", activeCssClass: "activeCssClass", containerClass: "containerClass", groupName: "groupName", value: "value", row: "row", column: "column", metadata: "metadata" }, usesOnChanges: true, ngImport: i0 }); }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
321
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxTextHighlightDirective, isStandalone: true, selector: "[igxTextHighlight]", inputs: { cssClass: "cssClass", activeCssClass: "activeCssClass", containerClass: "containerClass", groupName: "groupName", value: "value", row: "row", column: "column", metadata: "metadata" }, usesOnChanges: true, ngImport: i0 }); }
322
322
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightDirective, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightDirective, decorators: [{
324
324
  type: Directive,
325
325
  args: [{
326
326
  selector: '[igxTextHighlight]',
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxTextHighlightModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightModule, imports: [IgxTextHighlightDirective], exports: [IgxTextHighlightDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightModule, imports: [IgxTextHighlightDirective], exports: [IgxTextHighlightDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextHighlightModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextHighlightModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxTextHighlightDirective],
@@ -1,45 +1,6 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
1
+ import { Directive, HostListener, Input, booleanAttribute } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class IgxTextSelectionDirective {
4
- /**
5
- * Returns whether the input element is selectable through the directive.
6
- *
7
- * ```typescript
8
- * // get
9
- * @ViewChild('firstName',
10
- * {read: IgxTextSelectionDirective})
11
- * public firstName: IgxTextSelectionDirective;
12
- *
13
- * public getFirstNameSelectionStatus() {
14
- * return this.firstName.selected;
15
- * }
16
- * ```
17
- */
18
- get selected() {
19
- return this.selectionState;
20
- }
21
- /**
22
- * Determines whether the input element could be selected through the directive.
23
- *
24
- * ```html
25
- * <!--set-->
26
- * <input
27
- * type="text"
28
- * id="firstName"
29
- * [igxTextSelection]="true">
30
- * </input>
31
- *
32
- * <input
33
- * type="text"
34
- * id="lastName"
35
- * igxTextSelection
36
- * [selected]="true">
37
- * </input>
38
- * ```
39
- */
40
- set selected(val) {
41
- this.selectionState = val;
42
- }
43
4
  /**
44
5
  * Returns the nativeElement of the element where the directive was applied.
45
6
  *
@@ -66,7 +27,26 @@ export class IgxTextSelectionDirective {
66
27
  }
67
28
  constructor(element) {
68
29
  this.element = element;
69
- this.selectionState = true;
30
+ /**
31
+ * Determines whether the input element could be selected through the directive.
32
+ *
33
+ * ```html
34
+ * <!--set-->
35
+ * <input
36
+ * type="text"
37
+ * id="firstName"
38
+ * [igxTextSelection]="true">
39
+ * </input>
40
+ *
41
+ * <input
42
+ * type="text"
43
+ * id="lastName"
44
+ * igxTextSelection
45
+ * [selected]="true">
46
+ * </input>
47
+ * ```
48
+ */
49
+ this.selected = true;
70
50
  }
71
51
  /**
72
52
  * @hidden
@@ -102,10 +82,10 @@ export class IgxTextSelectionDirective {
102
82
  requestAnimationFrame(() => this.nativeElement.select());
103
83
  }
104
84
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
106
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxTextSelectionDirective, isStandalone: true, selector: "[igxTextSelection]", inputs: { selected: ["igxTextSelection", "selected"] }, host: { listeners: { "focus": "onFocus()" } }, exportAs: ["igxTextSelection"], ngImport: i0 }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
86
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxTextSelectionDirective, isStandalone: true, selector: "[igxTextSelection]", inputs: { selected: ["igxTextSelection", "selected", booleanAttribute] }, host: { listeners: { "focus": "onFocus()" } }, exportAs: ["igxTextSelection"], ngImport: i0 }); }
107
87
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionDirective, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionDirective, decorators: [{
109
89
  type: Directive,
110
90
  args: [{
111
91
  exportAs: 'igxTextSelection',
@@ -114,9 +94,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
114
94
  }]
115
95
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { selected: [{
116
96
  type: Input,
117
- args: ['igxTextSelection']
97
+ args: [{ alias: 'igxTextSelection', transform: booleanAttribute }]
118
98
  }], onFocus: [{
119
99
  type: HostListener,
120
100
  args: ['focus']
121
101
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC1zZWxlY3Rpb24vdGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0UsTUFBTSxPQUFPLHlCQUF5QjtJQUdsQzs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsSUFDVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsSUFBVyxRQUFRLENBQUMsR0FBWTtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFyRS9CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBcUVhLENBQUM7SUFFNUM7O09BRUc7SUFFSSxPQUFPO1FBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFFSSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNsRCxrRkFBa0Y7WUFDbEYsMkNBQTJDO1lBQzNDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7bUhBNUdRLHlCQUF5Qjt1R0FBekIseUJBQXlCOztnR0FBekIseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFtQmMsUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBMkRsQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBleHBvcnRBczogJ2lneFRleHRTZWxlY3Rpb24nLFxuICAgIHNlbGVjdG9yOiAnW2lneFRleHRTZWxlY3Rpb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmUge1xuICAgIHByaXZhdGUgc2VsZWN0aW9uU3RhdGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBpbnB1dCBlbGVtZW50IGlzIHNlbGVjdGFibGUgdGhyb3VnaCB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldFxuICAgICAqIEBWaWV3Q2hpbGQoJ2ZpcnN0TmFtZScsXG4gICAgICogIHtyZWFkOiBJZ3hUZXh0U2VsZWN0aW9uRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgZmlyc3ROYW1lOiBJZ3hUZXh0U2VsZWN0aW9uRGlyZWN0aXZlO1xuICAgICAqXG4gICAgICogcHVibGljIGdldEZpcnN0TmFtZVNlbGVjdGlvblN0YXR1cygpIHtcbiAgICAgKiAgcmV0dXJuIHRoaXMuZmlyc3ROYW1lLnNlbGVjdGVkO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFRleHRTZWxlY3Rpb24nKVxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvblN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGlucHV0IGVsZW1lbnQgY291bGQgYmUgc2VsZWN0ZWQgdGhyb3VnaCB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgKiAgIFtpZ3hUZXh0U2VsZWN0aW9uXT1cInRydWVcIj5cbiAgICAgKiA8L2lucHV0PlxuICAgICAqXG4gICAgICogPGlucHV0XG4gICAgICogICB0eXBlPVwidGV4dFwiXG4gICAgICogICBpZD1cImxhc3ROYW1lXCJcbiAgICAgKiAgIGlneFRleHRTZWxlY3Rpb25cbiAgICAgKiAgIFtzZWxlY3RlZF09XCJ0cnVlXCI+XG4gICAgICogPC9pbnB1dD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXRlID0gdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG5hdGl2ZUVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGRpcmVjdGl2ZSB3YXMgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgKiAgIGlneFRleHRTZWxlY3Rpb24+XG4gICAgICogPC9pbnB1dD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdmaXJzdE5hbWUnLFxuICAgICAqICB7cmVhZDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIGlucHV0RWxlbWVudDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZTtcbiAgICAgKlxuICAgICAqIHB1YmxpYyBnZXROYXRpdmVFbGVtZW50KCkge1xuICAgICAqICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIHRoZSBzZWxlY3Rpb24gb2YgdGhlIGVsZW1lbnQgaWYgaXQgaXMgbWFya2VkIGFzIHNlbGVjdGFibGUuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0XG4gICAgICogICB0eXBlPVwidGV4dFwiXG4gICAgICogICBpZD1cImZpcnN0TmFtZVwiXG4gICAgICogICBpZ3hUZXh0U2VsZWN0aW9uPlxuICAgICAqIDwvaW5wdXQ+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnZmlyc3ROYW1lJyxcbiAgICAgKiAge3JlYWQ6IElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmV9KVxuICAgICAqIHB1YmxpYyBpbnB1dEVsZW1lbnQ6IElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmU7XG4gICAgICpcbiAgICAgKiBwdWJsaWMgdHJpZ2dlckVsZW1lbnRTZWxlY3Rpb24oKSB7XG4gICAgICogIHRoaXMuaW5wdXRFbGVtZW50LnRyaWdnZXIoKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG5cbiAgICBwdWJsaWMgdHJpZ2dlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gZGVsYXkgdGhlIHNlbGVjdCBjYWxsIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBpbiBjYXNlIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZFxuICAgICAgICAgICAgLy8gdG8gYW4gZWxlbWVudCB3aXRoIGl0cyBvd24gZm9jdXMgaGFuZGxlclxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3QoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC1zZWxlY3Rpb24vdGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPN0YsTUFBTSxPQUFPLHlCQUF5QjtJQXVCbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUEvQ3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FrQkc7UUFFSSxhQUFRLEdBQUcsSUFBSSxDQUFDO0lBMkJvQixDQUFDO0lBRTVDOztPQUVHO0lBRUksT0FBTztRQUNWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBRUksT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbEQsa0ZBQWtGO1lBQ2xGLDJDQUEyQztZQUMzQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO21IQXRGUSx5QkFBeUI7dUdBQXpCLHlCQUF5QiwyR0FvQmEsZ0JBQWdCOztnR0FwQnRELHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0VBc0JVLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBa0MxRCxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBleHBvcnRBczogJ2lneFRleHRTZWxlY3Rpb24nLFxuICAgIHNlbGVjdG9yOiAnW2lneFRleHRTZWxlY3Rpb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFRleHRTZWxlY3Rpb25EaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqICBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGlucHV0IGVsZW1lbnQgY291bGQgYmUgc2VsZWN0ZWQgdGhyb3VnaCB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgKiAgIFtpZ3hUZXh0U2VsZWN0aW9uXT1cInRydWVcIj5cbiAgICAgKiA8L2lucHV0PlxuICAgICAqXG4gICAgICogPGlucHV0XG4gICAgICogICB0eXBlPVwidGV4dFwiXG4gICAgICogICBpZD1cImxhc3ROYW1lXCJcbiAgICAgKiAgIGlneFRleHRTZWxlY3Rpb25cbiAgICAgKiAgIFtzZWxlY3RlZF09XCJ0cnVlXCI+XG4gICAgICogPC9pbnB1dD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ2lneFRleHRTZWxlY3Rpb24nLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbmF0aXZlRWxlbWVudCBvZiB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZGlyZWN0aXZlIHdhcyBhcHBsaWVkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dFxuICAgICAqICAgdHlwZT1cInRleHRcIlxuICAgICAqICAgaWQ9XCJmaXJzdE5hbWVcIlxuICAgICAqICAgaWd4VGV4dFNlbGVjdGlvbj5cbiAgICAgKiA8L2lucHV0PlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2ZpcnN0TmFtZScsXG4gICAgICogIHtyZWFkOiBJZ3hUZXh0U2VsZWN0aW9uRGlyZWN0aXZlfSlcbiAgICAgKiBwdWJsaWMgaW5wdXRFbGVtZW50OiBJZ3hUZXh0U2VsZWN0aW9uRGlyZWN0aXZlO1xuICAgICAqXG4gICAgICogcHVibGljIGdldE5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICogIHJldHVybiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwdWJsaWMgb25Gb2N1cygpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgdGhlIHNlbGVjdGlvbiBvZiB0aGUgZWxlbWVudCBpZiBpdCBpcyBtYXJrZWQgYXMgc2VsZWN0YWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXRcbiAgICAgKiAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgKiAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgKiAgIGlneFRleHRTZWxlY3Rpb24+XG4gICAgICogPC9pbnB1dD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdmaXJzdE5hbWUnLFxuICAgICAqICB7cmVhZDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0pXG4gICAgICogcHVibGljIGlucHV0RWxlbWVudDogSWd4VGV4dFNlbGVjdGlvbkRpcmVjdGl2ZTtcbiAgICAgKlxuICAgICAqIHB1YmxpYyB0cmlnZ2VyRWxlbWVudFNlbGVjdGlvbigpIHtcbiAgICAgKiAgdGhpcy5pbnB1dEVsZW1lbnQudHJpZ2dlcigpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cblxuICAgIHB1YmxpYyB0cmlnZ2VyKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBkZWxheSB0aGUgc2VsZWN0IGNhbGwgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIGluIGNhc2UgdGhlIGRpcmVjdGl2ZSBpcyBhcHBsaWVkXG4gICAgICAgICAgICAvLyB0byBhbiBlbGVtZW50IHdpdGggaXRzIG93biBmb2N1cyBoYW5kbGVyXG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5uYXRpdmVFbGVtZW50LnNlbGVjdCgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cblxuIl19
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxTextSelectionModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionModule, imports: [IgxTextSelectionDirective], exports: [IgxTextSelectionDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionModule, imports: [IgxTextSelectionDirective], exports: [IgxTextSelectionDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTextSelectionModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTextSelectionModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxTextSelectionDirective],
@@ -316,10 +316,10 @@ export class IgxToggleDirective {
316
316
  subscription.unsubscribe();
317
317
  }
318
318
  }
319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxOverlayService }, { token: i1.IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
320
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxToggleDirective, isStandalone: true, selector: "[igxToggle]", inputs: { id: "id" }, outputs: { opened: "opened", opening: "opening", closed: "closed", closing: "closing", appended: "appended" }, host: { properties: { "class.igx-toggle--hidden": "this.hiddenClass", "attr.aria-hidden": "this.hiddenClass", "class.igx-toggle": "this.defaultClass" } }, exportAs: ["toggle"], ngImport: i0 }); }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxOverlayService }, { token: i1.IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
320
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxToggleDirective, isStandalone: true, selector: "[igxToggle]", inputs: { id: "id" }, outputs: { opened: "opened", opening: "opening", closed: "closed", closing: "closing", appended: "appended" }, host: { properties: { "class.igx-toggle--hidden": "this.hiddenClass", "attr.aria-hidden": "this.hiddenClass", "class.igx-toggle": "this.defaultClass" } }, exportAs: ["toggle"], ngImport: i0 }); }
321
321
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleDirective, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleDirective, decorators: [{
323
323
  type: Directive,
324
324
  args: [{
325
325
  exportAs: 'toggle',
@@ -414,10 +414,10 @@ export class IgxToggleActionDirective {
414
414
  }
415
415
  return settings;
416
416
  }
417
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleActionDirective, deps: [{ token: i0.ElementRef }, { token: i1.IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
418
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxToggleActionDirective, isStandalone: true, selector: "[igxToggleAction]", inputs: { overlaySettings: "overlaySettings", outlet: ["igxToggleOutlet", "outlet"], target: ["igxToggleAction", "target"] }, host: { listeners: { "click": "onClick()" } }, exportAs: ["toggle-action"], ngImport: i0 }); }
417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleActionDirective, deps: [{ token: i0.ElementRef }, { token: i1.IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
418
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxToggleActionDirective, isStandalone: true, selector: "[igxToggleAction]", inputs: { overlaySettings: "overlaySettings", outlet: ["igxToggleOutlet", "outlet"], target: ["igxToggleAction", "target"] }, host: { listeners: { "click": "onClick()" } }, exportAs: ["toggle-action"], ngImport: i0 }); }
419
419
  }
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleActionDirective, decorators: [{
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleActionDirective, decorators: [{
421
421
  type: Directive,
422
422
  args: [{
423
423
  exportAs: 'toggle-action',
@@ -453,10 +453,10 @@ export class IgxOverlayOutletDirective {
453
453
  get nativeElement() {
454
454
  return this.element.nativeElement;
455
455
  }
456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxOverlayOutletDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
457
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxOverlayOutletDirective, isStandalone: true, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"], ngImport: i0 }); }
456
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxOverlayOutletDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
457
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxOverlayOutletDirective, isStandalone: true, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"], ngImport: i0 }); }
458
458
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxOverlayOutletDirective, decorators: [{
459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxOverlayOutletDirective, decorators: [{
460
460
  type: Directive,
461
461
  args: [{
462
462
  exportAs: 'overlay-outlet',
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
7
7
  */
8
8
  export class IgxToggleModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleModule, imports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective], exports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleModule, imports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective], exports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxToggleModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxToggleModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective],
@@ -1,5 +1,5 @@
1
1
  import { useAnimation } from '@angular/animations';
2
- import { Directive, Output, Optional, HostListener, Input, EventEmitter } from '@angular/core';
2
+ import { Directive, Output, Optional, HostListener, Input, EventEmitter, booleanAttribute } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { takeUntil } from 'rxjs/operators';
5
5
  import { AutoPositionStrategy, HorizontalAlignment } from '../../services/public_api';
@@ -335,10 +335,10 @@ export class IgxTooltipTargetDirective extends IgxToggleActionDirective {
335
335
  }
336
336
  return false;
337
337
  }
338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTooltipTargetDirective, deps: [{ token: i0.ElementRef }, { token: i1.IgxNavigationService, optional: true }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
339
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", tooltipDisabled: "tooltipDisabled", target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "touchstart": "onTouchStart()", "document:touchstart": "onDocumentTouchStart($event)" } }, exportAs: ["tooltipTarget"], usesInheritance: true, ngImport: i0 }); }
338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTooltipTargetDirective, deps: [{ token: i0.ElementRef }, { token: i1.IgxNavigationService, optional: true }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
339
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "touchstart": "onTouchStart()", "document:touchstart": "onDocumentTouchStart($event)" } }, exportAs: ["tooltipTarget"], usesInheritance: true, ngImport: i0 }); }
340
340
  }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxTooltipTargetDirective, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxTooltipTargetDirective, decorators: [{
342
342
  type: Directive,
343
343
  args: [{
344
344
  exportAs: 'tooltipTarget',
@@ -355,7 +355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
355
355
  args: ['hideDelay']
356
356
  }], tooltipDisabled: [{
357
357
  type: Input,
358
- args: ['tooltipDisabled']
358
+ args: [{ alias: 'tooltipDisabled', transform: booleanAttribute }]
359
359
  }], target: [{
360
360
  type: Input,
361
361
  args: ['igxTooltipTarget']
@@ -381,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
381
381
  type: HostListener,
382
382
  args: ['document:touchstart', ['$event']]
383
383
  }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10YXJnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXRhcmdldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBYyxRQUFRLEVBQW9CLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hKLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFhckU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQU1ILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFzRG5FOztPQUVHO0lBQ0gsSUFDb0IsTUFBTSxDQUFDLE1BQVc7UUFDbEMsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFvQixNQUFNO1FBQ3RCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUNs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QkFBQyxPQUFPO2dCQVdkLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkE4Qm5CLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkF5Qm5CLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkFhbkIsb0JBQW9CO3NCQUQxQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgT25EZXN0cm95LCBPdXRwdXQsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElneE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBBdXRvUG9zaXRpb25TdHJhdGVneSwgSG9yaXpvbnRhbEFsaWdubWVudCwgUG9zaXRpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSWd4VG9nZ2xlQWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4VG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZmFkZU91dCwgc2NhbGVJbkNlbnRlciB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2x0aXBTaG93RXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHRhcmdldDogSWd4VG9vbHRpcFRhcmdldERpcmVjdGl2ZTtcbiAgICB0b29sdGlwOiBJZ3hUb29sdGlwRGlyZWN0aXZlO1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2x0aXBIaWRlRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHRhcmdldDogSWd4VG9vbHRpcFRhcmdldERpcmVjdGl2ZTtcbiAgICB0b29sdGlwOiBJZ3hUb29sdGlwRGlyZWN0aXZlO1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiAqKklnbml0ZSBVSSBmb3IgQW5ndWxhciBUb29sdGlwIFRhcmdldCoqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwKVxuICpcbiAqIFRoZSBJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgVG9vbHRpcCBUYXJnZXQgZGlyZWN0aXZlIGlzIHVzZWQgdG8gbWFyayBhbiBIVE1MIGVsZW1lbnQgaW4gdGhlIG1hcmt1cCBhcyBvbmUgdGhhdCBoYXMgYSB0b29sdGlwLlxuICogVGhlIHRvb2x0aXAgdGFyZ2V0IGlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFRvb2x0aXAgYnkgYXNzaWduaW5nIHRoZSBleHBvcnRlZCB0b29sdGlwIHJlZmVyZW5jZSB0byB0aGVcbiAqIHRhcmdldCdzIHNlbGVjdG9yIHByb3BlcnR5LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hCdXR0b24gW2lneFRvb2x0aXBUYXJnZXRdPVwidG9vbHRpcFJlZlwiPkhvdmVyIG1lPC9idXR0b24+XG4gKiA8c3BhbiAjdG9vbHRpcFJlZj1cInRvb2x0aXBcIiBpZ3hUb29sdGlwPkhlbGxvIHRoZXJlLCBJIGFtIGEgdG9vbHRpcCE8L3NwYW4+XG4gKiBgYGBcbiAqL1xuIEBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAndG9vbHRpcFRhcmdldCcsXG4gICAgc2VsZWN0b3I6ICdbaWd4VG9vbHRpcFRhcmdldF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4VG9vbHRpcFRhcmdldERpcmVjdGl2ZSBleHRlbmRzIElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCBzaG91bGQgcGFzcyBiZWZvcmUgc2hvd2luZyB0aGUgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXRcbiAgICAgKiBsZXQgdG9vbHRpcFNob3dEZWxheSA9IHRoaXMudG9vbHRpcFRhcmdldC5zaG93RGVsYXk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbiBbaWd4VG9vbHRpcFRhcmdldF09XCJ0b29sdGlwUmVmXCIgW3Nob3dEZWxheV09XCIxNTAwXCI+SG92ZXIgbWU8L2J1dHRvbj5cbiAgICAgKiA8c3BhbiAjdG9vbHRpcFJlZj1cInRvb2x0aXBcIiBpZ3hUb29sdGlwPkhlbGxvIHRoZXJlLCBJIGFtIGEgdG9vbHRpcCE8L3NwYW4+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdzaG93RGVsYXknKVxuICAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCBzaG91bGQgcGFzcyBiZWZvcmUgaGlkaW5nIHRoZSB0b29sdGlwLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldFxuICAgICAqIGxldCB0b29sdGlwSGlkZURlbGF5ID0gdGhpcy50b29sdGlwVGFyZ2V0LmhpZGVEZWxheTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tc2V0LS0+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIFtpZ3hUb29sdGlwVGFyZ2V0XT1cInRvb2x0aXBSZWZcIiBbaGlkZURlbGF5XT1cIjE1MDBcIj5Ib3ZlciBtZTwvYnV0dG9uPlxuICAgICAqIDxzcGFuICN0b29sdGlwUmVmPVwidG9vbHRpcFwiIGlneFRvb2x0aXA+SGVsbG8gdGhlcmUsIEkgYW0gYSB0b29sdGlwITwvc3Bhbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2hpZGVEZWxheScpXG4gICAgcHVibGljIGhpZGVEZWxheSA9IDUwMDtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBpZiB0aGUgdG9vbHRpcCBzaG91bGQgbm90IHNob3cgd2hlbiBob3ZlcmluZyBpdHMgdGFyZ2V0IHdpdGggdGhlIG1vdXNlLiAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gICAgICogV2hpbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvICd0cnVlJyB3aWxsIGRpc2FibGUgdGhlIHVzZXIgaW50ZXJhY3Rpb25zIHRoYXQgc2hvd3MvaGlkZXMgdGhlIHRvb2x0aXAsXG4gICAgICogdGhlIGRldmVsb3BlciB3aWxsIHN0aWxsIGJlIGFibGUgdG8gc2hvdy9oaWRlIHRoZSB0b29sdGlwIHRocm91Z2ggdGhlIEFQSS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXRcbiAgICAgKiBsZXQgdG9vbHRpcERpc2FibGVkVmFsdWUgPSB0aGlzLnRvb2x0aXBUYXJnZXQudG9vbHRpcERpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hCdXR0b24gW2lneFRvb2x0aXBUYXJnZXRdPVwidG9vbHRpcFJlZlwiIFt0b29sdGlwRGlzYWJsZWRdPVwidHJ1ZVwiPkhvdmVyIG1lPC9idXR0b24+XG4gICAgICogPHNwYW4gI3Rvb2x0aXBSZWY9XCJ0b29sdGlwXCIgaWd4VG9vbHRpcD5IZWxsbyB0aGVyZSwgSSBhbSBhIHRvb2x0aXAhPC9zcGFuPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgndG9vbHRpcERpc2FibGVkJylcbiAgICBwdWJsaWMgdG9vbHRpcERpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hUb29sdGlwVGFyZ2V0JylcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHRhcmdldCh0YXJnZXQ6IGFueSkge1xuICAgICAgICBpZiAodGFyZ2V0ICE9PSBudWxsICYmIHRhcmdldCAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHRhcmdldCgpOiBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3RhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2VydmljZS5nZXQodGhpcy5fdGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH1cblxuICAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRvb2x0aXAoY29udGVudDogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy50YXJnZXQgJiYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyB8fCBjb250ZW50IGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcENvbXBvbmVudCA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KElneFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudC5pbnN0YW5jZS5jb250ZW50ID0gY29udGVudCBhcyBzdHJpbmc7XG5cbiAgICAgICAgICAgIHRoaXMuX3RhcmdldCA9IHRvb2x0aXBDb21wb25lbnQuaW5zdGFuY2UudG9vbHRpcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHJlc3BlY3RpdmUgbmF0aXZlIGVsZW1lbnQgb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgdG9vbHRpcFRhcmdldEVsZW1lbnQgPSB0aGlzLnRvb2x0aXBUYXJnZXQubmF0aXZlRWxlbWVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIGlmIHRoZSB0b29sdGlwIHRoYXQgaXMgaXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFyZ2V0IGlzIGN1cnJlbnRseSBoaWRkZW4uXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHRvb2x0aXBIaWRkZW5WYWx1ZSA9IHRoaXMudG9vbHRpcFRhcmdldC50b29sdGlwSGlkZGVuO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG9vbHRpcEhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRhcmdldCB8fCB0aGlzLnRhcmdldC5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdG9vbHRpcCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhcmdldCBzdGFydHMgc2hvd2luZy5cbiAgICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGNvdW50ZG93biB0byBzaG93aW5nIHRoZSB0b29sdGlwLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRvb2x0aXBTaG93aW5nKGFyZ3M6IElUb29sdGlwU2hvd0V2ZW50QXJncykge1xuICAgICAqICAgIGFsZXJ0KFwiVG9vbHRpcCBzdGFydGVkIHNob3dpbmchXCIpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hCdXR0b24gW2lneFRvb2x0aXBUYXJnZXRdPVwidG9vbHRpcFJlZlwiICh0b29sdGlwU2hvdyk9J3Rvb2x0aXBTaG93aW5nKCRldmVudCknPkhvdmVyIG1lPC9idXR0b24+XG4gICAgICogPHNwYW4gI3Rvb2x0aXBSZWY9XCJ0b29sdGlwXCIgaWd4VG9vbHRpcD5IZWxsbyB0aGVyZSwgSSBhbSBhIHRvb2x0aXAhPC9zcGFuPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwU2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SVRvb2x0aXBTaG93RXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdG9vbHRpcCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhcmdldCBzdGFydHMgaGlkaW5nLlxuICAgICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgY291bnRkb3duIHRvIGhpZGluZyB0aGUgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0b29sdGlwSGlkaW5nKGFyZ3M6IElUb29sdGlwSGlkZUV2ZW50QXJncykge1xuICAgICAqICAgIGFsZXJ0KFwiVG9vbHRpcCBzdGFydGVkIGhpZGluZyFcIik7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbiBbaWd4VG9vbHRpcFRhcmdldF09XCJ0b29sdGlwUmVmXCIgKHRvb2x0aXBIaWRlKT0ndG9vbHRpcEhpZGluZygkZXZlbnQpJz5Ib3ZlciBtZTwvYnV0dG9uPlxuICAgICAqIDxzcGFuICN0b29sdGlwUmVmPVwidG9vbHRpcFwiIGlneFRvb2x0aXA+SGVsbG8gdGhlcmUsIEkgYW0gYSB0b29sdGlwITwvc3Bhbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcEhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPElUb29sdGlwSGlkZUV2ZW50QXJncz4oKTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmF2aWdhdGlvblNlcnZpY2U6IElneE5hdmlnYXRpb25TZXJ2aWNlLCBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKF9lbGVtZW50LCBfbmF2aWdhdGlvblNlcnZpY2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHVibGljIG92ZXJyaWRlIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy50YXJnZXQuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC5mb3JjZUNsb3NlKHRoaXMubWVyZ2VkT3ZlcmxheVNldHRpbmdzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBwdWJsaWMgb25Nb3VzZUVudGVyKCkge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hlY2tPdXRsZXRBbmRPdXRzaWRlQ2xpY2soKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmV0dXJuID0gdGhpcy5wcmVNb3VzZUVudGVyQ2hlY2soKTtcbiAgICAgICAgaWYgKHNob3VsZFJldHVybikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2hvd2luZ0FyZ3MgPSB7IHRhcmdldDogdGhpcywgdG9vbHRpcDogdGhpcy50YXJnZXQsIGNhbmNlbDogZmFsc2UgfTtcbiAgICAgICAgdGhpcy50b29sdGlwU2hvdy5lbWl0KHNob3dpbmdBcmdzKTtcblxuICAgICAgICBpZiAoc2hvd2luZ0FyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhcmdldC50b0JlU2hvd24gPSB0cnVlO1xuICAgICAgICB0aGlzLnRhcmdldC50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0Lm9wZW4odGhpcy5tZXJnZWRPdmVybGF5U2V0dGluZ3MpOyAvLyBDYWxsIG9wZW4oKSBvZiBJZ3hUb29sdGlwRGlyZWN0aXZlXG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlU2hvd24gPSBmYWxzZTtcbiAgICAgICAgfSwgdGhpcy5zaG93RGVsYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwdWJsaWMgb25Nb3VzZUxlYXZlKCkge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hlY2tPdXRsZXRBbmRPdXRzaWRlQ2xpY2soKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmV0dXJuID0gdGhpcy5wcmVNb3VzZUxlYXZlQ2hlY2soKTtcbiAgICAgICAgaWYgKHNob3VsZFJldHVybiB8fCB0aGlzLnRhcmdldC5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFyZ2V0LnRvQmVIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnRhcmdldC50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LmNsb3NlKCk7IC8vIENhbGwgY2xvc2UoKSBvZiBJZ3hUb29sdGlwRGlyZWN0aXZlXG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0sIHRoaXMuaGlkZURlbGF5KTtcblxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKVxuICAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaG93VG9vbHRpcCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25Eb2N1bWVudFRvdWNoU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcERpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50ICE9PSBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgICF0aGlzLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TZXR0aW5nczogUG9zaXRpb25TZXR0aW5ncyA9IHtcbiAgICAgICAgICAgIGhvcml6b250YWxEaXJlY3Rpb246IEhvcml6b250YWxBbGlnbm1lbnQuQ2VudGVyLFxuICAgICAgICAgICAgaG9yaXpvbnRhbFN0YXJ0UG9pbnQ6IEhvcml6b250YWxBbGlnbm1lbnQuQ2VudGVyLFxuICAgICAgICAgICAgb3BlbkFuaW1hdGlvbjogdXNlQW5pbWF0aW9uKHNjYWxlSW5DZW50ZXIsIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnMTUwbXMnIH0gfSksXG4gICAgICAgICAgICBjbG9zZUFuaW1hdGlvbjogdXNlQW5pbWF0aW9uKGZhZGVPdXQsIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnNzVtcycgfSB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX292ZXJsYXlEZWZhdWx0cy5wb3NpdGlvblN0cmF0ZWd5ID0gbmV3IEF1dG9Qb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMuY2xvc2VPbk91dHNpZGVDbGljayA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMuY2xvc2VPbkVzY2FwZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy50YXJnZXQuY2xvc2luZy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGlkaW5nQXJncyA9IHsgdGFyZ2V0OiB0aGlzLCB0b29sdGlwOiB0aGlzLnRhcmdldCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICAgICAgdGhpcy50b29sdGlwSGlkZS5lbWl0KGhpZGluZ0FyZ3MpO1xuXG4gICAgICAgICAgICBpZiAoaGlkaW5nQXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRoZSB0b29sdGlwIGJ5IHJlc3BlY3RpbmcgdGhlICdzaG93RGVsYXknIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudG9vbHRpcFRhcmdldC5zaG93VG9vbHRpcCgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93VG9vbHRpcCgpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGFyZ2V0LnRpbWVvdXRJZCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRhcmdldC5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIC8vICBpZiBjbG9zZSBhbmltYXRpb24gaGFzIHN0YXJ0ZWQgZmluaXNoIGl0LCBvciBjbG9zZSB0aGUgdG9vbHRpcCB3aXRoIG5vIGFuaW1hdGlvblxuICAgICAgICAgICAgdGhpcy50YXJnZXQuZm9yY2VDbG9zZSh0aGlzLm1lcmdlZE92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzaG93aW5nQXJncyA9IHsgdGFyZ2V0OiB0aGlzLCB0b29sdGlwOiB0aGlzLnRhcmdldCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLnRvb2x0aXBTaG93LmVtaXQoc2hvd2luZ0FyZ3MpO1xuXG4gICAgICAgIGlmIChzaG93aW5nQXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFyZ2V0LnRvQmVTaG93biA9IHRydWU7XG4gICAgICAgIHRoaXMudGFyZ2V0LnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50YXJnZXQub3Blbih0aGlzLm1lcmdlZE92ZXJsYXlTZXR0aW5ncyk7IC8vIENhbGwgb3BlbigpIG9mIElneFRvb2x0aXBEaXJlY3RpdmVcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LnRvQmVTaG93biA9IGZhbHNlO1xuICAgICAgICB9LCB0aGlzLnNob3dEZWxheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIHRvb2x0aXAgYnkgcmVzcGVjdGluZyB0aGUgJ2hpZGVEZWxheScgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy50b29sdGlwVGFyZ2V0LmhpZGVUb29sdGlwKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGhpZGVUb29sdGlwKCkge1xuICAgICAgICBpZiAodGhpcy50YXJnZXQuY29sbGFwc2VkICYmIHRoaXMudGFyZ2V0LnRvQmVTaG93bikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGFyZ2V0LnRpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXJnZXQuY29sbGFwc2VkIHx8IHRoaXMudGFyZ2V0LnRvQmVIaWRkZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFyZ2V0LnRvQmVIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnRhcmdldC50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LmNsb3NlKCk7IC8vIENhbGwgY2xvc2UoKSBvZiBJZ3hUb29sdGlwRGlyZWN0aXZlXG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0sIHRoaXMuaGlkZURlbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrT3V0bGV0QW5kT3V0c2lkZUNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5vdXRsZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlEZWZhdWx0cy5vdXRsZXQgPSB0aGlzLm91dGxldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG1lcmdlZE92ZXJsYXlTZXR0aW5ncygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJsYXlEZWZhdWx0cywgdGhpcy5vdmVybGF5U2V0dGluZ3MpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBleGVjdXRpb24gaW4gb25Nb3VzZUVudGVyIHNob3VsZCBiZSB0ZXJtaW5hdGVkIGFmdGVyIHRoaXMgbWV0aG9kXG4gICAgcHJpdmF0ZSBwcmVNb3VzZUVudGVyQ2hlY2soKSB7XG4gICAgICAgIC8vIElmIHRvb2x0aXAgaXMgYWJvdXQgdG8gYmUgb3BlbmVkXG4gICAgICAgIGlmICh0aGlzLnRhcmdldC50b0JlU2hvd24pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRhcmdldC50aW1lb3V0SWQpO1xuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZVNob3duID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBUb29sdGlwIGlzIG9wZW5lZCBvciBhYm91dCB0byBiZSBoaWRkZW5cbiAgICAgICAgaWYgKCF0aGlzLnRhcmdldC5jb2xsYXBzZWQgfHwgdGhpcy50YXJnZXQudG9CZUhpZGRlbikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGFyZ2V0LnRpbWVvdXRJZCk7XG5cbiAgICAgICAgICAgIC8vICBpZiBjbG9zZSBhbmltYXRpb24gaGFzIHN0YXJ0ZWQgZmluaXNoIGl0LCBvciBjbG9zZSB0aGUgdG9vbHRpcCB3aXRoIG5vIGFuaW1hdGlvblxuICAgICAgICAgICAgdGhpcy50YXJnZXQuZm9yY2VDbG9zZSh0aGlzLm1lcmdlZE92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRydWUgaWYgdGhlIGV4ZWN1dGlvbiBpbiBvbk1vdXNlTGVhdmUgc2hvdWxkIGJlIHRlcm1pbmF0ZWQgYWZ0ZXIgdGhpcyBtZXRob2RcbiAgICBwcml2YXRlIHByZU1vdXNlTGVhdmVDaGVjaygpOiBib29sZWFuIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGFyZ2V0LnRpbWVvdXRJZCk7XG5cbiAgICAgICAgLy8gSWYgdG9vbHRpcCBpcyBhYm91dCB0byBiZSBvcGVuZWRcbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0LnRvQmVTaG93bikge1xuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZVNob3duID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10YXJnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXRhcmdldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBYyxRQUFRLEVBQW9CLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFhckU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQU1ILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFzRG5FOztPQUVHO0lBQ0gsSUFDb0IsTUFBTSxDQUFDLE1BQVc7UUFDbEMsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFvQixNQUFNO1FBQ3RCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFB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QWdEQyxXQUFXO3NCQURqQixNQUFNO2dCQW1CQSxXQUFXO3NCQURqQixNQUFNO2dCQWNTLE9BQU87c0JBRHRCLFlBQVk7dUJBQUMsT0FBTztnQkFXZCxZQUFZO3NCQURsQixZQUFZO3VCQUFDLFlBQVk7Z0JBOEJuQixZQUFZO3NCQURsQixZQUFZO3VCQUFDLFlBQVk7Z0JBeUJuQixZQUFZO3NCQURsQixZQUFZO3VCQUFDLFlBQVk7Z0JBYW5CLG9CQUFvQjtzQkFEMUIsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIE9uRGVzdHJveSwgT3V0cHV0LCBFbGVtZW50UmVmLCBPcHRpb25hbCwgVmlld0NvbnRhaW5lclJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZ3hOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQXV0b1Bvc2l0aW9uU3RyYXRlZ3ksIEhvcml6b250YWxBbGlnbm1lbnQsIFBvc2l0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IGZhZGVPdXQsIHNjYWxlSW5DZW50ZXIgfSBmcm9tICdpZ25pdGV1aS1hbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUb29sdGlwU2hvd0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICB0YXJnZXQ6IElneFRvb2x0aXBUYXJnZXREaXJlY3RpdmU7XG4gICAgdG9vbHRpcDogSWd4VG9vbHRpcERpcmVjdGl2ZTtcbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElUb29sdGlwSGlkZUV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICB0YXJnZXQ6IElneFRvb2x0aXBUYXJnZXREaXJlY3RpdmU7XG4gICAgdG9vbHRpcDogSWd4VG9vbHRpcERpcmVjdGl2ZTtcbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbi8qKlxuICogKipJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgVG9vbHRpcCBUYXJnZXQqKiAtXG4gKiBbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvdG9vbHRpcClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFRvb2x0aXAgVGFyZ2V0IGRpcmVjdGl2ZSBpcyB1c2VkIHRvIG1hcmsgYW4gSFRNTCBlbGVtZW50IGluIHRoZSBtYXJrdXAgYXMgb25lIHRoYXQgaGFzIGEgdG9vbHRpcC5cbiAqIFRoZSB0b29sdGlwIHRhcmdldCBpcyB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIElnbml0ZSBVSSBmb3IgQW5ndWxhciBUb29sdGlwIGJ5IGFzc2lnbmluZyB0aGUgZXhwb3J0ZWQgdG9vbHRpcCByZWZlcmVuY2UgdG8gdGhlXG4gKiB0YXJnZXQncyBzZWxlY3RvciBwcm9wZXJ0eS5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIFtpZ3hUb29sdGlwVGFyZ2V0XT1cInRvb2x0aXBSZWZcIj5Ib3ZlciBtZTwvYnV0dG9uPlxuICogPHNwYW4gI3Rvb2x0aXBSZWY9XCJ0b29sdGlwXCIgaWd4VG9vbHRpcD5IZWxsbyB0aGVyZSwgSSBhbSBhIHRvb2x0aXAhPC9zcGFuPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIGV4cG9ydEFzOiAndG9vbHRpcFRhcmdldCcsXG4gICAgc2VsZWN0b3I6ICdbaWd4VG9vbHRpcFRhcmdldF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4VG9vbHRpcFRhcmdldERpcmVjdGl2ZSBleHRlbmRzIElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCBzaG91bGQgcGFzcyBiZWZvcmUgc2hvd2luZyB0aGUgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXRcbiAgICAgKiBsZXQgdG9vbHRpcFNob3dEZWxheSA9IHRoaXMudG9vbHRpcFRhcmdldC5zaG93RGVsYXk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEJ1dHRvbiBbaWd4VG9vbHRpcFRhcmdldF09XCJ0b29sdGlwUmVmXCIgW3Nob3dEZWxheV09XCIxNTAwXCI+SG92ZXIgbWU8L2J1dHRvbj5cbiAgICAgKiA8c3BhbiAjdG9vbHRpcFJlZj1cInRvb2x0aXBcIiBpZ3hUb29sdGlwPkhlbGxvIHRoZXJlLCBJIGFtIGEgdG9vbHRpcCE8L3NwYW4+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdzaG93RGVsYXknKVxuICAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCBzaG91bGQgcGFzcyBiZWZvcmUgaGlkaW5nIHRoZSB0b29sdGlwLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldFxuICAgICAqIGxldCB0b29sdGlwSGlkZURlbGF5ID0gdGhpcy50b29sdGlwVGFyZ2V0LmhpZGVEZWxheTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8IS0tc2V0LS0+XG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIFtpZ3hUb29sdGlwVGFyZ2V0XT1cInRvb2x0aXBSZWZcIiBbaGlkZURlbGF5XT1cIjE1MDBcIj5Ib3ZlciBtZTwvYnV0dG9uPlxuICAgICAqIDxzcGFuICN0b29sdGlwUmVmPVwidG9vbHRpcFwiIGlneFRvb2x0aXA+SGVsbG8gdGhlcmUsIEkgYW0gYSB0b29sdGlwITwvc3Bhbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2hpZGVEZWxheScpXG4gICAgcHVibGljIGhpZGVEZWxheSA9IDUwMDtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBpZiB0aGUgdG9vbHRpcCBzaG91bGQgbm90IHNob3cgd2hlbiBob3ZlcmluZyBpdHMgdGFyZ2V0IHdpdGggdGhlIG1vdXNlLiAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gICAgICogV2hpbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IHRvICd0cnVlJyB3aWxsIGRpc2FibGUgdGhlIHVzZXIgaW50ZXJhY3Rpb25zIHRoYXQgc2hvd3MvaGlkZXMgdGhlIHRvb2x0aXAsXG4gICAgICogdGhlIGRldmVsb3BlciB3aWxsIHN0aWxsIGJlIGFibGUgdG8gc2hvdy9oaWRlIHRoZSB0b29sdGlwIHRocm91Z2ggdGhlIEFQSS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXRcbiAgICAgKiBsZXQgdG9vbHRpcERpc2FibGVkVmFsdWUgPSB0aGlzLnRvb2x0aXBUYXJnZXQudG9vbHRpcERpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDwhLS1zZXQtLT5cbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hCdXR0b24gW2lneFRvb2x0aXBUYXJnZXRdPVwidG9vbHRpcFJlZlwiIFt0b29sdGlwRGlzYWJsZWRdPVwidHJ1ZVwiPkhvdmVyIG1lPC9idXR0b24+XG4gICAgICogPHNwYW4gI3Rvb2x0aXBSZWY9XCJ0b29sdGlwXCIgaWd4VG9vbHRpcD5IZWxsbyB0aGVyZSwgSSBhbSBhIHRvb2x0aXAhPC9zcGFuPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndG9vbHRpcERpc2FibGVkJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIHRvb2x0aXBEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4VG9vbHRpcFRhcmdldCcpXG4gICAgcHVibGljIG92ZXJyaWRlIHNldCB0YXJnZXQodGFyZ2V0OiBhbnkpIHtcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gbnVsbCAmJiB0YXJnZXQgIT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0YXJnZXQoKTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl90YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNlcnZpY2UuZ2V0KHRoaXMuX3RhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMudGFyZ2V0ICYmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycgfHwgY29udGVudCBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBDb21wb25lbnQgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChJZ3hUb29sdGlwQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnQuaW5zdGFuY2UuY29udGVudCA9IGNvbnRlbnQgYXMgc3RyaW5nO1xuXG4gICAgICAgICAgICB0aGlzLl90YXJnZXQgPSB0b29sdGlwQ29tcG9uZW50Lmluc3RhbmNlLnRvb2x0aXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZXNwZWN0aXZlIG5hdGl2ZSBlbGVtZW50IG9mIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHRvb2x0aXBUYXJnZXRFbGVtZW50ID0gdGhpcy50b29sdGlwVGFyZ2V0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgdG9vbHRpcCB0aGF0IGlzIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhcmdldCBpcyBjdXJyZW50bHkgaGlkZGVuLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB0b29sdGlwSGlkZGVuVmFsdWUgPSB0aGlzLnRvb2x0aXBUYXJnZXQudG9vbHRpcEhpZGRlbjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvb2x0aXBIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy50YXJnZXQgfHwgdGhpcy50YXJnZXQuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHRvb2x0aXAgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YXJnZXQgc3RhcnRzIHNob3dpbmcuXG4gICAgICogVGhpcyBldmVudCBpcyBmaXJlZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBjb3VudGRvd24gdG8gc2hvd2luZyB0aGUgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0b29sdGlwU2hvd2luZyhhcmdzOiBJVG9vbHRpcFNob3dFdmVudEFyZ3MpIHtcbiAgICAgKiAgICBhbGVydChcIlRvb2x0aXAgc3RhcnRlZCBzaG93aW5nIVwiKTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIFtpZ3hUb29sdGlwVGFyZ2V0XT1cInRvb2x0aXBSZWZcIiAodG9vbHRpcFNob3cpPSd0b29sdGlwU2hvd2luZygkZXZlbnQpJz5Ib3ZlciBtZTwvYnV0dG9uPlxuICAgICAqIDxzcGFuICN0b29sdGlwUmVmPVwidG9vbHRpcFwiIGlneFRvb2x0aXA+SGVsbG8gdGhlcmUsIEkgYW0gYSB0b29sdGlwITwvc3Bhbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPElUb29sdGlwU2hvd0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHRvb2x0aXAgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YXJnZXQgc3RhcnRzIGhpZGluZy5cbiAgICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGNvdW50ZG93biB0byBoaWRpbmcgdGhlIHRvb2x0aXAuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdG9vbHRpcEhpZGluZyhhcmdzOiBJVG9vbHRpcEhpZGVFdmVudEFyZ3MpIHtcbiAgICAgKiAgICBhbGVydChcIlRvb2x0aXAgc3RhcnRlZCBoaWRpbmchXCIpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hCdXR0b24gW2lneFRvb2x0aXBUYXJnZXRdPVwidG9vbHRpcFJlZlwiICh0b29sdGlwSGlkZSk9J3Rvb2x0aXBIaWRpbmcoJGV2ZW50KSc+SG92ZXIgbWU8L2J1dHRvbj5cbiAgICAgKiA8c3BhbiAjdG9vbHRpcFJlZj1cInRvb2x0aXBcIiBpZ3hUb29sdGlwPkhlbGxvIHRoZXJlLCBJIGFtIGEgdG9vbHRpcCE8L3NwYW4+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRvb2x0aXBIaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxJVG9vbHRpcEhpZGVFdmVudEFyZ3M+KCk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX25hdmlnYXRpb25TZXJ2aWNlOiBJZ3hOYXZpZ2F0aW9uU2VydmljZSwgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcihfZWxlbWVudCwgX25hdmlnYXRpb25TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHB1YmxpYyBvdmVycmlkZSBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMudGFyZ2V0LmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgdGhpcy50YXJnZXQuZm9yY2VDbG9zZSh0aGlzLm1lcmdlZE92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gICAgcHVibGljIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcERpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrT3V0bGV0QW5kT3V0c2lkZUNsaWNrKCk7XG4gICAgICAgIGNvbnN0IHNob3VsZFJldHVybiA9IHRoaXMucHJlTW91c2VFbnRlckNoZWNrKCk7XG4gICAgICAgIGlmIChzaG91bGRSZXR1cm4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNob3dpbmdBcmdzID0geyB0YXJnZXQ6IHRoaXMsIHRvb2x0aXA6IHRoaXMudGFyZ2V0LCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIHRoaXMudG9vbHRpcFNob3cuZW1pdChzaG93aW5nQXJncyk7XG5cbiAgICAgICAgaWYgKHNob3dpbmdBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YXJnZXQudG9CZVNob3duID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50YXJnZXQudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC5vcGVuKHRoaXMubWVyZ2VkT3ZlcmxheVNldHRpbmdzKTsgLy8gQ2FsbCBvcGVuKCkgb2YgSWd4VG9vbHRpcERpcmVjdGl2ZVxuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZVNob3duID0gZmFsc2U7XG4gICAgICAgIH0sIHRoaXMuc2hvd0RlbGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcERpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrT3V0bGV0QW5kT3V0c2lkZUNsaWNrKCk7XG4gICAgICAgIGNvbnN0IHNob3VsZFJldHVybiA9IHRoaXMucHJlTW91c2VMZWF2ZUNoZWNrKCk7XG4gICAgICAgIGlmIChzaG91bGRSZXR1cm4gfHwgdGhpcy50YXJnZXQuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50YXJnZXQudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC5jbG9zZSgpOyAvLyBDYWxsIGNsb3NlKCkgb2YgSWd4VG9vbHRpcERpcmVjdGl2ZVxuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9LCB0aGlzLmhpZGVEZWxheSk7XG5cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JylcbiAgICBwdWJsaWMgb25Ub3VjaFN0YXJ0KCkge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uRG9jdW1lbnRUb3VjaFN0YXJ0KGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRWxlbWVudCAhPT0gZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICAhdGhpcy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU2V0dGluZ3M6IFBvc2l0aW9uU2V0dGluZ3MgPSB7XG4gICAgICAgICAgICBob3Jpem9udGFsRGlyZWN0aW9uOiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcbiAgICAgICAgICAgIGhvcml6b250YWxTdGFydFBvaW50OiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcbiAgICAgICAgICAgIG9wZW5BbmltYXRpb246IHVzZUFuaW1hdGlvbihzY2FsZUluQ2VudGVyLCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzE1MG1zJyB9IH0pLFxuICAgICAgICAgICAgY2xvc2VBbmltYXRpb246IHVzZUFuaW1hdGlvbihmYWRlT3V0LCB7IHBhcmFtczogeyBkdXJhdGlvbjogJzc1bXMnIH0gfSlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMucG9zaXRpb25TdHJhdGVneSA9IG5ldyBBdXRvUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheURlZmF1bHRzLmNsb3NlT25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheURlZmF1bHRzLmNsb3NlT25Fc2NhcGUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMudGFyZ2V0LmNsb3NpbmcucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhpZGluZ0FyZ3MgPSB7IHRhcmdldDogdGhpcywgdG9vbHRpcDogdGhpcy50YXJnZXQsIGNhbmNlbDogZmFsc2UgfTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcEhpZGUuZW1pdChoaWRpbmdBcmdzKTtcblxuICAgICAgICAgICAgaWYgKGhpZGluZ0FyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgdG9vbHRpcCBieSByZXNwZWN0aW5nIHRoZSAnc2hvd0RlbGF5JyBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnRvb2x0aXBUYXJnZXQuc2hvd1Rvb2x0aXAoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1Rvb2x0aXAoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRhcmdldC50aW1lb3V0SWQpO1xuXG4gICAgICAgIGlmICghdGhpcy50YXJnZXQuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAvLyAgaWYgY2xvc2UgYW5pbWF0aW9uIGhhcyBzdGFydGVkIGZpbmlzaCBpdCwgb3IgY2xvc2UgdGhlIHRvb2x0aXAgd2l0aCBubyBhbmltYXRpb25cbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LmZvcmNlQ2xvc2UodGhpcy5tZXJnZWRPdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2hvd2luZ0FyZ3MgPSB7IHRhcmdldDogdGhpcywgdG9vbHRpcDogdGhpcy50YXJnZXQsIGNhbmNlbDogZmFsc2UgfTtcbiAgICAgICAgdGhpcy50b29sdGlwU2hvdy5lbWl0KHNob3dpbmdBcmdzKTtcblxuICAgICAgICBpZiAoc2hvd2luZ0FyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhcmdldC50b0JlU2hvd24gPSB0cnVlO1xuICAgICAgICB0aGlzLnRhcmdldC50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0Lm9wZW4odGhpcy5tZXJnZWRPdmVybGF5U2V0dGluZ3MpOyAvLyBDYWxsIG9wZW4oKSBvZiBJZ3hUb29sdGlwRGlyZWN0aXZlXG4gICAgICAgICAgICB0aGlzLnRhcmdldC50b0JlU2hvd24gPSBmYWxzZTtcbiAgICAgICAgfSwgdGhpcy5zaG93RGVsYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSB0b29sdGlwIGJ5IHJlc3BlY3RpbmcgdGhlICdoaWRlRGVsYXknIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudG9vbHRpcFRhcmdldC5oaWRlVG9vbHRpcCgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlVG9vbHRpcCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0LmNvbGxhcHNlZCAmJiB0aGlzLnRhcmdldC50b0JlU2hvd24pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRhcmdldC50aW1lb3V0SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0LmNvbGxhcHNlZCB8fCB0aGlzLnRhcmdldC50b0JlSGlkZGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhcmdldC50b0JlSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50YXJnZXQudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhcmdldC5jbG9zZSgpOyAvLyBDYWxsIGNsb3NlKCkgb2YgSWd4VG9vbHRpcERpcmVjdGl2ZVxuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9LCB0aGlzLmhpZGVEZWxheSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja091dGxldEFuZE91dHNpZGVDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMub3V0bGV0KSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5RGVmYXVsdHMub3V0bGV0ID0gdGhpcy5vdXRsZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBtZXJnZWRPdmVybGF5U2V0dGluZ3MoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVybGF5RGVmYXVsdHMsIHRoaXMub3ZlcmxheVNldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhlY3V0aW9uIGluIG9uTW91c2VFbnRlciBzaG91bGQgYmUgdGVybWluYXRlZCBhZnRlciB0aGlzIG1ldGhvZFxuICAgIHByaXZhdGUgcHJlTW91c2VFbnRlckNoZWNrKCkge1xuICAgICAgICAvLyBJZiB0b29sdGlwIGlzIGFib3V0IHRvIGJlIG9wZW5lZFxuICAgICAgICBpZiAodGhpcy50YXJnZXQudG9CZVNob3duKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50YXJnZXQudGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LnRvQmVTaG93biA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgVG9vbHRpcCBpcyBvcGVuZWQgb3IgYWJvdXQgdG8gYmUgaGlkZGVuXG4gICAgICAgIGlmICghdGhpcy50YXJnZXQuY29sbGFwc2VkIHx8IHRoaXMudGFyZ2V0LnRvQmVIaWRkZW4pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRhcmdldC50aW1lb3V0SWQpO1xuXG4gICAgICAgICAgICAvLyAgaWYgY2xvc2UgYW5pbWF0aW9uIGhhcyBzdGFydGVkIGZpbmlzaCBpdCwgb3IgY2xvc2UgdGhlIHRvb2x0aXAgd2l0aCBubyBhbmltYXRpb25cbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LmZvcmNlQ2xvc2UodGhpcy5tZXJnZWRPdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBleGVjdXRpb24gaW4gb25Nb3VzZUxlYXZlIHNob3VsZCBiZSB0ZXJtaW5hdGVkIGFmdGVyIHRoaXMgbWV0aG9kXG4gICAgcHJpdmF0ZSBwcmVNb3VzZUxlYXZlQ2hlY2soKTogYm9vbGVhbiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRhcmdldC50aW1lb3V0SWQpO1xuXG4gICAgICAgIC8vIElmIHRvb2x0aXAgaXMgYWJvdXQgdG8gYmUgb3BlbmVkXG4gICAgICAgIGlmICh0aGlzLnRhcmdldC50b0JlU2hvd24pIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LnRvQmVTaG93biA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy50YXJnZXQudG9CZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19