@angular/material-experimental 14.2.2 → 15.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/_index.scss +0 -69
  2. package/column-resize/index.d.ts +7 -7
  3. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  4. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
  5. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +4 -4
  6. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +4 -4
  7. package/esm2020/column-resize/column-resize-module.mjs +13 -13
  8. package/esm2020/column-resize/overlay-handle.mjs +4 -4
  9. package/esm2020/column-resize/resizable-directives/default-enabled-resizable.mjs +4 -4
  10. package/esm2020/column-resize/resizable-directives/resizable.mjs +4 -4
  11. package/esm2020/column-resize/resize-strategy.mjs +4 -4
  12. package/esm2020/menubar/menubar-item.mjs +4 -4
  13. package/esm2020/menubar/menubar-module.mjs +5 -5
  14. package/esm2020/menubar/menubar.mjs +4 -4
  15. package/esm2020/popover-edit/lens-directives.mjs +10 -10
  16. package/esm2020/popover-edit/popover-edit-module.mjs +5 -5
  17. package/esm2020/popover-edit/table-directives.mjs +13 -13
  18. package/esm2020/selection/row-selection.mjs +4 -4
  19. package/esm2020/selection/select-all.mjs +4 -4
  20. package/esm2020/selection/selection-column.mjs +12 -12
  21. package/esm2020/selection/selection-module.mjs +8 -8
  22. package/esm2020/selection/selection-toggle.mjs +4 -4
  23. package/esm2020/selection/selection.mjs +4 -4
  24. package/esm2020/version.mjs +1 -1
  25. package/fesm2015/column-resize.mjs +36 -36
  26. package/fesm2015/column-resize.mjs.map +1 -1
  27. package/fesm2015/material-experimental.mjs +1 -1
  28. package/fesm2015/material-experimental.mjs.map +1 -1
  29. package/fesm2015/menubar.mjs +10 -10
  30. package/fesm2015/menubar.mjs.map +1 -1
  31. package/fesm2015/popover-edit.mjs +25 -25
  32. package/fesm2015/popover-edit.mjs.map +1 -1
  33. package/fesm2015/selection.mjs +29 -29
  34. package/fesm2015/selection.mjs.map +1 -1
  35. package/fesm2020/column-resize.mjs +36 -36
  36. package/fesm2020/column-resize.mjs.map +1 -1
  37. package/fesm2020/material-experimental.mjs +1 -1
  38. package/fesm2020/material-experimental.mjs.map +1 -1
  39. package/fesm2020/menubar.mjs +10 -10
  40. package/fesm2020/menubar.mjs.map +1 -1
  41. package/fesm2020/popover-edit.mjs +25 -25
  42. package/fesm2020/popover-edit.mjs.map +1 -1
  43. package/fesm2020/selection.mjs +29 -29
  44. package/fesm2020/selection.mjs.map +1 -1
  45. package/menubar/index.d.ts +2 -2
  46. package/package.json +55 -422
  47. package/popover-edit/index.d.ts +7 -7
  48. package/selection/index.d.ts +9 -9
  49. package/esm2020/mdc-autocomplete/animations.mjs +0 -25
  50. package/esm2020/mdc-autocomplete/autocomplete-origin.mjs +0 -26
  51. package/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +0 -54
  52. package/esm2020/mdc-autocomplete/autocomplete.mjs +0 -35
  53. package/esm2020/mdc-autocomplete/index.mjs +0 -9
  54. package/esm2020/mdc-autocomplete/mdc-autocomplete_public_index.mjs +0 -5
  55. package/esm2020/mdc-autocomplete/module.mjs +0 -46
  56. package/esm2020/mdc-autocomplete/public-api.mjs +0 -14
  57. package/esm2020/mdc-autocomplete/testing/autocomplete-harness-filters.mjs +0 -9
  58. package/esm2020/mdc-autocomplete/testing/autocomplete-harness.mjs +0 -31
  59. package/esm2020/mdc-autocomplete/testing/index.mjs +0 -9
  60. package/esm2020/mdc-autocomplete/testing/public-api.mjs +0 -10
  61. package/esm2020/mdc-button/button-base.mjs +0 -152
  62. package/esm2020/mdc-button/button.mjs +0 -69
  63. package/esm2020/mdc-button/fab.mjs +0 -175
  64. package/esm2020/mdc-button/icon-button.mjs +0 -57
  65. package/esm2020/mdc-button/index.mjs +0 -9
  66. package/esm2020/mdc-button/mdc-button_public_index.mjs +0 -5
  67. package/esm2020/mdc-button/module.mjs +0 -61
  68. package/esm2020/mdc-button/public-api.mjs +0 -12
  69. package/esm2020/mdc-button/testing/button-harness.mjs +0 -50
  70. package/esm2020/mdc-button/testing/index.mjs +0 -9
  71. package/esm2020/mdc-button/testing/public-api.mjs +0 -9
  72. package/esm2020/mdc-card/card.mjs +0 -261
  73. package/esm2020/mdc-card/index.mjs +0 -9
  74. package/esm2020/mdc-card/mdc-card_public_index.mjs +0 -5
  75. package/esm2020/mdc-card/module.mjs +0 -68
  76. package/esm2020/mdc-card/public-api.mjs +0 -10
  77. package/esm2020/mdc-card/testing/card-harness-filters.mjs +0 -9
  78. package/esm2020/mdc-card/testing/card-harness.mjs +0 -42
  79. package/esm2020/mdc-card/testing/index.mjs +0 -9
  80. package/esm2020/mdc-card/testing/public-api.mjs +0 -10
  81. package/esm2020/mdc-checkbox/checkbox.mjs +0 -93
  82. package/esm2020/mdc-checkbox/index.mjs +0 -9
  83. package/esm2020/mdc-checkbox/mdc-checkbox_public_index.mjs +0 -5
  84. package/esm2020/mdc-checkbox/module.mjs +0 -26
  85. package/esm2020/mdc-checkbox/public-api.mjs +0 -11
  86. package/esm2020/mdc-checkbox/testing/checkbox-harness.mjs +0 -41
  87. package/esm2020/mdc-checkbox/testing/index.mjs +0 -9
  88. package/esm2020/mdc-checkbox/testing/public-api.mjs +0 -9
  89. package/esm2020/mdc-chips/chip-action.mjs +0 -90
  90. package/esm2020/mdc-chips/chip-edit-input.mjs +0 -60
  91. package/esm2020/mdc-chips/chip-grid.mjs +0 -407
  92. package/esm2020/mdc-chips/chip-icons.mjs +0 -110
  93. package/esm2020/mdc-chips/chip-input.mjs +0 -212
  94. package/esm2020/mdc-chips/chip-listbox.mjs +0 -332
  95. package/esm2020/mdc-chips/chip-option.mjs +0 -160
  96. package/esm2020/mdc-chips/chip-row.mjs +0 -176
  97. package/esm2020/mdc-chips/chip-set.mjs +0 -271
  98. package/esm2020/mdc-chips/chip-text-control.mjs +0 -9
  99. package/esm2020/mdc-chips/chip.mjs +0 -287
  100. package/esm2020/mdc-chips/index.mjs +0 -9
  101. package/esm2020/mdc-chips/mdc-chips_public_index.mjs +0 -5
  102. package/esm2020/mdc-chips/module.mjs +0 -87
  103. package/esm2020/mdc-chips/public-api.mjs +0 -20
  104. package/esm2020/mdc-chips/testing/chip-avatar-harness.mjs +0 -22
  105. package/esm2020/mdc-chips/testing/chip-grid-harness.mjs +0 -43
  106. package/esm2020/mdc-chips/testing/chip-harness-filters.mjs +0 -9
  107. package/esm2020/mdc-chips/testing/chip-harness.mjs +0 -58
  108. package/esm2020/mdc-chips/testing/chip-input-harness.mjs +0 -82
  109. package/esm2020/mdc-chips/testing/chip-listbox-harness.mjs +0 -59
  110. package/esm2020/mdc-chips/testing/chip-option-harness.mjs +0 -45
  111. package/esm2020/mdc-chips/testing/chip-remove-harness.mjs +0 -26
  112. package/esm2020/mdc-chips/testing/chip-row-harness.mjs +0 -22
  113. package/esm2020/mdc-chips/testing/chip-set-harness.mjs +0 -26
  114. package/esm2020/mdc-chips/testing/index.mjs +0 -9
  115. package/esm2020/mdc-chips/testing/public-api.mjs +0 -18
  116. package/esm2020/mdc-chips/tokens.mjs +0 -33
  117. package/esm2020/mdc-core/index.mjs +0 -9
  118. package/esm2020/mdc-core/mdc-core_public_index.mjs +0 -5
  119. package/esm2020/mdc-core/option/index.mjs +0 -30
  120. package/esm2020/mdc-core/option/optgroup.mjs +0 -46
  121. package/esm2020/mdc-core/option/option.mjs +0 -52
  122. package/esm2020/mdc-core/public-api.mjs +0 -10
  123. package/esm2020/mdc-core/testing/index.mjs +0 -9
  124. package/esm2020/mdc-core/testing/optgroup-harness-filters.mjs +0 -9
  125. package/esm2020/mdc-core/testing/optgroup-harness.mjs +0 -43
  126. package/esm2020/mdc-core/testing/option-harness-filters.mjs +0 -9
  127. package/esm2020/mdc-core/testing/option-harness.mjs +0 -53
  128. package/esm2020/mdc-core/testing/public-api.mjs +0 -12
  129. package/esm2020/mdc-dialog/dialog-container.mjs +0 -171
  130. package/esm2020/mdc-dialog/dialog-content-directives.mjs +0 -179
  131. package/esm2020/mdc-dialog/dialog-ref.mjs +0 -14
  132. package/esm2020/mdc-dialog/dialog.mjs +0 -82
  133. package/esm2020/mdc-dialog/index.mjs +0 -9
  134. package/esm2020/mdc-dialog/mdc-dialog_public_index.mjs +0 -5
  135. package/esm2020/mdc-dialog/module.mjs +0 -53
  136. package/esm2020/mdc-dialog/public-api.mjs +0 -14
  137. package/esm2020/mdc-dialog/testing/dialog-harness.mjs +0 -29
  138. package/esm2020/mdc-dialog/testing/dialog-opener.mjs +0 -45
  139. package/esm2020/mdc-dialog/testing/index.mjs +0 -9
  140. package/esm2020/mdc-dialog/testing/public-api.mjs +0 -10
  141. package/esm2020/mdc-form-field/directives/error.mjs +0 -47
  142. package/esm2020/mdc-form-field/directives/floating-label.mjs +0 -73
  143. package/esm2020/mdc-form-field/directives/hint.mjs +0 -39
  144. package/esm2020/mdc-form-field/directives/label.mjs +0 -21
  145. package/esm2020/mdc-form-field/directives/line-ripple.mjs +0 -59
  146. package/esm2020/mdc-form-field/directives/notched-outline.mjs +0 -68
  147. package/esm2020/mdc-form-field/directives/prefix.mjs +0 -32
  148. package/esm2020/mdc-form-field/directives/suffix.mjs +0 -32
  149. package/esm2020/mdc-form-field/form-field.mjs +0 -608
  150. package/esm2020/mdc-form-field/index.mjs +0 -9
  151. package/esm2020/mdc-form-field/mdc-form-field_public_index.mjs +0 -5
  152. package/esm2020/mdc-form-field/module.mjs +0 -53
  153. package/esm2020/mdc-form-field/public-api.mjs +0 -16
  154. package/esm2020/mdc-form-field/testing/form-field-harness.mjs +0 -58
  155. package/esm2020/mdc-form-field/testing/index.mjs +0 -9
  156. package/esm2020/mdc-form-field/testing/public-api.mjs +0 -13
  157. package/esm2020/mdc-input/index.mjs +0 -9
  158. package/esm2020/mdc-input/input.mjs +0 -55
  159. package/esm2020/mdc-input/mdc-input_public_index.mjs +0 -5
  160. package/esm2020/mdc-input/module.mjs +0 -27
  161. package/esm2020/mdc-input/public-api.mjs +0 -11
  162. package/esm2020/mdc-input/testing/index.mjs +0 -9
  163. package/esm2020/mdc-input/testing/public-api.mjs +0 -9
  164. package/esm2020/mdc-list/action-list.mjs +0 -31
  165. package/esm2020/mdc-list/index.mjs +0 -9
  166. package/esm2020/mdc-list/list-base.mjs +0 -272
  167. package/esm2020/mdc-list/list-item-sections.mjs +0 -138
  168. package/esm2020/mdc-list/list-option-types.mjs +0 -16
  169. package/esm2020/mdc-list/list-option.mjs +0 -253
  170. package/esm2020/mdc-list/list.mjs +0 -82
  171. package/esm2020/mdc-list/mdc-list_public_index.mjs +0 -5
  172. package/esm2020/mdc-list/module.mjs +0 -98
  173. package/esm2020/mdc-list/nav-list.mjs +0 -31
  174. package/esm2020/mdc-list/public-api.mjs +0 -18
  175. package/esm2020/mdc-list/selection-list.mjs +0 -338
  176. package/esm2020/mdc-list/subheader.mjs +0 -27
  177. package/esm2020/mdc-list/testing/action-list-harness.mjs +0 -59
  178. package/esm2020/mdc-list/testing/index.mjs +0 -9
  179. package/esm2020/mdc-list/testing/list-harness-base.mjs +0 -95
  180. package/esm2020/mdc-list/testing/list-harness-filters.mjs +0 -9
  181. package/esm2020/mdc-list/testing/list-harness.mjs +0 -41
  182. package/esm2020/mdc-list/testing/list-item-harness-base.mjs +0 -150
  183. package/esm2020/mdc-list/testing/nav-list-harness.mjs +0 -69
  184. package/esm2020/mdc-list/testing/public-api.mjs +0 -14
  185. package/esm2020/mdc-list/testing/selection-list-harness.mjs +0 -117
  186. package/esm2020/mdc-menu/directives.mjs +0 -38
  187. package/esm2020/mdc-menu/index.mjs +0 -9
  188. package/esm2020/mdc-menu/mdc-menu_public_index.mjs +0 -5
  189. package/esm2020/mdc-menu/menu-item.mjs +0 -36
  190. package/esm2020/mdc-menu/menu.mjs +0 -43
  191. package/esm2020/mdc-menu/module.mjs +0 -44
  192. package/esm2020/mdc-menu/public-api.mjs +0 -13
  193. package/esm2020/mdc-menu/testing/index.mjs +0 -9
  194. package/esm2020/mdc-menu/testing/menu-harness.mjs +0 -46
  195. package/esm2020/mdc-menu/testing/public-api.mjs +0 -9
  196. package/esm2020/mdc-paginator/index.mjs +0 -9
  197. package/esm2020/mdc-paginator/mdc-paginator_public_index.mjs +0 -5
  198. package/esm2020/mdc-paginator/module.mjs +0 -30
  199. package/esm2020/mdc-paginator/paginator.mjs +0 -48
  200. package/esm2020/mdc-paginator/public-api.mjs +0 -11
  201. package/esm2020/mdc-paginator/testing/index.mjs +0 -9
  202. package/esm2020/mdc-paginator/testing/paginator-harness.mjs +0 -36
  203. package/esm2020/mdc-paginator/testing/public-api.mjs +0 -9
  204. package/esm2020/mdc-progress-bar/index.mjs +0 -9
  205. package/esm2020/mdc-progress-bar/mdc-progress-bar_public_index.mjs +0 -5
  206. package/esm2020/mdc-progress-bar/module.mjs +0 -24
  207. package/esm2020/mdc-progress-bar/progress-bar.mjs +0 -152
  208. package/esm2020/mdc-progress-bar/public-api.mjs +0 -11
  209. package/esm2020/mdc-progress-bar/testing/index.mjs +0 -9
  210. package/esm2020/mdc-progress-bar/testing/progress-bar-harness.mjs +0 -33
  211. package/esm2020/mdc-progress-bar/testing/public-api.mjs +0 -9
  212. package/esm2020/mdc-progress-bar/testing/testing_public_index.mjs +0 -5
  213. package/esm2020/mdc-progress-spinner/index.mjs +0 -9
  214. package/esm2020/mdc-progress-spinner/mdc-progress-spinner_public_index.mjs +0 -5
  215. package/esm2020/mdc-progress-spinner/module.mjs +0 -26
  216. package/esm2020/mdc-progress-spinner/progress-spinner.mjs +0 -151
  217. package/esm2020/mdc-progress-spinner/public-api.mjs +0 -11
  218. package/esm2020/mdc-progress-spinner/testing/index.mjs +0 -9
  219. package/esm2020/mdc-progress-spinner/testing/progress-spinner-harness.mjs +0 -35
  220. package/esm2020/mdc-progress-spinner/testing/public-api.mjs +0 -9
  221. package/esm2020/mdc-progress-spinner/testing/testing_public_index.mjs +0 -5
  222. package/esm2020/mdc-radio/index.mjs +0 -9
  223. package/esm2020/mdc-radio/mdc-radio_public_index.mjs +0 -5
  224. package/esm2020/mdc-radio/module.mjs +0 -26
  225. package/esm2020/mdc-radio/public-api.mjs +0 -11
  226. package/esm2020/mdc-radio/radio.mjs +0 -111
  227. package/esm2020/mdc-radio/testing/index.mjs +0 -9
  228. package/esm2020/mdc-radio/testing/public-api.mjs +0 -9
  229. package/esm2020/mdc-radio/testing/radio-harness.mjs +0 -50
  230. package/esm2020/mdc-select/index.mjs +0 -9
  231. package/esm2020/mdc-select/mdc-select_public_index.mjs +0 -5
  232. package/esm2020/mdc-select/module.mjs +0 -46
  233. package/esm2020/mdc-select/public-api.mjs +0 -12
  234. package/esm2020/mdc-select/select-animations.mjs +0 -38
  235. package/esm2020/mdc-select/select-errors.mjs +0 -35
  236. package/esm2020/mdc-select/select.mjs +0 -172
  237. package/esm2020/mdc-select/testing/index.mjs +0 -9
  238. package/esm2020/mdc-select/testing/public-api.mjs +0 -10
  239. package/esm2020/mdc-select/testing/select-harness-filters.mjs +0 -9
  240. package/esm2020/mdc-select/testing/select-harness.mjs +0 -29
  241. package/esm2020/mdc-slide-toggle/index.mjs +0 -9
  242. package/esm2020/mdc-slide-toggle/mdc-slide-toggle_public_index.mjs +0 -5
  243. package/esm2020/mdc-slide-toggle/module.mjs +0 -27
  244. package/esm2020/mdc-slide-toggle/public-api.mjs +0 -12
  245. package/esm2020/mdc-slide-toggle/slide-toggle-config.mjs +0 -14
  246. package/esm2020/mdc-slide-toggle/slide-toggle.mjs +0 -99
  247. package/esm2020/mdc-slide-toggle/testing/index.mjs +0 -9
  248. package/esm2020/mdc-slide-toggle/testing/public-api.mjs +0 -9
  249. package/esm2020/mdc-slide-toggle/testing/slide-toggle-harness.mjs +0 -47
  250. package/esm2020/mdc-slider/global-change-and-input-listener.mjs +0 -59
  251. package/esm2020/mdc-slider/index.mjs +0 -9
  252. package/esm2020/mdc-slider/mdc-slider_public_index.mjs +0 -5
  253. package/esm2020/mdc-slider/module.mjs +0 -26
  254. package/esm2020/mdc-slider/public-api.mjs +0 -10
  255. package/esm2020/mdc-slider/slider.mjs +0 -1094
  256. package/esm2020/mdc-slider/testing/index.mjs +0 -9
  257. package/esm2020/mdc-slider/testing/public-api.mjs +0 -11
  258. package/esm2020/mdc-slider/testing/slider-harness-filters.mjs +0 -2
  259. package/esm2020/mdc-slider/testing/slider-harness.mjs +0 -62
  260. package/esm2020/mdc-slider/testing/slider-thumb-harness.mjs +0 -94
  261. package/esm2020/mdc-snack-bar/index.mjs +0 -9
  262. package/esm2020/mdc-snack-bar/mdc-snack-bar_public_index.mjs +0 -5
  263. package/esm2020/mdc-snack-bar/module.mjs +0 -51
  264. package/esm2020/mdc-snack-bar/public-api.mjs +0 -14
  265. package/esm2020/mdc-snack-bar/simple-snack-bar.mjs +0 -40
  266. package/esm2020/mdc-snack-bar/snack-bar-container.mjs +0 -41
  267. package/esm2020/mdc-snack-bar/snack-bar-content.mjs +0 -52
  268. package/esm2020/mdc-snack-bar/snack-bar.mjs +0 -45
  269. package/esm2020/mdc-snack-bar/testing/index.mjs +0 -9
  270. package/esm2020/mdc-snack-bar/testing/public-api.mjs +0 -9
  271. package/esm2020/mdc-snack-bar/testing/snack-bar-harness.mjs +0 -34
  272. package/esm2020/mdc-table/cell.mjs +0 -141
  273. package/esm2020/mdc-table/index.mjs +0 -9
  274. package/esm2020/mdc-table/mdc-table_public_index.mjs +0 -5
  275. package/esm2020/mdc-table/module.mjs +0 -94
  276. package/esm2020/mdc-table/public-api.mjs +0 -14
  277. package/esm2020/mdc-table/row.mjs +0 -143
  278. package/esm2020/mdc-table/table-data-source.mjs +0 -24
  279. package/esm2020/mdc-table/table.mjs +0 -74
  280. package/esm2020/mdc-table/testing/cell-harness.mjs +0 -50
  281. package/esm2020/mdc-table/testing/index.mjs +0 -9
  282. package/esm2020/mdc-table/testing/public-api.mjs +0 -11
  283. package/esm2020/mdc-table/testing/row-harness.mjs +0 -64
  284. package/esm2020/mdc-table/testing/table-harness.mjs +0 -30
  285. package/esm2020/mdc-table/text-column.mjs +0 -58
  286. package/esm2020/mdc-tabs/index.mjs +0 -9
  287. package/esm2020/mdc-tabs/ink-bar.mjs +0 -130
  288. package/esm2020/mdc-tabs/mdc-tabs_public_index.mjs +0 -5
  289. package/esm2020/mdc-tabs/module.mjs +0 -93
  290. package/esm2020/mdc-tabs/public-api.mjs +0 -19
  291. package/esm2020/mdc-tabs/tab-body.mjs +0 -60
  292. package/esm2020/mdc-tabs/tab-content.mjs +0 -20
  293. package/esm2020/mdc-tabs/tab-group.mjs +0 -98
  294. package/esm2020/mdc-tabs/tab-header.mjs +0 -73
  295. package/esm2020/mdc-tabs/tab-label-wrapper.mjs +0 -32
  296. package/esm2020/mdc-tabs/tab-label.mjs +0 -22
  297. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +0 -202
  298. package/esm2020/mdc-tabs/tab.mjs +0 -34
  299. package/esm2020/mdc-tabs/testing/index.mjs +0 -9
  300. package/esm2020/mdc-tabs/testing/public-api.mjs +0 -13
  301. package/esm2020/mdc-tabs/testing/tab-group-harness.mjs +0 -56
  302. package/esm2020/mdc-tabs/testing/tab-harness-filters.mjs +0 -2
  303. package/esm2020/mdc-tabs/testing/tab-harness.mjs +0 -64
  304. package/esm2020/mdc-tabs/testing/tab-link-harness.mjs +0 -40
  305. package/esm2020/mdc-tabs/testing/tab-nav-bar-harness.mjs +0 -66
  306. package/esm2020/mdc-tabs/testing/tab-nav-panel-harness.mjs +0 -27
  307. package/esm2020/mdc-tooltip/index.mjs +0 -9
  308. package/esm2020/mdc-tooltip/mdc-tooltip_public_index.mjs +0 -5
  309. package/esm2020/mdc-tooltip/module.mjs +0 -31
  310. package/esm2020/mdc-tooltip/public-api.mjs +0 -12
  311. package/esm2020/mdc-tooltip/testing/index.mjs +0 -9
  312. package/esm2020/mdc-tooltip/testing/public-api.mjs +0 -9
  313. package/esm2020/mdc-tooltip/testing/tooltip-harness.mjs +0 -30
  314. package/esm2020/mdc-tooltip/tooltip-animations.mjs +0 -24
  315. package/esm2020/mdc-tooltip/tooltip.mjs +0 -132
  316. package/fesm2015/mdc-autocomplete/testing.mjs +0 -50
  317. package/fesm2015/mdc-autocomplete/testing.mjs.map +0 -1
  318. package/fesm2015/mdc-autocomplete.mjs +0 -196
  319. package/fesm2015/mdc-autocomplete.mjs.map +0 -1
  320. package/fesm2015/mdc-button/testing.mjs +0 -75
  321. package/fesm2015/mdc-button/testing.mjs.map +0 -1
  322. package/fesm2015/mdc-button.mjs +0 -490
  323. package/fesm2015/mdc-button.mjs.map +0 -1
  324. package/fesm2015/mdc-card/testing.mjs +0 -63
  325. package/fesm2015/mdc-card/testing.mjs.map +0 -1
  326. package/fesm2015/mdc-card.mjs +0 -351
  327. package/fesm2015/mdc-card.mjs.map +0 -1
  328. package/fesm2015/mdc-checkbox/testing.mjs +0 -56
  329. package/fesm2015/mdc-checkbox/testing.mjs.map +0 -1
  330. package/fesm2015/mdc-checkbox.mjs +0 -142
  331. package/fesm2015/mdc-checkbox.mjs.map +0 -1
  332. package/fesm2015/mdc-chips/testing.mjs +0 -394
  333. package/fesm2015/mdc-chips/testing.mjs.map +0 -1
  334. package/fesm2015/mdc-chips.mjs +0 -2169
  335. package/fesm2015/mdc-chips.mjs.map +0 -1
  336. package/fesm2015/mdc-core/testing.mjs +0 -118
  337. package/fesm2015/mdc-core/testing.mjs.map +0 -1
  338. package/fesm2015/mdc-core.mjs +0 -141
  339. package/fesm2015/mdc-core.mjs.map +0 -1
  340. package/fesm2015/mdc-dialog/testing.mjs +0 -90
  341. package/fesm2015/mdc-dialog/testing.mjs.map +0 -1
  342. package/fesm2015/mdc-dialog.mjs +0 -500
  343. package/fesm2015/mdc-dialog.mjs.map +0 -1
  344. package/fesm2015/mdc-form-field/testing.mjs +0 -78
  345. package/fesm2015/mdc-form-field/testing.mjs.map +0 -1
  346. package/fesm2015/mdc-form-field.mjs +0 -1018
  347. package/fesm2015/mdc-form-field.mjs.map +0 -1
  348. package/fesm2015/mdc-input/testing.mjs +0 -18
  349. package/fesm2015/mdc-input/testing.mjs.map +0 -1
  350. package/fesm2015/mdc-input.mjs +0 -103
  351. package/fesm2015/mdc-input.mjs.map +0 -1
  352. package/fesm2015/mdc-list/testing.mjs +0 -574
  353. package/fesm2015/mdc-list/testing.mjs.map +0 -1
  354. package/fesm2015/mdc-list.mjs +0 -1264
  355. package/fesm2015/mdc-list.mjs.map +0 -1
  356. package/fesm2015/mdc-menu/testing.mjs +0 -59
  357. package/fesm2015/mdc-menu/testing.mjs.map +0 -1
  358. package/fesm2015/mdc-menu.mjs +0 -174
  359. package/fesm2015/mdc-menu.mjs.map +0 -1
  360. package/fesm2015/mdc-paginator/testing.mjs +0 -55
  361. package/fesm2015/mdc-paginator/testing.mjs.map +0 -1
  362. package/fesm2015/mdc-paginator.mjs +0 -100
  363. package/fesm2015/mdc-paginator.mjs.map +0 -1
  364. package/fesm2015/mdc-progress-bar/testing.mjs +0 -54
  365. package/fesm2015/mdc-progress-bar/testing.mjs.map +0 -1
  366. package/fesm2015/mdc-progress-bar.mjs +0 -198
  367. package/fesm2015/mdc-progress-bar.mjs.map +0 -1
  368. package/fesm2015/mdc-progress-spinner/testing.mjs +0 -56
  369. package/fesm2015/mdc-progress-spinner/testing.mjs.map +0 -1
  370. package/fesm2015/mdc-progress-spinner.mjs +0 -200
  371. package/fesm2015/mdc-progress-spinner.mjs.map +0 -1
  372. package/fesm2015/mdc-radio/testing.mjs +0 -63
  373. package/fesm2015/mdc-radio/testing.mjs.map +0 -1
  374. package/fesm2015/mdc-radio.mjs +0 -155
  375. package/fesm2015/mdc-radio.mjs.map +0 -1
  376. package/fesm2015/mdc-select/testing.mjs +0 -48
  377. package/fesm2015/mdc-select/testing.mjs.map +0 -1
  378. package/fesm2015/mdc-select.mjs +0 -273
  379. package/fesm2015/mdc-select.mjs.map +0 -1
  380. package/fesm2015/mdc-slide-toggle/testing.mjs +0 -66
  381. package/fesm2015/mdc-slide-toggle/testing.mjs.map +0 -1
  382. package/fesm2015/mdc-slide-toggle.mjs +0 -159
  383. package/fesm2015/mdc-slide-toggle.mjs.map +0 -1
  384. package/fesm2015/mdc-slider/testing.mjs +0 -199
  385. package/fesm2015/mdc-slider/testing.mjs.map +0 -1
  386. package/fesm2015/mdc-slider.mjs +0 -1212
  387. package/fesm2015/mdc-slider.mjs.map +0 -1
  388. package/fesm2015/mdc-snack-bar/testing.mjs +0 -49
  389. package/fesm2015/mdc-snack-bar/testing.mjs.map +0 -1
  390. package/fesm2015/mdc-snack-bar.mjs +0 -229
  391. package/fesm2015/mdc-snack-bar.mjs.map +0 -1
  392. package/fesm2015/mdc-table/testing.mjs +0 -158
  393. package/fesm2015/mdc-table/testing.mjs.map +0 -1
  394. package/fesm2015/mdc-table.mjs +0 -540
  395. package/fesm2015/mdc-table.mjs.map +0 -1
  396. package/fesm2015/mdc-tabs/testing.mjs +0 -273
  397. package/fesm2015/mdc-tabs/testing.mjs.map +0 -1
  398. package/fesm2015/mdc-tabs.mjs +0 -737
  399. package/fesm2015/mdc-tabs.mjs.map +0 -1
  400. package/fesm2015/mdc-tooltip/testing.mjs +0 -49
  401. package/fesm2015/mdc-tooltip/testing.mjs.map +0 -1
  402. package/fesm2015/mdc-tooltip.mjs +0 -206
  403. package/fesm2015/mdc-tooltip.mjs.map +0 -1
  404. package/fesm2020/mdc-autocomplete/testing.mjs +0 -58
  405. package/fesm2020/mdc-autocomplete/testing.mjs.map +0 -1
  406. package/fesm2020/mdc-autocomplete.mjs +0 -196
  407. package/fesm2020/mdc-autocomplete.mjs.map +0 -1
  408. package/fesm2020/mdc-button/testing.mjs +0 -69
  409. package/fesm2020/mdc-button/testing.mjs.map +0 -1
  410. package/fesm2020/mdc-button.mjs +0 -510
  411. package/fesm2020/mdc-button.mjs.map +0 -1
  412. package/fesm2020/mdc-card/testing.mjs +0 -69
  413. package/fesm2020/mdc-card/testing.mjs.map +0 -1
  414. package/fesm2020/mdc-card.mjs +0 -349
  415. package/fesm2020/mdc-card.mjs.map +0 -1
  416. package/fesm2020/mdc-checkbox/testing.mjs +0 -60
  417. package/fesm2020/mdc-checkbox/testing.mjs.map +0 -1
  418. package/fesm2020/mdc-checkbox.mjs +0 -139
  419. package/fesm2020/mdc-checkbox.mjs.map +0 -1
  420. package/fesm2020/mdc-chips/testing.mjs +0 -395
  421. package/fesm2020/mdc-chips/testing.mjs.map +0 -1
  422. package/fesm2020/mdc-chips.mjs +0 -2161
  423. package/fesm2020/mdc-chips.mjs.map +0 -1
  424. package/fesm2020/mdc-core/testing.mjs +0 -129
  425. package/fesm2020/mdc-core/testing.mjs.map +0 -1
  426. package/fesm2020/mdc-core.mjs +0 -139
  427. package/fesm2020/mdc-core.mjs.map +0 -1
  428. package/fesm2020/mdc-dialog/testing.mjs +0 -90
  429. package/fesm2020/mdc-dialog/testing.mjs.map +0 -1
  430. package/fesm2020/mdc-dialog.mjs +0 -499
  431. package/fesm2020/mdc-dialog.mjs.map +0 -1
  432. package/fesm2020/mdc-form-field/testing.mjs +0 -78
  433. package/fesm2020/mdc-form-field/testing.mjs.map +0 -1
  434. package/fesm2020/mdc-form-field.mjs +0 -1014
  435. package/fesm2020/mdc-form-field.mjs.map +0 -1
  436. package/fesm2020/mdc-input/testing.mjs +0 -18
  437. package/fesm2020/mdc-input/testing.mjs.map +0 -1
  438. package/fesm2020/mdc-input.mjs +0 -103
  439. package/fesm2020/mdc-input.mjs.map +0 -1
  440. package/fesm2020/mdc-list/testing.mjs +0 -544
  441. package/fesm2020/mdc-list/testing.mjs.map +0 -1
  442. package/fesm2020/mdc-list.mjs +0 -1260
  443. package/fesm2020/mdc-list.mjs.map +0 -1
  444. package/fesm2020/mdc-menu/testing.mjs +0 -65
  445. package/fesm2020/mdc-menu/testing.mjs.map +0 -1
  446. package/fesm2020/mdc-menu.mjs +0 -172
  447. package/fesm2020/mdc-menu.mjs.map +0 -1
  448. package/fesm2020/mdc-paginator/testing.mjs +0 -55
  449. package/fesm2020/mdc-paginator/testing.mjs.map +0 -1
  450. package/fesm2020/mdc-paginator.mjs +0 -98
  451. package/fesm2020/mdc-paginator.mjs.map +0 -1
  452. package/fesm2020/mdc-progress-bar/testing.mjs +0 -56
  453. package/fesm2020/mdc-progress-bar/testing.mjs.map +0 -1
  454. package/fesm2020/mdc-progress-bar.mjs +0 -196
  455. package/fesm2020/mdc-progress-bar.mjs.map +0 -1
  456. package/fesm2020/mdc-progress-spinner/testing.mjs +0 -58
  457. package/fesm2020/mdc-progress-spinner/testing.mjs.map +0 -1
  458. package/fesm2020/mdc-progress-spinner.mjs +0 -197
  459. package/fesm2020/mdc-progress-spinner.mjs.map +0 -1
  460. package/fesm2020/mdc-radio/testing.mjs +0 -69
  461. package/fesm2020/mdc-radio/testing.mjs.map +0 -1
  462. package/fesm2020/mdc-radio.mjs +0 -153
  463. package/fesm2020/mdc-radio.mjs.map +0 -1
  464. package/fesm2020/mdc-select/testing.mjs +0 -56
  465. package/fesm2020/mdc-select/testing.mjs.map +0 -1
  466. package/fesm2020/mdc-select.mjs +0 -273
  467. package/fesm2020/mdc-select.mjs.map +0 -1
  468. package/fesm2020/mdc-slide-toggle/testing.mjs +0 -66
  469. package/fesm2020/mdc-slide-toggle/testing.mjs.map +0 -1
  470. package/fesm2020/mdc-slide-toggle.mjs +0 -157
  471. package/fesm2020/mdc-slide-toggle.mjs.map +0 -1
  472. package/fesm2020/mdc-slider/testing.mjs +0 -172
  473. package/fesm2020/mdc-slider/testing.mjs.map +0 -1
  474. package/fesm2020/mdc-slider.mjs +0 -1191
  475. package/fesm2020/mdc-slider.mjs.map +0 -1
  476. package/fesm2020/mdc-snack-bar/testing.mjs +0 -53
  477. package/fesm2020/mdc-snack-bar/testing.mjs.map +0 -1
  478. package/fesm2020/mdc-snack-bar.mjs +0 -232
  479. package/fesm2020/mdc-snack-bar.mjs.map +0 -1
  480. package/fesm2020/mdc-table/testing.mjs +0 -158
  481. package/fesm2020/mdc-table/testing.mjs.map +0 -1
  482. package/fesm2020/mdc-table.mjs +0 -539
  483. package/fesm2020/mdc-table.mjs.map +0 -1
  484. package/fesm2020/mdc-tabs/testing.mjs +0 -265
  485. package/fesm2020/mdc-tabs/testing.mjs.map +0 -1
  486. package/fesm2020/mdc-tabs.mjs +0 -723
  487. package/fesm2020/mdc-tabs.mjs.map +0 -1
  488. package/fesm2020/mdc-tooltip/testing.mjs +0 -49
  489. package/fesm2020/mdc-tooltip/testing.mjs.map +0 -1
  490. package/fesm2020/mdc-tooltip.mjs +0 -202
  491. package/fesm2020/mdc-tooltip.mjs.map +0 -1
  492. package/mdc-autocomplete/_autocomplete-theme.import.scss +0 -5
  493. package/mdc-autocomplete/_autocomplete-theme.scss +0 -48
  494. package/mdc-autocomplete/index.d.ts +0 -97
  495. package/mdc-autocomplete/testing/index.d.ts +0 -32
  496. package/mdc-button/_button-base.import.scss +0 -4
  497. package/mdc-button/_button-base.scss +0 -95
  498. package/mdc-button/_button-theme-private.scss +0 -62
  499. package/mdc-button/_button-theme.import.scss +0 -16
  500. package/mdc-button/_button-theme.scss +0 -224
  501. package/mdc-button/_fab-theme.scss +0 -90
  502. package/mdc-button/_icon-button-theme.scss +0 -76
  503. package/mdc-button/index.d.ts +0 -216
  504. package/mdc-button/testing/index.d.ts +0 -41
  505. package/mdc-card/_card-theme.import.scss +0 -7
  506. package/mdc-card/_card-theme.scss +0 -74
  507. package/mdc-card/index.d.ts +0 -194
  508. package/mdc-card/testing/index.d.ts +0 -44
  509. package/mdc-checkbox/_checkbox-private.scss +0 -53
  510. package/mdc-checkbox/_checkbox-theme.import.scss +0 -15
  511. package/mdc-checkbox/_checkbox-theme.scss +0 -122
  512. package/mdc-checkbox/index.d.ts +0 -87
  513. package/mdc-checkbox/testing/index.d.ts +0 -28
  514. package/mdc-chips/_chips-theme.import.scss +0 -8
  515. package/mdc-chips/_chips-theme.scss +0 -117
  516. package/mdc-chips/index.d.ts +0 -979
  517. package/mdc-chips/testing/index.d.ts +0 -232
  518. package/mdc-core/_core-theme.import.scss +0 -10
  519. package/mdc-core/_core-theme.scss +0 -78
  520. package/mdc-core/_elevation.scss +0 -38
  521. package/mdc-core/color/_all-color.scss +0 -25
  522. package/mdc-core/density/_all-density.scss +0 -25
  523. package/mdc-core/index.d.ts +0 -206
  524. package/mdc-core/mdc-helpers/_focus-indicators-theme.scss +0 -39
  525. package/mdc-core/mdc-helpers/_focus-indicators.import.scss +0 -10
  526. package/mdc-core/mdc-helpers/_focus-indicators.scss +0 -15
  527. package/mdc-core/mdc-helpers/_mdc-helpers.import.scss +0 -8
  528. package/mdc-core/mdc-helpers/_mdc-helpers.scss +0 -221
  529. package/mdc-core/option/_optgroup-theme.import.scss +0 -7
  530. package/mdc-core/option/_optgroup-theme.scss +0 -44
  531. package/mdc-core/option/_option-theme.import.scss +0 -7
  532. package/mdc-core/option/_option-theme.scss +0 -87
  533. package/mdc-core/testing/index.d.ts +0 -64
  534. package/mdc-core/theming/_all-theme.scss +0 -61
  535. package/mdc-core/theming/prebuilt/deeppurple-amber.css +0 -1
  536. package/mdc-core/theming/prebuilt/indigo-pink.css +0 -1
  537. package/mdc-core/theming/prebuilt/pink-bluegrey.css +0 -1
  538. package/mdc-core/theming/prebuilt/purple-green.css +0 -1
  539. package/mdc-core/typography/_all-typography.scss +0 -99
  540. package/mdc-dialog/_dialog-legacy-padding.import.scss +0 -1
  541. package/mdc-dialog/_dialog-legacy-padding.scss +0 -31
  542. package/mdc-dialog/_dialog-theme.import.scss +0 -5
  543. package/mdc-dialog/_dialog-theme.scss +0 -78
  544. package/mdc-dialog/_mdc-dialog-structure-overrides.import.scss +0 -1
  545. package/mdc-dialog/_mdc-dialog-structure-overrides.scss +0 -56
  546. package/mdc-dialog/index.d.ts +0 -217
  547. package/mdc-dialog/testing/index.d.ts +0 -47
  548. package/mdc-form-field/_form-field-density.scss +0 -119
  549. package/mdc-form-field/_form-field-focus-overlay.scss +0 -34
  550. package/mdc-form-field/_form-field-high-contrast.scss +0 -39
  551. package/mdc-form-field/_form-field-native-select.scss +0 -133
  552. package/mdc-form-field/_form-field-sizing.scss +0 -40
  553. package/mdc-form-field/_form-field-subscript.scss +0 -83
  554. package/mdc-form-field/_form-field-theme.scss +0 -148
  555. package/mdc-form-field/_mdc-text-field-structure-overrides.scss +0 -129
  556. package/mdc-form-field/_mdc-text-field-textarea-overrides.scss +0 -36
  557. package/mdc-form-field/_mdc-text-field-theme-variable-refresh.scss +0 -63
  558. package/mdc-form-field/index.d.ts +0 -431
  559. package/mdc-form-field/testing/index.d.ts +0 -48
  560. package/mdc-input/_input-theme.import.scss +0 -5
  561. package/mdc-input/_input-theme.scss +0 -35
  562. package/mdc-input/index.d.ts +0 -30
  563. package/mdc-input/testing/index.d.ts +0 -20
  564. package/mdc-list/_interactive-list-theme.import.scss +0 -5
  565. package/mdc-list/_interactive-list-theme.scss +0 -40
  566. package/mdc-list/_list-option-theme.import.scss +0 -13
  567. package/mdc-list/_list-option-theme.scss +0 -28
  568. package/mdc-list/_list-option-trailing-avatar-compat.scss +0 -58
  569. package/mdc-list/_list-theme.import.scss +0 -17
  570. package/mdc-list/_list-theme.scss +0 -81
  571. package/mdc-list/index.d.ts +0 -534
  572. package/mdc-list/testing/index.d.ts +0 -372
  573. package/mdc-menu/_menu-theme.import.scss +0 -5
  574. package/mdc-menu/_menu-theme.scss +0 -88
  575. package/mdc-menu/index.d.ts +0 -110
  576. package/mdc-menu/testing/index.d.ts +0 -38
  577. package/mdc-paginator/_paginator-theme.import.scss +0 -9
  578. package/mdc-paginator/_paginator-theme.scss +0 -106
  579. package/mdc-paginator/_paginator-variables.import.scss +0 -1
  580. package/mdc-paginator/_paginator-variables.scss +0 -13
  581. package/mdc-paginator/index.d.ts +0 -72
  582. package/mdc-paginator/testing/index.d.ts +0 -30
  583. package/mdc-progress-bar/_progress-bar-theme.import.scss +0 -6
  584. package/mdc-progress-bar/_progress-bar-theme.scss +0 -57
  585. package/mdc-progress-bar/index.d.ts +0 -98
  586. package/mdc-progress-bar/testing/index.d.ts +0 -24
  587. package/mdc-progress-spinner/_progress-spinner-theme.import.scss +0 -6
  588. package/mdc-progress-spinner/_progress-spinner-theme.scss +0 -48
  589. package/mdc-progress-spinner/index.d.ts +0 -90
  590. package/mdc-progress-spinner/testing/index.d.ts +0 -26
  591. package/mdc-radio/_radio-theme.import.scss +0 -7
  592. package/mdc-radio/_radio-theme.scss +0 -110
  593. package/mdc-radio/index.d.ts +0 -72
  594. package/mdc-radio/testing/index.d.ts +0 -43
  595. package/mdc-select/_select-theme.import.scss +0 -10
  596. package/mdc-select/_select-theme.scss +0 -100
  597. package/mdc-select/index.d.ts +0 -111
  598. package/mdc-select/testing/index.d.ts +0 -28
  599. package/mdc-slide-toggle/_slide-toggle-theme.import.scss +0 -11
  600. package/mdc-slide-toggle/_slide-toggle-theme.scss +0 -140
  601. package/mdc-slide-toggle/index.d.ts +0 -83
  602. package/mdc-slide-toggle/testing/index.d.ts +0 -27
  603. package/mdc-slider/_slider-theme.import.scss +0 -5
  604. package/mdc-slider/_slider-theme.scss +0 -125
  605. package/mdc-slider/index.d.ts +0 -435
  606. package/mdc-slider/testing/index.d.ts +0 -92
  607. package/mdc-snack-bar/_snack-bar-theme.import.scss +0 -8
  608. package/mdc-snack-bar/_snack-bar-theme.scss +0 -81
  609. package/mdc-snack-bar/index.d.ts +0 -136
  610. package/mdc-snack-bar/testing/index.d.ts +0 -23
  611. package/mdc-table/_table-theme.import.scss +0 -11
  612. package/mdc-table/_table-theme.scss +0 -78
  613. package/mdc-table/index.d.ts +0 -238
  614. package/mdc-table/testing/index.d.ts +0 -118
  615. package/mdc-tabs/_tabs-common.import.scss +0 -14
  616. package/mdc-tabs/_tabs-common.scss +0 -196
  617. package/mdc-tabs/_tabs-theme.import.scss +0 -8
  618. package/mdc-tabs/_tabs-theme.scss +0 -146
  619. package/mdc-tabs/index.d.ts +0 -307
  620. package/mdc-tabs/testing/index.d.ts +0 -151
  621. package/mdc-tooltip/_tooltip-theme.import.scss +0 -5
  622. package/mdc-tooltip/_tooltip-theme.scss +0 -49
  623. package/mdc-tooltip/index.d.ts +0 -118
  624. package/mdc-tooltip/testing/index.d.ts +0 -26
@@ -1,332 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
- import { TAB } from '@angular/cdk/keycodes';
10
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, ViewEncapsulation, } from '@angular/core';
11
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
12
- import { startWith, takeUntil } from 'rxjs/operators';
13
- import { MatChipOption } from './chip-option';
14
- import { MatChipSet } from './chip-set';
15
- import * as i0 from "@angular/core";
16
- /** Change event object that is emitted when the chip listbox value has changed. */
17
- export class MatChipListboxChange {
18
- constructor(
19
- /** Chip listbox that emitted the event. */
20
- source,
21
- /** Value of the chip listbox when the event was emitted. */
22
- value) {
23
- this.source = source;
24
- this.value = value;
25
- }
26
- }
27
- /**
28
- * Provider Expression that allows mat-chip-listbox to register as a ControlValueAccessor.
29
- * This allows it to support [(ngModel)].
30
- * @docs-private
31
- */
32
- export const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR = {
33
- provide: NG_VALUE_ACCESSOR,
34
- useExisting: forwardRef(() => MatChipListbox),
35
- multi: true,
36
- };
37
- /**
38
- * An extension of the MatChipSet component that supports chip selection.
39
- * Used with MatChipOption chips.
40
- */
41
- export class MatChipListbox extends MatChipSet {
42
- constructor() {
43
- super(...arguments);
44
- /**
45
- * Function when touched. Set as part of ControlValueAccessor implementation.
46
- * @docs-private
47
- */
48
- this._onTouched = () => { };
49
- /**
50
- * Function when changed. Set as part of ControlValueAccessor implementation.
51
- * @docs-private
52
- */
53
- this._onChange = () => { };
54
- // TODO: MDC uses `grid` here
55
- this._defaultRole = 'listbox';
56
- this._multiple = false;
57
- /** Orientation of the chip list. */
58
- this.ariaOrientation = 'horizontal';
59
- this._selectable = true;
60
- /**
61
- * A function to compare the option values with the selected values. The first argument
62
- * is a value from an option. The second is a value from the selection. A boolean
63
- * should be returned.
64
- */
65
- this.compareWith = (o1, o2) => o1 === o2;
66
- this._required = false;
67
- /** Event emitted when the selected chip listbox value has been changed by the user. */
68
- this.change = new EventEmitter();
69
- }
70
- /** Whether the user should be allowed to select multiple chips. */
71
- get multiple() {
72
- return this._multiple;
73
- }
74
- set multiple(value) {
75
- this._multiple = coerceBooleanProperty(value);
76
- this._syncListboxProperties();
77
- }
78
- /** The array of selected chips inside the chip listbox. */
79
- get selected() {
80
- const selectedChips = this._chips.toArray().filter(chip => chip.selected);
81
- return this.multiple ? selectedChips : selectedChips[0];
82
- }
83
- /**
84
- * Whether or not this chip listbox is selectable.
85
- *
86
- * When a chip listbox is not selectable, the selected states for all
87
- * the chips inside the chip listbox are always ignored.
88
- */
89
- get selectable() {
90
- return this._selectable;
91
- }
92
- set selectable(value) {
93
- this._selectable = coerceBooleanProperty(value);
94
- this._syncListboxProperties();
95
- }
96
- /** Whether this chip listbox is required. */
97
- get required() {
98
- return this._required;
99
- }
100
- set required(value) {
101
- this._required = coerceBooleanProperty(value);
102
- }
103
- /** Combined stream of all of the child chips' selection change events. */
104
- get chipSelectionChanges() {
105
- return this._getChipStream(chip => chip.selectionChange);
106
- }
107
- /** Combined stream of all of the child chips' blur events. */
108
- get chipBlurChanges() {
109
- return this._getChipStream(chip => chip._onBlur);
110
- }
111
- /** The value of the listbox, which is the combined value of the selected chips. */
112
- get value() {
113
- return this._value;
114
- }
115
- set value(value) {
116
- this.writeValue(value);
117
- this._value = value;
118
- }
119
- ngAfterContentInit() {
120
- this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {
121
- // Update listbox selectable/multiple properties on chips
122
- this._syncListboxProperties();
123
- });
124
- this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._blur());
125
- this.chipSelectionChanges.pipe(takeUntil(this._destroyed)).subscribe(event => {
126
- if (!this.multiple) {
127
- this._chips.forEach(chip => {
128
- if (chip !== event.source) {
129
- chip._setSelectedState(false, false, false);
130
- }
131
- });
132
- }
133
- if (event.isUserInput) {
134
- this._propagateChanges();
135
- }
136
- });
137
- }
138
- /**
139
- * Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there
140
- * are no selected chips.
141
- */
142
- focus() {
143
- if (this.disabled) {
144
- return;
145
- }
146
- const firstSelectedChip = this._getFirstSelectedChip();
147
- if (firstSelectedChip && !firstSelectedChip.disabled) {
148
- firstSelectedChip.focus();
149
- }
150
- else if (this._chips.length > 0) {
151
- this._keyManager.setFirstItemActive();
152
- }
153
- else {
154
- this._elementRef.nativeElement.focus();
155
- }
156
- }
157
- /**
158
- * Implemented as part of ControlValueAccessor.
159
- * @docs-private
160
- */
161
- writeValue(value) {
162
- if (this._chips) {
163
- this._setSelectionByValue(value, false);
164
- }
165
- }
166
- /**
167
- * Implemented as part of ControlValueAccessor.
168
- * @docs-private
169
- */
170
- registerOnChange(fn) {
171
- this._onChange = fn;
172
- }
173
- /**
174
- * Implemented as part of ControlValueAccessor.
175
- * @docs-private
176
- */
177
- registerOnTouched(fn) {
178
- this._onTouched = fn;
179
- }
180
- /**
181
- * Implemented as part of ControlValueAccessor.
182
- * @docs-private
183
- */
184
- setDisabledState(isDisabled) {
185
- this.disabled = isDisabled;
186
- }
187
- /** Selects all chips with value. */
188
- _setSelectionByValue(value, isUserInput = true) {
189
- this._clearSelection();
190
- if (Array.isArray(value)) {
191
- value.forEach(currentValue => this._selectValue(currentValue, isUserInput));
192
- }
193
- else {
194
- this._selectValue(value, isUserInput);
195
- }
196
- }
197
- /** When blurred, marks the field as touched when focus moved outside the chip listbox. */
198
- _blur() {
199
- if (!this.disabled) {
200
- // Wait to see if focus moves to an individual chip.
201
- setTimeout(() => {
202
- if (!this.focused) {
203
- this._propagateChanges();
204
- this._markAsTouched();
205
- }
206
- });
207
- }
208
- }
209
- _keydown(event) {
210
- if (event.keyCode === TAB) {
211
- super._allowFocusEscape();
212
- }
213
- }
214
- /** Marks the field as touched */
215
- _markAsTouched() {
216
- this._onTouched();
217
- this._changeDetectorRef.markForCheck();
218
- }
219
- /** Emits change event to set the model value. */
220
- _propagateChanges() {
221
- let valueToEmit = null;
222
- if (Array.isArray(this.selected)) {
223
- valueToEmit = this.selected.map(chip => chip.value);
224
- }
225
- else {
226
- valueToEmit = this.selected ? this.selected.value : undefined;
227
- }
228
- this._value = valueToEmit;
229
- this.change.emit(new MatChipListboxChange(this, valueToEmit));
230
- this._onChange(valueToEmit);
231
- this._changeDetectorRef.markForCheck();
232
- }
233
- /**
234
- * Deselects every chip in the listbox.
235
- * @param skip Chip that should not be deselected.
236
- */
237
- _clearSelection(skip) {
238
- this._chips.forEach(chip => {
239
- if (chip !== skip) {
240
- chip.deselect();
241
- }
242
- });
243
- }
244
- /**
245
- * Finds and selects the chip based on its value.
246
- * @returns Chip that has the corresponding value.
247
- */
248
- _selectValue(value, isUserInput) {
249
- const correspondingChip = this._chips.find(chip => {
250
- return chip.value != null && this.compareWith(chip.value, value);
251
- });
252
- if (correspondingChip) {
253
- isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();
254
- }
255
- return correspondingChip;
256
- }
257
- /** Syncs the chip-listbox selection state with the individual chips. */
258
- _syncListboxProperties() {
259
- if (this._chips) {
260
- // Defer setting the value in order to avoid the "Expression
261
- // has changed after it was checked" errors from Angular.
262
- Promise.resolve().then(() => {
263
- this._chips.forEach(chip => {
264
- chip._chipListMultiple = this.multiple;
265
- chip.chipListSelectable = this._selectable;
266
- chip._changeDetectorRef.markForCheck();
267
- });
268
- });
269
- }
270
- }
271
- /** Returns the first selected chip in this listbox, or undefined if no chips are selected. */
272
- _getFirstSelectedChip() {
273
- if (Array.isArray(this.selected)) {
274
- return this.selected.length ? this.selected[0] : undefined;
275
- }
276
- else {
277
- return this.selected;
278
- }
279
- }
280
- }
281
- MatChipListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipListbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
282
- MatChipListbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MatChipListbox, selector: "mat-chip-listbox", inputs: { tabIndex: "tabIndex", multiple: "multiple", ariaOrientation: ["aria-orientation", "ariaOrientation"], selectable: "selectable", compareWith: "compareWith", required: "required", value: "value" }, outputs: { change: "change" }, host: { listeners: { "focus": "focus()", "blur": "_blur()", "keydown": "_keydown($event)" }, properties: { "attr.role": "role", "tabIndex": "empty ? -1 : tabIndex", "attr.aria-describedby": "_ariaDescribedby || null", "attr.aria-required": "role ? required : null", "attr.aria-disabled": "disabled.toString()", "attr.aria-multiselectable": "multiple", "attr.aria-orientation": "ariaOrientation", "class.mat-mdc-chip-list-disabled": "disabled", "class.mat-mdc-chip-list-required": "required" }, classAttribute: "mdc-evolution-chip-set mat-mdc-chip-listbox" }, providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "_chips", predicate: MatChipOption, descendants: true }], usesInheritance: true, ngImport: i0, template: `
283
- <span class="mdc-evolution-chip-set__chips" role="presentation">
284
- <ng-content></ng-content>
285
- </span>
286
- `, isInline: true, styles: [".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipListbox, decorators: [{
288
- type: Component,
289
- args: [{ selector: 'mat-chip-listbox', template: `
290
- <span class="mdc-evolution-chip-set__chips" role="presentation">
291
- <ng-content></ng-content>
292
- </span>
293
- `, inputs: ['tabIndex'], host: {
294
- 'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',
295
- '[attr.role]': 'role',
296
- '[tabIndex]': 'empty ? -1 : tabIndex',
297
- // TODO: replace this binding with use of AriaDescriber
298
- '[attr.aria-describedby]': '_ariaDescribedby || null',
299
- '[attr.aria-required]': 'role ? required : null',
300
- '[attr.aria-disabled]': 'disabled.toString()',
301
- '[attr.aria-multiselectable]': 'multiple',
302
- '[attr.aria-orientation]': 'ariaOrientation',
303
- '[class.mat-mdc-chip-list-disabled]': 'disabled',
304
- '[class.mat-mdc-chip-list-required]': 'required',
305
- '(focus)': 'focus()',
306
- '(blur)': '_blur()',
307
- '(keydown)': '_keydown($event)',
308
- }, providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"] }]
309
- }], propDecorators: { multiple: [{
310
- type: Input
311
- }], ariaOrientation: [{
312
- type: Input,
313
- args: ['aria-orientation']
314
- }], selectable: [{
315
- type: Input
316
- }], compareWith: [{
317
- type: Input
318
- }], required: [{
319
- type: Input
320
- }], value: [{
321
- type: Input
322
- }], change: [{
323
- type: Output
324
- }], _chips: [{
325
- type: ContentChildren,
326
- args: [MatChipOption, {
327
- // We need to use `descendants: true`, because Ivy will no longer match
328
- // indirect descendants if it's left as false.
329
- descendants: true,
330
- }]
331
- }] } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1saXN0Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1saXN0Ym94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGFBQWEsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQzs7QUFFdEMsbUZBQW1GO0FBQ25GLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7SUFDRSwyQ0FBMkM7SUFDcEMsTUFBc0I7SUFDN0IsNERBQTREO0lBQ3JELEtBQVU7UUFGVixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUV0QixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ2hCLENBQUM7Q0FDTDtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBUTtJQUMxRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQzdDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGOzs7R0FHRztBQThCSCxN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S0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBcUJGLEtBQUs7c0JBRFIsS0FBSztnQkFXYSxNQUFNO3NCQUF4QixNQUFNO2dCQVFFLE1BQU07c0JBTGQsZUFBZTt1QkFBQyxhQUFhLEVBQUU7d0JBQzlCLHVFQUF1RTt3QkFDdkUsOENBQThDO3dCQUM5QyxXQUFXLEVBQUUsSUFBSTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7VEFCfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRoLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0Q2hpcCwgTWF0Q2hpcEV2ZW50fSBmcm9tICcuL2NoaXAnO1xuaW1wb3J0IHtNYXRDaGlwT3B0aW9uLCBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlfSBmcm9tICcuL2NoaXAtb3B0aW9uJztcbmltcG9ydCB7TWF0Q2hpcFNldH0gZnJvbSAnLi9jaGlwLXNldCc7XG5cbi8qKiBDaGFuZ2UgZXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjaGlwIGxpc3Rib3ggdmFsdWUgaGFzIGNoYW5nZWQuICovXG5leHBvcnQgY2xhc3MgTWF0Q2hpcExpc3Rib3hDaGFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQ2hpcCBsaXN0Ym94IHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgcHVibGljIHNvdXJjZTogTWF0Q2hpcExpc3Rib3gsXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBjaGlwIGxpc3Rib3ggd2hlbiB0aGUgZXZlbnQgd2FzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIHZhbHVlOiBhbnksXG4gICkge31cbn1cblxuLyoqXG4gKiBQcm92aWRlciBFeHByZXNzaW9uIHRoYXQgYWxsb3dzIG1hdC1jaGlwLWxpc3Rib3ggdG8gcmVnaXN0ZXIgYXMgYSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAqIFRoaXMgYWxsb3dzIGl0IHRvIHN1cHBvcnQgWyhuZ01vZGVsKV0uXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBNQVRfQ0hJUF9MSVNUQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1hdENoaXBMaXN0Ym94KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgTWF0Q2hpcFNldCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBjaGlwIHNlbGVjdGlvbi5cbiAqIFVzZWQgd2l0aCBNYXRDaGlwT3B0aW9uIGNoaXBzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtY2hpcC1saXN0Ym94JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiBjbGFzcz1cIm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJ2NoaXAtc2V0LmNzcyddLFxuICBpbnB1dHM6IFsndGFiSW5kZXgnXSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdtZGMtZXZvbHV0aW9uLWNoaXAtc2V0IG1hdC1tZGMtY2hpcC1saXN0Ym94JyxcbiAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgJ1t0YWJJbmRleF0nOiAnZW1wdHkgPyAtMSA6IHRhYkluZGV4JyxcbiAgICAvLyBUT0RPOiByZXBsYWNlIHRoaXMgYmluZGluZyB3aXRoIHVzZSBvZiBBcmlhRGVzY3JpYmVyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ19hcmlhRGVzY3JpYmVkYnkgfHwgbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JvbGUgPyByZXF1aXJlZCA6IG51bGwnLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnYXJpYU9yaWVudGF0aW9uJyxcbiAgICAnW2NsYXNzLm1hdC1tZGMtY2hpcC1saXN0LWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICcoYmx1ciknOiAnX2JsdXIoKScsXG4gICAgJyhrZXlkb3duKSc6ICdfa2V5ZG93bigkZXZlbnQpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbTUFUX0NISVBfTElTVEJPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdENoaXBMaXN0Ym94XG4gIGV4dGVuZHMgTWF0Q2hpcFNldFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHdoZW4gdG91Y2hlZC4gU2V0IGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24uXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gd2hlbiBjaGFuZ2VkLiBTZXQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8vIFRPRE86IE1EQyB1c2VzIGBncmlkYCBoZXJlXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfZGVmYXVsdFJvbGUgPSAnbGlzdGJveCc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc2VsZWN0IG11bHRpcGxlIGNoaXBzLiAqL1xuICBASW5wdXQoKVxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHNldCBtdWx0aXBsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX3N5bmNMaXN0Ym94UHJvcGVydGllcygpO1xuICB9XG4gIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBhcnJheSBvZiBzZWxlY3RlZCBjaGlwcyBpbnNpZGUgdGhlIGNoaXAgbGlzdGJveC4gKi9cbiAgZ2V0IHNlbGVjdGVkKCk6IE1hdENoaXBPcHRpb25bXSB8IE1hdENoaXBPcHRpb24ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ2hpcHMgPSB0aGlzLl9jaGlwcy50b0FycmF5KCkuZmlsdGVyKGNoaXAgPT4gY2hpcC5zZWxlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBzZWxlY3RlZENoaXBzIDogc2VsZWN0ZWRDaGlwc1swXTtcbiAgfVxuXG4gIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgY2hpcCBsaXN0LiAqL1xuICBASW5wdXQoJ2FyaWEtb3JpZW50YXRpb24nKSBhcmlhT3JpZW50YXRpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgY2hpcCBsaXN0Ym94IGlzIHNlbGVjdGFibGUuXG4gICAqXG4gICAqIFdoZW4gYSBjaGlwIGxpc3Rib3ggaXMgbm90IHNlbGVjdGFibGUsIHRoZSBzZWxlY3RlZCBzdGF0ZXMgZm9yIGFsbFxuICAgKiB0aGUgY2hpcHMgaW5zaWRlIHRoZSBjaGlwIGxpc3Rib3ggYXJlIGFsd2F5cyBpZ25vcmVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cbiAgc2V0IHNlbGVjdGFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX3N5bmNMaXN0Ym94UHJvcGVydGllcygpO1xuICB9XG4gIHByb3RlY3RlZCBfc2VsZWN0YWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuIFRoZSBmaXJzdCBhcmd1bWVudFxuICAgKiBpcyBhIHZhbHVlIGZyb20gYW4gb3B0aW9uLiBUaGUgc2Vjb25kIGlzIGEgdmFsdWUgZnJvbSB0aGUgc2VsZWN0aW9uLiBBIGJvb2xlYW5cbiAgICogc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcblxuICAvKiogV2hldGhlciB0aGlzIGNoaXAgbGlzdGJveCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBTZWxlY3Rpb25DaGFuZ2VzKCk6IE9ic2VydmFibGU8TWF0Q2hpcFNlbGVjdGlvbkNoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtPE1hdENoaXBTZWxlY3Rpb25DaGFuZ2UsIE1hdENoaXBPcHRpb24+KGNoaXAgPT4gY2hpcC5zZWxlY3Rpb25DaGFuZ2UpO1xuICB9XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBibHVyIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBCbHVyQ2hhbmdlcygpOiBPYnNlcnZhYmxlPE1hdENoaXBFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGNoaXAgPT4gY2hpcC5fb25CbHVyKTtcbiAgfVxuXG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGxpc3Rib3gsIHdoaWNoIGlzIHRoZSBjb21iaW5lZCB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgY2hpcHMuICovXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgY2hpcCBsaXN0Ym94IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYnkgdGhlIHVzZXIuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxNYXRDaGlwTGlzdGJveENoYW5nZT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8TWF0Q2hpcExpc3Rib3hDaGFuZ2U+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRDaGlwT3B0aW9uLCB7XG4gICAgLy8gV2UgbmVlZCB0byB1c2UgYGRlc2NlbmRhbnRzOiB0cnVlYCwgYmVjYXVzZSBJdnkgd2lsbCBubyBsb25nZXIgbWF0Y2hcbiAgICAvLyBpbmRpcmVjdCBkZXNjZW5kYW50cyBpZiBpdCdzIGxlZnQgYXMgZmFsc2UuXG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pXG4gIG92ZXJyaWRlIF9jaGlwczogUXVlcnlMaXN0PE1hdENoaXBPcHRpb24+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9jaGlwcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIFVwZGF0ZSBsaXN0Ym94IHNlbGVjdGFibGUvbXVsdGlwbGUgcHJvcGVydGllcyBvbiBjaGlwc1xuICAgICAgdGhpcy5fc3luY0xpc3Rib3hQcm9wZXJ0aWVzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoaXBCbHVyQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYmx1cigpKTtcbiAgICB0aGlzLmNoaXBTZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5fY2hpcHMuZm9yRWFjaChjaGlwID0+IHtcbiAgICAgICAgICBpZiAoY2hpcCAhPT0gZXZlbnQuc291cmNlKSB7XG4gICAgICAgICAgICBjaGlwLl9zZXRTZWxlY3RlZFN0YXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5pc1VzZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3Qgc2VsZWN0ZWQgY2hpcCBpbiB0aGlzIGNoaXAgbGlzdGJveCwgb3IgdGhlIGZpcnN0IG5vbi1kaXNhYmxlZCBjaGlwIHdoZW4gdGhlcmVcbiAgICogYXJlIG5vIHNlbGVjdGVkIGNoaXBzLlxuICAgKi9cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFNlbGVjdGVkQ2hpcCA9IHRoaXMuX2dldEZpcnN0U2VsZWN0ZWRDaGlwKCk7XG5cbiAgICBpZiAoZmlyc3RTZWxlY3RlZENoaXAgJiYgIWZpcnN0U2VsZWN0ZWRDaGlwLmRpc2FibGVkKSB7XG4gICAgICBmaXJzdFNlbGVjdGVkQ2hpcC5mb2N1cygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKiBTZWxlY3RzIGFsbCBjaGlwcyB3aXRoIHZhbHVlLiAqL1xuICBfc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZTogYW55LCBpc1VzZXJJbnB1dDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLl9jbGVhclNlbGVjdGlvbigpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKGN1cnJlbnRWYWx1ZSA9PiB0aGlzLl9zZWxlY3RWYWx1ZShjdXJyZW50VmFsdWUsIGlzVXNlcklucHV0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdFZhbHVlKHZhbHVlLCBpc1VzZXJJbnB1dCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZW4gYmx1cnJlZCwgbWFya3MgdGhlIGZpZWxkIGFzIHRvdWNoZWQgd2hlbiBmb2N1cyBtb3ZlZCBvdXRzaWRlIHRoZSBjaGlwIGxpc3Rib3guICovXG4gIF9ibHVyKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgLy8gV2FpdCB0byBzZWUgaWYgZm9jdXMgbW92ZXMgdG8gYW4gaW5kaXZpZHVhbCBjaGlwLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuX21hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2tleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gVEFCKSB7XG4gICAgICBzdXBlci5fYWxsb3dGb2N1c0VzY2FwZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBNYXJrcyB0aGUgZmllbGQgYXMgdG91Y2hlZCAqL1xuICBwcml2YXRlIF9tYXJrQXNUb3VjaGVkKCkge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGNoYW5nZSBldmVudCB0byBzZXQgdGhlIG1vZGVsIHZhbHVlLiAqL1xuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGxldCB2YWx1ZVRvRW1pdDogYW55ID0gbnVsbDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWQpKSB7XG4gICAgICB2YWx1ZVRvRW1pdCA9IHRoaXMuc2VsZWN0ZWQubWFwKGNoaXAgPT4gY2hpcC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlVG9FbWl0ID0gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWQudmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVUb0VtaXQ7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChuZXcgTWF0Q2hpcExpc3Rib3hDaGFuZ2UodGhpcywgdmFsdWVUb0VtaXQpKTtcbiAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZVRvRW1pdCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzZWxlY3RzIGV2ZXJ5IGNoaXAgaW4gdGhlIGxpc3Rib3guXG4gICAqIEBwYXJhbSBza2lwIENoaXAgdGhhdCBzaG91bGQgbm90IGJlIGRlc2VsZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9jbGVhclNlbGVjdGlvbihza2lwPzogTWF0Q2hpcCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaXBzLmZvckVhY2goY2hpcCA9PiB7XG4gICAgICBpZiAoY2hpcCAhPT0gc2tpcCkge1xuICAgICAgICBjaGlwLmRlc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW5kIHNlbGVjdHMgdGhlIGNoaXAgYmFzZWQgb24gaXRzIHZhbHVlLlxuICAgKiBAcmV0dXJucyBDaGlwIHRoYXQgaGFzIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2VsZWN0VmFsdWUodmFsdWU6IGFueSwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pOiBNYXRDaGlwIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nQ2hpcCA9IHRoaXMuX2NoaXBzLmZpbmQoY2hpcCA9PiB7XG4gICAgICByZXR1cm4gY2hpcC52YWx1ZSAhPSBudWxsICYmIHRoaXMuY29tcGFyZVdpdGgoY2hpcC52YWx1ZSwgdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKGNvcnJlc3BvbmRpbmdDaGlwKSB7XG4gICAgICBpc1VzZXJJbnB1dCA/IGNvcnJlc3BvbmRpbmdDaGlwLnNlbGVjdFZpYUludGVyYWN0aW9uKCkgOiBjb3JyZXNwb25kaW5nQ2hpcC5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29ycmVzcG9uZGluZ0NoaXA7XG4gIH1cblxuICAvKiogU3luY3MgdGhlIGNoaXAtbGlzdGJveCBzZWxlY3Rpb24gc3RhdGUgd2l0aCB0aGUgaW5kaXZpZHVhbCBjaGlwcy4gKi9cbiAgcHJpdmF0ZSBfc3luY0xpc3Rib3hQcm9wZXJ0aWVzKCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgLy8gRGVmZXIgc2V0dGluZyB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIFwiRXhwcmVzc2lvblxuICAgICAgLy8gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBlcnJvcnMgZnJvbSBBbmd1bGFyLlxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoaXBzLmZvckVhY2goY2hpcCA9PiB7XG4gICAgICAgICAgY2hpcC5fY2hpcExpc3RNdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgICAgICAgY2hpcC5jaGlwTGlzdFNlbGVjdGFibGUgPSB0aGlzLl9zZWxlY3RhYmxlO1xuICAgICAgICAgIGNoaXAuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBzZWxlY3RlZCBjaGlwIGluIHRoaXMgbGlzdGJveCwgb3IgdW5kZWZpbmVkIGlmIG5vIGNoaXBzIGFyZSBzZWxlY3RlZC4gKi9cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RTZWxlY3RlZENoaXAoKTogTWF0Q2hpcE9wdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA/IHRoaXMuc2VsZWN0ZWRbMF0gOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkO1xuICAgIH1cbiAgfVxufVxuIl19