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
@@ -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 IgxForOfModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfModule, imports: [IgxForOfDirective], exports: [IgxForOfDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfModule, imports: [IgxForOfDirective], exports: [IgxForOfDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxForOfDirective],
@@ -37,10 +37,10 @@ export class IgxForOfSyncService {
37
37
  chunkSize(dir) {
38
38
  return this._master.get(dir).state.chunkSize;
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfSyncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfSyncService, providedIn: 'root' }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfSyncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
41
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfSyncService, providedIn: 'root' }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfSyncService, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfSyncService, decorators: [{
44
44
  type: Injectable,
45
45
  args: [{
46
46
  providedIn: 'root',
@@ -56,10 +56,10 @@ export class IgxForOfScrollSyncService {
56
56
  getScrollMaster(dir) {
57
57
  return this._masterScroll.get(dir);
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfScrollSyncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
60
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfScrollSyncService, providedIn: 'root' }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfScrollSyncService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfScrollSyncService, providedIn: 'root' }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxForOfScrollSyncService, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxForOfScrollSyncService, decorators: [{
63
63
  type: Injectable,
64
64
  args: [{
65
65
  providedIn: 'root',
@@ -14,10 +14,10 @@ export class HVirtualHelperComponent extends VirtualHelperBaseDirective {
14
14
  restoreScroll() {
15
15
  this.nativeElement.scrollLeft = this.scrollAmount;
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: HVirtualHelperComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: HVirtualHelperComponent, isStandalone: true, selector: "igx-horizontal-virtual-helper", inputs: { width: "width" }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["horizontal_container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<div #horizontal_container class="igx-vhelper__placeholder-content" [style.width.px]="size"></div>', isInline: true }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: HVirtualHelperComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: HVirtualHelperComponent, isStandalone: true, selector: "igx-horizontal-virtual-helper", inputs: { width: "width" }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["horizontal_container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<div #horizontal_container class="igx-vhelper__placeholder-content" [style.width.px]="size"></div>', isInline: true }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: HVirtualHelperComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: HVirtualHelperComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{
23
23
  selector: 'igx-horizontal-virtual-helper',
@@ -14,10 +14,10 @@ export class VirtualHelperComponent extends VirtualHelperBaseDirective {
14
14
  restoreScroll() {
15
15
  this.nativeElement.scrollTop = this.scrollAmount;
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: VirtualHelperComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: VirtualHelperComponent, isStandalone: true, selector: "igx-virtual-helper", inputs: { itemsLength: "itemsLength" }, host: { properties: { "scrollTop": "this.scrollTop", "style.width.px": "this.scrollWidth", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<div #container class="igx-vhelper__placeholder-content" [style.height.px]="size"></div>', isInline: true }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: VirtualHelperComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: VirtualHelperComponent, isStandalone: true, selector: "igx-virtual-helper", inputs: { itemsLength: "itemsLength" }, host: { properties: { "scrollTop": "this.scrollTop", "style.width.px": "this.scrollWidth", "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<div #container class="igx-vhelper__placeholder-content" [style.height.px]="size"></div>', isInline: true }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: VirtualHelperComponent, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: VirtualHelperComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{
23
23
  selector: 'igx-virtual-helper',
@@ -36,8 +36,8 @@ export class IgcFormControlDirective {
36
36
  setDisabledState(isDisabled) {
37
37
  this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormControlDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgcFormControlDirective, isStandalone: true, selector: "igc-rating[ngModel],igc-rating[formControlName]", host: { listeners: { "blur": "onBlur()", "igcChange": "listenForValueChange($event.detail)" } }, providers: [
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormControlDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgcFormControlDirective, isStandalone: true, selector: "igc-rating[ngModel],igc-rating[formControlName]", host: { listeners: { "blur": "onBlur()", "igcChange": "listenForValueChange($event.detail)" } }, providers: [
41
41
  {
42
42
  provide: NG_VALUE_ACCESSOR,
43
43
  useExisting: forwardRef(() => IgcFormControlDirective),
@@ -45,7 +45,7 @@ export class IgcFormControlDirective {
45
45
  }
46
46
  ], ngImport: i0 }); }
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormControlDirective, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormControlDirective, decorators: [{
49
49
  type: Directive,
50
50
  args: [{
51
51
  selector: 'igc-rating[ngModel],igc-rating[formControlName]',
@@ -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 IgcFormsModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormsModule, imports: [IgcFormControlDirective], exports: [IgcFormControlDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormsModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormsModule, imports: [IgcFormControlDirective], exports: [IgcFormControlDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormsModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgcFormsModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgcFormsModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgcFormControlDirective],
@@ -88,10 +88,10 @@ export class IgxHintDirective {
88
88
  default: break;
89
89
  }
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
92
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxHintDirective, isStandalone: true, selector: "igx-hint,[igxHint]", inputs: { position: "position" }, host: { properties: { "class.igx-input-group__hint-item--start": "this.isPositionStart", "class.igx-input-group__hint-item--end": "this.isPositionEnd" } }, ngImport: i0 }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxHintDirective, isStandalone: true, selector: "igx-hint,[igxHint]", inputs: { position: "position" }, host: { properties: { "class.igx-input-group__hint-item--start": "this.isPositionStart", "class.igx-input-group__hint-item--end": "this.isPositionEnd" } }, ngImport: i0 }); }
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxHintDirective, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxHintDirective, decorators: [{
95
95
  type: Directive,
96
96
  args: [{
97
97
  selector: 'igx-hint,[igxHint]',
@@ -1,4 +1,4 @@
1
- import { Directive, HostBinding, HostListener, Inject, Input, Optional, Self, } from '@angular/core';
1
+ import { Directive, HostBinding, HostListener, Inject, Input, Optional, Self, booleanAttribute, } from '@angular/core';
2
2
  import { NgControl, NgModel } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../input-group/input-group.common";
@@ -121,7 +121,7 @@ export class IgxInputDirective {
121
121
  * ```
122
122
  */
123
123
  set disabled(value) {
124
- this._disabled = this.inputGroup.disabled = !!((value === '') || value);
124
+ this._disabled = this.inputGroup.disabled = value;
125
125
  if (this.focused && this._disabled) {
126
126
  // Browser focus may not fire in good time and mess with change detection, adjust here in advance:
127
127
  this.inputGroup.isFocused = false;
@@ -151,7 +151,7 @@ export class IgxInputDirective {
151
151
  * ```
152
152
  */
153
153
  set required(value) {
154
- this.nativeElement.required = this.inputGroup.isRequired = (value === '') || value;
154
+ this.nativeElement.required = this.inputGroup.isRequired = value;
155
155
  }
156
156
  /**
157
157
  * Gets whether the igxInput is required.
@@ -437,10 +437,10 @@ export class IgxInputDirective {
437
437
  get type() {
438
438
  return this.nativeElement.type;
439
439
  }
440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxInputDirective, deps: [{ token: i1.IgxInputGroupBase }, { token: NgModel, optional: true, self: true }, { token: NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
441
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxInputDirective, isStandalone: true, selector: "[igxInput]", inputs: { value: "value", disabled: "disabled", required: "required" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "input": "onInput()", "change": "change($event)" }, properties: { "class.igx-input-group__input": "this.isInput", "class.igx-input-group__textarea": "this.isTextArea", "disabled": "this.disabled" } }, exportAs: ["igxInput"], ngImport: i0 }); }
440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxInputDirective, deps: [{ token: i1.IgxInputGroupBase }, { token: NgModel, optional: true, self: true }, { token: NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
441
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxInputDirective, isStandalone: true, selector: "[igxInput]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute] }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "input": "onInput()", "change": "change($event)" }, properties: { "class.igx-input-group__input": "this.isInput", "class.igx-input-group__textarea": "this.isTextArea", "disabled": "this.disabled" } }, exportAs: ["igxInput"], ngImport: i0 }); }
442
442
  }
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxInputDirective, decorators: [{
443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxInputDirective, decorators: [{
444
444
  type: Directive,
445
445
  args: [{
446
446
  selector: '[igxInput]',
@@ -470,12 +470,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
470
470
  }], value: [{
471
471
  type: Input
472
472
  }], disabled: [{
473
- type: Input
473
+ type: Input,
474
+ args: [{ transform: booleanAttribute }]
474
475
  }, {
475
476
  type: HostBinding,
476
477
  args: ['disabled']
477
478
  }], required: [{
478
- type: Input
479
+ type: Input,
480
+ args: [{ transform: booleanAttribute }]
479
481
  }], onFocus: [{
480
482
  type: HostListener,
481
483
  args: ['focus']
@@ -489,4 +491,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
489
491
  type: HostListener,
490
492
  args: ['change', ['$event']]
491
493
  }] } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFNBQVMsRUFDVCxPQUFPLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUl4QixNQUFNLDBCQUEwQixHQUFHO0lBQy9CLFVBQVU7SUFDVixTQUFTO0lBQ1QsV0FBVztJQUNYLFdBQVc7SUFDWCxLQUFLO0lBQ0wsS0FBSztJQUNMLE1BQU07Q0FDVCxDQUFDO0FBRUYsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUNyQix1REFBTyxDQUFBO0lBQ1AsbURBQUssQ0FBQTtJQUNMLHVEQUFPLENBQUE7QUFDWCxDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBMEMxQixZQUNXLFVBQTZCLEVBQ1csT0FBZ0IsRUFJckQsV0FBc0IsRUFDdEIsT0FBcUMsRUFDckMsR0FBc0IsRUFDdEIsUUFBbUI7UUFSdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDVyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBSXJELGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFoRGpDOzs7Ozs7Ozs7Ozs7O1dBYUc7UUFFSSxZQUFPLEdBQUcsS0FBSyxD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aUM7Z0JBb0NuQyxLQUFLO3NCQURmLEtBQUs7Z0JBOEJLLFFBQVE7c0JBRmxCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsVUFBVTtnQkFpQ1osUUFBUTtzQkFEbEIsS0FBSztnQkF5QkMsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBV2QsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU07Z0JBT2IsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBTWQsTUFBTTtzQkFEWixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBOZ0NvbnRyb2wsXG4gICAgTmdNb2RlbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElneElucHV0R3JvdXBCYXNlIH0gZnJvbSAnLi4vLi4vaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tbW9uJztcblxuY29uc3QgbmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZXMgPSBbXG4gICAgJ3JlcXVpcmVkJyxcbiAgICAncGF0dGVybicsXG4gICAgJ21pbmxlbmd0aCcsXG4gICAgJ21heGxlbmd0aCcsXG4gICAgJ21pbicsXG4gICAgJ21heCcsXG4gICAgJ3N0ZXAnLFxuXTtcblxuZXhwb3J0IGVudW0gSWd4SW5wdXRTdGF0ZSB7XG4gICAgSU5JVElBTCxcbiAgICBWQUxJRCxcbiAgICBJTlZBTElELFxufVxuXG4vKipcbiAqIFRoZSBgaWd4SW5wdXRgIGRpcmVjdGl2ZSBjcmVhdGVzIHNpbmdsZS0gb3IgbXVsdGlsaW5lIHRleHQgZWxlbWVudHMsIGNvdmVyaW5nIGNvbW1vbiBzY2VuYXJpb3Mgd2hlbiBkZWFsaW5nIHdpdGggZm9ybSBpbnB1dHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hJbnB1dEdyb3VwTW9kdWxlXG4gKlxuICogQGlneFBhcmVudCBEYXRhIEVudHJ5ICYgRGlzcGxheVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtaW5wdXQtZ3JvdXAtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgaW5wdXQsIGlucHV0IGdyb3VwLCBmb3JtLCBmaWVsZCwgdmFsaWRhdGlvblxuICpcbiAqIEBpZ3hHcm91cCBwcmVzZW50YXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlucHV0LWdyb3VwPlxuICogIDxsYWJlbCBmb3I9XCJhZGRyZXNzXCI+QWRkcmVzczwvbGFiZWw+XG4gKiAgPGlucHV0IGlneElucHV0IG5hbWU9XCJhZGRyZXNzXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImN1c3RvbWVyLmFkZHJlc3NcIj5cbiAqIDwvaW5wdXQtZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4SW5wdXRdJyxcbiAgICBleHBvcnRBczogJ2lneElucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogYm9vbGVhbiB8ICcnO1xuICAgIHByaXZhdGUgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgJyc7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGBcImlneC1pbnB1dC1ncm91cF9faW5wdXRcImAgY2xhc3MgaXMgYWRkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LmlzSW5wdXQgPSB0cnVlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ0xhc3NBZGRlZCA9IHRoaXMuaWd4SW5wdXQuaXNJbnB1dDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cF9faW5wdXQnKVxuICAgIHB1YmxpYyBpc0lucHV0ID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGBcImNsYXNzLmlneC1pbnB1dC1ncm91cF9fdGV4dGFyZWFcImAgY2xhc3MgaXMgYWRkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LmlzVGV4dEFyZWEgPSB0cnVlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ0xhc3NBZGRlZCA9IHRoaXMuaWd4SW5wdXQuaXNUZXh0QXJlYTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cF9fdGV4dGFyZWEnKVxuICAgIHB1YmxpYyBpc1RleHRBcmVhID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF92YWxpZCA9IElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzJDogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX3ZhbHVlQ2hhbmdlcyQ6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9maWxlTmFtZXM6IHN0cmluZztcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQmFzZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5nTW9kZWwpIHByb3RlY3RlZCBuZ01vZGVsOiBOZ01vZGVsLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBwcm90ZWN0ZWQgZm9ybUNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIGdldCBuZ0NvbnRyb2woKTogTmdDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdNb2RlbCA/IHRoaXMubmdNb2RlbCA6IHRoaXMuZm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHZhbHVlYCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dC1ncm91cD5cbiAgICAgKiAgPGlucHV0IGlneElucHV0ICNpZ3hJbnB1dCBbdmFsdWVdPVwiJ0lneElucHV0IFZhbHVlJ1wiPlxuICAgICAqIDwvaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlTdGF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnaWd4SW5wdXQnLCB7cmVhZDogSWd4SW5wdXREaXJlY3RpdmV9KVxuICAgICAqICBwdWJsaWMgaWd4SW5wdXQ6IElneElucHV0RGlyZWN0aXZlO1xuICAgICAqIGxldCBpbnB1dFZhbHVlID0gdGhpcy5pZ3hJbnB1dC52YWx1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgZGlzYWJsZWRgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0LWdyb3VwPlxuICAgICAqICA8aW5wdXQgaWd4SW5wdXQgI2lneElucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICogPC9pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0aGlzLmlucHV0R3JvdXAuZGlzYWJsZWQgPSAhISgodmFsdWUgYXMgYW55ID09PSAnJykgfHwgdmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICAvLyBCcm93c2VyIGZvY3VzIG1heSBub3QgZmlyZSBpbiBnb29kIHRpbWUgYW5kIG1lc3Mgd2l0aCBjaGFuZ2UgZGV0ZWN0aW9uLCBhZGp1c3QgaGVyZSBpbiBhZHZhbmNlOlxuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBkaXNhYmxlZGAgcHJvcGVydHlcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2lneElucHV0Jywge3JlYWQ6IElneElucHV0RGlyZWN0aXZlfSlcbiAgICAgKiAgcHVibGljIGlneElucHV0OiBJZ3hJbnB1dERpcmVjdGl2ZTtcbiAgICAgKiBsZXQgaXNEaXNhYmxlZCA9IHRoaXMuaWd4SW5wdXQuZGlzYWJsZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGByZXF1aXJlZGAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQtZ3JvdXA+XG4gICAgICogIDxpbnB1dCBpZ3hJbnB1dCAjaWd4SW5wdXQgcmVxdWlyZWQ+XG4gICAgICogPC9pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlcXVpcmVkID0gdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSAodmFsdWUgYXMgYW55ID09PSAnJykgfHwgdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBpZ3hJbnB1dCBpcyByZXF1aXJlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc1JlcXVpcmVkID0gdGhpcy5pZ3hJbnB1dC5yZXF1aXJlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCkge1xuICAgICAgICBsZXQgdmFsaWRhdGlvbjtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICYmICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciB8fCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmFzeW5jVmFsaWRhdG9yKSkge1xuICAgICAgICAgICAgdmFsaWRhdGlvbiA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRpb24gJiYgdmFsaWRhdGlvbi5yZXF1aXJlZCB8fCB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdyZXF1aXJlZCcpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0byBpbnZva2UgdGhlIGhhbmRsZXJcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlTdGF0ZSgpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gICAgcHVibGljIG9uSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tOYXRpdmVWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBjaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdmaWxlJykge1xuICAgICAgICAgICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAuZmlsZXM7XG4gICAgICAgICAgICBjb25zdCBmaWxlQXJyYXk6IEZpbGVbXSA9IFtdO1xuXG4gICAgICAgICAgICBpZiAoZmlsZUxpc3QpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgQXJyYXkuZnJvbShmaWxlTGlzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZUFycmF5LnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9maWxlTmFtZXMgPSAoZmlsZUFycmF5IHx8IFtdKS5tYXAoKGY6IEZpbGUpID0+IGYubmFtZSkuam9pbignLCAnKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgZmlsZUxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZCA9IElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgZmlsZU5hbWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZU5hbWVzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZmlsZU5hbWVzID0gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmhhc1BsYWNlaG9sZGVyID0gdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZShcbiAgICAgICAgICAgICdwbGFjZWhvbGRlcidcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0R3JvdXAuZGlzYWJsZWQgPVxuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoXG4gICAgICAgICAgICAncmVxdWlyZWQnXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvIG5vdCBpbnZhbGlkYXRlIHRoZSBpbnB1dCBvbiBpbml0XG4gICAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFsc28gY2hlY2sgdGhlIGNvbnRyb2wncyB2YWxpZGF0b3JzIGZvciByZXF1aXJlZFxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gdGhpcy5yZXF1aXJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtcmVxdWlyZWQnLCB0aGlzLnJlcXVpcmVkLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGNvbnN0IGVsVGFnID0gdGhpcy5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGVsVGFnID09PSAndGV4dGFyZWEnKSB7XG4gICAgICAgICAgICB0aGlzLmlzVGV4dEFyZWEgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlcyQgPSB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZXMkID0gdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N0YXR1c0NoYW5nZXMkKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlQ2hhbmdlcyQpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgZm9jdXMgb24gdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5pZ3hJbnB1dC5mb2N1cygpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBuYXRpdmVFbGVtZW50YCBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXROYXRpdmVFbGVtZW50ID0gdGhpcy5pZ3hJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgb25TdGF0dXNDaGFuZ2VkKCkge1xuICAgICAgICAvLyBFbmFibGUvRGlzYWJsZSBjb250cm9sIGJhc2VkIG9uIG5nQ29udHJvbCAjNzA4NlxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCAhPT0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5U3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgb25WYWx1ZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWxlTmFtZXMgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVOYW1lcyA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVWYWxpZGl0eVN0YXRlKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmlzVG91Y2hlZE9yRGlydHkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNWYWxpZGF0b3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJ1biB0aGUgdmFsaWRhdGlvbiB3aXRoIGVtcHR5IG9iamVjdCB0byBjaGVjayBpZiByZXF1aXJlZCBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gZXJyb3IgJiYgZXJyb3IucmVxdWlyZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5uZ0NvbnRyb2wudmFsaWQgPyBJZ3hJbnB1dFN0YXRlLlZBTElEIDogSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLm5nQ29udHJvbC52YWxpZCA/IElneElucHV0U3RhdGUuSU5JVElBTCA6IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHZhbGlkYXRvciBpcyBkeW5hbWljYWxseSBjbGVhcmVkLCByZXNldCBsYWJlbCdzIHJlcXVpcmVkIGNsYXNzKGFzdGVyaXNrKSBhbmQgSWd4SW5wdXRTdGF0ZSAjMTAwMTBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLm5nQ29udHJvbC52YWxpZCA/IElneElucHV0U3RhdGUuSU5JVElBTCA6IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAnYXJpYS1yZXF1aXJlZCcsIHRoaXMucmVxdWlyZWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb25zdCBhcmlhSW52YWxpZCA9IHRoaXMudmFsaWQgPT09IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtaW52YWxpZCcsIGFyaWFJbnZhbGlkLnRvU3RyaW5nKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja05hdGl2ZVZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1RvdWNoZWRPckRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMubmdDb250cm9sLmNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmRpcnR5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNWYWxpZGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEhdGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IgfHwgISF0aGlzLm5nQ29udHJvbC5jb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGlneElucHV0IGhhcyBhIHBsYWNlaG9sZGVyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGhhc1BsYWNlaG9sZGVyID0gdGhpcy5pZ3hJbnB1dC5oYXNQbGFjZWhvbGRlcjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhhc1BsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudCBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXRQbGFjZWhvbGRlciA9IHRoaXMuaWd4SW5wdXQucGxhY2Vob2xkZXI7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBBbiBpbmRpY2F0b3Igb2Ygd2hldGhlciB0aGUgaW5wdXQgaGFzIHZhbGlkYXRvciBhdHRyaWJ1dGVzIG9yIG5vdFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2hhc1ZhbGlkYXRvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAoY29uc3QgbmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZSBvZiBuYXRpdmVWYWxpZGF0aW9uQXR0cmlidXRlcykge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUobmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBpZ3hJbnB1dCBpcyBmb2N1c2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzRm9jdXNlZCA9IHRoaXMuaWd4SW5wdXQuZm9jdXNlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdGF0ZSBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXRTdGF0ZSA9IHRoaXMuaWd4SW5wdXQudmFsaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBJZ3hJbnB1dFN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQudmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCB2YWxpZCh2YWx1ZTogSWd4SW5wdXRTdGF0ZSkge1xuICAgICAgICB0aGlzLl92YWxpZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaXMgdmFsaWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgdmFsaWQgPSB0aGlzLmlneElucHV0LmlzVmFsaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZCAhPT0gSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gdG8gYXNzaWduIGEgbmF0aXZlIHZhbGlkaXR5IHByb3BlcnR5IG9mIGFuIGlucHV0LlxuICAgICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgd2hlbiB0aGVyZSdzIG5vIG5nQ29udHJvbFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tOYXRpdmVWYWxpZGl0eSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2hhc1ZhbGlkYXRvcnMoKSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpID9cbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWQgPyBJZ3hJbnB1dFN0YXRlLlZBTElEIDogSWd4SW5wdXRTdGF0ZS5JTklUSUFMIDpcbiAgICAgICAgICAgICAgICBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpbnB1dCB0eXBlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC50eXBlO1xuICAgIH1cbn1cbiJdfQ==
494
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBQ0osZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxTQUFTLEVBQ1QsT0FBTyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFJeEIsTUFBTSwwQkFBMEIsR0FBRztJQUMvQixVQUFVO0lBQ1YsU0FBUztJQUNULFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0NBQ1QsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsdURBQU8sQ0FBQTtJQUNQLG1EQUFLLENBQUE7SUFDTCx1REFBTyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQXdDMUIsWUFDVyxVQUE2QixFQUNXLE9BQWdCLEVBSXJELFdBQXNCLEVBQ3RCLE9BQXFDLEVBQ3JDLEdBQXNCLEVBQ3RCLFFBQW1CO1FBUnRCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQ1csWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUlyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBVztRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUNyQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBaERqQzs7Ozs7Ozs7Ozs7OztXQWFHO1FBRUksWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN2Qjs7Ozs7Ozs7Ozs7OztXQWFHO1FBRUksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVsQixXQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUkvQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBWXRCLENBQUM7SUFFTCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxJQUNXLEtBQUssQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILElBRVcsUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsa0dBQWtHO1lBQ2xHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNyQztJQUNMLENBQUM7SUFDRDs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxRQUFRO1FBQ2YsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDL0YsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFxQixDQUFDLENBQUM7U0FDeEU7UUFDRCxPQUFPLFVBQVUsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFDRDs7O09BR0c7SUFFSSxPQUFPO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFDRDs7Ozs7T0FLRztJQUVJLE1BQU07UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELHdCQUF3QjtJQUVqQixPQUFPO1FBQ1YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELHdCQUF3QjtJQUVqQixNQUFNLENBQUMsS0FBWTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3RCLE1BQU0sUUFBUSxHQUFxQixLQUFLLENBQUMsTUFBMkI7aUJBQy9ELEtBQUssQ0FBQztZQUNYLE1BQU0sU0FBUyxHQUFXLEVBQUUsQ0FBQztZQUU3QixJQUFJLFFBQVEsRUFBRTtnQkFDVixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hCO2FBQ0o7WUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4RSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQzthQUN2QztTQUNKO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCx3QkFBd0I7SUFDakIsS0FBSztRQUNSLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELHdCQUF3QjtJQUNqQixlQUFlO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUM1RCxhQUFhLENBQ2hCLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO2dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDeEQsVUFBVSxDQUNiLENBQUM7UUFFRixtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1NBQ3ZDO1FBQ0QsbURBQW1EO1FBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFMUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkQsSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzFCO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2xDLENBQUM7WUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQUM7U0FDTDtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELHdCQUF3QjtJQUNqQixXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBQ0Qsd0JBQXdCO0lBQ2QsZUFBZTtRQUNyQixrREFBa0Q7UUFDbEQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCO0lBQ2QsY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3BCLHdFQUF3RTtvQkFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQXFCLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUM7b0JBQ3JELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO3FCQUNwRjt5QkFBTTt3QkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO3FCQUN0RjtpQkFDSjtxQkFBTTtvQkFDSCx1R0FBdUc7b0JBQ3ZHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztpQkFDdEY7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7YUFDdkM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzFGO2FBQU07WUFDSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFRCxJQUFZLGdCQUFnQjtRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFZLGFBQWE7UUFDckIsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjO1FBQ2xCLEtBQUssTUFBTSx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBRTtZQUNoRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7Z0JBQzVELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsS0FBSyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUQsYUFBYSxDQUFDLE9BQU8sQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQzttSEEvYlEsaUJBQWlCLG1EQTBDTSxPQUFPLHlDQUczQixTQUFTO3VHQTdDWixpQkFBaUIsMkdBOEZOLGdCQUFnQixzQ0FpQ2hCLGdCQUFnQjs7Z0dBL0gzQixpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQTJDUSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLE9BQU87OzBCQUNsQyxRQUFROzswQkFDUixJQUFJOzswQkFDSixNQUFNOzJCQUFDLFNBQVM7MEhBN0JkLE9BQU87c0JBRGIsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBaUJwQyxVQUFVO3NCQURoQixXQUFXO3VCQUFDLGlDQUFpQztnQkFvQ25DLEtBQUs7c0JBRGYsS0FBSztnQkE4QkssUUFBUTtzQkFGbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQ3JDLFdBQVc7dUJBQUMsVUFBVTtnQkFpQ1osUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkF5Qi9CLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQVdkLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNO2dCQU9iLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQU1kLE1BQU07c0JBRFosWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBOZ0NvbnRyb2wsXG4gICAgTmdNb2RlbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElneElucHV0R3JvdXBCYXNlIH0gZnJvbSAnLi4vLi4vaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tbW9uJztcblxuY29uc3QgbmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZXMgPSBbXG4gICAgJ3JlcXVpcmVkJyxcbiAgICAncGF0dGVybicsXG4gICAgJ21pbmxlbmd0aCcsXG4gICAgJ21heGxlbmd0aCcsXG4gICAgJ21pbicsXG4gICAgJ21heCcsXG4gICAgJ3N0ZXAnLFxuXTtcblxuZXhwb3J0IGVudW0gSWd4SW5wdXRTdGF0ZSB7XG4gICAgSU5JVElBTCxcbiAgICBWQUxJRCxcbiAgICBJTlZBTElELFxufVxuXG4vKipcbiAqIFRoZSBgaWd4SW5wdXRgIGRpcmVjdGl2ZSBjcmVhdGVzIHNpbmdsZS0gb3IgbXVsdGlsaW5lIHRleHQgZWxlbWVudHMsIGNvdmVyaW5nIGNvbW1vbiBzY2VuYXJpb3Mgd2hlbiBkZWFsaW5nIHdpdGggZm9ybSBpbnB1dHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hJbnB1dEdyb3VwTW9kdWxlXG4gKlxuICogQGlneFBhcmVudCBEYXRhIEVudHJ5ICYgRGlzcGxheVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtaW5wdXQtZ3JvdXAtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgaW5wdXQsIGlucHV0IGdyb3VwLCBmb3JtLCBmaWVsZCwgdmFsaWRhdGlvblxuICpcbiAqIEBpZ3hHcm91cCBwcmVzZW50YXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlucHV0LWdyb3VwPlxuICogIDxsYWJlbCBmb3I9XCJhZGRyZXNzXCI+QWRkcmVzczwvbGFiZWw+XG4gKiAgPGlucHV0IGlneElucHV0IG5hbWU9XCJhZGRyZXNzXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImN1c3RvbWVyLmFkZHJlc3NcIj5cbiAqIDwvaW5wdXQtZ3JvdXA+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4SW5wdXRdJyxcbiAgICBleHBvcnRBczogJ2lneElucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgYFwiaWd4LWlucHV0LWdyb3VwX19pbnB1dFwiYCBjbGFzcyBpcyBhZGRlZCB0byB0aGUgaG9zdCBlbGVtZW50LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQuaXNJbnB1dCA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNDTGFzc0FkZGVkID0gdGhpcy5pZ3hJbnB1dC5pc0lucHV0O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwX19pbnB1dCcpXG4gICAgcHVibGljIGlzSW5wdXQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgYFwiY2xhc3MuaWd4LWlucHV0LWdyb3VwX190ZXh0YXJlYVwiYCBjbGFzcyBpcyBhZGRlZCB0byB0aGUgaG9zdCBlbGVtZW50LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQuaXNUZXh0QXJlYSA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNDTGFzc0FkZGVkID0gdGhpcy5pZ3hJbnB1dC5pc1RleHRBcmVhO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwX190ZXh0YXJlYScpXG4gICAgcHVibGljIGlzVGV4dEFyZWEgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgIHByaXZhdGUgX3N0YXR1c0NoYW5nZXMkOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VzJDogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX2ZpbGVOYW1lczogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBCYXNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIEBJbmplY3QoTmdNb2RlbCkgcHJvdGVjdGVkIG5nTW9kZWw6IE5nTW9kZWwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7IH1cblxuICAgIHByaXZhdGUgZ2V0IG5nQ29udHJvbCgpOiBOZ0NvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ01vZGVsID8gdGhpcy5uZ01vZGVsIDogdGhpcy5mb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0LWdyb3VwPlxuICAgICAqICA8aW5wdXQgaWd4SW5wdXQgI2lneElucHV0IFt2YWx1ZV09XCInSWd4SW5wdXQgVmFsdWUnXCI+XG4gICAgICogPC9pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eVN0YXRlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGB2YWx1ZWAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdpZ3hJbnB1dCcsIHtyZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZX0pXG4gICAgICogIHB1YmxpYyBpZ3hJbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG4gICAgICogbGV0IGlucHV0VmFsdWUgPSB0aGlzLmlneElucHV0LnZhbHVlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGBkaXNhYmxlZGAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQtZ3JvdXA+XG4gICAgICogIDxpbnB1dCBpZ3hJbnB1dCAjaWd4SW5wdXQgW2Rpc2FibGVkXT1cInRydWVcIj5cbiAgICAgKiA8L2lucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIEBIb3N0QmluZGluZygnZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0aGlzLmlucHV0R3JvdXAuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiB0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgLy8gQnJvd3NlciBmb2N1cyBtYXkgbm90IGZpcmUgaW4gZ29vZCB0aW1lIGFuZCBtZXNzIHdpdGggY2hhbmdlIGRldGVjdGlvbiwgYWRqdXN0IGhlcmUgaW4gYWR2YW5jZTpcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgZGlzYWJsZWRgIHByb3BlcnR5XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdpZ3hJbnB1dCcsIHtyZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZX0pXG4gICAgICogIHB1YmxpYyBpZ3hJbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG4gICAgICogbGV0IGlzRGlzYWJsZWQgPSB0aGlzLmlneElucHV0LmRpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgcmVxdWlyZWRgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0LWdyb3VwPlxuICAgICAqICA8aW5wdXQgaWd4SW5wdXQgI2lneElucHV0IHJlcXVpcmVkPlxuICAgICAqIDwvaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVxdWlyZWQgPSB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaXMgcmVxdWlyZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNSZXF1aXJlZCA9IHRoaXMuaWd4SW5wdXQucmVxdWlyZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcbiAgICAgICAgbGV0IHZhbGlkYXRpb247XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5hc3luY1ZhbGlkYXRvcikpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb24gPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0aW9uICYmIHZhbGlkYXRpb24ucmVxdWlyZWQgfHwgdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncmVxdWlyZWQnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwdWJsaWMgb25Gb2N1cygpIHtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgdG8gaW52b2tlIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgcHVibGljIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5U3RhdGUoKTtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKVxuICAgIHB1YmxpYyBvbklucHV0KCkge1xuICAgICAgICB0aGlzLmNoZWNrTmF0aXZlVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgY2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVMaXN0OiBGaWxlTGlzdCB8IG51bGwgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLmZpbGVzO1xuICAgICAgICAgICAgY29uc3QgZmlsZUFycmF5OiBGaWxlW10gPSBbXTtcblxuICAgICAgICAgICAgaWYgKGZpbGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIEFycmF5LmZyb20oZmlsZUxpc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVBcnJheS5wdXNoKGZpbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZmlsZU5hbWVzID0gKGZpbGVBcnJheSB8fCBbXSkubWFwKChmOiBGaWxlKSA9PiBmLm5hbWUpLmpvaW4oJywgJyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIGZpbGVMaXN0Py5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgZ2V0IGZpbGVOYW1lcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVOYW1lcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2ZpbGVOYW1lcyA9ICcnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cC5oYXNQbGFjZWhvbGRlciA9IHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoXG4gICAgICAgICAgICAncGxhY2Vob2xkZXInXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmRpc2FibGVkID1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5kaXNhYmxlZCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKFxuICAgICAgICAgICAgJ3JlcXVpcmVkJ1xuICAgICAgICApO1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkbyBub3QgaW52YWxpZGF0ZSB0aGUgaW5wdXQgb24gaW5pdFxuICAgICAgICBpZiAoIXRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZCA9IElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICAgICAgfVxuICAgICAgICAvLyBBbHNvIGNoZWNrIHRoZSBjb250cm9sJ3MgdmFsaWRhdG9ycyBmb3IgcmVxdWlyZWRcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLXJlcXVpcmVkJywgdGhpcy5yZXF1aXJlZC50b1N0cmluZygpKTtcblxuICAgICAgICBjb25zdCBlbFRhZyA9IHRoaXMubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChlbFRhZyA9PT0gJ3RleHRhcmVhJykge1xuICAgICAgICAgICAgdGhpcy5pc1RleHRBcmVhID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXR1c0NoYW5nZXMkID0gdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuYmluZCh0aGlzKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VzJCA9IHRoaXMubmdDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLl9zdGF0dXNDaGFuZ2VzJCkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlcyQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl92YWx1ZUNoYW5nZXMkKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZXMkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIGZvY3VzIG9uIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQuZm9jdXMoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgbmF0aXZlRWxlbWVudGAgb2YgdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlneElucHV0TmF0aXZlRWxlbWVudCA9IHRoaXMuaWd4SW5wdXQubmF0aXZlRWxlbWVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIG9uU3RhdHVzQ2hhbmdlZCgpIHtcbiAgICAgICAgLy8gRW5hYmxlL0Rpc2FibGUgY29udHJvbCBiYXNlZCBvbiBuZ0NvbnRyb2wgIzcwODZcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IHRoaXMubmdDb250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eVN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2VkKCkge1xuICAgICAgICBpZiAodGhpcy5fZmlsZU5hbWVzICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9maWxlTmFtZXMgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmFsaWRpdHlTdGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pc1RvdWNoZWRPckRpcnR5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzVmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgICAgICAvLyBSdW4gdGhlIHZhbGlkYXRpb24gd2l0aCBlbXB0eSBvYmplY3QgdG8gY2hlY2sgaWYgcmVxdWlyZWQgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IGVycm9yICYmIGVycm9yLnJlcXVpcmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMubmdDb250cm9sLnZhbGlkID8gSWd4SW5wdXRTdGF0ZS5WQUxJRCA6IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5uZ0NvbnRyb2wudmFsaWQgPyBJZ3hJbnB1dFN0YXRlLklOSVRJQUwgOiBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB2YWxpZGF0b3IgaXMgZHluYW1pY2FsbHkgY2xlYXJlZCwgcmVzZXQgbGFiZWwncyByZXF1aXJlZCBjbGFzcyhhc3RlcmlzaykgYW5kIElneElucHV0U3RhdGUgIzEwMDEwXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5uZ0NvbnRyb2wudmFsaWQgPyBJZ3hJbnB1dFN0YXRlLklOSVRJQUwgOiBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZCA9IElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtcmVxdWlyZWQnLCB0aGlzLnJlcXVpcmVkLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgYXJpYUludmFsaWQgPSB0aGlzLnZhbGlkID09PSBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWludmFsaWQnLCBhcmlhSW52YWxpZC50b1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tOYXRpdmVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUb3VjaGVkT3JEaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnRvdWNoZWQgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzVmFsaWRhdG9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghIXRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yIHx8ICEhdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBpZ3hJbnB1dCBoYXMgYSBwbGFjZWhvbGRlci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBoYXNQbGFjZWhvbGRlciA9IHRoaXMuaWd4SW5wdXQuaGFzUGxhY2Vob2xkZXI7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQgb2YgdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlneElucHV0UGxhY2Vob2xkZXIgPSB0aGlzLmlneElucHV0LnBsYWNlaG9sZGVyO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgQW4gaW5kaWNhdG9yIG9mIHdoZXRoZXIgdGhlIGlucHV0IGhhcyB2YWxpZGF0b3IgYXR0cmlidXRlcyBvciBub3RcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9oYXNWYWxpZGF0b3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IG5hdGl2ZVZhbGlkYXRpb25BdHRyaWJ1dGUgb2YgbmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKG5hdGl2ZVZhbGlkYXRpb25BdHRyaWJ1dGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaXMgZm9jdXNlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0ZvY3VzZWQgPSB0aGlzLmlneElucHV0LmZvY3VzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEdyb3VwLmlzRm9jdXNlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3RhdGUgb2YgdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlneElucHV0U3RhdGUgPSB0aGlzLmlneElucHV0LnZhbGlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogSWd4SW5wdXRTdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LnZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgdmFsaWQodmFsdWU6IElneElucHV0U3RhdGUpIHtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGlneElucHV0IGlzIHZhbGlkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHZhbGlkID0gdGhpcy5pZ3hJbnB1dC5pc1ZhbGlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWQgIT09IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRvIGFzc2lnbiBhIG5hdGl2ZSB2YWxpZGl0eSBwcm9wZXJ0eSBvZiBhbiBpbnB1dC5cbiAgICAgKiBUaGlzIHNob3VsZCBiZSB1c2VkIHdoZW4gdGhlcmUncyBubyBuZ0NvbnRyb2xcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrTmF0aXZlVmFsaWRpdHkoKSB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB0aGlzLl9oYXNWYWxpZGF0b3JzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5uYXRpdmVFbGVtZW50LmNoZWNrVmFsaWRpdHkoKSA/XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkID8gSWd4SW5wdXRTdGF0ZS5WQUxJRCA6IElneElucHV0U3RhdGUuSU5JVElBTCA6XG4gICAgICAgICAgICAgICAgSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgaW5wdXQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQudHlwZTtcbiAgICB9XG59XG4iXX0=
@@ -9,10 +9,10 @@ export class IgxLabelDirective {
9
9
  */
10
10
  this.id = `igx-label-${NEXT_ID++}`;
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxLabelDirective, isStandalone: true, selector: "[igxLabel]", inputs: { id: "id" }, host: { properties: { "class.igx-input-group__label": "this.defaultClass", "attr.id": "this.id" } }, ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxLabelDirective, isStandalone: true, selector: "[igxLabel]", inputs: { id: "id" }, host: { properties: { "class.igx-input-group__label": "this.defaultClass", "attr.id": "this.id" } }, ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLabelDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLabelDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[igxLabel]',
@@ -1,4 +1,4 @@
1
- import { Directive, HostBinding, Input } from '@angular/core';
1
+ import { Directive, HostBinding, Input, booleanAttribute } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class IgxLayoutDirective {
4
4
  constructor() {
@@ -123,10 +123,10 @@ export class IgxLayoutDirective {
123
123
  }
124
124
  return (this.dir === 'row') ? 'row' : 'column';
125
125
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxLayoutDirective, isStandalone: true, selector: "[igxLayout]", inputs: { dir: ["igxLayoutDir", "dir"], reverse: ["igxLayoutReverse", "reverse"], wrap: ["igxLayoutWrap", "wrap"], justify: ["igxLayoutJustify", "justify"], itemAlign: ["igxLayoutItemAlign", "itemAlign"] }, host: { properties: { "style.display": "this.display", "style.flex-wrap": "this.flexwrap", "style.justify-content": "this.justifycontent", "style.align-items": "this.align", "style.flex-direction": "this.direction" } }, ngImport: i0 }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
127
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxLayoutDirective, isStandalone: true, selector: "[igxLayout]", inputs: { dir: ["igxLayoutDir", "dir"], reverse: ["igxLayoutReverse", "reverse", booleanAttribute], wrap: ["igxLayoutWrap", "wrap"], justify: ["igxLayoutJustify", "justify"], itemAlign: ["igxLayoutItemAlign", "itemAlign"] }, host: { properties: { "style.display": "this.display", "style.flex-wrap": "this.flexwrap", "style.justify-content": "this.justifycontent", "style.align-items": "this.align", "style.flex-direction": "this.direction" } }, ngImport: i0 }); }
128
128
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutDirective, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutDirective, decorators: [{
130
130
  type: Directive,
131
131
  args: [{
132
132
  selector: '[igxLayout]',
@@ -137,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
137
137
  args: ['igxLayoutDir']
138
138
  }], reverse: [{
139
139
  type: Input,
140
- args: ['igxLayoutReverse']
140
+ args: [{ alias: 'igxLayoutReverse', transform: booleanAttribute }]
141
141
  }], wrap: [{
142
142
  type: Input,
143
143
  args: ['igxLayoutWrap']
@@ -245,10 +245,10 @@ export class IgxFlexDirective {
245
245
  get itemorder() {
246
246
  return this.order || 0;
247
247
  }
248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxFlexDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
249
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: IgxFlexDirective, isStandalone: true, selector: "[igxFlex]", inputs: { grow: ["igxFlexGrow", "grow"], shrink: ["igxFlexShrink", "shrink"], flex: ["igxFlex", "flex"], order: ["igxFlexOrder", "order"], basis: ["igxFlexBasis", "basis"] }, host: { properties: { "style.flex": "this.style", "style.order": "this.itemorder" } }, ngImport: i0 }); }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxFlexDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
249
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxFlexDirective, isStandalone: true, selector: "[igxFlex]", inputs: { grow: ["igxFlexGrow", "grow"], shrink: ["igxFlexShrink", "shrink"], flex: ["igxFlex", "flex"], order: ["igxFlexOrder", "order"], basis: ["igxFlexBasis", "basis"] }, host: { properties: { "style.flex": "this.style", "style.order": "this.itemorder" } }, ngImport: i0 }); }
250
250
  }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxFlexDirective, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxFlexDirective, decorators: [{
252
252
  type: Directive,
253
253
  args: [{
254
254
  selector: '[igxFlex]',
@@ -276,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
276
276
  type: HostBinding,
277
277
  args: ['style.order']
278
278
  }] } });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2xheW91dC9sYXlvdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGtCQUFrQjtJQUovQjtRQUtJOzs7Ozs7Ozs7Ozs7OztXQWNHO1FBQzJCLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFFMUM7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDK0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDNEIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDK0IsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUV6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDaUMsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUxRDs7V0FFRztRQUNrQyxZQUFPLEdBQUcsTUFBTSxDQUFDO0tBb0N6RDtJQWxDRzs7T0FFRztJQUNILElBQ1csUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFNBQVM7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7U0FDbEU7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkQsQ0FBQzttSEFySVEsa0JBQWtCO3VHQUFsQixrQkFBa0I7O2dHQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFpQmlDLEdBQUc7c0JBQWhDLEtBQUs7dUJBQUMsY0FBYztnQkFpQmEsT0FBTztzQkFBeEMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBb0JNLElBQUk7c0JBQWxDLEtBQUs7dUJBQUMsZUFBZTtnQkFvQlksT0FBTztzQkFBeEMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBb0JXLFNBQVM7c0JBQTVDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUtVLE9BQU87c0JBQTNDLFdBQVc7dUJBQUMsZUFBZTtnQkFNakIsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBU25CLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsdUJBQXVCO2dCQVN6QixLQUFLO3NCQURmLFdBQVc7dUJBQUMsbUJBQW1CO2dCQVNyQixTQUFTO3NCQURuQixXQUFXO3VCQUFDLHNCQUFzQjs7QUFhdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUo3QjtRQU1JOzs7Ozs7Ozs7Ozs7V0FZRztRQUMwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXRDOzs7Ozs7Ozs7Ozs7V0FZRztRQUM0QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRTFDOzs7Ozs7OztXQVFHO1FBQ3NCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFbkM7Ozs7Ozs7Ozs7OztXQVlHO1FBQzJCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFFeEM7Ozs7Ozs7Ozs7V0FVRztRQUMyQixVQUFLLEdBQUcsTUFBTSxDQUFDO0tBb0JoRDtJQWxCRzs7T0FFRztJQUNILElBQ1csS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO21IQXhGUSxnQkFBZ0I7dUdBQWhCLGdCQUFnQjs7Z0dBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQWdCZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQWVXLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFXRyxJQUFJO3NCQUE1QixLQUFLO3VCQUFDLFNBQVM7Z0JBZWMsS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQWFTLEtBQUs7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFNVixLQUFLO3NCQURmLFdBQVc7dUJBQUMsWUFBWTtnQkFZZCxTQUFTO3NCQURuQixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hMYXlvdXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneExheW91dERpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGVmYXVsdCBmbG93IGRpcmVjdGlvbiBvZiB0aGUgY29udGFpbmVyJ3MgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgcm93c2AuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwicm93XCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0RGlyJykgcHVibGljIGRpciA9ICdyb3cnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgZGlyZWN0aW9uIGZsZXggY2hpbGRyZW4gYXJlIHBsYWNlZCBpbiB0aGUgZmxleCBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBgcm93c2AgZGlyZWN0aW9uIGdvZXMgcmlnaHQgdG8gbGVmdCBhbmQgYGNvbHVtbnNgIGdvZXMgYm90dG9tIHRvIHRvcC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dFJldmVyc2U9XCJ0cnVlXCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXRSZXZlcnNlJykgcHVibGljIHJldmVyc2UgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIGltbWVkaWF0ZSBjaGlsZHJlbiB3aWxsIGFsbCB0cnkgdG8gZml0IG9udG8gb25lIGxpbmUuXG4gICAgICpcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBgbm93cmFwYCBzZXRzIHRoaXMgYmVoYXZpb3IuXG4gICAgICpcbiAgICAgKiBPdGhlciBhY2NlcHRlZCB2YWx1ZXMgYXJlIGB3cmFwYCBhbmQgYHdyYXAtcmV2ZXJzZWAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJyb3dcIlxuICAgICAqICAgaWd4TGF5b3V0V3JhcD1cIndyYXBcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dFdyYXAnKSBwdWJsaWMgd3JhcCA9ICdub3dyYXAnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgYWxpZ25tZW50IGFsb25nIHRoZSBtYWluIGF4aXMuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgZmxleC1zdGFydGAgd2hpY2ggcGFja3MgdGhlIGNoaWxkcmVuIHRvd2FyZCB0aGUgc3RhcnQgbGluZS5cbiAgICAgKlxuICAgICAqIE90aGVyIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGZsZXgtZW5kYCwgYGNlbnRlcmAsIGBzcGFjZS1iZXR3ZWVuYCwgYHNwYWNlLWFyb3VuZGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJjb2x1bW5cIlxuICAgICAqICAgaWd4TGF5b3V0SnVzdGlmeT1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgKiAgICA8ZGl2PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2PjI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2PjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dEp1c3RpZnknKSBwdWJsaWMganVzdGlmeSA9ICdmbGV4LXN0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGhvdyBjaGlsZHJlbiBhcmUgbGFpZCBvdXQgYWxvbmcgdGhlIGNvcnNzIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGBmbGV4LXN0YXJ0YC5cbiAgICAgKlxuICAgICAqIE90aGVyIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGZsZXgtZW5kYCwgYGNlbnRlcmAsIGBiYXNlbGluZWAsIGFuZCBgc3RyZXRjaGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJjb2x1bW5cIlxuICAgICAqICAgaWd4TGF5b3V0SXRlbUFsaWduPVwic3RhcnRcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dEl0ZW1BbGlnbicpIHB1YmxpYyBpdGVtQWxpZ24gPSAnc3RyZXRjaCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgcHVibGljIGRpc3BsYXkgPSAnZmxleCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LXdyYXAnKVxuICAgIHB1YmxpYyBnZXQgZmxleHdyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndyYXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuanVzdGlmeS1jb250ZW50JylcbiAgICBwdWJsaWMgZ2V0IGp1c3RpZnljb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5qdXN0aWZ5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmFsaWduLWl0ZW1zJylcbiAgICBwdWJsaWMgZ2V0IGFsaWduKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtQWxpZ247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZmxleC1kaXJlY3Rpb24nKVxuICAgIHB1YmxpYyBnZXQgZGlyZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZGlyID09PSAncm93JykgPyAncm93LXJldmVyc2UnIDogJ2NvbHVtbi1yZXZlcnNlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRoaXMuZGlyID09PSAncm93JykgPyAncm93JyA6ICdjb2x1bW4nO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4RmxleF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4RmxleERpcmVjdGl2ZSB7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgZ3Jvd2AgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGAxYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj5Db250ZW50MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjFcIj5Db250ZW50MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj5Db250ZW50MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleEdyb3cnKSBwdWJsaWMgZ3JvdyA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgc2hyaW5rYCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYDFgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhTaHJpbms9XCIxXCI+Q29udGVudDE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleFNocmluaz1cIjBcIj5Db250ZW50MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4U2hyaW5rPVwiMVwiPkNvbnRlbnQzPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4U2hyaW5rJykgcHVibGljIHNocmluayA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBkaXJlY3RpdmUgdG8gYW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlIGBpZ3hGbGV4R3Jvd2AsIGBpZ3hGbGV4U2hyaW5rYCwgYGlneEZsZXhPcmRlcmAsIGBpZ3hGbGV4QmFzaXNgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgaWd4RmxleD5Db250ZW50PC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4JykgcHVibGljIGZsZXggPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBvcmRlcmAgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGAwYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4T3JkZXI9XCIxXCI+Q29udGVudDE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleE9yZGVyPVwiMFwiPkNvbnRlbnQyPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhPcmRlcj1cIjJcIj5Db250ZW50MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleE9yZGVyJykgcHVibGljIG9yZGVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBmbGV4LWJhc2lzYCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGF1dG9gLlxuICAgICAqXG4gICAgICogT3RoZXIgcG9zc2libGUgdmFsdWVzIGluY2x1ZGUgYGNvbnRlbnRgLCBgbWF4LWNvbnRlbnRgLCBgbWluLWNvbnRlbnRgLCBgZml0LWNvbnRlbnRgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgaWd4RmxleCBpZ3hGbGV4QmFzaXM9XCJmaXQtY29udGVudFwiPkNvbnRlbnQ8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXhCYXNpcycpIHB1YmxpYyBiYXNpcyA9ICdhdXRvJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgnKVxuICAgIHB1YmxpYyBnZXQgc3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmZsZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmZsZXh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7dGhpcy5ncm93fSAke3RoaXMuc2hyaW5rfSAke3RoaXMuYmFzaXN9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vcmRlcicpXG4gICAgcHVibGljIGdldCBpdGVtb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yZGVyIHx8IDA7XG4gICAgfVxufVxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2xheW91dC9sYXlvdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNaEYsTUFBTSxPQUFPLGtCQUFrQjtJQUovQjtRQUtJOzs7Ozs7Ozs7Ozs7OztXQWNHO1FBQzJCLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFFMUM7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDdUUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUUxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDNEIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDK0IsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUV6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDaUMsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUxRDs7V0FFRztRQUNrQyxZQUFPLEdBQUcsTUFBTSxDQUFDO0tBb0N6RDtJQWxDRzs7T0FFRztJQUNILElBQ1csUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFNBQVM7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7U0FDbEU7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkQsQ0FBQzttSEFySVEsa0JBQWtCO3VHQUFsQixrQkFBa0IsZ0lBaUNvQixnQkFBZ0I7O2dHQWpDdEQsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBaUJpQyxHQUFHO3NCQUFoQyxLQUFLO3VCQUFDLGNBQWM7Z0JBaUJxRCxPQUFPO3NCQUFoRixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFvQmxDLElBQUk7c0JBQWxDLEtBQUs7dUJBQUMsZUFBZTtnQkFvQlksT0FBTztzQkFBeEMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBb0JXLFNBQVM7c0JBQTVDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUtVLE9BQU87c0JBQTNDLFdBQVc7dUJBQUMsZUFBZTtnQkFNakIsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBU25CLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsdUJBQXVCO2dCQVN6QixLQUFLO3NCQURmLFdBQVc7dUJBQUMsbUJBQW1CO2dCQVNyQixTQUFTO3NCQURuQixXQUFXO3VCQUFDLHNCQUFzQjs7QUFhdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUo3QjtRQU1JOzs7Ozs7Ozs7Ozs7V0FZRztRQUMwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXRDOzs7Ozs7Ozs7Ozs7V0FZRztRQUM0QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRTFDOzs7Ozs7OztXQVFHO1FBQ3NCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFbkM7Ozs7Ozs7Ozs7OztXQVlHO1FBQzJCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFFeEM7Ozs7Ozs7Ozs7V0FVRztRQUMyQixVQUFLLEdBQUcsTUFBTSxDQUFDO0tBb0JoRDtJQWxCRzs7T0FFRztJQUNILElBQ1csS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO21IQXhGUSxnQkFBZ0I7dUdBQWhCLGdCQUFnQjs7Z0dBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQWdCZ0MsSUFBSTtzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQWVXLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFXRyxJQUFJO3NCQUE1QixLQUFLO3VCQUFDLFNBQVM7Z0JBZWMsS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQWFTLEtBQUs7c0JBQWxDLEtBQUs7dUJBQUMsY0FBYztnQkFNVixLQUFLO3NCQURmLFdBQVc7dUJBQUMsWUFBWTtnQkFZZCxTQUFTO3NCQURuQixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hMYXlvdXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneExheW91dERpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGVmYXVsdCBmbG93IGRpcmVjdGlvbiBvZiB0aGUgY29udGFpbmVyJ3MgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgcm93c2AuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwicm93XCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0RGlyJykgcHVibGljIGRpciA9ICdyb3cnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgZGlyZWN0aW9uIGZsZXggY2hpbGRyZW4gYXJlIHBsYWNlZCBpbiB0aGUgZmxleCBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBgcm93c2AgZGlyZWN0aW9uIGdvZXMgcmlnaHQgdG8gbGVmdCBhbmQgYGNvbHVtbnNgIGdvZXMgYm90dG9tIHRvIHRvcC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dFJldmVyc2U9XCJ0cnVlXCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdpZ3hMYXlvdXRSZXZlcnNlJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHB1YmxpYyByZXZlcnNlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBpbW1lZGlhdGUgY2hpbGRyZW4gd2lsbCBhbGwgdHJ5IHRvIGZpdCBvbnRvIG9uZSBsaW5lLlxuICAgICAqXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgYG5vd3JhcGAgc2V0cyB0aGlzIGJlaGF2aW9yLlxuICAgICAqXG4gICAgICogT3RoZXIgYWNjZXB0ZWQgdmFsdWVzIGFyZSBgd3JhcGAgYW5kIGB3cmFwLXJldmVyc2VgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwicm93XCJcbiAgICAgKiAgIGlneExheW91dFdyYXA9XCJ3cmFwXCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXRXcmFwJykgcHVibGljIHdyYXAgPSAnbm93cmFwJztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBhbG9uZyB0aGUgbWFpbiBheGlzLlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gYGZsZXgtc3RhcnRgIHdoaWNoIHBhY2tzIHRoZSBjaGlsZHJlbiB0b3dhcmQgdGhlIHN0YXJ0IGxpbmUuXG4gICAgICpcbiAgICAgKiBPdGhlciBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBmbGV4LWVuZGAsIGBjZW50ZXJgLCBgc3BhY2UtYmV0d2VlbmAsIGBzcGFjZS1hcm91bmRgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwiY29sdW1uXCJcbiAgICAgKiAgIGlneExheW91dEp1c3RpZnk9XCJzcGFjZS1iZXR3ZWVuXCI+XG4gICAgICogICAgPGRpdj4xPC9kaXY+XG4gICAgICogICAgPGRpdj4yPC9kaXY+XG4gICAgICogICAgPGRpdj4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXRKdXN0aWZ5JykgcHVibGljIGp1c3RpZnkgPSAnZmxleC1zdGFydCc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBob3cgY2hpbGRyZW4gYXJlIGxhaWQgb3V0IGFsb25nIHRoZSBjb3JzcyBheGlzIG9mIHRoZSBjdXJyZW50IGxpbmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgZmxleC1zdGFydGAuXG4gICAgICpcbiAgICAgKiBPdGhlciBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBmbGV4LWVuZGAsIGBjZW50ZXJgLCBgYmFzZWxpbmVgLCBhbmQgYHN0cmV0Y2hgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwiY29sdW1uXCJcbiAgICAgKiAgIGlneExheW91dEl0ZW1BbGlnbj1cInN0YXJ0XCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXRJdGVtQWxpZ24nKSBwdWJsaWMgaXRlbUFsaWduID0gJ3N0cmV0Y2gnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpIHB1YmxpYyBkaXNwbGF5ID0gJ2ZsZXgnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZmxleC13cmFwJylcbiAgICBwdWJsaWMgZ2V0IGZsZXh3cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53cmFwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmp1c3RpZnktY29udGVudCcpXG4gICAgcHVibGljIGdldCBqdXN0aWZ5Y29udGVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuanVzdGlmeTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5hbGlnbi1pdGVtcycpXG4gICAgcHVibGljIGdldCBhbGlnbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbUFsaWduO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJylcbiAgICBwdWJsaWMgZ2V0IGRpcmVjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucmV2ZXJzZSkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmRpciA9PT0gJ3JvdycpID8gJ3Jvdy1yZXZlcnNlJyA6ICdjb2x1bW4tcmV2ZXJzZSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0aGlzLmRpciA9PT0gJ3JvdycpID8gJ3JvdycgOiAnY29sdW1uJztcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEZsZXhdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEZsZXhEaXJlY3RpdmUge1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgYGdyb3dgIGF0dHJpYnV0ZSB0byBhbiBlbGVtZW50IHRoYXQgdXNlcyB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgMWAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+Q29udGVudDE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIxXCI+Q29udGVudDI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+Q29udGVudDM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXhHcm93JykgcHVibGljIGdyb3cgPSAxO1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgYHNocmlua2AgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGAxYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4U2hyaW5rPVwiMVwiPkNvbnRlbnQxPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhTaHJpbms9XCIwXCI+Q29udGVudDI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleFNocmluaz1cIjFcIj5Db250ZW50MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleFNocmluaycpIHB1YmxpYyBzaHJpbmsgPSAxO1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgZGlyZWN0aXZlIHRvIGFuIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZSBgaWd4RmxleEdyb3dgLCBgaWd4RmxleFNocmlua2AsIGBpZ3hGbGV4T3JkZXJgLCBgaWd4RmxleEJhc2lzYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2IGlneEZsZXg+Q29udGVudDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleCcpIHB1YmxpYyBmbGV4ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgb3JkZXJgIGF0dHJpYnV0ZSB0byBhbiBlbGVtZW50IHRoYXQgdXNlcyB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgMGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleE9yZGVyPVwiMVwiPkNvbnRlbnQxPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhPcmRlcj1cIjBcIj5Db250ZW50MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4T3JkZXI9XCIyXCI+Q29udGVudDM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXhPcmRlcicpIHB1YmxpYyBvcmRlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgZmxleC1iYXNpc2AgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBhdXRvYC5cbiAgICAgKlxuICAgICAqIE90aGVyIHBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlIGBjb250ZW50YCwgYG1heC1jb250ZW50YCwgYG1pbi1jb250ZW50YCwgYGZpdC1jb250ZW50YC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2IGlneEZsZXggaWd4RmxleEJhc2lzPVwiZml0LWNvbnRlbnRcIj5Db250ZW50PC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4QmFzaXMnKSBwdWJsaWMgYmFzaXMgPSAnYXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4JylcbiAgICBwdWJsaWMgZ2V0IHN0eWxlKCkge1xuICAgICAgICBpZiAodGhpcy5mbGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5mbGV4fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3Jvd30gJHt0aGlzLnNocmlua30gJHt0aGlzLmJhc2lzfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUub3JkZXInKVxuICAgIHB1YmxpYyBnZXQgaXRlbW9yZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlciB8fCAwO1xuICAgIH1cbn1cbiJdfQ==
@@ -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 IgxLayoutModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutModule, imports: [IgxFlexDirective, IgxLayoutDirective], exports: [IgxFlexDirective, IgxLayoutDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutModule }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutModule, imports: [IgxFlexDirective, IgxLayoutDirective], exports: [IgxFlexDirective, IgxLayoutDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutModule }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: IgxLayoutModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxLayoutModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [IgxFlexDirective, IgxLayoutDirective],
@@ -143,10 +143,10 @@ export class MaskParsingService {
143
143
  '6': '6', '7': '7', '8': '8', '9': '9', '0': '0'
144
144
  }[num]));
145
145
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: MaskParsingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
147
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: MaskParsingService, providedIn: 'root' }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: MaskParsingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
147
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: MaskParsingService, providedIn: 'root' }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: MaskParsingService, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: MaskParsingService, decorators: [{
150
150
  type: Injectable,
151
151
  args: [{
152
152
  providedIn: 'root'